Skip to main content
GET

Overview

Returns the current status, lifecycle stage and milestone timestamps of one of your merchant account’s orders. Use it to poll for the outcome, to reconcile after a missed webhook, or to confirm a webhook before you fulfil. Lookups are scoped to your merchant account, not to an API key: any of your active API keys can query any of your orders, including orders created before a key rotation. You can look an order up by any of its identifiers. All of them return the same response:

Headers

string
required
mk_live_..., any of your merchant API keys. Authorization: Bearer mk_live_... is also accepted.

Path parameters

string
required
Either of C2C’s identifiers for the order, both returned by Create deposit or Create withdrawal and present in webhooks:
  • the orderId, for example 788fcae0-5214-403c-baa2-f318c0eb1b5b
  • the orderReference, for example ORD-20261008120620-3f6b
To look an order up by your own reference, use Query by merchantOrderRef.

Response

object

Status values

Orders created by earlier versions of the platform can also report Assigned (in progress), Frozen (in progress, past the member’s freeze window) and Confirmed (success, equivalent to Completed). Treat Confirmed as success if you see it.
Fulfil a deposit or record a payout only on Completed (or legacy Confirmed). ManualReview isn’t a failure: don’t refund or re-pay the customer until C2C resolves the order.

Polling guidelines

  • Prefer webhooks and poll as a fallback or to reconcile.
  • Poll every 5–10 seconds while the customer is on the payment page, then back off (for example every minute) for orders waiting on a member.
  • Stop polling once the status is final.
  • The Merchant API has no request rate limits, but don’t poll many orders in tight loops; webhooks scale better.
  • ManualReview sends no webhook until C2C resolves it, so poll those orders at a low frequency until they are final.
  • You can branch on stage instead of status: Completed is success, Failed is final without settlement, anything else is in progress.
Node.js

Error responses

Query by merchantOrderRef

Returns the latest order your merchant account created with this merchantOrderRef, in exactly the same response shape as above. Use it to track orders by your own reference, or when you didn’t get the orderId back, for example after a timeout. Authentication works the same as for the lookup by ID: API key only, no signature.
string
Your merchantOrderRef from order creation. URL-encode it.
string
C2C’s orderReference (ORD-…). Accepted here too, as an alternative to the path form above.
Send one of the two parameters.
cURL
Node.js
A merchantOrderRef can belong to several orders only when the earlier ones failed (see merchantOrderRef rules). This endpoint always returns the most recent one; use the orderId or orderReference to query an older order.

Next steps

Order status guide

Lifecycle diagrams for deposits and withdrawals

Webhooks

Get pushed updates instead of polling