> For the complete documentation index, see [llms.txt](https://momojs.rewriteapi.cm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://momojs.rewriteapi.cm/reference/api-reference/client/disbursements.md).

# Disbursements

Represent Disbursements Client used for Disbursements product

| Method                                                                                        |
| --------------------------------------------------------------------------------------------- |
| *async* [`createAccessToken()`](#awaitcreate_access_token-authorization)                      |
| *async* [`getAccountBalance()`](#await-get_account_balance-authorization-target)              |
| *async* [`getAccountBalanceIn()`](#awaitget_account_balance_in-currency-authorization-target) |
| *async* [`getBasicUserInfo()`](#awaitget_basic_user_info-msisdn-authorization-target)         |
| *async* [`askUserInfo()`](#awaitask_user_info-authorization-target)                           |
| *async* [`deposit()`](#await-deposit-uuid-authorization-target-body-url_callback)             |
| *async* [`transfer()`](#await-tranfer-uuid-authorization-target-body-url_callback)            |
| *async* [`refund()`](#await-refund-uuid-authorization-target-body-url_callback)               |
| *async* [`getDepositStatus()`](#await-get_deposit_status-uuid-authorization-target)           |
| *async* [`getTransferStatus()`](#await-get_transfer_status-uuid-authorization-target)         |
| async [`getRefundStatus()`](#await-get_refund_status-uuid-authorization-target)               |
| *async* [`isActive()`](#await-isactive-account-account_type-authorization-target)             |

### *`await`*`createAccessToken( authorization )`

&#x20;  Method to create access token for disbursements user

#### Parameters :

* **authorization** (string) - a valid basic authentification token

#### Return

\[boolean, data]

{% tabs %}
{% tab title="data" %}

```json
{
  "access_token": "string",
  "token_type": "string",
  "expires_in": 0
}
```

{% endtab %}
{% endtabs %}

#### Return Type :

array

### *`await`*` ``getAccountBalance( authorization, target )`

Method to get balance for disbursements user

#### Parameters :

* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment

#### Return :

\[boolean, data]

{% tabs %}
{% tab title="data" %}

```json
{
  "availableBalance": "string",
  "currency": "string"
}
```

{% endtab %}
{% endtabs %}

#### Return Type :

array

### *`await`*` ``getAccountBalanceIn( currency, authorization, target )`

Method to get balance in specific currency for disbursements user

#### Parameters :

* **currency** (string) - A valid ISO4217 Currency
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment

#### Return :

\[boolean, data]

{% tabs %}
{% tab title="data" %}

```json
{
  "availableBalance": "string",
  "currency": "string"
}
```

{% endtab %}
{% endtabs %}

#### Return Type :

array

### *`await`*` ``getBasicUserInfo( msisdn, authorization, target )`

Method to get basic user info without consent for disbursements user

#### Parameters :

* **msisdn** (string) - The number of the user
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment

#### Return :

\[boolean, data]

{% tabs %}
{% tab title="data" %}

```json
{
  "given_name": "string",
  "family_name": "string",
  "birthdate": "string",
  "locale": "string",
  "gender": "string",
  "status": "string"
}
```

{% endtab %}
{% endtabs %}

#### Return Type:

array

### *`await`*` ``askUserInfo( authorization, target )`

Method to get user info with consent for disbursements user

#### Parameters :

* **authorization** (string) - A valld bearer authentification token
* **target** (string) - The target environment

#### Return :

\[boolean, data]

{% tabs %}
{% tab title="data" %}

```json
{
  "sub": "string",
  "name": "string",
  "given_name": "string",
  "family_name": "string",
  "middle_name": "string",
  "email": "string",
  "email_verified": true,
  "gender": "string",
  "locale": "string",
  "phone_number": "string",
  "phone_number_verified": true,
  "address": "string",
  "updated_at": 0,
  "status": "string",
  "birthdate": "string",
  "credit_score": "string",
  "active": true,
  "country_of_birth": "string",
  "region_of_birth": "string",
  "city_of_birth": "string",
  "occupation": "string",
  "employer_name": "string",
  "identification_type": "string",
  "identification_value": "string"
}
```

{% endtab %}
{% endtabs %}

#### Return Type :

array

### *`await`*` ``deposit( uuid, authorization, target, body, urlCallback )`

Method to make deposit for disbursement user

{% hint style="warning" %}
The library is only taking in charge deposit V2
{% endhint %}

#### Parameters :

* **uuid** (string) - A valid UUID version 4
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment
* **body** (Object) - A dictionnary with full detail of the payment \[*see detail below*]

{% tabs %}
{% tab title="body" %}
According to [MTN MOMO API](https://momodeveloper.mtn.com/docs/services/disbursement/operations/Deposit-V2?#requesttab1)

```json
{
  "amount": "string",
  "currency": "string",
  "externalId": "string",
  "payer": {
    "partyIdType": "MSISDN",
    "partyId": "string"
  },
  "payerMessage": "string",
  "payeeNote": "string"
}
```

{% endtab %}

{% tab title="details" %}

```json
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "string",
      "description": "Amount that will be debited from the payer account."
    },
    "currency": {
      "type": "string",
      "description": "ISO4217 Currency"
    },
    "externalId": {
      "type": "string",
      "description": "External id is used as a reference to the transaction. External id is used for reconciliation. The external id will be included in transaction history report. <br>External id is not required to be unique."
    },
    "payer": {
      "type": "object",
      "properties": {
        "partyIdType": {
          "enum": [
            "MSISDN",
            "EMAIL",
            "PARTY_CODE"
          ],
          "type": "string"
        },
        "partyId": {
          "type": "string"
        }
      },
      "description": "Party identifies a account holder in the wallet platform. Party consists of two parameters, type and partyId. Each type have its own validation of the partyId<br> MSISDN - Mobile Number validated according to ITU-T E.164. Validated with IsMSISDN<br> EMAIL - Validated to be a valid e-mail format. Validated with IsEmail<br> PARTY_CODE - UUID of the party. Validated with IsUuid"
    },
    "payerMessage": {
      "type": "string",
      "description": "Message that will be written in the payer transaction history message field."
    },
    "payeeNote": {
      "type": "string",
      "description": "Message that will be written in the payee transaction history note field."
    }
  }
}
```

{% endtab %}
{% endtabs %}

* **urlCallback** ( \[Optional] string ) - The website receiving call back

#### Return :

\[boolean, data]

#### Retrun Type :

array

### *`await`*` ``transfer( uuid, authorization, target, body, urlCallback )`

Method to transfer for disbursement user

#### Parameters :

* uuid (string) - A valid UUID version 4&#x20;
* authorization (string) - A valid bearer authentification token
* body (Object) - A dictionnary with full detail of the payment \[[*see detail below*](/reference/api-reference/body-details.md)]
* urlCallback ( \[Optional] string ) - The website receiving call back

#### Return :

\[boolean, data]

#### Return Type :

array

### *`await`*` ``getDepositStatus( uuid, authorization, target )`

Method to get a withdrawal status for collection user

#### Parameters :

* **uuid** (string) - A valid UUID version 4
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment

#### Return :

\[boolean, data]

{% tabs %}
{% tab title="data" %}
According to [MTN MOMO API](https://momodeveloper.mtn.com/docs/services/disbursement/operations/GetDepositStatus?#response200tab4)

```json
{
  "amount": "string",
  "currency": "string",
  "financialTransactionId": "string",
  "externalId": "string",
  "payer": {
    "partyIdType": "MSISDN",
    "partyId": "string"
  },
  "payerMessage": "string",
  "payeeNote": "string",
  "status": "PENDING",
  "reason": {
    "code": "PAYEE_NOT_FOUND",
    "message": "string"
  }
}
```

{% endtab %}
{% endtabs %}

#### Return Type:

array

### *`await`*` ``refund( uuid, authorization, target, body, urlCallback )`

Method to transfer for disbursement user

{% hint style="warning" %}
The library is only taking in charge only Refund V2
{% endhint %}

#### Parameters :

* **uuid** (string) - A valid UUID version 4
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment
* **body** (Object) - A dictionnary with full detail of the payment&#x20;

{% tabs %}
{% tab title="body" %}
According to [MTN MOMO API](https://momodeveloper.mtn.com/docs/services/disbursement/operations/Refund-V2?#requesttab1)

```json
{
  "amount": "string",
  "currency": "string",
  "externalId": "string",
  "payerMessage": "string",
  "payeeNote": "string",
  "referenceIdToRefund": "UUID-REQUEST-TO-PAY"
}
```

{% endtab %}

{% tab title="details" %}

```json
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "string",
      "description": "Amount that will be debited from the payer account."
    },
    "currency": {
      "type": "string",
      "description": "ISO4217 Currency"
    },
    "externalId": {
      "type": "string",
      "description": "External id is used as a reference to the transaction. External id is used for reconciliation. The external id will be included in transaction history report. <br>External id is not required to be unique."
    },
    "payerMessage": {
      "type": "string",
      "description": "Message that will be written in the payer transaction history message field."
    },
    "payeeNote": {
      "type": "string",
      "description": "Message that will be written in the payee transaction history note field."
    },
    "referenceIdToRefund": {
      "type": "string",
      "description": "Format - UUID. Recource ID of the created refund transaction. This ID is used, for example, validating the status of the‘ ’transaction generated using UUID version 4."
    }
  }
}
```

{% endtab %}
{% endtabs %}

* **urlCallback** ( \[Optional] string ) - The website receiving call back

#### Return :

\[boolean, data]

#### Return Type :

array

### *`await`*` ``getTransferStatus( uuid, authorization, target )`

Method to get transfer status for disbursement user

#### Parameters :

* **uuid** (string) - A valid UUID version 4
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment

#### Return :

\[boolean, data]

{% tabs %}
{% tab title="data" %}
According to [MTN MOMO API](https://momodeveloper.mtn.com/docs/services/disbursement/operations/GetTransferStatus?#response200tab4)

```json
{
  "amount": "string",
  "currency": "string",
  "financialTransactionId": "string",
  "externalId": "string",
  "payee": {
    "partyIdType": "MSISDN",
    "partyId": "string"
  },
  "payerMessage": "string",
  "payeeNote": "string",
  "status": "PENDING",
  "reason": {
    "code": "PAYEE_NOT_FOUND",
    "message": "string"
  }
}
```

{% endtab %}
{% endtabs %}

#### Return Type :

array

### *`await`*` ``getRefundStatus( uuid, authorization, target )`

Method to get transfer status for disbursement user

#### Parameters :

* **uuid** (string) - A valid UUID version 4
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment

#### Return :&#x20;

\[boolean, data]

{% tabs %}
{% tab title="data" %}
According to [MTN MOMO API](https://momodeveloper.mtn.com/docs/services/disbursement/operations/GetRefundStatus?#response200tab4)

```json
{
  "amount": "string",
  "currency": "string",
  "financialTransactionId": "string",
  "externalId": "string",
  "payee": {
    "partyIdType": "MSISDN",
    "partyId": "string"
  },
  "payerMessage": "string",
  "payeeNote": "string",
  "status": "PENDING",
  "reason": {
    "code": "PAYEE_NOT_FOUND",
    "message": "string"
  }
}
```

{% endtab %}
{% endtabs %}

#### Return Type :

array

### *`await`*` ``isActive( account, accountType, authorization, target )`

Method to check if an account is active for a collection user

#### Parameters :

* **account** (string) - The account target
* **accountType** (string) - Specifies the type of the party ID. Allowed values \[msisdn, email, party\_code]. default set to msisdn
* **authorization** (string) - A valid bearer authentification token
* **target** (string) - The target environment

#### Return :

\[boolean, data]

#### Return Type :

array


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://momojs.rewriteapi.cm/reference/api-reference/client/disbursements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
