Skip to content
upınow

List orders

Filtering and paging through your orders with the list endpoint.

On this page

GET /api/v1/orders returns your orders, newest first, one page at a time.

Parameters

Parameter Rules
status Optional. One of pending, paid, expired, failed, manual_review.
merchant_order_id Optional. At most 120 characters.
limit Optional. A whole number from 1 to 100. Default 20.
cursor Optional. The next_cursor value from the previous page.

A bad value on any of these comes back as 400 invalid_request with a details string that says exactly what was wrong:

  • limit must be a whole number from 1 to 100
  • status must be one of pending, paid, expired, failed, manual_review
  • merchant_order_id is longer than 120 characters
  • cursor is not valid; pass next_cursor from the previous page

If your business is disabled, including a business inside its 7-day account-deletion window, this call answers 403 merchant_disabled before it looks at any of these parameters.

Response

json
{
  "data": [ { "order_id": "UPN-0123456789", "status": "paid", "...": "..." } ],
  "has_more": true,
  "next_cursor": "MjAyNi0wOS0wOFQxNzoyNTowMC4wMDBafFVQTi0wMTIzNDU2Nzg5"
}

Each item in data has the same fields as Get an order, including payment_account_id. This endpoint does not filter by account; it lists your orders across every UPI account you have.

Paging through every order

Keep calling the endpoint with cursor set to the previous response's next_cursor until has_more is false:

text
cursor = null
loop:
  page = GET /api/v1/orders?limit=100&cursor={cursor}
  handle page.data
  if not page.has_more: stop
  cursor = page.next_cursor

Sample

List orders (newest first)
curl "https://app.upinow.in/api/v1/orders?status=paid&limit=20" \
  -H "X-API-Key: YOUR_API_KEY"