Skip to content

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 ​

  1. Create a transaction without provider:
json
POST /v1/payments
{
  "merchant_ref": "ORDER-001",
  "amount": "150.00",
  "currency": "SLE"
}
  1. SOAMTAR returns:
json
{
  "data": {
    "status": "initiated",
    "payment_url": "https://app.so-amtar.com/pay/checkout/0e85b3c2-..."
  }
}
  1. 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.

  2. At the end, the payer is redirected to your success_url or failed_url.

  3. You receive a payment.success / payment.failed / payment.cancelled webhook exactly as with a direct integration.

When to use the hosted checkout ​

CaseRecommended choice
Simple e-commerce site where you already collect the phone numberDirect API with provider and phone
You do not want to handle the payer's numberHosted checkout
Native mobile appDirect API + native screen
Shared payment link (WhatsApp, SMS)Payment link from the dashboard
Integration without a backendHosted checkout through a payment link

Customisation ​

Dashboard → Checkout → Branding:

  • Logo
  • Primary colour
  • Welcome text
  • Terms and legal notice URLs

For a reusable, shareable link, create it from Dashboard → Payment links. Each visit opens a hosted checkout.

Security ​

  • payment_url contains 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.

SOAMTAR Payment API Documentation.