---
title: "Common mistakes · Builder's guide · Chappell AI"
description: "Section 17 of the GAAPcore builder's guide."
url: https://chappellai.us/guide/17-common-mistakes/
---

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` |
