To add buy now, pay later to your own app, open a merchant account with a provider such as Tabby or Tamara, then have your server create a checkout session through their API with the order details, send the customer to approve the plan with the provider, and confirm the order only when a webhook arrives. After shipping you capture the payment, and on returns you send a full or partial refund through the same API. The provider carries the customer's installments and pays you under its agreement with you.
- how to integrate tabby into my website
- add tamara to custom app
- buy now pay later integration for own store
- tabby tamara api integration
- do i need a commercial registration for tabby
- tabby or tamara which is better for merchants
How do you add Tabby and Tamara to your own app?
To add buy now, pay later, such as Tabby and Tamara, to your own app you go through four stages: open a merchant account and get API keys; have your server create a checkout session for each order and send the customer to approve with the provider; receive a webhook confirmation and only then confirm the order; and handle the after-sale steps: capture on shipping, cancellation, and full or partial refunds.
The difference from store platforms is fundamental. On a template store you enable a plugin, paste a key, and the platform does the rest. In your own app, whether it is a custom store, a booking app or a services platform, you decide when an order is confirmed, when money is captured and how refunds work. That is a lot of freedom with real responsibility: one wrong order state can mean shipping a product that was never paid for.
For how the service works for merchants in each market, see Tabby and Tamara for Saudi merchants and Tabby and Tamara in the UAE. Here we focus on implementing it inside your product.
Installments raise the urge to buy, but precise order states are what protect your money.
Directly with the provider or through your gateway?
There are two ways to integrate. The first is to connect directly with each provider through its API. The second is to use a payment gateway that offers buy now, pay later options on its checkout alongside mada and cards. Both are valid; the choice depends on your size and how much control you want.
- Full control over the experience and messaging
- Access to all provider features, such as installment widgets on product pages
- A separate contract, settlement and dashboard per provider
- More technical work: an integration and webhooks for each provider
- One integration for several payment methods
- Unified reporting in a single dashboard
- Not every provider feature may be available
- Depends on what the gateway supports in your market
How does a BNPL payment flow work, step by step?
- 1Show it on the product page
Display the provider's approved installment message under the price so customers know early that the option exists.
- 2Create the session
When the customer picks pay later, your server sends the provider the order details: items, amount and currency, shipping, discount, and customer details such as phone number.
- 3Customer approval
The customer is redirected to the provider's page or popup, signs in and approves a payment plan after the provider assesses eligibility.
- 4Return and confirm
The customer comes back to your site, but you confirm the order only after the provider's webhook confirms approval.
- 5Capture
Depending on the provider and your settings, you capture on shipping or it happens automatically. Follow the provider's requirements.
- 6After the sale
Cancelling before shipping and full or partial refunds after returns are all requests your server sends through the API.
Which order states does your app need?
The costliest mistakes come from vague order states. Give every pay-later order a clear status, and record the provider's transaction id, the authorized amount, the captured amount and the refunded amount. For sound table design, see database design for non-developers.
| State | Meaning | What your app does |
|---|---|---|
| Pending approval | Session created, customer has not finished | Do not hold stock for long; cancel after a timeout |
| Authorized | The provider approved the customer | Prepare the order; never ship before this state |
| Captured | Capture confirmed on shipping or automatically | Issue the invoice if not already issued, update reports |
| Partially refunded | Part of the order was returned | Record the amount and returned items |
| Fully refunded | The whole order was returned | Close the order and restock |
| Cancelled or declined | Provider declined or order cancelled before capture | Offer the customer another payment method |
One important detail: discounts, shipping fees and VAT must be sent to the provider with exactly the same figures that appear on your invoice. Any mismatch, even by a few halalas or fils, can cause a failed capture or a settlement that does not reconcile.
How do you display pay later without breaking the rules?
- Use the official widgets: providers supply ready messages and elements for product, cart and checkout pages, and they are the safest wording.
- Do not promise what the provider decides: eligibility, minimum and maximum amounts and the number of installments are set by the provider, not you.
- Show it where it helps: product page, cart and checkout, especially for higher-priced items such as perfume, electronics and furniture.
- Arabic first: make sure provider messages appear in Arabic on the Arabic interface and lay out correctly right to left.
- Be transparent in your policies: explain on your refund page how refunds work for pay-later orders.
In Saudi Arabia, buy now, pay later providers are licensed by the Saudi Central Bank (SAMA), and each provider has its own merchant requirements in each market, usually including a registered business. Check current requirements with the provider directly.
Refunds and returns with pay later
When a customer returns something bought with pay later, do not refund them yourself in cash or by bank transfer. Send a refund request to the provider through the API; the provider adjusts the customer's installments or returns what they paid, then deducts the amount from your settlement. A refund outside this path can leave the customer paying installments while also receiving money back, or create a dispute that is hard to untangle.
- Receive and inspect the returned item according to your policy.
- Decide the refund amount: the whole order or specific items, with or without shipping as your policy states.
- Send the refund request from your app's admin dashboard so it reaches the provider through the API.
- Update the order state and stock, and issue a credit note if your invoicing requires it.
- Tell the customer on WhatsApp that the refund is done on your side and the provider will update their plan.
For refunds and disputes in the Gulf more broadly, read refunds and chargebacks in the Gulf.
Build it with Fanann: a ready prompt and checklist
The Fanann Agent builds the integration, server logic, order states and admin dashboard, connecting local payment options through the payments page. You own the code completely, so you can review or export it whenever you like.
Add Tabby and Tamara to my own perfume store alongside mada, Apple Pay and cards. Show each provider's official installment message under the price on product pages and in the cart, Arabic first. When pay later is chosen, create a session from the server with the items, the SAR amount, shipping, discount and the customer's phone number. Confirm an order only after a webhook confirms approval. Order states: pending approval, authorized, captured, partially refunded, fully refunded, cancelled. Cancel unfinished sessions after 30 minutes and restock. In the admin dashboard add a full or partial refund button that sends the request to the provider and logs it. Show me the plan before building.
Try it in FanannPre-launch checklist
- A successful order, a declined-eligibility order and one abandoned mid-approval.
- An order with a discount, a coupon and shipping, with amounts matching the invoice.
- A partial refund of one item, then a refund of the rest.
- A cancellation before shipping, confirming stock is restored.
- Installment messages in Arabic and English on a small phone screen.
If you are thinking of leaving a store platform for your own store, read when a custom store beats Salla.
Key takeaways
- In your own app you own the integration: session creation, server-side confirmation, capture and refunds.
- Order states must mirror the BNPL lifecycle: pending approval, authorized, captured, refunded, cancelled.
- Use each provider's approved installment messaging on product pages; never write your own promises.
- Partial refunds, discounts and shipping fees cause most amount mismatches, so test all of them.
- You can integrate directly with providers or through a gateway that bundles them; compare before deciding.
Frequently asked questions
Can I connect Tabby and Tamara to my own site, not a Salla or Zid store?
Do I need a commercial registration for Tabby and Tamara?
When do I get paid for an installment sale?
How do I refund an order paid with Tabby or Tamara?
Tabby or Tamara: which is better for merchants?
Ask your AI assistant about this
Copy this prompt into the AI assistant you use, then add the details of your own case.
I am reading this guide: “Adding buy now, pay later to your own app (not a store template)” https://fanann.com/en/blog/bnpl-in-your-own-app/ My question: how to integrate tabby into my website Use that page as a source and explain the answer step by step for my situation, tell me what to check before I start, and cite the page link.