> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dollarpe.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Error codes

> Every err_code each endpoint can return, with its HTTP status.

Every error response carries an `err_code`. Branch on it, not on `message`. For the response shape and retry rules, see [Error handling](/guides/development-and-testing/error-handling).

## General Server or Network Issues

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 401 | AUTH\_UNAUTHORIZED | Unauthorized |
| 401 | AUTH\_MISSING\_HEADERS | Missing authentication headers |
| 401 | AUTH\_INVALID\_SIGNATURE | Invalid signature |
| 404 | NOT\_FOUND | Not Found |
| 429 | TOO\_MANY\_REQUESTS | Too many requests |
| 400 | NET\_TIMEOUT | Request timed out |
| 400 | UNKNOWN\_ERROR | Unknown Error |

## Customer Endpoints

### /customer/create

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_INVALID\_COUNTRY | Invalid country code |
| 400 | REQ\_NON\_RESIDENT\_UNSUPPORTED | Non-Residents not supported |
| 400 | REQ\_INVALID\_RESIDENCE\_COUNTRY | Invalid residence country code |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | USR\_DUPLICATE\_CONTACT | Phone or email linked with another user |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /customer/:customer\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /customer/list

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | INPUT\_INVALID\_DATE\_FORMAT | Invalid date format |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

## KYC Endpoints

### /kyc/configuration/:customer\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /kyc/add-kyc-data

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 400 | KYC\_INVALID\_AADHAAR\_INPUT | For AADHAAR, either provide both document\_front\_image\_url and document\_back\_image\_url, OR provide aadhaar\_json inside additional\_data |
| 400 | KYC\_INVALID\_DOC\_TYPE | Document type not supported for your country |
| 400 | KYC\_IN\_USE | KYC already in use |
| 400 | INPUT\_MALFORMED\_ADDITIONAL\_INFO | Malformed additional\_info input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /kyc/update-tax-info

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 400 | KYC\_IN\_USE | KYC already in use |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /kyc/update-document-info

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 400 | KYC\_IN\_USE | KYC already in use |
| 400 | KYC\_INVALID\_AADHAAR\_INPUT | For AADHAAR, either provide both document\_front\_image\_url and document\_back\_image\_url, OR provide aadhaar\_json inside additional\_data |
| 400 | KYC\_INVALID\_DOC\_TYPE | Document type not supported for your country |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /kyc/update-selfie-info

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 400 | INPUT\_MALFORMED\_ADDITIONAL\_INFO | Malformed additional\_info input |
| 400 | KYC\_UPDATE\_LIMIT\_EXCEEDED | Kyc update limit is reached |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /kyc/reset-kyc

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

## Bank Endpoints

### /bank/create

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 400 | USR\_UNVERIFIED | User is unverified |
| 400 | BANK\_DUPLICATE\_ACCOUNT | UPI ID or account number is already in use |
| 400 | BANK\_LIMIT\_REACHED | 3 UPI ID or account number already added for user |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /bank/:customer\_id/:bank\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 400 | BANK\_NOT\_FOUND | UPI or bank account not found |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /bank/list/:customer\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_NOT\_FOUND | User not found |
| 400 | AUTH\_ORG\_MISMATCH | User does not belong to organization |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

## Payout Endpoints

### /payout/configuration

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/limits/:customer\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_UNVERIFIED | User is unverified |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/fetch-rate

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/quotation

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | PAYOUT\_AMOUNT\_ZERO\_OR\_NEGATIVE | Entered amount cannot be zero or negative |
| 400 | PAYOUT\_AMOUNT\_BELOW\_MIN | Entered amount is less than minimum txn amount |
| 400 | PAYOUT\_AMOUNT\_ABOVE\_MAX | Entered amount exceeds maximum txn amount |
| 400 | RISK\_AML\_FAILED | AML screening failed |
| 400 | RISK\_IP\_CHECK\_FAILED | IP address check failed |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | USR\_UNVERIFIED | User is unverified |
| 400 | RISK\_DAILY\_LIMIT\_EXCEEDED | Daily limit exhausted |
| 400 | RISK\_EDD\_REQUIRED | EDD required |
| 400 | BANK\_ACCOUNT\_UNVERIFIED | UPI or bank account is unverified |
| 400 | BANK\_NOT\_FOUND | UPI or bank account does not belong to user or not found |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |
| 503 | SYS\_SERVICE\_UNAVAILABLE | Service unavailable |

### /payout/quotation/:quotation\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/initiate

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | PAYOUT\_DUPLICATE\_CLIENT\_REF\_ID | Client Reference ID already exists |
| 400 | PAYOUT\_QUOTATION\_NOT\_FOUND | Quotation not found |
| 400 | PAYOUT\_QUOTATION\_LINKED | Quotation linked to another payout |
| 400 | PAYOUT\_QUOTATION\_EXPIRED | Quotation has expired |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/:payout\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | PAYOUT\_INVALID\_PAYOUT\_ID | Invalid Payout ID |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/history

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/edd/save

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_UNVERIFIED | Customer is unverified |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payout/edd/list

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | INPUT\_INVALID\_PARAMETER | Invalid user ID |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

## Payin Endpoints

### /payin/configuration

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/limits/:customer\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_UNVERIFIED | User is unverified |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/fetch-rate

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/quotation

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | PAYIN\_AMOUNT\_ZERO\_OR\_NEGATIVE | Entered amount cannot be zero or negative |
| 400 | PAYIN\_AMOUNT\_BELOW\_MIN | Entered amount is less than minimum txn amount |
| 400 | PAYIN\_AMOUNT\_ABOVE\_MAX | Entered amount exceeds maximum txn amount |
| 400 | RISK\_AML\_FAILED | AML screening failed |
| 400 | RISK\_IP\_CHECK\_FAILED | IP address check failed |
| 400 | USR\_UNVERIFIED | User is unverified |
| 400 | RISK\_DAILY\_LIMIT\_EXCEEDED | Daily limit exhausted |
| 400 | RISK\_EDD\_REQUIRED | EDD required |
| 400 | BANK\_ACCOUNT\_UNVERIFIED | UPI or bank account is unverified |
| 400 | BANK\_NOT\_FOUND | UPI or bank account does not belong to user or  not found |
| 400 | BANK\_MODE\_MISMATCH | Bank ID should match with selected payment mode |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |
| 503 | SYS\_SERVICE\_UNAVAILABLE | Service unavailable |

### /payin/quotation/{quotation_id}

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/initiate

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 400 | PAYIN\_DUPLICATE\_CLIENT\_REF\_ID | Client Reference ID already exists |
| 400 | PAYIN\_QUOTATION\_NOT\_FOUND | Quotation not found |
| 400 | PAYIN\_QUOTATION\_LINKED | Quotation linked to another payin |
| 400 | PAYIN\_QUOTATION\_EXPIRED | Quotation has expired |
| 400 | PAYIN\_DUPLICATE\_UTR | UTR already linked to another payin |
| 400 | PAYIN\_INVALID\_UTR\_FORMAT | Invalid UTR format |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/:payin\_id

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/history

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/edd/save

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | USR\_UNVERIFIED | Customer is unverified |
| 400 | REQ\_FIELD\_MISSING | Mandatory field is missing |
| 400 | INPUT\_MALFORMED | Malformed input |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |

### /payin/edd/list

| Status Code | Failure Code | Failure Reason |
| - | - | - |
| 400 | INPUT\_INVALID\_PARAMETER | Invalid user ID |
| 500 | SYS\_INTERNAL\_ERROR | Internal server error |
