0046·The rate provided is not valid for the selected sale type
Product classificationVery common
What this means
Rate is not a free-text field. FBR maintains a lookup from transaction type and date to the rates legally available, and the rate you send must be one of the exact description strings that lookup returns. Sending a plausible-looking rate that is not on the list fails even when the percentage itself is correct.
Why it happens
- The rate was hard-coded as a percentage string rather than fetched from the rate reference API.
- A valid percentage was formatted differently from FBR's description — spacing, symbol placement, or a trailing decimal.
- The rate is valid in general but not for the specific sale type on the line.
- Rates changed with a new finance act and the cached list was never refreshed. The rate lookup is date-sensitive for exactly this reason.
- The field was left empty, which fails for the same reason as an invalid value.
How to fix it
- 1Fetch the permitted rates for your transaction type, province, and invoice date from FBR's rate reference endpoint.
- 2Submit the rate description string exactly as returned, character for character.
- 3Cache that reference data and refresh it on a schedule rather than pinning values in code.
- 4Where a sale type permits several rates, make the choice explicit in your product data rather than defaulting.
How Ordyoo handles this
Ordyoo caches FBR's rate reference data and presents only the rates valid for an item's sale type at the invoice date, so an invalid combination cannot be selected in the first place.
Scenarios where this appears
Sandbox scenarios that commonly produce 0046.
Related errors
Stop debugging FBR payloads by hand
Ordyoo builds and submits compliant invoices so most of these rejections never reach you. Start free.
