# Contract drops what was never sent

Several documented responses and one header were never actually sent. They are out of the contract; the server did not change.

Aug 21, 2026 · Fixed

Several responses and one header were documented but never produced. They are gone from the contract, so a generated client no longer waits for them. Nothing about the server changes: it never sent them.

## What else changed

- `X-Bulk-Failures` is no longer documented on `POST /v1/invoices/bulk/pdf` or `POST /v1/companies/{company_id}/invoices/pdf-archive`. It never travelled: partial failures are reported in the response body, as they always were. If you read that header, you have been reading `null` all along.
- Response codes that no operation could return are withdrawn — the `409` of `POST /v1/invoices/{invoice_id}/corrective`, the `400` of `convert-to-invoice`, and the error detail shapes documented for `import-csv-preview` that the server does not build. Every code an operation *can* answer stays declared, `429` and `500` included.
- `POST /v1/webhooks/{webhook_id}/test` stops documenting a parameter it does not read.
- Nothing here changes behaviour: no status code, body or header that you receive today is affected. What changes is that a client generated from the spec no longer has dead branches for responses that never arrive.

## Endpoints

- `POST /v1/invoices/bulk/pdf` — X-Bulk-Failures header withdrawn from the contract; failures are in the body
- `POST /v1/companies/{company_id}/invoices/pdf-archive` — X-Bulk-Failures header withdrawn from the contract; failures are in the body
- `POST /v1/invoices/{invoice_id}/corrective` — 409 withdrawn: the operation does not answer it
- `POST /v1/webhooks/{webhook_id}/test` — Undocumented parameter withdrawn

---

Full OpenAPI spec: https://docs.beel.es/api/openapi