Problem types
Every error the Ironfang Finance API answers is an RFC 9457 problem with a stable code. Each code has one HTTP status and one type URL, and that URL is a page here.
| Code | Status | Title | Notes |
|---|---|---|---|
account_budget_exhausted | 429 | Monthly usage limit reached | |
account_closed | 410 | Billing account closed | |
account_restricted | 402 | Account restricted | |
billing_moved | 410 | Billing moved | |
billing_temporarily_unavailable | 503 | Billing temporarily unavailable | May carry retry_after_seconds |
delivery_unavailable | 503 | Delivery unavailable | May carry retry_after_seconds |
exemption_limit_reached | 429 | Agreed limit reached | |
free_allowance_exhausted | 429 | Free allowance used up | |
generation_failed | 500 | Generation failed | Outcome indeterminate, nothing charged |
idempotency_conflict | 409 | Idempotency conflict | |
insufficient_scope | 403 | Insufficient scope | |
internal_error | 500 | Internal error | |
jobs_unavailable | 503 | Async jobs unavailable | May carry retry_after_seconds |
malformed_request | 400 | Malformed request | |
not_found | 404 | Not found | |
paid_usage_paused | 402 | Paid usage paused | |
payload_too_large | 413 | Payload too large | |
payment_action_required | 402 | Payment action required | |
payment_required | 402 | Payment required | |
product_budget_exhausted | 429 | Product usage limit reached | |
product_not_eligible | 403 | Not eligible for paid usage | |
profile_undetected | 422 | Profile undetected | |
quota_exhausted | 429 | Quota exhausted | May carry retry_after_seconds |
rate_limited | 429 | Rate limited | May carry retry_after_seconds |
render_timeout | 504 | Readable PDF timeout | |
render_unavailable | 503 | Readable PDF engine unavailable | |
report_incomplete | 422 | Incomplete retained findings | |
report_unavailable | 503 | Signed report unavailable | |
result_gone | 410 | Result unavailable | |
ruleset_disabled | 410 | Ruleset disabled | |
unauthenticated | 401 | Unauthenticated | |
unknown_ruleset | 422 | Unknown ruleset | |
unsupported_content_type | 415 | Unsupported content type | |
unsupported_document_type | 422 | Unsupported document type | |
unsupported_profile | 422 | Unsupported profile | |
validation_timeout | 504 | Validation timeout | Outcome indeterminate, nothing charged |
validator_unavailable | 503 | Validator unavailable | May carry retry_after_seconds. Outcome indeterminate, nothing charged |
A validation finding is never a problem: an invalid invoice is a successful response that lists its findings, and each finding's rule is explained in the validation rule reference. The other Ironfang APIs use a simpler error body, described in each product's reference.

