Validate · Enforce · Trust
Fixed On Demand — Requirements v2.16 min read
The Consent requirements and the User Journeys for this payment type also apply and must be adhered to.
The tables below list the validation rules that apply to Fixed On Demand. The Validated by column indicates where each rule is enforced. All requests require an active Trust Framework application with the BSIP role, a valid transport certificate presented on every request via mTLS, and an active signing key for JWT signing.
01 Endpoint
Consent Creation
POST
/parThe consent is submitted inside a signed Request JWT sent to the Authorization Server. The consent.* fields referenced in the table below are nested as authorization_details[0].consent within that JWT. The POST body must also include a client assertion to authenticate the TPP application.
#
Field
Rule
Validated by
1
Request JWT
Must conform to the Request JWT requirements — correct
aud, signing algorithm (PS256), and expiry window.API Hub
2
client_assertionMust be included in the POST body (
client_assertion_type: urn:ietf:params:oauth:client-assertion-type:jwt-bearer). Authenticates the TPP application — see Client Assertion.API Hub
3
scope (in Request JWT)Must be
payments openid. If consent.Permissions includes any of ReadAccountsBasic, ReadAccountsDetail, or ReadBalances, must be accounts payments openid — see Account Permissions in a Payment Consent.API Hub
4
authorization_details[0].type (in Request JWT)Must be
urn:openfinanceuae:service-initiation-consent:v2.1.API Hub
5
API version supported
The consent version in
authorization_details[0].type (e.g. urn:openfinanceuae:service-initiation-consent:v2.1) restricts the version of the Payment Initiation endpoints the consent can be used to call (specified in the path, e.g. /open-finance/payment/v2.1/payments). It MUST resolve to an ApiVersion the LFI has published in the Trust Framework for the Payment Initiation API family.LFI/consent/action/validate
6
OpenAPI schema
The request must conform exactly to the POST
/par OpenAPI schema. No additional or undocumented parameters are permitted.API Hub
7
consent.PersonalIdentifiableInformationThe decrypted PII payload must conform exactly to the PII schema. No additional or undocumented parameters are permitted.
LFI/consent/action/validate
8
consent.PersonalIdentifiableInformation.RiskThe
Risk block must be fully populated — every field that is known or derivable from the TPP's system must be included. See Risk.Monitored by Nebras
9
Initiation.DebtorAccountIf provided, must reference a valid UAE IBAN held at the LFI and reachable through this API Hub. The account must be in a state that permits payment initiation (e.g. not blocked, dormant, or closed).
LFI/consent/action/validate
10
Initiation.CreditorRequired. Must contain exactly one creditor entry. The Creditor must be a valid UAE domestic creditor — the account must be reachable on a supported UAE domestic rail (AANI or UAEFTS) and, where the LFI can determine the state of the receiving account, in a state able to receive payments. Mandatory fields, IBAN, and BIC derivation rules apply — see creditor field validation requirements.
LFI/consent/action/validate
11
consent.ControlParameters.IsDelegatedAuthenticationMust be
false or not provided (Delegated SCA is not permitted for this payment type).API Hub
12
consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.TypeMust be
"FixedOnDemand". SinglePayment and FilePayment must not be present.API Hub
13
consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.AmountRequired. Defines the exact fixed amount for each payment.
API Hub
14
consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Amount.CurrencyMust be
AED.API Hub
15
consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.ControlsAt least one of
MaximumCumulativeNumberOfPaymentsPerPeriod or MaximumCumulativeValueOfPaymentsPerPeriod must be provided.API Hub
16
MaximumCumulativeValueOfPaymentsPerPeriodIf set,
MaximumCumulativeValueOfPaymentsPerPeriod.Currency must be AED.API Hub
17
consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.PeriodStartDateIf provided, must not be in the past. Must not be after
consent.ExpirationDateTime.API Hub
18
consent.ControlParameters.ConsentSchedule.MultiPayment.MaximumCumulativeValueOfPaymentsIf set, defines the maximum total value of all payments permitted across the lifetime of the consent.
API Hub
19
MaximumCumulativeValueOfPaymentsIf set,
MaximumCumulativeValueOfPayments.Currency must be AED.API Hub
20
Consent (unsupported)
The LFI must advertise Fixed On Demand as supported via
ApiMetadata.FixedOnDemand.Supported on its authorisation server entry in the Trust Framework. If the payment type is not supported, the consent validation will fail.LFI/consent/action/validate
21
consent.BaseConsentIdIf provided, must reference a previous consent belonging to the same end user. If the original consent in the chain already had a
BaseConsentId, the TPP must reuse that same BaseConsentId rather than the immediate prior ConsentId.LFI/consent/action/validate
22
consent.IsSingleAuthorizationOptional; default is
false. Omitting or setting to false asserts that the TPP supports the multi-authorization flow — the consent may remain pending while additional authorizers approve before reaching Authorized. Setting to true requests that only accounts solely authorizable by the authenticated customer be offered. The LFI must not reject the consent based on its own platform capability — this is a TPP-side assertion. See Multi-Authorization.TPP
23
consent.AuthorizationExpirationDateTimeIf provided, must not be in the past. Must not be after
consent.ExpirationDateTime.API Hub
24
consent.ExpirationDateTimeMust not be in the past. Must be less than one year in the future.
API Hub
25
consent.PermissionsIf
ReadBalances is included, at least one of ReadAccountsBasic or ReadAccountsDetail must also be present.API Hub
26
consent.CurrencyRequestMust not be present. Domestic payments are denominated in AED only;
CurrencyRequest is for non-local currency and international transfers.LFI/consent/action/validate
27
consent.PaymentPurposeCodeIf provided, must be a recognised AANI purpose code.
API Hub
28
x-fapi-interaction-idShould be included. Should be a valid UUID (RFC 4122). An invalid value will not cause a failure but tracing will not be possible.
N/A
03 Endpoint
Payment Initiation
POST
/payments#
Field
Rule
Validated by
1
AuthorizationMust contain a valid Bearer access token issued with the
payments openid scope (or accounts payments openid where account permissions were included on the consent — see Account Permissions in a Payment Consent). The consent bound to the token must be in Authorized status and the ExpirationDateTime of the Consent must be in the future.API Hub
2
URL version
The version in the request URL path (e.g.
v2.1 in /open-finance/service-initiation/v2.1/payments) must match the version in the consent's authorization_details[0].type (urn:openfinanceuae:service-initiation-consent:v2.1).API Hub
3
Data.ConsentIdMust match the
ConsentId bound to the access token. The Consent must be in Authorized status and the ExpirationDateTime of the Consent must be in the future.API Hub
4
Data.Instruction.Amount.AmountMust exactly match
consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Amount.Amount.API Hub
5
Data.Instruction.Amount.CurrencyMust exactly match
consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Amount.Currency.API Hub
6
MaximumCumulativeNumberOfPaymentsPerPeriodIf set on the consent, the payment must not cause the count of payments in the current period to exceed
MaximumCumulativeNumberOfPaymentsPerPeriod.API Hub
7
MaximumCumulativeValueOfPaymentsPerPeriodIf set on the consent, the payment must not cause the value of payments in the current period to exceed
MaximumCumulativeValueOfPaymentsPerPeriod.Amount.API Hub
8
MaximumCumulativeNumberOfPaymentsIf set on the consent, the payment must not cause the count of payments over the lifetime of the consent to exceed
MaximumCumulativeNumberOfPayments.API Hub
9
MaximumCumulativeValueOfPaymentsIf set on the consent, the payment must not cause the value of payments over the lifetime of the consent to exceed
MaximumCumulativeValueOfPayments.Amount.API Hub
10
Data.PaymentPurposeCodeCan differ from
consent.PaymentPurposeCode. If provided, must be a recognised AANI purpose code.API Hub
11
OpenAPI schema
The request must conform exactly to the POST
/payments OpenAPI schema. No additional or undocumented parameters are permitted.API Hub
12
PersonalIdentifiableInformationThe decrypted PII payload must conform exactly to the PII schema. No additional or undocumented parameters are permitted.
LFI
13
PersonalIdentifiableInformation.RiskThe
Risk block must be fully populated — every field that is known or derivable from the TPP's system must be included. See Risk.Monitored by Nebras
14
PersonalIdentifiableInformation (Creditor)Initiation.Creditor[] had exactly 1 entry at consent time. The submitted creditor must exactly match that consent-time entry. See Creditor.LFI
15
x-fapi-interaction-idShould be included. Should be a valid UUID (RFC 4122). An invalid value will not cause a failure but tracing will not be possible.
N/A
16
x-idempotency-keyMust be included. Must be a stable, unique value per payment attempt — the same key must be reused on retries of the same payment.
API Hub
17
x-fapi-auth-dateMust be sent when the customer is authenticated at the time of the call. Must be a valid HTTP-date (RFC 7231), e.g.
Tue, 11 Sep 2012 19:43:31 UTC.TPP
18
x-fapi-customer-ip-addressMust be sent when the customer is actively present at the time of the call. Must be a valid IPv4 or IPv6 address.
TPP
19
x-customer-user-agentShould be sent when the customer is actively present. Should reflect the user-agent of the customer's browser or device.
TPP
