SADAD Bill
Give your customer a SADAD number to pay later from any Saudi bank app or ATM — no card. You issue the bill; Moyasar webhooks you when it's paid or expires.
Best for orders and invoices paid out of band (B2B, deferred) — or customers who prefer their bank.
How it works
Statuses
| Status | Meaning |
|---|---|
initiated | Issued, waiting to be paid. |
paid | Paid. Done. |
expired | Not paid by expired_at. |
failed | Couldn't be issued — see source.message. |
Response
Creating the payment returns initiated with a source:
{
"id": "e21048bc-378e-47f8-860f-129cfde465a0",
"status": "initiated",
"amount": 10000,
"currency": "SAR",
"source": {
"type": "sadadbill",
"provider_name": "Rosom-رسوم",
"biller_code": "901",
"sadad_number": "1234567890123",
"gateway_id": "moyasar_sb_aQHM2nEqvGKHQyBns4We8",
"expired_at": "2026-08-15",
"message": null
}
}
Show sadad_number to the customer — it's what they pay at their bank. provider_name and biller_code name the biller; gateway_id is Moyasar's reference; expired_at is the last day to pay.
Good to know
- SAR only.
- Expires in 29 days max. On an invoice, matches the invoice.
- No refund, capture, or void.
- On by default in test; contact support to enable live.
Next: Basic Integration.