1. Formulate Payload

You should start by using the data in the table below, which contains a list of the parameters you can pass when initializing a transaction.

Parameters

KeyValue TypeRequiredDescription
merchant_transaction_idStringYesUnique merchant reference for the request raised for express checkout. (Has a limit of 100 characters)
account_numberStringYesAccount number for the customer on the merchant system. This is the reference the customer will pay to. (Has a limit of 15 characters)
msisdnStringYesCustomer's Phone number is formatted as given in the E.164 phone numbering
country_codeStringYes3 digit ISO code of the country you wish to collect payment for.
currency_codeStringYes3 digit ISO code of the currency the merchant is invoicing for.
due_dateStringYesTime window a customer should complete making a payment. A future date when the request expires in UTC with the date format YYYY-MM-DD HH:mm:ss. If not passed passed time defaults to 12 hours.
request_amountDoubleYesAmount you wish to start collecting for.
service_codeStringYesThe service code assigned to the merchant on the tingg portal
callback_urlStringYesString of the endpoint we are to send the webhook request to.
success_redirect_urlStringYesWhere we will redirect the customer to after a successful payment is made.
fail_redirect_urlStringYesWhere we will redirect the customer to when the payment time passed above expires
customer_first_nameStringNoCustomer's first name
customer_last_nameStringNoCustomer's last name
customer_emailStringNoCustomer's email address.
payment_option_codeStringNoPayment option code of the payment options the merchant wishes to collect for.
pending_redirect_urlStringNoWhere we redirect the customer to after the customer clicks back to the merchant
request_descriptionStringNoShows the description of the item being purchased. (Has a limit of 100 characters)
language_codeStringNoLanguage code you wish to display instructions for payment for. E.g
  • fr - French
  • en - English
  • ar - Arabic
  • pt - Portuguese
prefill_msisdnBooleanNoWhen set to false the phone number provided above will not be pre-filled in the payment form. Defaults to true
charge_beneficiariesJSONArrayNoExtra charge client we should settle to

Charge_beneficiaries:

KeyValue TypeRequiredDescription
charge_beneficiary_codeStringNoThis is the client who we are to settle to on behalf of the customer
amountDoubleNoAmount we should settle the service provider above

{
   "msisdn":"+254700000000",
   "account_number":"oid39",
   "country_code":"KEN",
   "currency_code":"KES",
   "customer_email":"[email protected]",
   "customer_first_name":"John",
   "customer_last_name":"Doe",
   "due_date":"2021-11-18 16:15:30",
   "fail_redirect_url":"https://webhook.site/6c933f61-d6da-4f8e-8a44-bf0323eb8ad6",
   "merchant_transaction_id":"txn_id_342",
   "payment_option_code":"",
   "callback_url":"https://webhook.site/6c933f61-d6da-4f8e-8a44-bf0323eb8ad6",
   "pending_redirect_url":"https://webhook.site/6c933f61-d6da-4f8e-8a44-bf0323eb8ad6",
   "request_amount":"100",
   "request_description":"Dummy merchant transaction",
   "success_redirect_url":"https://webhook.site/6c933f61-d6da-4f8e-8a44-bf0323eb8ad6",
   "invoice_number":"",
   "language_code":"en",
   "service_code":"ABCDEXAMPLEONLINE",
   "charge_beneficiaries":[
      {
         "charge_beneficiary_code":"KRA",
         "amount":30
      },
      {
         "charge_beneficiary_code":"GLOVO",
         "amount":70
      }
   ]
}