---
title: "Validation failed — Anis Developers"
description: "The request broke a rule of the API. The answer never names the field, on purpose, so it cannot be used to probe for valid ids or prices."
url: https://developers.anis.ly/errors/validation-failed/
language: en
---

> Every page of this documentation: https://developers.anis.ly/llms.txt

[Error codes](https://developers.anis.ly/errors.md) · The request itself

# Validation failed

- **Code:** `validation_failed`
- **Status:** 422
- **If this was an order:** This request bought nothing
- **Send it again unchanged?** No — change something first
- **.NET SDK:** `ValidationFailedException`

## What it means

The request broke a rule of the API. The answer never names the field, on purpose, so it cannot be used to probe for valid ids or prices.

## What to do

- Prices must be decimal strings with exactly three decimals, and the total must be the unit price times the quantity, exactly.
- `externalReference` must be 1 to 100 characters: Latin letters and digits, space and `- _ . : / #`.
- Pass a paging cursor back exactly as received.
- A reveal takes no body at all; the signature self-check takes exactly `{}`.

## Where you can meet it

- GET [List wallets](https://developers.anis.ly/reference/list-wallets.md) `/v1/wallets`
- GET [List catalogue categories](https://developers.anis.ly/reference/list-categories.md) `/v1/wallets/{walletId}/catalog/categories`
- GET [List subcategories of a category](https://developers.anis.ly/reference/list-subcategories.md) `/v1/wallets/{walletId}/catalog/categories/{categoryId}/subcategories`
- GET [List cards for sale](https://developers.anis.ly/reference/list-cards.md) `/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId}/cards`
- POST [Place an order](https://developers.anis.ly/reference/create-order.md) `/v1/wallets/{walletId}/orders`
- GET [List owned cards](https://developers.anis.ly/reference/list-owned-cards.md) `/v1/wallets/{walletId}/cards`
- POST [Reveal a card](https://developers.anis.ly/reference/reveal-card.md) `/v1/wallets/{walletId}/cards/{soldCardId}/reveal`
- POST [Reveal an invoice](https://developers.anis.ly/reference/reveal-invoice.md) `/v1/wallets/{walletId}/invoices/{invoiceId}/cards/reveal`
- POST [Check your signature](https://developers.anis.ly/reference/check-signature.md) `/v1/diagnostics/signature`
- POST [Submit a public key](https://developers.anis.ly/reference/submit-key.md) `/v1/enrollments/{invitationId}/keys`
- POST [Prove you hold the key](https://developers.anis.ly/reference/submit-proof.md) `/v1/enrollments/{invitationId}/proof`

## 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"
}
```
