BalanceExperimental
Create eSIM balance update
Applies a credit or debit. clientTransactionId makes retries idempotent; this endpoint does not use X-Idempotency-Key. An eSIM whose balance accepts credits only refuses a debit with 422 and code balance_operation_not_supported. Before such an eSIM is activated, a credit returns 409 with code balance_not_available.
/profiles/{profileReference}/esims/{esimReference}/balance/updatesAuthorization
Authorization: Bearer {token} — an OAuth2 access token from the client-credentials flow. How authentication works
Path parameters
profileReferencestringrequiredThe eSIM's profile reference (16-digit numeric string)
esimReferencestringrequiredeSIM reference identifier (18-digit opaque token)
Request body
application/json · required
currencystringrequiredThree-letter ISO 4217 currency code
reasonstringrequiredMachine-readable reason
detailstringOptional human-readable context
clientTransactionIdstringrequiredClient identifier used for idempotency
typestringrequiredcreditdebitamountintegerrequiredUpdate amount in integer minor currency units
Responses
200Existing update returned for an idempotent replayapplication/jsonShow response bodyHide response body
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringtypestringcreditdebitsourcestringWho originated the update: client for your own credit, debit or set; provider for a
movement the network applied; system for a movement we made on our own.
clientprovidersystemamountintegerUpdate amount in integer minor currency units
balanceAfterintegerBalance after this update
overdraftAmountintegerAmount not covered when balance reached zero
currencystringThree-letter ISO 4217 currency code
reasonstringdetailstring | nullclientTransactionIdstring | nullClient transaction identifier, present for client updates
providerTransactionIdstring | nullExternal transaction identifier when available
occurredAtstring | null · date-timeWhen the balance update occurred
createdAtstring · date-timeWhen the update was recorded
201Balance update createdapplication/jsonShow response bodyHide response body
dataobjectShow propertiesHide properties
profileReferencestringesimReferencestringtypestringcreditdebitsourcestringWho originated the update: client for your own credit, debit or set; provider for a
movement the network applied; system for a movement we made on our own.
clientprovidersystemamountintegerUpdate amount in integer minor currency units
balanceAfterintegerBalance after this update
overdraftAmountintegerAmount not covered when balance reached zero
currencystringThree-letter ISO 4217 currency code
reasonstringdetailstring | nullclientTransactionIdstring | nullClient transaction identifier, present for client updates
providerTransactionIdstring | nullExternal transaction identifier when available
occurredAtstring | null · date-timeWhen the balance update occurred
createdAtstring · date-timeWhen the update was recorded
400Bad request - invalid parameters401Unauthorized - missing or invalid API key403Forbidden - client does not have access to this resource404Resource not found409Another operation is already in progress422Request cannot be applied to the current resource429Rate limit exceeded. A `429` can also arrive without these headers or this body; handle it by its status code.500Internal server error502Temporary service failure503Service temporarily unavailable. Safe to retry.