v2.2-rc2 is not ratified and MUST NOT be used for production. Current: v2.1. Changelog
This is v2.2-rc2 — a release candidate for the v2.2 standards, published for review and not yet ratified. It MUST NOT be used as the basis for a production implementation. For the current standards, switch to v2.1 using the version selector. See the v2.1 → v2.2-rc2 changelog for every change in this version.
Fixed Periodic Schedule — Requirements v2.2-rc26 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 Periodic Schedule. 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.
Consent Creation
/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.
aud, signing algorithm (PS256), and expiry window.client_assertionclient_assertion_type: urn:ietf:params:oauth:client-assertion-type:jwt-bearer). Authenticates the TPP application — see Client Assertion.scope (in Request JWT)payments openid. If consent.Permissions includes any of ReadAccountsBasic, ReadAccountsDetail, ReadBalances, or ReadPartyIdentity, must be accounts payments openid — see Account Permissions in a Payment Consent.authorization_details[0].type (in Request JWT)urn:openfinanceuae:service-initiation-consent:v2.2.authorization_details[0].type (e.g. urn:openfinanceuae:service-initiation-consent:v2.2) 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.2/payments). It MUST resolve to an ApiVersion the LFI has published in the Trust Framework for the Payment Initiation API family./par OpenAPI schema. No additional or undocumented parameters are permitted.consent.PersonalIdentifiableInformationconsent.PersonalIdentifiableInformation.RiskRisk block must be fully populated — every field that is known or derivable from the TPP's system must be included. See Risk.Initiation.DebtorAccountInitiation.CreditorInitiation.DebtorAccount and Initiation.Creditor are provided, Initiation.DebtorAccount.Identification MUST NOT be the same as the CreditorAccount.Identification of any entry in Initiation.Creditor. A payment MUST NOT be instructed from and to the same account. Payments between two different accounts held by the same User are not affected.consent.ControlParameters.IsDelegatedAuthenticationfalse or not provided (Delegated SCA is not permitted for this payment type).consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Type"FixedPeriodicSchedule". SinglePayment and FilePayment must not be present.consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Amountconsent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Amount.CurrencyAED.consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.PeriodTypeWeek, Month).consent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.PeriodStartDateconsent.ExpirationDateTime.consent.ControlParameters.ConsentSchedule.MultiPayment.MaximumCumulativeNumberOfPaymentsconsent.ControlParameters.ConsentSchedule.MultiPayment.MaximumCumulativeValueOfPaymentsMaximumCumulativeValueOfPaymentsMaximumCumulativeValueOfPayments.Currency must be AED.ApiMetadata.FixedPeriodicSchedule.Supported on its authorisation server entry in the Trust Framework. If the payment type is not supported, the consent validation will fail.consent.BaseConsentIdBaseConsentId, the TPP must reuse that same BaseConsentId rather than the immediate prior ConsentId.consent.IsSingleAuthorizationfalse. 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.consent.AuthorizationExpirationDateTimeconsent.ExpirationDateTime.consent.AuthorizationExpirationDateTime, which must be more than 15 minutes in the future and must not be after consent.ExpirationDateTime.consent.ExpirationDateTimeconsent.PermissionsReadBalances is included, at least one of ReadAccountsBasic or ReadAccountsDetail must also be present.consent.CurrencyRequestCurrencyRequest is for non-local currency and international transfers.consent.PaymentPurposeCodeconsent.DebtorReference-) separator; the Creditor LFI bank name (to a maximum of 8 characters) where the payment is not initiated on behalf of a Merchant; a dash; optionally the Merchant name (to a maximum of 8 characters) where the TPP initiates on behalf of a Merchant, followed by a dash; and the TPP name, as found in the Trust Framework or a recognisable alternative.x-fapi-interaction-idPayment Initiation
/paymentsAuthorizationpayments openid scope (or accounts payments openid where ReadAccountsBasic, ReadAccountsDetail, ReadBalances or ReadPartyIdentity was 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.v2.2 in /open-finance/service-initiation/v2.2/payments) must match the version in the consent's authorization_details[0].type (urn:openfinanceuae:service-initiation-consent:v2.2).Data.ConsentIdConsentId bound to the access token. The Consent must be in Authorized status and the ExpirationDateTime of the Consent must be in the future.Data.Instruction.Amount.Amountconsent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Amount.Amount.Data.Instruction.Amount.Currencyconsent.ControlParameters.ConsentSchedule.MultiPayment.PeriodicSchedule.Amount.Currency.MaximumCumulativeNumberOfPaymentsMaximumCumulativeNumberOfPayments.MaximumCumulativeValueOfPaymentsMaximumCumulativeValueOfPayments.Amount.Data.PaymentPurposeCodeconsent.PaymentPurposeCode. If provided, must be a recognised AANI purpose code.Data.DebtorReferenceconsent.DebtorReference — the TPP MAY set a per-payment Debtor Reference rather than reuse the consent value. Where it is not dictated by the requirements of the payments use case, it SHOULD still follow the Structured Reference convention described under Consent Creation.POST /payments within the same period will be rejected./payments OpenAPI schema. No additional or undocumented parameters are permitted.PersonalIdentifiableInformationPersonalIdentifiableInformation.RiskRisk block must be fully populated — every field that is known or derivable from the TPP's system must be included. See Risk.PersonalIdentifiableInformation.Risk.DebtorIndicators.EmiratesIdPOST /payments, matching ^784-?[0-9]{4}-?[0-9]{7}-?[0-9]{1}$. The LFI compares it with the Emirates ID of the PSU behind the consent, and may reject the payment with 400 Consent.BusinessRuleViolation when it is missing or does not match. See Emirates ID on Long-Lived Payments.PersonalIdentifiableInformation (Creditor)Initiation.Creditor[] had exactly 1 entry at consent time. The submitted creditor must exactly match that consent-time entry. See Creditor.Initiation.CreditorAccount.Identification in the PersonalIdentifiableInformation is the same as the debtor account of the consent, where the debtor account is known to the TPP — for example, because it was supplied in Initiation.DebtorAccount at consent creation, or read using account permissions included on the consent (see Account Permissions in a Payment Consent). A payment MUST NOT be instructed from and to the same account.x-fapi-interaction-idx-idempotency-keyx-fapi-auth-dateTue, 11 Sep 2012 19:43:31 UTC.x-fapi-customer-ip-addressx-customer-user-agent