Builder's guide · Section 17
Common mistakes
| Mistake | What happens | Do this instead |
|---|---|---|
| Calling the API from the browser with the writer key | Anyone with the page can post to the books | Relay through your server (section 3) |
Number(amount) or floating-point totals | Off-by-a-cent totals and refusals | Strings and a decimal library (section 7) |
| A new idempotency key on every retry | Double postings after a timeout | One key per user action |
| Reusing the key after a refusal | The old refusal comes back even after the fix | New key once the outcome is known |
| Rewording or hiding GAAPcore's errors | Users can't tell what to fix; accountants stop trusting the screen | Show the code, message and field details |
| Computing journal entries or costs in the console | Figures that disagree with the ledger | Send documents; show GAAPcore's preview or draft |
| Sending your own document numbers when a series exists | Refused | Let GAAPcore assign them |
| Hiding a button as the only control | Anyone who calls the server directly gets around it | Enforce on the server |
| Adding user accounts to GAAPcore | Not supported, by design | People live in your console's database |
| Storing price lists or notes in ledger fields | Clutter and confusion in the books | Keep commercial data in your own store |
| Reading only the first page of a list | Missing accounts or documents past 200 rows | Follow next_cursor |