Changelog

Notable changes to the Chargetree APIs and to this documentation.

Breaking changes are announced here before they take effect. Additive changes — a new optional field, a new endpoint, a new event — can land at any time, so build handlers that tolerate fields they do not recognise.

September 2026

This documentation site. The API reference moved to docs.chargetree.co, generated from OpenAPI descriptions that are checked against the application code on every build. Several long-standing inaccuracies were corrected in the process:

  • Request quotas. The previous reference listed hourly quotas of 5,000 reads and 1,000 writes. No such quota has ever been enforced. The real limits are 120 reads and 30 writes per minute, and those are the only limits applied.
  • Idempotency scope. Idempotency-Key is honoured on POST /invoices and POST /contacts only. It is silently ignored on POST /invoices/{id}/cancel, which the previous reference implied was covered.
  • Idempotency retention. Keys are retained for at least 24 hours rather than exactly 24 hours.
  • Stalled requests. A reservation that has been in flight for more than 60 seconds is released, which was not previously documented anywhere.
  • Webhook retries. The waits between attempts are 5m, 30m, 2h and 12h. The previous reference listed a 1-minute first wait that does not occur.
  • Webhook signatures. Now states plainly that there is no timestamp header and no replay window, so deduplicating on event_id is mandatory rather than advisable.
  • Error codes. ACCOUNT_DISABLED, PARTNER_DISABLED and CONFLICT are now documented. They were always returnable.
  • Escalation priority. low is a valid value alongside high and medium.
  • Payment method. payments[].method is an open set, not the closed list previously published.
  • Partner list responses. email is always null when listing accounts.

The Partner API is documented for the first time. All six endpoints, the ct_partner_ key space, the external_id retry behaviour and the one-time secrets now have a reference and a guide.

Earlier changes

Partner account fields. owner_email was renamed to email, and the deprecated industry field was removed from account creation and from account responses.

Partner addresses were split into structured fields — address_line1, address_city, address_state, address_postal_code, address_country — replacing a single free-text address.

Draft invoices. Invoices support an is_draft flag on creation and update, with strict ISO date validation on invoice_date and due_date.

On this page