Developers

Sandbox keys, webhooks, and a charge you can retry.

The samples below are examples. They do not move money.

Talk to us at help@angwapay.com

What you actually call

Charges, payouts and refunds over TLS. Send the same key again and it is not a second charge. The sandbox never moves real money.

Sandbox keys

Try EcoCash, InnBucks, O'mari and OneMoney. No money moves.

Webhooks

A signed event when a payment settles or fails.

Idempotency

A retry with the same key is not a second charge.

Errors

A short code that tells you what to fix.

# Create a charge
curl https://api.angwapay.example/v1/charges \
  -u agp_test_••••: \
  -d amount=5000 \
  -d currency=USD \
  -d source=ecocash \
  -d phone="+263771234567"
const charge = await client.charges.create({
  amount: 5000,
  currency: 'USD',
  source: 'innbucks',
  idempotencyKey: 'order_1042'
});

// { id: "ch_01K...", status: "pending" }
// POST /your-webhook
{
  "type": "charge.succeeded",
  "data": {
    "id": "ch_01K...",
    "amount": 5000,
    "source": "omari"
  }
}
POST/v1/chargesGET/v1/charges/:idPOST/v1/payoutsPOST/v1/refunds
Then you apply

Test first. Live keys come after approval.

01

Tell us about the business

We say which documents the review needs.

02

Call the API

The samples on this page are cURL and Node. Other languages, the team will confirm.

03

Go live after approval

Nothing settles until the application is approved.

// Illustrative example
const client = new Angwapay({
  apiKey: 'agp_live_••••••••'
});

const charge = await
  client.charges.create({
    amount: 5000,
    currency: 'USD',
    source: 'ecocash'
  });

// { id: "ch_01K...", status: "succeeded" }

Send your details

You can test in the sandbox before anything is approved.