Reference of Xenith status codes and status message
Pay In
Create Pay In
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 No retry | The request failed due to invalid input parameters. Check the error response for details on which fields are invalid and correct them accordingly. Common issues include missing required fields or incorrect data formats. |
"DUPLICATE_TRANSACTION_ERROR" 400 No retry | Idempotency key has been used before. Use a unique idempotency key and try again. |
"CUSTOMER_BLACKLISTED" 400 No retry | Customer is blacklisted. The specified customer reference is blacklisted and cannot be used for payins. |
"MINIMUM_AMOUNT_PAYIN_LIMIT" 400 No retry | The transaction amount is below the minimum allowed limit for pay-ins. Contact our support team to get information about the current minimum amount limits for each payment channel. Adjust your request based on the information provided by support. |
MAXIMUM_AMOUNT_PAYIN_LIMIT 400 No retry | The transaction amount exceeds the maximum allowed limit for pay-ins. Reach out to our support team to inquire about the current maximum amount limits for each payment channel. Modify your request to be within the limits specified by the support team. |
"INVALID_PAYMENT_CHANNEL" 400 No retry | The specified payment channel is not valid or not supported. Ensure you're using a correct and active payment channel code as listed in our documentation. |
"MAXIMUM_DAILY_TRANSACTION_VOLUME_EXCEEDED" 400 No retry | You've reached the maximum allowed transaction volume for the day. This limit is in place for security reasons. Wait until the next day to process more transactions, or contact support if you need to increase your limit. |
"MAINTENANCE_DOWNTIME" 400 No retry | The specified payment channel is temporarily unavailable due to scheduled maintenance/downtime. Please try again later once the maintenance schedule is completed |
"REQUEST_TIMEOUT" 408 | The request did not complete within the allowed time. The transaction may or may not have been created. To avoid duplicate charges: 1. Use the Get Payin List API to check if the payin was created. 2. If not found, you can safely retry the request. 3. When retrying, use the X-Idempotency-Key header with the same value to prevent duplicate transactions. |
"KYC_REQUIRED"422 | • Currently applies to JPY - VIRTUAL ACCOUNT only. • The submitted customerReference has no KYC submission yet. Submit the customer's KYC via Submit KYC API and wait for the status to become APPROVED before Pay In can be created. |
"KYC_PENDING"422 | • Currently applies to JPY - VIRTUAL ACCOUNT only. • The customer's customerReference has been submitted for KYC but is still being reviewed. Wait for the status to become APPROVED before Pay In could be created. Check the current status via Get KYC Status API. |
"KYC_REJECTED"422 | • Currently applies to JPY - VIRTUAL ACCOUNT only. • KYC for the submitted customerReference has been submitted before and rejected. Contact support for rejection reason, and resubmit KYC again if applicable. |
"SERVER_ERROR" 500 | An error occurred while connecting to our server. This could be due to temporary server issues. To ensure the transaction wasn't processed: 1. Use the Get Payin List API to check if the disbursement was created. 2. If not found, you can safely retry the request. 3. When retrying, use the X-Idempotency-Key header with the same value to prevent duplicate transactions. |
Get Pay In Detail
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 | Invalid input parameters. Check the error response for details on which parameters are incorrect. Review the API documentation for proper parameter format and requirements. |
"DATA_NOT_FOUND" 404 | The requested payin detail does not exist or is not accessible. Verify the payin ID and ensure you have the necessary permissions to access this information. |
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. Retrying is safe for this GET operation. |
Get Pay In List
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 | Invalid input parameters. Check the error response for details on which parameters are incorrect. Review the API documentation for proper parameter format and requirements. |
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. Retrying is safe for this GET operation. |
Simulate Pay In
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 | Invalid input parameters. Check the error response for details on which parameters are incorrect. Review the API documentation for proper parameter format and requirements. |
"TRANSACTION_STATUS_INVALID" 400 | The provided transaction status is not valid for this operation. Verify the allowed status values in the API documentation. |
"TRANSACTION_CATEGORY_INVALID" 400 | The specified transaction category is invalid. Ensure you're using a supported category as listed in the API documentation. |
"INVALID_TRANSACTION_ID" 400 | The transaction ID provided is not valid or does not exist. Check that you're using the correct transaction ID. |
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. |
Pay Out
Create Pay Out
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 No retry | The request failed due to invalid input parameters. Check the error response for details on which fields are invalid and correct them accordingly. Common issues include missing required fields or incorrect data formats. |
"DUPLICATE_TRANSACTION_ERROR" 400 No retry | Idempotency key has been used before. Use a unique idempotency key and try again. |
"INVALID_PAYOUT_CHANNEL" 400 No retry | The specified payout channel is not valid or not supported. Ensure you're using a correct and active payout channel code as listed in our documentation. |
"DESTINATION_ACCOUNT_BLACKLISTED" 400 No retry | Destination account is blacklisted. The specified bank account cannot be used for payouts as it has been blacklisted. |
"CUSTOMER_BLACKLISTED" 400 No retry | Customer is blacklisted. The specified customer reference is blacklisted and cannot be used for payouts. |
"MINIMUM_AMOUNT_PAYOUT_LIMIT" 400 No retry | The transaction amount is below the minimum allowed limit for payouts. Contact our support team to get information about the current minimum amount limits for each payout channel. Adjust your request based on the information provided by support. |
"MAXIMUM_AMOUNT_PAYOUT_LIMIT" 400 No retry | The transaction amount exceeds the maximum allowed limit for payouts. Reach out to our support team to inquire about the current maximum amount limits for each payout channel. Modify your request to be within the limits specified by the support team. |
"INVALID_ACCOUNT_NAME" 400 No retry | The provided account name is invalid or does not match our records. Verify the account name and ensure it's correctly formatted and matches the account associated with the payout. |
"MAXIMUM_DAILY_TRANSACTION_VOLUME_EXCEEDED" 400 No retry | You've reached the maximum allowed transaction volume for the day. This limit is in place for security reasons. Wait until the next day to process more transactions, or contact support if you need to increase your limit. |
"MAINTENANCE_DOWNTIME" 400 No retry | The specified payment channel is temporarily unavailable due to scheduled maintenance/downtime. Please try again later once the maintenance schedule is completed |
"INSUFFICIENT_BALANCE" 422 No retry | There are insufficient funds to complete the payout transaction. Ensure your account has adequate balance before retrying the payout. |
"REQUEST_TIMEOUT" 408 | The request did not complete within the allowed time. The payout may or may not have been created. To avoid duplicate disbursements: 1. Use the Get Payout List API to check if the payout was created. 2. If not found, you can safely retry the request. 3. When retrying, use the X-Idempotency-Key header with the same value to prevent duplicate transactions. |
"KYC_REQUIRED"422 | The submitted customerReference has no KYC submission yet. Submit the customer's KYC via Submit KYC API and wait for the status to become APPROVED before Pay Out can be created. |
"KYC_PENDING"422 | The customer's customerReference has been submitted for KYC but is still being reviewed. Wait for the status to become APPROVED before Pay Out could be created. Check the current status via Get KYC Status API. |
"KYC_REJECTED"422 | KYC for the submitted customerReference has been submitted before and rejected. Contact support for rejection reason, and resubmit KYC again if applicable. |
"SERVER_ERROR" 500 | An error occurred while connecting to our server. This could be due to temporary server issues. To ensure the transaction wasn't processed: 1. Use the Get Payout List API to check if the payout was created. 2. If not found, you can safely retry the request. 3. When retrying, use the X-Idempotency-Key header with the same value to prevent duplicate transactions. |
Get Pay Out Detail
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 | Invalid input parameters. Check the error response for details on which parameters are incorrect. Review the API documentation for proper parameter format and requirements. |
"DATA_NOT_FOUND" 404 | The requested payout detail does not exist or is not accessible. Verify the payout ID and ensure you have the necessary permissions to access this information. |
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. Retrying is safe for this GET operation. |
Get Pay Out List
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 | Invalid input parameters. Check the error response for details on which parameters are incorrect. Review the API documentation for proper parameter format and requirements. |
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. Retrying is safe for this GET operation. |
Get Balances
| Error Code | Description |
|---|---|
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. |
Account Inquiry
Sync Account Inquiry
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 No retry | The request failed due to invalid input parameters. Check the error response for details on which fields are invalid and correct them accordingly. Common issues include missing required fields or incorrect data formats. |
"INVALID_PAYOUT_CHANNEL" 400 No retry | The specified payout channel is not valid or not supported. Ensure you're using a correct and active payout channel code as listed in our documentation. |
"INVALID_ACCOUNT" 400 No retry | The destination account is invalid. The response for this error will have a different format, containing the inquiryId, a status of FAILED, and a failedReason of INVALID_ACCOUNT. This is a final status. |
"REQUEST_TIMEOUT" 408 | The inquiry did not complete within the allowed time. The destination bank may be slow or unreachable. Safe to retry after a brief wait. |
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. |
Transaction Error Codes
| Error Code | Description |
|---|---|
| ACCOUNT_NAME_MISMATCH | Account name mismatch: expected 'expected_name', but received 'submitted_name'. |
| ACCOUNT_SELECTION_TIMEOUT | Account selection timed out. Please restart the transaction and try again. |
| ACCOUNT_STATUS_ERROR | The account status does not allow the transaction to proceed. Please check the account and try again. |
| BANK_MAINTENANCE | Bank is under maintenance. Please try again later. |
| INSUFFICIENT_BALANCE | Insufficient account balance to complete the transaction. Please ensure sufficient funds are available and try again. |
| INVALID_ACCOUNT | Invalid account. Please check and update the details. |
| INVALID_DEPOSIT_ACCOUNT_TYPE | The deposit account type is invalid. Please ensure the correct account type is used. |
| INVALID_AMOUNT | The payment amount does not match the requested amount. |
| INVALID_LOGIN_CREDENTIALS | Invalid login credentials. Please check the details and try again. |
| INVALID_OTP | Invalid OTP. Please check the OTP and try again. |
| INVALID_SECURITY_ANSWER | Invalid security answer. Please check the answer and try again. |
| LOGIN_TIMEOUT | Login attempt timed out. Please restart the transaction and try again. |
| MERCHANT_REJECTED | Transaction was rejected by the merchant. Please review and resubmit if needed. |
| OTP_TIMEOUT | OTP entry timed out. Please restart the transaction and try again. |
| PAYER_NAME_MISMATCH | The payer’s bank account name does not match the submitted account name. Please ensure the correct account holder name is used. |
| SERVICE_UNAVAILABLE | Service is currently unavailable. Please retry shortly. |
| USER_ABORTED | The transaction was cancelled by the user before completion. |
KYC
A rejected KYC application is not an API error — it surfaces as a REJECTED status on the KYC record. The transaction-gating codes (KYC_REQUIRED, KYC_PENDING, KYC_REJECTED) are returned by the Pay In and Pay Out APIs, not by the KYC APIs; see Create Pay In and Create Pay Out errors.
Submit KYC
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 | The request failed due to invalid input parameters, such as a missing required field or an incorrectly formatted value. The fields object in the error response lists each invalid field. Correct them and submit again. |
"DUPLICATE_TRANSACTION_ERROR" 400 No retry | The X-Idempotency-Key has been used before with a different request body. Use a unique idempotency key and try again. |
"REQUEST_TIMEOUT" 408 | The request did not complete within the allowed time. The submission may or may not have been created. To avoid duplicate submissions: 1. Use the Get KYC Status API to check if the KYC was submitted. 2. If not found, you can safely retry the request. 3. When retrying, use the X-Idempotency-Key header with the same value. |
"SERVER_ERROR" 500 | An error occurred while connecting to our server. The KYC record is kept as PENDING and is never rejected automatically. Reconcile using the Get KYC Status API before submitting again. |
"SERVICE_UNAVAILABLE" 503 | The KYC service is temporarily unavailable. Wait briefly and retry with the same X-Idempotency-Key. |
Get KYC Status
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR" 400 No retry | Invalid input parameters. Check that customerReference is present and correctly formatted. |
"DATA_NOT_FOUND" 404 | No KYC record was found for the submitted customerReference. Verify the reference matches the one used when the KYC was submitted. |
"SERVER_ERROR" 500 | An unexpected server error occurred. Wait briefly and retry. If the error persists after multiple attempts, contact support. Retrying is safe for this GET operation. |
Get All Transactions
| Error Code | Description |
|---|---|
"API_VALIDATION_ERROR"400No retry | Unknown or removed query parameter, a repeated value for a normally single-valued parameter, a present-but-empty value, an invalid enum value, more than 100 values for a repeatable parameter, limit outside 1-100, createdTimeGte after createdTimeLte, both afterId and beforeId present, a malformed cursor, or a cursor issued under a different filter set. Fix the request; not retryable as-is. |
"FORBIDDEN_ACCESS"403No retry | The credential is valid, but the API key lacks the TRANSACTION product read permission. Grant the required permission on the existing key rather than rotating it. |
"SERVER_ERROR"500 | An unexpected server error occurred. Wait briefly and retry. Retrying is safe for this GET operation. If the error persists after multiple attempts, contact support. |

