Check order status before fulfillment
Use your server to request `GET https://api.payerone.com/checkout/v1/orders?order_id=PAYERONE_ORDER_ID` with the Merchant Token in the Bearer header. Replace the placeholder with the PayerOne `order_id` returned when checkout was created.
GET /checkout/v1/orders?order_id=PAYERONE_ORDER_ID HTTP/1.1
Host: api.payerone.com
Authorization: Bearer YOUR_MERCHANT_TOKEN
Accept: application/jsonWhich ID to use
Your `custom_id` is your application reference. The PayerOne `order_id` identifies the PayerOne order for this lookup. The returned `transaction_id` is the recorded PayerOne payment transaction reference; a blockchain transaction hash or a provider payment reference is a different identifier.
Read the response
The order data includes `order_id`, `custom_id`, `amount`, `currency_code`, `status`, `transaction_id`, fee fields and `date`. Match the order and expected order amount/currency to your own record. Use the recorded `status` to decide whether your fulfillment policy allows completion.
An order in **Pending** or **Partially Paid** has not reached the normal fully-paid state. A partial payment must not fulfill the full purchase simply because a transfer exists. A failed or expired checkout also needs a separate resolution decision; expiry does not mean received money was refunded.
Amounts can have different currencies
`amount` and `currency_code` describe the order. `paid_amount`, `expected_paid_amount` and `overpaid_amount` describe the payment amount, with `paid_currency_code` identifying its currency. Do not compare or add these across currencies without checking their units. `total_paid_amount` is an alias of `paid_amount`.
`overpaid_amount_order_currency` is the saved-quote conversion when available and can be `null`. Treat a missing value as unavailable; do not turn it into zero or calculate automatic customer credit from a live exchange-rate guess.
Order not found
Confirm you stored the returned PayerOne order ID, are using the correct merchant credentials, and have not supplied your `custom_id` or a provider transaction reference. The lookup is scoped to the authenticated merchant.
Use signed webhook events to trigger a status refresh and make your fulfillment operation idempotent. If the browser returns before the notification, show a waiting state while your server confirms the order. Provider payout or blockchain settlement may require its own confirmation beyond a local order state.