Calculations
Calculations are core to what the Zamp API provides. Given a transaction object, the Calculation endpoint returns the tax due along with a detailed breakdown of those taxes.
POST/calculations
Calculate taxes
This endpoint calculates taxes for a given transaction. It's intended to be used at transaction time to determine how much tax to collect. But once you've collected, you'll later want to make sure and create the transaction to persist it for filing.
Request
- Name
transaction
- Type
- transaction
The transaction object to calculate taxes for.
Response
- Name
...
- Type
- transaction
The transaction object provided to the calculation.
- Name
taxDue
- Type
- number
Tax amount that should be collected on transaction.
- Name
taxes
- Type
- array
Breakdown of calculated taxes.
Request
POST
/calculations{
"id": "123",
"name": "INV-123",
"transactedAt": "2023-07-01T00:00:00.000Z",
"isResale": false,
"discount": 2,
"subtotal": 18,
"shippingHandling": 5,
"total": 23,
"shipToAddress": {
"line1": "120 SW 10TH AVE",
"line2": null,
"state": "KS",
"city": "TOPEKA",
"zip": "66612"
},
"lineItems": [
{
"id": "LI-123",
"amount": 10,
"quantity": 2,
"discount": 0,
"shippingHandling": 0,
"productName": "The Ultimate Sampler",
"productSku": "SAMPLER-100",
"productTaxCode": "R_TPP_FOOD-BEVERAGE_HOME-CONSUMPTION"
}
]
}
Response
{
// ...
"taxDue": 1.58,
"taxes": [
{
"lineItemId": "LI-123",
"state": "KS",
"sourcing": "INTER_DESTINATION",
"jurisdictionCode": "KS.S.20",
"jurisdictionName": "KANSAS",
"jurisdictionDivision": "STATE",
"compositeCode": "SNTOP",
"compositeName": "TOPEKA",
"exceptionCode": "FOOD_SUPPLEMENTS",
"ancillaryType": null,
"taxableAmount": 18,
"nontaxableAmount": 0,
"excludedAmount": 0,
"taxRate": 0.04,
"taxDue": 0.72,
"taxCollected": 0
},
{
"lineItemId": "LI-123",
"state": "KS",
"sourcing": "INTER_DESTINATION",
"jurisdictionCode": "KS.S.20",
"jurisdictionName": "KANSAS",
"jurisdictionDivision": "STATE",
"compositeCode": "SNTOP",
"compositeName": "TOPEKA",
"exceptionCode": "FOOD_SUPPLEMENTS",
"ancillaryType": "SHIPPING_HANDLING",
"taxableAmount": 5,
"nontaxableAmount": 0,
"excludedAmount": 0,
"taxRate": 0.04,
"taxDue": 0.2,
"taxCollected": 0
},
{
"lineItemId": "LI-123",
"state": "KS",
"sourcing": "INTER_DESTINATION",
"jurisdictionCode": "KS.C.177",
"jurisdictionName": "SHAWNEE COUNTY",
"jurisdictionDivision": "COUNTY",
"compositeCode": "SNTOP",
"compositeName": "TOPEKA",
"exceptionCode": "FOOD_SUPPLEMENTS",
"ancillaryType": null,
"taxableAmount": 18,
"nontaxableAmount": 0,
"excludedAmount": 0,
"taxRate": 0.0135,
"taxDue": 0.243,
"taxCollected": 0
},
{
"lineItemId": "LI-123",
"state": "KS",
"sourcing": "INTER_DESTINATION",
"jurisdictionCode": "KS.C.177",
"jurisdictionName": "SHAWNEE COUNTY",
"jurisdictionDivision": "COUNTY",
"compositeCode": "SNTOP",
"compositeName": "TOPEKA",
"exceptionCode": "FOOD_SUPPLEMENTS",
"ancillaryType": "SHIPPING_HANDLING",
"taxableAmount": 5,
"nontaxableAmount": 0,
"excludedAmount": 0,
"taxRate": 0.0135,
"taxDue": 0.0675,
"taxCollected": 0
},
{
"lineItemId": "LI-123",
"state": "KS",
"sourcing": "INTER_DESTINATION",
"jurisdictionCode": "KS.I.71000",
"jurisdictionName": "TOPEKA CITY",
"jurisdictionDivision": "CITY",
"compositeCode": "SNTOP",
"compositeName": "TOPEKA",
"exceptionCode": "FOOD_SUPPLEMENTS",
"ancillaryType": null,
"taxableAmount": 18,
"nontaxableAmount": 0,
"excludedAmount": 0,
"taxRate": 0.015,
"taxDue": 0.27,
"taxCollected": 0
},
{
"lineItemId": "LI-123",
"state": "KS",
"sourcing": "INTER_DESTINATION",
"jurisdictionCode": "KS.I.71000",
"jurisdictionName": "TOPEKA CITY",
"jurisdictionDivision": "CITY",
"compositeCode": "SNTOP",
"compositeName": "TOPEKA",
"exceptionCode": "FOOD_SUPPLEMENTS",
"ancillaryType": "SHIPPING_HANDLING",
"taxableAmount": 5,
"nontaxableAmount": 0,
"excludedAmount": 0,
"taxRate": 0.015,
"taxDue": 0.075,
"taxCollected": 0
}
]
}