Orders and logistics
One call creates the order, picks the store, reserves the courier and tells the kitchen. Cash on delivery is a first-class rail, with change.
Production is locked until a market agreement is recorded
Partner API
Place and track orders, push a catalogue, issue tickets and receive every state change as a signed event — in Luanda, Maputo, Praia, Bissau, São Tomé and Lisboa. Amounts are integers in the market's minor unit, and the market decides the currency, never the device.
One call creates the order, picks the store, reserves the courier and tells the kitchen. Cash on delivery is a first-class rail, with change.
Push offers, prices and availability from a POS, or create events and ticket tiers and export the check-in manifest.
Every state change arrives once per accepted command, signed, ordered by aggregate_version and replayable from the portal.
First call
A cash order in Luanda for 3 450 Kz, with change for 5 000 Kz. The landmark is the address: street text is optional metadata in every home market.
https://api.palopgo.com/v1/orders \ -H "Authorization: Bearer sk_sandbox_8f2c…" \ -H "Idempotency-Key: cmd_4f1a9e" \ -H "Content-Type: application/json" \ -d '{ "market": "ao-lad", "merchant_id": "m-ao-001", "currency": "AOA", "amount_minor": 345000, "fulfilment": "delivery", "place": { "bairro": "Maianga", "landmark": "Condomínio Jardim de Rosas, portão 3", "phone": "+244923456789" }, "payment_method": "cash", "cash": { "change_for_minor": 500000 } }'Money
Amounts are integers in the market's minor unit. XOF has no minor unit at all, and Cabo Verde writes its decimal separator as the cifrão.
| Market | Currency | Minor | 345000 reads as | Address | Rails |
|---|---|---|---|---|---|
| Lisboa · pt-lis | EUR | 2 | 3 450,00 € | street | MB Way, Card, Cash on delivery |
| Luanda · ao-lad | AOA | 2 | 3 450 Kz | landmark | Multicaixa Express, Unitel Money, Cash on delivery |
| Maputo · mz-mpm | MZN | 2 | 3 450 MT | landmark | M-Pesa, e-Mola, Cash on delivery |
| Praia · cv-rai | CVE | 2 | 3 450$00 | mixed | Vinti4, Cash on delivery |
| Bissau · gw-oxb | XOF | 0 | 345 000 FCFA | landmark | Orange Money, Cash on delivery |
| São Tomé · st-tms | STN | 2 | 3 450 Db | landmark | Cash on delivery |
| Londres · gb-london | GBP | 2 | £3,450.00 | street | Card, paypal, apple_pay, Cash on delivery |
| Paris · fr-paris | EUR | 2 | 3 450,00 € | street | Card, meal_voucher, paypal, apple_pay |
| Madrid · es-madrid | EUR | 2 | 3450,00 € | street | Card, bizum, paypal, Cash on delivery |
| Berlim · de-berlin | EUR | 2 | 3.450,00 € | street | paypal, klarna, sepa_debit, Card, Cash on delivery |
| São Paulo · br-sao | BRL | 2 | R$ 3.450,00 | cep | pix, Card, boleto |
| Roterdão · nl-rotterdam | EUR | 2 | € 3.450,00 | street | ideal, Card, paypal, Cash on delivery |
| Luxemburgo · lu-luxembourg | EUR | 2 | 3.450,00 € | street | Card, apple_pay, wero, paypal |
| Boston · us-bos | USD | 2 | $3,450.00 | street | Card, apple_pay, paypal, cash_app |
| Lausana · ch-lausanne | CHF | 2 | 3'450.00 CHF | street | Card, Cash on delivery |
| Roma · it-roma | EUR | 2 | 3450,00 € | street | Card, Cash on delivery |
| Dublin · ie-dublin | EUR | 2 | €3,450.00 | street | Card, Cash on delivery |
| Bruxelas · be-bruxelles | EUR | 2 | 3 450,00 € | street | Card, Cash on delivery |
| Estocolmo · se-stockholm | SEK | 2 | 3 450,00 kr | street | Card, Cash on delivery |
| Oslo · no-oslo | NOK | 2 | 3 450,00 kr | street | Card, Cash on delivery |
| Sydney · au-sydney | AUD | 2 | $3,450.00 | street | Card, Cash on delivery |
| Joanesburgo · za-johannesburg | ZAR | 2 | R 3 450,00 | street | Card, Cash on delivery |
| Windhoek · na-windhoek | NAD | 2 | N$3,450.00 | street | Card, Cash on delivery |
| Dacar · sn-dakar | XOF | 0 | 345 000 FCFA | mixed | Orange Money, Cash on delivery |
| Toronto · ca-toronto | CAD | 2 | $3,450.00 | street | Card, Cash on delivery |
A cross-market order (a diaspora payer in Lisboa, a delivery in Luanda) carries both amounts, the payer's currency first, with the rate and the date it was taken.
Events
One event per accepted command. The customer-facing phase travels next to the machine state, so you never have to re-implement the matrix.
{ "id": "evt_01JBV8", "type": "order.state_changed", "created_at": "2026-10-07T12:41:10+01:00", "aggregate": { "type": "order", "id": "ord-2026-ao-2211", "version": 7 }, "data": { "state": "IN_FULFILMENT", "phase": "ARRIVING", "courier": { "first_name": "Nelson", "vehicle": "moto" } }}X-PalopGO-Signature: t=…,v1=…Rails
The rails are market-scoped. Offering a rail a market does not have answers 422 rather than silently falling back.
| Rail | API value | Markets |
|---|---|---|
| MB Way | mbway | Lisboa |
| Card | card | Lisboa, Londres, Paris, Madrid, Berlim, São Paulo, Roterdão, Luxemburgo, Boston, Lausana, Roma, Dublin, Bruxelas, Estocolmo, Oslo, Sydney, Joanesburgo, Windhoek, Toronto |
| Cash on delivery | cash | Lisboa, Luanda, Maputo, Praia, Bissau, São Tomé, Londres, Madrid, Berlim, Roterdão, Lausana, Roma, Dublin, Bruxelas, Estocolmo, Oslo, Sydney, Joanesburgo, Windhoek, Dacar, Toronto |
| Multicaixa Express | multicaixa_express | Luanda |
| Unitel Money | unitel_money | Luanda |
| M-Pesa | mpesa | Maputo |
| e-Mola | emola | Maputo |
| Vinti4 | vinti4 | Praia |
| Orange Money | orange_money | Bissau, Dacar |
| paypal | paypal | Londres, Paris, Madrid, Berlim, Roterdão, Luxemburgo, Boston |
| apple_pay | apple_pay | Londres, Paris, Luxemburgo, Boston |
| meal_voucher | meal_voucher | Paris |
| bizum | bizum | Madrid |
| klarna | klarna | Berlim |
| sepa_debit | sepa_debit | Berlim |
| pix | pix | São Paulo |
| boleto | boleto | São Paulo |
| ideal | ideal | Roterdão |
| wero | wero | Luxemburgo |
| cash_app | cash_app | Boston |
Next
Sandbox keys return the seeded stores of all six markets, and the sandbox advances orders through the real machine with only the legal transitions offered.