Skip to main content
POST
/
orders
Place an order
curl --request POST \
  --url https://api.kalixo.io/v2/orders \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "externalOrderCode": "O-12345",
  "currency": "GBP",
  "orderProducts": [
    {
      "productId": 2,
      "quantity": 1,
      "price": 3299,
      "currency": "GBP",
      "sku": "GB-EN-4251604177278"
    }
  ],
  "price": 4138
}
'
{
  "orderId": 59400,
  "externalOrderCode": "O-12345",
  "status": "processing",
  "estimatedReadyAt": "2026-06-02T11:05:00Z",
  "wallet": {
    "balances": {
      "GBP": 196.01,
      "EUR": 1234.56
    },
    "lowBalance": false
  }
}

Authorizations

x-api-key
string
header
default:kal_live_xxxxxxxxxxxxxxxxxxxxxxxx
required

Your Kalixo API key. Send it in the x-api-key header on every request.

Body

application/json
externalOrderCode
string
required

Your unique reference for this order. Acts as the idempotency key.

Example:

"O-12345"

currency
string
required
Example:

"GBP"

orderProducts
object[]
required
Minimum array length: 1
price
integer

Expected order total in minor units.

Example:

4138

Response

Order accepted and now processing.

orderId
integer
Example:

59400

externalOrderCode
string
Example:

"O-12345"

status
enum<string>
Available options:
processing
Example:

"processing"

estimatedReadyAt
string<date-time>

Approximate time the codes should be ready. Poll the order after this time.

Example:

"2026-06-02T11:05:00Z"

wallet
object