Correcting Tax on a Processed Order
Once an order reaches Processed status, UltraCart locks its tax amount. The order's Tax page offers no editable tax field, and changing a line item's taxable flag does not produce a new tax total. This page explains why that happens, how to confirm you are hitting the lock rather than a defect, and the one supported way to correct the tax.
You are most likely to run into this in three situations: reconciling a manually recreated order against a payment that was captured outside UltraCart, fixing a taxable flag that was set wrong before checkout, or discovering that a tax exempt customer was charged tax.
Quick diagnostics
| Symptom | Likely cause | Where to check |
|---|---|---|
| The Tax page shows a tax amount with no way to change it | The order is Processed or Processed (Pending Clearance) | Order detail, Payment Status |
| Changing a line item's taxable flag leaves the order's tax total unchanged | Tax was calculated and filed through the tax engine when the order processed, and a flag change does not trigger a fresh calculation | Order detail, Items tab, then the Tax page |
| Recalculating completes without an error, but the tax total is identical | Recalculation only runs for orders that have not processed yet | No new tax engine estimate appears in the provider log |
| A recreated order cannot be made to match a tax amount from an external payment | The recreated order was saved as Processed before the correct tax was set | Compare the order's locked tax against the amount on the original capture |
| An order for a tax exempt customer was charged tax | The customer checked out as a guest, or the exemption was never configured on the tax provider's side | Whether the order is linked to a customer profile, then that profile's Taxes tab |
Why tax is locked once an order is Processed
Processed means payment was captured. By that point, an integrated tax engine has normally already filed a transaction record against the order. Editing the tax in place afterwards would leave UltraCart displaying one figure while the tax engine reports another, which breaks the audit trail you depend on when you file and remit.
For that reason the Tax page on a Processed order exposes no editable tax amount, and toggling an item's taxable flag starts no new calculation.
This is expected behavior, not a defect. There is no supported way to override or recalculate tax on a Processed order in place.
Common issues
The tax amount is not editable on a Processed order
Symptoms: The Tax page for an order shows a fixed tax amount and offers no field to change it.
Root cause: The order is in Processed status, so UltraCart has locked the calculated tax.
Diagnosis: Check the order's Payment Status. If it reads Processed or Processed (Pending Clearance), the tax amount is locked.
Solution: Refund the order and create a replacement with the corrected item and tax setup. See Refund and recreate the order.
Changing a taxable flag does not update the tax total
Symptoms: Marking a line item taxable or non-taxable changes the taxable subtotal on the Items tab, but the order's tax total stays where it was even after you recalculate.
Root cause: Recalculation re-invokes the tax engine only for orders that have not processed yet. On a Processed order it sends no new estimate request.
Diagnosis: Look for a new estimate or transaction entry in the tax provider log immediately after you recalculate. If nothing appears, no recalculation ran. The Sales Tax page describes where those logs live.
Solution: Refund and recreate the order rather than editing it in place.
A recreated order will not match a prior payment's tax
Symptoms: A replacement order created to reconcile a payment that never synced into UltraCart cannot be made to match that payment's tax amount, because the replacement was already processed with a different tax figure, often zero.
Root cause: The same lock applies to the replacement. Once it is Processed, its tax cannot be edited toward a target figure.
Diagnosis: Compare the target tax amount from the original payment or capture against the locked tax on the replacement order.
Solution: Set the item configuration and tax correctly before you create a replacement order, because you cannot correct it afterwards. If one has already processed with the wrong tax, refund and recreate it.
A tax exempt customer was charged tax
Symptoms: A customer whose profile is marked Tax Exempt placed an order that collected sales tax, and the order has since processed.
Root cause: The exemption did not reach the tax calculation. Usually the customer checked out as a guest rather than logging in to their customer profile, so the profile's exempt status never applied. With Avalara, TaxJar, Sovos, or Anrok, it can instead mean the provider specific customer fields were blank, or no matching exempt customer record existed inside the provider's system.
Diagnosis: Check whether the order is linked to a customer profile and whether the customer logged in. Then open that profile's Taxes tab and confirm both Tax Exempt and the provider specific fields. Then check the tax provider log for the order: the request shows which customer code UltraCart sent, and the response shows the exempt amount the provider returned.
Solution: Repair the setup first, so the next order is right, then correct this order by refunding and recreating it. Tax Exempt Customers walks the three requirements in order.
Refund and recreate the order
This is the only supported correction path.
Refunding and recreating a live customer order cannot be undone. Confirm item pricing, tax jurisdiction, and payment status first, and take particular care when you are reconciling against an external payment, where charging the customer twice or duplicating fulfillment are real risks.
- Confirm the correct item setup, pricing, and tax amount before you change anything. If the customer should be tax exempt, confirm their profile and provider side setup now and make sure they log in to that profile, because the replacement order locks its tax the same way this one did.
- Refund the Processed order. See How do I perform a Refund.
- Create a new order with the same items and the corrected tax and taxable settings. See Creating an order.
- If the corrected order should show a zero balance due, because payment was collected outside UltraCart, check that the payment and balance status match before you complete it.
- Confirm the new order shows the gross, tax, and total you expect, and that the correction triggered no duplicate fulfillment or customer notification.
Where to check
| Tool | What it tells you |
|---|---|
| Order detail, Payment Status | Whether the order is Processed, and therefore tax locked |
| Order detail, Tax page | On a Processed order, the missing editable tax field confirms the lock. On an order that has not processed, the field is editable |
| Customer profile, Taxes tab | Whether the customer is marked Tax Exempt and whether the provider specific customer fields are filled in |
| Tax provider log | Whether a recalculation actually reached the tax engine. See Sales Tax for where each provider's log button sits |
| Tax engine dashboard | The filed transaction as the provider recorded it |
| Order history | A record of the refund and the replacement order, for later reconciliation |
When to escalate
A locked tax amount is not an engineering defect, so do not file it as a bug. Escalate for human judgment when:
- No original order exists to confirm the correct historical pricing before you recreate one.
- You cannot tell whether a payment capture is a duplicate or a legitimate second charge.
- The target tax amount does not match the tax engine's current rate for that jurisdiction, which can happen when the rate changed after the original sale.
- The item or SKU that a replacement order should contain is ambiguous.
Include the affected order IDs, the target tax amount and where it came from, and what makes refund and recreate difficult for that particular order.
Related documentation
- Sales Tax covers the tax methods UltraCart supports, the three requirements for a tax exempt customer, and where each provider's logs live.
- Tax configuration and exemptions covers the customer profile Taxes tab field by field.
- Configuring TaxJar covers TaxJar setup, including how refunds are sent as adjustments to the original transaction.
- How do I perform a Refund covers full, partial, and batch refunds.
- Creating an order covers building the replacement order.
- Pending Clearance explains the holding state behind
Processed (Pending Clearance).