Switch to dark theme

Switch to light theme

Issuing a Bundle

In this article, you learn about how to Issue a Bundle to an Account Holder.

Issuing a Bundle for an Account Holder would lead to issuance of artifacts of all of its constituent Products. A successful Bundle issuance would mean successful issuance of all its constituent products.

Depending on the constituent Products of the Bundle, the following steps are executed:

  • Issue an Account for every Account Product present in the Bundle
  • Issue a Resource for every Payment Product present in the Bundle
  • Issue a Form-Factor for every Payment Product present in the Bundle
Even if a single Product has to be issued, it will be issued via the construct of a Bundle

Get Bundle

Get all Bundles API(/bundles) can be used to retrieve all the Bundles and its details that are available to the fintech for issuance.

Endpoint URI

GET/api/v1/ifi/{ifiID}/bundles

Request parameters

  • ifiID: Required. Unique Identifier of the IFI

Response parameters

  • id: Unique identifier of the Bundle.

  • ifiID: Unique identifier of the IFI.

  • vboID: Unique identifier of the fintech.

  • name: Name of the Bundle.

  • status: Status of the Bundle. Value of this field can be ACTIVE/INACTIVE. A Bundle cannot be issued if it is in INACTIVE state.

  • accountProducts: List of all the Account Products present in the Bundle.

  • paymentProducts: List of all the Payment Products present in the Bundle.

  • createdAt: Timestamp of Product creation.

  • updatedAt: Timestamp of the last Product update.

Example

cURL Sample
Switch Theme
Expand More
Copy
curl -X GET {{fusion_base_url}}/api/v1/ifi/140827/bundles \
-H 'Content-Type: application/json' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}'
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
[
	{
		"ifiID": 140827,
		"fintechID": "zeta",
		"name": "Account + Payment Product Bundle",
		"accountProducts": [
			{
				"id": "9e97fc72-d692-4c0a-bccc-ba689954d9af",
				"productID": "7706229683808022627",
				"type": "ACCOUNT",
				"programIDs": "",
				"ifiID": 140827
			}
		],
		"paymentProducts": [
			{
				"id": "86da4629-9c59-45d9-9c0e-61d78ccb196f",
				"productID": "baefec67",
				"type": "PAYMENT",
				"programIDs": "",
				"ifiID": 140827
			}
		],
		"status": "ACTIVE",
		"createdAt": "Nov 9, 2019 10:19:49 AM",
		"updatedAt": "Nov 28, 2019 2:01:13 PM"
	},
	{
		"ifiID": 140827,
		"fintechID": "zeta",
		"name": "Account Product Bundle",
		"accountProducts": [
			{
				"id": "942a4cf7-3749-4919-b6cb-4a5f2d29c77c",
				"productID": "4732811754742423772",
				"type": "ACCOUNT",
				"programIDs": "",
				"ifiID": 140827
			}
		],
		"paymentProducts": [],
		"status": "ACTIVE",
		"createdAt": "Nov 12, 2019 11:36:32 AM",
		"updatedAt": "Nov 28, 2019 2:02:06 PM"
	}
]
Code Copied

Issue Bundle

Issue Bundle API (/issueBundle) is used to issue a specific Bundle to an Account Holder. This API should be used for complete Bundle Issuance i.e. issuance of all the products present in a Bundle for an Account Holder. A successful response from this API would result in creation of all the Account and Payment Products present in the Bundle for the specified Account Holder. In case of a failure response, none of the products would be issued.

Endpoint URI

POST/api/v1/ifi/{ifiID}/bundles/{bundleID}/issueBundle

Request parameters

  • ifiID: Required. Unique identifier of the IFI.

  • BundleID: Required. Unique identifier of the Bundle being issued.

  • requestID: Optional. This identifier is used to identify a unique request. A unique identifier has to be passed for every new issuance request, even if the case of request failure. If not explicitly passed in the request, Fusion will automatically create a unique identifier and pass in the response.

  • accountHolderID: Required. Unique identifier of the Account Holder to whom the Bundle is being issued.

  • name: Required. Name of the issued Bundle.

  • phoneNumber: Required. Phone number that has to be associated with the Account Holder.

  • targetAccount: Optional. URI of the Account that should be linked to the Payment Product artifacts (Resource and Form-Factor) being issued. (This should be specified only in the case the Resource and Form-Factor should point to an existing account)

  • disableFFCreation: Optional. This is a flag to disable all types of Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new resource and form-factor for every Payment Product in the Bundle. Default value: false

  • disablePhoneFFCreation: Optional. This is a flag to disable Phone Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new Phone form-factor for every Payment Product in the Bundle. Default value: false

  • disableCardFFCreation: Optional. This is a flag to disable Card Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new Card form-factor for every Payment Product in the Bundle. Default value: false

Response parameters

  • BundleID: Unique identifier of the issued Bundle.

  • accountHolderID: Unique Identifier of the Account Holder.

  • accountID: Unique Identifier of the Account Product.

  • status: Status of the issued Product. Value of this field can be ACTIVE/INACTIVE

  • targetAccount: URI of the account with which the Form-Factor got linked. On making a transaction using the payment instrument, the balance would be deducted from this account.

Example

cURL Sample
Switch Theme
Expand More
Copy
curl -X POST \{{fusion_base_url}}/api/v1/ifi/140827/bundles/ee64c930-c06f-49cb-9443-84b132b9d4e2/issueBundle \
-H 'Content-Type: application/json' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
-d '{
  "accountHolderID": "aa267641-f475-4acb-859e-bb9c60d3e9db",
  "disableCardFFCreation": false,
  "disableFFCreation": false,
  "disablePhoneFFCreation": false,
  "name": "Bundle 1",
  "phoneNumber": "+919876543210",
  "requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
  "accounts": [
    {
      "accountHolderID": "aa267641-f475-4acb-859e-bb9c60d3e9db",
      "accountID": "4cdb45da-0ae5-46bf-8aae-c0943a5aae3f",
      "bundleID": "ee64c930-c06f-49cb-9443-84b132b9d4e2",
      "status": "ACTIVE"
    }
  ],
  "bundleID": "b5cb1ce2-89e3-4435-88d5-2d392e3fe938",
  "paymentInstruments": [
    {
      "bundleID": "ee64c930-c06f-49cb-9443-84b132b9d4e2",
      "resourceID": "908b3067",
      "status": "ACTIVE",
      "targetAccount": "account://4cdb45da-0ae5-46bf-8aae-c0943a5aae3f"
    }
  ],
  "requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied

Issue a single Account Product

Issue Account API (/issueAccount) can be used to issue a single Account Product present in a Bundle to an Account Holder. This is a type of partial Bundle Issuance API where only a single product gets issued. This API could be used in the case the fintech decides to issue an Account Product for an Account Holder at the moment leaving the rest of the products to be issued later at some point of time in future.

Endpoint URI

POST/api/v1/ifi/{ifiID}/bundles/{bundleID}/issueAccount

Request parameters

  • ifiID: Required. Unique identifier of the IFI.

  • BundleID: Required. Unique Identifier of the Bundle whose Account Product is being issued.

  • requestID: Optional. This identifier is used to identify a unique request. A unique identifier has to be passed for every new issuance request, even if the case of request failure. If not explicitly passed in the request, Fusion will automatically create a unique identifier and pass in the response.

  • accountHolderID: Required. Unique Identifier of the Account Holder to whom the Account Product is being issued.

  • accountProductID: Required. Unique Identifier of the Account Product being issued.

  • name: Required. Preferred name in the Account.

Response parameters

  • accountHolderID: Unique Identifier of the Account Holder to whom the Account Product is issued.

  • accountID: Unique Identifier of the issued Account Product.

  • BundleID: Unique Identifier of the Bundle whose Account Product is issued.

  • name: Preferred name in the Account.

  • status: Status of the issued Product. Value of this field can be ACTIVE/INACTIVE

  • type: Type of Account.

Example

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST '{{fusion_base_url}}/api/v1/ifi/140793/bundles/b5cb1ce2-89e3-4435-88d5-2d392e3fe938/issueAccount' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
--header 'cache-control: no-cache,no-cache' \
--data-raw '{
	"accountHolderID": "d9fa39df-59c2-4949-be28-cf57131f2a17",
	"accountProductID": "9e97fc72-d692-4c0a-bccc-ba689954d9af",
	"name": "Bundle 2",
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7",
  	"accountHolderID": "d9fa39df-59c2-4949-be28-cf57131f2a17",
  	"accountID": "2e227bb2-259c-433b-892a-76625061b92a",
  	"bundleID": "1e4b5bac-636a-47b7-8013-2f2680c5d397",
  	"name": "Bundle 2",
  	"status": "ACTIVE",
  	"type": "ACCOUNT"
}
Code Copied

Issue multiple Account Products

Issue Multiple Account Products API (/issueAccountProducts) is used to issue multiple Account Products present in a Bundle to an Account Holder. This API takes in the productID of the Account Products that have to be issued and provisions accounts for only those products. A success response for this API would mean successful issuance of all of the specified Account Products for the Account Holder. In case of a failure, accounts for none of the specified products would be created.

Endpoint URI

POST/api/v1/ifi/{ifiID}/bundles/{bundleID}/issueAccountProducts

Request parameters

  • ifiID: Required. Unique identifier of the IFI.

  • BundleID: Required. Unique Identifier of the Bundle whose Account Product is being issued.

  • requestID: Optional. This identifier is used to identify a unique request. A unique identifier has to be passed for every new issuance request, even if the case of request failure. If not explicitly passed in the request, Fusion will automatically create a unique identifier and pass in the response.

  • accountHolderID: Required. Unique Identifier of the Account Holder to whom the Account Product is being issued.

  • accountProductID: Required. Unique Identifier of the Account Product being issued.

  • name: Required. Preferred name in the Account.

Response parameters

  • accountHolderID: Unique Identifier of the Account Holder to whom the Account Product is issued.

  • accountID: Unique Identifier of the issued Account Product.

  • BundleID: Unique Identifier of the Bundle whose Account Product is issued.

  • name: Preferred name in the Account.

  • status: Status of the issued Product. Value of this field can be ACTIVE/INACTIVE

  • type: Type of Account.

Example

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST '{{fusion_base_url}}/api/v1/ifi/140793/bundles/b5cb1ce2-89e3-4435-88d5-2d392e3fe938/issueAccountProducts' \
--header 'Content-Type: application/json' \
--header 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
--header 'cache-control: no-cache,no-cache' \
--data-raw '{
	"accountHolderID": "c8e31da5-b467-4354-8877-4823730898c5",
	"issueAccountArtifactRequests": [
		{
			"accountProductID": "f07f65b2-9048-437d-a0cc-94ad2b24c007",
			"name": "Product 1"
		},
		{
			"accountProductID": "f9a3733f-db5d-4c64-8e9d-f91ecc9612f6",
			"name": "Product 2"
		}
	],
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7",
	"accountHolderID": "c8e31da5-b467-4354-8877-4823730898c5",
	"issueAccountArtifactRequests": [
		{
			"accountID": "c9df23da-5324-4187-9345-15fe64774be2",
			"bundleID": "b5cb1ce2-89e3-4435-88d5-2d392e3fe938",
			"name": "Product 1",
			"status": "ACTIVE",
			"type": "ACCOUNT"
		},
		{
			"accountID": "1f4f83f9-165d-4b22-afb4-b0b5d465a06c",
			"bundleID": "b5cb1ce2-89e3-4435-88d5-2d392e3fe938",
			"name": "Product 2",
			"status": "ACTIVE",
			"type": "ACCOUNT"
		}
	]
	
}
Code Copied

Issue multiple Payment Products

Issue Multiple Payment Products API (/issuePaymentProducts) is used to issue multiple Payment Products present in a Bundle to an Account Holder. This API takes in the productID of the Payment Products that have to be issued and provisions resource and form-factor for only those products. A success response for this API would mean successful issuance of all of the specified Payment Products for the Account Holder. In case of a failure, form-factor for none of the specified products would be created.

Endpoint URI

POST/api/v1/ifi/{ifiID}/bundles/{bundleID}/issuePaymentProducts

Request parameters

  • ifiID: Required. Unique identifier of the IFI.

  • BundleID: Required. Unique Identifier of the Bundle whose Payment Product is being issued.

  • requestID: Optional. This identifier is used to identify a unique request. A unique identifier has to be passed for every new issuance request, even if the case of request failure. If not explicitly passed in the request, Fusion will automatically create a unique identifier and pass in the response.

  • targetAccountID: Optional. If the Bundle does not have any Account Products, the targetAccountID shall be used in the payment instrument field.

  • paymentProductID: Required. Unique Identifier of the Payment Product being issued.

  • phonenumber: Required. Phone number of the Account Holder which would be mapped to the product artifact being issued.

  • disableFFCreation: Optional. This is a flag to disable all types of Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new resource and form-factor for every Payment Product in the Bundle. Default value: false

  • disablePhoneFFCreation: Optional. This is a flag to disable Phone Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new Phone form-factor for every Payment Product in the Bundle. Default value: false

  • disableCardFFCreation: Optional. This is a flag to disable Card Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new Card form-factor for every Payment Product in the Bundle. Default value: false

Response parameters

  • accountHolderID: Unique Identifier of the Account Holder to whom the Payment Product is issued.

  • accountID: Unique Identifier of the issued Payment Product.

  • BundleID: Unique Identifier of the Bundle whose Account Product is issued.

  • status: Status of the issued Payment Product.

  • resourceID: Unique Identifier of the issued Resource.

  • formFactorID: Unique Identifier of the issued Form-Factor.

Example

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST '{{fusion_base_url}}/api/v1/ifi/140827/bundles/fe6b7566-6796-4e7e-8c81-1549a537e068/issuePaymentProducts' 
--header 'Content-Type: application/json' 
--header 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' 
--data-raw '{
	"accountHolderID": "e757baf5-c777-4151-bce4-4c35d30b830f",
	"issuePaymentProductRequests": [
		{
			"targetAccountID": "f35f88dd-481c-4b0f-84b5-8be991c008ae",
			"paymentProductID": "79cc92f3-d722-40b7-aae0-4b53313cfd52",
			"phoneNumber": "+91017765432",
			"disableFFCreation": false,
			"disableCardFFCreation": false,
	        "disablePhoneFFCreation": false
		},
		{
			"targetAccountID": "f35f88dd-481c-4b0f-84b5-8be991c008ae",
			"paymentProductID": "465fc26b-af2f-4545-8f36-9ec1477403fa",
			"phoneNumber": "+9125773447983",
			"disableFFCreation": false,
			"disableCardFFCreation": false,
	        "disablePhoneFFCreation": false
		}
	],
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7",
	"accountHolderID": "e757baf5-c777-4151-bce4-4c35d30b830f",
	"bundleID": "fe6b7566-6796-4e7e-8c81-1549a537e068",
	"issuePaymentProductRequests": [
		{
			"bundleID": "fe6b7566-6796-4e7e-8c81-1549a537e068",
      		"resourceID": "874b3234",
      		"status": "ACTIVE",
      		"targetAccount": "account://f35f88dd-481c-4b0f-84b5-8be991c008ae"
		},
		{
			"bundleID": "fe6b7566-6796-4e7e-8c81-1549a537e068",
      		"resourceID": "908b3067",
      		"status": "ACTIVE",
      		"targetAccount": "account://f35f88dd-481c-4b0f-84b5-8be991c008ae"
		}
	]
}
Code Copied

Issue Resource

Issue Resource API (/issueResource) is used to issue a Resource Product. A successful response would mean succssful creation of a Resource and a Form-Factor for the specified Resource Product.

Endpoint URI

POST/api/v1/ifi/{ifiID}/bundles/{bundleID}/issueResource

Request parameters

  • ifiID: Required. Unique identifier of the IFI.

  • BundleID: Required. Unique Identifier of the Bundle whose Payment Product is being issued.

  • requestID: Optional. This identifier is used to identify a unique request. A unique identifier has to be passed for every new issuance request, even if the case of request failure. If not explicitly passed in the request, Fusion will automatically create a unique identifier and pass in the response.

  • targetAccountID: Optional. If the Bundle does not have any Account Products, the targetAccountID shall be used in the payment instrument field.

  • resourceProductID: Required. Unique Identifier of the Resource Product being issued.

  • phonenumber: Required. Phone number of the Account Holder which would be mapped to the resource artifact being issued.

  • disableFFCreation: Optional. This is a flag to disable all types of Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new resource and form-factor for every Payment Product in the Bundle. Default value: false

  • disablePhoneFFCreation: Optional. This is a flag to disable Phone Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new Phone form-factor for every Payment Product in the Bundle. Default value: false

  • disableCardFFCreation: Optional. This is a flag to disable Card Form-Factor creation for the Account Holder while issuing the Bundle. If enabled, this will prevent the creation of a new Card form-factor for every Payment Product in the Bundle. Default value: false

Response parameters

  • accountHolderID: Unique Identifier of the Account Holder to whom the Account Product is issued.

  • resourceID: Unique Identifier of the issued Resource.

  • formFactorID: Unique Identifier of the issued Form-Factor.

  • BundleID: Unique Identifier of the Bundle whose Account Product is issued.

  • status: Status of the issued Account Products.Value of this field can be ACTIVE/INACTIVE

  • targetUri: URI(Uniform Resource Identifier) of the Account with which the Form-Factor should be associated with.

Example

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST '{{fusion_base_url}}/api/v1/ifi/140827/bundles/fe6b7566-6796-4e7e-8c81-1549a537e068/issueFormFactor' 
--header 'Content-Type: application/json' 
--header 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' 
--data-raw '{
	"accountHolderID": "ba3673211-g586-4acb-859e-bb9c60d3qu72",
	"disableFFCreation": false,
	"disableCardFFCreation": false,
	"disablePhoneFFCreation": false,
	"resourceProductID": "9d7ae299",
	"phoneNumber": "+919876543210",
	"targetAccountID": "aa267641-f475-4acb-859e-bb9c60d3e9db",
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
	"bundleID": "fe6b7566-6796-4e7e-8c81-1549a537e068",
	"resourceID": "9d7ae299",
	"status": "ACTIVE",
	"targetUri": "account://aa267641-f475-4acb-859e-bb9c60d3e9db",
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied

Issue Form-Factor

Issue Form-Factor API (/issueFormFactor) is used to issue a Form-Factor Product. A successful response would mean succssful creation of a Resource and a Form-Factor for the specified Resource Product and Account Holder.

Endpoint URI

POST/api/v1/ifi/{ifiID}/bundles/{bundleID}/issueFormFactor

Request parameters

  • ifiID: Required. Unique identifier of the IFI.

  • BundleID: Required. Unique Identifier of the Bundle whose Payment Product is being issued.

  • requestID: Optional. This identifier is used to identify a unique request. A unique identifier has to be passed for every new issuance request, even if the case of request failure. If not explicitly passed in the request, Fusion will automatically create a unique identifier and pass in the response.

  • targetAccountID: Optional. If the Bundle does not have any Account Products, the targetAccountID shall be used in the payment instrument field.

  • resourceID: Required. Unique Identifier of the Resource artifact with which the Form-Factor should be associated with.

  • accountHolderID: Required. Unique Identifier of the Account Holder to whom the Account is being issued.

Response parameters

  • BundleID: Unique Identifier of the Bundle whose Account Product is issued.

  • formFactorID: Unique Identifier of the Form-Factor that got created.

Example

cURL Sample
Switch Theme
Expand More
Copy
curl --location --request POST '{{fusion_base_url}}/api/v1/ifi/140827/bundles/fe6b7566-6796-4e7e-8c81-1549a537e068/issueFormFactor' 
--header 'Content-Type: application/json' 
--header 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' 
--data-raw '{
 	"accountHolderID": "aa267641-f475-4acb-859e-bb9c60d3e9db",
	"formFactorProductID": "9d7ae299",
	"resourceID": "9d7ae299",
	"targetAccountID": "aa267641-f475-4acb-859e-bb9c60d3e9db",
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied
JSON Sample
Switch Theme
Expand More
Copy
{
	"bundleID": "fe6b7566-6796-4e7e-8c81-1549a537e068",
	"formFactorID": "93077d20-ffb1-445d-bd51-74001c926676",
	"requestID": "97e165be-0f9b-4337-865b-b1fd5a683ed7"
}
Code Copied