ESC
Type to search…
v2026
This documentation is still being improved and may not fully reflect how the application works. Join the forum to ask questions and share feedback →
Docs Developer REST API

REST API

Basis exposes a RESTful JSON API for integrating with external applications, automating data entry, and building custom reporting.

Authentication

The API uses Bearer token authentication.

Generating an API Key

  1. Go to Settings → API Keys → New.
  2. Give the key a name (e.g. "ERP Integration").
  3. Set an expiry date (optional).
  4. Copy the key — it is shown only once.

Using the Token

Include the token in every request header:

Authorization: Bearer YOUR_API_KEY

Base URL

https://your-domain.com/api/v1

For Cloud edition: https://app.basis-apps.net/api/v1

Common Endpoints

Parties

Method Endpoint Description
GET /parties List parties
GET /parties/{id} Get a party
POST /parties Create a party
PUT /parties/{id} Update a party

Sales Invoices

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

Receipts

Method Endpoint Description
GET /receipts List receipts
POST /receipts Create and post a receipt

Items

Method Endpoint Description
GET /items List items
GET /items/{id} Get an item
POST /items Create an item

Request / Response Format

All requests and responses use application/json.

Example — Create a Sales Invoice

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
}

Rate Limits

Plan Requests per minute
Server (per installation) 600
Cloud Starter 120
Cloud Professional 600
Cloud Enterprise Unlimited

Webhooks

Configure webhooks to receive real-time notifications when documents are created or status changes:

  1. Go to Settings → Webhooks → New.
  2. Enter your endpoint URL.
  3. Select events to subscribe to.
  4. Basis sends a POST with a JSON payload to your URL.

SDK

An official TypeScript/JavaScript SDK is available:

npm install @basis-apps/sdk

See the SDK documentation on GitHub.