The Control API automatically retrieves and reconciles transactions from banks and ERP-systems. Most banks in the nordics and a large amount of ERP-integrations are supported.
The automatic reconciliations are done with a wide variety of customizable rules that cover most reconciliation use-cases. Transactions that are not reconciled can be manually reconciled in a user-friendly UI, or via the API.
The Control REST API is organized around setting up automatic synchronization and reconciliation of Bank- and ERP-transactions.
Our API uses resource-oriented endpoint paths, accepts Json-Encoded request bodies, returns Json-Encoded responses, and uses standard HTTP response codes and verbs.
An account represents either a bank or ERP account. Accounts are automatically synchronized from the Open Banking- and ERP Hub APIs when a reconcile agreement is created.
Retrieves a bank- or ERP account.
The optional sumBalanceDate parameter can be used to get the sum of all transactions in the account older than the date.
Returns an account response.
Bad request
Unauthorized
Not Found
Retrieves a list of bank- and ERP accounts that are in the same reconcile groups as the accountId.
Returns a list of accounts.
Bad request
Unauthorized
Not Found
Retrieves the balance of the bank- and ERP for the given date.
Returns a list of accounts.
Bad request
Unauthorized
Not Found
Retrieves a list of bank- and ERP accounts for the reconcileGroupId.
The optional sumBalanceDate parameter can be used to get the sum of all transactions in the accounts older than the date.
Returns a list of accounts.
Bad request
Unauthorized
Retrieves a list of bank- and ERP accounts for the companyId.
Returns a list of accounts.
Bad request
Unauthorized
This endpoint should only be used if the account synchronization from bank or ERP is not sufficient.
Created
Bad request
Unauthorized
Not Found
{- "accountNumber": "string",
- "description": "string",
- "accountType": "BankAccount",
- "currency": "string"
}
Retrieves a list approvals for the reconcileGroupId.
Returns a list of approvals.
Bad request
Unauthorized
Retrieves a list of approvals for user.
Returns a list of approvals.
Unauthorized
Deletes an approval, and reports for approval if deleteReport is true.
Accepted
Bad Request
Not Found
Creates an approval.
Created
Bad request
Unauthorized
{- "reconcileGroupId": "eb9397a6-1672-4c59-9568-be660d1aef38",
- "period": "string",
- "createReport": true,
- "skipClosePeriod": true
}
Search for customers and invoices in a client from a ERP-system
Returns a lookup result.
Bad request
Unauthorized
Not Found
Registers vouchers in the ERP-system.
Returns a list of status responses.
Bad request
Unauthorized
Not Found
{- "accountNumber": "string",
- "autoUpdate": true,
- "lines": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ledgerType": "Ledger",
- "ledger": "string",
- "referenceNumber": "string",
- "archiveReference": "string",
- "amount": 0,
- "description": "string",
- "bookingDate": "2019-08-24T14:15:22Z",
- "postPeriod": "string",
- "department": "string",
- "project": "string"
}
]
}
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
- "successful": true,
- "voucherNumber": "string",
- "errorMessage": "string"
}
]
Adds file attachments to a voucher in the ERP-system.
OK, or a list of status responses if any of the vocher registrations fail.
Bad request
Unauthorized
Not Found
Import transactions from files.
Supported formats include: camt.053
, camt.054
, pain.001
, pain.001
, csv
, crystal
, MT940
, AutoGiro
, BankGirot
, TBWK
, Telepay
, Teller
,
Gets the file import history for a company: a list of file import metadata.
Returns a list of file import metadata
Bad request
Unauthorized
Not Found
Parses a file to the Control API transaction format and persists the transactions.
If the preview is set to true
the file parse result will not be persisted.
Returns a file parse result
Bad request
Unauthorized
Not Found
Gets the file import metadata and imported transactions for a previous file import.
Returns a file import
Bad request
Unauthorized
Not Found
Reverts a file import: removes the imported transactions, and the file import history.
No Content
Bad request
Unauthorized
Not Found
Manage reconcile links and manually start reconcilliations. A reconcile link represents two collections of transactions that have matching sums.
Retrieves a reconcile link, with the ids of transactions in the link.
Returns an account response
Unauthorized
Creates a reconcile link.
A reconcile link is is two lists of transactions that have a matching sum.
Created
Bad request
Unauthorized
Not Found
{- "reconcileGroupId": "eb9397a6-1672-4c59-9568-be660d1aef38",
- "bankTransactionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "erpTransactionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}
Starts a reconciliation.
Accepted
Bad request
Unauthorized
{- "toDate": "2019-08-24T14:15:22Z",
- "reconcileGroupId": "eb9397a6-1672-4c59-9568-be660d1aef38",
- "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",
- "reconciliationType": "Bank"
}
Manage and create reconcile groups. A reconcile group represents a group of accounts that should be reconciled against each other.
Retrieves a reconcile group, and the ids of accounts in the group.
Returns a recocncile group response.
Bad request
Unauthorized
Not Found
Retrieves list of reconcile groups for a company.
A list of reconcile groups.
Bad request
Unauthorized
Not Found
Creates a reconcile group for the provider accounts.
Each account requires details about its reconciliation start state.
The request with reconcile group and account details.
Created
Bad request
Unauthorized
Not Found
{- "name": "string",
- "isCurrencyAccount": true,
- "startDate": "2019-08-24T14:15:22Z",
- "accounts": [
- {
- "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
- "startBalance": 0,
- "startBalanceDate": "2019-08-24T14:15:22Z",
- "startTransactions": [
- {
- "amount": 0,
- "voucherNumber": "string",
- "archiveReference": "string",
- "currency": "string",
- "description": "string",
- "bookingDate": "2019-08-24T14:15:22Z",
- "period": "string"
}
]
}
], - "reconciliationType": "Bank"
}
Retrieves list of reconcile groups for a company with additional details about the group.
A list of reconcile groups with additional details.
Bad request
Unauthorized
Not Found
Retrieves list of reconcile groups your token has access to, with additional details about the group.
A list of reconcile groups with additional details.
Bad request
Unauthorized
Not Found
Determines a period can be closed for a reconcile group.
true
if period can be closed
Bad Request
Unauthorized
Not Found
Gets a reconciliation report. Produces either a application/json
or application/pdf
response.
Example: for a PDF report you must specify Accept: application/pdf
in the request header.
Returns a reconciliation report data response or a PDF
file response
Unauthorized
Not Found
Not Acceptable
{- "reconciliationType": "Bank",
- "header": {
- "createdByUser": "string",
- "createdDate": "2019-08-24T14:15:22Z",
- "approvals": [
- {
- "approvedBy": "string",
- "approvedDate": "2019-08-24T14:15:22Z"
}
], - "period": "string"
}, - "accounts": [
- {
- "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
- "accountType": "BankAccount",
- "balanceDate": "2019-08-24T14:15:22Z",
- "balanceAmount": 0,
- "accountNumber": "string",
- "accountCurrency": "string",
- "accountStatementBalance": 0,
- "accountStatementBalanceDate": "2019-08-24T14:15:22Z",
- "difference": 0
}
], - "deposits": {
- "erp": {
- "sum": 0,
- "openPosts": [
- {
- "date": "2019-08-24T14:15:22Z",
- "accountType": "string",
- "archiveReference": "string",
- "voucherNumber": "string",
- "transactionInfo": "string",
- "amount": 0,
- "period": "string",
- "note": "string",
- "hasLinkInSubsequentPeriod": true,
- "subsequentPeriod": "string",
- "isStartTransaction": true
}
]
}, - "bank": {
- "sum": 0,
- "openPosts": [
- {
- "date": "2019-08-24T14:15:22Z",
- "accountType": "string",
- "archiveReference": "string",
- "voucherNumber": "string",
- "transactionInfo": "string",
- "amount": 0,
- "period": "string",
- "note": "string",
- "hasLinkInSubsequentPeriod": true,
- "subsequentPeriod": "string",
- "isStartTransaction": true
}
]
}
}, - "withdrawals": {
- "bank": {
- "sum": 0,
- "openPosts": [
- {
- "date": "2019-08-24T14:15:22Z",
- "accountType": "string",
- "archiveReference": "string",
- "voucherNumber": "string",
- "transactionInfo": "string",
- "amount": 0,
- "period": "string",
- "note": "string",
- "hasLinkInSubsequentPeriod": true,
- "subsequentPeriod": "string",
- "isStartTransaction": true
}
]
}, - "erp": {
- "sum": 0,
- "openPosts": [
- {
- "date": "2019-08-24T14:15:22Z",
- "accountType": "string",
- "archiveReference": "string",
- "voucherNumber": "string",
- "transactionInfo": "string",
- "amount": 0,
- "period": "string",
- "note": "string",
- "hasLinkInSubsequentPeriod": true,
- "subsequentPeriod": "string",
- "isStartTransaction": true
}
]
}
}, - "balance": {
- "correctedBookedBalance": 0,
- "difference": 0
}
}
Gets the thumbnail png image of a reconciliation report.
Returns a thumbnail image for the report
Bad Request
Unauthorized
Not Found
Retrieves list of reconcile reports for a company.
A list of reconcile reports
Bad request
Unauthorized
Not Found
Retrieves list of reconcile reports for a user.
A list of reconcile reports
Bad request
Unauthorized
Not Found
Creates a reconcile report for the reconcile group.
Created
Bad request
Unauthorized
Not Found
{- "name": "string",
- "reconcileGroupId": "eb9397a6-1672-4c59-9568-be660d1aef38",
- "fromDate": "2019-08-24T14:15:22Z",
- "toDate": "2019-08-24T14:15:22Z"
}
Retrieves list of reconcile reports for a reconcile group.
A list of reconcile reports
Bad request
Unauthorized
Not Found
Retrieves a list of reconcile rule configurations for a reconcile group.
Returns a list of rule configurations
Bad request
Unauthorized
Creates a reconcile rule for the reconcile group.
Created
Bad request
Unauthorized
Not Found
{- "id": "string",
- "ruleType": "string",
- "deleted": true,
- "config": { }
}
Partially updates the confiugration of multiple existing rules.
No Content
Bad request
Unauthorized
Not Found
[- {
- "id": "string",
- "ruleType": "string",
- "deleted": true,
- "config": { }
}
]
Retrieves the configuration for a reconciliation rule.
Returns a rule configuration
Bad request
Unauthorized
Not Found
Updates the confiugration of an existing rule.
No Content
Bad request
Unauthorized
Not Found
{- "id": "string",
- "ruleType": "string",
- "deleted": true,
- "config": { }
}
Resets all rule configurations for a reconcile group to the default configuration.
No Content
Bad request
Unauthorized
Not Found
Retrieves a list of open ERP transactions for a reconcile group. An open transaction is a transaction that is not reconciled.
Returns a list of ERP transactions
Bad request
Unauthorized
Retrieves a list of open Bank transactions for a reconcile group. An open transaction is a transaction that is not reconciled.
Returns a list of Bank transactions
Bad request
Unauthorized
Retrieves a list of reconciled ERP transactions for a reconcile group.
Returns a list of ERP transactions
Bad request
Unauthorized
Retrieves a list of reconciled Bank transactions for a reconcile group.
Returns a list of Bank transactions
Bad request
Unauthorized
Retrieves a transactions in a reconcile link.
A list of Bank transactions and a list of ERP transactions
Bad request
Unauthorized
Adds a note to a transaction.
Successful Response
Bad request
Unauthorized
{- "note": "string"
}
Adds open ERP transactions to an account.
A list of ERP transactions.
Successful Response
Bad request
Unauthorized
Not Found
[- {
- "externalId": "string",
- "amount": 0,
- "voucherNumber": "string",
- "name": "string",
- "description": "string",
- "note": "string",
- "bookingDate": "2019-08-24T14:15:22Z",
- "period": "string",
- "postingDate": "2019-08-24T14:15:22Z"
}
]
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
- "accountNumber": "string",
- "accountCurrency": "string",
- "amount": 0,
- "voucherNumber": "string",
- "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",
- "currency": "string",
- "description": "string",
- "note": "string",
- "name": "string",
- "reconcileLinkId": "37ceed23-9877-4a88-b4a7-a6df874df975",
- "chainLinkId": "2a60ea5b-7d7c-4012-a0f0-82c84fa1a6c7",
- "type": "Default",
- "bookingDate": "2019-08-24T14:15:22Z",
- "period": "string",
- "externalId": "string",
- "postingDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z"
}
]
Adds open Bank transactions to an account.
A list of Bank transactions.
Successful Response
Bad request
Unauthorized
Not Found
[- {
- "amount": 0,
- "archiveReference": "string",
- "name": "string",
- "description": "string",
- "note": "string",
- "bookingDate": "2019-08-24T14:15:22Z",
- "postingDate": "2019-08-24T14:15:22Z"
}
]
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
- "accountNumber": "string",
- "amount": 0,
- "archiveReference": "string",
- "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",
- "currency": "string",
- "accountCurrency": "string",
- "name": "string",
- "description": "string",
- "note": "string",
- "reconcileLinkId": "37ceed23-9877-4a88-b4a7-a6df874df975",
- "chainLinkId": "2a60ea5b-7d7c-4012-a0f0-82c84fa1a6c7",
- "type": "Default",
- "bookingDate": "2019-08-24T14:15:22Z",
- "postingDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z"
}
]
Retrieves a chain link: A collection of transactions bundled together.
Returns a chain link
Bad request
Unauthorized
Not Found
Creates a chain link by bundling together lists of transactions.
Created
Bad request
Unauthorized
Not Found
{- "bankTransactionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "erpTransactionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}