> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.sqril.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sqril.io/_mcp/server.

# Error Codes

| Error code                           | HTTP status | Description                                                                      |
| ------------------------------------ | ----------- | -------------------------------------------------------------------------------- |
| AUTHENTICATION\_REQUIRED             | 401         | Authentication is missing. Provide client\_id and client\_secret via Basic Auth. |
| INVALID\_CREDENTIALS                 | 401 / 403   | Credentials are invalid, or the caller lacks required access                     |
| INVALID\_HMAC\_SIGNATURE             | 401         | HMAC signature is invalid.                                                       |
| HMAC\_SIGNATURE\_REQUIRED            | 401         | HMAC signature is required but was not provided.                                 |
| TRANSACTION\_NOT\_OWNED              | 403         | The transaction does not belong to the authenticated account.                    |
| COUNTRY\_NOT\_SUPPORTED\_BY\_ACCOUNT | 403         | The account does not support the requested country/corridor.                     |
| KYC\_REQUIRED                        | 403         | KYC verification is required before the operation can proceed.                   |
| INVALID\_REQUEST                     | 400         | The request is malformed or fails validation.                                    |
| MISSING\_REQUIRED\_FIELD             | 400         | One or more required fields are missing.                                         |
| MISSING\_REQUIRED\_FIELDS            | 400         | Multiple required fields are missing (often includes missing\_fields).           |
| INVALID\_QR\_FORMAT                  | 400         | The QR payload is missing or invalid.                                            |
| INVALID\_COUNTRY\_CODE               | 400         | The country code is invalid or unsupported for this operation.                   |
| INVALID\_AMOUNT                      | 400         | The amount is invalid (e.g. missing, ≤ 0, or out of range).                      |
| INVALID\_CURRENCY                    | 400         | The currency is invalid or unsupported.                                          |
| INVALID\_STATUS                      | 400         | The status filter/value is invalid.                                              |
| INVALID\_LIMIT                       | 400         | The pagination limit value is invalid.                                           |
| INVALID\_START\_AFTER                | 400         | The pagination cursor (start\_after) is invalid.                                 |
| TRANSACTION\_NOT\_PENDING            | 400         | The transaction is not in PENDING status (often includes current\_status).       |
| QUOTATION\_EXPIRED                   | 400         | The quotation has expired; call getQuotation again before payout.                |
| METHOD\_NOT\_ALLOWED                 | 405         | HTTP method is not allowed for this endpoint.                                    |
| IDEMPOTENCY\_KEY\_REQUIRED           | 400         | X-Idempotency-Key header is required.                                            |
| CUSTOMER\_NOT\_ELIGIBLE              | 400         | Customer cannot transact until required sender profile fields are completed.     |
| TRANSACTION\_NOT\_FOUND              | 404         | The requested transaction was not found.                                         |
| RESOURCE\_NOT\_FOUND                 | 404         | The requested resource was not found (e.g. customer, account).                   |
| INSUFFICIENT\_FUNDS                  | 402         | Account balance is insufficient for the requested payout.                        |
| INTERNAL\_SERVER\_ERROR              | 500         | Unexpected server error.                                                         |
| PROVIDER\_ERROR                      | 400 / 500   | Upstream payment-provider failure.                                               |
| WEBHOOK\_SECRET\_NOT\_CONFIGURED     | 500         | Webhook signing secret is not configured (inbound webhook handlers).             |
| INVALID\_WEBHOOK\_SIGNATURE          | 401 / 400   | Inbound webhook signature verification failed.                                   |
| RATE\_LIMIT\_EXCEEDED                | 429         | Too many requests; retry later.                                                  |