Payments
Payments API
Create payment requests and verify Mobile Money transactions.
You issue an HPN code for each payment. The customer pays your MoMo number using that code as the reference. When the payment lands, Harpoon verifies it and fires your webhook.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
POST | /v1/transactions/initialize | Create a payment request |
GET | /v1/transactions | List transactions |
GET | /v1/transactions/{reference} | Get by reference |
GET | /v1/transactions/by-hpn/{hpn_code} | Get by HPN code |
GET | /v1/transactions/by-client-ref/{client_ref} | Get by your reference |
POST | /v1/transactions/{reference}/reconcile | Manual reconcile by transaction ID |
POST | /v1/transactions/{reference}/cancel | Cancel a payment request |
GET | /v1/merchant/payment-methods | List your MoMo numbers |
Statuses
| Status | Meaning |
|---|---|
CREATED | Request initialized |
PENDING | Awaiting payment |
PROCESSING | Payment detected, verifying |
SUCCESS | Verified, exact amount |
PARTIAL | Verified, customer underpaid |
OVERPAID | Verified, customer overpaid |
EXPIRED | No payment received before expiry |
FAILED | Verification failed |
MANUAL_REVIEW | Held for manual review |
REFUNDED | Refunded to customer |
CANCELLED | Cancelled |
SUCCESS, PARTIAL, and OVERPAID all fire a transaction.completed webhook. Read data.status and data.difference to disambiguate.
In this section
Initialize
Create a payment request and get an HPN code.
Hosted checkout
Redirect customers to a Harpoon-hosted page.
Retrieve
List or get a transaction by reference, HPN code, or your own ID.
Manual reconcile
Verify a payment by transaction ID when auto-match missed it.
Cancel
Cancel a pending payment request.
Payment methods
Fetch your configured MoMo numbers.