Tabby
&
Tamara
in one Odoo module.
Add Buy Now Pay Later to your shop, invoices, quotations and Point of Sale in a single install with one settings screen.
Most stores install two apps. You install one.
Most listings on the Apps Store cover one provider and one screen. This one covers both providers and every place your customer pays.
| This module | Typical alternatives | |
|---|---|---|
| Tabby and Tamara together | Yes, one install | One module per provider |
| eCommerce checkout | Yes | Yes |
| Point of Sale | Yes, same module | Usually a separate module |
| Portal invoices | Yes | Rarely |
| Quotations | Yes | Rarely |
| Instalment badge on the product page | Yes, live with quantity | Static image or none |
| Full and partial refunds | Yes, from the back office | Often via the provider portal |
| API request log | Yes, with secrets redacted | No |
| Odoo 14 to 19 | Yes | One or two versions |
They see the plan before they click Buy
A live badge under the price on the product page and in the cart shows the number of payments and the amount of each, and updates the moment the quantity or variant changes. A breakdown modal explains the whole schedule.
- Recalculates with quantity and variant
- Breakdown modal with the payment schedule
- Only shows for providers you enabled
Tabby and Tamara at the counter
The cashier picks a provider, a QR popup opens, and the customer scans and approves on their own phone. The server polls the gateway until it confirms, and the Validate button stays locked until the payment is actually captured.
- No terminal hardware, the customer's phone is the reader
- Validate stays locked until the gateway confirms
- Works on the legacy and the new POS
A returning shopper cannot fake a paid order
The riskiest moment in any redirect payment flow is when the customer comes back. This module never takes that redirect at face value: it keeps only the reference, then asks the provider itself what really happened.
- The return URL supplies only a reference, the status is read from the provider's API
- Webhooks are re-verified the same way, so a forged call changes nothing
- Finalised transactions are never re-processed, so a replayed notification cannot flip them
One payment, for all your stores
Frequently asked
Do I need my own Tabby or Tamara merchant account?
Yes. The module connects your store to your account but does not issue the account. You get test and live keys from the provider's merchant dashboard, then enter them in the Odoo payment provider settings.
Does it work with my Odoo version?
There is a branch for every release from 14.0 to 19.0, on both Community and Enterprise. Download the branch that matches your version.
Why are Tabby and Tamara not showing at checkout?
The two usual causes: the provider is enabled but not published, or the order is in an unsupported currency. Both providers appear only for SAR, AED, KWD, BHD, QAR and OMR, and hide automatically otherwise.
Does it support refunds?
Yes, full or partial refunds from the Odoo back office and straight from the invoice. A POS refund is sent to the provider automatically when the refund order syncs.
Is the source open?
Yes, under LGPL-3. You can read, modify and extend it, and every gateway call is written in Python on the server.
Articles
Practical guides to wiring Buy Now Pay Later into Odoo.
How to Add Tabby to Odoo: Full Setup Guide
A practical guide to accepting Tabby in Odoo: merchant account, API keys, test mode, supported currencies, publishing the provider, and verifying an order.
Tabby and Tamara in Odoo POS: BNPL at the Counter
How to accept Tabby and Tamara instalments at the counter in Odoo Point of Sale: the QR flow, why no terminal is needed, and how Validate stays locked.
Tabby vs Tamara: which one should your store offer
An even handed comparison of Tabby and Tamara for Saudi stores: instalment counts, customer habit, currency coverage, fees, and why most offer both.
Odoo Payment Provider Not Showing in SAR: Fix Guide
A practical guide to configuring an Odoo payment provider for SAR and GCC currencies, why Tabby and Tamara vanish at checkout, and how to read the API log when a call fails.