API reference
BetaRead programmatic access to your Quoining books. This API is in beta — the surface area will expand before GA, and we will email API-key holders at least 30 days before any breaking change.
Beta caveats
- Endpoints are read-mostly at launch; write endpoints ship gradually.
- Rate limit: 120 requests per minute per API key. Exceeding returns
429with aRetry-Afterheader. - Pagination is 1-indexed; max
perPageis 100. - All responses are JSON with
application/json. - Monetary values are returned as strings with 2-4 decimal precision to avoid float drift.
Authentication
Create an API key in Settings › API keys. Keys are company-scoped. Pass the key in theAuthorization header asBearer <key>. Revoke compromised keys immediately from the same page — revocation is effective on the next request.
curl -H "Authorization: Bearer $QUOINING_API_KEY" \
-H "Accept: application/json" \
https://quoining.com/api/v1/entities?page=1&perPage=25Scopes
Each API key carries a list of scopes. A key with scope*has full access. Finer-grained scopes follow the patternresource:action, e.g.invoices:read.
Endpoints
/api/v1/entitiesscope: entities:readList entities visible to the API key.
Query params: pageperPage
curl -H 'Authorization: Bearer $QUOINING_API_KEY' https://quoining.com/api/v1/entities
/api/v1/accountsscope: accounts:readList GL accounts for the caller's company.
Query params: entityIdisActivepageperPage
/api/v1/billsscope: bills:readList bills (AP invoices received).
Query params: entityIdstatusvendorIdpageperPage
/api/v1/invoicesscope: invoices:readList invoices issued to customers.
Query params: entityIdstatuscustomerIdpageperPage
/api/v1/journal-entriesscope: journal:readList posted journal entries.
Query params: entityIdfromtopageperPage
/api/v1/journal-entries/{id}scope: journal:readFetch a single journal entry with its lines.
/api/v1/trial-balancescope: reports:readSnapshot trial balance as of a given date.
Query params: entityIdasOf
/api/v1/sales-receiptsscope: sales:readList point-of-sale sales receipts.
Query params: entityIdpageperPage
/api/v1/sales-receiptsscope: sales:writeCreate a sales receipt.
Errors
Errors are returned as JSON with an errorfield and a semantic HTTP status. Common statuses:
401— missing, invalid, or expired API key.403— API key is missing the required scope.404— resource not found or not visible to this key’s company.422— validation error on a write request.429— rate limit exceeded; retry after the header says.5xx— internal error; please report with theX-Request-Idresponse header.
Versioning
The current namespace is /api/v1. Breaking changes will ship under /api/v2with at least 180 days of overlap. Additive changes (new fields, new endpoints) land in place without a version bump.
Support
API questions, bug reports, or feature requests: support@quoining.com — include your API key’s last-4 fingerprint (visible in Settings) and any failing request/response, never the raw key itself.