KintsugiKintsugi
API reference / Changelog

API changelog

Every change to the Kintsugi API and every release, newest first. Breaking changes carry the Breaking change mark. Tenanted releases are dated, and you choose one with the Api-Version header.

Changes

2026-10-06

Generates a VAT return report as a report job
NewReports

POST /reports/jobs accepts reportType VAT_REPORT with reportArgs.filingId, for a VAT filing in Germany, the United Kingdom, the Czech Republic, Spain or Singapore. Once the job is READY, GET /reports/jobs/{report_job_id}/result returns it as JSON in vatReport: the return form's boxes grouped in sections, each with its boxCode, boxLabel, amount, category and sourceTransactionCount; a summary of output VAT, input VAT, net VAT payable and sales and purchases excluding VAT; ossDestinations, the VAT owed per EU destination country, or null when there are no cross-border sales; and limitations. Amounts are decimal strings rounded to the cent. Creating the job answers 404 for a filing outside the organization, 400 for another country, for a filing with more than 100,000 transactions or with deliveryMethod EMAIL, and 403 for an organization without this feature enabled. The result endpoint answers 400 for a report you download instead, 409 before the job is READY and 404 for a job you cannot access.

What to do
  • Start the job, poll GET /reports/jobs/{reportJobId} until it is READY, then read the report from the result endpoint.

2026-10-02

Emails a report's download link on request
NewReports

POST /reports/jobs accepts an optional deliveryMethod. DOWNLOAD, the default, works as before: fetch the report from GET /reports/jobs/{reportJobId}/download once it is READY. EMAIL sends a download link, when the report is ready, to the email address of the user behind your credential; the request cannot name another address. The response echoes deliveryMethod. EMAIL answers 400 for BULK_FILING_REPORTS, for an organization with email turned off, and for a credential without an email address.

What to do
  • Send deliveryMethod: "EMAIL" to receive the report link by email.

Releases

2026-07-21

LatestTenanted API

Introducing the Tenanted API

A fresh foundation for building on Kintsugi. The Tenanted API is versioned by date, and you choose the release you build against. It speaks one consistent dialect from end to end: clean paths, camelCase fields, exact decimal amounts, and a single error format. And it is built for scale, with one credential reaching every organization it owns.

Compared with v1

Topicv12026-07-21
VersioningThe /v1 path prefixThe Api-Version header, dated YYYY-MM-DD. Optional; without it, a request runs against the launch release
Paths/v1/transactions/transactions
Authenticationx-api-keyApi-Key. Endpoints that manage people accept a signed-in session token instead
Choosing an organizationx-organization-id, required on almost every requestOne credential reaches every organization it owns. Narrow a request with Organization-Id, Connection-Id, or Entity-Id
Field namessnake_casecamelCase
Money and ratesDecimal strings out, numbers or strings inDecimal strings at a fixed scale: amounts to 2 places, rates to 9
TimestampsNo single documented formatRFC 3339 in UTC, always ending in Z
ErrorsShapes vary by endpointOne envelope everywhere: code, message, requestId, and errors
PortfolioNot availablePortfolio and Portfolio Reseller endpoints, for partner accounts

Moving an integration from v1

  1. Send Api-Version: 2026-07-21 with every request, so your integration stays on this release until you decide to move.
  2. Drop /v1 from your paths.
  3. Send your key as Api-Key, and replace x-organization-id with Organization-Id wherever you target one organization.
  4. Rename fields to camelCase, and read every amount as a decimal string, never a float.
  5. Branch on the error code, not the message or the HTTP status, and quote requestId when you contact support.

Creating a transaction answers 202 Accepted straight away, and tax is calculated just after. Check processingStatus before you read the tax totals.

v1

Legacy

The original Kintsugi API, versioned in the path. It remains the default in these docs and is documented exactly as before, so existing integrations can keep running with confidence. New integrations should start on the Tenanted API.

Kintsugi API Changelog