Unknown macro: {hivestonebreadcrumb}
Page tree
Skip to end of metadata
Go to start of metadata

In this section we will understand how fund flow works for Pre Paid Instrument (PPI) accounts. 


  1. The fintech transfers funds from its current account to the  Fintech's  current account of the sponsor IFI (eg RBL, IDFC)
  2. Zeta Ops verifies the fund transfer and increases the limit of the Fintech Funding A/c
  3. Account holder adds money to his PPI account
  4. Fintech Triggers an A2A transfer API to debit the VBO Funding account and credit the account holder's account

Depending upon the sponsor bank for the PPI program, the fund flow may have variations.


APIs for RAH funding

Fusion provides the following set of APIs to perform different operations of Real Account Holder (RAH) funding.

  • Fund Account Holder Account
  • Retrieve the Account balance
  • Retrieve the Account transaction
  • Reverse Account Transaction

Fund Account Holder Account

Each transaction is associated with an identifier, transferCode, which must be passed in the request body of the /transfers endpoint. Transfer code help identify the type of transaction for reporting . The format for transfer code is Channel _Type of Transaction_ Auth/Reversal  eg. ATLAS_P2M_AUTH
Contact Zeta to know the supported transfer codes.

Support for UPI fund transfer is coming soon.


Endpoint URI

POST

/api/v1/ifi/{ifiID}/transfers

Input parameters

  • ifiID: Required. Unique identifier for sponsor IFI.
  • requestID: Required. Unique identifier for every transfer request.
  • amount: Required. Amount that needs to be transferred. Possible value supported for currency are INR, USD, and more.
  • transferCode: Required. Identifier for the type of transaction for reporting. eg ATLAS_P2M_AUTH
  • debitAccountID: Required. ID of the account from where funds are debited
  • creditAccountID: Required. ID of the account where funds are credited
  • transferTime: Optional. Time required to transfer funds.
  • remarks: Optional. Remarks for the fund transfer.

Request

Response

cURL Sample
curl -X POST \
https://fusion.preprod.zeta.in/api/v1/ifi/140827/transfers \
-H 'Content-Type: application/json' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}' \
-d '{
"requestID": "8439e4b6-1b63-4a28-afa1-34206a44425a",
"amount": {
"currency": "INR",
"amount": 21
},
"transferCode": "ATLAS_P2M_AUTH",
"debitAccountID": "422782d2-adcd-49a6-bde1-eb0461a582ba",
"creditAccountID": "608332f5-2d31-4377-bf91-5492dda0f694",
"transferTime": 1574741608000,
"remarks": "Fund Account Holders account",
"attributes": {}
}'
JSON Sample
{
"requestID": "8439e4b6-1b63-4a28-afa1-34206a44425a",
"transferID": "20191126041456390_3712_8439e4b6-1b63-4a28-afa1-34206a44425a",
"status": "SUCCESS"
}

Retrieve the Account Balance

You can retrieve the balance of an account by passing accountID as a path parameter in the balance endpoint, as shown below:

Endpoint URI

GET

/api/v1/ifi/{ifiID}/accounts/{accountID}/balance

Input parameters

  • ifiID: Required. Unique identifier of the sponsor IFI
  • accountID: Required. Unique identifier of the Account for which balance is to be retrieved

Samples

Request

Response

cURL Sample
curl -X GET \
'https://fusion.preprod.zeta.in/api/v1/ifi/140827/accounts/608332f5-2d31-4377-bf91-5492dda0f694/balance' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}'
JSON Sample
{
"balance": 21,
"currency": "INR",
"lastTransactionID": "20191126041456390_3712_8439e4b6-1b63-4a28-afa1-34206a44425a",
"accountingType": "LIABILITY",
"headers": {}
}

Retrieve the Account Transactions

To view transactions, pass accountID as a path parameter in the /transactions endpoint, as shown below. To get a paginated view, use pageSize and pageNumber query parameters.

Endpoint URI

GET

/api/v1/ifi/{ifiID}/accounts/{accountID}/transactions

Input parameters

  • ifiID: Required. Unique identifier of the sponsor IFI.
  • accountID: Required. Unique identifier of the Account whose balance is to be retrieved.

Samples

Request

Response

cURL Sample
curl -X GET \
'https://fusion.preprod.zeta.in/api/v1/ifi/140827/accounts/608332f5-2d31-4377-bf91-5492dda0f694/transactions?pageSize=2&pageNumber=3' \
-H 'X-Zeta-AuthToken: {{AUTH_TOKEN}}'
JSON Sample
{
"accountTransactionList": [
{
"accountID": "97417dc9-a636-4cd1-b5b8-4951103403dc",
"transactionID": "20200113130528523_2615_FUSION-140827-9c1bae42-0610-4253-96c3-62af594d1bde-1578920727914",
"reversalTransactionIDs": [],
"previousBalance": 500,
"newBalance": 700,
"timestamp": 1578920728550,
"amount": 200,
"currency": "INR",
"recordType": "DEBIT",
"remarks": "TEST123",
"attributes": {
"account.pd-id": "8892149590596675137",
"zeta.card-program-id": "",
"debitAuthSignatory": "[\"10@zetauser.zeta.in/1\"]",
"aura.coa-id": "3071036307140878880",
"account.pf-id": "558731570586644109",
"bundle.name": "Customer bundle (minKYC without PAN)",
"policies": "{}",
"account.account-holder-id": "b9988179-9a74-41f5-aba4-0b85e501fd68",
"journal.voucherCode": "ATLAS_P2M_AUTH",
"journal.self": "false",
"zeta.card-program-ids": "",
"aura.parent-node-id": "1159171505324535297",
"isForced": "false",
"payment.captured": "true",
"account.account_holder.account_holder_provider_id": "862bb162-b5ad-4112-9d73-bb2306546a36",
"zeta.ifi": "140827",
"zeta.ppi-type": "OPEN",
"zeta.product-type": "Generic",
"zeta.ifi-product-type": "GPR_MIN_KYC_WITHOUT_PAN",
"athena.account-provider-id": "a36ac47b-c2a2-406c-b6a0-f8857fc5f735",
"zeta.business-id": "140827"
},
"headers": {}
},
{
"accountID": "97417dc9-a636-4cd1-b5b8-4951103403dc",
"transactionID": "20200113130414238_1671_FUSION-140827-9c1bae42-0610-4253-96c3-62af594d1bde-1578920654203",
"reversalTransactionIDs": [],
"previousBalance": 891,
"newBalance": 711,
"timestamp": 1578920654269,
"amount": 180,
"currency": "INR",
"recordType": "DEBIT",
"remarks": "TEST123",
"attributes": {
"account.pd-id": "8892149590596675137",
"zeta.card-program-id": "",
"debitAuthSignatory": "[\"10@zetauser.zeta.in/1\"]",
"aura.coa-id": "3071036307140878880",
"account.pf-id": "558731570586644109",
"bundle.name": "Customer bundle (minKYC without PAN)",
"policies": "{}",
"account.account-holder-id": "b9988179-9a74-41f5-aba4-0b85e501fd68",
"journal.voucherCode": "ATLAS_P2M_AUTH",
"journal.self": "false",
"zeta.card-program-ids": "",
"aura.parent-node-id": "1159171505324535297",
"isForced": "false",
"payment.captured": "true",
"account.account_holder.account_holder_provider_id": "862bb162-b5ad-4112-9d73-bb2306546a36",
"zeta.ifi": "140827",
"zeta.ppi-type": "OPEN",
"zeta.product-type": "Generic",
"zeta.ifi-product-type": "GPR_MIN_KYC_WITHOUT_PAN",
"athena.account-provider-id": "a36ac47b-c2a2-406c-b6a0-f8857fc5f735",
"zeta.business-id": "140827"
},
"headers": {}
}
],
"totalRecord": 6,
"headers": {}
}

Reverse Account Transactions

In case of any disputes, pass transactionID as a path parameter to reverse fund transfer. For partial transaction reversals, set doPartialReversal to True.

Endpoint URI

GET

/api/v1/ifi/{ifiID}/transactions/{transactionID}/reversal

Input parameters

  • ifiID: Required. Unique identifier of the sponsor IFI.
  • transactionID: Required. Unique identifier of the transaction which is to be reversed.
  • requestID: Required. Unique identifier of the A2A Reversal.
  • currency: Required. Currency for which reversal is required. For example, INR, USD, and more.
  • amount: Required. Amount that needs to be reversed.
  • doPartialReversal: Optional. Pass true for partial reversal,  false for full reversal of transaction.
  • transferCode: Required. Code to specify the mode of fund transfer eg. P2P, P2M etc.
  • remarks: Optional. Remarks for the fund reversal.

Samples

Request

Response

cURL Sample
curl --location --request POST 'https://fusion.preprod.zeta.in/api/v1/ifi/{ifiID}/transactions/{transactionID}/reversal' \
--header 'Authorization: Bearer <token> ' \
--data-raw '{
"requestID": "reversal_fampay_test-1",
"currency": "INR",
"amount" : "100",
"doPartialReversal" : true,
"transferCode": "ATLAS_P2M_AUTH-REVERSAL",
"remarks": "reversal_for_fampay"
}'
JSON Sample
{
"amount": 1,
"currency": "INR",
"paymentType": "REVERSAL",
"remark": "Reversal of vbo1",
"requestID": "93480e72-b883-46fa-8f3f-abe326ab9df7",
"revertTransactionID": "20200429121612790_14_revert_375231000459_reversal_dfdsrdkedddsdd",
"status": "SUCCESS/FAILED",
"statusDetails": {
"asBigDecimal": 0,
"asBigInteger": 0,
"asBoolean": true,
"asByte": 0,
"asCharacter": "string",
"asDouble": 0,
"asFloat": 0,
"asInt": 0,
"asJsonPrimitive": {
"asBigDecimal": 0,
"asBigInteger": 0,
"asBoolean": true,
"asByte": 0,
"asCharacter": "string",
"asDouble": 0,
"asFloat": 0,
"asInt": 0,
"asLong": 0,
"asNumber": {},
"asShort": 0,
"asString": "string",
"boolean": true,
"jsonArray": true,
"jsonNull": true,
"jsonObject": true,
"jsonPrimitive": true,
"number": true,
"string": true
},
"asLong": 0,
"asNumber": {},
"asShort": 0,
"asString": "string",
"jsonArray": true,
"jsonNull": true,
"jsonObject": true,
"jsonPrimitive": true
},
"transactionID": "20181206084927090_687_375231000459",
"transferCode": "ATLAS_P2M_AUTH-REVERSAL"
}

On this page:

Need Help?

Drop a mail at fusion-support@zeta.tech or call us on 080-6690 5995.

  • No labels