---
description: >-
  Initiate / schedule single/multiple transfers to beneficiary account, UPI
  address or credit card.
---

# Initiate/Schedule Transfer API



{% tabs %}
{% tab title="Production" %}
[ https://payout.payumoney.com/payout/payment](https://payout.payumoney.com/payout/payment)
{% endtab %}

{% tab title="Test" %}
[https://test.payumoney.com/payout/payment](https://test.payumoney.com/payout/payment)
{% endtab %}
{% endtabs %}

<div align="left"><img src="https://1034418514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M69P6LAthii_z-f9pnY%2F-M6EIEmm8E5I_fK0ZuDw%2F-M6EJaUFAXmAoVFl0wR0%2Fimage.png?alt=media&#x26;token=bc24d774-664d-4a13-97df-f7946b91fae1" alt=""></div>

## **Request Header Params**

| **Key**          |  **Description**                                   | **Data type**  | **Mandatory**  | **possible Values**     |
| ---------------- | -------------------------------------------------- | -------------- | -------------- | ----------------------- |
| Authorization    |  Access token generated earlier.                   | String         | Yes            |  Bearer {access\_token} |
| payoutMerchantId |  This is the merchant id provided while onboarding | String         | Yes            |                         |

{% hint style="info" %}
payoutMerchantId is different from payuMoneyMerchant Id, please use the correct one for seamless experience
{% endhint %}

## **Request Params**

| **Key**                            |                                                                                                                                                                                                                                              **Description**                                                                                                                                                                                                                                              | **Data type**  | **Mandatory**  | **possible Values**                                                             |   |
| ---------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -------------- | -------------- | ------------------------------------------------------------------------------- | - |
| batchId                            |                                                                                                                                                  It can be any string value. Merchant can use this value if they want process the request in batch and also what status of transfer in batch. This can be unique for a batch or across multiple request.                                                                                                                                                  | String         | yes            |                                                                                 |   |
| amount                             |                                                                                                                                                                                                                                 Amount to transfer in beneficiary account                                                                                                                                                                                                                                 | Double(20,2)   | Yes            |                                                                                 |   |
| merchantRefId                      |                                                                                                                                                                         Unique reference id generated at merchant side to distinguish between multiple transfers. Same value will be used by merchant in status check of transfer.                                                                                                                                                                        | String         | Yes            |                                                                                 |   |
| beneficiaryAccountNumber           |                                                                                                                                                                                                       Mandatory in case of IMPS and NEFT, RTGS transactions. It will have beneficiary account number                                                                                                                                                                                                      | String         | Conditional    |                                                                                 |   |
| beneficiaryIfscCode                |                                                                                                                                                                                                       Mandatory in case of IMPS and NEFT, RTGS transactions. It will have beneficiary bank ifsc code                                                                                                                                                                                                      | String         | Conditional    |                                                                                 |   |
| beneficiaryName                    |                                                                                                                                                                                                    Mandatory in case of NEFT transactions. It will have beneficiary name as per his bank account record                                                                                                                                                                                                   | String         | Conditional    |                                                                                 |   |
| beneficiaryMobile                  |                                                                                                                                                                                                                                         Beneficiary mobile number                                                                                                                                                                                                                                         | String         | No             |                                                                                 |   |
| beneficiaryEmail                   |                                                                                                                                                                                                                                             Beneficiary Email                                                                                                                                                                                                                                             | String         | No             |                                                                                 |   |
| purpose                            |                                                                                                                                                                                                                                       Purpose of doing this transfer                                                                                                                                                                                                                                      | String         | Yes            |                                                                                 |   |
| paymentType                        |                                                                                                                                                                                                                                            Mode of the payment                                                                                                                                                                                                                                            | String         | Yes            | <p>IMPS,<br>UPI,<br>NEFT, </p><p>RTGS, MASTERCARD, <br>VISA, <br>CC_PAYMENT</p> |   |
| vpa                                |                                                                                                                                                                                                             Mandatory in case of UPI transactions. It will be vpa(upi) address of beneficiary                                                                                                                                                                                                             | String         | Conditional    |                                                                                 |   |
| retry                              | <p>Default value for this will be True. We provide option to retry the transaction in some particular case.Like Beneficiary bank server down, request timeout while initiating transaction at bank. We will do 3 retries.<br>1st Retry happens after 30 min , 2nd after 1 hours of 1st Retry and 3rd after 1 hours of 2nd retry. The maximum TAT for pending transactions will be 3-4 hours in case of imps. In case of NEFT it will based on bank timing. Max it can go to next working day of bank.</p> | Boolean        | No             |                                                                                 |   |
| scheduledTime                      |                                                                                                                                                                                                          <p>Date and time on which payout has to be scheduled</p><p>Ex-  2020-10-20 15:02:11</p>                                                                                                                                                                                                          | Date           | No             | Ex-  2020-10-20 15:02:11                                                        |   |
| recipientCardNo                    |                                                                                                                                                                                                                                            Credit Card Number                                                                                                                                                                                                                                             | String         | Conditional    | Mandatory in case of paymentType cc\_payment                                    |   |
| beneficiaryId                      |                                                                                                                                                                                          Id of beneficiary to which the payout needs to be done. This value can be passed instead of other beneficiary details.                                                                                                                                                                                           | Long           | Conditional    | Mandatory if beneficiary details are not passed.                                |   |
| vpaToken                           |                                                                                                                                                                                                                         vpa token corresponding to vpa(upi) address of beneficiary                                                                                                                                                                                                                        | String         | No             |                                                                                 |   |
| <p>disableApprovalFlow</p><p></p> |                                                                                                                                                                                          This flag disables approval flow for a particular payout transaction (valid if approval flow is set to OPTIONAL)Boolean                                                                                                                                                                                          | No             | No             | false/true                                                                      |   |

## **Examples**

**Sample Request/Response for a single transfer initiation:**

Content-Type : application/json

Method : Get

**Test Environment Request Body For IMPS/NEFT/RTGS:**

```
[
 {
 "beneficiaryAccountNumber": "51234567890",
 "beneficiaryIfscCode": "HDFC0001234",
 "beneficiaryName": "Payu",
 "beneficiaryEmail": "payu@payu.in",
 "beneficiaryMobile": "9876473627",
 "purpose": "Payment from Company",
 "amount": 1234.12,
 "batchId": "1",
 "merchantRefId": "123asdfad3",
 "paymentType": "IMPS",
 "retry" : false
 }
]
```

**Test Environment Request Body For UPI**

```
[
 {
 "beneficiaryName": "Payu",
 "beneficiaryEmail": "payu@payu.in",
 "beneficiaryMobile": "9876473627",
 "purpose": "Payment from Company",
 "amount": 1234.12,
 "batchId": "1",
 "merchantRefId": "123",
 "paymentType": "UPI",
 "vpa" : "ankush.pokarana@ybl"
  "retry" : true
 }
]
```

**Test Environment Request Body For Master card payment**

```
[
 {
 "beneficiaryName": "Payu",
 "beneficiaryEmail": "payu@payu.in",
 "beneficiaryMobile": "9876473627",
 "purpose": "Payment from Company",
 "amount": 1234.12,
 "batchId": "1",
 "merchantRefId": "1234",
 "paymentType": "MASTERCARD",
 "recipientCardNo":"5291170702832"
 }
]
```

**Test Environment Request Body For VISA card payment**

```
[
 {
 "beneficiaryName": "Payu",
 "beneficiaryEmail": "payu@payu.in",
 "beneficiaryMobile": "9876473627",
 "purpose": "Payment from Company",
 "amount": 1234.12,
 "batchId": "1",
 "merchantRefId": "1234",
 "paymentType": "VISA",
 "recipientCardNo":"4012888888881882"
 }
]
```

**Test Environment Request Body For Credit card payment**

```
[
 {
 "beneficiaryName": "Payu",
 "beneficiaryEmail": "payu@payu.in",
 "beneficiaryMobile": "9876473627",
 "purpose": "Payment from Company",
 "amount": 1234.12,
 "batchId": "1",
 "merchantRefId": "1234",
 "paymentType": "CC_PAYMENT",
 "recipientCardNo":"5291170702832"
 }
]
```



Response:

{% tabs %}
{% tab title="Success" %}
```
{
 "status": 0,
 "msg": "Requests are in process. Will send response of individual request on webhooks set by you",
 "code": null,
 "data": []
 }
```
{% endtab %}

{% tab title="Failure" %}
```
{
 "status": 1,
 "msg": null,
 "code": null,
 "data": [
           {
            "batchId": "1",
            "merchantRefId": "111",
            "error": "beneficiary account number can not be empty. ",
            "code": [1004]
           }
         ]
 }
```
{% endtab %}
{% endtabs %}







**Sample Request/Response for multiple transfer initiation:**

Content-Type : application/json

Method : Get

**Test Environment Request Body:**

```
[
 {
 "beneficiaryAccountNumber": "51234567890",
 "beneficiaryIfscCode": "HDFC0001234",
 "beneficiaryName": "Payu",
 "beneficiaryEmail": "payu@payu.in",
 "beneficiaryMobile": "9876473627",
 "purpose": "Redemetion",
 "amount": 1234.12,
 "batchId": "1",
 "merchantRefId": "123asdfad3",
 "paymentType": "IMPS"
 },
 {
 "beneficiaryName": "Payu",
 "beneficiaryEmail": "payu@payu.in",
 "beneficiaryMobile": "9876473627",
 "purpose": "transfer request",
 "amount": 1234,
 "batchId": "1",
 "merchantRefId": "654ytv65v",
 "paymentType": "UPI",
 "vpa": "komal@yesb"
 },
 {
 "beneficiaryAccountNumber": "5172526824913219",
 "beneficiaryIfscCode": "SBIN00CARDS",
 "beneficiaryName": "Test",
 "beneficiaryEmail": "",
 "beneficiaryMobile": "9654461774",
 "purpose": "test",
 "amount": 1.10,
 "batchId": "1",
 "merchantRefId": "7891247",
 "paymentType": "NEFT"
 },
 {  
 "beneficiaryName": "Harsh Agarwal",
 "beneficiaryEmail": "harsh101892@gmail.com",
 "beneficiaryMobile": "8447648479",
 "purpose": "visa card payout",
 "amount": "1",
 "batchId": "cx",
 "merchantRefId": "rbltest34",
 "paymentType": "VISA",
 "recipientCardNo":4012888888881882
 },
 {  
 "beneficiaryName": "Harsh Agarwal",
 "beneficiaryEmail": "harsh101892@gmail.com",
 "beneficiaryMobile": "8447648479",
 "purpose": "mastercard card payout",
 "amount": "1",
 "batchId": "cx",
 "merchantRefId": "rbltest34",
 "paymentType": "MASTERCARD",
 "recipientCardNo":5467191647690785
 }
 
]
```

Response Body :

{% tabs %}
{% tab title="Success" %}
```
{
 "status": 0,
 "msg": "Requests are in process. Will send response of individual request on webhooks set by you",
 "code": null,
 "data": []
 }
```
{% endtab %}

{% tab title="Failure" %}
```
{
 "status": 1,
 "msg": null,
 "code": null,
 "data": [
          {
                 "batchId": "1",
                 "merchantRefId": "111",
                 "error": "beneficiary account number can not be empty. ",
                 "code": [1004]
          }
         ]
 }
```
{% endtab %}
{% endtabs %}

> &#x20;In case all values are correctly request will get accepted and status of the transfer will be shared on webhooks set by merchant or merchant can call status api by merchant ref id to check the status at any time

## **Error codes**

| **Error Code** | **Description**                     |
| -------------- | ----------------------------------- |
| 1001           | INVALID MERCHNAT REF ID             |
| 1002           | DUPLICATE MERCHNAT REF ID           |
| 1003           | INVALID BATCH ID                    |
| 1004           | INVALID ACCOUNT NUMBER              |
| 1005           | INVALID IFSC CODE                   |
| 1006           | INVALID AMOUNT                      |
| 1007           | INVALID NAME                        |
| 1008           | INVALID MOBILE                      |
| 1009           | INVALID EMAIL                       |
| 1010           | INVALID PURPOSE                     |
| 1011           | INVALID\_TRANSFER\_TYPE             |
| 1012           | INVALID\_UPI\_REQUEST               |
| 1013           | INVALID\_UPI\_LENGTH                |
| 1014           | INVALID\_UPI\_ID                    |
| 1015           | BENEFICIARY\_NAME\_INVALID          |
| 1016           | INVALID\_CARD\_NUMBER               |
| 1017           | INVALID\_BENEFICIARY\_ID            |
| 1018           | INVALID\_SCHEDULE\_DATE\_FORMAT     |
| 1019           | INVALID\_SCHEDULE\_DATE             |
| 1020           | CARD\_PROVIDER\_DETAILS\_NOT\_FOUND |
| 1021           | INVALID\_CARD\_PROVIDER\_DETAILS    |
| 1022           | INVALID\_IFSC\_CODE\_PATTERN        |

