Arubis API reference
Base URL https://arubis.olympuspay.co/api/v1. Every request needs Authorization: Bearer <key>. See the Arubis overview for keys, limits and errors.
| Method | Path | Scope |
|---|---|---|
GET | /invoices | read |
GET | /invoices/{id} | read |
POST | /invoices | write |
GET | /bills | read |
GET | /bills/{id} | read |
GET | /contacts | read |
POST | /contacts | write |
GET | /accounts | read |
GET | /reports/profit-and-loss | read |
GET | /reports/balance-sheet | read |
GET | /reports/trial-balance | read |
The document object#
Invoices, credit notes, bills, supplier credits and expense claims share one shape.
| Field | Type | Notes |
|---|---|---|
id | uuid | |
kind | string | invoice, credit_note, bill, supplier_credit or expense_claim |
number | string | Set when the document is issued. null on drafts. |
status | string | draft, awaiting_approval, approved, sent, posted, partially_paid, paid, void or closed |
contact_id | uuid | The customer or supplier |
date, due_date | date | |
reference | string | Your reference, for example an order number |
currency | string | ISO 4217 code |
fx_rate | number | Rate to the organisation's base currency |
subtotal, tax_total, total | number | |
amount_paid, amount_credited | number | |
created_at | timestamp |
A single document also returns its lines: id, position, item_id, description, quantity, unit_price, discount_pct, account_id, tax_code_id, net, tax, gross.
List invoices#
GET /invoices returns invoices and credit notes, newest first.
| Parameter | Description |
|---|---|
status | One status from the list above |
contact_id | Only this customer |
from, to | Document date range, YYYY-MM-DD |
limit, offset | See pagination |
curl "https://arubis.olympuspay.co/api/v1/invoices?status=posted&from=2026-10-01&to=2026-10-31" \
-H "Authorization: Bearer $ARUBIS_API_KEY"Get an invoice#
GET /invoices/{id} returns one invoice or credit note with its lines.
curl https://arubis.olympuspay.co/api/v1/invoices/7a0c5c1e-2f61-4c0e-a1f0-0d5c9d1b2e33 \
-H "Authorization: Bearer $ARUBIS_API_KEY"Create a draft invoice#
POST /invoices creates a draft. A person reviews and issues it in Arubis. Needs a read and write key.
| Field | Required | Description |
|---|---|---|
contact_id | yes | A customer in these books |
lines | yes | 1 to 200 lines |
date, due_date | no | YYYY-MM-DD. Defaults: today, and the customer's payment terms. |
reference | no | Your reference |
currency | no | Defaults to the customer's currency, then the base currency |
notes | no | Printed on the invoice |
Each line takes description, quantity (default 1), unit_price, and optionally item_id, discount_pct, account_id and tax_code_id. When account_id or tax_code_id is left out, Arubis uses the item's, then the customer's default.
curl https://arubis.olympuspay.co/api/v1/invoices \
-X POST \
-H "Authorization: Bearer $ARUBIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contact_id": "3d6f8f8a-0b8e-4f5e-9c2b-6c7a0e0d41aa",
"reference": "Order 1001",
"lines": [ { "description": "Game drive", "quantity": 2, "unit_price": 450.00 } ]
}'The response is 201 with the new document. A field the books reject (for example an account from another organisation) returns 400 with the reason.
List bills#
GET /bills returns bills, supplier credits and expense claims. It takes the same parameters as list invoices. GET /bills/{id} returns one with its lines.
Contacts#
GET /contacts lists customers and suppliers by name. Filter with type=customer or type=supplier.
Each contact has id, name, is_customer, is_supplier, email, phone, tax_number, currency, payment_terms_days, active and created_at.
POST /contacts creates one. Needs a read and write key.
| Field | Required | Description |
|---|---|---|
name | yes | Up to 160 characters |
email, phone, tax_number | no | |
is_customer | no | Default true |
is_supplier | no | Default false |
curl https://arubis.olympuspay.co/api/v1/contacts \
-X POST \
-H "Authorization: Bearer $ARUBIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Kalahari Lodges", "email": "accounts@example.com" }'Accounts#
GET /accounts returns the chart of accounts ordered by code: id, code, name, type, subtype, active. Use these ids for account_id on invoice lines.
Reports#
| Path | Parameters | Default |
|---|---|---|
/reports/profit-and-loss | from, to | 1 January this year to today |
/reports/balance-sheet | as_of | today |
/reports/trial-balance | as_of | today |
curl "https://arubis.olympuspay.co/api/v1/reports/trial-balance?as_of=2026-09-30" \
-H "Authorization: Bearer $ARUBIS_API_KEY"Reports return the same figures as the report pages in Arubis, in data, with the period echoed back (from and to, or as_of).