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

# Create Order

> Create a biller reseller order to purchase airtime, data, or betting top-ups

Create a biller reseller order. PayVessel debits your business wallet and submits the request for fulfillment.

## Usage

```bash theme={null}
curl -X POST https://api.payvessel.com/vaas/api/v1/biller-reseller/orders \
  -H "api-key: YOUR_API_KEY" \
  -H "api-secret: YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "bet-order-001",
    "biller_id": "BET9JA_BILLER_ID",
    "item_id": "BET9JA_ITEM_ID",
    "recharge_account": "12345678",
    "amount": 1000
  }'
```

## Request body

| Field              | Type    | Required | Description                                                                                             |
| ------------------ | ------- | -------- | ------------------------------------------------------------------------------------------------------- |
| `biller_id`        | string  | Yes      | The biller to purchase from. Alphanumeric, hyphens, and underscores only (max 64 characters).           |
| `item_id`          | string  | Yes      | The specific item/package to purchase. Alphanumeric, hyphens, and underscores only (max 64 characters). |
| `recharge_account` | string  | Yes      | Customer's phone number or account ID (max 15 characters)                                               |
| `amount`           | integer | Yes      | Amount to charge in naira (must be greater than 0)                                                      |
| `reference`        | string  | Yes      | Your unique merchant order reference (max 32 characters)                                                |
| `webhook_url`      | string  | No       | Webhook URL for order status notifications (max 512 characters)                                         |

<Warning>
  The order amount is debited from your business wallet immediately. Make sure you have sufficient balance before creating an order.
</Warning>

## Response

The response returns an order object. Key fields:

| Field                   | Type             | Description                                                                |
| ----------------------- | ---------------- | -------------------------------------------------------------------------- |
| `id`                    | string (uuid)    | PayVessel order ID                                                         |
| `business_id`           | string           | Your business ID                                                           |
| `merchant_reference`    | string           | Your merchant reference                                                    |
| `order_reference`       | string           | PayVessel's internal order reference                                       |
| `category`              | string           | `airtime`, `data`, or `betting`                                            |
| `biller_id`             | string           | The biller used                                                            |
| `item_id`               | string           | The item purchased                                                         |
| `recharge_account`      | string           | The customer's account                                                     |
| `amount`                | number           | Amount charged in naira                                                    |
| `status`                | string           | Order status: `pending`, `processing`, `success`, `failed`, or `cancelled` |
| `error_message`         | string or null   | Error details if the order failed                                          |
| `wallet_transaction_id` | string or null   | Associated wallet transaction                                              |
| `created_datetime`      | datetime         | When the order was created                                                 |
| `updated_datetime`      | datetime         | Last status update                                                         |
| `completed_datetime`    | datetime or null | When the order reached a terminal state                                    |

## Next step

Use [Verify Order](/biller-reseller/verify-order) or [Get Order](/biller-reseller/get-order) to check whether the order has been fulfilled.

<Card title="API Reference" icon="code" href="/api-reference/biller-reseller/create-order">
  Full request/response details and Try it
</Card>
