For the complete documentation index, see llms.txt. This page is also available as Markdown.

Check Status

Use the Order Status API to fetch the real-time status of a payment order created using the KwikPaisa Payment Gateway.

This API helps merchants:

  • Verify payment completion

  • Track transaction status

  • Validate redirected payments

  • Reconcile transactions securely

The Order Status API should always be used for final payment verification instead of relying only on frontend redirects.


Endpoint

POST /api/v3/pg/order/status

To view all available base URLs and environments, refer to:

➡️ API Resources

Authentication required.

Refer to: ➡️ Headers ➡️ Signature Generation ➡️ Timestamp Validation


Request Parameters

Parameter
Type
Required
Description

order_id

Integer/String

Yes

Merchant order ID


Example Request Body


Example cURL Request


Example Success Response


Response Parameters

Parameter
Description

kwikX_order_id

Unique KwikPaisa order ID

order_id

Merchant order ID

order_amount

Transaction amount

order_currency

Transaction currency

order_status

Current payment status

payment_id

Unique payment transaction ID

order_source

Source of order creation

paymentDetails

Payment method and transaction details object

created_at

Order creation timestamp

paid_at

Payment completion timestamp


Payment Status Values

Status
Description

UN_PAID

Payment pending

PROCESSING

Payment under processing

PAID

Payment completed successfully

FAILED

Payment failed

EXPIRED

Payment session expired


  1. Create Order API

  2. Redirect customer to hosted checkout

  3. Customer completes payment

  4. Receive redirect/webhook

  5. Call Order Status API

  6. Verify final payment status server-side


Why Order Status Verification is Important

Frontend redirects may not always guarantee successful payments due to:

  • Browser interruptions

  • Network failures

  • Customer closing the payment page

  • Delayed bank confirmations

Always verify transactions using the Order Status API before marking orders as successful.


Best Practices

  • Always validate payment status server-side

  • Verify webhook notifications

  • Store kwikX_order_id for reconciliation

  • Retry status checks for processing transactions

  • Avoid duplicate order IDs


Common Errors

400 Bad Request

Possible reasons:

  • Missing order_id

  • Invalid payload structure

  • Incorrect request format


401 Unauthorized

Possible reasons:

  • Invalid API key

  • Incorrect signature

  • Expired timestamp


Order Not Found

Possible reasons:

  • Invalid order ID

  • Order does not exist

  • Incorrect merchant credentials


If the payment status is:

Retry the status check after a few seconds before marking the transaction as failed.


Security Recommendations

  • Generate signatures server-side only

  • Never expose secret keys publicly

  • Use HTTPS only

  • Validate webhook signatures

  • Verify timestamps before processing responses

Last updated