# API errors

{% hint style="info" %}
If you encounter errors or uncertainties during integration/testing, please consult the API documentation in more detail or contact the [support team](mailto:ecom@maib.md), providing as much error-related data (HTTP status code, errorCode, errorMessage, date/time of the request) and information regarding the e-commerce solution (Project ID, Merchant name, website/app name, website URL).
{% endhint %}

### Error format

```json
{
  "errors": [
    {
      "errorCode": "10000",
      "errorMessage": "Error description {{erroArg}}",
      "errorArgs": {
        "errorArg": "Dynamic part of the error description"
      }
    }
  ],
  "ok": false
}
```

### Errors table

<table data-full-width="true"><thead><tr><th width="131">Error Code</th><th width="382">Error Message </th><th width="188">Error Arguments </th><th>HTTP Status Code</th></tr></thead><tbody><tr><td>10000</td><td>Internal error encountered. Please try again or report if error persists</td><td><br></td><td>500</td></tr><tr><td>11001</td><td>Invalid credentials. Please check 'projectId' and 'projectSecret' parameters</td><td><br></td><td>401</td></tr><tr><td>11002</td><td>Please provide 'projectId' and 'projectSecret' credentials or 'refreshToken'</td><td><br></td><td>401</td></tr><tr><td>11101</td><td>Unregistered Project IP: {{ip}}</td><td><ol><li>ip</li></ol></td><td>403</td></tr><tr><td>12001</td><td>Parameter '{{parameter}}' is invalid</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12002</td><td>Provided request is invalid: {{error}}</td><td><ol><li>error</li></ol></td><td>400</td></tr><tr><td>12004</td><td>Parameter 'language' must have {{length}} characters</td><td><ol><li>parameter</li><li>length</li></ol></td><td>400</td></tr><tr><td>12005</td><td>Parameter 'currency' is invalid. Possible values: {{values}}</td><td><ol><li>parameter</li><li>values</li></ol></td><td>400</td></tr><tr><td>12006</td><td>Parameter 'phone' must not exceed {{maxLength}} characters</td><td><ol><li>parameter</li><li>maxLength</li></ol></td><td>400</td></tr><tr><td>12007</td><td>Parameter 'email' must not exceed {{maxLength}} characters</td><td><ol><li>parameter</li><li>maxLength</li></ol></td><td>400</td></tr><tr><td>12008</td><td>Parameter 'email' has invalid format</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12011</td><td>Parameter 'payId' is required</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12012</td><td>Parameter 'confirmAmount' must be in range from {{minValue}} to {{maxValue}}</td><td><ol><li>parameter</li><li>minValue</li><li>maxValue</li></ol></td><td>400</td></tr><tr><td>12013</td><td>Parameter 'confirmAmount' must have no more than {{maxScale}} decimal places</td><td><ol><li>parameter</li><li>maxScale</li></ol></td><td>400</td></tr><tr><td>12014</td><td>Parameter 'amount' must be in range from {{minValue}} to {{maxValue}}</td><td><ol><li>parameter</li><li>minValue</li><li>maxValue</li></ol></td><td>400</td></tr><tr><td>12015</td><td>Parameter 'amount must have no more than {{maxScale}} decimal places</td><td><ol><li>parameter</li><li>maxScale</li></ol></td><td>400</td></tr><tr><td>12016</td><td>Parameter 'delivery' must be in range from {{minValue}} to {{maxValue}}</td><td><ol><li>parameter</li><li>minValue</li><li>maxValue</li></ol></td><td>400</td></tr><tr><td>12017</td><td>Parameter 'delivery' must have no more than {{maxScale}} decimal places</td><td><ol><li>parameter</li><li>maxScale</li></ol></td><td>400</td></tr><tr><td>12018</td><td>Parameter 'clientIp' is required</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12019</td><td>Parameter 'clientIp' has invalid format. Only IPv4 is allowed</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12020</td><td>Parameter 'description' must not exceed {{maxLength}} characters</td><td><ol><li>parameter</li><li>maxLength</li></ol></td><td>400</td></tr><tr><td>12021</td><td>Parameter 'clientName' must not exceed {{maxLength}} characters</td><td><ol><li>parameter</li><li>maxLength</li></ol></td><td>400</td></tr><tr><td>12022</td><td>Parameter 'okUrl' has invalid format</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>13023</td><td>Parameter 'failUrl' has invalid format</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12024</td><td>Parameter 'callbackUrl' has invalid format</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12025</td><td>Parameter 'orderId' must not exceed {{maxLength}} characters</td><td><ol><li>parameter</li><li>maxLength</li></ol></td><td>400</td></tr><tr><td>12026</td><td>'items' array must not exceed {{maxCount}} elements</td><td><ol><li>parameter</li><li>maxCount</li></ol></td><td>400</td></tr><tr><td>12028</td><td>Parameter 'refundAmount' must be in range from {{minValue}} to {{maxValue}}</td><td><ol><li>parameter</li><li>minValue</li><li>maxValue</li></ol></td><td>400</td></tr><tr><td>12029</td><td>Parameter 'refundAmount' must have no more than {{maxScale}} decimal places</td><td><ol><li>parameter</li><li>maxScale</li></ol></td><td>400</td></tr><tr><td>12032</td><td>Parameter 'billerId' is required</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12033</td><td>Parameter 'billerExpiry' is required</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12034</td><td>Parameter 'billerExpiry' has invalid format. Valid format is 'MMYY'</td><td><ol><li>parameter</li></ol></td><td>400</td></tr><tr><td>12035</td><td>Parameter 'billerExpiry' must contain current or future date. Current date: {{currentDate}}</td><td><ol><li>parameter</li><li>currentDate</li></ol></td><td>400</td></tr><tr><td>12036</td><td>Parameter 'items[{{itemIndex}}].id' must not exceed {{maxLength}} characters</td><td><ol><li>parameter</li><li>maxLength</li><li>itemIndex</li></ol></td><td>400</td></tr><tr><td>12037</td><td>Parameter 'items[{{itemIndex}}].name' must not exceed {{maxLength}} characters</td><td><ol><li>parameter</li><li>maxLength</li><li>itemIndex</li></ol></td><td>400</td></tr><tr><td>12038</td><td>Parameter 'items[{{itemIndex}}].price' must be in range from {{minValue}} to {{maxValue}}</td><td><ol><li>parameter</li><li>minValue</li><li>maxValue</li><li>itemIndex</li></ol></td><td>400</td></tr><tr><td>12039</td><td>Parameter 'items[{{itemIndex}}].price' must have no more than {{maxScale}} decimal places</td><td><ol><li>parameter</li><li>maxScale</li><li>itemIndex</li></ol></td><td>400</td></tr><tr><td>12040</td><td>Parameter 'items[{{itemIndex}}].quantity' must be more than zero</td><td><ol><li>parameter</li><li>itemIndex</li></ol></td><td>400</td></tr><tr><td>12041</td><td>Please provide 'projectId' and 'projectSecret' credentials or 'refreshToken'</td><td><br></td><td>400</td></tr><tr><td>13002</td><td>Payment ID '{{paymentId}}' not found</td><td><ol><li>paymentId </li></ol></td><td>404</td></tr><tr><td>13003</td><td>Biller ID '{{billerId}}' not found"</td><td><ol><li>billerId</li></ol></td><td>404</td></tr><tr><td>13101</td><td>Processing error: {{processingError}}</td><td><ol><li>processingError</li></ol></td><td>409</td></tr><tr><td>13102</td><td>Refund amount cannot be greater than {{amount}}</td><td><ol><li>refundAmount</li><li>amount</li></ol></td><td>409</td></tr><tr><td>13103</td><td>Refund amount cannot be greater than {{confirmAmount}}</td><td><ol><li>refundAmount</li><li>confirmAmount</li></ol></td><td>409</td></tr><tr><td>13004</td><td>Confirm amount cannot be greater than {{amount}}</td><td><ol><li>confirmAmount</li><li>amount</li></ol></td><td>409</td></tr><tr><td>13106</td><td>Payment does not require completion</td><td><br></td><td>409</td></tr><tr><td>13107</td><td>OK URL is not set</td><td><br></td><td>409</td></tr><tr><td>13108</td><td>FAIL URL is not set</td><td><br></td><td>409</td></tr><tr><td>13109</td><td>CALLBACK URL is not set</td><td><br></td><td>409</td></tr><tr><td>13110</td><td>Partial refund is not supported for payments in Hold status</td><td><br></td><td>409</td></tr><tr><td>13111</td><td>Biller ID '{{billerId}}' is inactive</td><td><ol><li>billerId</li></ol></td><td>409</td></tr><tr><td>13112</td><td>Biller ID '{{billerId}}' is not allowed for this payment type</td><td><ol><li>billerId</li></ol></td><td>409</td></tr><tr><td>13113</td><td>{{paymentType}} payment type in {{currency}} currency is not allowed for this Project</td><td><ol><li>paymentType</li><li>currency</li></ol></td><td>409</td></tr><tr><td>13114</td><td>Refund is not possible for payment with a zero amount</td><td><br></td><td>409</td></tr><tr><td>13115</td><td>Complete is supported only for payments in Hold status</td><td><br></td><td>409</td></tr><tr><td>13116</td><td>Payment is already refunded</td><td><br></td><td>409</td></tr><tr><td>13117</td><td>Refund is not allowed for payment in {{statusPay}} status</td><td><ol><li>statusPay</li></ol></td><td>409</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.maibmerchants.md/e-commerce/errors/api-errors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
