Hosted checkout
To integrate SOAMTAR without collecting the customer's phone number on your side, simply omit provider in POST /v1/payments.
How it works
- Create a transaction without
provider:
json
POST /v1/payments
{
"merchant_ref": "ORDER-001",
"amount": "150.00",
"currency": "SLE"
}- SOAMTAR returns:
json
{
"data": {
"status": "initiated",
"payment_url": "https://app.so-amtar.com/pay/checkout/0e85b3c2-..."
}
}Redirect the payer to
payment_url. On this SOAMTAR-hosted page (in English) they enter their Orange Money number, then confirm the request on their phone with their PIN.At the end, the payer is redirected to your
success_urlorfailed_url.You receive a
payment.success/payment.failed/payment.cancelledwebhook exactly as with a direct integration.
When to use the hosted checkout
| Case | Recommended choice |
|---|---|
| Simple e-commerce site where you already collect the phone number | Direct API with provider and phone |
| You do not want to handle the payer's number | Hosted checkout |
| Native mobile app | Direct API + native screen |
| Shared payment link (WhatsApp, SMS) | Payment link from the dashboard |
| Integration without a backend | Hosted checkout through a payment link |
Customisation
Dashboard → Checkout → Branding:
- Logo
- Primary colour
- Welcome text
- Terms and legal notice URLs
Payment links
For a reusable, shareable link, create it from Dashboard → Payment links. Each visit opens a hosted checkout.
Security
payment_urlcontains a non-guessable transaction id (cryptographic entropy).- The link is valid until the configured expiry window.
- No account needed for the payer (guest payment).
- Status polling from the page uses a dedicated, rate-limited endpoint.