parallel45 API errors

Errors from the parallel45 platform API are RFC 9457 problem documents served as application/problem+json. The type member is a URI under this host, and each code below resolves to its own page.

This catalogue is published ahead of the API. No endpoint emits any of these codes yet — every error exit currently carries type: "about:blank", which RFC 9457 §4.2.1 prescribes for a problem with no meaning beyond its status. The pages exist first so that a type URI has never been a dead link. Until an emitter adopts a code, treat the page as the intended contract rather than as a description of live behaviour, and expect the wording to be refined.

{
  "type": "https://errors.parallel45.tech/quote_expired",
  "title": "Quote expired",
  "status": 409,
  "detail": "The quote referenced by this order expired at 09:31:04Z.",
  "code": "quote_expired",
  "retryable": true,
  "correlationId": "8a4c2f10-3e2a-4d6e-9c12-3b1f0e9f4a77"
}

Branch on code. Do not branch on title or detail — they are human-readable English and may be reworded at any time. A problem with no meaning beyond its status code carries type: "about:blank" and is not listed here, by design: that is RFC 9457 §4.2.1's own prescription, not a gap in this catalogue.

The catalogue

Code HTTP Retryable Meaning
validation_failed 400 No The request did not satisfy the endpoint's schema or its field-level rules.
rate_limited 429 Yes Too many requests arrived from this caller in the current window.
insufficient_funds 402, 409 No The account does not hold enough settled, available cash for this instruction.
quote_expired 409 Yes The price quote this instruction referenced is no longer valid.
idempotency_key_reused 409 No This Idempotency-Key was already used, with a different request body.
idempotency_request_in_progress 409 Yes The first request under this key has not finished; its result is not stored yet.
provider_unavailable 502 Yes A dependency this platform called failed or could not be reached.
capability_not_configured 503 No The feature exists but has no configuration or upstream capability behind it for this tenant.

An unknown code

A path that is not a code in this catalogue answers 404 with a page saying so. That is deliberate: a type URI that quietly returned 200 for anything would make a typo look like a real code.