Custom Integration: API Errors and Error Codes
Error handling reference for the FiscoBridge POS API. For endpoints and request schemas, see the API Reference.
HTTP Status Codes
Status | When | What to do |
|---|---|---|
400 Bad Request | The request body is malformed or a required field ( | Fix the request shape |
401 Unauthorized | Missing/malformed | Check the header format |
402 Payment Required | Your plan's monthly invoice allowance is used up | Upgrade your plan — see Invoice Limits and Usage |
422 Unprocessable Entity | The tax authority rejected the invoice (field validation, see below), or a processing rule failed (e.g. refunding a non-signed invoice, invoice not found, no active certificate) | Read the response body and correct the request |
429 Too Many Requests | More than 180 requests per minute from your IP | Back off and retry with spacing |
Error Response Shapes
Field validation (422) — the tax authority rejected one or more fields. Each error message ends with the numeric code in parentheses:
Processing error (422) and quota (402) — a standard problem response with the reason in detail:
Model validation (400) — the standard ASP.NET validation problem format with an errors dictionary keyed by field name.
Tax Authority Validation Codes
These codes come from the tax authority's SDC when it validates your invoice. They always appear inside the fieldErrors of a 422 response, next to the property that caused them.
Code | Meaning | Common causes |
|---|---|---|
2310 | Invalid tax labels — tax labels sent are not defined on the SDC | A |
2800 | Field required — this field is mandatory | Missing |
2801 | Value too long — field value exceeds maximum length |
|
2802 | Value too short — field value is below minimum length | e.g. a |
2803 | Invalid field length — field length is outside the expected range | Check the field limits in the API Reference |
2804 | Value out of range — field value is outside the expected range | Amounts with more than 2 decimal places, negative amounts on a sale, quantity outside 0.001–99,999,999,999.9999, a |
2805 | Invalid field value — field contains an invalid value | An enum value that doesn't exist, duplicate letters in |
2806 | Invalid data format — field data format is invalid | Dates not in ISO 8601, non-numeric |
2807 | List too short — must contain at least one element | Empty |
2808 | List too long — exceeds maximum allowed elements | Too many entries in a list field |
Tips
Test with
invoiceType: "Training"— you get the full validation behavior without issuing real fiscal invoices (training invoices still count toward your monthly allowance)Don't blind-retry 422s — the same request will fail the same way; fix the reported field first
Do retry 429s and network errors with backoff — but remember create is not idempotent: confirm via
GET /api/invoicesthat the invoice wasn't already signed before re-sendingRead tax labels from
GET /api/statusat startup instead of hardcoding them — rates and labels can change
Next Steps
API Reference — Endpoints, request fields, and response schemas
Custom Integration — Creating API keys
Invoice limits and usage — Quotas and the 402 response