KintsugiKintsugi

Create a transaction

POST/transactions

Create a transaction for the resolved organization. Accepted rather than created: the transaction is recorded immediately, and tax is calculated asynchronously, so totalTaxAmountCalculated and the per-line taxItems populate shortly after this returns. For the same reason the returned id is not immediately fetchable: GET /transactions/{id} answers 404 until processing completes, so poll it rather than treating the first 404 as failure.

Set type to FULL_CREDIT_NOTE or PARTIAL_CREDIT_NOTE and send originalTransactionId to reverse a committed sale. The credit note inherits the original transaction's customer, addresses and source; send the line items to credit in items, each carrying the externalId of the original line. Reversing a transaction you do not own answers 404, identical to a transaction that does not exist. Re-POSTing the same credit-note external id against the same parent returns the stored credit note (same as a successful create) rather than a conflict. The same external id against a different parent still conflicts.

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.

Body

externalIdstringRequired

Your stable identifier for the transaction. Re-sending the same one updates the existing transaction rather than creating a second.

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.

typePublicTransactionTypeEnum

Kind of transaction. SALE records a sale; FULL_CREDIT_NOTE or PARTIAL_CREDIT_NOTE with originalTransactionId reverses a committed sale. The stored type is derived from the amount credited, so it can differ from the one you send.

Available options:SALEFULL_CREDIT_NOTEPARTIAL_CREDIT_NOTETAX_REFUNDTAX_COLLECTION
originalTransactionIdstring

The committed sale being reversed. Required when type is a credit-note type and must be omitted for a SALE. The credit note inherits the original's customer, addresses and source, so send only the lines to credit in items.

currencyCurrencyEnumRequired

ISO-4217 currency of every amount sent.

Available options:AEDAFNALLAMDANGAOAARSAUDAWGAZNBAMBBDBDTBGNBHDBIFBMDBNDBOBBRLBSDBTNBWPBYNBZDCADCDFCHFCLPCNYCOPCRCCUCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGGPGHSGIPGMDGNFGTQGYDHKDHNLHRKHTGHUFIDRILSIMPINRIQDIRRISKJEPJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLYDMADMDLMGAMKDMMKMNTMOPMRUMURMVRMWKMXNMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLLSOSSPLSRDSTNSVCSYPSZLTHBTJSTMTTNDTOPTRYTTDTVDTWDTZSUAHUGXUSDUYUUZSVEFVNDVUVWSTXAFXCDXDRXOFXPFYERZARZMWZWD
totalAmountstring

Total transaction amount.

addressesTransactionAddressWrite[]

Addresses for the transaction. Jurisdiction is resolved from these, so an incomplete address means tax cannot be calculated accurately.

itemsTransactionItemWrite[]

Line items on the transaction.

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: the transaction is then attributed to the organization's shared unattributed-sales customer, and the response's customerId points at it.

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

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.

202

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
POST /transactions
-H "Api-Key: ***"
-H "Api-Version: 2026-07-21"
{
"externalId": "order-2001",
"date": "2026-01-15T14:30:00Z",
"type": "SALE",
"currency": "USD",
"totalAmount": "100.00",
"source": "API",
"description": "Order 2001",
"addresses": [
{
"type": "SHIP_TO",
"street1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94107",
"country": "US"
}
],
"items": [
{
"externalProductId": "SKU-ABC",
"date": "2026-01-15T14:30:00Z",
"product": "Widget",
"quantity": "2",
"amount": "100.00"
}
]
}
Response
{
"id": "tran_12345",
"organizationId": "orgn_12345",
"externalId": "order-2001",
"externalFriendlyId": "",
"date": "2026-01-15T14:30:00Z",
"type": "SALE",
"status": "COMMITTED",
"direction": "SALE",
"customerId": "cus_12345",
"customerName": "Acme Corp",
"connectionId": null,
"source": "API",
"description": "Order 2001",
"currency": "USD",
"totalAmount": "100.00",
"taxableAmount": "100.00",
"totalTaxAmountImported": "0.00",
"totalTaxAmountCalculated": "0.00",
"totalTaxLiabilityAmount": "0.00",
"totalDiscount": "0.00",
"finalTotalAmount": "100.00",
"hasExemptions": false,
"locked": false,
"marketplace": false,
"shopDate": null,
"processingStatus": "QUEUED",
"taxLiabilitySource": "CALCULATED",
"addressStatus": "UNVERIFIED",
"destinationCurrency": null,
"conversionRate": null,
"convertedTotalAmount": null,
"convertedTotalTaxLiabilityAmount": null,
"convertedTotalDiscount": null,
"convertedFinalTotalAmount": null,
"createdAt": "2026-07-28T12:00:02.043042Z",
"updatedAt": "2026-07-28T12:00:02.043044Z",
"addresses": [
{
"id": "addr_12345",
"type": "SHIP_TO",
"street1": "123 Main St",
"street2": "",
"city": "San Francisco",
"county": "",
"state": "CA",
"postalCode": "94107",
"country": "US",
"fullAddress": "123 Main St, San Francisco, CA 94107, US",
"phone": null,
"status": "UNVERIFIED"
}
],
"items": [
{
"id": "txim_12345",
"productId": "prod_12345",
"productName": "Widget",
"description": "",
"quantity": "2",
"amount": "100.00",
"subtotal": "100.00",
"discount": "0.00",
"taxAmountImported": "0.00",
"taxAmountCalculated": "0.00",
"taxLiabilityAmount": "0.00",
"exempt": false,
"convertedAmount": null,
"convertedSubtotal": null,
"convertedDiscount": null,
"convertedTaxAmountImported": null,
"convertedTaxLiabilityAmount": null,
"taxItems": []
}
]
}
Create a transaction (2026-07-21) | Kintsugi API Reference