PortaPro supports flexible sales tax calculation to meet your business needs. You can choose between three methods: Disabled, Flat Rate, or Automatic by Address/ZIP.
Accessing Tax Settings
Tax Calculation Methods
1. Disabled
No tax will be calculated on any invoices. Use this if:
2. Flat Rate
Apply a fixed percentage to all invoices regardless of location.
How to configure:
Best for:
3. Automatic by Address/ZIP (Recommended)
Automatically calculate the correct sales tax based on the service location address. This uses the ZipTax API to look up precise rates based on street address, city, state, and ZIP code.
How it works:
Best for:
Customer Tax Exemptions
Some customers may be tax-exempt (government agencies, non-profits, resellers with tax certificates). PortaPro supports per-customer tax overrides.
To set a customer as tax-exempt:
When this customer is selected on a quote or invoice, their override rate (0%) will be used instead of the calculated rate.
Important: Customer overrides take priority over all other tax methods. Always document the exemption reason (e.g., attach a tax exemption certificate to the customer's documents).
How Tax Appears on Documents
Quotes & Invoices
Tax is displayed with the calculated percentage:
```
Subtotal: $1,500.00
Tax (7.75% – Beverly Hills, CA): $116.25
Total: $1,616.25
```
When automatic lookup is used, the city and state are shown for transparency.
PDF Invoices
The stored tax rate is included on generated PDFs:
```
Tax (7.75%): $116.25
```
Invoice Audit Trail
Every invoice stores detailed tax information for compliance and auditing:
| Field | Description |
|-------|-------------|
| tax_rate_used | The decimal rate applied (e.g., 0.0775) |
| tax_rate_source | How the rate was determined: ziptax_address, ziptax_zip, flat, override, disabled |
| tax_geo_method | Lookup method: address or zip |
| service_zip | ZIP code of the service location |
| service_location_id | Reference to the customer's service location |
This ensures you can always trace exactly how tax was calculated for any invoice.
Fallback Behavior
If automatic tax lookup fails (API unavailable, invalid address, etc.), the system gracefully falls back:
You'll never have an invoice fail due to tax lookup issues.
Frequently Asked Questions
Q: How often are tax rates updated?
Tax rates are cached for 30 days. After expiration, the next lookup for that location will fetch fresh data from the ZipTax API.
Q: Can I override tax for a specific invoice?
Currently, tax is calculated automatically based on the method you've configured. For special situations, set a customer-level override to 0% and add a note explaining the adjustment.
Q: Does tax apply to all line items?
Yes, tax is calculated on the invoice subtotal (items + services + consumables + delivery fees).
Q: What if I change my tax method?
Existing invoices retain their original tax rate (stored in tax_rate_used). Only new invoices will use the updated method.
Q: Is the ZipTax integration included in my plan?
The ZipTax integration is included at no additional cost. API usage is managed by PortaPro.
Troubleshooting
Tax shows 0% when it shouldn't
Tax rate seems incorrect
"Fallback" appearing as tax source
This means the automatic lookup failed and the system used your flat rate. Possible causes:
The system will retry on the next lookup.