API changelog: 2026
Every change to the Kintsugi API in 2026, newest first. For the latest changes and every release, see the API changelog.
2026-10-05
Requires a unique name when a portfolio creates an organizationOrganizations
When a portfolio credential creates an organization with POST /organizations, the name must now be unique, ignoring letter case. A name already in use answers 409 with code conflict and the message An organization with this name already exists. Before, the 2026-07-21 release accepted any name, including one already in use or one that differed only in letter case, such as acme beside Acme. Creating an organization from a user session without a portfolio is unchanged.
- Handle
409with codeconflictby asking for a different name. - Do not retry a refused name with different letter case: it is refused the same way.
Sets a billing mode and business websites when a portfolio creates an organizationOrganizations
With a portfolio credential, POST /organizations accepts two optional fields. billingMode, PARTNER_MANAGED or CLIENT_MANAGED, sets how the new organization is billed; a portfolio that already has a billing type passes it on and the field is ignored, as it is for a test portfolio. businessWebsites lists the organization's websites: an address without a scheme is saved as https, blank entries and duplicates are dropped, and only http and https addresses are accepted. An invalid address or more than 10 unique addresses answers 422. Sending either field from a user session that is not acting for a portfolio also answers 422.
Adds filing metrics to the organizations listOrganizations
GET /organizations accepts expand=filingMetrics, which adds a filingMetrics object to each organization: totalFilings, filed, pendingApproval (unfiled returns not yet past their due date), overdue (unfiled returns past their due date) and liabilityByCurrency, one { currency, amount } entry per currency. Returns marked do not file are left out of pendingApproval and overdue. Currencies are listed in code order, with returns that have no currency yet last as currency: null, and amounts are decimal strings that are never converted between currencies. An organization with no returns gets zero counts and an empty liabilityByCurrency. Without expand the response is unchanged, an unknown expand value answers 422, and a cursor stays valid with or without expand.
- Pass
expand=filingMetricsto get each organization's filing status in the same call as the list.