Build on your books with a modern REST API
Programmatic access to customers, invoices, bills, payments, banking, inventory, accounting and CRM. Mint a scoped API key, read and write your data, and connect WisoBooks to any app or third-party tool.
# Create an invoice with your API key curl -X POST https://api.wisobooks.com/v1/orders \ -H "Authorization: Bearer bk_live_…" \ -H "Idempotency-Key: 7f3a-1" \ -H "Content-Type: application/json" \ -d '{ "customerId": "…", "issueDate": "2026-06-27" }' # → 201 Created · ETag, RFC 9457 errors, pagination, rate limits
Secure, scoped API keys — issued after you log in
Create keys in the developer portal. Each key is bound to your account and carries OAuth-style scopes that can only narrow what you can already do — never widen it. Secrets are hashed; you see the full key once.
- Authorization: Bearer or X-Api-Key header
- Coarse scopes like customers:read, orders:write, or * for full access
- Per-key rate limits, expiry and one-click revocation
- Live and test (sandbox) keys with distinct bk_live_ / bk_test_ prefixes
GET https://api.wisobooks.com/v1/me
{
"tenantId": "…",
"environment": "Live",
"scopes": ["customers:read","orders:write"],
"permissions": ["Permissions.Customers.View", …]
}
Every part of your business, as REST resources
Consistent JSON resources with paged lists, ETags for optimistic concurrency, Idempotency-Key on creates, and RFC 9457 problem-details errors across the board.
- Sales: customers, orders/invoices, quotes, customer payments, credit notes
- Inventory: items, categories, warehouses, units of measure
- Purchases: suppliers, bills, purchase orders, expenses, supplier payments
- Accounting & tax: taxes, tax groups, fixed assets
- Banking: bank accounts and transactions
- CRM: leads, contacts, opportunities, activities
{
"data": [ { "id": "…", "name": "Acme Co", "dueAmount": 1200 } ],
"meta": { "page": 1, "pageSize": 50,
"totalCount": 348, "totalPages": 7 }
}
Interactive docs, generated from the live API
An OpenAPI 3.1 document powers a Scalar reference with a built-in try-it console — paste a key, call any endpoint, and copy the request as curl or your language of choice.
- Microsoft OpenAPI document at /openapi/v1.json
- Scalar API reference with authentication and try-it
- Generate clients in any language from the OpenAPI spec
- Predictable pagination, sorting and search conventions
# Rate limits & quota are returned as headers
HTTP/1.1 429 Too Many Requests
Retry-After: 60
Content-Type: application/problem+json
Start free, scale with usage
Hybrid pricing: every tier includes a monthly call quota and a rate limit; paid tiers bill overage per 1,000 calls. Free tier forever, plus a 14-day Pro trial for new accounts.
- Free — 1,000 calls/mo, 60 req/min
- Starter — 50,000 calls/mo, 300 req/min, overage $1/1k
- Pro — 500,000 calls/mo, 600 req/min, overage $0.50/1k
- Enterprise — custom quota, dedicated limits and SLA
FAQ
How do I authenticate?
Create an API key in the developer portal and send it as Authorization: Bearer (or X-Api-Key). Keys are scoped to your permissions.
Is there a sandbox?
Yes — bk_test_ keys run against an isolated sandbox company with sample data. Sandbox calls are free and never count toward quota.
What about rate limits?
Each plan sets a per-minute rate limit and a monthly quota. Exceeding them returns 429 with Retry-After; over-quota returns 402/429 unless overage is enabled.
Can I generate a client SDK?
Yes. The OpenAPI 3.1 document lets you generate typed clients in any language, or use the Scalar try-it console directly.
Ready to build?
Log in to the developer portal, mint a key and make your first call in minutes.