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 |
