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
of304876
. - 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 --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"
}'
{
"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": {}
}
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 --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}}'
{
"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": {}
}
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 --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}}'
{
"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": {}
}
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 --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"
}
}'
{
"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": {}
}
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 --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": {}
}'
{
"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": {}
}
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 --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}}'
{
"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": {}
}