Provider · Mobile money

SabaPay direct integration

Saba African Bank's PayMe (consumer push) and Fund Transfer (account debit) modes. We default to PayMe: the customer receives a USSD push and confirms with their PIN on-device. No OTP is entered in your UI.

USSD PINC2B + B2C

1 · Server-side

bashbash
curl -X POST https://api.merashub.com/v1/payment_intents \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 75000,
    "currency": "DJF",
    "provider": "sabapay",
    "customer_msisdn": "+25377xxxxxxx"
  }'
Response status: requires_action with next_action.type = "await_external_confirmation".

2 · Browser: wait for completion

tsts
const meras = MerasPay("pk_test_...");
// Poll every 2s until status changes, OR subscribe via webhook.
const intent = await meras.confirmPayment(piId, { client_secret: cs });
// SabaPay typically completes in 15-30s after USSD prompt

Sandbox

  • MSISDN ending 0001 succeeds
  • MSISDN ending 0002 times out
  • MSISDN ending 0003 declines

USSD push is simulated — no real device interaction needed.