Sign inGet Started

Create a recurring eSIM subscription

POST
/v1/esim/subscriptions
bird esim recurring-subscriptions create --body-file - <<'JSON'
{
  "esim_id": "esm_01krdgeqcxet5s7t44vh8rt9mg",
  "offer_id": "eof_01krdgeqcxet5s7t44vh8rt9mg",
  "offer_revision": 1,
  "recurrence_revision": 1,
  "accepted_price": {
    "amount": "0.00995",
    "currency_code": "USD"
  }
}
JSON
Réponse200
{
  "delivery_mode": "exact_period",
  "id": "ers_01krdgeqcxet5s7t44vh8rt9mg",
  "esim_id": "esm_01krdgeqcxet5s7t44vh8rt9mg",
  "initial_order_id": "eor_01krdgeqcxet5s7t44vh8rt9mg",
  "subscriber_id": "esub_01krdgeqcxet5s7t44vh8rt9mg",
  "offer_id": "eof_01krdgeqcxet5s7t44vh8rt9mg",
  "status": "pending",
  "latest_order_id": "eor_01krdgeqcxet5s7t44vh8rt9mg",
  "price": {
    "amount": "0.00995",
    "currency_code": "USD"
  },
  "model": "calendar_month",
  "stop_reason": "canceled"
}

Starts a recurring package on an assigned eSIM and purchases the first period. Each accepted period is funded from your organization's wallet. A changed price requires new acceptance; an unfunded renewal or confirmed delivery failure stops future renewal.

An Idempotency-Key is required. Reuse the same key and request to recover the enrollment, including after the original response is no longer retained. Reusing the key with different enrollment details returns 409. Read the subscription and its period history to check payment and package delivery separately.

Corps de la requête

esim_id
string
obligatoire

Assigned eSIM receiving the recurring package.

offer_id
string
obligatoire

Offer whose recurring terms the buyer accepted.

offer_revision
integer
obligatoire

The accepted offer revision.

recurrence_revision
integer
obligatoire

The accepted recurring configuration revision.

accepted_price
object
obligatoire
Afficher les paramètres enfants

Contenu de la réponse

delivery_mode
string
obligatoire

Relationship between the paid period and package delivery.

  • exact_period: the package covers the accepted paid interval.
  • recurring_top_up: each funded period purchases a standard package. Activation, expiry, and accumulation follow that package’s terms.

Possible values: exact_period, recurring_top_up

id
string
obligatoire
esim_id
nullable string
obligatoire

The provisioned eSIM, or null while the initial purchase is pending.

initial_order_id
nullable string
obligatoire

The initial purchase order, or null when recurrence was enrolled on an existing eSIM.

subscriber_id
string
obligatoire
offer_id
string
obligatoire
status
string
obligatoire

Delivery state of the recurring service. Check payment and renewal fields separately.

  • pending: enrollment or the initial purchase is still being processed.
  • active: the service has delivered a package and remains active.
  • needs_attention: delivery or a related credit remains unresolved. Check period history and the associated order before purchasing a replacement.
  • ended: recurrence has ended. Previously delivered packages keep their own validity.

Possible values: pending, active, needs_attention, ended

billing_status
nullable string
obligatoire

The financial subscription state, or null while acceptance is pending.

current_period_start
nullable string
obligatoire

The authoritative billing period boundary, or null while acceptance is pending.

current_period_end
nullable string
obligatoire

The authoritative billing period boundary, or null while acceptance is pending.

cancel_at_period_end
boolean
obligatoire

Whether future renewal is stopped at the current paid boundary.

latest_order_id
nullable string
obligatoire

The order for the current billing period, or null before fulfillment starts.

created_at
string
obligatoire

When the recurring service was requested.

price
nullable object
obligatoire

Accepted package price before tax, in its published currency. Null before Billing accepts enrollment.

Afficher les attributs enfants
price.amount
string
obligatoire

Decimal amount as a string, in major currency units.

price.currency_code
string
obligatoire

ISO 4217 currency code.

model
nullable string
obligatoire

Accepted cadence, or null before Billing accepts enrollment.

interval_count
nullable integer
obligatoire

Number of calendar months or fixed 24-hour days in each accepted period. Null before acceptance.

next_renewal_at
nullable string
obligatoire

Next scheduled renewal boundary. Null when enrollment is pending or future renewals have stopped.

cancellation_effective_at
nullable string
obligatoire

When canceled recurrence ends: the paid boundary for scheduled cancellation, or the recorded cancellation time for an immediate stop. Null when renewal has not been stopped or no period was accepted. Paid packages remain available under their own validity.

stop_reason
nullable string
obligatoire

First recorded reason future renewal stopped. Null when no reason has been recorded. Delivery outcomes are available separately in period history.

Poursuivez avec la documentation, les guides et les exemples sur ce sujet.