Transactions

Look up an order and its transactions

The endpoint to call after a payment when you need to know what actually happened. It returns the whole order — every transaction attempted against it, each one's response code, and Kashier's own reconciliation verdict — so you can settle the question "was this paid?" from Kashier's records rather than from a webhook you may have missed.

Read the order status, not the HTTP status. A declined payment is still an HTTP 200 here, and inside transactions[] a declined attempt is still a stored transaction. Branch on the order-level status (CAPTURED is the paid state) and, per transaction, on status together with transactionResponseCode.

search is required, and it is a partial, case-insensitive match on your own merchantOrderId — not on Kashier's order id. Calling without it returns a 400. (Kashier's older published docs name this parameter merchantOrderId; the parameter the API actually accepts is search.)

A merchant's calls are always scoped to their own MID, which is taken from the credential — you cannot read another merchant's orders by passing a different merchantId.

get/v3/payment/orders

Request

  • Base URL: https://test-api.kashier.io
  • URL: https://test-api.kashier.io/v3/payment/orders
  • Auth: API key in header Authorization

Query parameters

searchstring required

Partial, case-insensitive match on your merchantOrderId. Must be a non-empty string of 1–100 characters; the call is rejected with a 400 without it.

status'INITIATED' | 'CAPTURED' | 'AUTHORIZED' | 'FAILED' | 'CANCELLED' | 'REVERSED' | 'EXPIRED' | 'REJECTED'

The order-level state machine — the single field that answers "was this order paid?". Distinct from the per-transaction status, and distinct again from the Approved/Rejected/Unknown labels the transactions list projects.

An order sitting at INITIATED after the customer has gone is a reconciliation candidate, not a confirmed failure: both an in-progress transaction and one whose outcome is genuinely unknown land here.

  • INITIATED — created, with no terminal money movement yet: 3DS still pending, awaiting capture, or an outcome Kashier could not confirm.
  • CAPTURED — money captured. This is the paid state.
  • AUTHORIZED — funds held on the card but not yet captured (auth-and-capture flow).
  • FAILED — the payment attempt was declined or errored.
  • CANCELLED — cancelled, for example an authorization that was voided.
  • REVERSED — reversed (POS reversal).
  • EXPIRED — expired before completion.
  • REJECTED — rejected, for example an installment or BNPL application turned down.

Filter by the order-level status. The value is upper-cased before matching, so captured and CAPTURED are equivalent. This is the OrderStatus vocabulary — not the Approved/Rejected labels used by the transactions list.

startDatestring

Only return orders dated on or after this date. Must not be later than endDate, or the call is rejected with a 400.

endDatestring

Only return orders dated on or before this date.

pageinteger

Page number. Defaults to 1.

limitinteger

Page size. Defaults to 20. Orders come back newest first.

Response

The matching orders, newest first. An empty data array means no order matched the search — it does not mean the payment failed.

statusstring
messagestring

Example response

{
  "status": "SUCCESS",
  "message": "Orders retrieved successfully"
}

Changes

No recorded changes to this operation across all 1 revision of this API.