PayTabs
PayTabs is a card gateway covering Egypt (EGY / EGP) and Saudi Arabia (SAU / SAR). Shoppers pay on PayTabs' hosted page and return to your store.
Connecting
Settings → Payments → PayTabs.
| Credential | Required | Notes |
|---|---|---|
| Profile ID | Yes | Numeric merchant profile ID from PayTabs |
| Server Key | Yes | Server authentication key; also used to verify callbacks |
| Currency | Yes | EGP or SAR |
| Region | Yes | EGY or SAU |
EGY pairs with EGP, SAU with SAR. The currency you set here must also match your store currency, or shoppers will be charged in a different currency than the prices they saw. Store currency locks after your first order, so confirm this before going live.
Settings
| Setting | Default | What it does |
|---|---|---|
| Allow customers to save cards | off | Lets shoppers store their card at PayTabs for faster repeat checkout |
| Send payment confirmation email | on | Emails the customer when payment succeeds |
| Notify on payment failures (emails) | empty | Alerts your team when a checkout fails |
| Auto mark orders as paid | on | Not currently enforced — a confirmed payment always marks the order paid |
Payment flow
- Shopper picks PayTabs and submits the checkout.
- TakeTheme creates a signed PayTabs payment session and redirects them.
- Shopper pays by card.
- PayTabs sends its IPN to TakeTheme; the order is created there, already Paid.
- Shopper returns to your store's success page.
POST https://<your-api-host>/api/v1/payment/webhook/paytabs
Signature verification is mandatory. Every payment session is signed with your server key, so an unsigned or mismatched callback is rejected with 403 and nothing is recorded. Both delivery shapes PayTabs uses — the JSON IPN and the browser return POST — are accepted and verified.
Callbacks are matched to a payment by transaction reference and provider, so a callback from one gateway can never resolve to another gateway's payment. Retries for an already-successful payment are acknowledged and ignored.
Refunds
Refunds are recorded in TakeTheme only — no refund call reaches PayTabs. Issue it in the PayTabs dashboard and record it here. See Refunds.
Troubleshooting
Callbacks are rejected with 403. The stored server key doesn't match the one PayTabs is signing with. Retype it in full — masked values are ignored on save.
Shoppers are charged in the wrong currency.
The PayTabs currency credential is independent of your store currency. Set both to the same value.
Saved cards aren't offered. Enable Allow customers to save cards here and confirm card tokenization is enabled on your PayTabs profile.