AlphaAlpha Docs

Exact Online integration

Book sent invoices in Exact Online automatically (including customer creation) and pull payment status back into Alpha

Exact Online integration

The Exact Online integration books Alpha invoices in your Exact Online administration and pulls the payment status back. Alpha stays the invoicing system (it generates the PDF and mails the customer) while Exact receives the financial booking (a sales entry in the verkoopdagboek) and the resulting receivable (openstaande post).

The integration is configured per tenant under Settings → Integrations → Exact Online and requires the MANAGE_INTEGRATIONS permission.

What it does

  • Invoice booking: when an invoice is sent (or marked as sent), it is automatically booked in the configured administration. Each invoice row becomes a line on the configured revenue GL account with the mapped VAT code; discount rows book negative. The Alpha invoice number is stored as the booking's YourRef.
  • Customer creation (klantdossier): the invoice's client is matched to an Exact crm/Account by previously stored link, VAT number, or exact name. When no match exists the account is created (as a customer, with address, email, phone, KvK and VAT number) and linked to the Alpha client for future invoices.
  • Kostenplaats per klant (optional): with the Kostenplaats per klant switch on, every client automatically gets its own cost center in Exact and all lines for that client are booked on it. The code is derived from the Alpha client number; the description is naam - adres - plaats, so the bookkeeper recognises it without looking anything up. Exact caps that description at 50 characters; when it does not fit, the name is shortened so the street and city stay readable, and when even that fails the street is dropped rather than the city. A client that is renamed or moves house has its cost center renamed on the next booking.
  • Omschrijving and notities: the booking's omschrijving is the Alpha invoice number, or the offertenummer followed by the invoice number when the invoice was generated from a quote. The invoice's notitie travels along in the Notes field of the first line, which is where an Exact factuurlayout prints it; it is deliberately not booked as an extra line, because a layout that prints every regel would show it as a stray € 0,00 rule.
  • Payment status: Alpha polls Exact's receivables every 30 minutes. When Exact reports an invoice fully paid, the outstanding amount is registered as a payment on the Alpha invoice and it flips to PAID (triggering the usual payment-received automation and notification). Partial payments show as a partially paid indicator on the invoice; no amounts are invented for them.

Before you start

Have these ready; the setup form asks for all of them in one go, and the answers come from your bookkeeper, not from Alpha:

You needWhere it comes from
An Exact Online administration (divisie) to book inYour Exact account. If you keep several administrations, decide up front which one Alpha books into: Alpha books into exactly one.
An Exact login that may grant access to an appThe consent screen is shown to whoever clicks Verbinden; that user's rights decide what Alpha may do.
The verkoopdagboek Alpha should useExact: Stamgegevens → Financieel → Dagboeken, type Verkoop (often 70).
The omzetrekening (revenue GL account)Exact: Stamgegevens → Financieel → Grootboekrekeningen, your turnover account (e.g. 8000).
The btw-codes matching each VAT rate you invoice withExact: Stamgegevens → Financieel → Btw-codes. Note the code (a number like 2) for 21%, 9% and 0% as far as you use them.
An Alpha user with MANAGE_INTEGRATIONSAlpha: Settings → Roles. Without it the Exact settings can be opened but every action fails.

You do not have to pick these from memory: after connecting, the dagboek, grootboekrekening and btw-code fields are dropdowns filled from your own Exact administration.

Connecting

  1. Go to Settings → Integrations → Exact Online and click Verbinden met Exact Online. You are redirected to Exact to log in and grant access; afterwards you land back on the integration settings and the badge turns Verbonden.
  2. Pick the Administratie (divisie) to book in: it defaults to the connecting user's current administration.
  3. Choose the Verkoopdagboek and the Omzetrekening (grootboek).
  4. Under Btw-mapping, map each Alpha VAT percentage to the matching Exact btw-code (e.g. 21 → code 2). Invoices with an unmapped rate fail loudly instead of booking with a guessed code, so add a row for every rate you actually invoice with.
  5. Optionally switch on Kostenplaats per klant if you want turnover per customer in Exact.
  6. Pick the boekingswijze: see below. Leave it on Verkoopboeking unless Exact has to produce the invoice document itself.
  7. Switch on Synchronisatie inschakelen and save.
  8. Click Verbinding testen: it confirms Alpha can reach the administration with the current configuration.

Boekingswijze: verkoopboeking or verkoopfactuur

Verkoopboeking (default)Verkoopfactuur in Exact
What lands in ExactA financial booking in the verkoopdagboekA real sales invoice document, with line numbers, quantities and unit prices
Who invoices the customerAlpha: it makes the PDF and mails itAlpha still mails it; Exact can also print/mail its own copy
Needs an artikel per lineNoYes, per Exact's own rules
Openstaande postImmediatelyAfter Alpha processes ("verwerkt") the invoice, which it does automatically

Choose Verkoopfactuur when the administration must hold the invoice as a document, for instance because the bookkeeper works from Exact's own factuuroverzicht. It has two prerequisites in Exact, both verified against a live administration:

  • A standaardartikel. Exact rejects a line without one (Verplicht: Artikel), so pick the article all lines book on. The Alpha row description still goes on the line, and the article does not appear on the printed invoice.
  • The administration must be able to process invoices. Processing needs the Vooruitgefactureerde omzet / Nog te factureren omzet grootboekrekeningen under Instellingen → Financieel. Without them Exact refuses to process, the invoice stays a concept, and it never becomes an openstaande post, so Alpha treats a failed processing as a booking error rather than a success, and the invoice shows the Exact message.

Payment status comes back identically in both modes, but only for a processed invoice: a concept has no receivable to report against.

The connection is carried by a single-use Exact refresh token that expires after 30 days without use. The half-hourly sync keeps it alive automatically, but if the connection breaks (badge Opnieuw verbinden vereist) a user must reconnect via the same button. Nothing is lost by reconnecting; already-booked invoices are not booked again.

Day-to-day use

Once it is on, there is nothing to do per invoice:

  1. Create and send the invoice in Alpha as usual (or mark it as sent).
  2. Within seconds the invoice header shows the Exact state: booked, with the Exact entry number.
  3. The customer appears in Exact as a klantdossier if it did not exist yet.
  4. Your bookkeeper reconciles the bank payment against the openstaande post in Exact, as always.
  5. At the next sync (every 30 minutes) Alpha sees the invoice is fully paid, registers the payment and flips the invoice to PAID.

To find the booking back in Exact: Financieel → Overzichten → Boekingen, filter on the verkoopdagboek; the Alpha invoice number is in the Uw referentie (YourRef) column.

Manual actions

  • Nu synchroniseren: retries any sent invoices that failed to book and pulls the latest payment status immediately.
  • Book in Exact Online: on a sent invoice's menu, books that single invoice (useful for invoices sent before the integration was enabled, or after fixing a configuration error).
  • The invoice header shows the Exact state: booked (with entry number), payment status, or the sync error.

Troubleshooting

What you seeWhat it meansWhat to do
Badge Opnieuw verbinden vereistExact revoked or expired the connection (typically 30 days unused, or access withdrawn in Exact).Click Verbinden met Exact Online again and grant access. Configuration is kept.
An invoice shows a sync error about an unmapped VAT rateThe invoice uses a percentage that has no row in the btw-mapping.Add the missing rate under Btw-mapping, save, then Nu synchroniseren or book the invoice from its menu.
An invoice shows a booking error mentioning the dagboek or grootboekrekeningThe selected dagboek/omzetrekening is blocked or wrong for this administration.Correct it in the settings and rebook the invoice from its menu.
Invoice is booked but stays SENT in Alpha after paymentExact does not report it as fully paid yet: the receivable is still open, or the payment was matched to a different post.Check the openstaande post in Exact. A partial payment shows as partially paid in Alpha and does not close the invoice.
Older invoices are not in ExactOnly invoices sent after connecting are booked automatically.Book them one at a time via Book in Exact Online on the invoice menu.
Every action fails for one userThat user's role lacks MANAGE_INTEGRATIONS.Grant the permission in Settings → Roles.
Warning Niet alle Exact-gegevens konden worden opgehaald, and a dropdown stays emptyExact refused to hand over that list. The warning names which side is blocking it.See When Exact refuses a list below.

When Exact refuses a list

Right after connecting, the settings screen loads the administrations, dagboeken, grootboekrekeningen and btw-codes from Exact. Exact can refuse any of these with a 403, and it does so for two different reasons that need different people to fix:

  • The Alpha app lacks the scope. Exact answers with "Application Scope Violated" and names the scope. Only ASRR can fix this, by requesting the scope for the Alpha app in the Exact App Center. A granted scope only takes effect after the customer reconnects, because existing tokens still carry the old grant.
  • The connected Exact account lacks the rights. Exact answers with a bare "Forbidden". The administration's own Exact administrator grants the missing rights, or you reconnect from an Exact account that already has them.

The koppeling stays connected either way, and the lists that did load still work. But without a verkoopdagboek and an omzetrekening the configuration cannot be saved, so no invoices are booked; the integration card keeps showing Vraagt aandacht until both are set.

Limits and behaviour

  • Exact rate-limits API usage per administration (60 calls/minute, 5,000/day); the sync is batched to stay well within this.
  • Invoices are booked exactly once: a successfully booked invoice is never re-sent, and edits made in Alpha afterwards are not synced to Exact. As an extra guard, a booking whose registration in Alpha failed is adopted on retry (matched by invoice number in YourRef) instead of booked twice.
  • No historical backfill: only invoices sent after the connection was established are booked automatically. Older invoices can be booked one by one via the invoice menu.
  • One administration per tenant: all invoices book into the same divisie, dagboek and omzetrekening. Vestigingen (subsidiaries) are not split across administrations, dagboeken or cost centers; the only per-record split available is Kostenplaats per klant.
  • Credit notes and AP (purchase) invoices are not part of this integration yet.
  • Alpha never changes an invoice in Exact after booking, and never deletes anything in Exact.

On this page