Checkout Reference
Jenga Payment Gateway is a solution that offers e-commerce merchants and their customers a secure mode of payment through various payment channels.
Jenga Payment Gateway functions by aggregating different digital payment channels available in the market to provide a single interface to users. It is hosted in the cloud, and merchants integrate it with their websites by including provided resource files.
Supported payment channels
- Cards (Visa, Mastercard, AMEX, Union Pay, Diners, JCB)
- Mobile Money (MPESA and Equitel)
- Pay with a bank account (Equity Bank Account)
- PayPal (coming soon)
Generating and using tokens
Please refer to the getting started guide on information about how to generate and use tokens for authentication
Integrating Jenga Payment Gateway
Payment parameters
Parameter | Meaning | Mandatory | Sample |
---|---|---|---|
token | The payment token generated in the previous step | YES | xccuUjuysdsnvtloPWqiT |
merchantCode | The merchant code provided at registration. Use the merchant code provided during token generation. | YES | 9837446275 |
currency | The currency for the Transaction | YES | KES, USD, etc. |
amount | The value of the transaction. | YES | 10.05 |
orderReference | The merchant order reference. Min 8 characters. It has to be alphanumeric | YES | 4yTr67jab5HjFr |
productType | Product category i.e A service or a product. | YES | Product/Service |
productDescription | A summary of the product or service. Max 200 characters | YES | Deluxe Room Booking at Kempinski Hotel, room No. 35 |
extraData | This data will be echoed back during the callback URL | NO | |
paymentTimeLimit | Duration payment is valid | YES | 15mins |
customerFirstName | The customer's First Name | YES | James |
customerLastName | The customer's Last Name | YES | Bond |
customerPostalCodeZip | Customer’s postal code | YES | 00100 |
customerAddress | Customer’s address | YES | 123 Tom Mboya Street, Nairobi |
customerEmail | Customer email address | YES | james.bond@organisation.co.ke |
customerPhone | Customer phone number i.e for Kenya is +254 7XXXXXXXXX & Uganda is +256 7XXXXXXXXX | YES | 254797838201 |
callbackUrl | Merchant callback URL | NO | https://checkout-launch.web.app/redirected (opens in a new tab) |
countryCode | Country code (Based on Alpha-2) | YES | KE |
secondaryReference | A secondary reference | NO | ADM1234 |
signature | Security signature (computed as: merchantCode + orderReference + currency + orderAmount + callbackUrl) Note: When Jenga Payment Gateway is on secure mode, signature is required. | NO | merchantCode+orderReference+currency+orderAmount+callbackUrl |
Integration
The form field names used are as described above in the payment parameters. Implement the hidden form exactly as the sample code below demonstrates.
Endpoint | Base Path | Dependency | Functionality | Method |
---|---|---|---|---|
/processPayment | Not Applicable | Token Generation | Integrate the payment widget | POST |
<form
id="submitcheckout"
action="https://v3-uat.jengapgw.io/processPayment"
method="POST"
>
<input type="hidden" id="token" name="token" />
<input type="hidden" id="merchantCode" name="merchantCode" />
<input type="hidden" id="currency" name="currency" />
<input type="hidden" id="orderAmount" name="orderAmount" />
<input type="hidden" id="orderReference" name="orderReference" />
<input type="hidden" id="productType" name="productType" />
<input type="hidden" id="productDescription" name="productDescription" />
<input type="hidden" id=" paymentTimeLimit " name=" paymentTimeLimit " />
<input type="hidden" id="customerFirstName" name="customerFirstName" />
<input type="hidden" id="customerLastName" name="customerLastName" />
<input
type="hidden"
id="customerPostalCodeZip"
name=" customerPostalCodeZip "
/>
<input type="hidden" id="customerAddress" name=" customerAddress " />
<input type="hidden" id="customerEmail" name="customerEmail" />
<input type="hidden" id="customerPhone" name="customerPhone" />
<input type="hidden" id="extraData" name="extraData" />
<input type="hidden" id="callbackUrl" name="callbackUrl" />
<input type="hidden" id="countryCode" name="countryCode" />
<input type="hidden" id="secondaryReference" name="secondaryReference" />
<input
type="hidden"
id="signature"
name="signature"
value="merchantCode+orderReference+currency+orderAmount+callbackUrl"
/>
</form>
Payment Response
Once the payment is complete, the user is redirected to the callback_url
specified by you. A set of parameters is passed in response (using GET).
POST field name | Data type | Description |
---|---|---|
transactionId | string | |
status | string | Transaction status: \n- paid - transaction has been successfully performed. |
date | string | Transaction date in yyyy-MM-dd'T'HH:mm:ss.SSSz format. |
desc | string | Channel used to make payment; \n- CARD \n- EQUITEL \n- MPESA \n- AIRTEL |
amount | string | Transaction amount. |
orderReference | string | Merchant order reference – it is the same value you sent in the request. |
hash | string | Security hash. |
extraData | string | Any metadata that is associated with the request. |