Switch to dark theme

Switch to light theme

Gifting

By creating an Application, you bring Account Holders onto Fusion. The process of creating an Application is analogous to that of opening a bank account in real life.

A person or entity who is permitted to conduct transactions on behalf of an account is known as an account holder. He is the account’s proprietor. Any VBO will be able to create an application for the creation of an account holder, which will then proceed through the issuer’s application lifecycle, with the application accepted i.e account holder being provisoned or the application being rejected as the end result.

The steps in the Creating Application procedure are as follows:

  1. Create an application within the provided spool.

Spool has the details of what kind of a relationship will be formed if an application is approved. Or what kind of details might be required to fill the application. Spool will also specify the workflow by which the application will be processed.

  1. Add relevant sections and mark an application COMPLETED.
  2. Approve the completed application and send it to the Issuer. Issuer reviews and confirms to onboard an Account Holder.
  3. The Account holder will be created as a real Account holder. A Real Account Holder, also known as an Individual, uses fintech-created banking products on Fusion.

Before you begin

Keep the following points in mind before making calls to Fusion APIs:

  1. Endpoint URI: To ensure data privacy and security, all Fusion APIs are served over HTTPS and use the common URI https://fusion.preprod.zeta.in/
  2. Authentication: Before testing any endpoint using the cURL sample provided, replace {{AUTH_TOKEN}} with the X-Zeta-AuthToken provided by Zeta.
  3. A unique identifier (ifiID) 140793 is assigned to fintech for this tutorial.
  4. Vector: These are unique identifiers used to identify an Account Holder. Example: phone, email.

Check if Account Holder Already Exist

An Account Holder with a unique identifier is created on Fusion. Call the Get account holder API to see if the account holder already exists for a given vector.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • Vector : Unique identifier to identify account holder.

Response parameters

  • accountHolderID: ID of the Account Holder.
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request GET 'https://fusion.preprod.zeta.in/api/v1/ifi/140793/individualByVector/p/+919818416528' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: 
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "requestID": "93334bdb-c498-4473-bb04-d023f042cfad",
    "id": "ac0790b2-8dfd-478a-8f82-64bc54936b25",
    "ifiID": 140793,
    "accountHolderProviderID": "a11aad62-db13-48dd-bc36-fb969a0eae9c",
    "vectors": [
        {
            "id": "27aa6a38-ee78-4960-a315-30ef28b50c54",
            "accountHolderID": "ac0790b2-8dfd-478a-8f82-64bc54936b25",
            "ifiID": 140793,
            "status": "ENABLED",
            "type": "p",
            "value": "+919818416528",
            "verified": true,
            "createdAt": "Apr 9, 2021 9:59:56 AM",
            "updatedAt": "Apr 9, 2021 9:59:56 AM",
            "headers": {}
        }
    ],
    "type": "REAL",
    "status": "ENABLED",
    "KYCStatus": {
        "ifiID": 140793,
        "kycStatus": "AADHAAR_XML",
        "updateTime": {
            "date": {
                "year": 2021,
                "month": 4,
                "day": 9
            },
            "time": {
                "hour": 10,
                "minute": 1,
                "second": 48,
                "nano": 369025000
            }
        },
        "expiryTime": {
            "date": {
                "year": 2022,
                "month": 4,
                "day": 9
            },
            "time": {
                "hour": 10,
                "minute": 1,
                "second": 48,
                "nano": 0
            }
        },
        "kycStatusPostExpiry": "MINIMAL",
        "attributes": {
            "kycType": "MINIMAL",
            "authType": "AADHAAR"
        }
    },
    "firstName": "Aparna",
    "middleName": "",
    "lastName": "",
    "dob": "Nov 21, 1992",
    "gender": "",
    "mothersMaidenName": "",
    "pops": [],
    "createdAt": {
        "date": {
            "year": 2021,
            "month": 4,
            "day": 9
        },
        "time": {
            "hour": 9,
            "minute": 59,
            "second": 56,
            "nano": 94461000
        }
    },
    "updatedAt": {
        "date": {
            "year": 2021,
            "month": 4,
            "day": 9
        },
        "time": {
            "hour": 10,
            "minute": 1,
            "second": 48,
            "nano": 346522000
        }
    }
}
Code Copied

Create application

In order to create an application for the defined spool, Create Application API call will be used and application can be created by both issuer and VBO. An application is a request by the applicant for making a connection with the issuer so as to avail the various offerings that issuer has to offer.

In addition, the application will include other details that the issuer may require prior to making that partnership.

The following details need to be input in order to create the application

  1. Pass the spoolID.
  2. Change the requestId
  3. Update Personal details .

Request parameters

  • spoolID: ID of the spool
  • requestID: It is a Unique ID

Response parameters

  • accountHolderID: ID of the Account Holder.

If the fintech wants to receive the notification every time an application completed event is published, webhooks can be configured.

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://cosmos-ahp.preprod.zeta.in/api/v1/ifi/140793/spool/12b66d97-c5c5-4a38-b896-b1790a6a6845/application' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{token}}' \
--data-raw '{
   "requestId": "instagift-1612bn949670949-abcdefg120702",
   "sections": {
      "Personal": {
         "type": "CreateRealAccountHolder",
         "name": "Personal",
         "details": {
            "PersonalDetails": {
               "status": "ENABLED",
               "firstName": "Aparna",
               "lastName": "",
               "individualType": "REAL",
               "applicationType": "CREATE_ACCOUNT_HOLDER"
            }
         }
      },
      "Vectors": {
         "type": "CreateRealAccountHolder",
         "name": "Vectors",
         "details": {
            "VectorDetails": [
               {
                  "type": "p",
                  "value": "+919818416528",
                  "isVerified": true
               }
            ]
         }
      }
   },
   "vectors": [
      {
         "type": "p",
         "value": "+919818416528",
         "attributes": {}
      }
   ]
}
'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
    "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
    "ifiId": 140793,
    "requestId": "instagift-1612bn949670949-abcdefg120702",
    "status": "DATA_CAPTURE_INITIATED",
    "sections": {
        "Personal": {
            "sectionId": "9bbde556-c049-4d53-a881-3ec8b7f3213f",
            "ifiId": 140793,
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "name": "Personal",
            "type": "CreateRealAccountHolder",
            "details": {
                "PersonalDetails": {
                    "status": "ENABLED",
                    "lastName": "",
                    "firstName": "Aparna",
                    "individualType": "REAL",
                    "applicationType": "CREATE_ACCOUNT_HOLDER"
                }
            },
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        },
        "Vectors": {
            "sectionId": "ba242aff-fe9c-42fe-81d2-c538bde96d15",
            "ifiId": 140793,
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "name": "Vectors",
            "type": "CreateRealAccountHolder",
            "details": {
                "VectorDetails": [
                    {
                        "type": "p",
                        "value": "+919818416528",
                        "isVerified": true
                    }
                ]
            },
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        }
    },
    "vectors": [
        {
            "vectorId": "6e8a4fee-5f6d-49b1-a1e5-642226589804",
            "ifiId": 140793,
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "type": "p",
            "value": "+919818416528",
            "status": "ENABLED",
            "attributes": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        }
    ],
    "stages": [
        {
            "stageId": "2d726730-58fc-41ce-8456-f7f1a01ccaba",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "ASSESSMENT",
            "status": "NOT_INITIATED",
            "details": {},
            "result": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        },
        {
            "stageId": "ad8fa02e-6fc2-413a-9ccc-2611ea83b48a",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "DATA_CAPTURE",
            "status": "INITIATED",
            "details": {},
            "result": {
                "validationPassed": {
                    "validation": "successful"
                }
            },
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:57.153+05:30"
        },
        {
            "stageId": "558245fc-cf79-457d-a6b5-71838537cfc6",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "ENRICHMENT",
            "status": "NOT_INITIATED",
            "details": {},
            "result": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        },
        {
            "stageId": "d5f0d23c-fc51-4b77-a847-6160533c7fa1",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "PROVISIONING",
            "status": "NOT_INITIATED",
            "details": {},
            "result": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        },
        {
            "stageId": "4c8caae5-006e-47cc-b7e1-2671006db2d1",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "REVIEW",
            "status": "NOT_INITIATED",
            "details": {},
            "result": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+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-07-12T15:07:56.986+05:30",
    "updatedAt": "2021-07-12T15:07:57.103+05:30"
}
Code Copied

Marking application as complete

Once the application is created, it is mandatory to mark the application as complete. When you mark data collection as complete, the state of the application changes to ENRICHMENT INITIATED.

Note - After this use the Get account holder API to check the account holder details

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • spoolID: It is a required field. ID of the spool

Response parameters

  • applicationID: Id of the application
  • Status: Status of the application
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://cosmos-ahp.preprod.zeta.in/api/v1/ifi/140793/spool/12b66d97-c5c5-4a38-b896-b1790a6a6845/application/998e0a82-c071-41a0-bec5-f3656805b70d/stage/DATA_CAPTURE/complete' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{token}}
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
    "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
    "ifiId": 140793,
    "requestId": "instagift-1612bn949670949-abcdefg120702",
    "status": "ENRICHMENT_INITIATED",
    "sections": {
        "Personal": {
            "sectionId": "9bbde556-c049-4d53-a881-3ec8b7f3213f",
            "ifiId": 140793,
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "name": "Personal",
            "type": "CreateRealAccountHolder",
            "details": {
                "PersonalDetails": {
                    "status": "ENABLED",
                    "lastName": "",
                    "firstName": "Aparna",
                    "individualType": "REAL",
                    "applicationType": "CREATE_ACCOUNT_HOLDER"
                }
            },
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        },
        "Vectors": {
            "sectionId": "ba242aff-fe9c-42fe-81d2-c538bde96d15",
            "ifiId": 140793,
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "name": "Vectors",
            "type": "CreateRealAccountHolder",
            "details": {
                "VectorDetails": [
                    {
                        "type": "p",
                        "value": "+919818416528",
                        "isVerified": true
                    }
                ]
            },
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        }
    },
    "vectors": [
        {
            "vectorId": "6e8a4fee-5f6d-49b1-a1e5-642226589804",
            "ifiId": 140793,
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "type": "p",
            "value": "+919818416528",
            "status": "ENABLED",
            "attributes": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        }
    ],
    "stages": [
        {
            "stageId": "2d726730-58fc-41ce-8456-f7f1a01ccaba",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "ASSESSMENT",
            "status": "NOT_INITIATED",
            "details": {},
            "result": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        },
        {
            "stageId": "ad8fa02e-6fc2-413a-9ccc-2611ea83b48a",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "DATA_CAPTURE",
            "status": "COMPLETED",
            "details": {},
            "result": {
                "validationPassed": {
                    "validation": "successful"
                }
            },
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:09:34.786+05:30"
        },
        {
            "stageId": "558245fc-cf79-457d-a6b5-71838537cfc6",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "ENRICHMENT",
            "status": "INITIATED",
            "details": {},
            "result": {
                "validationPassed": {
                    "validation": "successful"
                }
            },
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:09:35.040+05:30"
        },
        {
            "stageId": "d5f0d23c-fc51-4b77-a847-6160533c7fa1",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "PROVISIONING",
            "status": "NOT_INITIATED",
            "details": {},
            "result": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+05:30"
        },
        {
            "stageId": "4c8caae5-006e-47cc-b7e1-2671006db2d1",
            "ifiId": 140793,
            "applicationId": "998e0a82-c071-41a0-bec5-f3656805b70d",
            "spoolId": "12b66d97-c5c5-4a38-b896-b1790a6a6845",
            "name": "REVIEW",
            "status": "NOT_INITIATED",
            "details": {},
            "result": {},
            "createdAt": "2021-07-12T15:07:56.986+05:30",
            "updatedAt": "2021-07-12T15:07:56.986+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-07-12T15:07:56.986+05:30",
    "updatedAt": "2021-07-12T15:09:34.828+05:30"
}
Code Copied

Get bundle

Get Bundle API will be used in order to get Payment product related details which will be further used to issue payment instruments.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • bundleID: It is a required field. ID of the Bundle being issued.Bundles are offerings of VBO on Fusion.

Response parameters

  • bundleID: ID of the issued Bundle.
  • paymentProductID: Required . ID of the Payment Product being issued.
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request GET 'https://fusion.preprod.zeta.in/api/v1/ifi/140793/bundles/df14e2e6-e76e-4b2e-9417-514e4a114eda' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: 
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "id": "df14e2e6-e76e-4b2e-9417-514e4a114eda",
    "ifiID": 140793,
    "vboID": "26c28ca6-4202-464c-9806-b788989762d4",
    "name": "EBIX VBO Payment Bundle",
    "accountProducts": [],
    "paymentProducts": [
        {
            "id": "291bafca-065e-49ef-934f-e198eb1e195a",
            "productName": "PAYMENT_PRODUCT_EBIX",
            "description": "PAYMENT_PRODUCT_EBIX",
            "productID": "9dca23d0-aef9-4de9-8df0-0aaa63093e54",
            "type": "PAYMENT",
            "programIDs": "",
            "ifiID": 140793,
            "attributes": {}
        }
    ],
    "status": "active",
    "attributes": {},
    "createdAt": "Nov 5, 2020 5:23:49 PM",
    "updatedAt": "Nov 5, 2020 5:23:49 PM",
    "shortCode": "BUNIN0511"
}
Code Copied

Issue payment product

Issue payment product API can be used to generate single or multiple payment products. The payment product id that needs to be used is fetched from the Get bundle API call. Here , we need to keep the disable formfactor creation flag as true. As a result of which, a resource id will be generated with only phone formfactor products.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • requestID: It is a required field. It is a unique identifier to identify the request
  • bundleID: It is a required field. ID of the Bundle being issued.
  • accountHolderID: Required. ID of the Account Holder to whom the Account is being issued.
  • paymentProductID: Required . ID of the Payment Product being issued.
  • phoneNumber: Required. Phone number associated with the Account Holder.

Response parameters

  • bundleID: ID of the issued Bundle.
  • accountHolderID: ID of the Account Holder.
  • accountID: ID of the Account Product.
  • resourceID: ID of the Resource associated with the Payment Instrument.
  • status: Status of the issued Bundle.
  • targetAccount: If the Bundle has any Account Products, the targetAccountID shall be used in the payment instrument field.
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://fusion.preprod.zeta.in/api/v1/ifi/140793/bundles/df14e2e6-e76e-4b2e-9417-514e4a114eda/issuePaymentProducts' \
--header 'Content-Type: application/json' \
--header 'Postman-Token: f23355e1-93e6-466a-80c8-0baf6158028c' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'cache-control: no-cache' \
--header 'Cookie: 
--data-raw '{
    "requestID": "issue_payment_product_ebix120702",
    "accountHolderID": "ac0790b2-8dfd-478a-8f82-64bc54936b25",
    "issuePaymentProductRequests": [
        {
            "paymentProductID": "291bafca-065e-49ef-934f-e198eb1e195a",
            "phoneNumber": "+919818416528",
"disableCardFFCreation":true,
            "attributes": {}
        }
    ]
}
'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
[
    {
        "bundleID": "df14e2e6-e76e-4b2e-9417-514e4a114eda",
        "resourceID": "8dbf4d5a-1e10-4fc8-8625-6e4da330bdd5",
        "targetUri": "account://null",
        "status": "ACTIVE"
    }
]
Code Copied

Get resource

After the issuance of a payment product, a resource id is created. Since the formfactor creation is disabled, user will be able to get details of phone formfactor only.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • resourceID: It is a required field. ID of the Resource associated with the Payment Instrument.

Response parameters

  • formFactorID: ID of the formfactor. Formfactor will be of phone type.
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request GET 'https://fusion.preprod.zeta.in/api/v1/ifi/140793/resources/8dbf4d5a-1e10-4fc8-8625-6e4da330bdd5' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: 
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "ifi": 140793,
    "id": "8dbf4d5a-1e10-4fc8-8625-6e4da330bdd5",
    "resourceProductId": "18453d87-d25d-4a40-b08f-9d0bc83e4e9c",
    "resourceProduct": {
        "ifi": 140793,
        "id": "18453d87-d25d-4a40-b08f-9d0bc83e4e9c",
        "code": "RESOURCE_PRODUCT_EBIX",
        "name": "RESOURCE_PRODUCT_EBIX",
        "description": "RESOURCE_PRODUCT_EBIX",
        "formFactorProducts": [
            {
                "ifi": 140793,
                "id": "9c99ffdf-9adc-4263-a282-fb37a38dae22",
                "code": "PMS_EBIX",
                "name": "PMS_EBIX",
                "description": "PMS_EBIX",
                "type": "phoneNumber",
                "policies": {
                    "issuancePolicies": [],
                    "paymentPolicies": []
                },
                "provider": "PMS",
                "skuID": "RUPAY_60827122_PHYSICAL_EBIX",
                "tags": [
                    "tag://vbo/26c28ca6-4202-464c-9806-b788989762d4"
                ],
                "attributes": {},
                "issuanceStatus": "ACTIVE",
                "paymentStatus": "ACTIVE",
                "createdAt": "Oct 12, 2020 1:33:46 PM",
                "modifiedAt": "Oct 12, 2020 1:33:46 PM",
                "headers": {
                    "tenantID": "140793",
                    "object": "[email protected]"
                }
            },
            {
                "ifi": 140793,
                "id": "aa59c220-2173-4244-92fd-2f7fee17bea5",
                "code": "CMS_EBIX",
                "name": "CMS_EBIX",
                "description": "CMS_EBIX",
                "type": "card",
                "policies": {
                    "issuancePolicies": [],
                    "paymentPolicies": []
                },
                "provider": "CMS",
                "skuID": "RUPAY_60827122_PHYSICAL_EBIX",
                "tags": [
                    "tag://vbo/26c28ca6-4202-464c-9806-b788989762d4"
                ],
                "attributes": {},
                "issuanceStatus": "ACTIVE",
                "paymentStatus": "ACTIVE",
                "createdAt": "Oct 12, 2020 1:31:23 PM",
                "modifiedAt": "Oct 12, 2020 1:31:23 PM",
                "headers": {
                    "tenantID": "140793",
                    "object": "[email protected]"
                }
            }
        ],
        "tags": [
            "tag://vbo/26c28ca6-4202-464c-9806-b788989762d4"
        ],
        "policies": {
            "issuancePolicies": [],
            "paymentPolicies": []
        },
        "status": "ACTIVE",
        "createdAt": "Oct 12, 2020 1:35:14 PM",
        "modifiedAt": "Oct 12, 2020 1:35:14 PM",
        "headers": {}
    },
    "targetURI": "account://null",
    "formFactors": [
        {
            "id": "42f029d8-aab9-4410-b323-da0fdbdf93cf",
            "ifi": 140793,
            "formFactorProductID": "9c99ffdf-9adc-4263-a282-fb37a38dae22",
            "formFactorID": "+919818416528",
            "targetURI": "account://null",
            "tags": [],
            "attributes": {
                "phoneNumber": "+919818416528"
            },
            "policies": {
                "issuancePolicies": [],
                "paymentPolicies": []
            },
            "status": "ACTIVE",
            "createdAt": "Jul 12, 2021 9:51:50 AM",
            "modifiedAt": "Jul 12, 2021 9:51:50 AM",
            "headers": {}
        }
    ],
    "tags": [],
    "vectors": [
        "vector://ACCOUNTHOLDER/ac0790b2-8dfd-478a-8f82-64bc54936b25"
    ],
    "policies": {
        "issuancePolicies": [],
        "paymentPolicies": []
    },
    "attributes": {},
    "status": "ACTIVE",
    "createdAt": "Jul 12, 2021 9:51:50 AM",
    "modifiedAt": "Jul 12, 2021 9:51:50 AM",
    "headers": {}
}
Code Copied

Create card program

A card program defines the set of rules applicable to all cards issued under the program. The rules define transaction limits (daily, monthly), validity of funds, restrictions on creditors, restrictions on the debitors and various types of triggers for transactions.

Creation of card program includes the mentioned details:

  1. Card design related updates,
  2. Voucher program details
  3. Allowed and disallowed merchants
  4. Transaction Limits (daily, monthly)
  5. Any constraints on transactions
  6. Type of the product.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • requestID: It is a required field. It is a unique identifier to identify the request

Response parameters

  • id: ID of the cardProgram.
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://venus.preprod.zeta.in/api/v1/ifi/140793/cardprogram' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requestId" : "206pm4nov20-z2080702",
    "businessId" : 123,
    "businessName" : "instagiftTest2",
    "productType" : "GIFT",
    "productID" : "106416973871899211",
    "cardDesign": {
            "logo": "https://card-program-files.s3.amazonaws.com/transparent.png",
            "bg": "https://card-program-files.s3.amazonaws.com/meal_new_8.jpeg",
            "bgColor": "#FAA300",
            "offerColor": "#FFFFFF",
            "textColor": "#FFFFFF"
        },
        "voucherProgram": {
            "voucherName": "Meal Voucher",
            "voucherDesign": "http://x.y.z",
            "voucherValidity": "THREE_YEARS"
        },
        "reimbursementProgram": {
            "printedBillRequired": false,
            "mandatorySpendThroughZeta": false,
            "maxValuePerBill": 5000000.0,
            "maxValuePerMonth": 1.0E7,
            "approval": "ZETA",
            "userDeclarationText": "You declare that the value you are claiming is spent by you and for food and non-alcoholic beverages only. You authorize Zeta to approve an amount up to the claimed value based on the company policy.",
            "extraReimbursementProgramConfig": {
                "allowRules": [
                    {
                        "rule": "biller.allowBlurredBills",
                        "value": false
                    },
                    {
                        "rule": "biller.allowLastFinancialYearBills",
                        "value": false
                    },
                    {
                        "rule": "biller.allowBillDatePastUploadDate",
                        "value": false
                    },
                    {
                        "rule": "biller.allowTamperedBills",
                        "value": false
                    },
                    {
                        "rule": "biller.allowOtherLanguageBills",
                        "value": false
                    },
                    {
                        "rule": "biller.allowHandWrittenBills",
                        "value": false
                    },
                    {
                        "rule": "biller.allowGroceryBills",
                        "value": true
                    },
                    {
                        "rule": "biller.allowSupermarketBills",
                        "value": true
                    },
                    {
                        "rule": "biller.allowNonFoodBill",
                        "value": false
                    },
                    {
                        "rule": "biller.allowAlcoholicBeverages",
                        "value": false
                    },
                    {
                        "rule": "biller.allowMultipleBills",
                        "value": false
                    },
                    {
                        "rule": "biller.allowWithoutSTN",
                        "value": false
                    }
                ],
                "requireRules": [
                    {
                        "rule": "biller.requireBillDate",
                        "value": true
                    },
                    {
                        "rule": "biller.requireBillNumber",
                        "value": true
                    },
                    {
                        "rule": "biller.requireMerchantName",
                        "value": true
                    }
                ]
            }
        },
        "issuanceConfiguration": {
            "types": [
                "VOUCHER"
            ],
            "issuer": "[email protected]",
            "requiresExclusiveVirtualSuperCard": true,
            "expiryBehaviour": "moveToExpiry",
            "extraIssuanceConfig": {
                "corpben.financialYear": "2016-17"
            }
        },
        "spendConfiguration": {
            "spendDeclaration": "You declare that you are buying food and non-alcoholic beverages only",
            "allowedMerchants": [
                "mcc:5311",
                "mcc:5411",
                "mcc:5422",
                "mcc:5441",
                "mcc:5451",
                "mcc:5462",
                "mcc:5499",
                "mcc:5811",
                "mcc:5812",
                "mcc:5814",
                "amc:5812",
                "amc:5499"
            ],
            "disallowedMerchants": [
                "mcc:5813",
                "mcc:5921",
                "amc:5813"
            ],
            "channels": {
                "allowSuperCard": true,
                "allowReimbursement": false,
                "allowZetaApp": true
            },
            "limits": {
                "transactionLimit": 1.0E7,
                "monthlyLimit": 2000000.0
            },
            "transactionConstraints": {
                "minTransactionValue": 0,
                "maxTransactionValue": 10000000,
                "allowedParticipation": {
                    "type": "PERCENT_OF_VALUE",
                    "value": 100,
                    "valueCap": 1000000
                }
            }
        }
}
'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "id": "221bb5e2-32d2-4b18-96f0-6d34e943fcec",
    "businessName": "instagiftTest2",
    "businessId": 123,
    "requestId": "206pm4nov20-z2080702",
    "businessDetails": {
        "businessID": 123.0,
        "businessName": "instagiftTest2"
    },
    "productType": "GIFT",
    "cardDesign": {
        "bg": "https://card-program-files.s3.amazonaws.com/meal_new_8.jpeg",
        "logo": "https://card-program-files.s3.amazonaws.com/transparent.png",
        "bgColor": "#FAA300",
        "textColor": "#FFFFFF",
        "offerColor": "#FFFFFF"
    },
    "voucherProgram": {
        "voucherName": "Meal Voucher",
        "voucherDesign": "http://x.y.z",
        "voucherValidity": "THREE_YEARS"
    },
    "reimbursementProgram": {
        "approval": "ZETA",
        "maxValuePerBill": 5000000.0,
        "maxValuePerMonth": 1.0E7,
        "printedBillRequired": false,
        "userDeclarationText": "You declare that the value you are claiming is spent by you and for food and non-alcoholic beverages only. You authorize Zeta to approve an amount up to the claimed value based on the company policy.",
        "mandatorySpendThroughZeta": false,
        "extraReimbursementProgramConfig": {
            "allowRules": [
                {
                    "rule": "biller.allowBlurredBills",
                    "value": false
                },
                {
                    "rule": "biller.allowLastFinancialYearBills",
                    "value": false
                },
                {
                    "rule": "biller.allowBillDatePastUploadDate",
                    "value": false
                },
                {
                    "rule": "biller.allowTamperedBills",
                    "value": false
                },
                {
                    "rule": "biller.allowOtherLanguageBills",
                    "value": false
                },
                {
                    "rule": "biller.allowHandWrittenBills",
                    "value": false
                },
                {
                    "rule": "biller.allowGroceryBills",
                    "value": true
                },
                {
                    "rule": "biller.allowSupermarketBills",
                    "value": true
                },
                {
                    "rule": "biller.allowNonFoodBill",
                    "value": false
                },
                {
                    "rule": "biller.allowAlcoholicBeverages",
                    "value": false
                },
                {
                    "rule": "biller.allowMultipleBills",
                    "value": false
                },
                {
                    "rule": "biller.allowWithoutSTN",
                    "value": false
                }
            ],
            "requireRules": [
                {
                    "rule": "biller.requireBillDate",
                    "value": true
                },
                {
                    "rule": "biller.requireBillNumber",
                    "value": true
                },
                {
                    "rule": "biller.requireMerchantName",
                    "value": true
                }
            ]
        }
    },
    "issuanceConfiguration": {
        "types": [
            "VOUCHER"
        ],
        "issuer": "[email protected]",
        "requiresExclusiveVirtualSuperCard": true,
        "expiryBehaviour": "moveToExpiry",
        "extraIssuanceConfig": {
            "corpben.financialYear": "2016-17"
        }
    },
    "spendConfiguration": {
        "spendDeclaration": "You declare that you are buying food and non-alcoholic beverages only",
        "allowedMerchants": [
            "mcc:5311",
            "mcc:5411",
            "mcc:5422",
            "mcc:5441",
            "mcc:5451",
            "mcc:5462",
            "mcc:5499",
            "mcc:5811",
            "mcc:5812",
            "mcc:5814",
            "amc:5812",
            "amc:5499"
        ],
        "disallowedMerchants": [
            "mcc:5813",
            "mcc:5921",
            "amc:5813"
        ],
        "channels": {
            "allowSuperCard": true,
            "allowReimbursement": false,
            "allowZetaApp": true
        },
        "limits": {
            "transactionLimit": 1.0E7,
            "monthlyLimit": 2000000.0
        },
        "transactionConstraints": {
            "minTransactionValue": 0,
            "maxTransactionValue": 10000000,
            "allowedParticipation": {
                "type": "PERCENT_OF_VALUE",
                "value": 100,
                "valueCap": 1000000
            }
        }
    },
    "ifi": 140793,
    "productID": "106416973871899211",
    "tags": [
        {
            "type": "vbo-id",
            "value": "26c28ca6-4202-464c-9806-b788989762d4",
            "attributes": {}
        }
    ]
}
Code Copied

Create cloud card

Cloudcard is a wrapper of the ledger which includes what kind of transactions can be done on the ledger, what features and restrictions does a ledger have.This is achieved using card program.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • cardProgramID: This is the id of the card program that we get after creating the card program.
  • receiver: This is the vector with which payment product is issued.

Response parameters

  • accountID: It is a unique identifier. ID of the account.
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://venus.preprod.zeta.in/api/v1/ifi/140793/cloudcard' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "requestId": "203pm4nov20-z2120702",
   "cardProgramId": "221bb5e2-32d2-4b18-96f0-6d34e943fcec",
   "productID": "106416973871899211",
   "receiver": "p:+919818416528",
   "attributes" : {}
}
'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "ifiId": 140793,
    "id": "c55a349b-5f7f-4fd3-a141-5ceee0d5a76d",
    "ledgerId": "4814097359399755573",
    "accountId": "9d26e927-6455-4ea1-bd1c-6da549f72d44",
    "accountHolderId": "ac0790b2-8dfd-478a-8f82-64bc54936b25",
    "cardProgramId": "221bb5e2-32d2-4b18-96f0-6d34e943fcec",
    "attributes": {
        "zeta.card-program-id": "221bb5e2-32d2-4b18-96f0-6d34e943fcec",
        "zeta.business-id": "123"
    },
    "createdAt": "2021-07-12T10:11:09.392229",
    "updatedAt": "2021-07-12T10:11:09.392229"
}
Code Copied

Get card by CRN

A card reference number is a unique numeric identity provided to individual cards that makes it easier to discover and identify them.

All card-related details linked with the CRN are fetched using the Get card by CRN API.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • CRN: This is a unique identifier of card.

Response parameters

  • cardID: ID of the form factor
cURL Sample
Switch Theme
Expand More
Copy
curl --location --request GET 'https://fusion.preprod.zeta.in/api/v1/ifi/140793/cards/193678564709' \
--header 'Authorization: Bearer {{token}}
--header 'Content-Type: application/json' \
--header 'Cookie: '
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "cardID": "b5969174-0d94-41ed-b021-e65db074e954",
    "crn": "193678564709",
    "cardType": "VIRTUAL",
    "maskedPan": "608271-xxxxxx-0061",
    "cardStatus": "DISABLED",
    "orderDetails": {
        "orderID": "instagift-vnp-pgoid-398",
        "cardSkuID": "RUPAY_60827133_VIRTUAL_EBIX",
        "cardSku": {
            "cardSkuId": "RUPAY_60827133_VIRTUAL_EBIX",
            "productID": "205120873182861",
            "ifi": "140793",
            "bin": "608271",
            "plasticCode": "WHITEC",
            "vendorID": "NA",
            "tags": [
                "tag://vbo/26c28ca6-4202-464c-9806-b788989762d4"
            ],
            "range": "33"
        },
        "plasticCode": "WHITEC",
        "fourthLineEmbossing": "ZETA - RUBIX - T&E",
        "expiry": {
            "month": "1",
            "year": "24"
        },
        "deliveryAddress": {
            "country": "",
            "city": "",
            "postalCode": "",
            "contactNumber": "",
            "addressLine1": "",
            "addressLine2": "",
            "addressLine3": "",
            "state": "",
            "addressLine4": ""
        },
        "tenantAttributes": {},
        "orderStatus": "CARD_DATA_GENERATED"
    },
    "binRange": {
        "bin": "608271",
        "range": "33"
    }
}
Code Copied

The account id we get after generating a cloudcard is linked to the cardID we get from the Get card by CRN API call.

Request parameters

  • ifiID: It is a required field. Unique identifier of the IFI.
  • resourceID: It is a required field. ID of the Resource associated with the Payment Instrument.

In response to this API, the resource and the associated form factor get linked to the account id.

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST 'https://fusion.preprod.zeta.in/api/v1/ifi/140793/resources/8dbf4d5a-1e10-4fc8-8625-6e4da330bdd5/form_factors' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{token}}' \
--header 'Cookie: 
--data-raw '{
   "formFactorProductID": "aa59c220-2173-4244-92fd-2f7fee17bea5", 
  "formFactorID": "b5969174-0d94-41ed-b021-e65db074e954",  
  "targetURI":  "account://9d26e927-6455-4ea1-bd1c-6da549f72d44",
  "status": "ACTIVE",
  "vectors": [
        "vector://ACCOUNTHOLDER/ac0790b2-8dfd-478a-8f82-64bc54936b25"  
    ]
}
'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
    "id": "5791dea1-ea9f-4866-b79c-97e420a6a13f",
    "ifi": 140793,
    "formFactorProductID": "aa59c220-2173-4244-92fd-2f7fee17bea5",
    "formFactorID": "b5969174-0d94-41ed-b021-e65db074e954",
    "targetURI": "account://9d26e927-6455-4ea1-bd1c-6da549f72d44",
    "tags": [],
    "attributes": {},
    "policies": {
        "issuancePolicies": [],
        "paymentPolicies": []
    },
    "status": "ACTIVE",
    "createdAt": "Aug 19, 2021 7:29:42 AM",
    "modifiedAt": "Aug 19, 2021 7:29:42 AM",
    "headers": {}
}
Code Copied

This completes the gifting flow on fusion. Now the account has been linked with the payment instrument and the account holder can utilise the gift card for transactions.