kuickpayDeveloper Portal
kuickpayDeveloper Portal

Kuickpay Checkout

Embed a hosted payment page into your e-commerce flow. Create a session with your order details, redirect the consumer to Kuickpay, and handle the return after payment.

Generated October 20, 2026 — see the live docs for the full interactive reference.

Sandbox Base URL

https://sandbox-api.kuickpay.com

Authentication: HTTP Basic — base64(CompanyID:SecuredKey) in the Authorization header.

1. Create Session

POST/api/session

Create Payment Session

Initiates a new checkout session for an order. Returns a redirectURL — send your user there immediately to complete payment on the Kuickpay hosted page.

FieldTypeReqDescription
companyidstringYesYour Company ID provided by Kuickpay.
orderidstringYesUnique order identifier from your system. Used for reconciliation.
amountstringYesOrder amount (e.g. "1250.00").
amountPayablestringYesTotal amount the user should pay. Usually equal to amount.
timestampstringYesISO 8601 timestamp of the request (e.g. "2025-05-06T10:00:00Z").
transactiondescriptionstringNoBrief description shown on the payment page. Optional — not included in the signature.
returnurlstringNoURL to redirect the user after payment. Must be HTTPS. Optional — not included in the signature.
signaturestringYesHMAC-SHA256 signature computed from only the 5 fields above — see the Signature Guide below.

Response

{
  "responseData": {
    "responseCode": "00",
    "responseDescription": "Session started successfully",
    "status": "success",
    "checkoutToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9...<truncated>",
    "companyID": "01234",
    "countryCode": "92",
    "defaultGateway": "APPSCARD",
    "sessionID": "cacaa5d8-f4d7-4ee9-8674-19673618492b",
    "redirectURL": "https://uatpayments.kuickpay.com/cardinfo/cacaa5d8-f4d7-4ee9-8674-19673618492b"
  }
}

2. Signature Guide

Every Create Session request must include an HMAC-SHA256 signature computed from your order fields. Kuickpay verifies this signature to confirm the request is authentic and untampered.

  1. Concatenate the 5 required fields as strings in this exact order, separated by a pipe (|) character — no extra spaces.
  2. Apply HMAC-SHA256 using your SecuredKey (from the Business Portal) as the key and the concatenated string as the message.
  3. Hex-encode the result and include it as the signature field in the request body.

Field Order

FieldTypeReqDescription
companyidstringNoYour Company ID.
orderidstringNoYour unique order reference.
amountstringNoTotal order amount.
amountPayablestringNoAmount the consumer will pay (same as amount or discounted).
timestampstringNoISO 8601 timestamp of the request.

Concatenation result (before HMAC)

COMP001|ORDER-20250506-001|1250.00|1250.00|2025-05-06T10:00:00Z
Common mistakes: using the wrong field order, omitting the pipe separator or adding spaces around it, using a different encoding (e.g. base64 instead of hex), or including extra fields (such as transactiondescription or returnurl) in the concatenation — all produce an invalid signature.

3. Handle Return

After the consumer completes (or cancels) payment on Kuickpay's hosted page, they are redirected back to your returnurl with the transaction result in the query string.

Always verify the return signature before marking an order as paid. Query strings can be tampered with — the signature is the only trust anchor.
FieldTypeReqDescription
orderidstringNoYour original order reference.
transactionidstringNoKuickpay's internal transaction ID.
amountstringNoAmount paid.
statusstringNoSUCCESS, FAILED, or CANCELLED.
responsecodestringNo00 = success. Other values indicate failure.
signaturestringNoHMAC-SHA256 signature from Kuickpay. Always verify this.

Example return URL

https://yoursite.com/payment/return?orderid=ORDER-001&transactionid=KP20250506001&amount=1250.00&status=SUCCESS&responsecode=00&signature=abc123...

Handling All Outcomes

CodeMeaning
SUCCESSPayment successful. Verify signature, then fulfill the order.
FAILEDPayment failed. Show an error and allow retry — do not mark as paid.
CANCELLEDConsumer cancelled. Return them to cart — order is unchanged.
Best practices: verify the signature before reading any other parameter; use Kuickpay's transactionid as your primary reconciliation key, not your own orderid; make your return handler idempotent — the consumer may land on it multiple times; log the full return payload for every transaction, including failures.