Skip to main content
POST
/
v2
/
schedule
/
fi
/
requests
Schedule Bulk FI Requests
curl --request POST \
  --url https://api.example.com/v2/schedule/fi/requests \
  --header 'Content-Type: <content-type>' \
  --header 'appIdentifier: <appidentifier>' \
  --header 'client_id: <client_id>' \
  --header 'client_secret: <client_secret>' \
  --header 'organisationId: <organisationid>' \
  --data '
{
  "reference_id": "<string>",
  "consents_list": [
    {
      "consent_id": "<string>",
      "fiDataRangeFrom": "<string>",
      "fiDataRangeTo": "<string>",
      "configId": "<string>"
    }
  ],
  "fiDataRangeFrom": "<string>",
  "fiDataRangeTo": "<string>",
  "configId": "<string>"
}
'
{
  "ver": "<string>",
  "timestamp": "<string>",
  "txnid": "<string>",
  "status": "<string>",
  "message": "<string>",
  "data": {
    "reference_id": "<string>",
    "batch_id": "<string>",
    "status": "<string>",
    "total_records": 123,
    "tracking_url": "<string>"
  }
}

Overview

The Schedule Bulk FI Requests API allows you to submit multiple Financial Information (FI) requests in a single API call.

Notes

  • Each batch requires a unique reference_id for tracking purposes. This ID is provided by you and must be unique across all your batches.
  • Duplicates in consents_list are accepted and will be scheduled as separate rows.
  • You can specify global defaults for date ranges and config that apply to all records, with optional per-row overrides.
  • Maximum batch size is 10,000 consents per request.

Authentication

This API requires authentication using the following headers:
client_id
string
required
Your unique client identifier provided by FinPro during onboarding.
client_secret
string
required
Your confidential client secret key provided by FinPro.
appIdentifier
string
required
The unique identifier for your application.
organisationId
string
required
Your organization’s unique identifier assigned by FinPro.
Content-Type
string
required
Must be set to application/json.

Request Body

reference_id
string
required
A unique identifier for this batch, provided by you. Must be alphanumeric with hyphens and underscores allowed, between 5-60 characters. This ID is used for tracking and querying batch status.
consents_list
array
required
An array of consent objects to process. Maximum 10,000 items per request.
fiDataRangeFrom
string
Global default start date for financial data (ISO 8601 format). Applied to all consents that don’t specify their own value.
fiDataRangeTo
string
Global default end date for financial data (ISO 8601 format). Applied to all consents that don’t specify their own value.
configId
string
Global default analytics configuration ID. Applied to all consents that don’t specify their own value.

Request Example

{
  "reference_id": "batch-20251110-001",
  "consents_list": [
    {
      "consent_id": "54450ac0-8bcb-4b9c-ad74-29b4fabe18f7",
      "fiDataRangeFrom": "2024-01-01T00:00:00Z",
      "fiDataRangeTo": "2024-06-30T23:59:59Z",
      "configId": "analytics-config-1"
    },
    {
      "consent_id": "7b2d9e3a-1f4c-4a8b-9c6d-2e5f8a9b0c1d"
    },
    {
      "consent_id": "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
      "fiDataRangeTo": "2024-12-31T23:59:59Z"
    }
  ],
  "fiDataRangeFrom": "2024-01-01T00:00:00Z",
  "fiDataRangeTo": "2024-12-31T23:59:59Z",
  "configId": "analytics-config-default"
}
In this example:
  • The first consent uses its own date range and config.
  • The second consent uses the global defaults for all parameters.
  • The third consent uses the global fiDataRangeFrom and configId, but overrides fiDataRangeTo.

Response Parameters

ver
string
The API version that processed the request.
timestamp
string
The timestamp when the response was generated (ISO 8601 format).
txnid
string
A unique transaction ID for this API call.
status
string
The status of the API call. Returns "success" when the batch is accepted.
message
string
A human-readable message describing the result.
data
object
Contains batch details and tracking information.

Success Response Example

{
  "ver": "1.0",
  "timestamp": "2024-11-10T12:00:00Z",
  "txnid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "success",
  "message": "Batch accepted and queued for processing",
  "data": {
    "reference_id": "batch-20251110-001",
    "batch_id": "5284f779-69a5-4934-8816-40c648d6bb80",
    "status": "READY",
    "total_records": 3,
    "tracking_url": "/bulk/status"
  }
}

Error Responses

Missing Reference ID

When the reference_id field is not provided:
{
  "ver": "1.0",
  "timestamp": "2024-11-10T12:00:00Z",
  "txnid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "errorCode": "MissingReferenceId",
  "errorMsg": "reference_id is required"
}
HTTP Status Code: 400 Bad Request

Duplicate Reference ID

When the reference_id already exists:
{
  "ver": "1.0",
  "timestamp": "2024-11-10T12:00:00Z",
  "txnid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "errorCode": "DuplicateReferenceId",
  "errorMsg": "reference_id 'batch-20251110-001' already exists"
}
HTTP Status Code: 409 Conflict

Validation Failed

When the request body contains invalid data:
{
  "ver": "1.0",
  "timestamp": "2024-11-10T12:00:00Z",
  "txnid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "errorCode": "InvalidRequest",
  "errorMsg": "consents_list cannot exceed 10,000 records",
  "errorDetails": {
    "field": "consents_list",
    "provided": 15000,
    "max": 10000
  }
}
HTTP Status Code: 400 Bad Request

Common Error Codes

Error CodeDescription
MissingReferenceIdThe reference_id field is required but was not provided.
DuplicateReferenceIdA batch with this reference_id already exists.
InvalidRequestThe request body contains invalid data (e.g., too many records, invalid date format).
InvalidDateRangeThe fiDataRangeFrom is after fiDataRangeTo.