> ## Documentation Index
> Fetch the complete documentation index at: https://developer.me-cash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Collection webhook

# 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`.

<Tip>Always [verify the webhook signature](/webhook/webhooks-signature-verification) before processing events. See [other webhook events](/webhook/payout-webhook) for payout notifications.</Tip>

* **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

```json collection.initiated theme={null}
{
  "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

```json collection.completed theme={null}
{
  "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

| **Field**                   | **Type** | **Description**                                                     |
| :-------------------------- | :------- | :------------------------------------------------------------------ |
| `event`                     | string   | The name of the event that occurred (e.g., "collection.completed"). |
| `data.id`                   | string   | Unique identifier for the transaction.                              |
| `data.referenceNumber`      | string   | Unique reference number assigned to the transaction.                |
| `data.amount`               | string   | The total gross amount of the transaction.                          |
| `data.paymentMethod`        | string   | The method used for payment (e.g., `MOBILE_MONEY`).                 |
| `data.settlementAmount`     | string   | The final amount settled after deducting all fees.                  |
| `data.type`                 | string   | The type of transaction (e.g., "FUNDING").                          |
| `data.state`                | string   | The final state of the transaction (e.g., "COMPLETED").             |
| `data.destination`          | string   | The destination of the funds (e.g., "RW wallet").                   |
| `data.source.provider`      | string   | The mobile money operator (e.g., "MTN\_MOMO\_RWA").                 |
| `data.source.accountNumber` | string   | The customer phone number or account identifier.                    |
| `data.fee.vat`              | string   | The Value Added Tax portion of the fee.                             |
| `data.fee.stampDuty`        | string   | The stamp duty portion of the fee.                                  |
| `data.fee.base`             | string   | The base fee for the transaction.                                   |
| `data.created`              | string   | ISO 8601 timestamp of when the transaction was created.             |
| `data.processed`            | string   | ISO 8601 timestamp of when the transaction was processed.           |

## Momo Collections Webhook

```JSON theme={null}
{
    "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

| **Field**                                | **Type** | **Description**                                |
| :--------------------------------------- | :------- | :--------------------------------------------- |
| `message`                                | string   | The message returned by the API.               |
| `status`                                 | string   | The status of the request.                     |
| `data`                                   | object   | The data returned by the API.                  |
| `data.id`                                | string   | The ID of the webhook event.                   |
| `data.name`                              | string   | The name of the webhook event.                 |
| `data.mode`                              | string   | The mode of the webhook event.                 |
| `data.state`                             | string   | The state of the webhook event.                |
| `data.notification`                      | object   | The notification details of the webhook event. |
| `data.notification.url`                  | string   | The URL of the webhook event.                  |
| `data.response`                          | object   | The response details of the webhook event.     |
| `data.response.duration`                 | string   | The duration of the webhook event.             |
| `data.response.code`                     | string   | The response code of the webhook event.        |
| `data.payload`                           | object   | The payload of the webhook event.              |
| `data.payload.event`                     | string   | The event name of the webhook event.           |
| `data.payload.data`                      | object   | The data of the webhook event.                 |
| `data.payload.data.id`                   | string   | The ID of the webhook event.                   |
| `data.payload.data.referenceNumber`      | string   | The reference number of the webhook event.     |
| `data.payload.data.amount`               | string   | The amount of the webhook event.               |
| `data.payload.data.settlementAmount`     | string   | The settlement amount of the webhook event.    |
| `data.payload.data.type`                 | string   | The type of the webhook event.                 |
| `data.payload.data.state`                | string   | The state of the webhook event.                |
| `data.payload.data.paymentMethod`        | string   | The payment method of the webhook event.       |
| `data.payload.data.destination`          | string   | The destination of the webhook event.          |
| `data.payload.data.source`               | object   | The source of the webhook event.               |
| `data.payload.data.source.bankName`      | string   | The bank name of the webhook event.            |
| `data.payload.data.source.accountName`   | string   | The account name of the webhook event.         |
| `data.payload.data.source.accountNumber` | string   | The account number of the webhook event.       |
| `data.payload.data.source.provider`      | string   | The provider of the webhook event.             |
| `data.payload.data.fee`                  | object   | The fee of the webhook event.                  |
| `data.payload.data.fee.vat`              | string   | The VAT of the webhook event.                  |
| `data.payload.data.fee.stampDuty`        | string   | The stamp duty of the webhook event.           |
| `data.payload.data.fee.base`             | string   | The base fee of the webhook event.             |
| `data.payload.data.created`              | string   | The created timestamp of the webhook event.    |
| `data.payload.data.processed`            | string   | The processed timestamp of the webhook event.  |
| `data.created`                           | string   | The created timestamp of the webhook event.    |
| `data.processed`                         | string   | The processed timestamp of the webhook event.  |

## Momo Payouts Webhook

meCash sends webhook notifications for mobile money payouts. Subscribe to these events to track the lifecycle of your payouts.

<Tabs>
  <Tab title="payout.completed">
    This event is triggered when a payout is successfully processed and the funds have been delivered to the recipient.

    ```json theme={null}
    {
      "event": "payout.completed",
      "data": {
        "id": "5bab8c78-d3c1-4f91-88fd-6e81700aa97f",
        "reason": "Refund",
        "remark": "Testing",
        "referenceNumber": "009H8DYVZES86",
        "type": "SEND",
        "state": "COMPLETED",
        "quote": {
          "id": "7c8eb365-285c-4b75-bcc8-xxxxxxxx",
          "paymentChannel": "MOBILE_MONEY",
          "source": {
            "currency": "RWF",
            "country": "RW",
            "amount": "50.00"
          },
          "target": {
            "currency": "RWF",
            "country": "RW",
            "amount": "50.00"
          },
          "rate": "1.0000",
          "fee": {
            "amount": "0.600000",
            "stampDuty": "0.000000"
          },
          "summary": {
            "total": "50.60"
          }
        },
        "recipient": {
          "name": "Ejiro Dare",
          "account": {
            "accountNumber": "+25079137xxxx",
            "mobileProvider": "MTN_MOMO_RWA"
          }
        },
        "created": "2026-05-08T15:05:09.040130Z",
        "processed": "2026-05-08T15:06:58.208062455Z"
      }
    }
    ```
  </Tab>

  <Tab title="payout.pending">
    This event is triggered when a payout is initiated and is currently being processed by the network.

    ```json theme={null}
    {
      "event": "payout.pending",
      "data": {
        "id": "5bab8c78-d3c1-4f91-88fd-6e81700aa97f",
        "reason": "Refund",
        "remark": "Testing",
        "referenceNumber": "009H8DYVZES86",
        "type": "SEND",
        "state": "PENDING",
        "quote": {
          "id": "7c8eb365-285c-4b75-bcc8-xxxxxxxx",
          "paymentChannel": "MOBILE_MONEY",
          "source": {
            "currency": "RWF",
            "country": "RW",
            "amount": "50.00"
          },
          "target": {
            "currency": "RWF",
            "country": "RW",
            "amount": "50.00"
          },
          "rate": "1.000000000000",
          "fee": {
            "amount": "0.6000",
            "stampDuty": "0.00"
          },
          "summary": {
            "total": "50.60"
          }
        },
        "recipient": {
          "name": "Ejiro Dare",
          "account": {
            "accountNumber": "+25079137xxxx",
            "mobileProvider": "MTN_MOMO_RWA"
          }
        },
        "created": "2026-05-08T15:05:09.040129870Z",
        "processed": "2026-05-08T15:05:09.040129870Z"
      }
    }
    ```
  </Tab>

  <Tab title="payout.refund">
    This event is triggered if a payout fails at the network level and the funds are returned to your balance.

    ```json theme={null}
    {
      "event": "payout.refund",
      "data": {
        "id": "33bb4d10-60ac-4cd4-bcc0-bb084bf600ef",
        "remark": "RSVL-VKWQYVUK5O49V",
        "referenceNumber": "BNO2PZ2H2YWBW",
        "type": "REFUND",
        "state": "REFUNDED",
        "quote": {
          "id": "c299c608-128c-4d2a-a67e-e74fa153cbbf",
          "paymentChannel": "MOBILE_MONEY",
          "source": {
            "currency": "RWF",
            "country": "RW",
            "amount": "20.00"
          },
          "target": {
            "currency": "RWF",
            "country": "RW",
            "amount": "20.00"
          },
          "rate": "1.0000",
          "fee": {
            "amount": "0.240000",
            "stampDuty": "0.000000"
          },
          "summary": {
            "total": "20.24"
          }
        },
        "recipient": {
          "name": "Ejiro Dare",
          "account": {
            "accountNumber": "+25079137xxxx",
            "mobileProvider": "MTN_MOMO_RWA"
          }
        },
        "created": "2026-05-08T14:51:21.599289189Z",
        "processed": "2026-05-08T14:51:21.599289189Z"
      }
    }
    ```
  </Tab>

  <Tab title="payout.failed">
    This event is triggered when a payout fails before reaching the recipient.

    ```json theme={null}
    {
      "event": "payout.failed",
      "data": {
        "id": "e634e74b-c5ca-47ee-837d-c2a95ca4b9ea",
        "reason": "Refund",
        "remark": "Testing",
        "referenceNumber": "VKWQYVUK5O49V",
        "type": "SEND",
        "state": "FAILED",
        "quote": {
          "id": "c299c608-128c-4d2a-a67e-e74fa153cbbf",
          "paymentChannel": "MOBILE_MONEY",
          "source": {
            "currency": "RWF",
            "country": "RW",
            "amount": "20.00"
          },
          "target": {
            "currency": "RWF",
            "country": "RW",
            "amount": "20.00"
          },
          "rate": "1.0000",
          "fee": {
            "amount": "0.240000",
            "stampDuty": "0.000000"
          },
          "summary": {
            "total": "20.24"
          }
        },
        "recipient": {
          "name": "Ejiro Dare",
          "account": {
            "accountNumber": "+25079137xxxx",
            "mobileProvider": "MTN_MOMO_RWA"
          }
        },
        "created": "2026-05-08T13:59:57.262053Z",
        "processed": "2026-05-08T13:59:57.262053Z"
      }
    }
    ```
  </Tab>
</Tabs>
