Skip to main content
Persist transactions after taxes have been calculated and the transaction is processed in your system.

The Transaction Object

Core Properties

string
required
Unique identifier for the transaction
string (Optional)
Friendly identifier (e.g., invoice number)
string (Optional)
Required for refund transactions; references original transaction id
datetime (ISO-8601)
required
Timestamp when transaction occurred. Can be in the past which will use historical rates (from 2023 and on), or the future, which will use the current dateโ€™s tax rates and rules
boolean (optional, default: false)
deprecated
Indicates whether Zamp will recalculate tax when a transaction is posted to Zamp
string (Optional)
Marketplace facilitator that collected payment and assumed sales tax responsibility
string (Optional)
Customerโ€™s entity exemption type: EDU_PRIVATE, EDU_PUBLIC, FEDERAL_GOV, LOCAL_GOV, NON_PROFIT, STATE_GOV, TRIBAL
string (Optional)
Purpose for sale: BUSINESS_USE, PERSONAL_USE, RENTAL_USE, RESALE
ISO-4217 currency code (Default: USD)
The currency of the transaction.
This must match the destination country if Zamp is filing the return
number (Optional)
Transaction-level discount
number (Optional)
deprecated
Total excluding tax and shipping/handling. This is no longer required
number (Optional)
Transaction-level shipping
number (Optiona)
Transaction-level handling
number (Optional)
Combined shipping/handling
number
required
Actual tax collected amount
number
required
Total including tax and shipping / handling
address (optional)
Where transaction physically shipped from
address
required
Where shipped to or point of sale
array (Minimum 1)
required
Line item details
object (Optional)
Custom key-value pairs (max 50, keys 1-40 chars, values 1-500 chars)

Address Object

string
Street address
string (Optional)
Additional address info
string
City name
string
Two-letter state code
string
Format: ##### or #####-####
string (Optional)
ISO-3166 Alpha-2 code (Default, US)

Line Item Properties

string
required
Unique line item identifier
number
required
Amount per unit
number
required
Number of units
number (Optional)
Line-item level discount
number (Optional)
Line-item level shipping
number (Optional)
Line-item level handling
number (Optional)
Combined line-item shipping/handling
string
required
Product description
string (Optional)
Product identifier
string (Optional)
Zamp tax code for product taxability
  • For point-of-sale orders, set shipFromAddress and shipToAddress to identical values.
  • Prefer separate shipping and handling amounts; use shippingHandling only if combined.
  • Updates/deletions for transactions in closed filing periods are forbidden.
  • Transactions created with transactedAt in closed periods auto-adjust to current time.

Entity Exemption Types

EDU_PRIVATE, EDU_PUBLIC, FEDERAL_GOV, LOCAL_GOV, NON_PROFIT, STATE_GOV, TRIBAL

Marketplace Values

ALIBABA, AMAZON, APPLE, BEST_BUY, COSTCO, EBAY, ETSY, EVENTBRITE, FLIP, GOOGLE, GUNBROKER, LOWES, MACYS, META, MIRAKL, NEWEGG, NINTENDO, OVERSTOCK, POSHMARK, REVERB, SHOP, SONY, TARGET_PLUS, TIKTOK, WALMART, WAYFAIR

Example

The transaction object is the standard request shape across both the /transactions and /calculations endpoints.

List All Transactions

integer
default:"10"
Number of items to return (1-100)
string
Pagination cursor from a previous nextCursor
datetime
Exclude transactions before this timestamp
datetime
Exclude transactions after this timestamp

Request

Keep in mind that this endpoint will only return transactions associated with that API key, not all transactions for a company.
GET /transactions

Response

200

Create a Transaction

Creates a new transaction. Uses the same request/response format as the Calculations endpoint.

Request

POST /transactions

Response

Returns the transaction plus taxDue and the itemized taxes breakdown. When taxCollected is provided, it is allocated across each jurisdiction entry.
200

Create a Refund Transaction

Creates a refund transaction linked to the original via parentId. See the Handling Refunds guide for details.

Request

POST /transactions

Response

A refund reduces previously reported liability, so the negative amounts net against the original transaction. taxDue is 0 and taxes is empty when the refund fully offsets the original.
200

Retrieve a Transaction

GET /transactions/:id

Response

Returns the transaction object plus taxDue and the full itemized taxes breakdown (same shape as the Create a Transaction response).
200

Update a Transaction

Updates a transaction by replacing the prior version with the same ID. Requires all transaction properties.
PUT /transactions/:id

Delete a Transaction

Permanently deletes a transaction and all related tax information.
DELETE /transactions/:id