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.
ChangelogFixed
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-Failuresis no longer documented onPOST /v1/invoices/bulk/pdforPOST /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 readingnullall along.- Response codes that no operation could return are withdrawn — the
409ofPOST /v1/invoices/{invoice_id}/corrective, the400ofconvert-to-invoice, and the error detail shapes documented forimport-csv-previewthat the server does not build. Every code an operation can answer stays declared,429and500included. POST /v1/webhooks/{webhook_id}/teststops 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/pdfX-Bulk-Failures header withdrawn from the contract; failures are in the body
- POST/v1/companies/{company_id}/invoices/pdf-archiveX-Bulk-Failures header withdrawn from the contract; failures are in the body
- POST/v1/invoices/{invoice_id}/corrective409 withdrawn: the operation does not answer it
- POST/v1/webhooks/{webhook_id}/testUndocumented parameter withdrawn
Lost updates answer 409
Two overlapping updates: the second now answers `409 CONCURRENT_MODIFICATION` instead of silently discarding the first.
Breakdowns, series and schedules
Tax breakdowns travel complete and add up. Series publish the next number they will assign. Recurring invoices declare `frequency` in the request.