Reconciling Tabby and Tamara Payouts in Odoo
How Tabby and Tamara sales are booked in Odoo, why the payout is smaller than sales, and how to set up a clearing account and match each payout to its orders.
The first sale through Tabby or Tamara is a good day for the store. The first month end after it is when the accountant opens the bank statement, sees one payout that covers dozens of orders and a smaller figure than the sales report, and asks where the rest went. This article answers that question for an Odoo setup running Tabby & Tamara for Odoo: what gets booked where, how to set up a clearing account so the numbers stay honest, and how to match a payout back to the orders inside it.
It is written for the person who closes the books, not the person who installs the module. If you are still at the install stage, the end to end setup guide comes first.
Why BNPL money does not look like card money
With a card terminal you usually see one deposit per day, roughly equal to that day's card sales. BNPL breaks that pattern in three ways.
- The provider pays you, not the customer. The customer owes Tabby or Tamara in instalments. You are paid by the provider on its settlement schedule, whatever the customer does afterwards.
- You are paid net. The provider keeps its merchant fee and transfers the rest. The fee rate is in your own agreement with the provider, so read it there rather than from any blog, this one included.
- One transfer covers many orders. A settlement batches captures, and it can also net off refunds you issued in the same period. The provider's settlement report is the document that explains the transfer line by line.
So the gross amount of an order and the money that reaches your bank are never the same number, and never on the same day. Trying to match them directly is what makes the first reconciliation painful.
What the module books, and what it leaves to Odoo
The module does no custom accounting. That is deliberate: it hands every confirmed payment to Odoo's own payment and Point of Sale machinery, so the entries look exactly like the ones your accountant already knows.
Website checkout, portal invoices and quotations. When the provider confirms a payment, the module verifies it server side and marks the Odoo payment transaction as done. From there Odoo's standard payment flow creates the payment on the journal set on the provider record and matches it against the invoice. The amount is the gross amount of the order. The provider's fee does not appear anywhere at this point, because nobody has told Odoo about it yet.
Point of Sale. A Tabby or Tamara payment method at the register must have a journal. The module refuses to save a BNPL method without one, precisely so that captured payments always land on an account. The payments then post when you close the POS session, the same way card payments do. The module's own POS guide recommends pointing that journal at a clearing or transit account rather than your real bank.
What it does not do. It does not import settlement reports, it does not know the fee on each order, and it does not create the payout entry. Those come from the provider's side and belong in your accounting routine, which is what the rest of this article sets up.
Set up a clearing account per provider
The single most useful decision is to stop BNPL receipts from landing directly in your bank account.
Create the journals
In Accounting or Invoicing, under Configuration, create one journal per provider, of type Bank, named something like "Tabby clearing" and "Tamara clearing". Give each its own account. This account is not a real bank; it holds money the provider owes you and has not paid out yet.
Keep the two providers apart. Their settlement schedules, fee terms and report formats differ, and a shared account turns one small mismatch into a hunt across both.
Point both channels at them
- On each payment provider record, set its journal to the matching clearing journal. You will find it on the provider form under Configuration, then Payment Providers.
- On each Point of Sale payment method for Tabby or Tamara, choose the same clearing journal.
Now online and counter sales for Tabby both end up in one place, and so do Tamara's. The module auto creates the POS methods on install using the first bank journal it finds, so check them and switch the journal if it picked your real bank.
Add a fees account
Create an expense account for BNPL merchant fees, one per provider if you want to compare them later. This is where the difference between gross and net will go.
The three entries, in plain terms
With clearing in place, every BNPL sale follows the same cycle.
- Sale. The customer pays through the provider. Odoo debits the clearing account and credits the customer receivable, for the full order amount. The invoice shows as paid.
- Payout. The provider transfers money to your bank. You record one entry: debit bank for what arrived, debit the fees account for what the provider kept, credit the clearing account for the gross total of the orders in that settlement.
- Refund. A refund sent to the provider credits the clearing account through the normal refund flow, so the next settlement that nets it off still balances. The refunds guide covers where refunds can start and how the module stops the same one going out twice.
After each payout the clearing account should drop by exactly the gross amount of the orders it covered. What remains is money the provider still owes you.
Matching a payout to its orders
This is the step accountants worry about, and it is mostly a question of references.
When the module creates a checkout, it sends the Odoo payment reference as the order reference to Tabby or Tamara. For a Point of Sale sale it sends the POS order reference. Those same references appear in the provider's settlement report next to each order. So the match is:
- Download the settlement report for the payout from the provider's merchant dashboard.
- For each line, find the Odoo payment with the same reference in the clearing journal.
- Confirm the gross amounts agree, then total the fees from the report.
- Post the payout entry and reconcile the clearing lines it covers.
Inside Odoo, each POS order and customer invoice paid through BNPL also carries a smart button to the payment record, with status, amount and refunds. That is the quickest way to check a single disputed line.
Community versus Enterprise
Enterprise has the full Accounting app, with the bank reconciliation screen and reconciliation models that can suggest the fee split for you once you set a rule. Community has Invoicing, where you record the payout and match lines by hand, or add a community reconciliation module. Both work; the difference is time. The Community and Enterprise comparison goes through what else changes between the editions.
A month end check that catches problems early
Look at the balance of each clearing account on the last day of the month. It should equal sales captured but not yet included in a payout, usually the last few days. If it keeps growing month after month, something is not being cleared: a payout recorded straight to income, a fee posted to the wrong account, or a refund booked in Odoo that the provider never received.
A second check: compare the count of done BNPL transactions in the period with the count of lines in the provider's reports. A gap there points at an order that was paid on one side and not the other, and the module's API log, which records every gateway call with credentials redacted, is where to see what happened to it.
Tax on the fee
The merchant fee is a charge from the provider to you, and the provider's statement or invoice shows whether tax applies to it in your country. Book it with the tax treatment your accountant confirms. The order itself keeps its normal sales tax; BNPL does not change the tax on what you sold.
Where to go next
If a payout looks short because a provider never saw a refund, start with the refunds guide. If you are still deciding whether to run both providers, and so two clearing accounts, the Tabby versus Tamara comparison helps with that choice.
Frequently asked
Why is the Tabby payout in my bank smaller than Tabby sales in Odoo?
Odoo records each order at its gross amount, while the provider transfers the net after keeping its merchant fee, and may also net off refunds from the same period. The settlement report in the merchant dashboard explains the difference line by line, and the fee part is booked to a fees expense account.
Does the module book the Tabby or Tamara fee automatically?
No. The module hands each confirmed payment to Odoo's payment and Point of Sale flows at the gross amount. It does not import settlement reports or know the fee per order, so the fee is booked with the payout entry from the provider's report.
Which journal should the Tabby payment method in the Point of Sale use?
A bank type journal tied to a Tabby clearing account, not your real bank. The module will not save a BNPL payment method without a journal, and when it auto creates the methods it takes the first bank journal it finds, so check them after install.
How do I know which orders a payout covers?
The module sends the Odoo payment reference, or the POS order reference, as the order reference to the provider. The same reference appears in the settlement report, so you match each report line to the payment with that reference in the clearing journal.
Do I need Odoo Enterprise to reconcile BNPL payouts?
No. Enterprise makes it faster with the bank reconciliation screen and reconciliation models, but on Community you can record the payout and match lines by hand in Invoicing, or add a community reconciliation module. The difference is time, not the result.