Bank connection and bank claims — IOBS
Exigo IOBS connects Odoo to your Icelandic bank. It fetches bank transactions into bank statements in Odoo and turns customer invoices into bank claims, which then appear in the payer's online bank.
When a claim is paid, Odoo fetches the payment, books it with the fees on their own accounts and reconciles it against the invoice. Odoo does not connect to the bank directly but through Exigo's bank service.
Before you start
IOBS has two parts: bank statements and claims. You can use either part or both. The add-on builds on Invoicing or Accounting in Odoo.
From the bank
The following must be in place at the bank:
- The company has an online-banking user with B2B (web service) access enabled.
- The bank links that user to Exigo's certificate, once per company. If an accounting firm keeps the books, the firm's user is linked instead.
- The user is open (active) at the bank.
- You have the user's username and password to hand, because they are entered in Odoo.
- You know the numbers of the bank accounts to connect.
Tip
You do not need to ask the bank for the certificate link. Exigo sends that request; see Online-banking user at the bank below.
For claims: the claim contract
To send claims, the company needs a claim (collection) contract with the bank. Exigo needs the following details from it:
- Identifier: up to 3 characters.
- Claim account: the account claim payments are paid into, in the format NNNN-NN-NNNNNN.
- Bank key number: up to 4 characters. It is the first part of every claim's key at the bank.
- General ledger: 66 by default.
- Fees: the notification and payment fee, the first and second default (late) charge, and the number of days from the due date to each default charge.
- The last claim number the company has already used at the bank, so that claim numbers from Odoo continue above it.
- Accounts for each fee line of claim payments.
Who does what
| Task | Who does it |
|---|---|
| Allow your Odoo server at Exigo's bank service and set up the connection | Exigo |
| Enable B2B access for the online-banking user | You, with the bank |
| Ask the bank to link the user to Exigo's certificate | Exigo; a contact at your company confirms if the bank asks |
| Enter the bank login in Odoo | You, or Exigo if you ask |
| Set up the claim account and claim settings from the claim contract | Exigo, with details from you |
| Choose each customer's claim process | You |
| Give users access to claims | You |
Setup
The steps are listed in the order they are done.
Connection to Exigo's bank service
Exigo does this step. Exigo allows your Odoo server at Exigo's bank service and sets up the connection in , in the Online Banking Setup block. You do not need to do anything here.
Online-banking user at the bank
You and Exigo do this step together:
- You ask the bank to enable B2B access for the company's online-banking user.
- You send Exigo the online-banking user's username and the name of a contact at the company.
- Exigo sends the bank a request to link the user to Exigo's certificate, with the contact in copy.
- If the bank asks the contact to confirm the request, the contact replies to the bank.
Bank login in Odoo
You do this step, or Exigo if you ask. Only users with Settings administrator rights see the fields.
- Go to and open your bank.
- In the Bank Credentials group, fill in IOBS Username and IOBS Password.
[Screenshot: a bank with the Bank Credentials group, password hidden]
Important
The login is stored on the bank, not on the company. The same username and password therefore apply to every company in the database that uses this bank.
Connecting the bank journal
Do this for each bank journal that should receive transactions from the bank:
- Go to and open the bank journal.
- Open the Journal Entries tab.
- Select the bank account to fetch transactions for in Bank Account Number.
- Select Exigo Bank Services in Bank Feeds.
- Select Automatic in IOBS Bank Statement Feed Mode. Transactions are then fetched every hour.
[Screenshot: the Journal Entries tab of a bank journal with Exigo Bank Services and Automatic selected]
Important
The default is Manual. The hourly job skips journals on Manual, so they only receive transactions when these are fetched by hand.
Note
Only one journal per bank account may use Exigo Bank Services. If there are more, the fetch stops with the error “There are more than one journal using account …”.
Testing the statement fetch
- On the Accounting dashboard, click Get bank statements (IOBS) on the bank journal's card.
- The Get bank statements window opens. Check Bank Account, From and To.
- Click the Get statement button.
From defaults to the date of the newest statement line already in the journal. If the journal is empty it goes back 100 years, so choose the date the fetch should start from.
When there is nothing new to fetch, “No new transactions found” is shown.
Claim settings
Exigo does this step, with the details from your claim contract. The settings are in , in the Online Banking Setup block, and need Settings administrator rights.
The claim account is marked on the company's own bank account: Use for claiming is ticked and Identification Code is filled in under Account Claims. Each company has one claim account, and the company itself is its holder.
| Setting | What it does |
|---|---|
| Default claim payment bank account journal | The journal claim payments are booked into. It must be filled in. |
| Bank key number | The number from the claim contract that is the first part of every claim's key at the bank. It is not the bank number of a bank account. |
| Claim Sequence | The company's claim-number series. Exigo sets it to start above the last claim number the company has used at the bank. |
| Cancel claim after … Month(s) | A claim's cancellation date at the bank is the due date plus this number of months. 12 by default. |
| Number of days from due to final date | The final due date is the due date plus these days. With no value, the final due date is the same as the due date. |
| General ledger. | The general ledger from the claim contract. 66 by default. |
| First default amount and Days until first default (max 98) | The first default charge and how many days after the due date it is added. |
| Second default amount and Days until second default (max 98) | The second default charge and how many days after the due date it is added. |
| Notification and payment fee | The fee added to the claim. The same fee applies to printed and paperless claims. |
| Penalty fee base | The default-interest rule: Claim amount only or Include default charge. With nothing selected, no default interest is charged. |
Important
Both default amounts and both day counts must be above zero, otherwise the claim is not sent. The default amounts are zero until they are set.
The Payment fees / Chart of accounts block holds an account for each part of a payment. Each claim payment is booked as one journal entry with these lines. The default account is set if it exists in your chart of accounts.
| Line | Default account |
|---|---|
| Payment fee | 1500 |
| Default Fee | 1500 |
| Other payment fees | 1500 |
| Other Default Costs | 1500 |
| Interest paid by payer | 6110 |
| Tax withheld by bank | 7658 |
| Amount debited to claimants bank account | 7802 |
[Screenshot: Online Bank Configuration with the Default Fee and Payment fees / Chart of accounts blocks]
Note
Each claim keeps a copy of the settings from when it was created: claim account, identifier, bank key number, general ledger, fees and default charges with their days, and the due, final due and cancellation dates. Changing the settings therefore does not change claims that already exist. The bank login, the kennitala numbers and the default-interest rule, however, are read every time a claim is sent, queried or cancelled.
Claim process per customer
You do this step. Set for each customer whether and how they receive claims:
- Go to and open the customer (the company contact).
- Open the Accounting tab.
- In the Claims group, choose the Claim process: One invoice per claim or Many invoices per claim.
- If the customer should never receive a claim, tick Decline claims. Claim process is then hidden.
A new contact gets the company's default claim process when it is created. That is One invoice per claim unless Exigo has changed it.
The customer's kennitala must be entered on their company contact before their invoices can get a claim.
User access
An administrator at your company gives users access:
- The menu needs the Invoicing access right or higher in Accounting.
- Query Claim Payments and Create claims from period are visible only to users with Show Full Accounting Features.
Daily use
The Claims menu
Everything to do with claims is under :
| Menu entry | What it does |
|---|---|
| Claimable Invoices | Shows invoices that can get a claim now. |
| List Claims | Shows all claims. The list opens with the Active claims filter, which shows claims in the states Sent, Pending and Paid. |
| Claims with errors | Shows claims in an error state. |
| Send Claim(s) | Checks your companies' claims in the states Pending and Send error at the bank, sends those that are Pending right away, and then lists them. |
| Query Claim Payments | Fetches claim payments for a chosen period right away. |
| Create claims from period | Creates claims in bulk for customers on Many invoices per claim. |
Note
If the Accounting app (Enterprise) is not installed, the menu is under Invoicing instead of Accounting.
Which invoices can get a claim
An invoice can get a claim when:
- it is a customer invoice, not a credit note, and has not been cancelled;
- its currency is ISK;
- it has an open amount and is not paid or partially paid;
- it has no live claim, that is, no claim that has not been cancelled;
- the customer's kennitala is entered on their company contact;
- Decline claims is not ticked on the customer;
- it has a due date.
Drafts can also get a claim. They are then posted at the moment the claim is created.
One claim per invoice
For customers on One invoice per claim, you create the claim on the invoice itself:
- On a draft: click Confirm Invoice to create and send Claim(s). The invoice is posted and the claim is created.
- On a posted invoice: click Create and send Claim(s).
The buttons are shown only when the invoice can get a claim and the customer is on One invoice per claim.
The claim number comes from the company's claim-number series. The claim's reference is the digits of the invoice number, and the amount is the invoice's open amount.
One claim for several invoices
For customers on Many invoices per claim, you use Create claims from period:
- Go to .
- Choose From and To. Invoices are selected by invoice date, and the default is the last calendar month.
- To put all of each customer's invoices in one claim, tick Set Claim(s) Due Date and choose the Claim(s) Due Date. The due date may not be in the past.
- Click Create claims.
Claims are created for the company's invoices in the period that can get a claim, for customers on Many invoices per claim. One claim is created per customer and per due date, so invoices with different due dates each get their own claim unless you set a claim due date. Invoices to child contacts go into the parent company's claim.
Warning
Draft invoices in the period are posted when the claims are created.
[Screenshot: the Create claims from period window with Set Claim(s) Due Date ticked]
Sending claims
A claim is not sent at the moment it is created. The button on the invoice sets the claim to Pending. The daily job Send pending bank claims sends it, or you send it right away with .
Before a claim is sent, Odoo checks whether the bank already holds a claim with the same claim number. If it does, the claim gets the state Existing claim.
Claim states
| State | Meaning |
|---|---|
| Draft | The claim is a draft and has not been sent. |
| Pending | The claim is waiting to be sent. |
| Sent | The bank holds the claim and it is unpaid. |
| Paid | The bank has recorded the claim as paid. |
| Invalid | The bank records the claim as invalid. It is shown in red in the list. |
| Claim error | An error occurred when the claim was checked or queried at the bank. |
| Query payment error | An error occurred when the claim's payment was queried. |
| Send error | Sending failed. The claim is not sent again automatically. |
| Existing claim | The bank already holds a claim with the same claim number. |
| Uncancelled claim | The bank refused to cancel the claim. |
| Canceled | The claim has been cancelled. |
The claim form
When you open a claim you see the claim form, Bank Claim. It has two buttons:
- Cancel cancels the claim after you confirm. The button is shown in the states Draft, Pending, Sent, Uncancelled claim and Send error.
- Query claim fetches the claim's state and amounts from the bank. The button is hidden on a claim in the state Existing claim.
The Invoices tab shows the invoices in the claim, and the Claim details tab shows the amounts and fees as the bank last reported them.
A claim in the state Draft, Pending or Send error is cancelled in Odoo only. Other claims are cancelled at the bank. If the bank refuses the cancellation, the claim gets the state Uncancelled claim.
To query several claims at once, select them in the claim list and use Query Claim(s) in the list's actions menu.
[Screenshot: a claim form with the Cancel and Query claim buttons]
Claim payments
The daily job Query bank claim payments fetches claim payments. To fetch them right away:
- Go to .
- Choose Transaction date from and Transaction date to.
- Click Query payments.
Each payment is matched to a claim in Odoo by claim number. Odoo then marks the claim Paid, books a journal entry in the claim-payment journal with one line per part of the payment, and reconciles it against the claim's invoices.
Important
Payments on claims that do not exist in Odoo, for example claims created directly in the online bank, are ignored. Create, change and cancel claims in Odoo, not in the online bank.
Bank statements and claims
When a bank statement is fetched, a statement line is linked to a claim if the line's bill number is the claim number and the payer's kennitala is the customer's kennitala.
If the claim payment has already been fetched with the same amount, the line is tied to the payment's journal entry. Otherwise the line's entry waits unposted until the payment arrives.
Other lines get a customer when exactly one company contact has the payer's kennitala.
In Odoo Enterprise, bank reconciliation opens with the Hide Claim-Matched filter on. The other filter is Show Claim-Matched only. Claim-linked lines are tied to the claim payment: they cannot be reconciled by hand, and the automatic reconciliation skips them.
Invoices with a live claim
- A payment cannot be registered on an invoice with a live claim. Cancel the claim first, register the payment, and then create a new claim for the remainder.
- An invoice cannot become fully paid while it has a claim that is neither Paid nor Canceled.
- When you create a credit note for the invoice, Odoo first asks: “This will cancel any active unpaid claim associated with selected invoice(s), do you agreed?” Every live claim on the invoice is then cancelled, at the bank where needed.
Warning
If the invoice is in a combined claim, the credit note cancels the whole claim, including for the other invoices in it.
Scheduled jobs
Four jobs handle the communication with the bank for every company in the database. Each database has its own run times. Contact Exigo if you want to change them.
| Job | How often | What it does | When it fails |
|---|---|---|---|
| Send pending bank claims | Once a day | Checks each claim in the state Pending or Send error at the bank and sends those still Pending. | The claim gets the state Send error, Existing claim or Claim error and appears under Claims with errors. A claim in the state Send error is not sent again. |
| Query sent bank claims | Once a day | Updates the state and amounts of claims in the state Sent or Claim error. | The claim gets the state Claim error. |
| Query bank claim payments | Once a day | Fetches claim payments, books them, marks the claims Paid and reconciles the invoices. | Nothing is shown on screen. The claim and the invoice stay unpaid. |
| IOBS Bank Statement API | Every hour | Fetches transactions for every journal on Exigo Bank Services that is not on Manual, from the date of the newest line to today. | Nothing is shown on screen and no new bank statement comes in. |
The same work can be done by hand:
- sends pending claims.
- Query claim on the claim form, or Query Claim(s) in the claim list, updates claims.
- fetches claim payments.
- Get bank statements (IOBS) on the Accounting dashboard fetches bank transactions.
When something goes wrong
Start with whenever something is wrong with claims.
Important
Only an administrator can see the reason for an error on a claim. If you cannot see it, send Exigo the claim number.
A new bank connection does not work
After setup, no bank statements arrive and no claims go through. Check:
- Has the bank linked the online-banking user to Exigo's certificate? This is the most common cause.
- Is the user's B2B access enabled? A password that is not accepted can mean that B2B access is not enabled.
- Is the user open at the bank?
- Has the password been entered in Odoo? See Bank login in Odoo above.
Contact the bank about B2B access, and Exigo about the certificate link.
Contact Exigo if the fetch shows “Error 504: Gateway Timeout. Unable to connect to server. Check whitelisting”. That error means your Odoo server has not been allowed at Exigo's bank service. Also contact Exigo to test the fetch when setup is finished.
The button to create a claim is missing on an invoice
The invoice shows neither Create and send Claim(s) nor Confirm Invoice to create and send Claim(s). Check:
- Is the customer on Many invoices per claim? Then the invoice has no buttons. Use Create claims from period.
- Is Decline claims ticked on the customer?
- Is a kennitala entered on the customer's company contact?
- Is the invoice in ISK, not paid or partially paid, and without a live claim?
- Is it a credit note? Credit notes do not get claims.
If Odoo says “The invoice must have a due date”, the invoice needs a due date before the claim is created.
A claim is not sent or ends in an error state
The claim is red in the list (Send error, Claim error, Existing claim or Invalid), stays in the state Pending, or does not appear in the payer's online bank. Act on the state:
- Pending: the claim is waiting for the daily job. Send it right away with .
- Claim error: open the claim and click Query claim.
- Existing claim: the bank already holds a claim with this claim number. This happens, for example, when the company's claim-number series is lower than the last claim number at the bank. Contact Exigo.
A claim in the state Send error is not sent again automatically. The state does not mean the bank lacks the claim, because the claim can have been created at the bank even though the answer never arrived. Proceed like this:
- Open the claim and click Query claim.
- If the claim turns Sent, the bank holds it. Leave it alone.
- If it stays Send error, cancel it with Cancel, which then happens in Odoo only, and create a new claim from the invoice. You can also contact Exigo. The new claim gets a new claim number.
Warning
If you cancel a claim the bank already holds and then create it again, the payer can receive two claims for the same invoice.
Other causes:
- The first or second default amount, or the number of days to it, is zero. The claim is then not sent and Odoo shows the error “Parameter "First default amount": value "0.0" is not greater than 0.”
- The bank login is wrong. See The bank connection stops working below.
- The bank refuses the claim because of its own rules or changes on its side.
Contact Exigo about the state Existing claim, about errors that keep coming back, and when the default amounts or the claim-number series need changing. Ordinary users cannot change those settings.
A claim is paid but the invoice is still unpaid
The payer has paid the claim in the online bank, but the invoice is open in Odoo or there is no payment entry. Common causes:
- Timing. Claim payments are fetched once a day, and the bank sometimes reports them late, for example not until the next morning.
- Default claim payment bank account journal is wrong or not filled in.
- The claim was changed or cancelled in the online bank rather than in Odoo.
- A wrong account is set on a fee line in Payment fees / Chart of accounts.
- The customer exists twice, or two contacts share the same kennitala. The payment then lands on the wrong contact, or the bank transaction gets no customer.
- The claim was created outside Odoo or deleted in Odoo. Payments on such claims are ignored.
- The claim went to a collection agency.
What you can do:
- Wait one day.
- Fetch the payments by hand with for the payment dates. This needs Show Full Accounting Features.
- Ask an administrator to check Default claim payment bank account journal.
- Merge duplicate contacts.
Contact Exigo if the payment has not come through after the next day's run, or if the claim went to a collection agency.
The bank connection stops working
Claims end in error states and no new bank statements arrive. Causes:
- The online-banking user's password was changed at the bank, and Odoo still has the old one.
- The banks renewed their certificates.
- A wrong password is entered in a database with several companies. One login applies per bank across the whole database.
- The bank changed its setup, and a newer version of the add-on is needed.
If the password was changed, update IOBS Password on the bank, as described in Bank login in Odoo. The new password takes effect at once, including for claims that already exist.
Then contact Exigo to confirm the connection and about claims that failed while the connection was down. Claims in the state Send error are not sent again automatically. Click Query claim on each of them before you cancel or recreate it, as described in A claim is not sent or ends in an error state.
Bank transactions do not come in automatically
New bank statements only come in when they are fetched by hand. Causes:
- The journal is on Manual. This is the default, and the hourly job skips such journals.
- A wrong account number is stored on the journal's bank account.
- More than one journal uses the same bank account with Exigo Bank Services.
What you can do:
- Ask an administrator to set IOBS Bank Statement Feed Mode to Automatic.
- Fetch the transactions right away with Get bank statements (IOBS) on the journal's card on the Accounting dashboard. The fetch starts at the date of the newest line already in the journal.
Contact Exigo if the fetch shows an error.
A customer gets more than one payment slip
A customer receives two or more claims where one was expected. Causes:
- Claims are grouped by customer and by due date. Invoices with different due dates, for example because of payment terms based on the end of the month plus a number of days, each get their own claim.
- Invoices to child contacts go into the parent company's claim.
Check Claim process on the customer. To put a month's invoices in one claim, use Create claims from period with Set Claim(s) Due Date.
A payment or credit note cannot be registered
Odoo stops a payment, write-off or credit note on an invoice with a claim and says “You cannot register a payment for a claimed invoice. Please cancel the claim first, register your payment again, and then recreate the claim for the residual amount.” or “Paid invoices can't be claimed”.
The reason is that an invoice with a live claim cannot be paid or settled in Odoo. What you can do:
- Cancel the claim first, then register the payment or write-off. Create a new claim for any remainder.
- If the claim was already cancelled in the online bank, click Query claim so that Odoo records it as Canceled.
- A credit note cancels the claim automatically, and the whole combined claim if the invoice is in one.
If Odoo says “These invoices are irreversible:”, the claim could not be cancelled. Contact Exigo.
Late fees or the claim amount are wrong
- A claim that is created again gets the invoice's original due date. If that date has passed, the bank charges late fees at once.
- The claim amount is the invoice's open amount at the moment the claim is created.
- A claim keeps the fees that applied when it was created. Changing the settings does not change older claims.
Contact Exigo about any difference in amounts.
The Claims menu, or part of it, is missing
The user lacks the Invoicing access right in Accounting, or Show Full Accounting Features for Query Claim Payments and Create claims from period. An administrator adds the access right on the user.
Odoo 17
Odoo 17 has the same menus, buttons and settings page as Odoo 19, with these differences:
- The Online Bank Configuration settings section shows in English in the Icelandic interface.
- The Claim Sequence field is not on the settings page.
- The fee settings, that is the default charges and days, the notification and payment fee, the general ledger and the claim-payment journal, apply to the whole database. In Odoo 19 they apply per company.
- One claim-number series is shared by all companies. In Odoo 19 each company has its own.
- The bank key number is read from the settings every time, so a correction also applies to claims that already exist. In Odoo 19 it is stored on each claim.
- In Odoo 17 Enterprise, claim-linked lines appear in bank reconciliation with a Has Claim badge and cannot be reconciled. The Hide Claim-Matched filter does not exist.
- When invoices are created automatically on delivery with Exigo's add-on, a claim is created and queued as soon as the invoice is posted, if the invoice can get a claim and the customer is on One invoice per claim. Invoices on excluded payment terms get no claim, and the immediate-payment term is excluded by default. Contact Exigo to change which terms are excluded. This automation is not in Odoo 19.
Some Icelandic labels differ in Odoo 17:
| English label | Odoo 17 | Odoo 19 |
|---|---|---|
| Claims with errors | Innheimtukröfur á villu | Innheimtukröfur með villum |
| Decline claims | Ekki útbúta innheimtukröfur | Ekki stofna innheimtukröfur |
| Bank Credentials | Notandiaupplýsingar netbanka (B2B) | Innskráningarupplýsingar banka (B2B) |
| Claim error | Villa v. kröfu | Villa í kröfu |