Skip to main content

Kashier

Kashier is TakeTheme's primary card gateway for Egypt. Shoppers pay on Kashier's hosted checkout page and are returned to your store when they're done.

The integration is card-only and auto-capture — funds are taken as soon as the shopper completes payment, with no separate capture step.


Connecting

Settings → Payments → Kashier.

CredentialRequiredWhere to find it
API KeyYesKashier merchant dashboard → API keys
Merchant ID (MID)YesKashier merchant dashboard

Both are stored against your store only. The API key is also what TakeTheme uses to verify incoming webhooks, so it must stay in sync with Kashier — rotating it there without updating it here will cause every payment confirmation to be rejected.


Settings

SettingDefaultWhat it does
Send payment confirmation emailonEmails the customer when payment succeeds
Notify on payment failures (emails)emptyEmails these addresses when a checkout fails at the gateway
Auto mark orders as paidonNot currently enforced — a confirmed payment always marks the order paid

What the shopper sees

  1. They pick Kashier at checkout and submit.
  2. TakeTheme builds a signed Kashier checkout session for the exact amount and currency, and redirects them to Kashier's hosted page.
  3. They pay by card.
  4. Kashier calls TakeTheme's webhook; the order is created at that moment, already Paid.
  5. They land back on your store's order-success page.

The hosted page defaults to Arabic and is themed with your brand colour.

No order exists until Kashier confirms

If the shopper abandons on Kashier's page, nothing is created — the attempt appears under Abandoned checkouts instead. See How payments work.


Webhooks

Kashier posts payment results to:

POST https://<your-api-host>/api/v1/payment/webhook/kashier

This URL is registered automatically on every checkout session — there is nothing to configure in the Kashier dashboard.

Every webhook is signature-verified against your stored API key. An unsigned or mismatched call is rejected with 400 and nothing is recorded.

Kashier retries until it receives a 200. Repeat deliveries for a payment that is already recorded as successful are acknowledged and ignored, so a retry can never create a second order or double-count revenue.


Refunds

Refunds are recorded in TakeTheme only — no refund call is made to Kashier. Issue the refund from the Kashier dashboard, then record it on the order so your reporting matches. See Refunds.


Troubleshooting

Every payment fails to confirm after I rotated my API key. The stored key is used for webhook verification. Update it in Settings → Payments → Kashier and retype it in full — masked values (••••1234) are ignored on save.

The shopper paid but no order appeared. The webhook either didn't arrive or failed verification. Support can check the incoming webhook log with the Kashier transaction reference.

The amount on Kashier doesn't match my cart. The session is signed over the exact total including shipping, tax, and any handling fee. A mismatch means the cart changed after the session was created — the shopper should return to checkout and start again.