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


> **Canonical URL:** https://eps.eko.in/docs/dmt-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-fino/sender/{customer_id}/recipients`

Retrieve the list of saved beneficiaries for a DMT sender.

**Behaviour**

- **Read-only**: Changes nothing; only returns data.

Returns all beneficiaries (recipients) previously registered under the sender's DMT-Fino account. Use this before initiating a transfer — if the desired beneficiary already exists you can use their recipient_id directly to send money, 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. 9123456789 |

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

## 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.recipient_list | array | Registered beneficiaries for this sender. |
| data.recipient_list.recipient_id ⭐ | number | Identifier used in the Send Transaction OTP and Execute Transaction APIs. |
| data.recipient_list.beneficiary_id | number | Beneficiary identifier (mirrors recipient_id). |
| data.recipient_list.bank_recipient_id | number | Bank-side recipient identifier. |
| 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 | Beneficiary bank account number. |
| data.recipient_list.account_type | string | Type of the beneficiary account. |
| 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_otp_required | string | Whether an OTP is required to transact to this recipient. |
| 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 |
| --- | --- | --- |
| 22 | No recipients — add one before transacting | [dmt-add-recipient](https://eps.eko.in/docs/dmt-add-recipient.md) |
| 23 | Recipients found — proceed to Send Transaction OTP | [dmt-send-otp](https://eps.eko.in/docs/dmt-send-otp.md) |

## Example response

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

```json
{
  "status": 0,
  "response_status_id": 0,
  "message": "Success",
  "response_type_id": 23,
  "data": {
    "pan_required": 2,
    "recipient_list": [
      {
        "recipient_id": 117015428,
        "beneficiary_id": 117015428,
        "bank_recipient_id": 117015428,
        "recipient_name": "yashwant basnett",
        "recipient_mobile": "9002331157",
        "bank": "State Bank of India",
        "ifsc": "SBIN0007515",
        "account": "38759149196",
        "account_type": "Bank Account",
        "ifsc_status": 1,
        "is_verified": 0,
        "is_otp_required": "0",
        "pipes": {
          "3": {
            "pipe": 3,
            "status": 1
          }
        }
      }
    ],
    "remaining_limit_before_pan_required": 50000
  }
}
```

## Error scenarios

| Status | response_type_id | Scenario |
| --- | --- | --- |
| 200 | `22` — No recipients — add one before transacting | No recipients registered yet — add one |
| 200 | `-1` | Customer does not exist in system |
