Skip to main content
Use the @bijection/connectors/exact-online entrypoint to declare Exact Online resources.

Availability

This page describes the pinned source package. Published availability is unestablished for this artifact. Source build and package availability.

Resources and modes

Declare a resource in application code, then bind deployment-specific settings and credentials. See typed resources, connections and source inspection.

Sales invoices

pull: Sync API rows by Timestamp and __next, keyed by invoice and line, no deletions, read-only

The following example matches configuration standard.

Configuration: standard

Case: exact-online/salesInvoices/pull/standard. Connection and resource configuration are declared by this exact case. Credential kind: exact-online. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: salesInvoices
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Configuration: regional

Case: exact-online/salesInvoices/pull/regional. Connection and resource configuration are declared by this exact case. Credential kind: exact-online. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: salesInvoices
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Accounts

pull: Sync API rows by Timestamp and __next, no deletions, read-only

The following example matches configuration standard.

Configuration: standard

Case: exact-online/accounts/pull/standard. Connection and resource configuration are declared by this exact case. Credential kind: exact-online. Keep credential material in the private credential inventory.
Native admission analysis is available for this exact declaration. Collection: accounts
Recorded checks Hosted qualification: unestablished for this catalog configuration. Installed connections report their own identity, authority and current status.

Provider guidance

Compiled declaration examples and configuration details are published in the connector reference. region picks the division’s country site (nl, be, de, uk, us, fr, es → https://start.exactonline.<tld>). Bind setup { division }, the administration’s number, and an exact-online credential (exactOnline.credential("EXACT")). Exact’s access tokens are understood to last ten minutes and its refresh tokens to rotate on every refresh (unverified here), so the credential custody must persist each new refresh token. Identity is the token’s UserID from GET /api/v1/current/Me; Me names the user’s current division, which need not be the bound one, so the first listing is what proves the binding reaches it.

What is read

Both collections read Exact’s Sync API with Accept: application/json:
  • salesInvoices: /api/v1/{division}/sync/SalesInvoice/SalesInvoices. Its rows carry invoice header fields beside a LineNumber, so a record is one sync row keyed by (InvoiceID, LineNumber) and every row is claimed. Published: number, date, OrderedBy, Currency, AmountFC, VATAmountFC, status and type codes, Modified. Whether a row’s AmountFC is the invoice’s or the line’s (and whether line 0 is a header row) is unverified; settle it with a capture before using the amounts. AmountDC is not read: the division’s currency is not on the row.
  • accounts: /api/v1/{division}/sync/CRM/Accounts, keyed by ID.
A pass sends $filter=Timestamp gt N, the only filter sync endpoints admit, starting from gt 1, and follows each page’s __next link: the host fetches it only under the connection’s origin, and the guest only on the same endpoint and division. A page without one finishes the pass, which carries the largest Timestamp read. Every 96th pass (fullEvery) starts again from gt 1, which also bounds what a rowversion committed out of order hides. Exact does not document the row order, and nothing depends on it. When Exact moves a division (DivisionMoveDate changes) its timestamps restart: reset the source’s carried position to walk again. Amounts are Edm.Double JSON numbers. Each is published as decimal text at two places only while exact (at most 15 significant digits) and refused otherwise; the provider’s own type is binary floating point. A three-decimal currency is refused. No record version is published. Timestamp is the row’s change token, but it is an Edm.Int64 and the host reads versions only from JSON text; OData v2 writes Int64 as text, and Exact’s actual spelling is unverified. Both spellings are read for the pass position; a number beyond 2^53 is refused.

Deletions

None are published. Exact states deletions only in /api/v1/{division}/sync/Deleted, one feed of every entity type (EntityType 2 accounts, 13 sales invoices, …) kept for two months, and every row of a response must be claimed by the collection reading it. Reading it needs either Exact to accept $filter=EntityType eq 13 and Timestamp gt N on that endpoint (undocumented), or an engine acquisition that routes one feed’s rows to several collections by type. Until then a record deleted in Exact stays published.

Limits, writes and webhooks

Sixty requests a minute per division are budgeted; the daily allowance per app agreement is not, and a 429 is retried as transient. Sync pages hold 1,000 rows and $select keeps them small, but a page over the host’s 512 KiB response bound is refused. Exact documents no idempotency key or precondition, so nothing is written. Its webhooks sign with a HashCode inside the JSON body, which no ingress scheme verifies, so none is admitted. Nothing here has run against Exact Online. Package fixtures establish declaration behavior only.

Provider references

Provider references and prerequisites are maintained in the connector guidance above. No separate provider-documentation review date is recorded.

Source and evidence

Canonical connector source, native analysis and check receipts. Connector artifact: 905888ea276a2a28e36981a79e8142b2547ea451c3e63162cb6915ad4a7d1305. The resource declaration examples above are compiled and compared with exact catalog declarations. Recorded checks apply only to their source, declaration and runtime identities. Configure a connection and inspect its status to establish deployment-specific readiness.