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

# Initiate Mobile Money Inflow

> Trigger a mobile money collection request from a customer

<Card title="Initiate Mobile Money Inflow" icon="mobile" href="/nomba-api-reference/global-collections/initiate-mobile-money-inflow" />

# `POST /v1/global-collection/inflow/initiate`

Trigger a mobile money collection from your customer. This endpoint initiates an inflow request through the supported mobile money flow, prompting the customer to complete the payment on their end.

<CodeGroup>
  ```bash Request theme={null}
  curl --request POST \
    --url https://api.nomba.com/v1/global-collection/inflow/initiate \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --header 'accountId: <accountId>' \
    --data '{
      "phoneNumber": "0980802xxx",
      "callbackUrl": "https://your-server.com/webhook/collection",
      "amount": 10,
      "currency": "CDF",
      "topupVendor": "AIRTEL",
      "idempotencyKey": "your-unique-key-here"
    }'
  ```

  ```json Response theme={null}
  {
    "code": "00",
    "description": "Successful",
    "data": {
      "transactionReference": "a822e327-4bcd-40ec-ac61-ed3622eac000",
      "status": "PENDING",
      "message": "success",
      "idempotencyKey": "your-unique-key-here"
    }
  }
  ```
</CodeGroup>

#### Idempotency

This endpoint supports idempotent requests. You can pass a client-generated `idempotencyKey` in the request body to safely retry a request without risk of duplicate charges. If you omit the key, the server generates a UUID automatically and returns it in the response.

Store the `idempotencyKey` from the response and include it on any retry for the same operation. If two requests carrying the same `idempotencyKey` arrive concurrently, the second request receives HTTP 409 with the message "Request with this idempotency key is currently being processed; please retry."

#### Request body

<ParamField body="phoneNumber" type="string" required>
  The customer's mobile money phone number.
</ParamField>

<ParamField body="callbackUrl" type="string" required>
  The URL Nomba will POST to when the transaction status changes. Must be publicly accessible.
</ParamField>

<ParamField body="amount" type="number" required>
  The amount to collect from the customer.
</ParamField>

<ParamField body="currency" type="string" required>
  ISO 4217 currency code for the collection (e.g., `CDF`).
</ParamField>

<ParamField body="topupVendor" type="string" required>
  The mobile money network provider (e.g., `AIRTEL`, `MPESA`).
</ParamField>

<ParamField body="idempotencyKey" type="string">
  A client-generated key used to safely retry the request without risk of duplicate charges. If not provided, the server generates one automatically.
</ParamField>

#### Response body

<ResponseField name="transactionReference" type="string" required>
  Unique reference for this collection. Use this with [Fetch Transaction](/docs/products/global-collections/fetch-mobile-money-transaction) to check the status.
</ResponseField>

<ResponseField name="status" type="string" required>
  Initial status of the inflow request (e.g., `PENDING`).
</ResponseField>

<ResponseField name="message" type="string">
  A message describing the outcome.
</ResponseField>

<ResponseField name="idempotencyKey" type="string">
  The idempotency key used for this request — either the value you provided or a server-generated UUID. Store this and pass it on retry.
</ResponseField>
