---
title: "Get Recipients API Reference"
description: "Retrieve the list of saved beneficiaries for a DMT-Levin sender."
canonical: "https://eps.eko.in/docs/dmt-levin-get-recipients"
---


> **Canonical URL:** https://eps.eko.in/docs/dmt-levin-get-recipients
> This is a machine-readable Markdown version of the page for AI agents and LLMs. The primary (HTML) version lives at the canonical URL above.

# Get Recipients API Reference

`GET https://staging.eko.in/ekoapi/v3/customer/payment/dmt-levin/sender/{customer_id}/recipients`

Retrieve the list of saved beneficiaries for a DMT-Levin sender.

> [!WARNING]
> The UAT / Sandbox environment is not available for this API — requests to `https://staging.eko.in/ekoapi/v3` return an error response. Test it in Production.

Returns all recipients (beneficiaries) registered under the sender's DMT-Levin account, including each recipient's name, IFSC, beneficiary ID and recipient ID. Use this before initiating a transfer — if the desired recipient already exists you can use their recipient_id directly, skipping Add Recipient.

> View product & pricing details: [Domestic Money Transfer (DMT)](https://eps.eko.in/products/dmt-api.md)

## Path parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| customer_id | string | yes | Sender's 10-digit mobile number. e.g. 8969622436 |

## Query parameters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| initiator_id | string | yes | Registered mobile number of the API user (see Platform Credentials). e.g. 9962981729 |
| client_ref_id | string | no | Unique reference ID per API call, generated by your system (10–20 characters; 10 recommended). The SDKs generate one for every non-GET call when you don't. e.g. 2026010100123456789 |
| user_code | string | yes | User code value of the retailer from whom the request is coming (sent as a query parameter). e.g. 32515001 |
| additional_info | integer | no | Send a fixed value of 1 (sent as a query parameter). e.g. 1 |

## Headers

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| developer_key | string | yes | Static API key issued to your account after KYC. |
| secret-key | string | yes | Dynamic per-request signature: base64(HMAC-SHA256(timestamp, base64(access_key))). |
| secret-key-timestamp | string | yes | Current time in milliseconds since UNIX epoch, used to compute secret-key. Must match server time. |
| content-type | string | yes | application/json e.g. application/json |

## Response

⭐ marks fields highlighted as verifiable.

| Field | Type | Description |
| --- | --- | --- |
| status | number | Primary success indicator (0 = success). |
| message | string | Human-readable response / error message. |
| response_status_id | number | UI display hint only (-1/0 success, 1 failure, 2 initiated, 3 refund initiated, 4 refunded). Never branch on it — use `status` (and `tx_status` for financial APIs), or `response_type_id` where documented. |
| response_type_id | number | A unique id for every possible response shape (success or error) — useful for client logic branching and analytics. |
| data | object | API-specific response payload. |
| data.pan_required | number | PAN requirement flag for the sender. |
| data.remaining_limit_before_pan_required | number | Amount the sender can still transfer before PAN becomes mandatory (INR). |
| data.is_insured | string | Insurance flag for the sender. |
| data.recipient_list | array | Registered beneficiaries for this sender. |
| data.recipient_list.recipient_id ⭐ | number | Recipient identifier used to send money. |
| data.recipient_list.beneficiary_id | number | Beneficiary identifier (may be null). |
| data.recipient_list.recipient_name ⭐ | string | Beneficiary name. |
| data.recipient_list.recipient_mobile | string | Beneficiary mobile number. |
| data.recipient_list.bank | string | Beneficiary bank name. |
| data.recipient_list.ifsc | string | Beneficiary bank IFSC code. |
| data.recipient_list.account | string | Masked beneficiary bank account number. |
| data.recipient_list.account_type | string | Type of the beneficiary account. |
| data.recipient_list.recipient_id_type | string | How the recipient is identified. |
| data.recipient_list.ifsc_status | number | Whether the IFSC is valid/active (1 = valid). |
| data.recipient_list.is_verified | number | Whether the account has been penny-drop verified (1 = verified). |
| data.recipient_list.is_self_account | string | Whether the account belongs to the sender (1 = self). |
| data.recipient_list.is_otp_required | string | Whether an OTP is required to transact to this recipient. |
| data.recipient_list.channel | number | Transfer channel for this recipient. |
| data.recipient_list.allowed_channel | number | Channel allowed for transfers to this recipient. |
| data.recipient_list.available_channel | number | Channel currently available for this recipient. |
| data.recipient_list.imps_inactive_reason | string | Reason IMPS is inactive for this recipient, if any. |
| data.recipient_list.pipes | object | Available settlement pipes for this recipient, keyed by pipe id. |

## Response types

Branch on `response_type_id` to decide the next call:

| response_type_id | Meaning | Next step |
| --- | --- | --- |
| 23 | Recipient list returned — proceed to Send Transaction OTP | [dmt-levin-send-otp](https://eps.eko.in/docs/dmt-levin-send-otp.md) |

## Example response

`response_type_id` `23` — Recipient list returned — proceed to Send Transaction OTP. Next step: [dmt-levin-send-otp](https://eps.eko.in/docs/dmt-levin-send-otp.md).

```json
{
  "response_status_id": 0,
  "data": {
    "pan_required": 2,
    "recipient_list": [
      {
        "channel_absolute": 0,
        "available_channel": 0,
        "account_type": "Bank Account",
        "ifsc_status": 1,
        "is_self_account": "0",
        "channel": 0,
        "is_imps_scheduled": 0,
        "recipient_id_type": "acc_ifsc",
        "imps_inactive_reason": "",
        "allowed_channel": 0,
        "is_verified": 0,
        "beneficiary_id": 40378,
        "bank": "Kotak Mahindra Bank",
        "is_otp_required": "0",
        "recipient_mobile": "9999999990",
        "recipient_name": "Aditya",
        "ifsc": "KKBK0000878",
        "account": "1XXXXXX90657",
        "pipes": {
          "3": {
            "pipe": 3,
            "status": 1
          }
        },
        "recipient_id": 10018839,
        "is_rblbc_recipient": 1
      },
      {
        "channel_absolute": 2,
        "available_channel": 2,
        "account_type": "Bank Account",
        "ifsc_status": 1,
        "is_self_account": "0",
        "channel": 2,
        "is_imps_scheduled": 0,
        "recipient_id_type": "acc_ifsc",
        "imps_inactive_reason": "",
        "allowed_channel": 2,
        "is_verified": 0,
        "beneficiary_id": null,
        "bank": "State Bank of India",
        "is_otp_required": "0",
        "recipient_mobile": "6888888886",
        "recipient_name": "ABCD",
        "ifsc": "SBIN00005656",
        "account": "43XXXXXXXXX45",
        "pipes": {
          "3": {
            "pipe": 3,
            "status": 1
          }
        },
        "recipient_id": 10065177,
        "is_rblbc_recipient": 1
      }
    ],
    "remaining_limit_before_pan_required": 50000,
    "is_insured": ""
  },
  "response_type_id": 23,
  "message": "Success",
  "status": 0
}
```
