KintsugiKintsugi

Update a transaction

PUT/transactions/{transaction_id}

Replace a transaction's fields. The scalar fields (date, totalAmount, description, currency, source, marketplace) and the customer are overwritten with what you send. Line items are replaced: an item is matched to a stored one by externalId, a new externalId is added, and a stored line whose externalId you do not send is removed. Addresses are replaced per type: send a SHIP_TO to replace the ship-to, a BILL_TO to replace the bill-to; a type you omit is left as it was. The transaction's type is preserved and cannot be changed here.

Tax is recalculated asynchronously, so totalTaxAmountCalculated and the per-line taxItems repopulate shortly after this returns.

Updating a transaction you do not own answers 404, identical to one that does not exist. A locked or already-filed transaction answers 409.

Authorization

Api-KeystringRequired

Your secret API key. Include it with every request.

Headers

Api-Versiondate

Release date, as YYYY-MM-DD. Defaults to 2026-07-21.

Organization-Idstring

Target organization id (Organization-Id selector).

Connection-Idstring

Target connection id; resolves to its organization.

Entity-Idstring

Platform entity id; resolves to a connection's organization.

Entity-Sourcestring

Optional source to disambiguate an Entity-Id.

Path parameters

transaction_idstringRequired

The unique identifier of the transaction to update.

Body

externalIdstringRequired

Your stable identifier for the transaction.

datestringRequired

When the transaction occurred. This drives which filing period it lands in, so send the real transaction time, not the time of the call.

currencyCurrencyEnumRequired

ISO-4217 currency of every amount sent.

Available options:AEDAFNALLAMDANGAOAARSAUDAWGAZNBAMBBDBDTBGNBHDBIFBMDBNDBOBBRLBSDBTNBWPBYNBZDCADCDFCHFCLPCNYCOPCRCCUCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGGPGHSGIPGMDGNFGTQGYDHKDHNLHRKHTGHUFIDRILSIMPINRIQDIRRISKJEPJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLYDMADMDLMGAMKDMMKMNTMOPMRUMURMVRMWKMXNMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLLSOSSPLSRDSTNSVCSYPSZLTHBTJSTMTTNDTOPTRYTTDTVDTWDTZSUAHUGXUSDUYUUZSVEFVNDVUVWSTXAFXCDXDRXOFXPFYERZARZMWZWD
totalAmountstring

Total transaction amount.

addressesTransactionAddressWrite[]

Addresses for the transaction, replaced per type: a SHIP_TO you send replaces the stored ship-to, a BILL_TO the stored bill-to, and a type you omit is left unchanged. Jurisdiction is resolved from these, so an incomplete address means tax cannot be calculated accurately.

itemsTransactionItemWrite[]

Line items on the transaction. These replace the stored lines: a line is matched by externalId, a new externalId is added, and a stored line whose externalId you do not send is removed.

customerTransactionCustomerWrite

Customer the transaction is attributed to. Omit it for a sale with no customer identity, such as a marketplace or point-of-sale transaction.

descriptionstring

Free-text description of the transaction.

marketplaceboolean

True for reseller or marketplace orders where tax was remitted by someone else. Gross sales still count toward nexus, but tax liability is excluded.

sourcestring

Origin system of the transaction. Must be a supported public value.

Available options:ACUMATICAAIRWALLEXAMAZONAPIAPPLE_APP_STOREBESTBUYBIGCOMMERCEBILL_COMBUNNYCAMPFIRECHARGEBEECHECKOUTCHAMPDEELDUALENTRYEBAYECWIDETSYFACEBOOKFAIREFRESHBOOKSGOOGLE_APP_STOREGOOGLE_EXPRESSGROUPONGUSTOHYPERLINEINSTAGRAMINTUIT_ENTERPRISE_SUITEKICKSTARTERKILL_BILLMACYSMAGENTOMAXIOMERCADO_LIBREMICROSOFT_DYNAMICS_365MODALYSTNETSUITENEWEGGNOCNOCNORDSTROMODOOOPENMETERORBORDWAYOTHERPAYPALPINTERESTPLENTYONEQUICKBOOKSRECURLYRILLETRIPPLINGSAGE-INTACCTSALESFORCESHOPIFYSHOPLINESHOPWARESQUARESPACESTRIPETARGETTIKTOKVERTEX_O_SERIESWALMARTWAYFAIRWISHWIXWOOCOMMERCEXEROZENSKARZOHOZUORA
requiresExemptionExemptionSpec

Create an exemption for this transaction's customer as part of the amend. Omit it to leave exemptions unchanged. The exemption is created atomically with the amend: if it is rejected, the amend does not apply.

Response

idstringRequired

Kintsugi's unique identifier for the transaction.

organizationIdstringRequired

Organization the transaction belongs to. Present on every row because a portfolio-wide list spans organizations.

externalIdstringRequired

Your stable identifier for the transaction.

externalFriendlyIdstring

Human-readable identifier from the source, such as an invoice number; an empty string when the source has only an externalId.

datestringRequired

When the transaction occurred. This drives filing-period assignment.

typePublicTransactionTypeEnumRequired

Document shape of the transaction. Credit-note and tax-refund types reverse or adjust prior sales.

Available options:SALEFULL_CREDIT_NOTEPARTIAL_CREDIT_NOTETAX_REFUNDTAX_COLLECTION
statusPublicTransactionStatusEnumRequired

Settlement state. Only COMMITTED counts toward filed liability; PENDING may still change.

Available options:PENDINGCOMMITTEDCANCELLEDFULLY_REFUNDEDPARTIALLY_REFUNDEDINVALID
directionPublicTransactionDirectionEnumRequired

Whether the organization made the sale or made the purchase. Both are returned, so filter on this if you only want one side.

Available options:SALEPURCHASE
customerIdstring

Kintsugi customer this transaction is attributed to. A sale with no customer identity (marketplace, point-of-sale) is attributed to the organization's shared unattributed-sales customer, which reads back with a null externalId. Check that before treating one customerId as one buyer.

customerNamestring

Name of the customer this transaction is attributed to, or null when it has no customer or the customer has no name.

connectionIdstring

Connection that synced this transaction, if any.

sourcestringRequired

Origin system of the transaction. Sources outside the public set are reported as OTHER.

Available options:ACUMATICAAIRWALLEXAMAZONAPIAPPLE_APP_STOREBESTBUYBIGCOMMERCEBILL_COMBUNNYCAMPFIRECHARGEBEECHECKOUTCHAMPDEELDUALENTRYEBAYECWIDETSYFACEBOOKFAIREFRESHBOOKSGOOGLE_APP_STOREGOOGLE_EXPRESSGROUPONGUSTOHYPERLINEINSTAGRAMINTUIT_ENTERPRISE_SUITEKICKSTARTERKILL_BILLMACYSMAGENTOMAXIOMERCADO_LIBREMICROSOFT_DYNAMICS_365MODALYSTNETSUITENEWEGGNOCNOCNORDSTROMODOOOPENMETERORBORDWAYOTHERPAYPALPINTERESTPLENTYONEQUICKBOOKSRECURLYRILLETRIPPLINGSAGE-INTACCTSALESFORCESHOPIFYSHOPLINESHOPWARESQUARESPACESTRIPETARGETTIKTOKVERTEX_O_SERIESWALMARTWAYFAIRWISHWIXWOOCOMMERCEXEROZENSKARZOHOZUORA
descriptionstring

Transaction description; an empty string when the source sent none.

currencyCurrencyEnumRequired

ISO-4217 currency every unconverted amount on this transaction is in.

Available options:AEDAFNALLAMDANGAOAARSAUDAWGAZNBAMBBDBDTBGNBHDBIFBMDBNDBOBBRLBSDBTNBWPBYNBZDCADCDFCHFCLPCNYCOPCRCCUCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGGPGHSGIPGMDGNFGTQGYDHKDHNLHRKHTGHUFIDRILSIMPINRIQDIRRISKJEPJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLYDMADMDLMGAMKDMMKMNTMOPMRUMURMVRMWKMXNMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLLSOSSPLSRDSTNSVCSYPSZLTHBTJSTMTTNDTOPTRYTTDTVDTWDTZSUAHUGXUSDUYUUZSVEFVNDVUVWSTXAFXCDXDRXOFXPFYERZARZMWZWD
totalAmountstringRequired

Total transaction amount.

taxableAmountstringRequired

Portion of the total that tax was assessed on.

totalTaxAmountImportedstringRequired

Total tax the source system reported.

totalTaxAmountCalculatedstringRequired

Total tax Kintsugi calculated.

totalTaxLiabilityAmountstringRequired

Total tax the organization is liable for. On a SALE it is either the imported or the calculated total, depending on the liability source. On a PURCHASE it is the sum of each line's net use tax, so it does not equal either total.

totalDiscountstring

Total discount applied across the transaction's lines; 0.00 when there is none.

finalTotalAmountstringRequired

totalAmount plus totalTaxLiabilityAmount: what the transaction totals once the organization's tax liability is added.

hasExemptionsbooleanRequired

Whether any line on this transaction was treated as exempt. Derived from the line items, so it can never disagree with them.

lockedbooleanRequired

Whether the transaction is locked for editing. A locked transaction backs a submitted return and cannot be amended or archived.

marketplaceboolean

True for marketplace or reseller orders where the marketplace remitted tax on the seller's behalf. null when the source did not report it.

shopDatestring

Calendar day the transaction occurred in the shop's timezone (YYYY-MM-DD), or null when the source did not report one. Distinct from date, which is the UTC timestamp.

processingStatusstringRequired

How far the transaction has progressed through processing (address resolution, exemption, nexus, tax calculation). PROCESSED means tax calculation has completed.

Available options:ADDRESS_DONEDEFERRED_FROM_FILINGEXCLUDED_IN_CALCULATIONEXEMPT_DONENEEDS_REFETCHNEXUS_DONEPROCESSEDQUEUED
taxLiabilitySourcePublicTaxLiabilitySourceEnumRequired

Which figure backs totalTaxLiabilityAmount: CALCULATED for the tax Kintsugi calculated, COLLECTED for the tax the source reported it already collected.

Available options:CALCULATEDCOLLECTED
addressStatusPublicAddressStatusEnumRequired

Validation status of the transaction's addresses.

Available options:UNVERIFIEDINVALIDPARTIALLY_VERIFIEDVERIFIEDUNVERIFIABLEBLANK
destinationCurrencyCurrencyEnum

Currency the converted amounts are expressed in, or null when no conversion applied.

Available options:AEDAFNALLAMDANGAOAARSAUDAWGAZNBAMBBDBDTBGNBHDBIFBMDBNDBOBBRLBSDBTNBWPBYNBZDCADCDFCHFCLPCNYCOPCRCCUCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGGPGHSGIPGMDGNFGTQGYDHKDHNLHRKHTGHUFIDRILSIMPINRIQDIRRISKJEPJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLYDMADMDLMGAMKDMMKMNTMOPMRUMURMVRMWKMXNMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLLSOSSPLSRDSTNSVCSYPSZLTHBTJSTMTTNDTOPTRYTTDTVDTWDTZSUAHUGXUSDUYUUZSVEFVNDVUVWSTXAFXCDXDRXOFXPFYERZARZMWZWD
conversionRatestring

Rate used to convert into destinationCurrency. Not a fraction: a rate into a currency quoted in thousands per unit is a large number. null when no conversion applied, and also when the transaction is already in destinationCurrency, where the converted amounts equal their originals.

convertedTotalAmountstring

totalAmount in the destination currency, or null when no conversion applied. Never 0 to mean unconverted: check for null.

convertedTotalTaxLiabilityAmountstring

totalTaxLiabilityAmount in the destination currency, or null when no conversion applied. Never 0 to mean unconverted: a zero here is a real converted liability of zero, so check for null.

convertedTotalDiscountstring

totalDiscount in the destination currency, or null when no conversion applied.

convertedFinalTotalAmountstring

finalTotalAmount in the destination currency, or null when no conversion applied.

createdAtstringRequired

When Kintsugi first recorded this transaction.

updatedAtstring

When Kintsugi last modified this transaction, or null if it has not been modified since it was recorded.

addressesTransactionAddress[]

Addresses on the transaction, used to resolve jurisdiction.

itemsTransactionItem[]

Line items on the transaction.

200

Successful Response

400

The request was invalid.

401

Authentication failed or was missing.

403

The credential is not permitted for this request.

404

The requested resource was not found.

409

The request conflicts with existing state.

422

The request failed validation.

cURL
PUT /transactions/{transaction_id}
-H "Api-Key: ***"
-H "Api-Version: 2026-07-21"
{
"externalId": "order-1001",
"date": "2026-07-21T15:30:00Z",
"currency": "AED",
"totalAmount": "10.00",
"addresses": [
{
"type": "BILL_TO",
"street1": "123 Main St",
"street2": "Suite 400",
"city": "San Francisco",
"county": "San Francisco County",
"state": "CA",
"postalCode": "94107",
"country": "US"
}
],
"items": [
{
"externalProductId": "SKU-ABC",
"date": "2026-07-21T15:30:00Z",
"quantity": "3",
"amount": "10.00",
"product": "Widget",
"description": "Annual software subscription",
"externalId": "order-1001",
"taxAmountImported": "10.00",
"taxableAmount": "10.00"
}
],
"customer": {
"externalId": "order-1001",
"name": "Acme Corp",
"email": "jane.doe@example.com",
"companyName": "Acme Corp"
},
"description": "Annual software subscription",
"marketplace": false,
"source": "API",
"requiresExemption": {
"exemptionType": "customer",
"certificateType": "certificate type",
"startDate": "2026-01-01",
"endDate": "2026-12-31",
"countryCode": "US",
"jurisdiction": "CA",
"reseller": false,
"fein": "12-3456789",
"salesTaxId": "ST-98765",
"status": "ACTIVE"
}
}
Example request
https://api.trykintsugi.com/transactions/{transaction_id}
Response
{
"id": "tran_2mNpQr7Ls8f3k",
"organizationId": "orgn_2mNpQr7Ls8f3k",
"externalId": "order-1001",
"externalFriendlyId": "INV-1001",
"date": "2026-07-21T15:30:00Z",
"type": "SALE",
"status": "PENDING",
"direction": "SALE",
"customerId": "cust_2mNpQr7Ls8f3k",
"customerName": "Acme Corp",
"connectionId": "conn_2mNpQr7Ls8f3k",
"source": "API",
"description": "Annual software subscription",
"currency": "AED",
"totalAmount": "10.00",
"taxableAmount": "10.00",
"totalTaxAmountImported": "10.00",
"totalTaxAmountCalculated": "10.00",
"totalTaxLiabilityAmount": "10.00",
"totalDiscount": "10.00",
"finalTotalAmount": "10.00",
"hasExemptions": false,
"locked": false,
"marketplace": false,
"shopDate": "2026-07-21",
"processingStatus": "PROCESSED",
"taxLiabilitySource": "CALCULATED",
"addressStatus": "UNVERIFIED",
"destinationCurrency": "AED",
"conversionRate": "25350.123456789",
"convertedTotalAmount": "10.00",
"convertedTotalTaxLiabilityAmount": "10.00",
"convertedTotalDiscount": "10.00",
"convertedFinalTotalAmount": "10.00",
"createdAt": "2026-07-28T12:00:00Z",
"updatedAt": "2026-07-28T12:00:00Z",
"addresses": [
{
"id": "3f6c2b1e-8a4d-4c2e-9b1f-2d7e5a6c9f10",
"type": "BILL_TO",
"street1": "123 Main St",
"street2": "Suite 400",
"city": "San Francisco",
"county": "San Francisco County",
"state": "CA",
"postalCode": "94107",
"country": "US",
"fullAddress": "123 Main St, San Francisco, CA 94107, US",
"phone": "+1 415 555 0100",
"status": "UNVERIFIED"
}
],
"items": [
{
"id": "txim_2mNpQr7Ls8f3k",
"productId": "prod_2mNpQr7Ls8f3k",
"productName": "Widget",
"description": "Annual software subscription",
"quantity": "3",
"amount": "10.00",
"subtotal": "10.00",
"discount": "10.00",
"taxAmountImported": "10.00",
"taxAmountCalculated": "10.00",
"taxLiabilityAmount": "10.00",
"exempt": false,
"convertedAmount": "10.00",
"convertedSubtotal": "10.00",
"convertedDiscount": "10.00",
"convertedTaxAmountImported": "10.00",
"convertedTaxLiabilityAmount": "10.00",
"taxItems": [
{
"name": "CA STATE TAX",
"rate": "0.082500000",
"amount": "10.00",
"convertedAmount": "10.00",
"jurisdictionType": "STATE",
"jurisdictionName": "CA"
}
]
}
]
}
Update a transaction (2026-07-21) | Kintsugi API Reference