EasyKash
EasyKash is an Egyptian hosted checkout that bundles cards, Meeza, mobile wallets, Fawry and Aman cash vouchers, and bank/BNPL instalments (ValU, Souhoula, Contact, Forsa…) into one payment page. Shoppers pay on EasyKash's page and return to your store. Which of those methods appear is decided by what is enabled on your EasyKash business account, not in TakeTheme.
Connecting
Settings → Payments → EasyKash.
| Credential | Required | Where to find it |
|---|---|---|
| API Key | Yes | EasyKash seller dashboard → Settings → Integration Settings (Cash API) |
| HMAC Secret Key | Yes | Same page; used to verify EasyKash's payment callbacks (see below) |
Orders are created when the shopper returns from EasyKash — TakeTheme confirms the payment with EasyKash's inquiry API on the way back, so no callback is required for cards, wallets and instalments.
The exception is a cash voucher (Fawry/Aman): the shopper leaves with a voucher and pays at a kiosk later, and nobody returns to your store. Only EasyKash's callback can create that order. If you offer cash vouchers, set Callback URL in Integration Settings to:
https://api.taketheme.com/api/v1/payment/webhook/easykash
Direct Payment must be enabled on your account (ask EasyKash support if the Integration Settings page is missing).
There is no sandbox host — EasyKash issues test credentials on its production endpoints.
Settings
| Setting | Default | What it does |
|---|---|---|
| Checkout label | empty | Customer-facing name at checkout (e.g. "Card, wallet, Fawry or instalments"). Blank shows "EasyKash" |
| Transaction fee | none | Flat or percentage surcharge added to the order when this method is chosen |
| 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 |
Currency
EasyKash accepts the charge in EGP, USD, SAR, EUR, GBP, QAR, AED or KWD and TakeTheme sends your store currency as-is. The shopper is always charged in EGP at EasyKash's exchange rate at the moment of payment, so a non-EGP store should expect the amount EasyKash reports as paid to differ from the order total; TakeTheme logs the difference for reconciliation but does not reject the payment.
A store in any other currency (e.g. OMR) cannot use EasyKash — checkout will refuse to create the payment link.
EasyKash also rejects any charge of 1.00 or less (in the sent currency). TakeTheme refuses these before calling the gateway with EasyKash requires an amount greater than 1 … — keep this in mind when placing test orders.
Payment flow
- Shopper picks EasyKash and submits the checkout.
- TakeTheme creates a Direct Pay link with a numeric
customerReferenceand redirects the shopper to EasyKash. - Shopper pays by card, wallet, instalment plan — or takes a Fawry/Aman voucher to pay in cash later (vouchers expire after 3 hours by default on EasyKash's side).
- EasyKash sends the shopper back to TakeTheme (
GET /v1/payment/easykash/return). TakeTheme asks EasyKash's Payment Inquiry API whether the payment isPAID— the browser's ownstatusparameter is never trusted — and creates the order there, already Paid. - The shopper lands on your store's success page and is taken to the thank-you page.
If the callback URL is registered, EasyKash also POSTs a signed confirmation:
POST https://<your-api-host>/api/v1/payment/webhook/easykash
Signature verification is mandatory on the callback. Every one carries an HMAC-SHA512 signatureHash computed with your HMAC secret; an unsigned or mismatched callback is rejected with 403 and nothing is recorded. Callbacks are matched to a payment by customerReference and provider, and a callback for a payment already confirmed on the return path is acknowledged and ignored — whichever arrives first creates the order, never both.
Failed and abandoned payments
EasyKash only calls back on success. A declined card or an abandoned page sends the shopper back to your store with status=failed, where they see Payment Failed and can try again; the payment record is marked failed when EasyKash's inquiry reports it. An unpaid cash voucher stays pending until it expires — no order is created for it.
Refunds
Refunds are recorded in TakeTheme only — no refund call reaches EasyKash. Issue it in the EasyKash dashboard and record it here. See Refunds.
Troubleshooting
A Fawry/Aman voucher was paid but no order appeared. Voucher payments complete after the shopper has left, so only the callback can create the order — register the callback URL above.
Callbacks are rejected with 403. The stored HMAC secret doesn't match the one EasyKash signs with. Retype it in full — masked values are ignored on save.
Checkout fails with "EasyKash does not support …". Your store currency isn't one of the eight EasyKash accepts. Store currency locks after the first order, so settle this before going live.
A payment method is missing from the EasyKash page. Methods are enabled per business account on EasyKash's side; TakeTheme sends no method filter.