Skip to main content

Mobile money collection webhook

This event notifies you about the status of a collection (funding) transaction. Collections follow a lifecycle with different states: collection.initiated, collection.processing, collection.completed, and collection.failed.
Always verify the webhook signature before processing events. See other webhook events for payout notifications.
  • Initiated: The request has been successfully sent to the provider.
  • Processing: The customer has been notified and we are awaiting authorization.
  • Completed: The funds have been successfully collected and added to the wallet.
  • Failed: The collection could not be completed.

Sample Payloads

collection.initiated

collection.initiated
{
  "event": "collection.initiated",
  "data": {
    "id": "5ded2ca9-888a-4ae2-b1e6-15f6252750f5",
    "referenceNumber": "RAN3SO3TUFMJA",
    "amount": "100.00",
    "type": "FUNDING",
    "state": "INITIATED",
    "paymentMethod": "MOBILE_MONEY",
    "destination": "RW wallet",
    "source": {
      "bankName": null,
      "accountNumber": "+250123******",
      "provider": "MTN_MOMO_RWA"
    },
    "created": "2026-02-13T12:46:56.834795305Z",
    "processed": "2026-02-13T12:46:56.834795305Z"
  }
}

collection.completed

collection.completed
{
  "event": "collection.completed",
  "data": {
    "id": "0e32ab5b-3324-45ef-b851-d5abfdf4a9c8",
    "referenceNumber": "IGTXZMCVYQJUA",
    "amount": "50.00",
    "settlementAmount": "36.00",
    "type": "FUNDING",
    "state": "COMPLETED",
    "paymentMethod": "MOBILE_MONEY",
    "destination": "RW wallet",
    "source": {
      "bankName": "MTN_MOMO_RWA",
      "accountNumber": "250123******",
      "provider": "MTN_MOMO_RWA"
    },
    "fee": {
      "vat": "2.00",
      "stampDuty": "2.00",
      "base": "10.00"
    },
    "created": "2026-02-13T12:46:31.789506Z",
    "processed": "2026-02-13T12:46:31.789506Z"
  }
}

Payload Breakdown

FieldTypeDescription
eventstringThe name of the event that occurred (e.g., “collection.completed”).
data.idstringUnique identifier for the transaction.
data.referenceNumberstringUnique reference number assigned to the transaction.
data.amountstringThe total gross amount of the transaction.
data.paymentMethodstringThe method used for payment (e.g., MOBILE_MONEY).
data.settlementAmountstringThe final amount settled after deducting all fees.
data.typestringThe type of transaction (e.g., “FUNDING”).
data.statestringThe final state of the transaction (e.g., “COMPLETED”).
data.destinationstringThe destination of the funds (e.g., “RW wallet”).
data.source.providerstringThe mobile money operator (e.g., “MTN_MOMO_RWA”).
data.source.accountNumberstringThe customer phone number or account identifier.
data.fee.vatstringThe Value Added Tax portion of the fee.
data.fee.stampDutystringThe stamp duty portion of the fee.
data.fee.basestringThe base fee for the transaction.
data.createdstringISO 8601 timestamp of when the transaction was created.
data.processedstringISO 8601 timestamp of when the transaction was processed.

Momo Collections Webhook

{
    "message": "webhook event log fetched successfully",
    "status": "success",
    "data": {
        "id": "69caf5d6-4d0f-49e1-997d-b09b0cc91d9a",
        "name": "collection.completed",
        "mode": "LIVE",
        "state": "FAILED",
        "notification": {
            "url": "https://webhook.site/1bb210a0-626b-47c9-a38e-71b29fdef40d"
        },
        "response": {
            "duration": "67",
            "code": "500"
        },
        "payload": {
            "event": "collection.completed",
            "data": {
                "id": "b5c0b6c0-3cec-4677-b15b-4035df4ba8b0",
                "referenceNumber": "TTJJKUWZEXBOG",
                "amount": "200.00",
                "settlementAmount": "186.00",
                "type": "FUNDING",
                "state": "COMPLETED",
                "paymentMethod": "MOBILE_MONEY",
                "destination": "RW wallet",
                "source": {
                    "bankName": "MTN_MOMO_RWA",
                    "accountName": null,
                    "accountNumber": null,
                    "provider": null
                },
                "fee": {
                    "vat": "2.00",
                    "stampDuty": "2.00",
                    "base": "10.00"
                },
                "created": "2026-03-26T10:40:25.758487Z",
                "processed": "2026-03-26T10:40:25.758487Z"
            }
        },
        "created": "2026-03-26T10:40:31.841388Z",
        "processed": "2026-03-26T10:40:31.977505Z"
    }
}

Payload Breakdown

FieldTypeDescription
messagestringThe message returned by the API.
statusstringThe status of the request.
dataobjectThe data returned by the API.
data.idstringThe ID of the webhook event.
data.namestringThe name of the webhook event.
data.modestringThe mode of the webhook event.
data.statestringThe state of the webhook event.
data.notificationobjectThe notification details of the webhook event.
data.notification.urlstringThe URL of the webhook event.
data.responseobjectThe response details of the webhook event.
data.response.durationstringThe duration of the webhook event.
data.response.codestringThe response code of the webhook event.
data.payloadobjectThe payload of the webhook event.
data.payload.eventstringThe event name of the webhook event.
data.payload.dataobjectThe data of the webhook event.
data.payload.data.idstringThe ID of the webhook event.
data.payload.data.referenceNumberstringThe reference number of the webhook event.
data.payload.data.amountstringThe amount of the webhook event.
data.payload.data.settlementAmountstringThe settlement amount of the webhook event.
data.payload.data.typestringThe type of the webhook event.
data.payload.data.statestringThe state of the webhook event.
data.payload.data.paymentMethodstringThe payment method of the webhook event.
data.payload.data.destinationstringThe destination of the webhook event.
data.payload.data.sourceobjectThe source of the webhook event.
data.payload.data.source.bankNamestringThe bank name of the webhook event.
data.payload.data.source.accountNamestringThe account name of the webhook event.
data.payload.data.source.accountNumberstringThe account number of the webhook event.
data.payload.data.source.providerstringThe provider of the webhook event.
data.payload.data.feeobjectThe fee of the webhook event.
data.payload.data.fee.vatstringThe VAT of the webhook event.
data.payload.data.fee.stampDutystringThe stamp duty of the webhook event.
data.payload.data.fee.basestringThe base fee of the webhook event.
data.payload.data.createdstringThe created timestamp of the webhook event.
data.payload.data.processedstringThe processed timestamp of the webhook event.
data.createdstringThe created timestamp of the webhook event.
data.processedstringThe processed timestamp of the webhook event.