Now live — Sudan's national payment gateway

One Integration.
Every Bank.
All Channels.

SadadSD is Sudan's national interoperability layer for digital merchant payments. Accept payments from any mobile banking app — e-commerce, POS, or mobile — with a single API.

📱
Payment Request
510.00 SDG
Khartoum Electronics — Main Store
Seller amount500.00 SDG
SadadSD fee10.00 SDG
Total payable510.00 SDG
Awaiting scan
Payment confirmed
Bank of Khartoum · just now
1 API
Single integration for all banks
3 channels
E-commerce · POS · Mobile App
Real-time
Payment status & callbacks
99.9%
Uptime SLA target

Everything merchants need.
Nothing they don't.

Stop integrating with each bank separately. SadadSD gives you one secure, standardized API that works across Sudan's mobile banking ecosystem.

🔗

Single Integration

Integrate once. Instantly reach customers on mbok, O-cash, Fawri, and every participating mobile banking app in Sudan.

Real-Time Status

Poll for status or receive instant webhook notifications. Know the moment a payment succeeds or fails.

🔐

Signed Dynamic QR

Every QR is cryptographically signed with HMAC-SHA256 and expires automatically. Tampered codes are rejected.

📊

Merchant Dashboard

Track transactions, view analytics, manage bank accounts, endpoints, operators, and webhooks from one portal.

🪝

Webhooks & Polling

Register a webhook URL for push notifications, or poll /payment_status. Both are supported simultaneously.

🧾

Transparent Fees

Payers see seller amount, SadadSD fee, and total payable — clearly and separately — on the bank app confirmation screen.

How SadadSD Works

Choose your role to see the integration flow.

1

Register & Get Approved

Create your merchant account in the portal. Add your bank settlement account and submit for review. Once approved, create an API endpoint to receive your credentials.

2

Create a Payment Intent

Call POST /api/merchant/create_payment with the seller amount. Receive a signed qr_data string, expiry time, and full amount breakdown.

3

Display QR or Launch Banking App

Encode qr_data into a QR code and show it at checkout. For in-app payments, pass it as a deep-link to the banking app.

4

Receive the Result

Poll GET /payment_status or receive a signed webhook event (transaction.success / transaction.failed) when the bank processes the payment.

5

Cancel if Abandoned

Always call POST /cancel_payment when the QR is no longer visible — page change, timeout, or explicit cancel. This is required to prevent stale transactions.

Merchant ↔ SadadSD
POST /create_payment
← { qr_data, expire_at, fees }

GET /payment_status?uuid=…
← { status: "requested" }

… customer scans QR …

GET /payment_status?uuid=…
← { status: "success" }

🪝 POST webhook_url
transaction.success event
1

Customer Initiates Payment

A customer opens your mobile banking app and scans a SadadSD QR code at a merchant checkout (online, POS, or printed).

2

Resolve the QR

Your backend calls POST /api/bank/resolve with the raw QR data. SadadSD verifies the signature, marks the transaction as scanned, and returns merchant name, amounts, and purpose.

3

Show Payer Confirmation

Display seller amount, SadadSD fee, and total payable clearly on the confirmation screen. The customer approves.

4

Process the Transfer

Execute the debit and inter-bank transfer on your side. SadadSD does not move funds — you control the banking transaction.

5

Report the Result

Call POST /api/bank/result with status: "success" or "failed" and your bank_reference. SadadSD notifies the merchant instantly.

Bank ↔ SadadSD
POST /resolve
← { merchant_name, seller_amount,
   sadad_fee, total_payable }

… process transfer internally …

POST /result
  { status: "success",
    bank_reference: "TXN-…" }
← { status: "success" }

Every Checkout. Every Device.

SadadSD works across all merchant acceptance channels with the same single API integration.

🌐

E-commerce

Embed dynamic QR at checkout. Customers scan with their banking app. Your server receives a webhook on success.

🖥️

POS + Cashier

POS device talks to SadadSD. Cashier system connects locally via Bluetooth. Only the POS calls the API — standardized and certified.

📱

Mobile App

Your merchant app creates a payment and deep-links directly into the customer's banking app. No QR scan required.

🖨️

Static / Printed

Generate a dynamic QR per transaction and print it for counter or table-service payment scenarios.

Who Works With SadadSD

🏦 Commercial Banks 📲 Mobile Wallets 🛒 E-commerce Merchants 🏪 Physical Retailers 🏥 Healthcare Providers 🎓 Educational Institutions 🏛️ Government Services 🚖 Transportation

Want to join as a bank or wallet partner? Contact our partnerships team →

Ready to integrate?

Get your merchant account approved, generate API credentials, and go live today.

🛒

Merchant Portal

Register your business, manage endpoints, view transactions, and configure webhooks.

Open Portal
📖

Developer Docs

Full API reference, integration guides, and code examples for banks and merchants.

Read the Docs