Problem reference · HTTP 400

invalid_request

The request was understood as HTTP but rejected before processing: something about the body, query parameters or headers is malformed or missing.

Example response

HTTP/1.1 400 Bad Request
Content-Type: application/problem+json
X-Request-ID: 7d1e9c2a-3b4f-4c5d-8e6f-9a0b1c2d3e4f

{
  "type": "https://docs.talero.dk/problems/invalid_request",
  "title": "Invalid request",
  "status": 400,
  "detail": "Idempotency-Key header is required and must be at most 255 characters.",
  "code": "invalid_request"
}

Common causes

  • The JSON body is not valid JSON, or a required field is missing or has the wrong type.
  • A query parameter has an invalid value — for example an unparsable since/until date, a malformed UUID, or a sort field the resource does not allow.
  • The Idempotency-Key header is missing on a create POST, longer than 255 characters, or was already used for a different endpoint — see Idempotency.
  • A webhook subscription request has a non-HTTPS URL, an unknown event name, or the company already has 25 active subscriptions.
  • A business rule was violated — for example auto_approve without customer_id, updating a non-draft invoice, an unbalanced transaction, or a posting date behind the company lock date.

How to fix it

  • Read the detail field — it states which value was rejected.
  • Validate dates as ISO 8601 (YYYY-MM-DD) and IDs as UUIDs before sending.
  • Send a fresh UUID Idempotency-Key per logical create operation.
  • Check the API reference for the exact request schema.
  • Do not blindly retry: the identical request will fail again until it is corrected.

If the problem persists, contact [email protected] and quote the X-Request-ID header from the failing response.