Error codes · The request itself
Validation failed
Code
validation_failedStatus422
If this was an orderThis request bought nothing
Send it again unchanged?No — change something first
.NET SDK
ValidationFailedExceptionWhat it means
A request breaks a rule. Direct recharge recipient validation can include field errors in extensions.fields; do not rely on field details for other refusals.
What to do
- For meter-charge and direct-recharge lists, correct invalid status, meter or product filters, UTC dates, page size or cursor. Keep the same filters and page size with a continuation cursor, or omit the cursor to start a corrected search; never repeat the purchase to recover a list.
- Prices are decimal strings with exactly three decimals, such as
"10.500": greater than zero, with no sign, no leading zeros and at most 15 digits before the point. The total must be the unit price times the quantity, exactly. externalReferencemust be 1 to 100 characters: Latin letters and digits, space and- _ . : / #.- Pass a paging cursor back exactly as received.
- A call that takes no body — every
GET, and both reveals — is refused if it carries even one byte; the signature self-check takes exactly{}. - The order body must be at most 8,192 bytes (8 KB), in UTF-8 — a
Content-Typenaming any othercharsetis refused as HTTP422,validation_failed. An oversized order body is refused as HTTP422withvalidation_failed. - How the request is sent counts too: any other body over 64 KB, a chunked body (send
Content-Lengthinstead), headers over 32 KB in total, a path and query longer than 2,048 characters, or an order whoseIdempotency-Keyis missing or is not a UUID written with hyphens. - For direct recharge recipients, correct the keys reported in
extensions.fieldsagainst the product’s field rules.
Where you can meet it
- GETList wallets
/v1/wallets - GETList catalogue categories
/v1/wallets/{walletId}/catalog/categories - GETList subcategories of a category
/v1/wallets/{walletId}/catalog/categories/{categoryId}/subcategories - GETList cards for sale
/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId}/cards - POSTPlace an order
/v1/wallets/{walletId}/orders - GETList owned cards
/v1/wallets/{walletId}/owned-cards - POSTReveal a card
/v1/wallets/{walletId}/owned-cards/{soldCardId}/reveal - POSTReveal an invoice
/v1/wallets/{walletId}/invoices/{invoiceId}/owned-cards/reveal - POSTSuspend your application
/v1/application/suspend - POSTRevoke an application key
/v1/keys/{keyId}/revoke - POSTCheck your signature
/v1/diagnostics/signature - POSTSubmit a public key
/v1/enrollments/{invitationId}/keys - POSTProve you hold the key
/v1/enrollments/{invitationId}/proof - POSTAllow one more address
/v1/application/networks - POSTRemove an address you added
/v1/application/networks/remove - GETGet meter packages
/v1/wallets/{walletId}/meter-packages - GETGet my meter charges
/v1/wallets/{walletId}/meter-charges - POSTCharge a meter
/v1/wallets/{walletId}/meter-charges - GETRead a meter charge
/v1/meter-charges/{operationId} - GETGet direct recharge products
/v1/wallets/{walletId}/direct-recharge-products - GETRead a direct recharge product
/v1/wallets/{walletId}/direct-recharge-products/{productId} - GETGet recipient locations
/v1/wallets/{walletId}/direct-recharge-products/{productId}/locations - GETQuote a direct recharge product
/v1/wallets/{walletId}/direct-recharge-products/{productId}/quote - GETGet my direct recharges
/v1/wallets/{walletId}/direct-recharges - POSTRequest a direct recharge product
/v1/wallets/{walletId}/direct-recharges - GETRead a direct recharge
/v1/direct-recharges/{operationId} - PATCHCorrect a suspended recipient
/v1/direct-recharges/{operationId}/recipient - GETRead your webhook endpoint
/v1/webhook-endpoint - PUTSet your webhook endpoint
/v1/webhook-endpoint - POSTTest your webhook endpoint
/v1/webhook-endpoint/test - GETGet webhook deliveries
/v1/webhook-events - POSTRedeliver a webhook
/v1/webhook-events/{eventId}/redeliver
Example
The body of the refusal. Its type is the address of this page.
{
"type": "https://developers.anis.ly/errors/validation-failed",
"title": "Validation failed",
"status": 422,
"code": "validation_failed",
"requestId": "01J9R2K8T4V6XQ0M3B7C5D9E1F"
}