Manage Application and Account Holder
Once an application is approved by the IFI, the fusion system creates an account holder. This article walks through the different ways a fintech can manage an application and account holder using Fusion APIs.
Duplicate Application
Irrespective of the number of fintechs the customer is signing up with, as per the regulations, there will be only one account holder entity with the respective IFI. This is tracked against the phone number, i.e. one phone number - one account holder with the IFI. Hence, there can be instances when upon calling the ‘/applications/newIndividualApplication’ endpoint, a message indicating that the ‘Account holder already exists’ might be responded with. This indicates that an account already exists with the IFI against the provided contact number. In such cases, the authority to approve the application lies solely with the IFI. IFI configures the matching criteria and approves or rejects the application accordingly.
You can refer to IDFC KYC and RBL KYC documentation to understand how these banks cater to such instances.
Get Application Details
When an Application for a new Account Holder is created, a corresponding applicationID
(unique identifier) is generated. Fintech can use the applicationID
to get details of the application. The response displays Application/Applicant details and the current status of the Application.
curl --location --request GET '{{fusion_base_url}}/api/v1/ifi/{ifi_id}/application/{application_id}' \
--header 'X-Zeta-AuthToken: {authtoken}'
{
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"ifiId": 140793,
"requestId": "request_cah-233",
"status": "DATA_CAPTURE_INITIATED",
"sections": {
"AccountHolderDetails": {
"sectionId": "4d62f76d-9826-4b72-a7f5-c3c885e2f6b9",
"ifiId": 140793,
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"name": "AccountHolderDetails",
"type": "CreateRealAccountHolder",
"details": {
"dob": {
"year": 1957.0,
"month": 7.0,
"dayOfMonth": 13.0
},
"gender": "MALE",
"lastName": "Verma",
"firstName": "Sarthak",
"middleName": "Kumar",
"salutation": "Mr.",
"profilePicURL": "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
"individualType": "REAL",
"applicationType": "CREATE_ACCOUNT_HOLDER",
"mothersMaidenName": "xyz"
},
"createdAt": "2021-02-19T10:40:04.837+05:30",
"updatedAt": "2021-02-19T10:40:04.837+05:30"
}
},
"vectors": [
{
"vectorId": "d8979db7-bc16-4934-9450-4c33a3991791",
"ifiId": 140793,
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"type": "e",
"value": "[email protected]",
"status": "ENABLED",
"attributes": {},
"createdAt": "2021-02-19T10:40:04.707+05:30",
"updatedAt": "2021-02-19T10:40:04.707+05:30"
}
],
"stages": [
{
"stageId": "2b7c5ecc-64dc-4985-93d8-b1dfb8788de5",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "ASSESSMENT",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.036+05:30",
"updatedAt": "2021-02-19T10:40:05.036+05:30"
},
{
"stageId": "24691789-c586-49fc-9071-ef5c58066211",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "DATA_CAPTURE",
"status": "INITIATED",
"details": {},
"result": {
"validationFailed": [
{
"code": "APPLICATION_SCHEMA_VALIDATION_FAILED",
"type": "JsonSchemaValidator",
"status": "FAILED",
"message": "#: #: only 1 subschema matches out of 2",
"attributes": {
"errorMessages": [
"#/sections: required key [Personal] not found",
"#/sections: required key [Vectors] not found"
]
}
}
]
},
"createdAt": "2021-02-19T10:40:05.024+05:30",
"updatedAt": "2021-02-19T10:51:28.770+05:30"
},
{
"stageId": "3546099b-4d81-42d5-abea-05dfbadf50a2",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "ENRICHMENT",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.036+05:30",
"updatedAt": "2021-02-19T10:40:05.036+05:30"
},
{
"stageId": "11f04481-6e07-4036-b549-69a1868abdfc",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "PROVISIONING",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.036+05:30",
"updatedAt": "2021-02-19T10:40:05.036+05:30"
},
{
"stageId": "e6163594-0b26-4d96-a890-79231c7adcf4",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "REVIEW",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.037+05:30",
"updatedAt": "2021-02-19T10:40:05.037+05:30"
}
],
"tags": [
{
"type": "spool-id",
"value": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"attributes": {}
},
{
"type": "vbo-id",
"value": "26c28ca6-4202-464c-9806-b788989762d4",
"attributes": {}
}
],
"createdAt": "2021-02-19T10:40:04.672+05:30",
"updatedAt": "2021-02-19T10:40:05.815+05:30"
}
Response
{
"sectionId": "4d62f76d-9826-4b72-a7f5-c3c885e2f6b9",
"ifiId": 140793,
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"name": "AccountHolderDetails",
"type": "CreateRealAccountHolder",
"details": {
"dob": {
"year": 1957.0,
"month": 7.0,
"dayOfMonth": 13.0
},
"gender": "MALE",
"lastName": "Verma",
"firstName": "Sarthak",
"middleName": "Kumar",
"salutation": "Mr.",
"profilePicURL": "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
"individualType": "REAL",
"applicationType": "CREATE_ACCOUNT_HOLDER",
"mothersMaidenName": "xyz"
},
"createdAt": "2021-02-19T10:40:04.837+05:30",
"updatedAt": "2021-02-19T10:40:04.837+05:30"
}
Update Application
Add section
Sometimes an applicant may not complete the application in one shot. For example, at a given stage the applicant is only carrying their ID proof but do not yet have the address proof. In such cases, you can add sections to the application before you mark the sourcing ‘DATA_CAPTURE’ stage as complete.
Section is also a free flowing json that can be defined however the fintech wants but would eventually be verified using one of the schema validators of the application which is setup by the Issuer.
curl --location --request POST 'https://fusion.preprod.zeta.in/api/v1/ifi/{{ifiID}}/spool/{{spool_id}}/application/{{application}}/section/AccountHolderDetails' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{token}}' \
--data-raw '{
"type":"AccountHolderDetails",
"details": {
"individualType": "REAL",
"dob": {
"year": 1957,
"dayOfMonth": 13,
"month": 7
},
"salutation": "Mr.",
"firstName": "Sarthak",
"lastName": "Verma",
"middleName": "Kumar",
"profilePicURL": "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
"applicationType": "CREATE_ACCOUNT_HOLDER",
"gender": "MALE",
"mothersMaidenName": "xyz",
"kycDetails": {
"kycStatus": "AADHAAR_OTP",
"kycStatusPostExpiry": "MINIMAL",
"kycAttributes": {
"key": "value"
},
"authType": "AADHAAR",
"authData": {
"AADHAAR": "677777777777"
}
},
"vectors": [{
"type": "p",
"value": "+919000000000",
"isVerified": true
}],
"pops": [{
"label": "home",
"address": {
"line1": "Q. No. 123",
"line2": "IFFCO Township",
"city": "Bareilly",
"state": "UP",
"postCode": "100010",
"country": "India"
}
}]
}
}'
{
"sectionId": "4d62f76d-9826-4b72-a7f5-c3c885e2f6b9",
"ifiId": 140793,
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"name": "AccountHolderDetails",
"type": "AccountHolderDetails",
"details": {
"dob": {
"year": 1957.0,
"month": 7.0,
"dayOfMonth": 13.0
},
"pops": [
{
"label": "home",
"address": {
"city": "Bareilly",
"line1": "Q. No. 123",
"line2": "IFFCO Township",
"state": "UP",
"country": "India",
"postCode": "100010"
}
}
],
"gender": "MALE",
"vectors": [
{
"type": "p",
"value": "+919000000000",
"isVerified": true
}
],
"lastName": "Verma",
"firstName": "Sarthak",
"kycDetails": {
"authData": {
"AADHAAR": "677777777777"
},
"authType": "AADHAAR",
"kycStatus": "AADHAAR_OTP",
"kycAttributes": {
"key": "value"
},
"kycStatusPostExpiry": "MINIMAL"
},
"middleName": "Kumar",
"salutation": "Mr.",
"profilePicURL": "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
"individualType": "REAL",
"applicationType": "CREATE_ACCOUNT_HOLDER",
"mothersMaidenName": "xyz"
},
"createdAt": "2021-02-19T10:40:04.837+05:30",
"updatedAt": "2021-02-19T12:17:14.271+05:30"
}
Update Section
Fintechs can also update a section of the application, in case any erroneous information has been provided using the update section API.
curl --location --request PUT '{{fusion_base_url}}/v1/ifi/140793/spool/{{spool_id}}/application/{{application_id}}/AccountHolderDetails' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{auth_token}}' \
--data-raw '{
"type":"AccountHolderDetails",
"details": {
"individualType": "REAL",
"dob": {
"year": 1957,
"dayOfMonth": 13,
"month": 7
},
"salutation": "Mr.",
"firstName": "Sarthak",
"lastName": "Verma",
"middleName": "Kumar",
"profilePicURL": "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
"applicationType": "CREATE_ACCOUNT_HOLDER",
"gender": "MALE",
"mothersMaidenName": "xyz",
"kycDetails": {
"kycStatus": "AADHAAR_OTP",
"kycStatusPostExpiry": "MINIMAL",
"kycAttributes": {
"key": "value"
},
"authType": "AADHAAR",
"authData": {
"AADHAAR": "677777777777"
}
},
"vectors": [{
"type": "p",
"value": "+919000000000",
"isVerified": true
}],
"pops": [{
"label": "home",
"address": {
"line1": "Q. No. 123",
"line2": "IFFCO Township",
"city": "Bareilly",
"state": "UP",
"postCode": "100010",
"country": "India"
}
}]
}
}'
{
"sectionId": "4d62f76d-9826-4b72-a7f5-c3c885e2f6b9",
"ifiId": 140793,
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"name": "AccountHolderDetails",
"type": "AccountHolderDetails",
"details": {
"dob": {
"year": 1957.0,
"month": 7.0,
"dayOfMonth": 13.0
},
"pops": [
{
"label": "home",
"address": {
"city": "Bareilly",
"line1": "Q. No. 123",
"line2": "IFFCO Township",
"state": "UP",
"country": "India",
"postCode": "100010"
}
}
],
"gender": "MALE",
"vectors": [
{
"type": "p",
"value": "+919000000000",
"isVerified": true
}
],
"lastName": "Verma",
"firstName": "Sarthak",
"kycDetails": {
"authData": {
"AADHAAR": "677777777777"
},
"authType": "AADHAAR",
"kycStatus": "AADHAAR_OTP",
"kycAttributes": {
"key": "value"
},
"kycStatusPostExpiry": "MINIMAL"
},
"middleName": "Kumar",
"salutation": "Mr.",
"profilePicURL": "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
"individualType": "REAL",
"applicationType": "CREATE_ACCOUNT_HOLDER",
"mothersMaidenName": "xyz"
},
"createdAt": "2021-02-19T10:40:04.837+05:30",
"updatedAt": "2021-02-19T12:17:14.271+05:30"
}
Mark Data Capture complete
This API is used to mark the data capture stage of application complete. This API indicates that the details that were to be collected from the applicant have been collected. Now as part of the next stage, Enrichment, details from third party services can be added.
curl --location --request POST '{{fusion_base_url}}/api/v1/ifi/{{ifiID}}/spool/{{spool_id}}application/{{application_id}}/stage/DATA_CAPTURE/complete' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: '{{token}}'
{
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"ifiId": 140793,
"requestId": "request_cah-233",
"status": "DATA_CAPTURE_INITIATED",
"sections": {
"AccountHolderDetails": {
"sectionId": "4d62f76d-9826-4b72-a7f5-c3c885e2f6b9",
"ifiId": 140793,
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"name": "AccountHolderDetails",
"type": "AccountHolderDetails",
"details": {
"dob": {
"year": 1957.0,
"month": 7.0,
"dayOfMonth": 13.0
},
"pops": [
{
"label": "home",
"address": {
"city": "Bareilly",
"line1": "Q. No. 123",
"line2": "IFFCO Township",
"state": "UP",
"country": "India",
"postCode": "100010"
}
}
],
"gender": "MALE",
"vectors": [
{
"type": "p",
"value": "+919000000000",
"isVerified": true
}
],
"lastName": "Verma",
"firstName": "Sarthak",
"kycDetails": {
"authData": {
"AADHAAR": "677777777777"
},
"authType": "AADHAAR",
"kycStatus": "AADHAAR_OTP",
"kycAttributes": {
"key": "value"
},
"kycStatusPostExpiry": "MINIMAL"
},
"middleName": "Kumar",
"salutation": "Mr.",
"profilePicURL": "https://s3.amazonaws.com/uifaces/faces/twitter/darylws/128.jpg",
"individualType": "REAL",
"applicationType": "CREATE_ACCOUNT_HOLDER",
"mothersMaidenName": "xyz"
},
"createdAt": "2021-02-19T10:40:04.837+05:30",
"updatedAt": "2021-02-19T15:53:41.943+05:30"
}
},
"vectors": [
{
"vectorId": "d8979db7-bc16-4934-9450-4c33a3991791",
"ifiId": 140793,
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"type": "e",
"value": "[email protected]",
"status": "ENABLED",
"attributes": {},
"createdAt": "2021-02-19T10:40:04.707+05:30",
"updatedAt": "2021-02-19T10:40:04.707+05:30"
}
],
"stages": [
{
"stageId": "2b7c5ecc-64dc-4985-93d8-b1dfb8788de5",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "ASSESSMENT",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.036+05:30",
"updatedAt": "2021-02-19T10:40:05.036+05:30"
},
{
"stageId": "24691789-c586-49fc-9071-ef5c58066211",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "DATA_CAPTURE",
"status": "INITIATED",
"details": {},
"result": {
"validationFailed": [
{
"code": "APPLICATION_SCHEMA_VALIDATION_FAILED",
"type": "JsonSchemaValidator",
"status": "FAILED",
"message": "#: #: only 1 subschema matches out of 2",
"attributes": {
"errorMessages": [
"#/sections: required key [Personal] not found",
"#/sections: required key [Vectors] not found"
]
}
}
]
},
"createdAt": "2021-02-19T10:40:05.024+05:30",
"updatedAt": "2021-02-19T15:56:30.525+05:30"
},
{
"stageId": "3546099b-4d81-42d5-abea-05dfbadf50a2",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "ENRICHMENT",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.036+05:30",
"updatedAt": "2021-02-19T10:40:05.036+05:30"
},
{
"stageId": "11f04481-6e07-4036-b549-69a1868abdfc",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "PROVISIONING",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.036+05:30",
"updatedAt": "2021-02-19T10:40:05.036+05:30"
},
{
"stageId": "e6163594-0b26-4d96-a890-79231c7adcf4",
"ifiId": 140793,
"applicationId": "88d24ca5-2f75-435d-9fed-b6bb0a662377",
"spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"name": "REVIEW",
"status": "NOT_INITIATED",
"details": {},
"result": {},
"createdAt": "2021-02-19T10:40:05.037+05:30",
"updatedAt": "2021-02-19T10:40:05.037+05:30"
}
],
"tags": [
{
"type": "spool-id",
"value": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
"attributes": {}
},
{
"type": "vbo-id",
"value": "26c28ca6-4202-464c-9806-b788989762d4",
"attributes": {}
}
],
"createdAt": "2021-02-19T10:40:04.672+05:30",
"updatedAt": "2021-02-19T10:40:05.815+05:30"
}
Additional APIs can be exposed to the Fintech, subject to the Issuer’s approval. Fintech can subscribe to the ‘Account Holder Created’ event to know when the application gets approved.
Get Account Holder Details
There are two ways to fetch details for an Account Holder— using Account Holder ID or Vectors.
Using Account Holder ID
If you have Account Holder’s ID (individualID), use the /accountHolders
API to fetch their details.
Input parameters
ifiID
: Required. Unique identifier of the IFI.accountHolderID
: Required. Unique identifier of the Account Holder. Same asindividualID
Example
In the following example, we fetch Account Holder’s details using Account Holder’s ID (individualID
):
curl -X GET 'https://fusion.preprod.zeta.in/api/v1/ifi/140827/accountHolders/b9988179-9a74-41f5-aba4-0b85e501fd68'
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}'
-H 'Content-Type: application/json'
{
"requestID": "7ef0d6a4-e098-47fd-9d1c-6b9d8edc52de",
"id": "b9988179-9a74-41f5-aba4-0b85e501fd68",
"ifiID": 140827,
"accountHolderProviderID": "862bb162-b5ad-4112-9d73-bb2306546a36",
"vectors": [
{
"id": "b6bd9b26-16b3-4b99-b7d4-a1ecdd3718d3",
"accountHolderID": "b9988179-9a74-41f5-aba4-0b85e501fd68",
"ifiID": 140827,
"status": "ENABLED",
"type": "aadhaar",
"value": "OyqYXR+TvnRMnCVPIpXe+amOfwWblwORK1cK8qMr7oE=",
"createdAt": "Jan 6, 2020 7:41:05 AM",
"headers": {}
},
{
"id": "94b63932-3a7a-4bce-8334-12f85ddaeaca",
"accountHolderID": "b9988179-9a74-41f5-aba4-0b85e501fd68",
"ifiID": 140827,
"status": "ENABLED",
"type": "p",
"value": "+919583170190",
"createdAt": "Jan 6, 2020 7:41:05 AM",
"headers": {}
}
],
"type": "REAL",
"status": "ENABLED",
"KYCStatus": {
"ifiID": 140827,
"accountHolderID": "b9988179-9a74-41f5-aba4-0b85e501fd68",
"kycStatus": "MINIMAL",
"updateTime": {
"date": {
"year": 2020,
"month": 1,
"day": 6
},
"time": {
"hour": 7,
"minute": 41,
"second": 5,
"nano": 579646000
}
},
"expiryTime": {
"date": {
"year": 2021,
"month": 1,
"day": 5
},
"time": {
"hour": 7,
"minute": 41,
"second": 5,
"nano": 0
}
},
"attributes": {
"aadhaar": "OyqYXR+TvnRMnCVPIpXe+amOfwWblwORK1cK8qMr7oE=",
"kycType": "MINIMAL",
"authType": "AADHAAR",
"reference": "dd4302e0-1da9-4ea2-9948-22f74c2568dcydYKXSknhzbDHcL+3sfXzQ=="
},
"headers": {}
},
"salutation": "Mr.",
"firstName": "Abhinav",
"middleName": "",
"lastName": "Shukla",
"profilePicURL": "http://mypic.picland.somewhere.com/profile_pic.jpg",
"dob": "Jul 5, 1992",
"gender": "FEMALE",
"mothersMaidenName": "kumari",
"pops": [],
"tags": [],
"attributes": {
"companyID": "[1.0, 2.0, 3.0]"
},
"createdAt": {
"date": {
"year": 2020,
"month": 1,
"day": 6
},
"time": {
"hour": 7,
"minute": 41,
"second": 5,
"nano": 579646000
}
},
"headers": {}
}
Using 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 path parameter to fetch their details.
Input parameters
ifiID
: Required. Unique identifier of the IFI.vectorType
: Required. Type of Vector using which details are being fetched. Allowed values: p for phone number; e for email.vectorValue
: Required. Value based on Vector type specified. For example, ifvectorType
is p, specify Account Holder’s phone number; ifvectorType
is e, specify email ID.
Example
In the following example, we fetch Account Holder’s details using phone number:
curl -X GET 'https://fusion.preprod.zeta.in/api/v1/ifi/140827/individualByVector/p/+914071839645'
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}'
-H 'Content-Type: application/json'
{
"requestID": "78c1232f-7b15-47ca-be7e-c591e40406de",
"id": "3cfa87dc-2ae2-43f7-9adc-3d2fa0fb1f50",
"ifiID": 140827,
"accountHolderProviderID": "862bb162-b5ad-4112-9d73-bb2306546a36",
"vectors": [
{
"id": "001703c8-d40f-453d-b675-7f1f05954c26",
"accountHolderID": "3cfa87dc-2ae2-43f7-9adc-3d2fa0fb1f50",
"ifiID": 140827,
"status": "ENABLED",
"type": "p",
"value": "+914071839645",
"createdAt": "Dec 10, 2019 2:05:40 PM",
"attributes": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"headers": {}
}
],
"type": "REAL",
"status": "ENABLED",
"firstName": "Jim",
"middleName": "Hilton",
"lastName": "Carry",
"profilePicURL": "http://mypic.picland.somewhere.com/profile_pic.jpg",
"gender": "Male",
"pops": [],
"attributes": {},
"createdAt": {
"date": {
"year": 2019,
"month": 12,
"day": 10
},
"time": {
"hour": 14,
"minute": 5,
"second": 40,
"nano": 766431000
}
},
"headers": {}
}
Error Codes
Stage | Status | ErrorCode | Description |
All | BAD_REQUEST | 004 | Invalid input signature |
All | BAD_REQUEST | 010 | Technical Error while verifying signature in create session api. |
All | BAD_REQUEST | 027 | Input IFI Id is not valid. |
All | BAD_REQUEST | 033 | Input data is invalid and non-parsable data. |
Create application for account holder | CONFLICT | 023 | Account already exists and KYCed |
All | FORBIDDEN | 003 | Session Expired - Session expiry is 30 mins. |
Account Holder's KYC | FORBIDDEN | 015 | Aadhaar OTP is already processed and closed. |
Account Holder's KYC | INTERNAL_SERVER_ERROR | 001 | Internal Technical Glitch (Mostly timeout from bank APIs) |
Account Holder's KYC | INTERNAL_SERVER_ERROR | 007 | Generate OTP has failed. |
Account Holder's KYC | INTERNAL_SERVER_ERROR | 008 | Verify OTP has failed. |
Account Holder's KYC | INTERNAL_SERVER_ERROR | 011 | Technical Error. |
Account Holder's KYC | INTERNAL_SERVER_ERROR | 024 | UID not found trying to modify. |
Account Holder's KYC with IDFC Bank | INTERNAL_SERVER_ERROR | 025 | Duplicate request for aadhaar otp kyc. |
Account Holder's KYC | INTERNAL_SERVER_ERROR | 030 | Error while creating application. |
Account Holder's KYC | INTERNAL_SERVER_ERROR | 031 | Error while adding kyc section in application. |
Account Holder's KYC | NOT_FOUND | 005 | Error while fetching KYC Details. Error if the provided account holder is not present. |
Account Holder's KYC | NOT_FOUND | 022 | OVD Hash generated has not yet created a challenge (generate OTP) and tried to verify it. |
Keep track of this space for more updates
Related articles
Fusion Events
List of webhooks to subscribe to & receive event notification
Account Holders FAQs
FAQs related to the Account Holders
Generic Error Codes
List of error codes specific to Account Holder APIs
Generic Error Codes
List of general error codes across fusion
Account Holder APIs
Create Account Holders, and update account details
KYC Basics
An introduction to the key KYC concepts