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
Headers
Request body
string
required
The
transactionId returned by Consent Creation.string
required
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, uniquerequestId 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
DuplicaterequestId:
transactionId doesn’t resolve to any known transaction — checked before consentId
resolution.
consentId doesn’t resolve, or resolves under a different transactionId than
supplied.
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.