Guide Delivery companies

Company payment gateways for merchant top-ups

How a delivery company admin connects its own Stripe, ShamCash or Paymera account so company merchants can top up their balance online, what each gateway needs, and what is not available.

Last updated 22 October 2026 · Last verified 22 October 2026

Purpose#

A delivery company that keeps balances for its merchants can let them top up those balances online. The company admin enters the details of the company's own account with a payment gateway. The merchant pays on the gateway's page, and once the gateway confirms the payment the amount is added to the merchant's Shipping balance with the company. The money goes to the company's gateway account, not to the platform. These gateways are separate from the platform's own gateways, which serve independent merchants and are managed by the super admin.

Who can use it#

  • Setting up gateways: the company admin only. The menu item Payment gateways for your merchants is shown only to that account type, and other company staff (in-charge, hub) are refused with a 403 page.
  • Paying: merchants that belong to a delivery company. Independent merchants, and merchants that own an internal delivery company, use the platform's gateways instead; such an account that tries to use the company-merchant top-up service gets a 403 "This service is for company merchants."
  • No plan flag or permission key is required.

What is available#

Exactly three gateways exist: Stripe (card), ShamCash and Paymera. The page creates them the first time it is opened, each disabled and in Trial mode, so nothing is accepted until you save credentials and tick the enable box. Each gateway's name is saved when it is created, so it appears in the language in which the page was first opened (for example «Stripe (بطاقة)» and «شام كاش» if that was Arabic). They are used for one purpose only, top-ups by your merchants: they are never offered for plan payments or individual (no-account) shipments, and the platform's gateways are never offered to your merchants.

Gateway Needed before it can be enabled Currency How a payment is confirmed
Stripe (card) Secret Key (Publishable Key is not required) US dollars The platform asks Stripe about the Checkout session: it must be paid, carry the platform's reference and cover the amount. Trial or Live makes no difference; the Secret Key decides.
ShamCash Base URL, Agent Key, Secret Key (Base64, 32 bytes) US dollars or Syrian pounds (your choice) An encrypted notification to a callback address specific to your gateway, decrypted with your Secret Key, or a status query. The platform sends that address automatically with each payment request; you never enter it.
Paymera Terminal ID, Token, X-Secret-Key (Base URL is optional) Syrian pounds only, whole amounts (rounded up) The platform asks Paymera for the status; the callback address only triggers that check.

The old foreign gateways (PayPal, Skrill, SSLCommerz, Aamarpay, bKash, Razorpay, Paystack, Paymob) are closed, and the legacy "Payment Gateway" list of bank and mobile accounts is not part of this feature; its menu entry is hidden.

Set up a gateway#

  1. Open the page

    Choose Payment gateways for your merchants in the sidebar. Each gateway has a card, and Recent online top-ups is below them.

  2. Enter your credentials

    Fill in the credential fields. They are password boxes and are stored encrypted. A Saved badge means a value is stored; leaving a box empty ("Empty = keep the saved one") keeps it, and the form cannot erase a stored value.

  3. Choose mode and currency

    Pick Mode: Trial or Live. For Paymera, if Base URL is empty the mode selects the address used: Paymera's test address in Trial (the default for a new gateway) or its production address in Live, so choose Live (or enter the real Base URL) before taking real payments. For ShamCash also choose Payment currency (US Dollar or Syrian Pound). For ShamCash and Paymera enter US Dollar rate in SYP (if paying in SYP), your own rate for this gateway.

  4. Enable and save

    Tick Enabled for my merchants and press Save. The message "Saved ..." with the gateway name appears. If you ticked the box while a required field is empty, nothing is saved and the page says "Complete the details of ... before activation:" followed by the missing fields' technical names (such as secret_key, agent_key or terminal_id) separated by an Arabic comma.

Wallet balance and withdrawal request (demo data)

Expected result. Merchants of your company now see the gateway in their wallet page.

How a merchant pays#

  1. On My wallet at ..., the Top up balance box shows one option per enabled gateway. If none is enabled, no online payment form appears.
  2. The merchant types the amount in their display currency (from 0.01 up to 1,000,000), picks a gateway and presses Pay and ship (the button that tops up the balance). Requests are limited to 10 per minute.
  3. The platform converts the amount to US dollars at the platform rate, then to the gateway's currency: Stripe always US dollars, ShamCash dollars unless you chose Syrian pounds, Paymera always Syrian pounds. A gateway charging in Syrian pounds needs your rate; if it is empty or 0 the payment does not start and the merchant sees "US Dollar to SYP exchange rate is not set for gateway ...".
  4. The merchant is sent to the gateway's page, then back to Confirm payment, which refreshes itself while it shows "Confirming payment...". It ends with "Payment successful" (for example "25.00 $ has been added to your balance.", the credited amount in US dollars) or "Payment not completed" with a Try again button.
  5. The platform adds the dollar amount to the merchant's Shipping balance with your company only after the gateway itself confirms, never on the browser's return alone, and exactly once. The entry appears in the merchant's transactions as Online top up.
  6. As a backup, the platform automatically asks the gateway again every 10 minutes about payments still pending after 12 minutes, and marks one as expired after a last check once it is older than a day.

What the balance pays for depends on the merchant's setting How the delivery fee is paid, which the company changes on Company merchants and their wallets: with From their balance in advance, each parcel fee is deducted from the balance at creation; with From COD, it comes out of the cash collected.

Following the payments#

Recent online top-ups lists your company's last 30 attempts: Date, Merchant, Gateway, Amount (in the gateway's currency), Added balance and Status (Done, Failed, Expired or Pending). Balances and transactions per merchant are on Company merchants and their wallets.

Common mistakes#

  • No dollar rate for a Syrian-pound payment. Saving does not require the rate, so Paymera, or ShamCash set to Syrian pounds, can be enabled and then fail for every merchant with the rate message above.
  • Leaving Paymera on Trial with no Base URL. Merchants are then sent to Paymera's test address; choose Live or enter the real Base URL before taking real payments.
  • Using Trial or Live to switch Stripe. It has no effect on Stripe: the Secret Key decides.
  • Expecting late payments to be credited. After an attempt has expired, only a ShamCash notification can still credit it; expired Stripe and Paymera attempts are not checked again.

Limits and permissions#

  • Company admin only; merchants use the gateways only through their wallet page.
  • Top-ups only: no plan payments, no individual (no-account) shipments, no use of the platform's gateways.
  • Merchants can also send a manual top-up request from the same wallet page; this article does not cover it.