Response

API response object are always sent as 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 transaction / activity request is successful, every other response code means 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 e.t.c) 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 - Provider platform did not respond in a timely manner. UNK0001 - Unknown error on the platform

BASIC/STANDARD HTTP Status Codes:

200 - Successful 400 - For Bad requests 401 - Unauthorised / 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 Codes

Error Descriptions

200

successful

400

Bad Request data

503

Failed Transaction from the service provider

500

Failed Transaction from the service provider

404

Transaction / Resource not found

BX0001

Connection Timeout: Retried 3 times and no response from the service provider

BX0002

Transaction does not exist

BX0003

Invalid request parameters data

BX0004

An In-valid user account in authorization headers sent

BX0005

Baxi request date is too old, use the current GMT date.

BX0006

Hash Signature does not match request data sent.

BX0007

Unidentified User Account

BX0008

The request coming from an untrusted source

BX0009

Client not permitted to access user data

BX0010

The agent does not exist

BX0011

Invalid Bearer String, expected keyword Baxi or API key

BX0012

Authentication/Authorization mechanism not implemented

BX0013

Bearer Token not provided

BX0014

Token has expired.

BX0015

Invalid token supplied

BX0016

Token has been blacklisted,

BX0017

Server Error: Unable to retrieve property

BX0018

Request route not found,

BX0019

Request status unknown, Connection Timeout

BX0020

An error occurred during transaction or request processing

BX0021

Transaction status unknown: Please query to confirm final status

BX0022

Failed Transaction from the service provider

BX0023

Duplicate Agent Transaction Reference

BX0024

No response from the connecting service provider

BX0025

Error encountered during name finder validation

BX0026

Requested biller service does not exist

PROG0001

Programming error on the platform. (Should contact CDL support)

PROG0002

Programming error on the platform. (Should contact CDL support)

PROG0003

Programming error on the platform. (Should contact CDL support)

SEC00001

Bad credentials

SEC00002

The user account has expired.

SEC00003

User credentials have expired.

SEC00004

The user is not active.

SEC00005

The user is blocked.

SEC00100

Unknown authentication error. (Should contact CDL support)

SEC01001

Access is denied.

UNK0001

Unknown error on the platform. (Should resolve through API)

EXC00001

The exchange has failed for an unpredicted reason. ( Contact CDL support)

EXC00100

The service code is not recognized. (Should check client implementation)

EXC00102

Not enough funds were available to complete the exchange.

EXC00103

The requested service is not active. (Should resolve through API)

EXC00105

The balance could not be obtained. (Should resolve through API)

EXC00107

The cancellation of the exchange was rejected by the provider. (Should contact CDL support)

EXC00109

The service is blocked. (Should resolve through API)

EXC00112

The query of exchange failed because the exchange was never registered on the platform.

EXC00113

The exchange is already canceled by the provider.

EXC00114

The exchange is still pending. (Should resolve through API)

EXC00115

The exchange was not sent to the provider.

EXC00116

The exchange request was already registered on the platform with the same ID but with different values. (Should check client implementation)

EXC00117

There was an error while calculating commissions. (Must contact CDL support immediately)

EXC00118

The sent service fee is invalid.

EXC00119

The payment collector code is not recognized. (Should check client implementation)

EXC00123

Service is not allowed.

EXC00124

The provider platform did not respond in a timely manner. (Should resolve through API)

EXC00125

The exchange request is not valid.

EXC00126

The cancellation failed. (Must be resolved through 'query' API call)

EXC00127

The exchange amount is too high.

EXC00130

Payment method not recognized. (Should check client implementation)

EXC00131

The exchange request is not allowed at the moment.