Call any endpoint with your API keys — no Postman required. Open API playground

Sierra Leone Guide

Collect and send money in Sierra Leone using Orange on the same MarzPay APIs. Use country: "SL", SLE amounts, and +232 phones.

Before you start

  1. Create API keys in the dashboard. Authenticate with HTTP Basic: Authorization: Basic base64(api_key:api_secret). See Getting Started.
  2. Ask a superadmin to enable the Sierra Leone wallet for your business.
  3. Subscribe to Sierra Leone Orange collection and/or disbursement services in the marketplace.
  4. Set a webhook URL (or pass callback_url on each request). Final status is completed or failed only.

Sierra Leone essentials

  • Always send country: "SL" so the Sierra Leone wallet is used
  • Use amounts in SLE. Optional currency: "SLE" is accepted
  • Phones must be E.164: Orange +232… (8 national digits, e.g. +23276123456)
  • Same endpoints: POST /collect-money and POST /send-money
  • reference must be a UUID you generate
  • Provider is auto-detected from the phone (Orange). Webhooks use that network name (e.g. orange), not a gateway name
  • Typical minimums start around SLE 10 (confirm your business limits)
  • Published fees: collection 2.5% (min SLE 1), disbursement 2.5% (min SLE 1) — see pricing

Use the new leone (SLE), not the old SLL code.

Collect money (Sierra Leone)

Request payment from a customer’s Orange wallet. The customer approves on their phone; you receive a webhook when the collection completes or fails.

  1. POST /collect-money with amount, +232 phone, country: "SL", UUID reference
  2. Transaction starts as pending / processing
  3. Customer authorises the PIN prompt
  4. Webhook/callback settles to completed or failed
  5. Optional: poll GET /collect-money/{uuid} if you need a status safety net

Optional metadata — send up to 10 objects. Echoed on create (data.collection.metadata) and on webhooks (top-level metadata).

"metadata": [
  { "orderId": "ORD-123456789" },
  { "customerId": "customer@email.com", "isPII": true }
]

Example request

curl --location 'https://demo-wallet.wearemarz.com/api/v1/collect-money' \
--header 'Authorization: Basic YOUR_API_CREDENTIALS' \
--form 'phone_number="+23276123456"' \
--form 'amount="50"' \
--form 'country="SL"' \
--form 'currency="SLE"' \
--form 'reference="123e4567-e89b-12d3-a456-426614174000"' \
--form 'description="Payment for services"' \
--form 'callback_url="https://your-app.com/webhook"' \
--form 'metadata=[{"orderId":"ORD-123456789"},{"customerId":"customer@email.com","isPII":true}]'

Example response

{
  "status": "success",
  "message": "Collection initiated successfully.",
  "data": {
    "transaction": {
      "uuid": "4e7fb3fa-c13a-4b05-8acd-cf60ff68cb94",
      "reference": "123e4567-e89b-12d3-a456-426614174000",
      "status": "processing",
      "provider_reference": null
    },
    "collection": {
      "amount": {
        "formatted": "50.00",
        "raw": 50,
        "currency": "SLE"
      },
      "provider": "orange",
      "phone_number": "+23276123456",
      "mode": "live"
    }
  }
}

Send money (Sierra Leone)

Disburse to a Orange wallet. You receive a webhook when the payout completes or fails.

  1. POST /send-money with amount, +232 phone, country: "SL", UUID reference
  2. The network pays the recipient
  3. Webhook settles to completed or failed
  4. Optional: poll GET /send-money/{uuid}

Example request

curl --location 'https://demo-wallet.wearemarz.com/api/v1/send-money' \
--header 'Authorization: Basic YOUR_API_CREDENTIALS' \
--form 'phone_number="+23276123456"' \
--form 'amount="50"' \
--form 'country="SL"' \
--form 'currency="SLE"' \
--form 'description="Payout to customer"' \
--form 'callback_url="https://your-app.com/webhook"' \
--form 'reference="123e4567-e89b-12d3-a456-426614174001"' \
--form 'metadata=[{"orderId":"ORD-123456789"},{"customerId":"customer@email.com","isPII":true}]'

Example response

{
  "status": "success",
  "message": "Send money initiated successfully.",
  "data": {
    "transaction": {
      "uuid": "4e7fb3fa-c13a-4b05-8acd-cf60ff68cb94",
      "reference": "123e4567-e89b-12d3-a456-426614174001",
      "status": "processing"
    },
    "disbursement": {
      "amount": {
        "formatted": "50.00",
        "raw": 50,
        "currency": "SLE"
      },
      "provider": "orange",
      "phone_number": "+23276123456",
      "mode": "live"
    }
  }
}

Payment links (Sierra Leone)

Create a shareable /pay/{uuid} page. Customers enter a local Sierra Leone number and approve the PIN prompt. Same webhook shape as collect-money.

curl --location 'https://demo-wallet.wearemarz.com/api/v1/payment-links' \
--header 'Authorization: Basic YOUR_API_CREDENTIALS' \
--header 'Content-Type: application/json' \
--data '{
  "title": "Sierra Leone payment",
  "amount": 50,
  "country": "SL",
  "currency": "SLE",
  "is_fixed": true,
  "callback_url": "https://your-app.com/webhook"
}'

Share data.payment_url. Full fields: Payment Links API.

Webhooks

Sierra Leone uses the same webhook envelope as Uganda and Kenya. Currency is SLE. Provider is the network (orange), not a gateway name. Match your order with transaction.reference (the UUID you sent).

Collection completed

{
  "event_type": "collection.completed",
  "transaction": {
    "uuid": "transaction-uuid",
    "reference": "123e4567-e89b-12d3-a456-426614174000",
    "status": "completed",
    "amount": { "formatted": "50.00", "raw": 50, "currency": "SLE" },
    "provider": "orange",
    "phone_number": "+23276123456"
  },
  "collection": {
    "provider": "orange",
    "phone_number": "+23276123456",
    "amount": { "formatted": "50.00", "raw": 50, "currency": "SLE" },
    "mode": "live",
    "provider_transaction_id": "ABC123"
  },
  "metadata": [
    { "orderId": "ORD-123456789" }
  ]
}

Send money completed

{
  "event_type": "disbursement.completed",
  "transaction": {
    "uuid": "transaction-uuid",
    "reference": "123e4567-e89b-12d3-a456-426614174001",
    "status": "completed",
    "amount": { "formatted": "50.00", "raw": 50, "currency": "SLE" },
    "provider": "orange",
    "phone_number": "+23276123456"
  },
  "disbursement": {
    "provider": "orange",
    "phone_number": "+23276123456",
    "amount": { "formatted": "50.00", "raw": 50, "currency": "SLE" },
    "mode": "live",
    "provider_transaction_id": "ABC123"
  }
}

Failed outcomes use collection.failed / disbursement.failed with the same envelope. Signing and more examples: Webhooks guide.

Check status

Callbacks are primary. To poll MarzPay (not the network directly):

  • GET https://demo-wallet.wearemarz.com/api/v1/collect-money/{uuid}
  • GET https://demo-wallet.wearemarz.com/api/v1/send-money/{uuid}

Those endpoints return the local MarzPay transaction. Status updates when the webhook arrives.

Not available for Sierra Leone yet

These products remain Uganda-focused:

Related guides

Chat on WhatsApp