💻
Payouts Integration
  • Introduction
  • Functional overview
  • Onboarding
  • Postman Collection
  • Authentication
  • Authentication Token
    • API to Generate Token using username/password
    • API to Generate Token using private client id
  • Refresh Tokens
    • Refresh Token API
  • IP Check
  • API Integration
  • Testing Credentials
  • API Flow Diagram
  • Beneficiary Management
    • View Beneficiary Detail
    • Beneficiary Creation / Registration
  • Core Payouts API
    • Get Account Details API
    • Cancel Transfer API
    • Check Transfer Status API
    • Initiate/Schedule Transfer API
  • Verification
    • Verify Account / Penny Test
    • Validate Vpa
    • IFSC Details
  • smart send
    • Feature
    • Smart Send API
      • Cancel Smart Send
      • Smart Send Status
    • Smart Send V2 API
      • Create Smart Send Link
      • Smart Send Status
      • Cancel Smart Send
      • Extend Expiry Date
    • Bulk Smart Send
      • Bulk File Upload
      • Bulk Process File
    • Smart Send Error Codes
    • Fetch masked Vpas
  • Webhooks
    • What are Webhooks?
    • Default Webhooks
    • Creating Webhooks
    • Set Webhook API
    • Types of webhooks
  • Settings
    • Disable queued Payout
  • FAQ
Powered by GitBook
On this page
  • Request Header Params
  • Request Params
  • Examples
  • Error codes

Was this helpful?

  1. Core Payouts API

Initiate/Schedule Transfer API

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

PreviousCheck Transfer Status APINextVerify Account / Penny Test

Last updated 3 years ago

Was this helpful?

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

payoutMerchantId is different from payuMoneyMerchant Id, please use the correct one for seamless experience

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

IMPS, UPI, NEFT,

RTGS, MASTERCARD, VISA, CC_PAYMENT

vpa

Mandatory in case of UPI transactions. It will be vpa(upi) address of beneficiary

String

Conditional

retry

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

Boolean

No

scheduledTime

Date and time on which payout has to be scheduled

Ex- 2020-10-20 15:02:11

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

disableApprovalFlow

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:

{
 "status": 0,
 "msg": "Requests are in process. Will send response of individual request on webhooks set by you",
 "code": null,
 "data": []
 }
{
 "status": 1,
 "msg": null,
 "code": null,
 "data": [
           {
            "batchId": "1",
            "merchantRefId": "111",
            "error": "beneficiary account number can not be empty. ",
            "code": [1004]
           }
         ]
 }

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 :

{
 "status": 0,
 "msg": "Requests are in process. Will send response of individual request on webhooks set by you",
 "code": null,
 "data": []
 }
{
 "status": 1,
 "msg": null,
 "code": null,
 "data": [
          {
                 "batchId": "1",
                 "merchantRefId": "111",
                 "error": "beneficiary account number can not be empty. ",
                 "code": [1004]
          }
         ]
 }

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

https://payout.payumoney.com/payout/payment
https://test.payumoney.com/payout/payment