Skip to main content
POST
Add data to an eSIM
The same money path as a purchase — quote where the account is not USD, then buy — but the allowance grows on the profile the traveller already has. A top-up must cover the same destination as the eSIM. Selling coverage the SIM cannot use is refused rather than adjusted.

Error codes

Authorizations

Authorization
string
header
required

A secret API key, sent as Authorization: Bearer sk_test_… in sandbox or Bearer sk_live_… in live.

Path Parameters

profileId
string
required

eSIM ULID. A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

Body

application/json
debitAccountId
string
required

A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

externalReference
string
required
Required string length: 1 - 120
packageSlug
string
Maximum string length: 200
packageId
string

A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

fxQuoteId
string

Required when the account is not USD.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

Response

Successful response.

id
string
required

A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

kind
enum<string>
required
Available options:
purchase,
topup
status
enum<string>
required

completed is the success state. A failure refunds itself.

Available options:
provisioning,
completed,
failed,
refunded,
partially_refunded
package
object
required
quantity
integer
required
Required range: x >= 1
customerId
string | null
required

A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
Example:

"01K2Z3AB4C5D6E7F8G9HJKMNPQ"

price
object
required

The USD list price.

paid
object
required

What was debited, in the paying account’s own currency.

fee
object
required
refunded
object
required
rate
string | null
required
externalReference
string
required
failureReason
string | null
required
profileIds
string[]
required

The eSIMs this order allocated.

A 26-character ULID.

Required string length: 26
Pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
completedAt
string<date-time> | null
required
Example:

"2026-08-14T09:00:00.000Z"

createdAt
string<date-time>
required
Example:

"2026-08-14T09:00:00.000Z"

updatedAt
string<date-time>
required
Example:

"2026-08-14T09:00:00.000Z"