Paymob
Paymob is a MENA payment gateway supporting cards, wallets, and instalment products depending on the integrations enabled on your Paymob account.
TakeTheme redirects shoppers to Paymob's Unified Checkout, and the order is created when Paymob confirms the payment.
Connecting
Settings → Payments → Paymob.
| Credential | Required | Notes |
|---|---|---|
| Secret Key | Yes | Starts with sk_test_… or sk_live_… |
| Public Key | Yes | Used for the Unified Checkout redirect |
| Integration ID | Yes | The Paymob integration for the payment method you want to accept |
| API Key | — | Legacy key; only needed for older Paymob flows |
| iFrame ID | — | Legacy card iframe; only needed for older Paymob flows |
Your Integration ID decides what the shopper can actually pay with. If you want cards and wallets, enable them in Paymob and use the integration that covers them.
Settings
| Setting | Default | What it does |
|---|---|---|
| Send payment confirmation email | on | Emails the customer when payment succeeds |
| Notify on payment failures (emails) | empty | Alerts your team when a checkout fails at the gateway |
| Auto mark orders as paid | on | Not currently enforced — a confirmed payment always marks the order paid |
Payment flow
- Shopper picks Paymob and submits the checkout.
- TakeTheme creates a Paymob payment intent and redirects to Unified Checkout.
- Shopper pays.
- Paymob calls the TakeTheme callback; the order is created there, already Paid.
- Shopper returns to your store's success page.
POST https://<your-api-host>/api/v1/payment/webhook/paymob
Paymob delivers the callback HMAC as a query-string parameter.
TakeTheme verifies the Paymob callback signature only when an hmac secret is stored for your account. That field is not part of the standard credentials form, so on most stores the callback is accepted without a signature check.
If your Paymob account issues an HMAC secret, ask support to store it — it closes the gap where a forged callback could mark an order paid. Every other gateway on the platform verifies signatures by default.
Callbacks are idempotent: a repeat delivery for an already-successful payment is acknowledged and ignored.
Refunds
Refunds are recorded in TakeTheme only — no refund call reaches Paymob. Issue it in the Paymob dashboard and record it here. See Refunds.
Troubleshooting
Shoppers see "no payment method available" on Paymob's page. Your Integration ID doesn't cover the method they chose, or that integration is inactive in Paymob. Check it in the Paymob dashboard.
Payments succeed but orders don't appear. Confirm the callback URL is reachable from Paymob and that your secret and public keys are for the same account and environment (test keys never confirm live payments).
Test payments confirm, live ones don't.
You are almost certainly still on sk_test_…. Re-enter the live secret key in full.