Skip to main content
iVentureTeam
GCC Compliance

Odoo Saudi Bank Integration: Statement Sync, Reconciliation, SADAD

Odoo Saudi bank integration explained: bank sync coverage, CAMT and Excel statement import, SAR auto-reconciliation, ISO 20022, WPS and SADAD in Odoo 19/20.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
November 5, 202614 min read2 views
Odoo Saudi Bank Integration: Statement Sync, Reconciliation, SADAD cover

Finance teams in Riyadh, Jeddah and Dammam ask the same question in every Odoo evaluation: will it talk to our bank? The honest answer is "partly out of the box, fully with setup", and that setup is where our Odoo integration services spend most of their KSA time.

It is for CFOs, finance managers and IT leads in Saudi Arabia running or evaluating Odoo 19 or Odoo 20. It covers the money side; e-invoicing is in our Odoo ZATCA Phase 2 guide.

What does Odoo Saudi bank integration actually cover?

Odoo Saudi bank integration: Six bank flows, what Odoo covers

Odoo Saudi bank integration means six separate flows, each with a different level of native support. Vendors sell them as one "bank link", which hides where the work sits.

FlowNative Odoo supportTypical KSA setup
Statement syncEnterprise bank synchronization via providersCheck bank coverage; keep file import as fallback
Statement importCAMT.053, CSV, XLSX, OFX, QIFMap the bank's Excel export once, reuse it
ReconciliationMatching rules plus reconciliation modelsModels for fees, mada deposits, SADAD settlements
Outgoing paymentsISO 20022 pain.001, batch payments, WPS reportConfirm the bank's accepted format first
Bill payment (SADAD)None built inBank channel step or custom integration
Bank APINone built in; external API on Custom planCustom connector to the bank's developer portal

Does Odoo bank synchronization work with Saudi banks?

Odoo bank synchronization can reach Saudi banks through Salt Edge, but Odoo publishes no country list, so you must find your bank in the live institution search before you rely on it. Treat coverage as unverified until you see it there.

Odoo's bank synchronization documentation lists over 26,000 institutions through Plaid, Yodlee, Ponto, Enable Banking, Basiq and Salt Edge, the only provider labeled worldwide. Odoo Enterprise is required.

Salt Edge announced its Saudi entry in November 2022, after SAMA published its Open Banking Framework on 2 November 2022. Known limits of the Odoo feed:

  • Check first: click "Search over 26,000 banks" in the Accounting dashboard. A Beta tag means no Odoo technical support for that bank.
  • Not real time: journals sync every twelve hours by default, some providers refresh once a day, and only posted transactions arrive.
  • History: some banks return only three months; older lines come from a file.
  • Extra security: banks that demand a code on each login sync only when someone refreshes manually.

One Odoo 18 user reported Salt Edge timing out on transaction retrieval after a successful bank login, with Odoo support as the only path offered. Plan month-end around the fallback below, not the feed.

How do you import Saudi bank statements into Odoo without a live feed?

Every Saudi corporate banking portal exports statements, and Odoo imports CAMT.053, CSV, XLSX, OFX and QIF files straight into the bank journal. For most KSA clients this import, not live sync, is what runs month-end.

Odoo's transactions documentation lists three ways to load a file: the journal's Import file menu, the Upload button, or drag and drop. CAMT.053 and OFX map automatically; CSV and XLSX need a one-time column mapping. Our sequence:

  1. Pick the richest export: CAMT.053 if the portal offers it, otherwise XLSX with date, description, reference, debit, credit and balance.
  2. Record the opening balance on the start date so ending balances match the bank's.
  3. Map, test, import. Keep the Arabic description column; it drives reconciliation models later.
  4. Group by statement in the Bank Matching view and attach the bank PDF.
  5. Run Find Duplicate Transactions after each import.
  6. Lock the period once the ending balance agrees.

Odoo 20 adds a Bank consistency rule: manual journal entries can no longer touch bank or cash accounts, so every bank balance comes from a bank transaction. Our Odoo 20 accounting release notes cover that change.

How does Odoo auto-reconciliation work for SAR transactions?

Odoo reconciles SAR bank transactions with default rules on amount, reference and partner, then applies reconciliation models you define for everything the rules cannot match. The models are where a Saudi setup earns its keep.

Odoo's reconciliation models documentation describes manual models, shown as buttons, and automated models that apply themselves when journal, partner, amount and label conditions match, including regex on the label. For KSA journals we usually build:

  • Bank fees: label contains the bank's Arabic or English fee wording, counterpart to bank charges with 15% VAT where charged.
  • mada and card settlements: label matches the acquirer reference; counterpart splits commission by percentage of the statement line.
  • SADAD settlements: label contains the biller reference, partner mapping to the customer, invoice match left to the standard rules.
  • SARIE receipts: regex on the customer's unified number or IBAN fragment for partner mapping.
  • Withholding tax: Saudi WHT at 5%, 15% or 20% is recorded on the vendor payment, so the bank debit is the net amount and the model must expect it.

Order matters: when a line matches several automated models, the first in the sequence wins, so narrow SADAD and acquirer models go above the broad fee model. Odoo 20 adds a "Run Auto Reconciliation" gear option and a summary report listing reconciled and unreconciled receipts and payments.

For the controls around this screen, see our guide on Odoo accounting for CFOs in the GCC, and our Odoo 20 accounting upgrade checklist if you are upgrading first.

Can Odoo generate SARIE or ISO 20022 payment files for Saudi banks?

Odoo generates ISO 20022 pain.001 credit transfer files in SAR from a batch payment, but whether your Saudi bank accepts that exact file is a question for the bank's corporate channel. Test with a one-riyal payment before the vendor run.

Odoo's SEPA and ISO 20022 documentation says the SEPA Credit Transfer / ISO 20022 module drives all ISO 20022 output and, unlike SEPA, supports any currency. Add it as an outgoing payment method on the bank journal, validate a batch payment, and the XML appears in the chatter.

  • Default is pain.001.001.09. Odoo warns that pain.001.001.03 is deprecated in November 2026, so set the journal's XML Format to the version your bank states.
  • No Saudi PAIN flavor. The Saudi fiscal localization covers chart of accounts, VAT, withholding tax and ZATCA; it ships no KSA bank payment format, so the generic output is what you test.
  • SARIE is the bank's rail. SAMA's SARIE instant system, launched in 2021, moves transfers of SAR 20,000 or less between local banks around the clock. Odoo never calls it; the bank executes your batch and the debit returns in the statement.

If the bank only accepts its own Excel upload, we add that export to the batch payment, which stays the record that reconciles.

How does Odoo handle WPS salary files in KSA?

Odoo's Saudi payroll localization generates a Saudi WPS payment report from the pay run, structured to MHRSD technical guidelines, once the establishment bank account carries its Bank SARIE Code. It is the one Saudi-specific payment file Odoo ships.

The Saudi Arabia payroll documentation requires a trusted bank account (IBAN) and a 10-digit Saudi National or Iqama ID on every employee. The company needs an Establishment Bank Account with Bank Establishment ID and Bank SARIE Code, plus the MoL Establishment ID.

The Payment Report button on a pay run, with Saudi WPS as export format, produces the file with payment date, WPS value date and an optional debit date. You upload it to the bank's business channel, which forwards it to Mudad.

Some banks now push the file to Mudad for you for a flat monthly fee; confirm fees and format acceptance with your bank.

For iqama, GOSI and Muqeem on the same payroll, read our Odoo Muqeem integration and KSA payroll guide.

Where does SADAD fit in an Odoo setup?

SADAD is SAMA's national bill presentment and payment system, and Odoo has no built-in SADAD module, so it enters Odoo as a statement line to reconcile or as a custom biller integration. Which you need depends on whether you pay bills or issue them.

Per SAMA, SADAD lets customers pay invoices, including government ones, through banking channels and gives billers settlement reports. Wikipedia's SADAD overview describes the daily cycle: billers upload bill summaries, banks debit customers, SADAD settles through SARIE at day end.

  • You pay SADAD bills (utilities, government fees, customs): register the vendor payment in Odoo, pay in the bank portal, and let a model match the debit by reference.
  • You are a SADAD biller: the daily settlement lands as one credit; a custom import creates one payment per bill from the SADAD report before matching.
  • You sell online in KSA: Apps Store searches for "odoo sadad" also surface Qatar's SADAD, a different system, so check the country before installing anything.

When do you need a custom Saudi bank API connector?

You need a custom bank API connector when the business needs intraday balances, same-day payment status or automated payment release, which neither file import nor the twelve-hour sync provides. Saudi banks now publish developer portals that make this practical.

Several Saudi banks run API marketplaces for business clients with account statement, single payment and open banking APIs behind a sandbox and legal onboarding. On 26 March 2026 SAMA also licensed two companies for open banking account information services, a second route to statement data.

Odoo's side is its external API, included in the Custom plan. Build on JSON-2, not XML-RPC, which is deprecated in Odoo 20 and scheduled for removal in Odoo 22; our Odoo JSON-2 API migration guide shows the pattern.

Two rules keep connectors safe: create bank statement lines, never manual entries on the bank account, and store the bank's transaction ID on each line so Find Duplicate Transactions works.

The same lines close the ZATCA loop: an invoice cleared through l10n_sa_edi, per the Saudi Arabia fiscal localization documentation, is marked paid when the SARIE or SADAD line matches it. Print the Odoo invoice number on the ZATCA invoice; the default rule uses it.

What does Odoo bank integration cost in Saudi Arabia?

Statement sync, file import, reconciliation models and ISO 20022 files are included in the Enterprise subscription, so the cost is setup effort plus the Custom plan if you need the API. Per-transaction fees are not part of Odoo's model.

OptionOdoo license neededSetup effort (illustrative)Running cost
Bank sync via providerStandard or Custom (Enterprise)Hours, if the bank is listedIncluded in subscription
Statement file importStandard or Custom1 to 2 days per bank formatStaff time per import
Reconciliation modelsStandard or Custom2 to 5 days for a KSA model setNone
ISO 20022 payment filesStandard or Custom2 to 4 days including bank testBank transfer fees only
WPS payment reportPayroll app on EnterprisePart of payroll setupBank WPS fee, if charged
SADAD or bank API connectorCustom plan (external API)3 to 8 weeksHosting and support

The effort figures are illustrative, not quotes. Odoo's US list price is US$31.10 per user a month for Standard and US$61.00 for Custom, billed yearly. Our published Odoo implementation cost ranges start at US$3k to US$9k for small scopes.

Saudi bank-connector bundles we have seen advertised run roughly SAR 9,500 to SAR 33,500 a year plus per-operation fees. Pay that when you need real-time data, not to replace an import Odoo already does. For a quick number on your scope, run the Odoo project estimate tool.

Which Saudi industries gain most from Odoo bank reconciliation?

Businesses with many small receipts, acquirer settlements or government payments gain most, because those are the lines a person reconciles slowest. The table shows where the payback lands in KSA.

IndustryPain or cost driverOdoo approachHow iVentureTeam helps
Retail and F&BDaily mada and card settlements net of commissionModels split gross, commission and VAT per acquirerBuild acquirer models, link POS sessions
Trading and distributionHundreds of SARIE receipts with partial referencesRegex partner mapping, invoice matchingTune rules on three months of real statements
ContractingRetention, advances and WHT on paymentsPayment-level WHT, batch pain.001 for vendorsDesign payment flows, test files with the bank
Utilities and billersDaily SADAD settlement in one lineCustom settlement import, model per biller codeBuild the SADAD report connector
Services and staffingMonthly WPS runs across several banksWPS report per establishment bank accountConfigure payroll, verify Mudad acceptance
Groups and holdingsMany entities, banks and intercompany transfersInternal transfer models, consolidated summary reportMulti-company journal design

Manufacturers have their own cash cycle; see manufacturing ERP in Saudi Arabia and Egypt.

How iVentureTeam helps with Odoo Saudi bank integration

Pricing a bank link? Estimate the Odoo work

iVentureTeam sets up the statement feed, writes the reconciliation models, tests payment files with your bank and builds the custom bank or SADAD connector when a file is not enough. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.

  • Bank coverage check: we confirm whether your bank is in Odoo's list and set up the fallback import on day one.
  • KSA reconciliation model set: fees, mada settlements, SADAD, SARIE receipts and transfers, tuned on your real statements.
  • Payment file testing: ISO 20022 pain.001 and WPS output validated with your bank before the first live run.
  • Custom connectors: bank API, SADAD biller or aggregator integrations built on JSON-2 through our Odoo integration services.
  • Month-end support: our Odoo ERP support team handles sync errors, duplicates and model changes when banks alter statement wording.

Odoo payment integration case study: five gateways reconciled in Odoo

When a payment source has no native Odoo connector, the right fix is a module on Odoo's standard framework so payments post to the right invoice automatically. That principle, proven on card gateways, is the one we apply to Saudi bank files.

eCommerce merchants on Odoo 12, 13 and 14 held contracts with CardConnect, BlueSnap, SecurionPay, Cielo and Paymee, none supported by Odoo. Manual workarounds broke order status flow and left payments unreconciled.

iVentureTeam built one connector per gateway on Odoo's payment acquirer framework. Transaction references land on the order automatically and payment confirmations drive order confirmation, so accounting follows without manual matching.

Five gateways went live in 8 weeks, with order-to-cash in one system and reconciliation against Odoo records. Read the five payment gateways in Odoo case study.

The bottom line on Odoo Saudi bank integration

Odoo gives Saudi companies a dependable statement import, strong auto-reconciliation and standard ISO 20022 and WPS payment files out of the box; live bank sync and SADAD depend on your bank and may need custom work. Budget for setup, not per-transaction fees.

Check your bank in Odoo's list, build the models on three months of real statements, and test one payment file with the bank. Add a custom connector only when the business can name the decision that needs intraday data.

Ready to connect your Saudi bank to Odoo?

Request a KSA bank review

Tell us your banks, payment volumes and Odoo version, and we will map the feed, the models and the files. Request a KSA bank integration review, call +91-90235-15208, or email business@iventureteam.com.

Frequently Asked Questions

Does Odoo integrate with Saudi banks?

+

Partly. Odoo Enterprise bank synchronization uses providers such as Salt Edge, which operates in Saudi Arabia, but Odoo publishes no country list, so check your bank in the institution search. Statement file import and ISO 20022 payment files work with any Saudi bank.

Can Odoo import a bank statement from a Saudi bank?

+

Yes. Odoo imports CAMT.053, CSV, XLSX, OFX and QIF files into the bank journal. CSV and XLSX need a one-time column mapping, which Odoo saves. Ask the bank for CAMT.053 if its corporate portal offers it.

How does Odoo bank reconciliation work in Saudi Arabia?

+

Default matching rules pair transactions with invoices, bills and payments by amount, reference and partner. Reconciliation models then handle bank fees, mada settlements, SADAD credits and SARIE receipts using label conditions, regex and partner mapping.

Does Odoo support SADAD?

+

Not natively. Odoo has no built-in SADAD biller or bill payment module. SADAD debits and settlements are reconciled from the bank statement, and a biller integration that reads SADAD reports is a custom module on the Custom plan.

Can Odoo generate SARIE payment files?

+

Odoo generates ISO 20022 pain.001 credit transfer files in SAR from a batch payment. Your bank executes them through SARIE or its own rails. Confirm the accepted pain.001 version with the bank; Odoo defaults to pain.001.001.09.

Does Odoo produce a WPS file for Saudi payroll?

+

Yes. The Saudi payroll localization adds a Saudi WPS payment report on pay runs, built to MHRSD guidelines. It requires a trusted establishment bank account with a Bank SARIE Code and each employee's Saudi National or Iqama ID.

Is Odoo bank synchronization real time?

+

No. Journals sync every twelve hours by default, some providers refresh once a day, and only posted transactions are fetched. Banks that require a code on every login sync only when you click Fetch Transactions.

How much does Odoo bank integration cost in KSA?

+

Sync, import, reconciliation models and ISO 20022 files are included in the Enterprise subscription; the cost is setup time, illustratively a few days to two weeks. A custom bank API or SADAD connector needs the Custom plan and typically 3 to 8 weeks of work.

Free integration feasibility review

Connecting your other systems to Odoo?

Tell us what needs to sync between your systems and Odoo. We recommend a connector, API or custom approach and plan how failures are handled.

Free, with no obligation. A senior consultant replies within 12 business hours.