Error codes · Orders
Operation id already used
Code
idempotency_conflictStatus409
If this was an orderThis request bought nothing
Send it again unchanged?No — change something first
.NET SDK
IdempotencyConflictExceptionWhat it means
This operation id was already used with a DIFFERENT order body, or a repeated meter-charge or direct-recharge create could not be matched to this application a minute after it was admitted. This request was not placed. The code does not say the original request failed: it may already have been accepted and charged. The order stored under that id is untouched — and if you were resuming it, it may have completed.
What to do
- For a meter charge or direct recharge, a missing application-scoped read never proves absence. Retry the same saved body and operation id with a fresh signature. A duplicate remains
202during projection lag. A duplicate command observed on this retry at or after 60 seconds since original admission, followed by one application-scoped read still not found, closes withidempotency_conflict(409). That code does not prove nothing was charged: the first request may already have been accepted, so read the operation by its id before any new attempt. A read miss or timeout alone is not this conflict. - If you meant to resume: send exactly the body you stored with that id — same card, quantity, prices and reference.
- If this is a genuinely new purchase: use a new operation id.
- One id must always mean one purchase with one body.
Where you can meet it
- POSTPlace an order
/v1/wallets/{walletId}/orders - POSTCharge a meter
/v1/wallets/{walletId}/meter-charges - GETRead a meter charge
/v1/meter-charges/{operationId} - POSTRequest a direct recharge product
/v1/wallets/{walletId}/direct-recharges - GETRead a direct recharge
/v1/direct-recharges/{operationId}
Example
The body of the refusal. Its type is the address of this page.
{
"type": "https://developers.anis.ly/errors/idempotency-conflict",
"title": "Operation id already used",
"status": 409,
"code": "idempotency_conflict",
"requestId": "01J9R2K8T4V6XQ0M3B7C5D9E1F"
}