Home Services Gulf Payment Integration
Available for new projects

Gulf Payment Integration — Tabby, Tamara, mada and ZATCA

Split payments, local cards and e-invoicing wired into your store or platform properly — with the capture, refund and clearance paths that most integrations skip.

40
Projects
8
Countries
5+
Years
24h
Response

Most Gulf checkout integrations break in the same two places, and neither shows up in testing. A Tabby session that returns rejected still renders the button, so the customer picks a method that will never authorise. A Tamara order that the customer approved is not a collectable order until you explicitly call the Authorise Order API — skip it and the money is never captured, while the dashboard cheerfully shows an approved order. Both faults are silent, both cost real revenue, and both are ordinary.

I build the whole path instead of the happy one: create session, handle rejection, redirect, authorise, capture on shipment, partial capture, refund and void — behind a provider abstraction, so adding the second gateway is a day rather than a rewrite. For Saudi storefronts that means mada through a SAMA-licensed acquirer (PayTabs, HyperPay, Moyasar or Tap — the licence sits with the gateway, not with you), and ZATCA phase-two integration where every invoice is cleared or reported before it is a legal document.

Checkout flow wired to Tabby, Tamara and mada for a Gulf storefront

What you get

Tabby integration end to end — session creation with buyer and order history for pre-scoring, rejection handling, capture on shipment, partial capture and refund
Tamara integration including the explicit Authorise Order step that turns an approved order into a collectable one
mada acceptance through a SAMA-licensed acquirer: PayTabs, HyperPay, Moyasar or Tap, with the onboarding document list prepared for you
ZATCA phase-two e-invoicing: XML generation, cryptographic stamp, QR, and clearance or reporting against the Fatoora platform
A provider abstraction (create, retrieve, capture, partial capture, refund, void) so the second gateway is configuration, not a rewrite
Webhook handling with idempotency keys and signature verification, so a retried callback never double-captures
Reconciliation reporting that matches gateway settlements against your own orders table
Sandbox-to-production cutover with a live smoke test of every path, including the refund path nobody tests

Tech stack

TabbyTamaramadaHyperPayPayTabsMoyasarTapZATCA FatooraLaravelNode.jsStripeWebhooks

Why work with me

Payment work is judged by what happens on the bad days: a declined split payment, a partial refund, a webhook delivered twice, an invoice ZATCA rejects at eleven at night. I have written publicly and in detail about all four — the GCC payment gateway guide and the ZATCA e-invoicing walkthrough are the same material this service is built on, so you can read exactly how I think before you pay for anything.

You get a fixed scope and a fixed price once we agree what is in it, weekly demos rather than a silent month, and the whole codebase at the end. I sign NDAs without discussion. If your integration is already half-built by somebody else, I will audit it and tell you honestly whether to finish it or restart — including when the honest answer costs me the larger job.

FAQ

Questions before you hire

How long does a Tabby and Tamara integration take?
For a store that already has a working checkout, both providers together are usually two to three weeks of build plus the merchant approval time, which is outside anyone's control and often the longer half. The build covers session creation, rejection handling, the Tamara authorise step, capture on shipment, refunds and webhooks with idempotency. If the checkout itself needs restructuring first, I will say so before quoting rather than after.
Do I need my own SAMA licence to accept mada?
No. mada is a domestic scheme governed by the Saudi Central Bank, and the acquiring licence sits with the gateway — PayTabs, HyperPay, Moyasar or Tap — not with you as a merchant. What you do need is to be onboardable: a Saudi commercial registration or in some cases a freelance certificate, a Saudi bank account in the entity name for settlement, identity documents for the authorised signatory, and a live site showing pricing, terms, refund policy and contact details. Confirm the exact list with the provider, because it changes.
What breaks most often in a Gulf payment integration?
Two things, and both are silent. Tabby returns a rejected status for buyers it will not underwrite, and if you do not read it the button stays on screen for a customer who can never complete. Tamara requires an explicit Authorise Order call after the customer approves — an approved order is not a collectable order until you make it, so the money is simply never captured while the dashboard looks healthy. Neither surfaces as an error, which is why both survive into production so often.
Can you add ZATCA e-invoicing to an existing system?
Yes, and it is usually the cheaper path. Phase two needs XML generation in the required schema, a cryptographic stamp, the QR code, and clearance or reporting against the Fatoora platform depending on invoice type. That can be a service alongside your current billing rather than a rebuild of it. I will look at how invoices are produced now and tell you which of the two it is before quoting.
What if I want to add a second gateway later?
That is why the first one is built behind an abstraction with create, retrieve, capture, partial capture, refund and void. Adding a provider afterwards becomes an adapter and some configuration instead of a second integration tangled through your order code. It costs a little more on day one and saves considerably the first time you switch or add.
Do you work with Salla, Zid, Shopify or a custom store?
All four, but the honest answer differs. On Salla and Zid you are working within what their apps and APIs allow, which is often enough and much cheaper — I will tell you when staying on the platform is the right call. Shopify supports custom payment apps with real constraints worth knowing before you commit. A custom Laravel or Node storefront gives you the most control and is where the full abstraction pays off.

Ready to start your project?

Send your brief. You will get a written quote and a clear plan within 24 hours. First consultation is free.

Chat on WhatsApp