Changelog
Changelog
Breaking changes, new endpoints, and behavioural shifts in the API.
This page tracks notable changes to the Octopus Cards API surface. Non-breaking additions are merged silently; anything that changes a contract you may depend on shows up here.
For Octopus Cards's compatibility commitments and how breaking changes are communicated, see Our API promise.
2026-05
eSIMs API introduced
The eSIM vertical ships as a complete surface, end-to-end parity with vouchers and topups:
GET /api/v1/esim/products?country_code=…— browse plans by destination country (ISO 3166-1 alpha-3, e.g.JPN).GET /api/v1/esim/products/:id/variants— list plans for a product (data allowance, validity, price).POST /api/v1/esim/charges— quote a variant's final price; cross-currency-aware (returnsnet_amount,handling_fee_amount,forex_rate,conversion_feewhen wallet currency differs from variant currency).POST /api/v1/esim/orders— place an order. 60-second hybrid: response is always200 OK; bodystatusisDELIVERED(with activation code inline) if fulfilment lands in time,PENDINGotherwise.GET /api/v1/esim/ordersandGET /api/v1/esim/orders/:id— list and poll. Theactivation_statusfield surfaces install / activate / expired transitions for life-of-plan tracking.PATCH /api/v1/esim/orders/:id/notification-email— attach an email address for terminal-transition receipts.client_referenceis the optional dedup + lookup key on create (same model as voucher and topup); a duplicate returns400 "Duplicate client_reference".?client_reference=…on the list endpoint fetches the matching order.statusisPENDING/DELIVERED/FAILED/CANCELLED; clients branch on that plusstatus_text(nosub_statuson the wire).
See the eSIM flow guide for the end-to-end pattern.
Topups & vouchers — wallet support on order creation
wallet_idis now accepted onPOST /api/v1/topups/ordersandPOST /api/v1/orders. When the wallet currency differs from the variant currency, the charges endpoint returns FX fields (net_amount,handling_fee_amount,forex_rate,conversion_fee).- See Cross-currency orders for the pattern.
Failure-code taxonomy
- Implementation-specific failure codes are no longer surfaced. Customer-facing surfaces emit a fixed enum (
INVALID_RECIPIENT,OPERATOR_UNAVAILABLE,PRODUCT_OUT_OF_STOCK, etc.) plusis_user_fixable. - Transient connectivity errors no longer reach
FAILED. Orders stayPENDINGand Octopus Cards retries; see Handling errors.
2026-04
Docs IA — vertical-based reference structure
/docs/reference/products,/docs/reference/orders,/docs/reference/webhooks/eventsmoved under/docs/reference/vouchers/*. Redirects in place; old URLs continue to resolve.- New
/docs/reference/topups/*and/docs/reference/esim/*verticals.