Unknown macro: {hivestonebreadcrumb}
Page tree
Skip to end of metadata
Go to start of metadata

Familiarize yourself with payment types and beneficiary fund transfers in the payment ecosystem. In this article, you learn about:

Payment types

Fusion provides the following types of payment to a Real Account Holder:

  • Card payment
  • Beneficiary transfer
  • A2A transfer

Beneficiaries

On Fusion, a Beneficiary is like your real-world beneficiaries whom you may want to transfer real funds to. It is similar to the list of entities that you may have in your savings bank account system along with some identifier like UPI VPA ID or Bank account number + IFSC code. Beneficiaries are internally modelled in the system as entities that have underlying Accounts associated with them.

Adding a Beneficiary to an Account Holder consists of the following steps:

Create a beneficiary

Before adding a Beneficiary for a Real Account Holder (RAH), create a Beneficiary object for the beneficiary.

Endpoint URI

POST

/api/v1/ifi/{ifiID}/individuals/{individualID}/beneficiaries


The sample below illustrates the following points:

  • Details of Beneficiary to be added are passed in the request body.
  • ID of the Account Holder to whom the Beneficiary will be added is passed as a path parameter in the endpoint URI.
  • The response returns a unique identifier for the newly created Beneficiary, id.

Request

Response

cURL Sample
curl -X POST \
https://fusion.preprod.zeta.in/api/v1/ifi/140827/individuals/ebc49dda-f664-4280-9bb7-52e62a379a26/beneficiaries \
-H 'Content-Type: application/json' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
-d '{
"requestID": "request-ben-123",
"firstName": "Ishaan",
"type" : "REAL",
"middleName": "",
"lastName": "Singh",
"gender": "Male",
"salutation": "Mr.",
"relationship": "Friend",
"profilePicURL": "url"
}'
JSON Sample
{
"requestID": "FUSION-140827-ebc49dda-f664-4280-9bb7-52e62a379a26-1573557024015",
"id": "f8f77c78-1053-4bf4-9a6c-1a03a78d739a",
"ifiID": 140827,
"accountHolderID": "ebc49dda-f664-4280-9bb7-52e62a379a26",
"salutation": "Mr.",
"firstName": "Ishaan",
"middleName": "",
"lastName": "Singh",
"gender": "Male",
"profilePicURL": "url",
"status": "ENABLED",
"type": "REAL",
"vectors": [],
"customFields": {},
"headers": {}
}

Add a beneficiary account

A Beneficiary's Account is required to transfer funds to the Beneficiary. Once you have created a Beneficiary object, create an Account and map it to the Account Holder.

Endpoint URI

POST

/api/v1/ifi/{ifiID}/individuals/{individualID}/beneficiaries/{beneficiaryID}/accounts


Following API sample shows how to add Beneficiary
Account for the newly created beneficiary:

As a prerequisite, specify the following parameters in the endpoint URI:

  • individualID, which is the Account Holder ID, returned while creating an Account Holder.
  • beneficiaryID, which is the Beneficiary ID returned while creating a Beneficiary.

Request

Response

cURL Sample
curl -X POST \
https://fusion.preprod.zeta.in/api/v1/ifi/140827/individuals/45734e18-0d1c-4fa2-84f4-5f6b928d7e01/beneficiaries/4401578d-8972-48cc-9ae9-e3efd900497e/accounts \
-H 'Content-Type: application/json' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
-d '{
"ifiID": 140827,
"isVerified": true,
"status": "ENABLED",
"beneficiaryID": "f8f77c78-1053-4bf4-9a6c-1a03a78d739a",
"parentAccountHolderID": "45734e18-0d1c-4fa2-84f4-5f6b928d7e01",
"nickname": "New Beneficiary Account",
"type": "ZETA",
"accountInfo": {
"accountNumber": "28a35e77-4fe9-4570-8571-b3a97b84e523",
"accountProvider": "ICICI787365e35634",
"nameAtAccountProvider": "ISHAAN",
"routingCode": "IMPS",
"accountType": "SAVINGS",
"attributes": {
"additionalProp1": "INDIRANAGAR",
"additionalProp2": "string",
"additionalProp3": "string"
}
},
"isDefault": true,
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}'
JSON Sample
{
"id": "41c02be5-60ec-4439-afb2-310948e89707",
"ifiID": 140827,
"isVerified": false,
"status": "ENABLED",
"beneficiaryID": "4401578d-8972-48cc-9ae9-e3efd900497e",
"parentAccountHolderID": "45734e18-0d1c-4fa2-84f4-5f6b928d7e01",
"nickname": "New Beneficiary Account",
"type": "ZETA",
"accountInfo": {
"accountNumber": "28a35e77-4fe9-4570-8571-b3a97b84e523",
"accountProvider": "ICICI787365e35634",
"nameAtAccountProvider": "ISHAAN",
"routingCode": "IMPS",
"accountType": "SAVINGS",
"attributes": {
"additionalProp1": "INDIRANAGAR",
"additionalProp2": "string",
"additionalProp3": "string"
}
},
"isDefault": true,
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"createdAt": "Nov 12, 2019 1:46:49 PM",
"headers": {}
}

Get beneficiary details

Beneficiary information is important when you want to link a Beneficiary to an existing Account Holder. There can be other scenarios as per business process where you will need to retrieve beneficiary's details.

Endpoint URI

GET

/api/v1/ifi/{ifiID}/individuals/{individaulID}/beneficiaries/{beneficiaryID}


Use the following API to retrieve Beneficiary details:

As a prerequisite, use the following parameters to be specified in the endpoint URI:

  • individualID, which is the Account Holder ID, returned while creating an Account Holder.
  • beneficiaryID, which is the Beneficiary ID returned while creating a Beneficiary.

Request

Response

cURL Sample
curl -X GET \
https://fusion.preprod.zeta.in/api/v1/ifi/140827/individuals/45734e18-0d1c-4fa2-84f4-5f6b928d7e01/beneficiaries/f8f77c78-1053-4bf4-9a6c-1a03a78d739a \
-H 'Content-Type: application/json' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
JSON Sample
{
"requestID": "FUSION-140827-ebc49dda-f664-4280-9bb7-52e62a379a26-1573557024015",
"id": "f8f77c78-1053-4bf4-9a6c-1a03a78d739a",
"ifiID": 140827,
"accountHolderID": "ebc49dda-f664-4280-9bb7-52e62a379a26",
"salutation": "Mr.",
"firstName": "Ishaan",
"middleName": "",
"lastName": "Singh",
"gender": "Male",
"profilePicURL": "url",
"status": "ENABLED",
"type": "REAL",
"vectors": [],
"customFields": {},
"headers": {}
}

Get beneficiary account details

Beneficiary Account details can be required when the Account Holder wants to transfer funds to the beneficiary. Therefore, you can retrieve Account details for every existing Beneficiary.

Endpoint URI

GET

/api/v1/ifi/{ifiID}/individuals/{individualID}/beneficiaries/{beneficiaryID}/accounts/{accountID}


Use the following API to retrieve
Account details of a specific Beneficiary:

As a prerequisite, use the following parameters to be specified in the endpoint URI:

  • individualID, which is the Account Holder ID, returned while creating an Account Holder.
  • beneficiaryID, which is the Beneficiary ID returned while creating a Beneficiary.
  • accountID, which is the Beneficiary Account ID returned while adding a Beneficiary Account.

Request

Response

cURL Sample
curl -X GET \
https://fusion.preprod.zeta.in/api/v1/ifi/140827/individuals/45734e18-0d1c-4fa2-84f4-5f6b928d7e01/beneficiaries/4401578d-8972-48cc-9ae9-e3efd900497e/accounts/89c783c4-ea6b-48d9-a0bc-479e1a8395c7 \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
JSON Sample
{
"id": "89c783c4-ea6b-48d9-a0bc-479e1a8395c7",
"ifiID": 140827,
"isVerified": false,
"status": "ENABLED",
"beneficiaryID": "4401578d-8972-48cc-9ae9-e3efd900497e",
"parentAccountHolderID": "45734e18-0d1c-4fa2-84f4-5f6b928d7e01",
"nickname": "New Beneficiary Account",
"type": "ZETA",
"accountInfo": {
"accountNumber": "ba8eb92f-4a44-4959-9d07-aa83dad89bad",
"accountProvider": "ICICI787365e35634",
"nameAtAccountProvider": "ISHAAN",
"routingCode": "IMPS",
"accountType": "SAVINGS",
"attributes": {
"additionalProp1": "INDIRANAGAR",
"additionalProp2": "string",
"additionalProp3": "string"
}
},
"isDefault": true,
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"createdAt": "Nov 12, 2019 1:01:14 PM",
"headers": {}
}

Get beneficiary account list

You can retrieve all the Accounts for a particular Beneficiary, if they have more than one account. For example, a list of Beneficiary Accounts is required when a fintech wants to disburse salary to its employees (beneficiaries).

Endpoint URI

GET

/api/v1/ifi/{ifiID}/individuals/{individualID}/beneficiaries/{beneficiaryID}/accounts


Use the following API to retrieve a Beneficiary Account List:

As a prerequisite, use the following parameters to be specified in the endpoint URI:

  • individualID, which is the Account Holder ID, returned while creating an Account Holder.
  • beneficiaryID, which is the Beneficiary ID returned while creating a Beneficiary.

Request

Response

cURL Sample
curl -X GET \
https://fusion.preprod.zeta.in/api/v1/ifi/140827/individuals/45734e18-0d1c-4fa2-84f4-5f6b928d7e01/beneficiaries/4401578d-8972-48cc-9ae9-e3efd900497e/accounts \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
JSON Sample
{
"beneficiaryAccountList": [
{
"id": "89c783c4-ea6b-48d9-a0bc-479e1a8395c7",
"ifiID": 140827,
"isVerified": false,
"status": "ENABLED",
"beneficiaryID": "4401578d-8972-48cc-9ae9-e3efd900497e",
"parentAccountHolderID": "45734e18-0d1c-4fa2-84f4-5f6b928d7e01",
"nickname": "New Beneficiary Account",
"type": "ZETA",
"accountInfo": {
"accountNumber": "ba8eb92f-4a44-4959-9d07-aa83dad89bad",
"accountProvider": "ICICI787365e35634",
"nameAtAccountProvider": "ISHAAN",
"routingCode": "IMPS",
"accountType": "SAVINGS",
"attributes": {
"additionalProp1": "INDIRANAGAR",
"additionalProp2": "string",
"additionalProp3": "string"
}
},
"isDefault": true,
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"createdAt": "Nov 12, 2019 1:01:14 PM",
"headers": {}
},
{
"id": "400a3882-3546-4b6e-a156-0b88106ddcea",
"ifiID": 140827,
"isVerified": false,
"status": "ENABLED",
"beneficiaryID": "4401578d-8972-48cc-9ae9-e3efd900497e",
"parentAccountHolderID": "45734e18-0d1c-4fa2-84f4-5f6b928d7e01",
"nickname": "New Beneficiary Account",
"type": "ZETA",
"accountInfo": {
"accountNumber": "ba8eb92f-4a44-4959-9d07-aa83dad89bad",
"accountProvider": "ICICI787365e35634",
"nameAtAccountProvider": "ISHAAN",
"routingCode": "IMPS",
"accountType": "SAVINGS",
"attributes": {
"additionalProp1": "INDIRANAGAR",
"additionalProp2": "string",
"additionalProp3": "string"
}
},
"isDefault": true,
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"createdAt": "Nov 12, 2019 1:16:06 PM",
"headers": {}
}
],
"headers": {}
}

Beneficiary transfers

Retrieve beneficiary details

To transfer funds to a Beneficiary, you require individualId, beneficiaryID and accountID parameters. Note that:

Transfer funds to beneficiary

Pass the values for individualId, beneficiaryID and accountID from the previous step and use the transfers endpoint to transfer funds to Beneficiary.

Endpoint URI

POST

/api/v1/ifi/{ifiID}/individuals/{individualID}/beneficiaries/{beneficiaryID}/accounts/{accountID}/transfers

Fusion supports IMPS, NEFT and UPI fund transfer modes. Each mode is defined by a unique identifier, transferCode, which must be passed in the request body of the transfer endpoint. Contact Zeta to know the supported transfer codes.

Request

Response

cURL Sample
curl -X POST \
https://fusion.preprod.zeta.in/api/v1/ifi/140827/individuals/b23ef097-8d7e-41e9-86da-c2072db6fa25/beneficiaries/f52a98b5-0f7c-4ad0-9474-8f48d9df1b78/accounts/2afd8e4c-3f13-4be0-a620-ef9c1a21ef11/transfers \
-H 'Content-Type: application/json' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
-d '{
"requestID": "BeneficiaryTransactio234nTest-22113231298798",
"currency": "INR",
"amount": 10,
"transferCode": "ATLAS_P2M_AUTH",
"debitAccountHolderID": "b23ef097-8d7e-41e9-86da-c2072db6fa25",
"debitAccountID": "4cdb45da-0ae5-46bf-8aae-c0943a5aae3f",
"beneficiaryID": "f52a98b5-0f7c-4ad0-9474-8f48d9df1b78",
"beneficiaryAccountID": "2afd8e4c-3f13-4be0-a620-ef9c1a21ef11",
"transactionTime": 12322334234489,
"remarks": "TEST",
"attributes": {}
}'
JSON Sample
{
"requestID": "FUSION-140827-f52a98b5-0f7c-4ad0-9474-8f48d9df1b78-1575257482530",
"transactionID": "20191202033122794_1909_FUSION-140827-f52a98b5-0f7c-4ad0-9474-8f48d9df1b78-1575257482530",
"status": "SUCCESS",
"headers": {}
}

To retrieve transaction details for an account, use the \transactions endpoint.

Card payment

Account Holders can use the issued cards to make digital payments (e-commerce websites), or swipe the card at merchant's POS machines. No public APIs are required to be invoked, as various Acquirer, Issuer and Fusion services communicate with each other internally to process these types of transactions.

On this page:

Need Help?

Drop a mail at fusion-support@zeta.tech or call us on 080-6690 5995.

  • No labels