Pesapal

Pesapal is East Africa's leading payment gateway. Connect it to Tranzo POS to accept Visa, Mastercard, and online M-Pesa from any customer with a phone.

What Pesapal handles

What Pesapal does NOT handle

Setting up Pesapal

Step 1 — Sign up with Pesapal

Go to pesapal.com and create a merchant account. They'll issue you a Consumer Key and Consumer Secret.

Step 2 — Connect to Tranzo

  1. Drawer → SettingsPesapal
  2. Choose environment: Sandbox for testing, Live for real payments
  3. Paste in your Consumer Key and Consumer Secret
  4. Save
  5. Tap Test connection — confirms credentials work

Step 3 — Test a transaction

In sandbox mode, ring up a sale, choose Card, and use Pesapal's test card numbers (provided in their docs). Verify the sale completes and the receipt shows Pesapal confirmation.

Step 4 — Go live

Once tests are clean, switch the environment to Live and re-enter your live credentials. Real payments now flow through.

How a Pesapal transaction works

  1. Cashier rings up the sale, taps PayCard
  2. Tranzo creates a Pesapal payment link (deep link or QR code)
  3. Customer scans the QR with their phone or taps the link
  4. Pesapal hosts the checkout — Visa, Mastercard, M-Pesa, etc.
  5. Customer completes payment on their phone
  6. Pesapal sends an IPN (Instant Payment Notification) back to Tranzo
  7. Tranzo marks the sale as paid, prints the receipt

The IPN endpoint

Tranzo registers an IPN URL with Pesapal during setup. This is the URL Pesapal calls to notify us of payment status changes. You don't need to think about this — it's automatic. Just don't change your domain without re-registering.

Refunds

Card refunds happen through Pesapal's own merchant dashboard, not through Tranzo. Tranzo can mark a sale as voided (and reverse stock and loyalty), but the actual money refund is initiated by you on Pesapal's side.

Settlement

Pesapal settles funds to your bank account on a schedule defined in your contract with them — usually T+1 or T+2. They take a fee per transaction (typically 2.5–3.5% for cards, lower for M-Pesa). Check your Pesapal statement, not Tranzo.

Common issues

"Connection failed"

Wrong key/secret, or you're using sandbox creds in live mode (or vice versa). Re-check Settings → Pesapal.

Customer paid but Tranzo doesn't show it

IPN didn't reach us. Tranzo polls Pesapal as a fallback, so the sale will mark paid within ~30 seconds. If it stays stuck for 5+ min, manually refresh from Sales → tap the sale → Refresh status.

Customer scanned the QR but checkout never appeared

Their browser blocked the redirect, or the payment link expired (15 min lifetime). Cancel the sale on the POS and start over.

Who can manage Pesapal