Create a Direct Transfer
POST/v1/transfersClick to copy
Use this endpoint to create a direct transfer of funds from your account to a Linked Account. Apart from transferring payments received from customers, you can also transfer funds to your Linked Accounts directly from your account balance using the Direct Transfers API.
Is this page helpful?
1curl -X POST https://api.razorpay.com/v1/transfers \2-u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \3-H 'content-type: application/json' \4-d '{5"account": "acc_CPRsN1LkFccllA",6"amount": 100,7"currency": "INR"8}'
Success
Failure
1{2"id": "trf_JqpKevElHShZkw",3"entity": "transfer",4"status": "processed",5"source": "acc_CJoeHMNpi0nC7k",6"recipient": "acc_CPRsN1LkFccllA",7"amount": 100,8"currency": "INR",9"amount_reversed": 0,10"fees": 1,11"tax": 0,12"notes": [],13"linked_account_notes": [],14"on_hold": false,15"on_hold_until": null,16"recipient_settlement_id": null,17"created_at": 1657273505,18"processed_at": 1657273505,19"error": {20"code": null,21"description": null,22"reason": null,23"field": null,24"step": null,25"id": "trf_JqpKevElHShZkw",26"source": null,27"metadata": null28}29}
Request Parameters
account *
stringUnique identifier of the Linked Account to which the transfer must be made.
amount *
integerThe amount (in paise) to be transferred to the Linked Account. For example, for an amount of ₹200.35, the value of this field should be 20035.
currency *
string The currency used in the transaction. We support only INR for Route transactions.
notes json objectSet of key-value pairs that can be associated with an entity. These pairs can be useful for storing additional information about the entity. A maximum of 15 key-value pairs, each of 256 characters (maximum), are supported.
Response Parameters
idstringUnique identifier of the transfer.
entitystring The name of the entity. Here, it is transfer.
transfer_statusstringThe status of the transfer. Possible values are:
createdpendingprocessedfailedreversedpartially_reversed
settlement_statusstringThe status of the settlement. Possible values are:
pendingon_holdsettled
sourcestring Unique identifier of the transfer source. The source can be a payment or an order.
recipientstringUnique identifier of the transfer destination, that is, the Linked Account.
amountintegerThe amount to be transferred to the Linked Account, in paise. For example, for an amount of ₹200.35, the value of this field should be 20035.
currencystring ISO currency code. We support route transfers only in INR.
amount_reversedintegerAmount reversed from this transfer for refunds.
notesjson object Set of key-value pairs that can be associated with an entity. These pairs can be useful for storing additional information about the entity. A maximum of 15 key-value pairs, each of 256 characters (maximum), are supported. For example, "region": "south", "city": "Bangalore".
errorstringProvides error details that may occur during transfers.
Show child parameters (7)
linked_account_notesarray List of keys from the notes object which needs to be shown to Linked Accounts on their Dashboard. For example, "region", "city". Only the keys will be shown, not values.
on_holdbooleanIndicates whether the account settlement for transfer is on hold. Possible values:
true: Puts the settlement on hold.false: Releases the settlement.
on_hold_untilintegerTimestamp, in Unix format, indicates until when the settlement of the transfer must be put on hold. If no value is passed, the settlement is put on hold indefinitely.
recipient_settlement_idstringUnique identifier of the settlement.
created_atintegerTimestamp, in Unix, at which the record was created.
Errors
The api key/secret provided is invalid
Error Status: 4xx
This error occurs when there is a mismatch between the API credentials passed in the API call and the API credentials generated on the Dashboard.
Solution
The transfers.0.amount must be at least 100.
Error Status: 400
This error occurs when the amount is less than the minimum amount. The transaction amount expressed in the currency subunit, such as paise (in INR) should always be greater than or equal to 100.
Solution
The input field is required
Error Status: 400
This error occurs when a mandatory field is empty.
Solution
Create a Direct Transfer
POST/v1/transfersClick to copy
Use this endpoint to create a direct transfer of funds from your account to a Linked Account. Apart from transferring payments received from customers, you can also transfer funds to your Linked Accounts directly from your account balance using the Direct Transfers API.
Is this page helpful?
Request Parameters
account *
stringUnique identifier of the Linked Account to which the transfer must be made.
amount *
integerThe amount (in paise) to be transferred to the Linked Account. For example, for an amount of ₹200.35, the value of this field should be 20035.
currency *
string The currency used in the transaction. We support only INR for Route transactions.
notes json objectSet of key-value pairs that can be associated with an entity. These pairs can be useful for storing additional information about the entity. A maximum of 15 key-value pairs, each of 256 characters (maximum), are supported.
Response Parameters
idstringUnique identifier of the transfer.
entitystring The name of the entity. Here, it is transfer.
transfer_statusstringThe status of the transfer. Possible values are:
createdpendingprocessedfailedreversedpartially_reversed
settlement_statusstringThe status of the settlement. Possible values are:
pendingon_holdsettled
sourcestring Unique identifier of the transfer source. The source can be a payment or an order.
recipientstringUnique identifier of the transfer destination, that is, the Linked Account.
amountintegerThe amount to be transferred to the Linked Account, in paise. For example, for an amount of ₹200.35, the value of this field should be 20035.
currencystring ISO currency code. We support route transfers only in INR.
amount_reversedintegerAmount reversed from this transfer for refunds.
notesjson object Set of key-value pairs that can be associated with an entity. These pairs can be useful for storing additional information about the entity. A maximum of 15 key-value pairs, each of 256 characters (maximum), are supported. For example, "region": "south", "city": "Bangalore".
errorstringProvides error details that may occur during transfers.
Show child parameters (7)
linked_account_notesarray List of keys from the notes object which needs to be shown to Linked Accounts on their Dashboard. For example, "region", "city". Only the keys will be shown, not values.
on_holdbooleanIndicates whether the account settlement for transfer is on hold. Possible values:
true: Puts the settlement on hold.false: Releases the settlement.
on_hold_untilintegerTimestamp, in Unix format, indicates until when the settlement of the transfer must be put on hold. If no value is passed, the settlement is put on hold indefinitely.
recipient_settlement_idstringUnique identifier of the settlement.
created_atintegerTimestamp, in Unix, at which the record was created.
Errors
The api key/secret provided is invalid
Error Status: 4xx
This error occurs when there is a mismatch between the API credentials passed in the API call and the API credentials generated on the Dashboard.
Solution
The transfers.0.amount must be at least 100.
Error Status: 400
This error occurs when the amount is less than the minimum amount. The transaction amount expressed in the currency subunit, such as paise (in INR) should always be greater than or equal to 100.
Solution
The input field is required
Error Status: 400
This error occurs when a mandatory field is empty.
Solution
1curl -X POST https://api.razorpay.com/v1/transfers \2-u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \3-H 'content-type: application/json' \4-d '{5"account": "acc_CPRsN1LkFccllA",6"amount": 100,7"currency": "INR"8}'
Success
Failure
1{2"id": "trf_JqpKevElHShZkw",3"entity": "transfer",4"status": "processed",5"source": "acc_CJoeHMNpi0nC7k",6"recipient": "acc_CPRsN1LkFccllA",7"amount": 100,8"currency": "INR",9"amount_reversed": 0,10"fees": 1,11"tax": 0,12"notes": [],13"linked_account_notes": [],14"on_hold": false,15"on_hold_until": null,16"recipient_settlement_id": null,17"created_at": 1657273505,18"processed_at": 1657273505,19"error": {20"code": null,21"description": null,22"reason": null,23"field": null,24"step": null,25"id": "trf_JqpKevElHShZkw",26"source": null,27"metadata": null28}29}