Transaction Processing Flow
Step 1: Calculate Tax Estimate
Endpoint:POST /v1/tax/estimateAccess Method: HTTP REST
Purpose: Calculates estimated tax for a transaction before payment is processed. When to Use:
- During checkout process (before payment)
- Quote generation
- Shopping cart tax calculation
- Real-time tax display for customers
x-api-key: Organization’s API keyx-organization-id: Organization IDContent-Type:application/json
- Returns tax breakdown by jurisdiction
- Includes total tax amount and tax rates
- Used for display to customers before purchase
- Does not create a permanent transaction record
- Consider caching results for identical requests
- Address validation may occur during calculation
Step 2: Create Transaction
Endpoint:POST /v1/transactionsAccess Method: HTTP REST
Purpose: Records a completed transaction for tax compliance and filing purposes. When to Use:
- After payment is confirmed
- Recording sales for tax compliance
- Creating audit trail for filings
- Must be called after tax estimate (if estimate was used)
x-api-key: Organization’s API keyx-organization-id: Organization IDContent-Type:application/json
- Creates permanent transaction record
- Transaction ID should be unique (use your order ID)
- Tax amounts should match calculated estimates
- Transactions are automatically included in filings
- Address validation occurs during creation
- Returns transaction with Kintsugi transaction ID
PENDING, COMMITTED, CANCELLED, REFUNDED, etc.
Example Implementation:
Step 3: Get Transactions
Endpoint: SDK Method -kintsugi.transactions.get()Access Method: SDK
Purpose: Retrieves a paginated list of transactions for reporting and reconciliation. When to Use:
- Client transaction history views
- Reconciliation reports
- Audit trail access
- Dashboard displays
limit: Number of results (default: 50)offset: Pagination offsetstartDate: Filter start date (ISO 8601)endDate: Filter end date (ISO 8601)- Optional filters:
state_code,country,status,transaction_type
- Returns paginated results
- Use date ranges for period-specific reports
- Filter by status for reconciliation workflows
- Large result sets require pagination
- Used for transaction history displays in client dashboards
Step 4: Get Transaction by ID
Endpoint: SDK Method -kintsugi.transactions.getById()Access Method: SDK
Purpose: Retrieves detailed information about a specific transaction. When to Use:
- Transaction detail views
- Dispute resolution
- Audit inquiries
- Individual transaction lookup
transactionId: Kintsugi transaction ID (returned from create transaction)
- Returns full transaction details including line items, tax breakdown, customer info
- Use for detailed transaction views
- Transaction ID is Kintsugi’s internal ID, not your external transaction ID
Data Flow: Checkout to Compliance
Best Practices
- Match Tax Amounts: Use tax amounts from estimate when creating transaction
- Store Transaction IDs: Save Kintsugi transaction IDs for future reference
- Handle Errors: Implement retry logic for transient failures
- Validate Before Sending: Ensure all required fields are present
- Use Unique IDs: Use your order ID as
external_idto prevent duplicates - Status Management: Set appropriate transaction status (
COMMITTEDfor completed sales) - Address Validation: Validate addresses before sending to improve tax accuracy
Error Handling
Common Errors:- 400 Bad Request: Missing required fields or invalid data format
- 404 Not Found: Product doesn’t exist - create product first
- 409 Conflict: Duplicate transaction ID - use unique external_id
- 401 Unauthorized: Invalid API key - verify credentials