1. Home
  2. Docs
  3. Developers Guide
  4. Private: Payment Products
  5. Payout

Payout

Payouts Product allows businesses to transfer funds to anyone be it their customers, vendors or their own employees. Using this product, they can automate their fund transfers and simplify reconciliation.

These Payouts can be done using various payment modes such as IMPS, NEFT, RTGS and UPI. Using IMPS, the Payouts can be done on weekends or banking holidays also.

The transfers can be initiated by the merchant using APIs or by uploading CSV file on the merchant dashboard.

There are couple of ways of implementing the Payout Product depending on the business needs both methods are explained as below:

1. Regular Method

Product Highlights

Merchant Specific Virtual Account

Each newly onboarded merchant on Payout is assigned a virtual account which needs to be pre-funded. This account will be the funding source for the Payouts.

IMPS, NEFT, RTGS and UPI Support

Payouts Product allows businesses to transfer money to anyone using these payment modes – IMPS, NEFT, RTGS and UPI.

Retry Support

Retry mechanism ensures that transactions which get rejected or reversed are retried atleast three times before they are marked failed thus providing better success rates.

Advanced business logic also changes the payment mode in case a particular payment mode is not supported.

Webhooks

The merchant can configure the webhooks using APIs or from the merchant dashboard.

These webhooks will capture the status of each transfer using webhooks – failed or successful. Webhook can also be configured for triggering low balance alerts.

Merchant Dashboard

The merchant dashboard can be used to initiate transfers by uploading CSV files, tracking transfers, deposits and account balance. The transaction reports can also be downloaded from the merchant dashboard.

Account Verification APIs

Account Verification API can be used to verify whether a bank account is valid or not. This API will do a penny drop in the bank account using IMPS and will also confirm the account validity and return the beneficiary account name in the response.

PAYOUTS FLOW

  • The merchant needs to deposit money into the virtual account using their own corporate account.
  • Once the money is deposited, the merchant can initiate transfers via API or by uploading the CSV file on the dashboard.

Transfers using API

  • The merchant needs to first generate the authentication token using the authentication API. The merchant account login username, password, Client ID, and Payout ID will be required to generate this auth token.
  • Once the authentication token is generated, the merchant can use that token and call the transfer API to initiate transfers.
  • The merchant can initiate multiple transfers (using different payment modes) using the transfer API as shown below in the tech doc.
  • The successful or failed response for each of these transfer will be received via the webhooks.
  • These webhooks can be configured via API or the merchant dashboard.

Transfers using CSV Upload

  • The merchant needs to download the CSV template by clicking on “Add Multiple Transfers on the merchant dashboard.
  • The details regarding the transfers need to be added in this CSV file.
  • This file needs to be uploaded as shown below.
  • Once the file is uploaded, PayU will show how many entries are added and once submitted , the file is processed.
  • If there are some invalid rows, PayU will show how many rows were processed.
  • The merchant can download the error report and see how many rows were invalid and the related.
  • The successful or failed response for each of these transfer will be received via the webhooks.
  • These webhooks can be configured via API or the merchant dashboard.

ACCOUNT VERIFICATION FLOW

  • The merchant needs to first generate the authentication token using the authentication API. The merchant account login username, password, Client ID, and Payout ID will be required to generate this auth token.
  • Once the authentication token is generated, the merchant can call the account verification API with relevant params.
  • PayU will return in the response whether account exists or not. If the account exists, the API will also return beneficiary name on the account.

Use Cases

This product can be used for below use cases.

  • Payroll Processing
  • E-Commerce – Instant Refunds
  • Vendor Payouts
  • Lending – Loan Disbursements
  • Insurance – Claims Disbursements
  • Gaming – Instant Cashouts to Customers

API

Authentication

An authentication token is required to implement the Payout API’s. So generate the access token which will be used in payout api’s using the token API.

Get Account detail

Merchant can retrieve his virtual account details using “getAccountDetail” API. The API returns account balance, virtual account number and IFSC and check for low balance alert.

Transfer payment api

A direct fund transfer process is also possible via Payout. Kindly refer “payment” API for this feature. Use this API to initiate single/multiple transfers to any bank account. You can pass max 1000 records in a single request

List Transfers

This API is used to pull out the list of all the transfers initiated from merchants virtual account during a specific time period. Refer the “listTransactions” API to get the list.

Account Verification

It is required to validate if the entered account actually exists or not. So we have an API which will validate the users account number and this can avoid the failure in incorrect account transfer. So it is recommended to use “verifyAccount” API before initiating the transfers.

Save Webhooks

Create and Save webhooks where you would like to receive notifications in case of various events. For eg. Successful bank transfer, failed bank transfer, successful deposit, low balance alert. “saveWebhook” API is used to implement this feature.

Note : If any of the webhook is not set by merchant data will be sent to default webhook url.

Webhook and Transfer Status

Please find below the definition of Webhook and TransferStatus keywords:-

Webhook Event

SMART_SEND_DETAIL_SUBMITTED — It’s for smart send feature when the customer fills the detail

REQUEST_PROCESSING_FAILED – If transaction request raising failed

TRANSFER_REVERSED – Transaction reversed

TRANSFER_FAILED – Transaction failed event

TRANSFER_SUCCESS – Transaction success event

DEPOSIT_SUCCESS – Teposit success event

LOW_BALANCE_ALERT – account on low balance

TransferStatus

QUEUED – trasaction request pushed in queue for processing

IN_PROGRESS – we are processing transaction request

PENDING – Txn went into the pending state in some case like (timeout from the bank)

FAILED – transaction failed

SUCCESS – transaction succeeded

REVERSED – future use if we return money for a successful transaction

WAITING_FOR_RETRY — 3 retries happen on your transaction request if its failing, because of server down.

2. Smart Send Method

Smart Send is a new product which can be used to collect account details from the customer and send money instantly in the payment mode of customer’s choice.

SMART SEND FLOW

The merchant will call Smart Send API with required parameters listed below

  • customer mobile/email – channel where link will be triggered.
  • Amount to be transferred – payment to be made
  • merchant reference number – to identify the transfer

The email/SMS will be triggered to the customer with the smart send webpage link. The customer can open this page and enter his/her account details. After entering account details, he/she needs to verify his identity using OTP.

Once the OTP is verified, the payout will be triggered to his/her account details. Kindly refer the “smartPay” API for implementing this transfer option. The API details are given in the API reference tab.