Basis exposes a RESTful JSON API for integrating with external applications, automating data entry, and building custom reporting.
The API uses Bearer token authentication.
Include the token in every request header:
Authorization: Bearer YOUR_API_KEY
https://your-domain.com/api/v1
For Cloud edition: https://app.basis-apps.net/api/v1
| Method | Endpoint | Description |
|---|---|---|
| GET | /parties |
List parties |
| GET | /parties/{id} |
Get a party |
| POST | /parties |
Create a party |
| PUT | /parties/{id} |
Update a party |
| Method | Endpoint | Description |
|---|---|---|
| GET | /sales-invoices |
List invoices |
| GET | /sales-invoices/{id} |
Get an invoice |
| POST | /sales-invoices |
Create an invoice |
| POST | /sales-invoices/{id}/post |
Post a draft invoice |
| POST | /sales-invoices/{id}/void |
Void a posted invoice |
| Method | Endpoint | Description |
|---|---|---|
| GET | /receipts |
List receipts |
| POST | /receipts |
Create and post a receipt |
| Method | Endpoint | Description |
|---|---|---|
| GET | /items |
List items |
| GET | /items/{id} |
Get an item |
| POST | /items |
Create an item |
All requests and responses use application/json.
Request:
POST /api/v1/sales-invoices
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"date": "2026-05-01",
"customer_id": "party-uuid",
"due_date": "2026-05-31",
"lines": [
{
"item_id": "item-uuid",
"qty": 5,
"unit_price": 100000,
"tax_category": "VAT11"
}
]
}
Response:
{
"id": "inv-uuid",
"invoice_number": "INV-2026-0042",
"status": "draft",
"total": 555000,
"tax": 55000
}
| Plan | Requests per minute |
|---|---|
| Server (per installation) | 600 |
| Cloud Starter | 120 |
| Cloud Professional | 600 |
| Cloud Enterprise | Unlimited |
Configure webhooks to receive real-time notifications when documents are created or status changes:
An official TypeScript/JavaScript SDK is available:
npm install @basis-apps/sdk
See the SDK documentation on GitHub.