> ## Documentation Index
> Fetch the complete documentation index at: https://docs.minisend.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an order

> Fetch the current state of an onramp order: status, the release address, and the receipt once payment is collected.

Returns the current state of an order you own. Poll it after creating an order, or rely on [webhooks](/onramp/webhooks) and use this as the source of truth.

## Endpoint

```text theme={null}
GET https://merchant.minisend.xyz/api/onramp/orders/{order_id}
```

```text theme={null}
Authorization: Bearer ms_live_your_key_here
```

Requires the `onramp` scope. Orders you don't own return `404`.

## Example

```bash theme={null}
curl https://merchant.minisend.xyz/api/onramp/orders/7c1e4f9a-... \
  -H "Authorization: Bearer ms_live_your_key_here"
```

## Response (200)

```json theme={null}
{
  "order_id": "7c1e4f9a-...",
  "status": "completed",
  "currency": "KES",
  "amount_usdc": 7.62,
  "amount_local": 1000,
  "fee": 10,
  "rate": 129.92,
  "customer_phone": "0712345678",
  "mobile_network": "Safaricom",
  "release_address": "0xyourwalletaddress0000000000000000000000",
  "release_chain": "base",
  "release_asset": "USDC",
  "receipt_number": "SHQ1234ABC",
  "release_tx_hash": "0x55a572efe1720250e442f38741477a4fc3f7f152e5cd208cc52f8222a1c2a13b",
  "external_reference": "collect-2201",
  "expires_at": "2026-07-23T12:30:00.000Z",
  "completed_at": "2026-07-23T12:04:41.000Z",
  "created_at": "2026-07-23T12:00:03.000Z"
}
```

<ResponseField name="status" type="string" required>
  `pending`, `completed`, `failed`, or `expired`. See the [lifecycle](/onramp/overview#order-lifecycle). A `pending` order past `expires_at` flips to `expired` when fetched.
</ResponseField>

<ResponseField name="receipt_number" type="string">
  The M-Pesa confirmation code, set on `completed`.
</ResponseField>

<ResponseField name="release_tx_hash" type="string">
  The Base transaction that delivered the USDC, set shortly after `completed`.
</ResponseField>

<ResponseField name="failure_reason" type="string">
  Set on `failed`: cancelled, timed out, or insufficient funds.
</ResponseField>

<ResponseField name="completed_at" type="string">
  ISO 8601, set on `completed`.
</ResponseField>

## Errors

| Status | Meaning                                                               |
| ------ | --------------------------------------------------------------------- |
| `403`  | Key lacks the `onramp` scope or onramp is not enabled on your account |
| `404`  | Unknown order, or it belongs to another account                       |
