Skip to main content

API Changelog

20241028

  • Backported breaking change: Due to legal requirements, the number and issue_date parameters will be ignored when creating documents from Spanish accounts using the Verifactu electronic invoicing system. The Quaderno Templates system won't be available for these accounts either. Please note that backported breaking changes apply to all API versions.
  • We now return a 406 Not Acceptable HTTP response when the tax_code in the tax object on any item of the Transactions API is not valid. Valid values, humanized names and explanations can be obtained via the /tax_codes endpoint. Before this API version, any invalid value would be ignored and the account's default would be applied.
  • Fixes a bug where the country param from the tax object on any item of the Transactions API was not required, even if it was documented as so.

20240705

  • Pagination is now sorted by descending ID. This ensures the last item on each page matches the X-Pages-NextPage header, clarifying navigation without changing existing functionalities.
  • Added the ability to set and read the permanent_establishment and import_scheme values when dealing with your business's registered jurisdictions on the /tax_ids endpoints. This change has been backported to all API versions.
  • Information regarding invoices and credits deliveries to external systems like TicketBAI is now accessible via the deliveries object. You can learn more with our TicketBAI guide.

20231201

  • From API version 20231201 onwards, the Transactions API will automatically dispatch invoices and credit notes if the option "Autosend all automatic invoices and credit notes" is selected in your account settings.
  • The long-time deprecated /taxes/validate has been finally removed in favor of /tax_ids/validate. If you were still using it, just make sure your URLs are updated, and that you are sending the tax_id parameter (and not the old vat_number parameter).

Please consider upgrading your API version.

20220325

  • Backwards-compatible change: API listing endpoints /invoices, /credits and /contacts now accept processor_id as filter parameter.
  • Backwards-compatible change: Transactions API now returns the exchange_rate used when the transaction currency differs from the account's default currency.
  • Backwards-compatible change: Billing API now accepts items and evidence objects as Transactions API does. Arrays of items_attributes and evidence_attributes are deprecated but still work.
  • Backwards-compatible change: Expenses API now returns processor and processor_id on the payments objects of payed expenses.
  • Breaking change: /tax_rates/calculate no longer returns a notice explanation text with the tax calculation reason.
  • Backwards-compatible change: /tax_rates/calculate now always show a status on the response indicating a code for the calculation scenario.
  • Backwards-compatible change: Added recurring_period and recurring_frequency to recurring documents.
  • Backwards-compatible change: Added postal_code and web to accounts.

20210701

  • Backwards-compatible change: Added verification_code and verification_permalink to invoices and credits.
  • Backported breaking change: Maximum items per document are now limited up to 200. Before, this was a soft limit per API request, which could be workarounded with subsequent PUT calls.
  • Backwards-compatible change: Billing API now supports partial refunds with the parameter credited_amount for invoices with one single item.
  • Backwards-compatible change: passing none as the region parameter to the GET /jurisdictions endpoint returns jurisdictions that do not have a specific region.
  • Backwards-compatible change: new threshold.eu.100k webhook for the Annual turnover report, to warn whenever sales of digital services within the EU (exclusive of VAT) reach €100,000. Applies only to EU-based sellers.
  • Backported breaking change: abandoned checkout sessions are automatically removed after seven days of inactivity (this is, no updates or not submission attempts from the customer).
  • Backwards-compatible change: we're adding new webhooks for the new Annual turnover report: threshold.warning and threshold.exceeded.
  • Backported breaking change: we're removing the ability to edit coupons linked to Stripe coupons, as they won't allow edition and led to inconsistent states.
  • Backported breaking change: to comply with tax rules worldwide, DELETE /invoices/INVOICE_ID and DELETE /credits/CREDIT_ID endpoints no longer exists and return 404 Not Found. Instead deleting invoices you should associate them to credit notes using POST /credits with the invoice id, which will change its state to paid instead the refunded state. To correct errors creating credits we also provide a PUT /credits/CREDIT_ID/void to void credit notes. Note the webhooks invoice.deleted and credit.deleted are also gone.
  • Backported breaking change: to comply with tax rules worldwide, PUT /invoices/INVOICE_ID and PUT /credits/CREDIT_ID only allow modification of the parameters notes, tag_list, custom_metadata and all those related to the customer's address: street_line_1, street_line_2, city, region, postal_code and country. This change applies to ALL versions.
  • Backwards-compatible change: /tax_rates/calculate now always show a product_type on the response.
  • Backwards-compatible change: creating and updating Connect custom accounts (POST and PUT to /accounts endpoint) now accepts specifying the default_product_type and default_tax_code.

20210316

  • Breaking change: record pagination is no longer performed with a page parameter, but with a created_before parameter. See the pagination documentation for more details.
  • Breaking change: the old /taxes/calculate endpoint is deprecated in favour of the /tax_rates/calculate endpoint.
  • Adds a Deprecation: true header to responses using deprecated pagination, with a Link header linking to the updated documentation.

20170914

  • Added the accounts API.
  • Added the related_document to the credit object.
  • Added tax_1_transaction_type and tax_2_transaction_type fields to the taxes attributes in the credit object.
  • Added transaction_type fields to the document items attributes in the credit object.
  • Added kind, stripe_plan_id, paypal_interval_unit, paypal_interval_frequency and paypal_interval_duration fields in the item object.
  • Changed number field limit to 20 characters for invoices, credits and estimates.

20170628

  • Return 429 (too many requests) instead of 503 (service unavailable) on rate limits.

20170418

  • Added custom_metadata as an editable field.

20161108

  • country is now returned as an attribute for invoices, expenses, credits and estimates.

20160614

  • Amounts are now returned as cents instead being formatted as amount with currency symbol.
  • Versions are no longer passed as part of the URL, instead they can be passed as an accept header.

20160602

  • First version.
  • Amounts are returned formatted as amount with currency symbol.