0302·Decimal places exceed the allowed limit
Data formatVery common
What this means
FBR enforces precision limits on numeric fields before any business validation. Systems that store amounts at higher precision for accuracy — which is the correct thing to do internally — will fail here unless they round at the API boundary.
Why it happens
- Amounts are stored at four decimal places internally and submitted unchanged.
- A computed value such as tax on a discounted line produced a long fraction.
- Floating-point arithmetic introduced trailing digits.
- A percentage calculation was serialised at full precision.
How to fix it
- 1Round every monetary field to two decimal places immediately before serialising the payload.
- 2Round quantity to at most four decimal places.
- 3Round once, at the boundary — rounding at intermediate stages causes the calculation mismatches instead.
- 4Verify that your rounded values still satisfy the tax arithmetic, since rounding can introduce a mismatch of its own.
How Ordyoo handles this
Amounts are held at four decimal places throughout the ledger and rounded to two in a single serialisation step, so internal accuracy is preserved while the payload conforms.
Related errors
Stop debugging FBR payloads by hand
Ordyoo builds and submits compliant invoices so most of these rejections never reach you. Start free.
