Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
1. Overview
This page provides a list of information on the event notifications provided by the OFP that will be delivered to TPPs when they are subscribed to a given event and have registered a webhook Webhook at which to receive the notification.
The event notifications are classified into types subject areas for ease of reference.
2. Event Types
Events are classified by event type, which is an enumerated property defined in the OFP Webhook template. The available values are defined as follows:
...
3.1. Consent State Update
An event notification will be emitted based on consent state change as described in the consent state model: https://openfinanceuae.atlassian.net/wiki/spaces/standardsv1rc1/pages/121372984/Consent+Setup#4.-Consent-States.
Changes to the state of an existing consent will be communicated using the following argumentsproperties:
Data: The new value of the updated consent resource.
Event resource: The URL of the resource that has been updated.
Event type:
Resource.Updated
The
ConsentId
value that uniquely identifies the consent that has been updated.
3.2. Payment State Update
An event notification will be emitted based on consent a payment initiation state change as described in the consent payments state model: https://openfinanceuae.atlassian.net/wiki/spaces/standardsv1rc1/pages/121372984/Consent+Setup#4.-Consent-States
...
/121375612/Common+Rules+and+Guidelines#GRC-15.12-Payment-Status-Model.
Changes to the state of a payment initiation request will be communicated using the following properties:
Data: The new value of the updated payment initiation resource.
Event resource: The URL of the resource that has been updated.
Event type:
Resource.Updated
The
ConsentId
value that uniquely identifies the consent to which the payment initiation request relates.
4. Webhook Template
The OpenAPI description below provides a template for implementing a Webhook to receive event notifications from the a participant in the UAE Open Finance Programme.
Awesome api app render macro | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
openapi: 3.0.0
info:
description: OpenAPI description provided **as a template** for guidance in implementing Webhooks under the UAE Open Finance Programme.
title: UAE Webhook Template
version: v1.0-rc1
paths:
/{hostUrl}:
parameters:
- name: hostUrl
description: The URL on which the Webhook is hosted. This is indicative and use as a templating mechanism in this OpenAPI description. TPPs must implement the Webhook on their own URL.
in: path
required: true
schema:
type: string
post:
summary: Event Notification Template
description: |
This endpoint provides a template for the implementation of Webhooks at a TPP. A 204 HTTP return code with an empty payloadz is expected in acknowledgement of receipt
operationId: EventNotification
requestBody:
content:
application/jwt:
schema:
$ref: "#/components/schemas/AEWebhookEventSigned"
responses:
'204':
description: Event notification acknowledgement. No further attempts to deliver the event will be made.
default:
description: Any other responses will be considered an error and must follow the standards format
content:
application/jwt:
schema:
$ref: "#/components/schemas/AEErrorResponseSigned"
security:
- LFIWebhookSecurity: []
components:
securitySchemes:
LFIWebhookSecurity:
type: http
description: "A JWT minted by the event notifier that will be validated by the TPP"
scheme: bearer
bearerFormat: JWT
schemas:
AEJwt:
description: |
[https://www.rfc-editor.org/rfc/rfc7519](https://www.rfc-editor.org/rfc/rfc7519)
type: "object"
properties:
iss:
description: |
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
type: string
exp:
description: |
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
type: number
nbf:
description: |
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
type: number
aud:
description: |
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
type: array
items:
type: string
iat:
description: |
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
type: number
required: [iss, exp, nbf]
AEError:
description: "Error"
type: "object"
required:
- "Code"
- "Message"
additionalProperties: false
minProperties: 1
properties:
Code:
description: "Low level textual error code"
type: "string"
enum:
- "AccessToken.Unauthorized"
- "AccessToken.InvalidScope"
- "Consent.TransientAccountAccessFailure"
- "Consent.AccountTemporarilyBlocked"
- "Consent.PermanentAccountAccessFailure"
- "Consent.Invalid"
- "Consent.BusinessRuleViolation"
- "Consent.FailsControlParameters"
- "Consent.InvalidUserIdentifier"
- "JWS.InvalidSignature"
- "JWS.Malformed"
- "JWS.InvalidClaim"
- "JWS.InvalidHeader"
- "JWE.DecryptionError"
- "JWE.InvalidHeader"
- "GenericRecoverableError"
- "GenericError"
- "Event.UnexpectedEvent"
- "Body.InvalidFormat"
- "Resource.InvalidResourceId"
- "Resource.InvalidFormat"
Message:
description: Error description provided for diagnostic purposes
type: string
minLength: 1
maxLength: 500
Path:
description: "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency"
type: "string"
minLength: 1
maxLength: 500
Url:
description: "URL to help remediate the problem, or provide more information, or to API Reference, or help etc"
type: "string"
AEErrorResponse:
description: "An array of detail error codes, and messages, and URLs to documentation to help remediation."
type: "object"
properties:
Errors:
items:
$ref: "#/components/schemas/AEError"
type: "array"
minItems: 1
required:
- "Errors"
additionalProperties: false
AEErrorResponseSigned:
description: |
Error Signed Schema
allOf:
- $ref: "#/components/schemas/AEJwt"
- type: "object"
properties:
message:
$ref: "#/components/schemas/AEErrorResponse"
required: [message]
AEWebhookEvent:
type: "object"
description: "Webhook Event"
required:
- "Data"
- "EventMeta"
properties:
Data:
type: "object"
description: "Event Data. This Data Object will contain the same API resource and Schema that has triggered the Event."
Meta:
type: "object"
description: "Event Metadata"
required:
- "EventDateTime"
- "EventResource"
- "EventType"
- "ConsentId"
properties:
EventDateTime:
type: "string"
format: "date-time"
description: "Date Time of the first Event in the Message"
EventResource:
type: "string"
description: "The API resource to which the Event itself is associated"
example: ""
EventType:
type: "string"
enum:
[
"Resource.Created",
"Resource.Updated",
"Resource.Deleted",
]
description: "The Type of Event"
ConsentId:
description: "Unique identification as assigned to identify the consents resource."
type: "string"
minLength: 1
maxLength: 128
additionalProperties: false
additionalProperties: false
AEWebhookEventSigned:
description: |
Webhook Event Signed Schema
allOf:
- $ref: "#/components/schemas/AEJwt"
- type: "object"
properties:
message:
$ref: "#/components/schemas/AEWebhookEvent"
required: [message] |
4.1 Attachments
The Webhook Template OpenAPI description is attached for reference.
View file | ||
---|---|---|
|