The API Response object is always sent as a JSON string and it contains at least a status and a message. The data field is optional depending on the request the user is trying to make.

    status: "success", // mandatory
    code: "200", // mandatory
    message: "Transaction successful",  // optional
    data: {} // optional
    errors: [] // optional

Transaction status: can be "pending", "success", "error"

Only HTTP Response (code 200 - OK + status: success) means the transaction/activity request is successful, every other response code means that the request failed.

You may get an HTTP status code (200 - Ok + status: pending). For such transactions please use the re-query service to confirm the real and final status of the transaction as we rely on third-party providers and so are unable to ascertain the final status as at the time the response was sent.

Failures usually result in an HTTP status code that is not 200, (i.e. 400, 500, 503 etc.) however, it is important to watch out for the code property directly in the main response body before you make a decision on whether the transaction has truly failed. All possible error codes are listed under the codes section below on this page

For failed requests, containing any of these codes listed here in the response body, Kindly do a re-query to confirm the real status of the transaction as these transactions may later result in a "successful" or a "failed" transaction as the case may be.

BX0001 - Connection Timeout: Retried 3 times and no response from the provider.
BX0019 - Request status unknown, Connection Timeout
BX0021 - Transaction status unknown: Please re-query to confirm final status
BX0024 - No response from the connecting service provider
EXC00103 - Requested service is not active.
EXC00105 - Balance could not be obtained.
EXC00109 - Service is blocked.
EXC00114 - Exchange is still pending
EXC00124 - The provider platform did not respond in a timely manner.
UNK0001 - Unknown error on the platform
EXC00001 - Bad Gateway From Provider (Requery)

Basic/Standard HTTP Status Codes:

200 - Successful
400 - Bad requests
401 - Unauthorized / Authentication / Authorization Issues
422 - Bad requests from request field validation errors
500 - Failure in processing transactions or users requests

Possible Codes that may be returned in the response body:

The "code" property of the response object can be any of the error codes that will be shared below.

Error CodesError Descriptions
400Bad Request data
503Failed Transaction from the service provider
500Failed Transaction from the service provider
404Transaction / Resource not found
BX0001Connection Timeout: Retried 3 times and no response from the service provider
BX0002Transaction does not exist
BX0003Invalid request parameters data
BX0004An In-valid user account in authorization headers sent
BX0005Baxi request date is too old, use the current GMT date.
BX0006Hash Signature does not match request data sent.
BX0007Unidentified User Account
BX0008The request coming from an untrusted source
BX0009Client not permitted to access user data
BX0010The agent does not exist
BX0011Invalid Bearer String, expected keyword Baxi or API key
BX0012Authentication/Authorization mechanism not implemented
BX0013Bearer Token not provided
BX0014Token has expired.
BX0015Invalid token supplied
BX0016Token has been blacklisted,
BX0017Server Error: Unable to retrieve property
BX0018Request route not found,
BX0019Request status unknown, Connection Timeout
BX0020An error occurred during transaction or request processing
BX0021Transaction status unknown: Please query to confirm final status
BX0022Failed Transaction from the service provider
BX0023Duplicate Agent Transaction Reference
BX0024No response from the connecting service provider
BX0025Error encountered during name finder validation
BX0026Requested biller service does not exist
PROG0001Programming error on the platform. (Should contact CDL support)
PROG0002Programming error on the platform. (Should contact CDL support)
PROG0003Programming error on the platform. (Should contact CDL support)
SEC00001Bad credentials
SEC00002The user account has expired.
SEC00003User credentials have expired.
SEC00004The user is not active.
SEC00005The user is blocked.
SEC00100Unknown authentication error. (Should contact CDL support)
SEC01001Access is denied.
UNK0001Unknown error on the platform. (Should resolve through API
EXC00100The service code is not recognized. (Should check client implementation)
EXC00102Not enough funds were available to complete the exchange.
EXC00103The requested service is not active. (Should resolve through API)
EXC00105The balance could not be obtained. (Should resolve through API)
EXC00107The cancellation of the exchange was rejected by the provider. (Should contact CDL support)
EXC00109The service is blocked. (Should resolve through API)
EXC00112The query of exchange failed because the exchange was never registered on the platform.
EXC00113The exchange is already canceled by the provider.
EXC00114The exchange is still pending. (Should resolve through API)
EXC00115The exchange was not sent to the provider.
EXC00116The exchange request was already registered on the platform with the same ID but with different values. (Should check client implementation)
EXC00117There was an error while calculating commissions. (Must contact CDL support immediately)
EXC00118The sent service fee is invalid.
EXC00119The payment collector code is not recognized. (Should check client implementation)
EXC00123Service is not allowed.
EXC00124The provider platform did not respond in a timely manner. (Should resolve through API)
EXC00125The exchange request is not valid.
EXC00126The cancellation failed. (Must be resolved through 'query' API call)
EXC00127The exchange amount is too high.
EXC00130Payment method not recognized. (Should check client implementation)
EXC00131The exchange request is not allowed at the moment.