Skip to main content

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.

CredentialRequiredWhere to find it
API KeyYesEasyKash seller dashboard → Settings → Integration Settings (Cash API)
HMAC Secret KeyYesSame page; used to verify EasyKash's payment callbacks (see below)
Callback URL — optional, but register it if you sell with Fawry/Aman vouchers

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

SettingDefaultWhat it does
Checkout labelemptyCustomer-facing name at checkout (e.g. "Card, wallet, Fawry or instalments"). Blank shows "EasyKash"
Transaction feenoneFlat or percentage surcharge added to the order when this method is chosen
Send payment confirmation emailonEmails the customer when payment succeeds
Notify on payment failures (emails)emptyAlerts your team when a checkout fails
Auto mark orders as paidonNot 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

  1. Shopper picks EasyKash and submits the checkout.
  2. TakeTheme creates a Direct Pay link with a numeric customerReference and redirects the shopper to EasyKash.
  3. 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).
  4. EasyKash sends the shopper back to TakeTheme (GET /v1/payment/easykash/return). TakeTheme asks EasyKash's Payment Inquiry API whether the payment is PAID — the browser's own status parameter is never trusted — and creates the order there, already Paid.
  5. 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.