Production is locked until a market agreement is recorded

Sandbox

Every seeded store in all six markets, the real order machine, and rails that answer the way the real ones do — including the awkward ones. Nothing is charged and no courier is ever dispatched.

14 stores readysandbox keys only

Try it

Run a call

The answer is the seed, formatted exactly as the API formats it. The ids you copy out of here work in your next request.

Request

Two of the store's first offer, delivery, the market's default rail.

One seeded store per market, with that market's currency and rails.

POST /v1/orderssandbox

Response · 201 Created

Answered from the sandbox seed in 43 ms

POST /v1/orders
{  "id": "ord_sandbox_3003d179",  "short_code": "3601",  "market": "pt-lis",  "merchant_id": "m-pt-001",  "state": "PAYMENT_PENDING",  "phase": "PAYMENT_PENDING",  "currency": "EUR",  "lines": [    {      "item_id": "it-pt-001-01",      "name": "Cachupa rica",      "qty": 2,      "unit_price_minor": 1100,      "line_total_minor": 2200    }  ],  "totals": {    "subtotal_minor": 2200,    "delivery_fee_minor": 249,    "total_minor": 2449  },  "payment": {    "method": "mbway",    "state": "INITIATED"  },  "aggregate_version": 1,  "created_at": "2026-10-07T12:45:00+01:00"}

Simulate

Create a test order and advance it

Only the transitions the machine allows are offered. Every step emits the event your endpoint would receive, with the version that orders them.

Test order

The order starts in the market's default rail and runs the real machine. Nothing is charged and no courier is ever dispatched.

Payments

The callbacks that are hard to reproduce

A push that confirms, a push that expires, and a push that confirms seven minutes late when the order has already been cancelled.

sandbox payment callbacks
# confirm the push immediatelycurl https://api.palopgo.com/v1/sandbox/payments/pay_01JBV8/confirm \  -H "Authorization: Bearer $PALOPGO_KEY" # let the five-minute window close insteadcurl https://api.palopgo.com/v1/sandbox/payments/pay_01JBV8/expire \  -H "Authorization: Bearer $PALOPGO_KEY" # confirm late, after the order already moved oncurl https://api.palopgo.com/v1/sandbox/payments/pay_01JBV8/confirm \  -H "Authorization: Bearer $PALOPGO_KEY" \  -d '{ "delay_seconds": 420 }'

Markets

What the sandbox seeds

One store per market, with that market's currency, rails and address style. Couriers, customers and events are seeded too.

  • Cantinho da Tia Nha Lurdesm-pt-001Lisboa · EUR · Cova da Moura
  • Mamã Dinha — Comida Caseiram-ao-001Luanda · AOA · Maianga
  • Casa da Matapa — Dona Améliam-mz-001Maputo · MZN · Malhangalene
  • Kaza di Cachupa — Nha Biam-cv-001Praia · CVE · Plateau
  • Cozinha da Tia Auam-gw-001Bissau · XOF · Bandim
  • Roça Comida — Calulu da Dona Fátimam-st-001São Tomé · STN · Riboque
  • Nha Terra — Cozinha Cabo-verdianam-uk-001Londres · GBP · Stockwell
  • Kaza di Nha Tita — Cozinha Cabo-verdianam-fr-001Paris · EUR · Château Rouge
  • Sabor di Kriolum-es-001Madrid · EUR · Lavapiés
  • Casa Matapa — Cozinha Moçambicanam-de-001Berlim · EUR · Lichtenberg
  • Kitanda Angolana — Repúblicam-br-001São Paulo · BRL · República
  • Nha Kaza — Cozinha Cabo-verdianam-nl-001Roterdão · EUR · Delfshaven
  • Sabores de Bonnevoiem-lu-001Luxemburgo · EUR · Bonnevoie
  • Kaza di Nha Betinham-us-001Boston · USD · Bowdoin-Geneva

Limits

What sandbox does not do

No money moves
Rails answer instantly unless you ask them not to.
No couriers
Fulfilment events are emitted; nobody rides anywhere.
Data resets
Orders you create live for 7 days, then are swept.
Same limits
Rate limits and scopes behave exactly as in production.