Scopes are the permissions a business grants your app on the consent screen.
They are enforced per endpoint, deny-by-default: every API route declares
the scopes it requires, and a token without them gets a 403. You cannot
escalate a live token — to add scopes, send the user through
authorization again with the wider scope value.
Scopes bound what an app may request; some operations additionally require
the consenting user’s business role — see Errors.
Request the minimum set your integration needs. The business sees every
requested scope by name on the consent screen; over-asking costs you
conversions and slows down review.
:read grants view access, :write grants create/modify. This is the same
registry the console’s scope picker uses (also served at
GET https://api.getonebooks.com/developer/scopes).
| Scope |
Grants |
profile:read |
View your profile information |
| Scope |
Grants |
invoices:read |
View invoices |
invoices:write |
Create and modify invoices |
customers:read |
View customers |
customers:write |
Create and modify customers |
quotes:read |
View quotes |
quotes:write |
Create and modify quotes |
sales-returns:read |
View sales returns (credit notes) |
sales-returns:write |
Create and modify sales returns |
payments:read |
View customer payments |
payments:write |
Record customer payments |
| Scope |
Grants |
suppliers:read |
View suppliers |
suppliers:write |
Create and modify suppliers |
purchases:read |
View purchase orders / bills |
purchases:write |
Create and modify purchases |
purchase-returns:read |
View purchase returns (debit notes) |
purchase-returns:write |
Create and modify purchase returns |
supplier-payments:read |
View supplier payments |
supplier-payments:write |
Record supplier payments |
expenses:read |
View expenses |
expenses:write |
Record expenses |
| Scope |
Grants |
journal:read |
View journal entries |
journal:write |
Create journal entries |
accounts:read |
View chart of accounts |
accounts:write |
Create and modify accounts |
contra:read |
View contra vouchers (cash/bank transfers) |
contra:write |
Create contra vouchers |
fiscal-year:read |
View fiscal year and close status |
fiscal-year:write |
Lock or unlock fiscal years |
| Scope |
Grants |
bank-recon:read |
View bank statements and reconciliations |
bank-recon:write |
Upload statements and match transactions |
| Scope |
Grants |
items:read |
View items catalog |
items:write |
Create and modify items |
| Scope |
Grants |
attachments:read |
View attachments linked to transactions |
attachments:write |
Upload and delete attachments |
| Scope |
Grants |
reports:read |
View financial reports (P&L, Balance Sheet, etc.) |
gstr:read |
View and export GSTR-1 / GSTR-3B (India) |
| Scope |
Grants |
print-templates:read |
View print template configuration |
print-templates:write |
Modify print templates (layout, colors, logo, columns) |
You can edit your app’s registered scope set in the console at any time, but:
- Widening the scopes of an approved app resets its review status to
CHANGES_REQUESTED — it drops out of general availability until re-approved.
Narrowing (or keeping the set identical) does not. See
Go live.
- Existing consents are unchanged; each business’s grant stays at whatever it
approved. To use a new scope with an existing business, re-run authorization
with the wider
scope request.
Scopes also gate webhooks: an event is only delivered if
your app holds the event’s gating scope and the business’s consent includes
it.