Tax Module
Manage tax exemption certificates, sync with TaxJar, and handle transaction reporting.
Base URL: https://app.proign.com/[tenant]/tax/api
Overview
The Tax module helps manage sales tax compliance:
- Sync transactions with TaxJar
- View tax liability by state
- Track upcoming filings
- Handle refunds and amendments
- Shopify integration via webhooks
Key Features
Exemption Certificates
Manage tax exemption certificates for B2B customers:
- Certificate Upload - PDF upload with metadata extraction
- Expiry Tracking - Automatic alerts before expiration
- State Validation - Per-state certificate requirements
- Bulk Import - CSV import for existing certificates
TaxJar Integration
Automated tax compliance via TaxJar:
- Automatic transaction sync from Shopify
- Tax liability calculation by state
- Filing deadline tracking
- Refund and amendment handling
API Endpoints
Dashboard & Liability
GET /api/[tenant]/dashboard # Dashboard summary
GET /api/[tenant]/liability # Tax liability by state/period
Transactions
GET /api/[tenant]/transactions # List transactions
POST /api/[tenant]/transactions/sync # Sync transactions to TaxJar
POST /api/[tenant]/transactions/[id]/refund # Create refund
PUT /api/[tenant]/transactions/[id]/amend # Amend transaction
Filings
GET /api/[tenant]/filings # Tax filing history
Connections
# TaxJar Connection
GET /api/[tenant]/connections/taxjar # Get TaxJar status
POST /api/[tenant]/connections/taxjar # Save TaxJar credentials
DELETE /api/[tenant]/connections/taxjar # Remove TaxJar connection
# Shopify Connection
GET /api/[tenant]/connections/shopify # Get Shopify status
POST /api/[tenant]/connections/shopify # Save Shopify credentials
DELETE /api/[tenant]/connections/shopify # Remove Shopify connection
Webhooks
POST /api/[tenant]/webhooks/shopify # Handle Shopify order webhooks
Request Examples
Sync Transactions
POST /api/[tenant]/transactions/sync
Content-Type: application/json
{
"from_date": "2024-01-01",
"to_date": "2024-01-31"
}Configure TaxJar
POST /api/[tenant]/connections/taxjar
Content-Type: application/json
{
"api_token": "your-taxjar-api-token",
"sandbox": false
}Exemption Certificate Lifecycle
Tax exemption certificates go through a managed lifecycle:
uploaded → validated → active → expiring → expired| Status | Description |
|---|---|
uploaded | Certificate PDF received, pending admin review |
validated | Admin confirmed certificate is valid for the stated jurisdiction |
active | Certificate is active and orders from this customer are tax-exempt |
expiring | Certificate expires within 30 days — automatic email alert sent |
expired | Certificate is no longer valid — orders taxed normally |
Certificate API
GET /api/[tenant]/certificates # List certificates
POST /api/[tenant]/certificates # Upload certificate
GET /api/[tenant]/certificates/[id] # Get certificate details
PATCH /api/[tenant]/certificates/[id] # Update status (admin)
DELETE /api/[tenant]/certificates/[id] # Delete certificate
Upload Certificate
POST /api/[tenant]/certificates
Content-Type: application/json
{
"customer_email": "buyer@wholesale.com",
"customer_name": "Wholesale Distributors Inc.",
"exemption_type": "resale",
"states": ["FL", "GA", "TX"],
"certificate_number": "R-12345678",
"expiry_date": "2027-12-31",
"file_id": "media_abc123"
}
// Response (201 Created)
{
"data": {
"id": "cert_xyz789",
"status": "uploaded",
"states": ["FL", "GA", "TX"],
"expires_at": "2027-12-31"
}
}Exemption Types
| Type | Description | Common Form |
|---|---|---|
| Resale | Buyer resells the goods to end customers | State resale certificate |
| Government | Federal, state, or local government | Government exemption letter |
| Nonprofit | 501(c)(3) tax-exempt organizations | IRS determination letter |
| Manufacturing | Materials used in manufacturing process | Manufacturing exemption cert |
| Agricultural | Farm and agricultural use | Agricultural exemption cert |
Transaction Amendments
When a transaction needs correction after syncing to TaxJar:
PUT /api/[tenant]/transactions/txn_abc123/amend
Content-Type: application/json
{
"reason": "customer_provided_exemption_certificate",
"certificate_id": "cert_xyz789",
"notes": "Customer submitted resale cert after purchase"
}
// Response
{
"data": {
"id": "txn_abc123",
"status": "amended",
"original_tax": 45.50,
"amended_tax": 0.00,
"amendment_history": [
{
"date": "2026-02-21T10:00:00Z",
"reason": "customer_provided_exemption_certificate",
"by": "admin@company.com"
}
]
}
}All amendments are tracked with a full audit trail including who made the change, when, and why. Amended transactions are automatically re-synced to TaxJar.
Configuration
- TaxJar API Token — Connect your TaxJar account for automated tax calculations and filing
- Shopify Store — Connect for automatic order sync via webhooks
- Sandbox Mode — Test transactions without affecting production TaxJar data
- From Address — Your nexus locations (states where you have tax obligations)
- Certificate Alerts — Email notifications for expiring certificates (30-day, 7-day warnings)
- Auto-Sync Interval — How often to sync new Shopify orders (default: every 15 minutes)