Skip to main content

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​

StatusMeaning
initiatedIssued, waiting to be paid.
paidPaid. Done.
expiredNot paid by expired_at.
failedCouldn'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.