Packages
Remove a package
Removes a package from an eSIM. The package status will be set to 'removed'.
/profiles/{profileReference}/esims/{esimReference}/packages/{packageReference}Authorization
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)
packageReferencestringrequiredPackage reference identifier (23-character opaque token)
Headers
X-Idempotency-KeystringOptional idempotency key for mutating requests (POST, PATCH). If provided, duplicate requests with the same key within 48 hours will return the cached original response without duplicating side effects.
Behavior:
- Same key + same request body → returns cached response (prevents duplicate operations)
- Same key + different request body → returns 422 error
- Same key + in-flight request → returns 409 error with Retry-After header
- Keys expire after 48 hours
Request Body Matching: Request bodies are compared by their JSON content. Object key order, including in nested objects, and whitespace do not affect matching. This means:
{"a":1,"b":2}and{"b":2,"a":1}are treated as identical ✓- Whitespace differences are ignored ✓
- URL parameters and headers are NOT included in request body matching
Best Practices:
- Use UUIDs or client-generated unique strings
- Store keys on your side to support retries
- Don't reuse keys across different operations
Responses
200Package removed successfully (idempotent - returns same result if already removed)application/jsonShow response bodyHide response body
dataobjectoptionalShow propertiesHide properties
packageReferencestringoptionalPackage reference identifier (23-character opaque token)
statusstringoptionalPending means the order is accepted but not yet fully confirmed. Active means all required addons are confirmed. Legacy compatibility can represent pending packages as active and include them in active-filter results; webhook milestones remain the same.
pendingactivethrottledexhaustedexpiredremovedupdatedAtstring · date-timeoptional401Unauthorized - missing or invalid API key403Forbidden - client does not have access to this resource404Resource not found409Request with this idempotency key is still being processed422Idempotency key was previously used with a different request body429Rate limit exceeded. A `429` can also arrive without these headers or this body; handle it by its status code.500Internal server error