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

MethodEndpointDescription
POST/v1/transactions/initializeCreate a payment request
GET/v1/transactionsList 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}/reconcileManual reconcile by transaction ID
POST/v1/transactions/{reference}/cancelCancel a payment request
GET/v1/merchant/payment-methodsList your MoMo numbers

Statuses

StatusMeaning
CREATEDRequest initialized
PENDINGAwaiting payment
PROCESSINGPayment detected, verifying
SUCCESSVerified, exact amount
PARTIALVerified, customer underpaid
OVERPAIDVerified, customer overpaid
EXPIREDNo payment received before expiry
FAILEDVerification failed
MANUAL_REVIEWHeld for manual review
REFUNDEDRefunded to customer
CANCELLEDCancelled

SUCCESS, PARTIAL, and OVERPAID all fire a transaction.completed webhook. Read data.status and data.difference to disambiguate.