Skip to main content
POST
Error

Overview

The Consent Request V4 API represents the most advanced consent initiation capability in the FinPro platform. Unlike V2 and V3 which return a single consent handle, V4 creates separate consent handles for each Financial Information Provider (FIP) specified in the request. This granular approach provides several advantages for complex consent scenarios:
  • Independent Tracking: Each FIP gets its own consent handle, allowing you to track approval, rejection, or revocation independently per financial institution.
  • Partial Success Handling: If consent is approved for some FIPs but rejected for others, you can identify exactly which institutions the customer authorized.
  • Selective Data Fetching: Request financial information from specific FIPs based on which consents were approved, rather than an all-or-nothing approach.
  • Better Error Handling: If one FIP fails during the consent process, other FIP consents remain unaffected and can proceed normally.
This API is ideal for scenarios where you need fine-grained control over multi-FIP consent journeys, such as comprehensive credit underwriting that requires data from multiple banks, or wealth management applications that aggregate accounts across numerous financial institutions.

Endpoint

Authentication

This API requires authentication through the following headers that must be included in every request:

Request Body

The request body must be a JSON object containing the following parameters:

Important Notes

  • FIP Specificity: The real value of V4 comes from specifying multiple FIPs in the fipID array. Each FIP will receive its own consent handle, enabling independent tracking.
  • Success and Failure Lists: The response includes both successList (FIPs for which consent handles were created successfully) and optionally a failure list (FIPs that encountered errors during handle creation).
  • Overall Status: The top-level status field indicates whether the overall request was processed successfully. Individual FIP success/failure is tracked within the response data structure.
  • Party Identifier Validation: The API performs strict validation on partyIdentifierValue. Mobile numbers must be exactly 10 digits, and any format violation will cause the entire request to fail.
  • Date of Birth: The optional dob is an additional weak identifier used for account discovery at Financial Information Providers that require it. Provide it as either DDMMYYYY or YYYY-MM-DD; the platform normalizes it to YYYY-MM-DD before sending it to the Account Aggregator. A value matching neither format is rejected with a validation error. Supply it alongside pan when the target FIP mandates additional identifiers for discovery.

Response

Success Response (200 OK)

When consent handles are successfully created for one or more FIPs, the API returns a detailed response with per-FIP consent handles:

Response with Partial Failures

In some scenarios, consent handles may be created successfully for some FIPs while others fail. The response structure accommodates this:

Error Response (400 Bad Request)

When the request contains invalid data or fails validation before processing FIPs, the API returns an error response:

Common Error Codes

Example Request

Use Cases for V4

Credit Underwriting with Multiple Banks

When evaluating a loan application, you may need bank statements from multiple institutions:

Wealth Management Account Aggregation

For comprehensive financial planning, aggregate accounts across multiple banks and investment platforms:

Next Steps

After successfully creating consent requests with V4:
  1. Store Consent Handle Mapping: Create a mapping between FIP IDs and their corresponding consent handles in your database. This allows you to correlate webhook notifications and status updates back to specific FIPs.
  2. Track Per-FIP Status: Implement logic to track consent status independently for each FIP. Some customers may approve certain banks quickly while taking longer for others.
  3. Configure Webhooks: Ensure your webhook handlers can process notifications for each consent handle separately. You may receive approval for one FIP and rejection for another.
  4. Handle Partial Approvals: Build business logic to proceed with data fetching from approved FIPs while gracefully handling rejections from others. Don’t wait for all consents to be approved if your use case allows partial data.
  5. Request FI Data Selectively: When requesting financial information, you can now target specific FIPs based on which consents were approved, optimizing data fetches and reducing API calls.
  6. Monitor Failure List: If the response includes a failureList, log these errors and consider whether to retry with corrected FIP IDs or proceed with successful consents only.

API Version Comparison

  • V2: Returns a single consent handle with PENDING status. No web redirection URL. Basic consent creation.
  • V3: Returns a webRedirectionUrl for automatic customer redirect. Single consent handle covers all FIPs. Good for simple multi-FIP scenarios.
  • V4 (this API): Returns separate consent handles per FIP for granular tracking. Enables independent lifecycle management per financial institution. Best for complex multi-FIP scenarios requiring fine-grained control.
Choose V4 when:
  • You need to track consent status independently per FIP
  • Your use case can proceed with partial consent approvals
  • You want to optimize data fetching based on which FIPs were approved
  • You require detailed error handling at the FIP level
  • You’re building comprehensive financial aggregation or underwriting systems

Authorizations

client_id
string
header
required

Your unique client identifier provided by MoneyOne during FIU onboarding

client_secret
string
header
required

Your confidential client secret provided by MoneyOne

organisationId
string
header
required

Your organization's unique identifier in the FinPro system

appIdentifier
string
header
required

Application-specific identifier for tracking API calls

Body

application/json
productID
string
required

The unique identifier of the consent template configured in the FinPro admin portal. This template defines the purpose code, consent validity, FI types, fetch frequency, and other consent parameters.

vua
string
required

The customer's Virtual User Address (VUA) in format mobile@onemoney. This is the unique identifier used by Account Aggregators to identify the customer.

partyIdentifierType
enum<string>
required

The type of identifier being provided for the customer. Must match the format of partyIdentifierValue.

Available options:
MOBILE,
EMAIL,
PAN
partyIdentifierValue
string
required

The actual identifier value. For MOBILE: 10-digit Indian mobile number without country code. For EMAIL: email address. For PAN: 10-character PAN number.

accountID
string
required

A unique identifier from your system that links this consent request to a specific customer interaction, loan application, or transaction.

pan
string

The customer's Permanent Account Number (PAN). Required for certain consent types. Must be a valid 10-character Indian PAN format.

dob
string

The customer's Date of Birth, supplied as an additional weak identifier for account discovery at Financial Information Providers that require it (per Sahamati's additional-identifiers mandate). Accepts either DDMMYYYY or YYYY-MM-DD format; the platform normalises it to YYYY-MM-DD before forwarding it to the Account Aggregator. Optional.

Pattern: ^((0[1-9]|[12][0-9]|3[01])(0[1-9]|1[0-2])[0-9]{4}|[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))$
Example:

"1990-05-21"

fipID
string[]

An array of Financial Information Provider identifiers for which separate consent handles will be created. Each FIP will get its own consent handle in the response.

redirectUrl
string<uri>

The URL where the customer should be redirected after completing the consent journey. Must be a valid HTTPS URL.

Response

Consent request created successfully

ver
string

The version of the FinPro API that processed this request.

status
string

Overall API call status. Will be 'success' when the request was processed successfully.

data
object