BalanceExperimental
List eSIM balance updates
Returns completed balance updates, newest first. For an eSIM whose balance accepts credits only, the history lists the credits made through this API, not every change to the balance; read the balance itself for the current amount. Before such an eSIM is activated this 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)
Query parameters
limitintegerMaximum number of items to return (1-100)
20cursorstringOpaque cursor token for fetching the next page. Pass the nextCursor value from a previous response.
typestringFilter by update type
creditdebitsourcestringFilter by update source
clientprovidersystemfromstring · date-timeInclude updates created at or after this timestamp
untilstring · date-timeInclude updates created at or before this timestamp
clientTransactionIdstringFilter by client transaction identifier
providerTransactionIdstringFilter by provider transaction identifier
Responses
200Balance update historyapplication/jsonShow response bodyHide response body
dataarray of EsimBalanceUpdateShow 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
paginationobjectShow propertiesHide properties
limitintegerMaximum items per page
hasMorebooleanWhether there are more items after this page
nextCursorstring | nullOpaque cursor token for the next page. Null when there are no more results.
409The eSIM is not active yet, so its balance is not availableapplication/problem+jsonShow response bodyHide response body
typestring · uriURI reference to error documentation
titlestringShort, consistent error summary
statusintegerHTTP status code
detailstringHuman-readable explanation specific to this occurrence
codestringExtensible enum. Machine-readable error slug. This is the field clients should branch on. The URI in type documents the code. Handle an unknown code by its HTTP status.
bad_requestvalidation_failedunauthorizedpayment_requiredfeature_not_enabledforbiddenbalance_not_foundesim_not_foundnot_foundnumber_registration_not_foundport_in_not_foundprofile_not_foundscheduled_action_not_foundsubscription_not_foundsubscription_plan_not_foundwebhook_endpoint_not_foundbalance_not_availablebalance_update_pendingconcurrent_modificationconflictesim_change_pendingesim_not_activeesim_not_provisionedesim_suspendedesim_swap_cooldownesim_swap_pendingesim_terminatedinvalid_state_transitionlimit_reachedno_esim_availablenumber_registration_pendingport_in_pendingservices_change_pendingservices_not_availablebalance_not_supportedbalance_operation_not_supportedbalance_update_refusedclient_transaction_id_reusedesim_variant_not_allowedesim_variant_not_swappableidempotency_key_reusedinsufficient_balancenumber_not_availablenumber_registration_not_supportedport_in_cancel_refusedporting_not_supportedservices_change_refusedservices_not_changeableservices_not_supportedsim_refused_by_networkunprocessable_entitylockedrate_limit_exceededinternal_errorbad_gatewayservice_unavailable400Bad request - invalid parameters401Unauthorized - missing or invalid API key403Forbidden - client does not have access to this resource404Resource not found422Request 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 error