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 Account Holder
Use the /newIndividual
API to create an Application for a new Account Holder. Users have to provide Account Holder’s personal contact and KYC information in the request body.
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 | It represents a unique identifier assigned to the ifi (eg. 304876 ). |
formID | Form id has to be unique per request, if added in payload (it’s an optional field). |
individualType | It represents whether account holder is LAH or RAH. |
firstName | This represents the first name of the Account Holder. The name should be same as mentioned in the OVD details. |
dob | User needs to provide the year, month & day fields. |
authData | User needs to provide OVD (it can be PAN, DL, Voter ID). |
vectors | Users need to provide the value as contact number or email id. The vector type will be of 2 type; p for phone number & e for email. |
spoolID | 3deb5a70-311c-11ea-978f-2e728ce88125 . (Should be same for all requests). |
|
curl --location --request POST 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/applications/newIndividual' \
--header 'X-Zeta-AuthToken: {{token}}' \
--data-raw '{
"ifiID": "304876",
"formID": "007453",
"applicationType": "CREATE_ACCOUNT_HOLDER_01",
"spoolID": "3deb5a70-311c-11ea-978f-2e728ce88125",
"individualType": "REAL",
"salutation": "Mr",
"firstName": "Akshay",
"middleName": "",
"lastName": "Kumar",
"profilePicURL": "",
"dob": {
"year": 1993,
"month": 11,
"day": 21
},
"gender": "",
"mothersMaidenName": "",
"kycDetails": {
"kycStatus": "MINIMAL",
"kycStatusPostExpiry": "KYC_EXPIRED",
"kycAttributes": {},
"authData": {
"PAN": "CPPPMNB456"
},
"authType": "PAN"
},
"vectors": [
{
"type": "p",
"value": "+919843543896",
"isVerified": true
}
],
"pops": [],
"customFields": {
"entity_id": "ABCD0001"
}
}'
{
"applicationID": "244585",
"formID": "007453",
"ifiID": 304876,
"spoolID": "3deb5a70-311c-11ea-978f-2e728ce88125",
"status": "APPROVED",
"individualID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"applicationType": "REAL",
"salutation": "Mr",
"firstName": "Akshay",
"middleName": "",
"lastName": "Kumar",
"profilePicURL": "",
"dob": {
"year": 1993,
"month": 11,
"day": 21
},
"gender": "",
"mothersMaidenName": "",
"vectors": {
"52b38123-f958-4df7-bb82-e68676bc49d5": {
"type": "pan",
"value": "CPPPMNB456",
"aetherID": "52b38123-f958-4df7-bb82-e68676bc49d5",
"isVerified": false
},
"da34849f-dfdc-417e-a838-ad747271c8a7": {
"type": "p",
"value": "+919843543896",
"aetherID": "da34849f-dfdc-417e-a838-ad747271c8a7",
"isVerified": false
}
},
"tags": {
"ae9f4d26-6909-40de-a9ee-fa5732289bce": {
"type": "vbo-id",
"value": "ea4f06a3-6b9f-4948-bc75-e4bdb4d6cc9b",
"attributes": {}
}
},
"kycDetails": {
"kycStatus": "MINIMAL",
"updateTime": "Jul 27, 2020 3:25:27 PM",
"expiryTime": "Jul 4, 2119 3:25:27 PM",
"kycStatusPostExpiry": "MINIMAL",
"authType": "PAN",
"authData": {
"PAN": "CPPPMNB456"
},
"kycAttributes": {
"pan": "CPPPMNB456",
"authType": "PAN",
"kycType": "MINIMAL"
}
},
"customFields": {
"entity_id": "ABCD0001"
},
"createdAt": "Jul 27, 2020 3:25:27 PM",
"updatedAt": "Jul 27, 2020 3:25:27 PM",
"source": "Fusion",
"statusDetails": {},
"headers": {}
}
The following parameters will be received in response & will be used in further APIs.|Parameters|API Involved| |———-|————| |individualID|Get Account Holder Info, Get Account Holder Info By User Vector| |vectorType|Get Account Holder Info By User Vector| |vectorValue|Get Account Holder Info By User Vector|
Account Holder details
The account holder’s details can be fetched in two ways; using account holder Id or Vectors.
Using Account Holder ID (Get Account Holder Info)
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 | Unique identifier of the Account Holder. Same as individuaID. (From newIndividual API). |
curl --location --request GET 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/accountHolders/8f481b75-afff-4ef2-ab9b-97b3e08fb17c' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}'
{
"requestID": "48dfe572-396c-48a2-b239-31993641a4c3",
"id": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"ifiID": 304876,
"accountHolderProviderID": "a11aad62-db13-48dd-bc36-fb969a0eae9c",
"vectors": [
{
"id": "52b38123-f958-4df7-bb82-e68676bc49d5",
"accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"ifiID": 304876,
"status": "ENABLED",
"type": "pan",
"value": "CPPPMNB456",
"verified": false,
"createdAt": "Jul 27, 2020 3:25:27 PM",
"updatedAt": "Jul 27, 2020 3:25:27 PM",
"headers": {}
},
{
"id": "da34849f-dfdc-417e-a838-ad747271c8a7",
"accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"ifiID": 304876,
"status": "ENABLED",
"type": "p",
"value": "+919843543896",
"verified": true,
"createdAt": "Jul 27, 2020 3:25:27 PM",
"updatedAt": "Jul 27, 2020 3:25:27 PM",
"headers": {}
}
],
"type": "REAL",
"status": "ENABLED",
"KYCStatus": {
"ifiID": 304876,
"accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"kycStatus": "MINIMAL",
"updateTime": {
"date": {
"year": 2020,
"month": 7,
"day": 27
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 122448000
}
},
"expiryTime": {
"date": {
"year": 2119,
"month": 7,
"day": 4
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 0
}
},
"standardUpdateTime": "2020-07-27T15:25:27.122448Z",
"standardExpiryTime": "2119-07-04T15:25:27Z",
"attributes": {
"pan": "CPPPMNB456",
"kycType": "MINIMAL",
"authType": "PAN"
},
"headers": {}
},
"salutation": "Mr",
"firstName": "Akshay",
"middleName": "",
"lastName": "Kumar",
"profilePicURL": "",
"dob": "Nov 21, 1993",
"gender": "",
"mothersMaidenName": "",
"pops": [],
"tags": [
{
"type": "vbo-id",
"value": "ea4f06a3-6b9f-4948-bc75-e4bdb4d6cc9b",
"attributes": {}
}
],
"attributes": {
"entity_id": "ABCD0001"
},
"createdAt": {
"date": {
"year": 2020,
"month": 7,
"day": 27
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 122448000
}
},
"updatedAt": {
"date": {
"year": 2020,
"month": 7,
"day": 27
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 122448000
}
},
"headers": {}
}
The account holder’s details will be received in response of this API.
Vectors (Get Account Holder Info by vector)
Vectors are unique identifiers, like phone and email, used to identify an Account Holder. Use the /individualByVector API and pass the Account Holder’s Vector as a path parameter to fetch their 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. |
vectorType | Allowed values: p for phone number; e for email (Passed while creating the Account Holder). |
vectorValue | Value based on vector type specified. As provided while creating the Account Holder. Ex - if vectorType is p, specify Account Holder’s phone number; if vectorType is e, specify email ID. |
curl --location --request GET 'https://fusion.gw.zetapay.in/api/v1/ifi/304876/individualByVector/p/+919843543896' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: {{cookie}}'
{
"requestID": "48dfe572-396c-48a2-b239-31993641a4c3",
"id": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"ifiID": 304876,
"accountHolderProviderID": "a11aad62-db13-48dd-bc36-fb969a0eae9c",
"vectors": [
{
"id": "52b38123-f958-4df7-bb82-e68676bc49d5",
"accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"ifiID": 304876,
"status": "ENABLED",
"type": "pan",
"value": "CPPPMNB456",
"verified": false,
"createdAt": "Jul 27, 2020 3:25:27 PM",
"updatedAt": "Jul 27, 2020 3:25:27 PM",
"headers": {}
},
{
"id": "da34849f-dfdc-417e-a838-ad747271c8a7",
"accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"ifiID": 304876,
"status": "ENABLED",
"type": "p",
"value": "+919843543896",
"verified": true,
"createdAt": "Jul 27, 2020 3:25:27 PM",
"updatedAt": "Jul 27, 2020 3:25:27 PM",
"headers": {}
}
],
"type": "REAL",
"status": "ENABLED",
"KYCStatus": {
"ifiID": 304876,
"accountHolderID": "8f481b75-afff-4ef2-ab9b-97b3e08fb17c",
"kycStatus": "MINIMAL",
"updateTime": {
"date": {
"year": 2020,
"month": 7,
"day": 27
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 122448000
}
},
"expiryTime": {
"date": {
"year": 2119,
"month": 7,
"day": 4
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 0
}
},
"standardUpdateTime": "2020-07-27T15:25:27.122448Z",
"standardExpiryTime": "2119-07-04T15:25:27Z",
"attributes": {
"pan": "CPPPMNB456",
"kycType": "MINIMAL",
"authType": "PAN"
},
"headers": {}
},
"salutation": "Mr",
"firstName": "Akshay",
"middleName": "",
"lastName": "Kumar",
"profilePicURL": "",
"dob": "Nov 21, 1993",
"gender": "",
"mothersMaidenName": "",
"pops": [],
"tags": [
{
"type": "vbo-id",
"value": "ea4f06a3-6b9f-4948-bc75-e4bdb4d6cc9b",
"attributes": {}
}
],
"attributes": {
"entity_id": "ABCD0001"
},
"createdAt": {
"date": {
"year": 2020,
"month": 7,
"day": 27
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 122448000
}
},
"updatedAt": {
"date": {
"year": 2020,
"month": 7,
"day": 27
},
"time": {
"hour": 15,
"minute": 25,
"second": 27,
"nano": 122448000
}
},
"headers": {}
}
The account holder’s details will be received in response of this API.
Create Account Holder Point of Presence
curl -X POST \
https://fusion.gw.zetapay.in/api/v1/ifi/304876/applications/newIndividual \
-H 'X-Zeta-AuthToken: {{token}}' \
-d '{
{
"label": "Home",
"address": {
"line1": "Diamond District",
"line2": "Tower C",
"city": "Bangalore",
"state": "Karnataka",
"postCode": "560818",
"country": "India",
"latitude": 0,
"longitude": 0
},
"contactList": [
{
"firstName": "Abhinav",
"lastName": "Shukla",
"vectors": [
{
"type": "p",
"value": "p:+971322354485",
"attributes": {
},
"verified": true
}
],
"attributes": {
}
}
],
"attributes": {
},
"default": true
}
{
"id": "2b412023-8dc3-4ae8-890f-662b75627bf7",
"ifiID": 304876,
"label": "Home",
"entityID": "379e233c-7a1a-4c00-8e6b-bc2e5abff188",
"entityType": "account_holder",
"address": {
"line1": "Diamond District",
"line2": "Tower C",
"city": "Bangalore",
"state": "Karnataka",
"postCode": "560818",
"country": "India",
"isDefault": false
},
"contactList": [
{
"firstName": "Abhinav",
"lastName": "Shukla",
"vectors": [
{
"ifiID": 0,
"type": "p",
"value": "p:+971322354485",
"attributes": {}
}
],
"attributes": {}
}
],
"status": "ENABLED",
"isDefault": false,
"attributes": {},
"createdAt": {
"date": {
"year": 2019,
"month": 11,
"day": 12
},
"time": {
"hour": 10,
"minute": 12,
"second": 19,
"nano": 265132000
}
},
"modifiedAt": {
"date": {
"year": 2019,
"month": 11,
"day": 12
},
"time": {
"hour": 10,
"minute": 12,
"second": 19,
"nano": 265132000
}
},
"headers": {}
}
Get Account Holder Points of Presence
curl -X GET \
https://fusion.gw.zetapay.in/api/v1/ifi/304876/individualApplications/379e233c-7a1a-4c00-8e6b-bc2e5abff188/pops/2b412023-8dc3-4ae8-890f-662b75627bf7 \
-H 'X-Zeta-AuthToken: {{token}}' \
Headers:
Account_holder_id: 379e233c-7a1a-4c00-8e6b-bc2e5abff188
POP ID: 2b412023-8dc3-4ae8-890f-662b75627bf7
{
"id": "2b412023-8dc3-4ae8-890f-662b75627bf7",
"ifiID": 304876,
"label": "Home",
"entityID": "379e233c-7a1a-4c00-8e6b-bc2e5abff188",
"entityType": "account_holder",
"address": {
"line1": "Diamond District",
"line2": "Tower C",
"city": "Bangalore",
"state": "Karnataka",
"postCode": "560818",
"country": "India",
"isDefault": false
},
"contactList": [
{
"firstName": "Abhinav",
"lastName": "Shukla",
"vectors": [
{
"ifiID": 0,
"type": "p",
"value": "p:+971322354485",
"attributes": {}
}
],
"attributes": {}
}
],
"status": "ENABLED",
"isDefault": false,
"attributes": {},
"createdAt": {
"date": {
"year": 2019,
"month": 11,
"day": 12
},
"time": {
"hour": 10,
"minute": 12,
"second": 19,
"nano": 265132000
}
},
"modifiedAt": {
"date": {
"year": 2019,
"month": 11,
"day": 12
},
"time": {
"hour": 10,
"minute": 12,
"second": 19,
"nano": 265132000
}
},
"headers": {}
}