...
1.2.1 Service Initiation Consent Types
The TPP MUST specify a Service Initiation consent type as one of these:
UAEOF.SingleInstantPayment
UAEOF.SingleFutureDatedPayment
UAEOF.FixedRecurringPayment
UAEOF.FixedOnDemandPayment
UAEOF.VariableRecurringPayment
UAEOF.VariableOnDemandPayment
UAEOF.VariableDefinedPayment
The OFP MUST link both PaymentId
and ConsentId
:
...
Code Block | ||
---|---|---|
| ||
POST /open-finance/payment/2024v1.03.110-draft1draft2/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", "Type": "UAEOF.FixedRecurringPayment", "Instruction": { "Amount": { "Amount": "100.00", "Currency": "AED" }, "BeneficiaryReference": "string", "PaymentSequenceNumber": "1" }, "PaymentPurposeCode": "ABCD", "PayerReference": "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", "Type": "UAEOF.FixedRecurringPayment", "PaymentTransactionId": "string", "PaymentStatus": "Pending", "PaymentStatusUpdateDateTime": "2023-10-01T00:00:00.000Z", "CreationDateTime": "2023-10-01T00:00:00.000Z", "DebtorCharges": [ { "Type": "VAT", "Amount": { "Amount": "100.00", "Currency": "AED" } } ], "Instruction": { "Amount": { "Amount": "100.00", "Currency": "AED" }, "BeneficiaryReference": "string", "PaymentSequenceNumber": "1" }, "PaymentPurposeCode": "ABCD", "PayerReference": "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/2024v1.03.110-draft1draft2/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", "TypePaymentTransactionId": "UAEOF.FixedRecurringPaymentstring", "PaymentTransactionIdPaymentStatus": "string", "PaymentStatus": "PendingPending", "PaymentStatusUpdateDateTime": "2023-10-01T00:00:00.000Z", "CreationDateTime": "2023-10-01T00:00:00.000Z", "DebtorCharges": [ { "Type": "VAT", "Amount": { "Amount": "100.00", "Currency": "AED" } } ], "Instruction": { "Amount": { "Amount": "100.00", "Currency": "AED" }, "BeneficiaryReference": "string", "PaymentSequenceNumber": "1" }, "PaymentPurposeCode": "ABCD", "PayerReference": "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/2024v1.03.110-draft1draft2/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 | ||
---|---|---|
| ||
PATCH /open-finance/payment/2024v1.03.110-draft1draft2/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/2024v1.03.110-draft1draft2/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 | ||
---|---|---|
| ||
HEAD /open-finance/payment/2024v1.03.110-draft1draft2/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/2024v1.03.110-draft1draft2/payments/83b47199-90c2-4c05-9ef1-aeae68b0fc7c |
...
6.1 Staging a Service Initiation Consent
...
To manage the creation and execution of a Single Instant payment;
The TPP:
MUST provide a
ConsentId
in the Consent object within theauthorization_details
of a Rich Authorization Request.MAY use
PATCH
to manage any Webhook configurations for the entire duration of a payment consentMAY use a
GET
to the/payments/{PaymentId}
resource to poll for Payment Statuses.
...
MUST reject the Service Initiation consent if a globally unique UUID v4
ConsentId
does not exist in the RAR object.MUST validate the Consent parameters and create a Consent resource (
ConsentId
) that isAwaitingAuthorization
when a valid RAR object is staged at the PAR endpoint.MUST immediately stage the payment with the LFI once a valid Service Initiation resource is created by the TPP.
MUST send payment status events to the TPP if an active Webhook Subscription is registered within the Consent object.
The LFI:
MUST immediately stage the payment with the Payment Rails once a valid payment is staged by the OFP.
MUST emit payment status events to the OFP.
6.1.2 Single Future Dated, Multi-Payment
For Single Future Dated and Multi-Payment Consents:
The TPP:
MUST provide an
ConsentId
in the Consent object within theauthorization_details
of a Rich Authorization Request.MAY use
PATCH
to manage any Webhook configurations for the entire duration of a payment consent
...
MUST validate the Consent parameters and create a Consent resource (
ConsentId
) that isAwaitingAuthorization
when a valid RAR object is staged at the PAR endpoint.MUST immediately stage the payment with the LFI once a valid Service Initiation resource is created by the TPP.
MUST send payment status events to the TPP if an active Webhook Subscription is registered within the Consent object.
...