Skip to main content
Data Request triggers a data pull for an already-approved consent. Whether you need to call this explicitly depends on the product’s fiFetch configuration (see User Redirection): MANUAL products require this call for each consent you want data for; AUTOMATIC products fetch data on approval without it.

Endpoint

Base URL: provided to you at onboarding.

Headers

Request body

string
required
The transactionId returned by Consent Creation.
The consent to trigger a data pull for.
string
required
Idempotency key — see “Idempotency,” below.
This call does not take a fiuId field — MoneyOne always resolves which FIU a consent belongs to from consentId itself. Use Track Status if you need to know which FIU a given consentId belongs to.

Sample request

Response

Idempotency — pay attention here

Each already-approved consent has a limited, metered number of data-pull calls, following from the fetch frequency/duration declared for that consent when it was raised with the Account Aggregator — this is not a billing concept. Every call to this endpoint — duplicate or not — consumes one, and a consumed slot cannot be recovered. Always use a fresh, unique requestId per intended call, and don’t retry blindly on a timeout without checking Track Status first to confirm whether the original call actually went through.

Error Codes

Duplicate requestId:
Identifier doesn’t resolve:
transactionId doesn’t resolve to any known transaction — checked before consentId resolution.
consentId doesn’t resolve, or resolves under a different transactionId than supplied.
The consent was found, but isn’t currently usable for a data pull — either its status isn’t ACTIVE (including expired), or it isn’t configured to allow manual/on-demand data requests. The message field carries the specific reason; the errorCode is the same for all three cases.

Data-fetch webhook

Register your own webhook URL with MoneyOne at onboarding to be notified when a data pull started by this call finishes. Delivery is per-FIU, independently — not consolidated the way the consent callback is, since each Data Request call is already scoped to one consent.

Payload shape

linkRefNumbers[] is per-account — a single data-fetch session can have some accounts ready and others denied or timed out in the same event. Check each account’s fiStatus individually rather than treating the event as all-or-nothing.
If your webhook is unreachable, or you’d rather poll: Track Status remains available at any time — pass transactionId alone for every consent under a journey in one call, or specific consentId/sessionId/consentHandle values for detailed, per-session, per-account status. Use webhook as the primary signal and polling as a complement, not a pure fallback used only when webhooks fail.

Next step

Retrieve the data once ready via Fetch Data, tracking progress in the meantime via Track Status.