# Twinfield — Accounting API: overview

> Canonical URL: https://developers.apideck.com/apis/accounting/twinfield/overview

Twinfield (Wolters Kluwer) cloud accounting platform.
- Status: beta
- Authentication: oauth2

- **account type required:** A Twinfield administration (office); registering the OAuth client ID needs a free Wolters Kluwer Account.
- **apideck credentials available:** true
- **apideck credentials note:** For development and testing; production connections run on your own certified Twinfield client ID.
- **authentication note:** Authorization Code flow (OpenID Connect). Each organisation has its own API host, which is resolved before any call can be made.
- **beta:** true
- **consumer access level:** Consumer authorizes through OAuth and supplies their Twinfield office code, since Twinfield identifies administrations by code rather than by id.
- **costs:** The API certification carries a monthly subscription fee; Wolters Kluwer publishes no figure, so confirm it with their partner team when you apply.
- **difficulty:** involved
- **difficulty reason:** Paid Certified Partner certification with a consultant-reviewed technical audit
- **environment notes:**   - **description:** Twinfield itself has no sandbox/production selector — one OAuth client ID and one set of credentials serve both testing and live use. The only change at go-live is on the Apideck side: swap Apideck's own credentials (uncertified, development and testing only) for your certified client ID. Testing always targets a real Twinfield administration rather than an isolated mock, so writes post real transactions.
  - **environment:** Single environment
- **external guides:**   - **source:** Twinfield
  - **title:** OpenID Connect authentication
  - **url:** https://developers.twinfield.com/documentation/api/authentication/openid-connect-auth
  - **source:** Twinfield
  - **title:** Fair use policy (rate limits and message limits)
  - **url:** https://developers.twinfield.com/documentation/getting-started/fair-use-policy
  - **source:** Wolters Kluwer
  - **title:** What the certification process covers
  - **url:** https://wktaaeu.my.site.com/nlcommunity/articles/en_US/Knowledge/Wat-komt-er-aan-bod-tijdens-de-certificering
- **important to know:** Invoices, bills, journal entries, payments and bill payments can all be listed and read by id — the invoices list only returns unpaid sales invoices. Bills and journal entries can also be created; invoices, payments and bill payments are currently read-only for creation.
A refresh token is invalidated the moment the connecting Twinfield user is deleted, disabled, locked or lets their password expire — or the organisation is deactivated. There is no warning: the first sign is an invalid_grant error, so plan a reconnect path.
Certification is an ongoing commitment rather than a launch milestone: Wolters Kluwer deactivates an uncertified integration two weeks after notice, and re-audits certified ones every two years.
- **partnership note:** Paid Certified Partner certification gates production; until it is granted, a client ID runs at 5% of the normal rate limits.
- **partnership portal name:** Wolters Kluwer Twinfield Certified Partner programme
- **partnership required:** true
- **partnership url:** https://www.wolterskluwer.com/nl-nl/solutions/twinfield-accounting/functies/koppelingen/partner-worden
- **rate limits:** Credit-based — 1,000 credits/minute per client ID, IP and organisation (500 per pair); reads cost 1 credit, writes 3; 20 concurrent requests.
- **responsibility matrix:**   - **area:** Create Wolters Kluwer Account
  - **customer:** ✓
  - **apideck:** Docs provided
  - **area:** Complete Twinfield API Certification
  - **customer:** ✓
  - **apideck:** Docs provided
  - **area:** Register & Configure OAuth Client
  - **customer:** ✓
  - **area:** Add Credentials to Apideck
  - **customer:** ✓
  - **apideck:** Handles OAuth flow
  - **area:** Authorize Connection (OAuth)
  - **consumer:** ✓
  - **area:** Supply Office Code & Control Accounts
  - **consumer:** ✓
  - **customer:** ✓ (if known upfront)
  - **apideck:** Maintains connector
  - **area:** Build via Unified API
  - **customer:** ✓
  - **apideck:** ✓ Automatic
  - **area:** Token Refresh
  - **apideck:** Logs & alerts
  - **area:** Monitor Connections
  - **consumer:** ✓ Can revoke anytime
  - **customer:** ✓ Via dashboard
- **sandbox available:** false
- **sandbox note:** A test administration is provisioned with the certification subscription; there is no self-serve sandbox.
- **supported resource categories:**   - **name:** Core Financial
  - **resources:** company-info
ledger-accounts
journal-entries
tax-rates
  - **name:** Accounts Receivable
  - **resources:** customers
invoices
payments
  - **name:** Accounts Payable
  - **resources:** suppliers
bills
bill-payments
expenses
  - **name:** Banking
  - **resources:** bank-accounts
bank-feed-statements
payment-methods
  - **name:** Organizational
  - **resources:** companies
subsidiaries
projects
tracking-categories
- **webhooks:** Virtual webhooks — created and updated events across 11 resources, including customers, suppliers, bills, payments, invoices and ledger accounts.

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **custom field support:** true
- **downstream id:** offices
- **downstream name:** Offices
- **id:** company-info
- **name:** Company Info
- **status:** live
- **custom field support:** true
- **downstream id:** dimensions
- **downstream name:** Dimensions
- **id:** ledger-accounts
- **name:** Ledger Accounts
- **status:** live
- **custom field support:** true
- **downstream id:** dimensions-deb
- **downstream name:** Dimensions Deb
- **id:** customers
- **name:** Customers
- **status:** live
- **custom field support:** true
- **downstream id:** dimensions-crd
- **downstream name:** Dimensions Crd
- **id:** suppliers
- **name:** Suppliers
- **status:** live
- **custom field support:** true
- **downstream id:** transactions-journal
- **downstream name:** Transactions Journal
- **id:** journal-entries
- **name:** Journal Entries
- **status:** live
- **custom field support:** true
- **downstream id:** sales-invoices
- **downstream name:** Sales Invoices
- **id:** invoices
- **name:** Invoices
- **status:** live
- **custom field support:** true
- **downstream id:** transactions-purchase
- **downstream name:** Transactions Purchase
- **id:** bills
- **name:** Bills
- **status:** live
- **custom field support:** true
- **downstream id:** dimensions-kpl
- **downstream name:** Dimensions Kpl
- **id:** tracking-categories
- **name:** Tracking Categories
- **status:** live
- **custom field support:** true
- **downstream id:** vat-codes
- **downstream name:** Vat Codes
- **id:** tax-rates
- **name:** Tax Rates
- **status:** live
- **custom field support:** true
- **downstream id:** bank-books
- **downstream name:** Bank Books
- **id:** bank-accounts
- **name:** Bank Accounts
- **status:** beta
- **custom field support:** true
- **downstream id:** bank-transactions
- **downstream name:** Bank Transactions
- **id:** payments
- **name:** Payments
- **status:** live
- **custom field support:** true
- **downstream id:** payments-supplier
- **downstream name:** Payments Supplier
- **id:** bill-payments
- **name:** Bill Payments
- **status:** live
- **custom field support:** true
- **downstream id:** dimensions-prj
- **downstream name:** Dimensions Prj
- **id:** projects
- **name:** Projects
- **status:** beta
- **custom field support:** true
- **downstream id:** companies-list
- **downstream name:** Companies List
- **id:** companies
- **name:** Companies
- **status:** beta
- **custom field support:** false
- **downstream id:** subsidiaries-list
- **downstream name:** Subsidiaries List
- **id:** subsidiaries
- **name:** Subsidiaries
- **status:** live
- **custom field support:** true
- **downstream id:** bank-feed-statements
- **downstream name:** Bank Feed Statements
- **id:** bank-feed-statements
- **name:** Bank Feed Statements
- **status:** beta
- **custom field support:** true
- **downstream id:** expenses
- **downstream name:** Expenses
- **id:** expenses
- **name:** Expenses
- **status:** live
- **custom field support:** false
- **downstream id:** payment-methods
- **downstream name:** Payment Methods
- **id:** payment-methods
- **name:** Payment Methods
- **status:** beta
- **custom field support:** false
- **downstream id:** transactions-general-ledger
- **downstream name:** Transactions General Ledger
- **id:** general-ledger-transactions
- **name:** General Ledger Transactions
- **status:** beta
- **custom field support:** false
- **downstream id:** journals
- **downstream name:** Journals
- **id:** journals
- **name:** Journals
- **status:** beta
- **custom field support:** false
- **downstream id:** fiscal-periods
- **downstream name:** Fiscal Periods
- **id:** fiscal-periods
- **name:** Fiscal Periods
- **status:** beta
- **custom field support:** false
- **downstream id:** trial-balance
- **downstream name:** Trial Balance
- **id:** trial-balance
- **name:** Trial Balance
- **status:** beta

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
