Purchase a plan (asynchronous)
Purchase / activate a plan for a SIM, asynchronously — always 202
with a transactionId to poll. A different request contract from
POST /api/v1.1/plans/purchase: activateNow defaults from whether
scheduleDate is set (rather than being required), scheduleDate is a
full ISO 8601 datetime (not YYYY-MM-DD), and this endpoint accepts an
optional free-form metaData object stored on the transaction.
202 only means the request was accepted for processing, not that the
purchase succeeded — validation performed after acceptance (bad ICCID,
plan not found, pricing not configured, etc.) is only visible by
polling statusEndpoint. Throttled at 60 requests/60s specific to this
route, tighter than the 120 req/60s account-wide default.
Authorizations
Bearer token obtained from POST /api/v1.1/auth/token.
Headers
Any string unique to this logical request. On a retry with the same key
and the same request body, the original response is replayed verbatim
(with an Idempotency-Replayed: true response header) instead of the
action repeating. Reusing the key with a different body or on a
different route returns 409 IDEMPOTENCY_KEY_REUSED. A replay attempted
while the original call is still in flight returns 409 CONFLICT.
Optional — omit it and the endpoint behaves exactly as it would otherwise.
"a1b2c3d4-idem-key-001"
Body
"8901260853182965429"
"AT&T 5GB"
Defaults to !scheduleDate when omitted.
true
Full ISO 8601 datetime; required when activateNow=false.
"2026-08-01T00:00:00Z"
Free-form partner metadata stored on the transaction.
Response
Accepted — poll statusEndpoint.

