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)

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

Pricing

Fees come from the public pricing page. Custom business rates may differ.

Network Collections Disbursements
Orange 4.3% Successful collections only 3.15% Successful payouts only

See full Sierra Leone pricing →

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://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://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://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://wallet.wearemarz.com/api/v1/collect-money/{uuid}
  • GET https://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