...
Set the
AcceptedAuthorizationType
field to determine if a Single or Multiple Authorizers are supported.Set the
AuthorizationExpirationTimeWindow
AuthorizationExpirationDateTime
field to limit the overall time in which a Consent MUST be authorized.
...
2. Service Initiation Sequence Diagrams
The All sequence diagrams relating to Bank Service Initiation flows illustrate the API interactions completing successfully, with no API Errors.
...
are now available in the API Hub Documentation.
3. Service Initiation Examples
...
Code Block |
---|
{ "typ": "JWT", "alg": "PS256", "kid": "e4ce77c498e77000a25aa7b40e4a83f9" } . { "iss": "s6BhdRkqt3", "aud": "https://server.example.com", "response_type": "code", "redirect_uri": "https://openbanking.tpp1.ae/simple-redirect-url", "scope": "openid payments", "state": "2616df22-899e-468b-b7af-927145b067cc", "authorization_details": [ { "type": "urn:openfinanceuae:service-initiation-consent:v1.0-draft5rc1", "consent": { "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "AcceptedAuthorizationTypeIsSingleAuthorization": "UAEOF.Single"true, "AuthorizationExpirationTimeWindowAuthorizationExpirationDateTime": "7202024-05-01T03:00:00.000Z", "ExpirationDateTime": "2024-10-01T00:00:00.000Z", "ControlParameters": { "IsPayByAccount": false, "ConsentSchedule": { "MultiPayment": { "MaximumCumulativeNumberOfPayments": 10, "PeriodicSchedule": { "Type": "UAEOF.VariablePeriodicSchedule", "PeriodType": "Day", "PeriodStartDate": "2024-05-01", "MaximumCumulativeValueOfPaymentsPerPeriodType": { "Amount": "100.00", "Currency": "AED" } } } } }, "PersonalIdentifiableInformation": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.UGhIOguC7...aQeF_PXwJZ4g.48V1_ALb6US04U3b.5eym5T...QzAAE=.XFBoMY...wifLw", "PayerReferenceDebtorReference": "string", "BeneficiaryReferenceCreditorReference": "string", "PaymentPurposeCode": "ABCD", "SponsoredTPPInformation": { "Name": "string", "Identification": "string" } } } ] } |
...
Code Block | ||
---|---|---|
| ||
POST /auth/aac-69255d98-ab0e-4758-92a7-cacbf3073efa/rp/doConfirm host: auth1.lab.openbanking.ae Content-Type: application/x-www-form-urlencoded DebtorAccount.IdentificationTypeSchemeName=UAEOF.IBAN &CreditorAccount.IdentificationTypeSchemeName=UAEOF.IBAN ... |
3.6 The LFI Returns an Authorization Code to the TPP
...
Code Block | ||
---|---|---|
| ||
POST /open-finance/payment/v1.0-draft5rc1/payments HTTP/1.1 Host: rs1.openfinanceplatform.ae Content-Type: application/jwt Accept: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 x-idempotency-key: 78dae4513b8847f98e2d4173b4ed0eb6 Authorization: Bearer caa1b60d-61ff-4cd8-a4e1-2d18c8696de0 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0.5, "nbf": 0.5, "aud": [ "string" ], "iat": 0.5, "message": { "Data": { "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "Instruction": { "Amount": { "Amount": "100.00", "Currency": "AED" }, "BeneficiaryReferencePaymentSequenceNumber": "string",1" }, "PaymentSequenceNumberPaymentPurposeCode": "1" }ABCD", "PaymentPurposeCodeDebtorReference": "ABCDstring", "PayerReferenceCreditorReference": "string" } } } . <<signature>> |
...
Code Block | ||
---|---|---|
| ||
HTTP/1.1 201 Created Content-Type: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0.5, "nbf": 0.5, "aud": [ "string" ], "iat": 0.5, "message": { "Data": { "PaymentId": "83b47199-90c2-4c05-9ef1-aeae68b0fc7c", "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "PaymentTransactionId": "string", "Status": "Pending", "StatusUpdateDateTime": "2024-05-01T00:00:00.000Z", "CreationDateTime": "2024-05-01T00:00:00.000Z", "DebtorCharges": [ { "Type": "VAT", "Amount": { "Amount": "100.00", "Currency": "AED" } } ], "Instruction": { "Amount": { "Amount": "100.00", "Currency": "AED" }, "BeneficiaryReferencePaymentSequenceNumber": "string",1" }, "PaymentSequenceNumberPaymentPurposeCode": "1" }ABCD", "PaymentPurposeCodeDebtorReference": "ABCDstring", "PayerReferenceCreditorReference": "string" }, "Links": { "Self": "/payments/83b47199-90c2-4c05-9ef1-aeae68b0fc7c", "Related": "/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa" }, "Meta": {} } } . <<signature>> |
...
Code Block | ||
---|---|---|
| ||
GET /open-finance/payment/v1.0-draft5rc1/payments/83b47199-90c2-4c05-9ef1-aeae68b0fc7c HTTP/1.1 Host: rs1.openfinanceplatform.ae Accept: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 Authorization: Bearer ad297304-1057-4c68-9e76-a96f300a27f1 |
...
Code Block | ||
---|---|---|
| ||
HTTP/1.1 200 OK Content-Type: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0.5, "nbf": 0.5, "aud": [ "string" ], "iat": 0.5, "message": { "Data": { "PaymentId": "83b47199-90c2-4c05-9ef1-aeae68b0fc7c", "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "PaymentTransactionId": "string", "Status": "Pending", "StatusUpdateDateTime": "2024-05-01T00:00:00.000Z", "CreationDateTime": "2024-05-01T00:00:00.000Z", "DebtorCharges": [ { "Type": "VAT", "Amount": { "Amount": "100.00", "Currency": "AED" } } ], "Instruction": { "Amount": { "Amount": "100.00", "Currency": "AED" }, "BeneficiaryReferencePaymentSequenceNumber": "string",1" }, "PaymentSequenceNumberPaymentPurposeCode": "1" }ABCD", "PaymentPurposeCodeDebtorReference": "ABCDstring", "PayerReferenceCreditorReference": "string" }, "Links": { "Self": "/payments/83b47199-90c2-4c05-9ef1-aeae68b0fc7c", "Related": "/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa" }, "Meta": {} } } . <<signature>> |
...
Code Block | ||
---|---|---|
| ||
GET /open-finance/payment/v1.0-draft5rc1/payments/83b47199-90c2-4c05-9ef1-aeae68b0fc7c HTTP/1.1 Host: rs1.openfinanceplatform.ae Accept: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 Authorization: Bearer ad297304-1057-4c68-9e76-a96f300a27f1 |
...
Code Block |
---|
HTTP/1.1 401 Unauthorized
x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602
Content-Type: application/jwt
{
"alg": "PS256",
"kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1"
}
.
{
"iss": "string",
"exp": 0,
"nbf": 0,
"aud": [
"string"
],
"iat": 0,
"message": {
"Errors": [
{
"Code": "UAEOF.AccessToken.Unauthorized",
"Message": "max_age_exceeded: Token has expired",
"Path": "Authorization",
"Url": "https://developer.openfinanceplatform.ae/api-errros/401"
}
]
}
}
.
<<signature>> |
...
Code Block |
---|
{ "typ": "JWT", "alg": "PS256", "kid": "e4ce77c498e77000a25aa7b40e4a83f9" } . { "iss": "s6BhdRkqt3", "iat": 1669393154, "exp": 1669393496, "nbf": 1669393154, "aud": "https://server.example.com", "response_type": "code", "redirect_uri": "https://openbanking.tpp1.ae/simple-redirect-url", "scope": "openid payments", "state": "af0ifjsldkj", "authorization_details": [ { "type": "urn:openfinanceuae:service-initiation-consent:v1.0-draft5rc1", "consent": { "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "AcceptedAuthorizationTypeIsSingleAuthorization": "UAEOF.Single"true, "AuthorizationExpirationTimeWindowAuthorizationExpirationDateTime": "7202024-05-01T03:00:00.000Z", "ExpirationDateTime": "2024-10-01T00:00:00.000Z", "ControlParameters": { "IsPayByAccount": false, "ConsentSchedule": { "MultiPayment": { "MaximumCumulativeNumberOfPayments": 10, "PeriodicSchedule": { "Type": "UAEOF.VariablePeriodicSchedule", "PeriodType": "Day", "PeriodStartDate": "2024-05-01", "MaximumCumulativeValueOfPaymentsPerPeriodType": { "Amount": "100.00", "Currency": "AED" } } } } }, "PersonalIdentifiableInformation": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.UGhIOguC7...aQeF_PXwJZ4g.48V1_ALb6US04U3b.5eym5T...QzAAE=.XFBoMY...wifLw",, "PayerReferenceDebtorReference": "string", "BeneficiaryReferenceCreditorReference": "string", "PaymentPurposeCode": "ABCD", "SponsoredTPPInformation": { "Name": "string", "Identification": "string" } }, "Subscription": { "Webhook": { "Url": "https://api.tpp.com/webhook/callbackUrl", "IsActive": true } } } } ] } |
...
Code Block | ||
---|---|---|
| ||
PATCH /open-finance/payment/v1.0-draft5rc1/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa HTTP/1.1 Host: rs1.lab.api.openbanking.ae Content-Type: application/jwt Accept: application/jwt x-fapi-interaction-id: 3424a379-8274-4686-99bd-f420d08acead Authorization: Bearer ad297304-1057-4c68-9e76-a96f300a27f1 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0, "nbf": 0, "aud": [ "string" ], "iat": 0, "message": { "Subscription": { "Webhook": { "IsActive": true } } } } . <<signature>> |
...
Code Block | ||
---|---|---|
| ||
PATCH /open-finance/payment/v1.0-draft5rc1/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa HTTP/1.1 Host: rs1.lab.api.openbanking.ae Content-Type: application/jwt x-fapi-interaction-id: 3424a379-8274-4686-99bd-f420d08acead Authorization: Bearer ad297304-1057-4c68-9e76-a96f300a27f1 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0, "nbf": 0, "aud": [ "string" ], "iat": 0, "message": { "Subscription": { "Webhook": { "IsActive": false } } } } . <<signature>> |
...
Code Block | ||
---|---|---|
| ||
{ "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0.5, "nbf": 0.5, "aud": [ "string" ], "iat": 0.5, "message": { "Data": { "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "BaseConsentId": "abc-19877d98-ab0e-4758-92a7-vvffr1234abv", "AcceptedAuthorizationTypeIsSingleAuthorization": "UAEOF.Single"true, "AuthorizationExpirationTimeWindowAuthorizationExpirationDateTime": "7202024-05-01T03:00:00.000Z", "ExpirationDateTime": "2024-10-01T00:00:00.000Z", "ConsentStatus": "AwaitingAuthorization", "ConsentStatusUpdateDateTime": "2024-05-01T00:00:00.000Z", "CreationDateTime": "2024-05-01T00:00:00.000Z", "ControlParameters": { "IsPayByAccount": false, "ConsentSchedule": { "MultiPayment": { "MaximumCumulativeNumberOfPayments": 10, "PeriodicSchedule": { "Type": "UAEOF.VariablePeriodicSchedule", "PeriodType": "Day", "PeriodStartDate": "2024-05-01", "MaximumCumulativeValueOfPaymentsPerPeriodType": { "Amount": "100.00", "Currency": "AED" } } } } }, "PersonalIdentifiableInformation": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.UGhIOguC7...aQeF_PXwJZ4g.48V1_ALb6US04U3b.5eym5T...QzAAE=.XFBoMY...wifLw",, "PayerReferenceDebtorReference": "string", "BeneficiaryReferenceCreditorReference": "string", "PaymentPurposeCode": "ABCD", "SponsoredTPPInformation": { "Name": "string", "Identification": "string" }, "IsPayByAccount": false, "PaymentConsumption": { "MaximumCumulativeNumberOfPayments": 10, "MaximumCumulativeValueOfPayments": { "Amount": "1000.00", "Currency": "AED" }, "CumulativeNumberOfPayments": 10, "CumulativeNumberOfPaymentsPerPeriod": 1, } }, "Links": { "Self": "/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "Related": [] }, "EventMeta": { "EventDateTime": "22024-05-01T00:00:00.000Z", "EventResource": "consents", "EventType": "UAEOF.Resource.Created", "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa" } } } . <<signature>> |
...
The TPP creates a Service Initiation consent with AcceptedAuthorizationType
as UAEOF.Multi
denoting its support for a Multi-Authorization consent.
Code Block | ||
---|---|---|
| ||
{ "typ": "JWT", "alg": "PS256", "kid": "e4ce77c498e77000a25aa7b40e4a83f9" } . { "iss": "s6BhdRkqt3", "aud": "https://server.example.com", "response_type": "code", "redirect_uri": "https://openbanking.tpp1.ae/simple-redirect-url", "scope": "openid payments", "state": "af0ifjsldkj", "authorization_details": [ { "type": "urn:openfinanceuae:service-initiation-consent:v1.0-draft5rc1", "consent": { "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "AcceptedAuthorizationTypeAuthorizationExpirationDateTime": "UAEOF.Multi", "AuthorizationExpirationTimeWindow": "7202024-05-01T03:00:00.000Z", "ExpirationDateTime": "2024-10-01T00:00:00.000Z", "ControlParameters": { "IsPayByAccount": false, "ConsentSchedule": { "MultiPayment": { "MaximumCumulativeNumberOfPayments": 10, "PeriodicSchedule": { "Type": "UAEOF.VariablePeriodicSchedule", "PeriodType": "Day", "PeriodStartDate": "2024-05-01", "MaximumCumulativeValueOfPaymentsPerPeriodType": { "Amount": "100.00", "Currency": "AED" } } } } }, "PersonalIdentifiableInformation": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.UGhIOguC7...aQeF_PXwJZ4g.48V1_ALb6US04U3b.5eym5T...QzAAE=.XFBoMY...wifLw",, "PayerReferenceDebtorReference": "string", "BeneficiaryReferenceCreditorReference": "string", "PaymentPurposeCode": "ABCD", "SponsoredTPPInformation": { "Name": "string", "Identification": "string" } } } ] } |
...
Code Block | ||
---|---|---|
| ||
HEAD /open-finance/payment/v1.0-draft5rc1/payments HTTP/1.1 Host: rs1.lab.api.openbanking.ae Accept: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 Authorization: Bearer ad297304-1057-4c68-9e76-a96f300a27f1 x-idempotency-key: 78dae4513b8847f98e2d4173b4ed0eb6 |
...
Code Block | ||
---|---|---|
| ||
HTTP/1.1 204 No Content x-fapi-interaction-id: 3424a379-8274-4686-99bd-f420d08acead Location: /open-finance/payment/v1.0-draft5rc1/payments/83b47199-90c2-4c05-9ef1-aeae68b0fc7c |
...
Code Block |
---|
{ "typ": "JWT", "alg": "PS256", "kid": "e4ce77c498e77000a25aa7b40e4a83f9" } . { "iss": "s6BhdRkqt3", "aud": "https://server.example.com", "response_type": "code", "redirect_uri": "https://openbanking.tpp1.ae/simple-redirect-url", "scope": "openid payments", "state": "2616df22-899e-468b-b7af-927145b067cc", "authorization_details": [ { "type": "urn:openfinanceuae:service-initiation-consent:v1.0-draft5rc1", "consent": { "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "AcceptedAuthorizationTypeIsSingleAuthorization": "UAEOF.Single"true, "AuthorizationExpirationTimeWindowAuthorizationExpirationDateTime": "7202024-05-01T03:00:00.000Z", "ExpirationDateTime": "2024-10-01T00:00:00.000Z", "ControlParameters": { "IsPayByAccount": false, "ConsentSchedule": { "FilePayment": { "FileType": "UAEOF.pain.001.001.08", "FileHash": "m5ah/h1UjLvJYMxqAoZmj9dKdjZnsGNm+yMkJp/KuqQ", "NumberOfTransactions": 5, "ControlSum": "10003.40" } } } } } ] } |
...
Code Block |
---|
POST /open-finance/payment/v1.0-draft5rc1/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa/file HTTP/1.1 Authorization: Bearer ad297304-1057-4c68-9e76-a96f300a27f1 Content-Type: text/xml Accept: application/json [File-Data] |
...
Code Block | ||
---|---|---|
| ||
POST /open-finance/payment/v1.0-draft5rc1/file-payments HTTP/1.1 Host: rs1.openfinanceplatform.ae Content-Type: application/jwt Accept: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 x-idempotency-key: 78dae4513b8847f98e2d4173b4ed0eb6 Authorization: Bearer caa1b60d-61ff-4cd8-a4e1-2d18c8696de0 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0.5, "nbf": 0.5, "aud": [ "string" ], "iat": 0.5, "message": { "Data": { "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "Instruction": { "FileType": "UAEOF.pain.001.001.08", "FileHash": "m5ah/h1UjLvJYMxqAoZmj9dKdjZnsGNm+yMkJp/KuqQ", "NumberOfTransactions": 5, "ControlSum": "10003.40" }, "PaymentPurposeCode": "ABCD", "PayerReferenceDebtorReference": "string" } } } . <<signature>> |
...
Code Block | ||
---|---|---|
| ||
HTTP/1.1 201 Created Content-Type: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0.5, "nbf": 0.5, "aud": [ "string" ], "iat": 0.5, "message": { "Data": { "PaymentId": "83b47199-90c2-4c05-9ef1-aeae68b0fc7c", "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "PaymentTransactionId": "string", "Status": "PendingReceived", "StatusUpdateDateTime": "2024-05-01T00:00:00.000Z", "CreationDateTime": "2024-05-01T00:00:00.000Z", "Instruction": { "FileType": "UAEOF.pain.001.001.08", "FileHash": "m5ah/h1UjLvJYMxqAoZmj9dKdjZnsGNm+yMkJp/KuqQ", "NumberOfTransactions": 5, "ControlSum": "10003.40" }, "PaymentPurposeCode": "ABCD", "PayerReferenceDebtorReference": "string" }, "Links": { "Self": "/file-payments/83b47199-90c2-4c05-9ef1-aeae68b0fc7c", "Related": "/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa" }, "Meta": {} } } . <<signature>> |
...
Code Block | ||
---|---|---|
| ||
GET /open-finance/payment/v1.0-draft5rc1/payment-consents/83b47199-90c2-4c05-9ef1-aeae68b0fc7c/refund HTTP/1.1 Host: rs1.openfinanceplatform.ae Accept: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 Authorization: Bearer ad297304-1057-4c68-9e76-a96f300a27f1 |
...
Code Block |
---|
HTTP/1.1 200 OK Content-Type: application/jwt x-fapi-interaction-id: 942a7ee7-d29a-45aa-93b7-c5f292d86602 { "alg": "PS256", "kid": "e1be6bf3-76e6-4e53-92b9-c46423757ab1" } . { "iss": "string", "exp": 0.5, "nbf": 0.5, "aud": [ "string" ], "iat": 0.5, "message": { "Data": { "BaseConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "ConsentId": "aac-69255d98-ab0e-4758-92a7-cacbf3073efa", "RefundAccount": { "IdentificationTypeSchemeName": "UAEOF.IBAN", "Identification": "string", "Name": { "en": "string", "ar": "string" } }, "Links": { "Self": "/payment-consents/aac-69255d98-ab0e-4758-92a7-cacbf3073efa/refund" }, "Meta": {} } } . <<signature>> |
...
A Single Instant Payment MUST meet the following criteria:
Type
MUST be set toUAEOF.SingleInstantPayment
The Consent Start date is the
CreationDateTime
. The Consent end date (ExpirationDateTime
) MUST be set to the current date.
...
A Single Future Dated Payment MUST meet the following criteria:
Type
MUST be set toUAEOF.SingleFutureDatedPayment
The Consent Start date is the
CreationDateTime
. The Consent end date (ExpirationDateTime
) MUST NOT exceed 1 year from the current date.RequestedExecutionDateTime
MUST NOT be set to the current day. It MUST be set to a future date/time beyond the current day when the payment is to be scheduled for execution.
...
MaximumIndividualPaymentAmount
MUST be set to confirm the maximum single payment amount that can be instructed.MaximumCumulativeValueOfPayments
MUST be set to confirm the total payment amount for the whole consent duration.MaximumCumulativeNumberOfPayments
MUST be set to confirm the total number of payments for the whole consent duration.Amount
MUST be used if there is a fixed value that will be used for every recurring payment in the Period.PeriodicSchedule
MAY further define any period specific maximum payment numbers and/or amounts, and is one of these Types:UAEOF.DefinedSchedule
- a Payment Schedule denoting a list of pre-defined future dated payments all with fixed amounts and dates.UAEOF.FixedPeriodicSchedule
- Payment Controls that apply to all payments in a given period with a fixed payment amount.UAEOF.VariablePeriodicSchedule
- Payment Controls that apply to all payments in a given period with a variable payment amount.
...