Sign inGet Started

Cancel an unfunded order

POST
/v1/esim/orders/{order_id}/cancel
bird esim orders cancel <order-id> --yes
Response200
{
  "created_at": "2026-05-20T09:14:52Z",
  "updated_at": "2026-05-25T16:42:01Z",
  "id": "eor_01krdgeqcxet5s7t44vh8rt9mg",
  "status": "scheduled",
  "mode": "live",
  "offer_id": "eof_01krdgeqcxet5s7t44vh8rt9mg",
  "zone_id": "ezn_01krdgeqcxet5s7t44vh8rt9mg",
  "esim_id": "esm_01krdgeqcxet5s7t44vh8rt9mg",
  "subscriber_id": "esub_01krdgeqcxet5s7t44vh8rt9mg",
  "recurring_subscription_id": "ers_01krdgeqcxet5s7t44vh8rt9mg",
  "package_id": "epk_01krdgeqcxet5s7t44vh8rt9mg",
  "price": {
    "amount": "0.00995",
    "currency_code": "USD"
  },
  "wallet_transaction_id": "wtx_01krdgeqcxet5s7t44vh8rt9mg",
  "refund_transaction_id": "wtx_01krdgeqcxet5s7t44vh8rt9mg",
  "delivery": {
    "to": "traveler@example.com",
    "channel": "email",
    "locale": "pt-BR"
  },
  "funding": {
    "required_amount": {
      "amount": "0.00995",
      "currency_code": "USD"
    },
    "lapses_at": "2026-09-08T14:51:01Z"
  },
  "failure_code": "insufficient_balance"
}

Cancels an order waiting for funds in charging. A canceled unfunded order returns status: failed with failure_code: canceled. If a charge is confirmed after cancellation, it is credited back automatically.

For a one-time order, payment confirmed before cancellation returns 409, and the purchase continues. For an initial recurring purchase, payment recovered during cancellation instead stops future renewal and returns the current order successfully. The paid package continues to delivery without an automatic refund. Inspect the returned order and its subscription to determine the outcome.

Orders already completed, failed, or past the funding stage cannot be canceled through this operation and return 409.

Parameters

order_idstring

Order ID.

Response Payload

created_at
string
required
updated_at
string
required
id
string
required
status
string
required
mode
string
required
offer_id
string
required

Offer purchased.

offer_revision
integer
required

Revision of the offer this order locked at creation. The quoted price stays that of this revision even if the offer changes later. The produced package snapshots its coverage at purchase; the zone's live country list governs new sales only.

zone_id
string
required

Coverage zone of the purchased offer, captured at creation.

esim_id
nullable string
required

The eSIM the package lands on. Set at creation when adding to an existing eSIM; set when provisioning starts for a new-eSIM order; null before that.

subscriber_id
nullable string
required

Subscriber to assign when the new eSIM is delivered. Null when none was requested, including top-up orders, which retain the existing assignment.

recurring_subscription_id
string

The recurring service associated with this purchase. Absent for one-time orders.

package_id
nullable string
required

The purchased data package, set when the order completes; null before that.

price
object
required

The quoted price, locked at creation in your billing currency. A mode: test order quotes this price and is never charged it, so its wallet_transaction_id stays null.

Show child attributes
wallet_transaction_id
nullable string
required

The wallet transaction that paid for this order, for reconciling against your billing transactions. Null until the charge lands, and always null for a mode: test order, which is never charged.

refund_transaction_id
nullable string
required

The wallet transaction that credited the charge back after a failure. Null unless the order failed after charging.

delivery
object

Where install credentials are delivered once available. Present when requested at creation.

Show child attributes
funding
nullable object
required

Details of an insufficient-funds attempt while the order is in charging. May be null even while the order is awaiting funds; a null value does not confirm payment. Check the order status and your wallet balance.

Show child attributes
funding.required_amount
object
required

Total wallet balance required for the charge, including tax. This is the required balance rather than the amount to add. Compare it with your current wallet balance.

Show child attributes
funding.required_amount.amount
string
required

Decimal amount as a string, in major currency units.

funding.required_amount.currency_code
string
required

ISO 4217 currency code.

funding.lapses_at
string
required

Earliest time a further insufficient-funds attempt can fail the order. Adding funds after this time can still complete the purchase before that attempt. Check the order status to determine whether it remains payable.

failure_code
nullable string
required

Reason the order failed. Null unless status is failed. Handle unrecognized codes without assuming the purchase succeeded.

  • canceled: canceled while awaiting funds.
  • resolved_by_support: support closed an unresolved order as failed.
  • esim_released: the target profile became unavailable before delivery.
  • mode_mismatch: the purchase could not be fulfilled in its original live or test mode.

Any charge is credited automatically. Check refund_transaction_id to confirm an issued credit.

Possible values (may grow over time): insufficient_balance, carrier_error, capacity_exhausted, offer_unavailable, internal_error, canceled, resolved_by_support, esim_released, mode_mismatch

failure_reason
nullable string
required

Why the order failed, in plain terms. Null unless status is failed.

completed_at
nullable string
required

When the order reached completed. Null before that.

Continue with the documentation, guides and examples for this topic.