Skip to content
upınow

Get an order

Reading an order's status and fields, the status values and their timing, and how to verify a payment.

On this page

GET /api/v1/orders/{order_id} returns one order that belongs to your key's business.

Order object

json
{
  "order_id": "UPN-0123456789",
  "merchant_order_id": "order_1024",
  "status": "paid",
  "amount": 499,
  "payable_amount": 499.07,
  "created_at": "2026-09-08T17:25:00.000Z",
  "expires_at": "2026-09-08T17:30:00.000Z",
  "paid_at": "2026-09-08T17:26:01.000Z",
  "failed_at": null,
  "payer_email": "no-reply@paytm.com",
  "payment_account_id": "b3f8a1c4-2e6d-4a3b-9c0f-1234567890ab"
}
Field Meaning
order_id The UPINOW order id.
merchant_order_id The id you sent when you created the order, or null for an order created outside the API.
status See Status values below.
amount The amount you asked for when you created the order, in rupees.
payable_amount The exact amount the customer was asked to pay.
created_at, expires_at, paid_at, failed_at ISO 8601 timestamps in UTC; paid_at and failed_at are null until the order reaches that state.
payer_email The From address of the bank's alert email, for example no-reply@paytm.com. This is your bank's notification address, not your customer's own email.
payment_account_id The UPI account this order was created on. A payment on this order can only ever be confirmed by an alert to this account's own connected Gmail, never any other account of yours.

If the order is still pending when you call this, UPINOW checks the connected mailbox for it right on this call, in addition to its own background checks, so an alert that just arrived can be picked up sooner.

Status values

Status Meaning
pending Waiting for payment. An order stays pending for up to 5 minutes after expires_at, even though its countdown reads zero.
paid Payment confirmed. A bank alert for a payment made at or before expires_at that reaches the mailbox up to 2 minutes late can still move the order to paid, so a payment.expired webhook can be followed by a late payment.success.
expired The payment window closed with no match, after the grace period above.
failed The payment could not be completed.
manual_review More than one open order shared this exact amount at the same time, so automatic matching was skipped; see Needs review.

Verify a payment

After the customer returns to your success_url or failure_url, call this endpoint from your own server before you show them a result; never trust the query parameters on the return URL by themselves.

Check an order's status
curl https://app.upinow.in/api/v1/orders/UPN-0123456789 \
  -H "X-API-Key: YOUR_API_KEY"

If the order still shows pending, show a "processing" message and wait; the signed webhook usually arrives before the customer does, but it can be a few seconds behind.

Errors

If your business is disabled, this call answers 403 merchant_disabled before it even looks at the order id. Otherwise, an order id that does not belong to your key's business, or does not exist at all, answers 404 order_not_found.