post https://api-approval.tingg.africa/v3/checkout-api/charge-with-token
A token is sent instead of card details.
Headers
Header | Value | Required |
---|---|---|
Authorization | Bearer <BEARER_TOKEN> Generated during the authenticate request | YES |
Content-Type | application/json | YES |
apikey | YES |
Request
Parameter Name | Type | Description | Required |
---|---|---|---|
service_code | string | Unique assigned code from your sandbox or shared with you | Yes |
merchant_transaction_id | string | Unique transaction ID identifying the transaction as given by the merchant. | Yes |
payment_option_code | integer | Value representing the payment option for the card change | Yes |
locale | string | It is the language used for the transaction | Yes |
country_code | string | Country code for where the request will be processed | Yes |
is_cvv_less | String | Value should be true for 2d | Yes |
3ds | string | true/false - false to charge the card without 3DS | Yes |
extra_data | JSON Object | Extra Details | Yes |
extra_data.checkout_request_id | integer | Unique request ID identifying the transaction provided by the checkout platform. | Yes |
order | JSON Object | Order Details | Yes |
order.account_number | String | Is the unique reference of the order | Yes |
order.amount | double | It is the amount to be charged on the card | Yes |
order.currency_code | string | Is the currency of the amount being transacted / charged | Yes |
order.description | string | It contains a description of the transaction | Yes |
source_Of_funds.token | String | Tokenized card details | Yes |
billing_details | JSON Array | Billing Details | Yes |
billing_details.address | JSON Array | Bill Address Details | Yes |
billing_details.address.city | string | Billing address, City | Yes |
agreement_id | String | This is the enrolment ID generated by Mastercard confirming the customer has agreed to be charged for recurring payments | No |
Request Body
{
"service_code": "{{service_code}}",
"country_code": "KEN",
"3ds": "false",
"is_cvv_less":"true"
"billing_details": {
"address": {
"country_code": "KEN",
"city": "Kenya"
},
"customer": {
"first_name": "Gunnar",
"email_address": "[email protected]",
"surname": "Stewart",
"mobile_number": "254791498482"
}
},
"merchant_transaction_id": "MT546871068",
"payment_option_code": "ECO_CARD",
"source_Of_funds": "R0JNWkRscEpnam1heFB5TFJaSGtnQzVuSXdBTmdPMFZ0QzlvdkhJZkVzTT0=",
"locale": "en",
"order": {
"account_number": "31318461285",
"amount": "1000.00",
"currency_code": "KES",
"description": "Order XX Purchase"
},
"extra_data": {
"checkout_request_id": 565
},
"browser_details": {
"accept_header": "text/html",
"screen_color_depth": "24",
"language": "en-US",
"screen_height": "768",
"screen_width": "1366",
"timezone": "-180",
"java_enabled": "false",
"javascript_enabled": "true",
"ip_address": "192.123.12.1",
"user_agent": "Firefox 105.0"
},
"agreement_id": "345267278823"
}
Response
Parameter Name | Type | Description |
---|---|---|
status | JSON Object | Contains status code and description |
status_code | integer | The response status code |
status_description | string | Exact description of the status |
results | JSON Array | Null when request fails |
3ds | string | true/false - false to charge the card without 3DS |
mssidn | string | Customer Mobile number |
amount_paid | double | Amount authorized on the card |
cpg_transaction_id | integer | Unique transactionID on the Cellulant Payment Gateway |
payer_transaction_id | string | Unique transaction reference/id from the acquirer |
account_number | string | Payment reference |
currency_code | string | ISO Code currency for the transaction |
token | String | Tokenized card details |
card_prefix | String | Card Number |
agreement_id | String | This is the enrolment ID generated by Mastercard confirming the customer has agreed to be charged for recurring payments |
Response Body
{
"status": {
"status_code": 200,
"status_description": "Card Charge Success"
},
"results": {
"3ds": "false",
"msisdn": 254791498482,
"amount_paid": "1000.00",
"cpg_transaction_id": "11198241964421",
"payer_transaction_id": "68820_302413265194",
"account_number": "31318461289",
"currency_code": "KES",
"token": null,
"card_prefix": "512345xxxxxx0008",
"agreement_id": "3435627778882"
}
}
Status Codes
Status Code | Status Description |
---|---|
200 | Transaction was successful |
203 | Rejected due to Address Verification System data mismatch (name, address, etc.). Retry with a different card or contact your bank to update address details |
204 | Transaction may or may not have been successful, but MUST be canceled to comply with sanctions and law enforcement. Retry with a different card |
205 | Transaction rejected due to CVV mismatch. Retry transaction with correct CVV |
209 | The card is expired. Retry with a different card |
210 | Transaction has been blocked due to fraud. Retry with a different card |
211 | Amount is too high, too low, does not match a previous authorisation or is otherwise invalid. Retry with a different amount |
212 | Card data (PAN, expiry date or CVV) are invalid. Retry with correct card details |
213 | PAN is invalid. Retry with correct card PAN |
214 | Transaction declined by acquirer. Retry with a different card |
215 | Rejected due to problems on the issuer side. Retry with a different card |
216 | Insufficient funds or withdrawal limit exceeded. Fund account or retry with a different card |
217 | Card reported as lost. Contact issuing bank or retry with a different card |
219 | Transaction not permitted to either issuer, cardholder, acquirer or merchant. Retry with a different card |
220 | Transaction was successful for only a partial amount, void transaction and try again |
222 | Rejected due to issues with cardholder PIN. Retry with correct card PIN or a different card |
223 | Transaction has been rejected, please contact your card issuer or retry with a different card |
224 | Transaction was processed, but has been flagged for manual review due to suspicion of fraud |
225 | Card has been reported as stolen. Contact issuing bank |
226 | Transaction timed out with unclear status; recommend to cancel and retry with a different card |
616 | Token not found. Retry with a valid token |
617 | Duplicate reference number. Reinitiate transaction with a unique Merchant transaction ID |
629 | Transaction blocked due to suspected fraud. Contact card issuer for support |
631 | Missing card number. Please provide the card number |
632 | Missing card expiry field. Please provide the card expiry field |
633 | Missing card expiry month field. Please provide the card expiry month field |
634 | Missing card expiry year field. Please provide the card expiry year field |
637 | Invalid Country Code passed. Please provide the correct country code |
642 | Customer email is required |
644 | Invalid card BIN format. Value should be numeric |
647 | Card BIN is required |
648 | Invalid card BIN length passed |
651 | Missing card number. Please provide card number for card tokenization requests |
655 | Incorrect card pin length. Card PIN must be four (4) digit(s) |
656 | Unsupported request type. Set isCvvLess flag to True |
660 | Invalid card length %s scheme. % card length should be % |
661 | Invalid card PAN. Retry with correct card PAN |
662 | Incorrect Expiry year length. Expiry year must be 2 digits |
663 | Incorrect Expiry month length. Expiry month must be 2 digits |
664 | Incorrect Expiry month. Expiry month must be value must be between 1 and 12 |
665 | Incorrect Expiry year. Expiry month must be value must be between 0 and 99 |
667 | Invalid CVV format. Card Verification Value must be a numeric value between 3 and 4 digits |
668 | BIN passed in card issuer information does not match card BIN |
671 | Card details is not required for delete token requests. Send only token |
672 | Missing token. Token is required delete token requests |
673 | Missing card pin. cardPin is required for VERVE Cards |
675 | Unsupported request type. Set tokenizeCard flag to false |
1067 | We are unable to process your request at the moment. Please contact support via [email protected] |
1700 | Invalid currencyCode or currencyCode {currencyValue} has not been configured |
1701 | Invalid or expired request. Data not found for the specified service and checkoutRequestId |
1702 | Account Number Mismatch. Account number should be same as used in initiate checkout request |
1703 | Invalid countryCode or countryCode {countryCodeValue} has not been configured |
1704 | Payment Option not configured for paymentOptionCode and countryCode |
1707 | Invalid sourceOfFunds value passed. Encrypt with valid encryption credentials |