Skip to content

Your first payment in 5 minutes

You need: a Lango account (register here — sandbox keys are issued the moment you finish) and a terminal. Nothing else.

  1. Copy your test key.

    Dashboard → Developers. Test keys start with sk_test_. They can never move real money.

  2. Create a payment.

    The customer number below is a sandbox number that always approves.

    Terminal window
    curl https://api.lango.co.zw/v1/payments \
    -H "Authorization: Bearer sk_test_YOUR_KEY" \
    -H "Idempotency-Key: quickstart-001" \
    -H "Content-Type: application/json" \
    -d '{
    "amount": 10000,
    "currency": "USD",
    "method": "ecocash",
    "reference": "QUICKSTART-1",
    "customer": { "msisdn": "263771000001" }
    }'

    The response itemises every fee before anything is charged:

    {
    "id": "pay_01J8XQ7M4K...",
    "status": "awaiting_customer",
    "currency": "USD",
    "amount": 10000,
    "charged_amount": 10300,
    "merchant_net": 10000,
    "fees": [{ "type": "commission", "amount": 300, "bearer": "customer" }],
    "reference": "QUICKSTART-1",
    "created_at": "2026-09-12T09:00:00.000Z"
    }
  3. Watch it complete.

    In the sandbox, ...000001 approves after a moment. Fetch the payment:

    Terminal window
    curl https://api.lango.co.zw/v1/payments/pay_01J8XQ7M4K... \
    -H "Authorization: Bearer sk_test_YOUR_KEY"

    status is now completed. Your dashboard’s Payments page shows the same payment with its full timeline.

  4. Hear about it without polling.

    Add a webhook endpoint (Dashboard → Developers → Webhooks). Lango signs every delivery; verify the signature and you can trust the news:

    { "type": "payment.succeeded", "data": { "id": "pay_01J8XQ7M4K...", "amount": 10000 } }

That’s a working integration. Where to next: