API Changelog
This page lists every change to the Quaderno API, newest version first.
How versioning works
Send the version you want in the Accept header:
Accept: application/json; api_version=20260309
If you do not send api_version, the API version configured on your account is used. Backwards-compatible changes are added to every version.
Each entry is labeled:
- Breaking change: applies only when you move to this version. Your integration keeps working on its current version.
- Backported breaking change: applies to every API version, including the ones you already use.
- Backwards-compatible change: additive. It does not require any change in your integration.
- Deprecation: still works, but will be removed in the future.
Versions
| Version | Breaking changes | Highlights |
|---|---|---|
| 20241028 | Yes | Tax code and country validation in the Transactions API |
| 20240705 | Yes | Pagination sorted by descending ID, deliveries object |
| 20231201 | Yes | Transactions API sends documents automatically, /taxes/validate removed |
| 20220325 | Yes | exchange_rate, items and evidence objects |
| 20210701 | Yes | Documents can no longer be deleted, items cap, new webhooks |
| 20210316 | Yes | created_before pagination, /tax_rates/calculate |
| 20170914 | Yes | Accounts API |
| 20170628 | Yes | Rate limits return 429 |
| 20170418 | No | Editable custom_metadata |
| 20161108 | No | country in documents |
| 20160614 | Yes | Amounts as cents, version in the Accept header |
| 20160602 | No | First version |
20241028
- Backported breaking change: for Spanish Verifactu accounts,
numberandissue_dateare ignored when creating documents, and Quaderno Templates are not available. - Breaking change: an invalid
tax_codein the items of the Transactions API returns 406 Not Acceptable. Before, it was ignored and the account default was used. - Breaking change: the
countryparameter of thetaxobject is now required and validated. Before, it was not enforced, although the documentation said it was.
20240705
- Breaking change: paginated lists are sorted by descending ID.
- Backwards-compatible change:
permanent_establishmentandimport_schemecan be set and read on the/tax_idsendpoints. This was backported to all versions. - Backwards-compatible change: invoice and credit deliveries to external systems, such as TicketBAI, are exposed in a
deliveriesobject.
20231201
- Breaking change: the Transactions API sends invoices and credit notes automatically when the automatic delivery option of the account is enabled.
- Breaking change: the deprecated
/taxes/validateendpoint is removed. Use/tax_ids/validateand sendtax_idinstead ofvat_number.
20220325
- Backwards-compatible change: listing endpoints accept
processor_idas a filter. - Backwards-compatible change: the Transactions API returns
exchange_ratefor non-default currencies. - Backwards-compatible change: the Billing API accepts
itemsandevidenceobjects. Theitems_attributesandevidence_attributesarrays are deprecated. - Backwards-compatible change: expense payments include
processorandprocessor_id. - Breaking change:
/tax_rates/calculateno longer returns anoticetext. - Backwards-compatible change:
/tax_rates/calculatealways returns astatuscode. - Backwards-compatible change: recurring documents include
recurring_periodandrecurring_frequency. - Backwards-compatible change: accounts include
postal_codeandweb.
20210701
- Backwards-compatible change: invoices and credits include
verification_codeandverification_permalink. - Backported breaking change: documents can have a maximum of 200 items.
- Backwards-compatible change: the Billing API supports partial refunds with
credited_amountfor single-item invoices. - Backwards-compatible change: passing
noneasregiontoGET /jurisdictionsreturns the jurisdictions without a specific region. - Backwards-compatible change: new
threshold.eu.100kwebhook that warns EU digital-service sellers when their sales reach 100,000 EUR. - Backported breaking change: abandoned checkout sessions are removed after seven days of inactivity.
- Backwards-compatible change: new
threshold.warningandthreshold.exceededwebhooks for the annual turnover report. - Backported breaking change: coupons linked to Stripe coupons can no longer be edited.
- Backported breaking change:
DELETEon invoices and credits is removed (404). Use credit notes instead, andPUT /credits/{id}/voidto void them. Theinvoice.deletedandcredit.deletedwebhooks are removed. - Backported breaking change:
PUTon invoices and credits only allows changes to notes, tags, custom metadata and the address fields of the customer. - Backwards-compatible change:
/tax_rates/calculatealways returnsproduct_type. - Backwards-compatible change: Connect custom accounts accept
default_product_typeanddefault_tax_code.
20210316
- Breaking change: pagination uses the
created_beforeparameter instead ofpage. - Breaking change:
/taxes/calculateis deprecated in favor of/tax_rates/calculate. - Deprecation: responses that use the old pagination include a
Deprecation: trueheader and aLinkheader that points to the updated documentation.
20170914
- Backwards-compatible change: new Accounts API.
- Backwards-compatible change: credits include
related_document. - Backwards-compatible change: credit tax attributes include
tax_1_transaction_typeandtax_2_transaction_type. - Backwards-compatible change: credit document items include
transaction_type. - Backwards-compatible change: items include
kind,stripe_plan_idand several PayPal interval fields. - Breaking change:
numberis limited to 20 characters for invoices, credits and estimates.
20170628
- Breaking change: rate limits return 429 (
too many requests) instead of 503.
20170418
- Backwards-compatible change:
custom_metadatais editable.
20161108
- Backwards-compatible change:
countryis returned for invoices, expenses, credits and estimates.
20160614
- Breaking change: amounts are returned as cents instead of formatted strings.
- Breaking change: the version is sent in the
Acceptheader instead of the URL.
20160602
First version. Amounts are returned formatted with a currency symbol.