Response Codes

Instant Transfers List of Response Codes

Ayoconnect's Instant Transfer APIs use conventional HTTP response codes to indicate the result of an API request. However, for asynchronous APIs, the HTTP response reflects the request handling result and may not represent the final transaction outcome.

In general:

  • 2xx indicates that the request was successfully received and accepted for processing. For Account Validation and Disbursement, this does not mean the final result is already available, as the transaction should still be in progress and the final status will be delivered via callback. For Status Inquiry and Balance Inquiry, the result is returned directly in the API response.
  • 4xx indicates that the request failed due to invalid or incomplete input, such as a missing header, missing required parameter, or invalid value. The request may be retried after the request is corrected.
  • 5xx indicates an internal error on Ayoconnect’s side or the bank’s side. For Account Validation and Disbursement, this should not be treated as a final failed request. The request should remain in Pending / Processing state while waiting for the callback.
  • 5xx indicates an internal error on Ayoconnect’s side or the bank’s side. For asynchronous APIs (such as Account Validation and Disbursement), this should not be treated as the final request result. The transaction / request should remain in Pending / Processing state while waiting for the callback.

If no callback is received within 15 minutes after a 5xx response on the Disbursement API, the client may call the Status Inquiry API using the same X-EXTERNAL-ID to retrieve the latest transaction status.

For Disbursement, if a 5xx response is received, the transaction must remain in Pending / Processing state while waiting for the callback. If no callback is received within 15 minutes, the client may call the Status Inquiry API using the same X-EXTERNAL-ID to retrieve the latest transaction status.

For Account Validation, the callback is typically received within a few seconds. If no callback is received within 15 seconds, the same request may be resent using the same request identifier (same idempotency key) to check whether the original request is already being processed. If no callback is received within 1 minute, the request may be retried.

As the API may return errors for different reasons, such as invalid parameters, authentication issues, or downstream processing issues, the integration should handle all possible HTTP response codes gracefully.

All error responses include an error code and a short human-readable message describing the reported issue.


Error responses

Error responses are represented by a combination of the HTTP response code, service code, and case code.

Error response = HTTP response code + service code + case code


Service Codes

Below is a list with all the Instant Transfer service codes:

Service codeService
16Account Validation
18Disbursement
36Status Inquiry
11Balance Inquiry

Error Codes

HTTP CodeService CodeCase CodeResponse MessageResponse Description
200any00SuccessfulSuccessful
202any00Request in ProgressTransaction still on process
400any00Bad RequestGeneral request failed error, including message parsing failed.
400any01Invalid Field Format {field name}Invalid format
400any02Invalid Mandatory Field {field name}Missing or invalid format on mandatory field
401any00Unauthorized. [reason]General unauthorized error (No Interface Def, API is Invalid, Oauth Failed, Verify Client Secret Fail, Client Forbidden Access API, Unknown Client, Key not Found)
401any01Invalid Token (B2B)Token found in request is invalid (Access Token Not Exist, Access Token Expiry)
401any02Invalid Customer TokenToken found in request is invalid (Access Token Not Exist, Access Token Expiry)
401any03Token Not Found (B2B)Token not found in the system. This occurs on any API that requires token as input parameter
401any04Customer Token Not FoundToken not found in the system. This occurs on any API that requires token as input parameter
403any00Transaction ExpiredTransaction expired
403any01Feature Not Allowed [Reason]This merchant is not allowed to call Direct Debit APIs
403any02Exceeds Transaction Amount LimitExceeds Transaction Amount Limit
403any03Suspected FraudSuspected Fraud
403any04Activity Count Limit ExceededToo many request, Exceeds Transaction Frequency Limit
403any05Do Not HonorAccount or User status is abnormal
403any06Feature Not Allowed At This Time. [reason]Cut off In Progress
403any07Card BlockedThe payment card is blocked
403any08Card ExpiredThe payment card is expired
403any09Dormant AccountThe account is dormant
403any10Need To Set Token LimitNeed to set token limit
403any11OTP BlockedOTP has been blocked
403any12OTP Lifetime ExpiredOTP has been expired
403any13OTP Sent To Cardholerinitiates request OTP to the issuer
403any14Insufficient FundsInsufficient Funds
403any15Transaction Not Permitted.[reason]Transaction Not Permitted
403any16Suspend TransactionSuspend Transaction
403any17Token Limit ExceededPurchase amount exceeds the token limit set prior
403any18Inactive Card/Account/CustomerIndicates inactive account
403any19Merchant BlacklistedMerchant is suspended from calling any APIs
403any20Merchant Limit ExceedMerchant aggregated purchase amount on that day exceeds the agreed limit
403any21Set Limit Not AllowedSet limit not allowed on particular token
403any22Token Limit InvalidThe token limit desired by the merchant is not within the agreed range between the merchant and the Issuer
403any23Account Limit ExceedAccount aggregated purchase amount on that day exceeds the agreed limit
404any00Invalid Transaction StatusInvalid transaction status
404any01Transaction Not FoundTransaction not found
404any02Invalid RoutingInvalid Routing
404any03Bank Not Supported By SwitchBank not supported by switch
404any04Transaction CancelledTransaction is cancelled by customer
404any05Merchant Is Not Registered For Card Registration ServicesMerchant is not registered for Card Registration services
404any06Need To Request OTPNeed to request OTP
404any07Journey Not FoundThe journeyId cannot be found in the system
404any08Invalid MerchantMerchant does not exist or status abnormal
404any09No IssuerNo issuer
404any10Invalid API TransitionInvalid API transition within a journey
404any11Invalid Card/Account/Customer [info]/Virtual AccountCard information may be invalid, or the card account may be blacklisted, or Virtual Account number maybe invalid.
404any12Invalid Bill/Virtual Account [Reason]

The bill is blocked/ suspended/not found.

Virtual account is suspend/not found.

404any13Invalid AmountThe amount doesn't match with what supposed to
404any14Paid BillThe bill has been paid
404any15Invalid OTPOTP is incorrect
404any16Partner Not FoundPartner number can't be found
404any17Invalid TerminalTerminal does not exist in the system
404any18Inconsistent Request

Inconsistent request parameter found for the same partner reference number/transaction id

It can be considered as failed in transfer debit, but it should be considered as success in transfer credit.

Considered as success:
  • Transfer credit = (i) Intrabank transfer; (ii) Interbank transfer; (iii) RTGS transfer; (iv) SKNBI transfer;
  • Virtual account = (i) Payment VA; (ii) Payment to VA;
  • Transfer debit = (i) Refund payment; (ii) Void;
Considered as failed:
  • Transfer credit = (i) Transfer to OTC;
  • Transfer debit = (i) Direct debit payment; (ii) QR CPM payment; (iii) Auth payment; (iv) Capture;
404any19Invalid Bill/Virtual Account

The bill is expired.

Virtual account is expired.

405any00Requested Function Is Not SupportedRequested function is not supported
405any01Requested Opearation Is Not AllowedRequested operation to cancel/refund transaction Is not allowed at this time.
409any00ConflictCannot use same X-EXTERNAL-ID in same day
409any01Duplicate partnerReferenceNoTransaction has previously been processed indicates the same partnerReferenceNo already success
429any00Too Many RequestsMaximum transaction limit exceeded
500any00General ErrorGeneral Error
500Any01Internal Server ErrorUnknown Internal Server Failure, Please retry the process again
500Any02External Server ErrorBackend system failure, etc
504any00Timeouttimeout from the issuer

Notes:

  • These error codes are only reasons of failure, not determining the transaction status
  • Always determine transaction status from the 'status' field from the Callback, not Response

Did this page help you?