Exact Online NL – Gotchas
Exact Cloud business software offers accounting and industry software in the cloud for SME's on desktop, laptop, tablet and mobile apps.
8 gotchas across 6 resources
These are connector-specific behaviors and limitations to be aware of when integrating.
Attachments1 gotcha
attachmentsAllreference_id here is not the invoice, bill, or journal entry ID itself — it is the ID of Exact's separate Document object. For journal entries, GET /journal-entries/{id} already resolves and returns it as a custom_fields entry (id: "exact_document_id") when Exact has a linked document; use that value as reference_id. For other record types, look it up yourself with pass_through[$filter]=FinancialTransactionEntryID eq guid'{record_id}' against /api/v1/{division}/documents/Documents, using the unified record's own id as {record_id}; the matching Document.ID is what goes in the reference_id path segment here. This list has no server-side total count, so pagination metadata never includes a count.
Bill Payments1 gotcha
billPaymentsAddCreating a bill payment records the bank transaction but does not automatically reconcile
it with the linked bill — the bill's status will not change to paid until the payment is
matched manually in Exact Online. A valid bank journal (Type=12) must be supplied via the
bank_journal_code connection setting or pass_through[journal_code] per request;
without one the API returns 'Invalid journal'.
Invoices1 gotcha
invoicesAddExact Online assigns invoice status automatically (open by default) and ignores the status field on create — invoices are finalized/processed in Exact Online, not via the API.
Set VAT via line_items[].tax_rate.code; Exact derives the percentage from the code, so line_items[].tax_rate.rate is ignored on create.
Journal Entries2 gotchas
journalEntriesAllLimit parameter for pagination is not supported for this resource.
journalEntriesAddA validation refusal — an unbalanced entry, an unknown or inactive reference (ledger
account, journal, VAT code, currency), or a missing required field — returns 422 with
the specific reason named. Any other 500 is a genuine unexpected downstream failure,
not a refusal the request itself caused.
Journals2 gotchas
journalsAllUse code as journal_symbol when creating a journal entry. allow_vat applies to general journals. x-apideck-company-id selects the division. This list has no server-side total count, so pagination metadata never includes a count.
journalsAddtype: bank requires iban — Exact needs a bank account reference to create a bank journal. type: payment_service requires a payment service provider reference that has no equivalent in this unified field set — creating a journal with that type will be rejected by Exact. Use pass_through to supply the required vendor field if you need payment_service, or use sales, sales_credit_note, purchase, purchase_credit_note, cash or general instead.
type: other has no Exact equivalent and will be rejected — other is a read-side fallback for values Exact might introduce in the future, not a valid input.
Payments1 gotcha
paymentsAddCreating a payment records the bank transaction but does not automatically reconcile it
with the linked invoice — the invoice status will not change to paid until the payment is
matched manually in Exact Online. A valid bank journal (Type=12) must be supplied via the
bank_journal_code connection setting or pass_through[journal_code] per request;
without one the API returns 'Invalid journal'.