Getting started
Core concepts
The QUiCK resource model: company, partner, expense, income, document and accounting assignment.
The QUiCK resource model follows Hungarian accounting practice while staying developer-friendly: every object has a unique integer id, lists are paginated, and most resources are available in both the stable /1/ and the extended /2/ API version.
Company
The company is the top-level unit — an accounting entity belonging to one tax number. Every other resource hangs off it, and one API token grants access to exactly one company. Company details are read with GET /2/company-info/ (id, name, tax_account_number, default_currency_name, advanced_accounting, …).
Partner
A partner is a customer or a vendor. One partner can be both at the same time; the is_customer and is_vendor fields tell you which. Partner records can be reconciled by tax_number.
| Field | Type | Description |
|---|---|---|
name | string | Company name or individual's name |
tax_number | string? | Tax number (HU: ########-#-##) |
is_customer | bool? | Acts as a customer |
is_vendor | bool | Acts as a vendor |
account_number | string? | Bank account number |
city / zip_code / address | string? | Address components |
Access: GET /1/partners/ (paginated list).
Expense and income
The two central accounting resources are the expense (incoming document) and the income (outgoing document). Both link to a partner, a currency and one or more accounting assignments.
- Creating an expense happens by uploading the document:
POST /2/expenses/create/expects the file Base64-encoded in thecontentfield. The system extracts the data from the document. - Listing and details:
GET /1/expenses/,GET /2/expenses/,GET /2/expenses/{expenseId}/. - Incomes follow the same model (
GET /1/incomes/); their accounting assignments are updated withPOST /2/incomes/{incomeId}/update/.
Document types
The invoice_class field marks the type of the document:
| Value | Meaning |
|---|---|
0 | Invoice |
1 | Storno (voiding) invoice |
2 | Advance invoice |
3 | Final invoice |
4 | Correction invoice |
Key fields
Fields you will meet on both expenses and incomes: partner (plus the denormalised partner_name, partner_tax_number, …), invoice_number, currency, net_amount / vat_amount / gross_amount (decimal, returned as strings), the issued_at / fulfilled_at / due_at dates, paid_status (payment state) and accounting_status (bookkeeping state).
Amounts are strings
Monetary amounts are returned as decimal strings (for example "25000.00") to avoid floating-point rounding errors. Handle them as a decimal type on the client, never as a float.
Assignment
An assignment is one accounting breakdown line of an expense or income — the equivalent of a classic line item. It ties an amount to accounting categories: expense_type / revenue_type, net_amount / vat_amount / gross_amount, vat (VAT category) and — when advanced_accounting is enabled — ledger_number_id (ledger number).
Document
A document is the uploaded file (PDF, image) belonging to an expense or income. Handling: GET /1/documents/, upload and linking through /1/documents/attach/, /1/documents/detach/ and /1/documents/files/, plus the v2 /2/documents/* operations.
Payment and cash account
A payment is a financial transaction tied to a cash account or bank account (account). The current balance of those accounts also appears in the GET /1/pulse/ summary (accounts[].current_balance).
Accounting master data (v2)
The /2/ API also lets you maintain the accounting categories:
| Resource | Endpoint | Description |
|---|---|---|
| Ledger number | /2/accounting/ledger-numbers/ | List and manage ledger numbers |
| VAT category | /2/accounting/vat-categories/ | VAT rates (cost / revenue type, percent) |
| Expense type | /2/expense-types/ | Catalogue of expense categories |
| Revenue type | /2/revenue-types/ | Catalogue of revenue categories |
| Tag | /2/tags/ | Free-form tags on documents |
Identifiers and pagination
- Identifiers: every resource gets an integer
id(for example4821). There is no type prefix. - Pagination: list endpoints respond with a
count/next/previous/resultsenvelope; you page through them withpageandpage_size. - Format: besides
?format=json(the default), most endpoints also serve a browser-friendly?format=htmlview.
Assignments depend on advanced_accounting
The ledger number (ledger_number_id) and the detailed VAT fields only take effect when advanced accounting is switched on for the company (advanced_accounting: true in the company-info response). Check this before sending ledger references.