A customer pays by card, through the bank or in cash, and the accountant has to link every receipt to an invoice. Odoo handles bank reconciliation well, but local payment services are not on its official list of providers.
Payments are collected differently in an online store, on an invoice and at the cash desk. The first question: how do your customers actually pay?
| Method | In Odoo | A note for Uzbekistan |
|---|---|---|
| Bank transfer | Available: an alternative method from the Odoo documentation (Wire Transfer) | Automatic reconciliation relies on the document number in the payment reference: customers need to be told to write it |
| Payment on invoice | Available: Pay on Invoice | Convenient for legal entities. The official electronic invoice is separate: details |
| Payment on the spot and in cash | Available: Pay on Site, Cash on Delivery | For cash revenue, the fiscal receipt is issued by a cash register device from the registry |
| Card online: through a provider | Available, but Click and Payme are not among the 21 ready-made providers | A ready-made module or a separate connection is needed. Details below |
| At the cash desk: card terminal, QR | Available, but the terminal and QR types are designed for other countries | A local terminal and QR are tested in a test database. Cash desk and POS → |
The following comes from the providers’ own documents and pages. We have not tested them: connection terms, the test environment and the contract are requested from the provider at the diagnostic.
| Service | What the documentation describes | How the connection is built |
|---|---|---|
| Payme Business | Payment with Uzcard and HUMO cards. Merchant API: CheckPerformTransaction, CreateTransaction, PerformTransaction, CancelTransaction, CheckTransaction, GetStatement. Subscribe API: working with cards and receipts. The SetFiscalData method returns fiscal data (optional). A sandbox exists. Only legal entities work with the cash desk | Payme sends a JSON-RPC 2.0 request to your billing server (HTTPS, POST), and the response must return with HTTP 200. So a receiving component is needed on the server side |
| Click | Shop API: Prepare and Complete requests. Merchant API: Click Pass and fiscalization data. Web payment, payment link, card payment, payment through Telegram. Where the customer pays: CLICK SuperApp, web service, USSD, Telegram bot | The provider’s billing system must handle the Prepare and Complete requests. On the Odoo side, a module or endpoint that receives these requests is required |
| Uzum Bank | In the developer portal: Checkout (card payment, card linking, refunds, statuses, fiscalization), Merchant API, FastPay (QR for the cash desk), Dynamic QR, Nasiya (installment payment), Fiscalization | Becoming a partner is done through merchants.uzumbank.uz; the access procedure and the test environment are not described on the portal page and are defined in the contract |
Among the 21 providers in the Odoo 20 documentation there is no Uzbek service. If you need card payment, there are three routes. Detailed analysis →
| Method | Advantages | What we check |
|---|---|---|
| A ready-made module from the Apps Store | Connects quickly. For Click, the “Click Payment Gateway” module (TODOO, 19.0) is visible: a QR page, a mobile link | Version: as of 25 October 2026, for 19.0 only. According to the module page, there are no refunds or card saving, the license is closed (OPL-1), the server must be reachable from the internet, and the QR image is generated by an external service. Searches for “payme uzbekistan”, “paycom” and “uzcard” found no Uzbek payment module, but the search works by name |
| A custom-built connection | Adapted to your requirements; refund and accounting rules can be added | The server part from the provider’s documentation, its maintenance and adaptation to each new Odoo version. A custom module does not work on Odoo Online, so Odoo.sh or your own server is chosen |
| Bank transfer or invoice | Works out of the box, no additional module needed | The procedure for matching a received payment against the bank entry |
Based on the Odoo 20 documentation. If your version differs, we check at the diagnostic.
| Goal | In standard Odoo / in an external service | Extra work (BUline) |
|---|---|---|
| Payment by bank transfer and on invoice | Available: Odoo’s alternative payment methods | Bank details and a reference template, reconciliation rules |
| Local card payment | Not in Odoo. Payme, Click and Uzum Bank describe an API in their own documentation | Testing a ready-made module or building the connection, choosing the hosting type |
| Bank statement import | Available: CAMT.053, CSV, XLSX, OFX, QIF | Converting a local bank’s file to a suitable format, a column map |
| Matching a bank entry to an invoice | Available: automatic rules and reconciliation models | Adapting the rules to your reference and commission formats |
| Direct synchronization with a bank | The documentation lists providers (Salt Edge is described as “worldwide”); Uzbek banks are not named | Replace with file import; if the bank is on the list, it is estimated separately |
| Fiscal receipt for online payment | Not in Odoo. The provider’s API returns fiscal data (Payme, Click, Uzum Bank) | Linking the data to Odoo records, accounting for refunds |
The example is hypothetical: no real figures, only to show the mechanism. An online store accepts payment by card and bank transfer. The provider collects the payments and transfers them to the bank, and customers write the invoice number in the transfer reference.
A provider may collect payments and transfer them, withholding a commission. A hypothetical example: the figures are not real, they only show the mechanism.
| Stage | In Odoo | On the bank statement |
|---|---|---|
| Customers pay: 100, 250 and 400 | Three payments, 750 in total, sit on the settlement account with the provider | Nothing yet |
| The provider transfers the money, with a 2% commission withheld | 750 stays where it is | One line: 735 |
| The accountant reconciles | 735 is posted to the bank and 15 to commission expense | 735, no balance left |
Odoo matches a bank entry to an invoice, a vendor bill or a payment (reconciliation). Rules do most of the repetitive work. Rules and models →
For cash payments, the receipt is issued by a cash register from the official registry. For online card payments, who generates the receipt depends on the contract: we obtain the answer to this question from the provider and the tax authority in writing. Online cash register →
An error in a payment connection affects money and trust. That is why the most important rules are written down at the start of the project.
The stages follow the general BUline Method. The timeline is agreed in writing after the diagnostic. Implementation process →
We find out how customers pay, which provider you have a contract with, how the bank statement is obtained and who generates the fiscal receipt. The provider's documentation is reviewed. Result: a business requirements document (BRD).
A ready-made module or a separate connection is chosen, the hosting type is confirmed, and the reconciliation rules are written down together with the accountant. A test environment is requested from the provider.
The connection is tested in a copy of the database: payment, cancellation, refund, repeated notification, connection loss. The bank rules are checked against a real statement file, followed by a pilot.
Cashiers, accountants and managers are trained by role: payment reconciliation, refunds, a mistaken payment. We provide an instruction manual and video lessons.
After launch, 30 days of enhanced support, then agreed ongoing support. When the provider or Odoo is updated, the connection is tested again.
This list speeds up the diagnostic. We can start even if not everything is ready.
| Mistake | Consequence | How we prevent it |
|---|---|---|
| Choosing a module regardless of the hosting type | Third-party modules cannot be installed on Odoo Online | Decide on hosting before choosing a module |
| Not checking the module's version | Payment stops working when you move to Odoo 20 | Ask the author in writing for the release date of the new version |
| Testing in the production database | Invoice numbering is corrupted | Test mode only in a copy of the database |
| Treating payment acceptance and accounting as the same thing | Many hours of manual work at month end | Agree the reconciliation rule with the accountant before connecting |
| A manual journal entry to the bank account | According to the Odoo 20 release notes, an entry that affects the bank account must originate from a bank transaction | Make the correction through a bank transaction |
| Ignoring the fiscal receipt | A tax requirement is violated | Establish in writing who generates the receipt |
Both services have open documentation and payment methods, but they are not among the 21 ready-made providers in the Odoo 20 documentation. The connection is built on your server side according to the provider's documentation: a ready-made module or custom development is assessed during the diagnostic.
The Payme documentation describes payment with Uzcard and HUMO cards. The Odoo documentation names no ready-made terminal or provider for these cards; payment goes through one of the services above, and the terminal at the checkout is tested.
Among the bank synchronization providers in the Odoo documentation, Uzbekistan's banks are not named (Salt Edge is described as “worldwide”, and its coverage is checked separately). Uploading a bank statement as a file works: CSV, XLSX, OFX, QIF or CAMT.053. The file format of the local bank is checked during the diagnostic.
If the partner is identified, Odoo links several open documents of that partner to a single bank line in one click. A partial payment and a small difference, such as a bank fee, are closed by a rule.
It may be your cash register, the payment provider or the platform's virtual fiscal module, depending on the contract. Payme, Click and Uzum Bank have fiscalization sections. We establish the exact procedure in writing with the provider and the tax authority.
Third-party and custom modules are not compatible with Online. For the server part that the provider requires, Odoo.sh or your own server is chosen. Bank file import does work on Online. Hosting types →
The Odoo license depends on the number of users and apps (terms are at odoo.com); bank synchronization requires an Enterprise subscription. The scope of BUline's work depends on the number of payment services, branches, apps, customization, data volume and training. The exact cost and timeline are given in a written proposal after the free diagnostic.
During the diagnostic, we review your processes and tell you where standard Odoo is enough and where configuration is needed — with an app list, edition and phases.