• Select

  • Select

Prerequisites

Parameter name Parameter value
Ifi id 304876
API endpoint https://fusion.gw.zetapay.in/api/v1
Access token {{token}}
Bundle id {{BundleID}}
Simulator for card payments https://prod-card-simulator.gw.zetapay.in/
Funding Account ID {{FundingAccountID}}
Vbo id {{VboID}}
cardSkuIDs {{SkuID}

About Fusion

Fusion is an API-based Platform-as-a-Service (PaaS) offering. It enables fintechs to build and manage financial products for unique use-cases. Fusion offers seamless integration with banks, payment networks, card printers, push servers, and several other services.

Fusion APIs solve many use-cases like customer loyalty cards, employee benefits, corporate gifting, expense management, merchant payouts, just-in-time account funding, and so on.

Get instant access to the complete financial environment via simple and powerful API integrations with Fusion.

Pre-requisites

  • Access token to be embedded as a header in X-Zeta-AuthToken.
  • The system will not take in requests unless this auth token is passed as part of the header.
  • The API endpoint that needs to be called for testing is https://fusion.gw.zetapay.in/api/v1.
  • There are several steps to do if you want to orchestrate a user journey for a fintech user on Zeta’s system. We will give you sample curls throughout the document to go through the journey points as mentioned below.
  • For all the following APIs, invocation has to be driven through the issuer (or the bank). In this case, fintech has to use a static, assigned IFI id of 304876.
  • Also, for most of the APIs you can use either postman or curl. We have provided curl examples for now in the documentation.
  • Mandatory Fields Highlighted Colour.
  • Response used in other API Highlighted Colour.

Create a Beneficiary

The first step to enabling transfers to beneficiaries is creating beneficiaries. This API creates Beneficiary.

Below are the list of mandatory parameters that need to be added in the request body:

Parameters Description
X-Zeta-AuthToken It should be same as mentioned in the prerequisite table.
ifiID Unique identifier of the IFI.
accountHolderID It is received from new individual API.
requestID Unique identifier per request.
firstName Name of the beneficiary.
type Real/Legal entity.
cURL Sample
Switch Theme
Expand More
Copy
  curl --location --request POST 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/individuals/8f481b75-afff-4ef2-ab9b-97b3e08fb17c/beneficiaries' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}' \
--data-raw '{
  "requestID": "request-puneet-wop-5",
  "firstName": "Modii",
  "type" : "REAL",
  "middleName": "test124",
  "lastName": "Yo",
  "gender": "Male",
  "salutation": "Mr.",
  "relationship": "Friend",
  "profilePicURL": "url"
}'

  
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
  {
    "requestID": "FUSION-304876-8f481b75-afff-4ef2-ab9b-97b3e08fb17c-1596101877823",
    "id": "648123e3-234f-4591-950d-2adf09ee4347",
    "ifiID": 304876,
    "accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
    "salutation": "Mr.",
    "firstName": "Modii",
    "middleName": "test124",
    "lastName": "Yo",
    "gender": "Male",
    "profilePicURL": "url",
    "relationship": "Friend",
    "status": "ENABLED",
    "type": "REAL",
    "vectors": [],
    "customFields": {},
    "createdAt": "Jul 30, 2020 9:37:57 AM",
    "updatedAt": "Jul 30, 2020 9:37:57 AM",
    "headers": {}
}
    
Code Copied
The following parameters will be received in response & will be used in further APIs.
Parameters API Involved
id unique identifier for the newly created Beneficiary (beneficiary id), used in Get beneficiary details.

Get Beneficiary details

Once a beneficiary is created, this API helps in getting the beneficiary details. Below are the list of mandatory parameters that need to be added in the request body:

Parameters Description
X-Zeta-AuthToken It should be same as mentioned in the prerequisite table.
ifiID Unique identifier of the IFI.
individualID This can be received while creating an Account Holder.
beneficiaryID Returned while creating a Beneficiary.

Header:

  • individuals: account holder id(8f481b75-afff-4ef2-ab9b-97b3e08fb17c).
  • Beneficiary: beneficiary id(648123e3-234f-4591-950d-2adf09ee4347).
cURL Sample
Switch Theme
Expand More
Copy
  curl --location --request GET 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/individuals/8f481b75-afff-4ef2-ab9b-97b3e08fb17c/beneficiaries/648123e3-234f-4591-950d-2adf09ee4347' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}'
  
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
  {
    "requestID": "FUSION-304876-8f481b75-afff-4ef2-ab9b-97b3e08fb17c-1596101877823",
    "id": "648123e3-234f-4591-950d-2adf09ee4347",
    "ifiID": 304876,
    "accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
    "salutation": "Mr.",
    "firstName": "Modii",
    "middleName": "test124",
    "lastName": "Yo",
    "gender": "Male",
    "profilePicURL": "url",
    "relationship": "Friend",
    "status": "ENABLED",
    "type": "REAL",
    "vectors": [],
    "customFields": {},
    "createdAt": "Jul 30, 2020 9:37:57 AM",
    "updatedAt": "Jul 30, 2020 9:37:57 AM",
    "headers": {}
}
    
Code Copied

Get Beneficiary account details

Beneficiary Account details can be required when the Account Holder wants to transfer funds to the beneficiary. Below are the list of mandatory parameters that need to be added in the request body:

Parameters Description
X-Zeta-AuthToken It should be same as mentioned in the prerequisite table.
ifiID Unique identifier of the IFI.
individualID This can be received while creating an Account Holder.
beneficiaryID Returned while creating a Beneficiary.
accountID This is the Beneficiary Account ID returned while adding a Beneficiary Account.
cURL Sample
Switch Theme
Expand More
Copy
  curl --location --request GET 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/individuals/8f481b75-afff-4ef2-ab9b-97b3e08fb17c/beneficiaries/648123e3-234f-4591-950d-2adf09ee4347/accounts/0668a9ef-94ff-4174-8923-018519568db9' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}'

  
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
  {
    "id": "0668a9ef-94ff-4174-8923-018519568db9",
    "ifiID": 304876,
    "isVerified": true,
    "status": "ENABLED",
    "beneficiaryID": "648123e3-234f-4591-950d-2adf09ee4347",
    "parentAccountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
    "nickname": "New Beneficiary Account",
    "type": "IMPS",
    "accountInfo": {
        "accountNumber": "28a35e77-4fe9-4570-8571-b3a97b84e523",
        "accountProvider": "ICICI",
        "nameAtAccountProvider": "ISHAAN",
        "routingCode": "ICICI56677890",
        "accountType": "SAVINGS",
        "attributes": {
            "additionalProp1": "INDIRANAGAR",
            "additionalProp2": "string",
            "additionalProp3": "string"
        }
    },
    "isDefault": true,
    "attributes": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
    },
    "createdAt": "Aug 6, 2020 10:41:04 AM",
    "updatedAt": "Aug 6, 2020 10:41:04 AM",
    "headers": {}
}
    
Code Copied

Add beneficiary account

The first step to enabling transfers to beneficiaries is creating some of them. 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. Below are the list of mandatory parameters that need to be added in the request body:

Parameters Description
X-Zeta-AuthToken It should be same as mentioned in the prerequisite table.
ifiID Unique identifier of the IFI.
individualID This can be received while creating an Account Holder.
beneficiaryID Returned while creating a Beneficiary.
type IMPS/NEFT(Mandatory).
accountNumber External Account Number.
Headers:
  • Beneficiary id: (648123e3-234f-4591-950d-2adf09ee4347)
  • Account holder id: (8f481b75-afff-4ef2-ab9b-97b3e08fb17c)
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/individuals/8f481b75-afff-4ef2-ab9b-97b3e08fb17c/beneficiaries/648123e3-234f-4591-950d-2adf09ee4347/accounts' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}' \
--data-raw '{
"ifiID": 304876,
"isVerified": true,
"status": "ENABLED",
"beneficiaryID": "648123e3-234f-4591-950d-2adf09ee4347",
"parentAccountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"nickname": "New Beneficiary Account",
"type": "IMPS",
"accountInfo": {
  "accountNumber": "28a35e77-4fe9-4570-8571-b3a97b84e523",
  "accountProvider": "ICICI",
  "nameAtAccountProvider": "ISHAAN",
  "routingCode": "ICICI56677890",
  "accountType": "SAVINGS",
  "attributes": {
    "additionalProp1": "INDIRANAGAR",
    "additionalProp2": "string",
    "additionalProp3": "string"
  }
},
"isDefault": true,
"attributes": {
  "additionalProp1": "string",
  "additionalProp2": "string",
  "additionalProp3": "string"
}
}'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
  "id": "0668a9ef-94ff-4174-8923-018519568db9",
  "ifiID": 304876,
  "isVerified": true,
  "status": "ENABLED",
  "beneficiaryID": "648123e3-234f-4591-950d-2adf09ee4347",
  "parentAccountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
  "nickname": "New Beneficiary Account",
  "type": "IMPS",
  "accountInfo": {
      "accountNumber": "28a35e77-4fe9-4570-8571-b3a97b84e523",
      "accountProvider": "ICICI",
      "nameAtAccountProvider": "ISHAAN",
      "routingCode": "ICICI56677890",
      "accountType": "SAVINGS",
      "attributes": {
          "additionalProp1": "INDIRANAGAR",
          "additionalProp2": "string",
          "additionalProp3": "string"
      }
  },
  "isDefault": true,
  "attributes": {
      "additionalProp1": "string",
      "additionalProp2": "string",
      "additionalProp3": "string"
  },
  "createdAt": "Aug 6, 2020 10:41:04 AM",
  "updatedAt": "Aug 6, 2020 10:41:04 AM",
  "headers": {}
}
 
Code Copied

Fund Transfer to Beneficiary

Pass the values for individualId, beneficiaryID and accountID from the previous step and use the transfers endpoint to transfer funds to Beneficiary. Below are the list of mandatory parameters that need to be added in the request body:

Parameters Description
X-Zeta-AuthToken It should be same as mentioned in the prerequisite table.
ifiID Unique identifier of the IFI.
[individualID This can be received while creating an Account Holder.
beneficiaryID Returned while creating a Beneficiary.
accountID This is the Beneficiary Account ID returned while adding a Beneficiary Account.
transfer code (Length 240 characters)

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/individuals/8f481b75-afff-4ef2-ab9b-97b3e08fb17c/beneficiaries/648123e3-234f-4591-950d-2adf09ee4347/accounts/0668a9ef-94ff-4174-8923-018519568db9/transfers' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}' \
--data-raw '{
  "requestID" : "BeneficiaryTransackdqdtionTT-12755465",
  "ifiID": 304876,  
  "currency" : "INR",
  "amount" : 11100, 
  "transactionCode": "ATLAS_P2M_AUTH",  
  "debitAccountHolderID" : "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",  
  "debitAccountID": "dc97c156-1fed-44c0-a7e4-5158f1fac042", 
  "beneficiaryID": "648123e3-234f-4591-950d-2adf09ee4347",  
  "beneficiaryAccountID" : "0668a9ef-94ff-4174-8923-018519568db9",  
  "transactionTime": 1232425483242,     
  "remarks": "TEST123", 
  "attributes": {}
 }'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
  "requestID": "FUSION-304876-648123e3-234f-4591-950d-2adf09ee4347-1597322583243",
  "time": 0,
  "status": "FAILED",
  "transferType": "IMPS",
  "statusDetails": {
      "message": "Debit Account Holder 8f481b75-afff-4ef2-ab9b-97b3e08fb17c for ifiID 304876 should be FULL KYCd",
      "errorCode": "INVALID_BENEFICIARY"
  },
  "headers": {}
}
 
Code Copied
If the above response is Failed “message”: “Debit Account Holder 8f481b75-afff-4ef2-ab9b-97b3e08fb17c for ifiID 304876 should be FULL KYCd”.

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). Below are the list of mandatory parameters that need to be added in the request body:

Parameters Description
X-Zeta-AuthToken It should be same as mentioned in the prerequisite table.
ifiID Unique identifier of the IFI.
individualID This can be received while creating an Account Holder.
beneficiaryID Returned while creating a Beneficiary.
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request GET 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/individuals/8f481b75-afff-4ef2-ab9b-97b3e08fb17c/beneficiaries/648123e3-234f-4591-950d-2adf09ee4347/accounts' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
  "beneficiaryAccountList": [
      {
          "id": "0668a9ef-94ff-4174-8923-018519568db9",
          "ifiID": 304876,
          "isVerified": true,
          "status": "ENABLED",
          "beneficiaryID": "648123e3-234f-4591-950d-2adf09ee4347",
          "parentAccountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
          "nickname": "New Beneficiary Account",
          "type": "IMPS",
          "accountInfo": {
              "accountNumber": "28a35e77-4fe9-4570-8571-b3a97b84e523",
              "accountProvider": "ICICI",
              "nameAtAccountProvider": "ISHAAN",
              "routingCode": "ICICI56677890",
              "accountType": "SAVINGS",
              "attributes": {
                  "additionalProp1": "INDIRANAGAR",
                  "additionalProp2": "string",
                  "additionalProp3": "string"
              }
          },
          "isDefault": true,
          "attributes": {
              "additionalProp1": "string",
              "additionalProp2": "string",
              "additionalProp3": "string"
          },
          "createdAt": "Aug 6, 2020 10:41:04 AM",
          "updatedAt": "Aug 6, 2020 10:41:04 AM",
          "headers": {}
      }
  ],
  "totalElements": 1,
  "headers": {}
}
 
Code Copied