Skip to main content

Overview

This guide describes the end-to-end integration flow for initiating user consent, handling user redirection, tracking transaction status, and fetching analytics data using the Intelligent Data Fetch system with AA + PDF fallback.
This integration uses a unified transactionId for all operations, simplifying the flow compared to the legacy consent-based approach.

Integration Flow

1

Initiate Consent

Call POST /v3/requestconsent to start the consent journey and receive a transaction_id
2

Redirect User

Redirect user to webRedirectionUrl to complete the consent journey
3

Track Status

Monitor status via webhook (recommended) or polling API
4

Fetch Data

Once eventStatus is SUCCESS, fetch analytics using /analytics/json, /analytics/xml, or /analytics/excel

Endpoint

POST /v3/requestconsent

Headers

HeaderDescription
Content-Typeapplication/json
client_idYour client ID
client_secretYour client secret
organisationIdYour organisation ID
appIdentifierYour app identifier

Request Body

{
  "vua": "<mobile_number>@onemoney",
  "accountID": "<account_id>",
  "productIDList": ["<product_id_1>", "<product_id_2>"],
  "partyIdentifierValue": "<mobile_number>",
  "partyIdentifierType": "MOBILE",
  "redirectUrl": "<your_redirect_url>",
  "fipID": ["<fip_id_1>", "<fip_id_2>"],
  "pan": "<pan_number>",
  "checks_overrides": {
    "min_salary_value": 30000,
    "min_avg_balance": 50000
  }
}

Request Parameters

vua
string
required
Virtual User Address (e.g., 9876543210@onemoney)
accountID
string
required
Unique account identifier
productIDList
array
required
Array of product IDs for multi-consent. Use either this or productID
partyIdentifierValue
string
required
User identifier value (mobile, PAN, Aadhaar, etc.)
partyIdentifierType
string
required
Type: MOBILE, PAN, AADHAR, EMAIL, DOB, GSTIN
redirectUrl
string
Callback URL after consent journey
fipID
array
Array of FIP IDs for smart routing
pan
string
PAN number (format: ABCDE1234F)
config
object
Configuration object for custom data range
checks_overrides
object
Runtime, per-request thresholds for business-rule checks (see below)

Config Object (Optional)

{
  "config": {
    "fiDataRange": {
      "from": "2023-01-01T00:00:00.000Z",
      "to": "2024-01-01T00:00:00.000Z"
    }
  }
}

Checks Overrides (Optional)

Runtime, per-request thresholds for the business-rule checks evaluated during the journey. It is a flat key→value map where each key is the parameter name of a configurable check and each value is the threshold that check is evaluated against for this request. This lets you tune check thresholds per consent request without changing the configuration set up for your product.
{
  "checks_overrides": {
    "min_salary_value": 30000,
    "min_avg_balance": 50000
  }
}
  • If you want to set thresholds dynamically, pass the values in checks_overrides.
  • If you do not need dynamic thresholds, omit the field — the threshold configured for your product is used instead, with no API change required.
  • A key that does not match a configurable check is ignored.
  • The set of configurable checks and their parameter names are agreed during onboarding. To enable or change them, contact support@moneyone.in.

Sample Request

curl --location '<base_url>/v3/requestconsent' \
--header 'Content-Type: application/json' \
--header 'organisationId: <your_organisation_id>' \
--header 'client_id: <your_client_id>' \
--header 'client_secret: <your_client_secret>' \
--header 'appIdentifier: <your_app_identifier>' \
--data-raw '{
  "vua": "9876543210@onemoney",
  "accountID": "ACC001",
  "productIDList": ["PROD001"],
  "partyIdentifierValue": "9876543210",
  "partyIdentifierType": "MOBILE",
  "redirectUrl": "https://yourapp.com/callback"
}'

Response

{
  "ver": "1.21.0",
  "status": "success",
  "data": {
    "webRedirectionUrl": "<web_redirection_url>",
    "transaction_id": "<transaction_id>"
  },
  "message": "Success"
}
Store the transaction_id for future reference. The webRedirectionUrl contains a time-bound access_token - do not modify it.

Step 2: User Redirection

Redirect the user to the webRedirectionUrl received in Step 1.

Post-Journey Redirect

After completing the consent journey, users are automatically redirected to your redirectUrl with the following parameters:
ParameterDescription
txnidTransaction identifier
statusJourney status (true = success, false = failure)
Example:
https://yourapp.com/callback?txnid=abc123&status=true
To configure additional redirect URL parameters, contact support@moneyone.in.

Step 3: Status Tracking

You can track the transaction status using one of the following methods:

Step 4: Fetch Data

Once the data fetch is completed (eventStatus = SUCCESS), fetch raw FI data or analytics.

Available Endpoints

TypeEndpointDescription
Raw FI DataPOST /getallfidataRaw FI data (AA or PDF)
Analytics JSONPOST /analytics/jsonAnalytics in JSON format
Analytics XMLPOST /analytics/xmlAnalytics in XML format
Analytics ExcelPOST /analytics/excelAnalytics as Excel file

Request Body

All endpoints use the same request body:
{
  "transactionId": "<transaction_id>"
}
You can obtain the FI data two ways: pull it on demand with POST /getallfidata, or have it pushed to your webhook as soon as it is ready. Both carry the same FI data records.

Endpoint

POST /getallfidata

Sample Request

curl --location '<base_url>/getallfidata' \
--header 'Content-Type: application/json' \
--header 'organisationId: <your_organisation_id>' \
--header 'client_id: <your_client_id>' \
--header 'client_secret: <your_client_secret>' \
--header 'appIdentifier: <your_app_identifier>' \
--data '{
    "transactionId": "<transaction_id>"
}'

Sample Response

{
  "ver": "1.21.0",
  "status": "success",
  "data": [
    {
      "linkReferenceNumber": "243212010002508",
      "maskedAccountNumber": "243212010002508",
      "fiType": "DEPOSIT",
      "bank": "ubi",
      "isTampered": false,
      "dataSource": "PDF",
      "checks": {
        "indicators": [
          {
            "check_id": "MIN_SALARY_15000",
            "metadata": {
              "salary": "40000"
            },
            "result": "PASS"
          }
        ]
      },
      "Profile": {
        "Holders": {
          "Holder": [
            {
              "name": "JOHN DOE",
              "mobile": "9876543210",
              "email": "john@example.com"
            }
          ]
        }
      },
      "Summary": {
        "currentBalance": "6981.1",
        "currency": "INR",
        "type": "saving",
        "ifscCode": "UBIN0824321"
      },
      "Transactions": {
        "startDate": "07-12-2024",
        "endDate": "25-01-2025",
        "Transaction": [
          {
            "type": "credit",
            "amount": "5500.0",
            "currentBalance": "5501.0",
            "transactionTimestamp": "10-12-2024",
            "narration": "UPI/TRANSFER"
          }
        ]
      },
      "type": "PDF"
    }
  ]
}

Response Fields

FieldDescription
data[].typeData source (AA or PDF)
data[].fiTypeFinancial information type (e.g., DEPOSIT)
data[].isTamperedData tampering flag
data[].ProfileAccount holder details
data[].SummaryAccount summary
data[].TransactionsTransaction list
data[].checksBusiness-rule checks evaluated for this account (see Checks)
data[].checks.indicators[].check_idIdentifier of the check (e.g., MIN_SALARY_15000)
data[].checks.indicators[].metadataMap of source values used to evaluate the check
data[].checks.indicators[].resultCheck outcome (PASS, FAILED)
Analytics output format is configurable. Contact support@moneyone.in to configure your preferred format.

UI Events (postMessage API)

When the orchestration UI is embedded in an iframe, it communicates with the parent window using the postMessage API.

Event Structure

{
  "type": "REDIRECT",
  "eventCode": "JOURNEY-SUCCESS",
  "message": "Workflow completed successfully for transaction <transaction_id>",
  "statusData": { ... }
}

Event Codes

Event CodeTrigger ConditionDescription
JOURNEY-SUCCESSstatus === 'SUCCESSFUL'Workflow completed successfully
JOURNEY-FAILUREstatus === 'UNSUCCESSFUL' or 'EXPIRED' or 'CANCELLED'Workflow failed
JOURNEY-SKIPPEDstatus === 'SKIPPED'Workflow was skipped
JOURNEY-NETBANKING-REDIRECTNetbanking redirect requiredUser needs netbanking redirect

Listening for Events

window.addEventListener('message', (event) => {
  const { type, eventCode, message, statusData } = event.data;

  if (eventCode === 'JOURNEY-SUCCESS') {
    console.log('Workflow success:', statusData);
  } else if (eventCode === 'JOURNEY-FAILURE') {
    console.log('Workflow failed:', message);
  } else if (eventCode === 'JOURNEY-SKIPPED') {
    console.log('Workflow skipped:', message);
  }
});

Quick Reference

Endpoints

ActionMethodEndpoint
Initiate ConsentPOST/v3/requestconsent
Check StatusPOST/transaction/status
Fetch Raw FI DataPOST/getallfidata
Fetch Analytics (JSON)POST/analytics/json
Fetch Analytics (XML)POST/analytics/xml
Fetch Analytics (Excel)POST/analytics/excel

Required Headers

HeaderRequired
Content-TypeYes
client_idYes
client_secretYes
organisationIdYes
appIdentifierYes

Need Help?

Contact support@moneyone.in for technical assistance or integration queries.