> For the complete documentation index, see [llms.txt](https://developers.klasha.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.klasha.com/transfers/payout/tzs-payout-new-encryption.md).

# TZS Payout (new encryption)

### Summary

These APIs are used to initiate a TZS payout

| Momo Network | Service Code |
| ------------ | ------------ |
| Airtel       | AIRTEL\_TZA  |
| Tigo         | TIGO\_TZA    |
| Halotel      | HALOTEL\_TZA |
|              |              |

{% hint style="info" %}
Before you begin!

* Find your keys on the Klasha Dashboard → Settings → Generate API Keys ([here](https://dashboard.klasha.com/settings/keys))

<img src="/files/LFFicElNA6dWGpxBEdo1" alt="" data-size="original">
{% endhint %}

### Integration steps

{% content-ref url="/pages/p15ikIRu4qZuG2xRX2op" %}
[Authentication](/overview/authentication.md)
{% endcontent-ref %}

### [Encryption algorithm here](/accepting-payments/payments-api.md#encryption-algorithm)

### **Merchant Payout request**

## Make a POST call to the Merchant payout request API

<mark style="color:green;">`POST`</mark> `{{env_url}}/wallet/merchant/bank/transfer/request/v2`

You would need to pass, as a header the <mark style="color:red;">x-auth-token</mark>. This can be obtained from your merchant **dashboard → Settings → Generate API keys → Merchant public key**.

#### Headers

| Key           | Value                    |
| ------------- | ------------------------ |
| Content-Type  | application/json         |
| x-auth-token  | Your merchant public key |
| Authorization | Bearer \<token here>     |

**Request body (encrypted):**

```json
{ 
  "message": "encrypted-request-body"
}
```

**Request body (plain)**

#### Request Body

<table><thead><tr><th width="264">Name</th><th width="160">Type</th><th>Description</th></tr></thead><tbody><tr><td>country<mark style="color:red;">*</mark></td><td></td><td>Country of payout - TZ</td></tr><tr><td>serviceCode<mark style="color:red;">*</mark></td><td></td><td><p><strong>Allowed Payout types:</strong></p><p><strong>Bank</strong>: TZ-BANK-B2C</p><p><strong>Mobile Money</strong>: TZ-TIGO-B2C or TZ-AIRTEL-B2C</p></td></tr><tr><td>amount<mark style="color:red;">*</mark></td><td></td><td>Amount - 1000</td></tr><tr><td>accountName<mark style="color:red;">*</mark></td><td></td><td>Receiver's Name - John Doe</td></tr><tr><td>requestId<mark style="color:red;">*</mark></td><td>String</td><td>Unique request's reference - TZS-payout-3</td></tr><tr><td>description<mark style="color:red;">*</mark></td><td>String</td><td>Merchant's description - Payout</td></tr><tr><td>currency<mark style="color:red;">*</mark></td><td>String</td><td>Currency of payout - TZS</td></tr><tr><td>accountNumber<mark style="color:red;">*</mark></td><td>String</td><td>Receiver's account number - 255713998877</td></tr></tbody></table>

{% tabs %}
{% tab title="Plain Request" %}

```json
{
    "country": "TZ",
    "serviceCode": "TZ-TIGO-B2C",
    "amount": 1000,
    "accountName": "John Doe",
    "accountNumber": "255713998877",
    "currency": "TZS",
    "requestId": "TZS-payout-3",
    "description": "Payout",
}
```

{% endtab %}

{% tab title="Second Tab" %}

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="200: OK " %}

```json
{
    "id": 694,
    "amount": 1000.00,
    "payoutStatus": "PENDING",
    "requestId": "TZS-payout-3",
    "narration": "Payout",
    "country": "TZ",
    "fee": 826.00,
    "bankCode": "TZ-TIGO-B2C",
    "bankName": "TZ-TIGO-B2C",
    "accountNumber": "255713998877",
    "accountName": "John Doe"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    "message": "A human readable error message",
    "error": "Bad Request",
    "data": null
}
```

{% endtab %}
{% endtabs %}

### **Query payout status**

Make a [call](/transfers/payout.md#polling-transfer-statuses) to fetch status of initiated payouts.
