openapi: 3.0.0
info:
title: UAE FX API
description: '## UAE Open Finance FX API Specification'
version: v2.0-draft2
tags:
- name: FX Quotes
description: Operations to create foreign exchange quotes at a given LFI
- name: Accounts
description: Open an LFI account to complete an FX transaction
paths:
/accounts:
post:
operationId: CreateAccount_unsignedRequest_CreateAccount_signedRequest
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
description: >-
Create an Account based on data shared from the LFI. The response
provides
an account identifier that can be used to retrieve the account details
when
the provisioning process is complete.
Invoking this operation is driven by the User sharing with the TPP
whether they
already hold an account with a given LFI. There is no expectation that
the TPP
will automatically discover whether an account at this stage in the
design as
this could compromise data being provided by LFI with the quote.
summary: Create an account
responses:
'201':
description: >-
The request has succeeded and a new resource has been created as a
result.
headers:
x-fapi-interaction-id:
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AECreateAccountResponseBody1'
examples:
ReadAccountOpeningAwaitingPartyDataUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningAwaitingPartyDataUnsignedResponse
ReadAccountOpeningCreatedUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningCreatedUnsignedResponse
application/json:
schema:
$ref: '#/components/schemas/AECreateAccountResponseBody1'
examples:
ReadAccountOpeningAwaitingPartyDataUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningAwaitingPartyDataUnsignedResponse
ReadAccountOpeningCreatedUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningCreatedUnsignedResponse
application/jwt:
schema:
type: object
properties:
iss:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
exp:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
nbf:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
aud:
type: array
items:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
iat:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
message:
$ref: '#/components/schemas/AECreateAccountResponseBody1'
required:
- iss
- exp
- nbf
- message
additionalProperties: false
examples:
ReadAccountOpeningAwaitingPartyDataSignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningAwaitingPartyDataSignedResponse
ReadAccountOpeningCreatedSignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningCreatedSignedResponse
'400':
description: The server could not understand the request due to invalid syntax.
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'401':
description: Unauthorized
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'403':
description: Forbidden
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'404':
description: Not found
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'405':
description: Method Not Allowed
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'406':
description: Not Acceptable
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'415':
description: Unsupported Media Type
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'429':
description: Too Many Requests
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
retry-after:
required: true
description: Number in seconds to wait
schema:
type: integer
format: int64
'500':
description: Internal Server Error
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
tags:
- Accounts
requestBody:
required: true
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AECreateAccountRequestBody1'
examples:
CreateAccountUnsignedRequest:
$ref: '#/components/examples/CreateAccountUnsignedRequest'
application/json:
schema:
$ref: '#/components/schemas/AECreateAccountRequestBody1'
examples:
CreateAccountUnsignedRequest:
$ref: '#/components/examples/CreateAccountUnsignedRequest'
application/jwt:
schema:
type: object
properties:
iss:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
exp:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
nbf:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
aud:
type: array
items:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
iat:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
message:
$ref: '#/components/schemas/AECreateAccountRequestBody1'
required:
- iss
- exp
- nbf
- message
additionalProperties: false
examples:
CreateAccountSignedRequest:
$ref: '#/components/examples/CreateAccountSignedRequest'
description: >-
Request body for creating a new account Signed request body for
creating a new account
security:
- TPPOAuth2Security:
- fx
/accounts/{AccountId}:
get:
operationId: Account_read
summary: Retrieve an account
description: >-
Retrieve an Account based on a given account identifier. The response
provides
both the status of the account and, when opened, the account details
required
by the TPP to complete an FX transaction.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/AccountId'
responses:
'200':
description: The request has succeeded.
headers:
x-fapi-interaction-id:
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEReadAccountResponseBody1'
examples:
ReadAccountOpeningAwaitingPartyDataUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningAwaitingPartyDataUnsignedResponse
ReadAccountOpeningCreatedUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningCreatedUnsignedResponse
application/json:
schema:
$ref: '#/components/schemas/AEReadAccountResponseBody1'
examples:
ReadAccountOpeningAwaitingPartyDataUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningAwaitingPartyDataUnsignedResponse
ReadAccountOpeningCreatedUnsignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningCreatedUnsignedResponse
application/jwt:
schema:
type: object
properties:
iss:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
exp:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
nbf:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
aud:
type: array
items:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
iat:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
message:
$ref: '#/components/schemas/AEReadAccountResponseBody1'
required:
- iss
- exp
- nbf
- message
additionalProperties: false
examples:
ReadAccountOpeningAwaitingPartyDataSignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningAwaitingPartyDataSignedResponse
ReadAccountOpeningCreatedSignedResponse:
$ref: >-
#/components/examples/ReadAccountOpeningCreatedSignedResponse
'400':
description: The server could not understand the request due to invalid syntax.
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'401':
description: Unauthorized
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'403':
description: Forbidden
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'404':
description: Not found
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'405':
description: Method Not Allowed
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'406':
description: Not Acceptable
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'415':
description: Unsupported Media Type
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'429':
description: Too Many Requests
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
retry-after:
required: true
description: Number in seconds to wait
schema:
type: integer
format: int64
'500':
description: Internal Server Error
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
tags:
- Accounts
security:
- TPPOAuth2Security:
- fx
/fx-quotes:
post:
operationId: CreateFxQuote_unsignedRequest_CreateFxQuote_signedRequest
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
description: >-
Create an FX quote based on a given currency pair. The quote request
must be
sent to all LFIs individually, with responses aggregated by the TPP to
provide
the User a choice of quotes across providers.
The User may already have a relationship with a given LFI. The TPP can
therefore include party data in the request to help the LFI correlate
the User
with an existing account or relationship. Including party data is
optional but
will allow contractual or pre-agreed rates to be generated by the LFI to
help
provide an informed choice to the User.
If a User selects a quote from an LFI that they do not have a
relationship with
the TPP will be able to use the Account Opening API to initiate the
creation of
a new account for User.
summary: Create an FX quote
responses:
'201':
description: >-
The request has succeeded and a new resource has been created as a
result.
headers:
x-fapi-interaction-id:
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AECreateFxQuoteResponseBody1'
examples:
CreateFXQuoteUnsignedResponse:
$ref: '#/components/examples/CreateFXQuoteUnsignedResponse'
application/json:
schema:
$ref: '#/components/schemas/AECreateFxQuoteResponseBody1'
examples:
CreateFXQuoteUnsignedResponse:
$ref: '#/components/examples/CreateFXQuoteUnsignedResponse'
application/jwt:
schema:
type: object
properties:
iss:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
exp:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
nbf:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
aud:
type: array
items:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
iat:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
message:
$ref: '#/components/schemas/AECreateFxQuoteResponseBody1'
required:
- iss
- exp
- nbf
- message
additionalProperties: false
examples:
CreateFXQuoteSignedResponse:
$ref: '#/components/examples/CreateFXQuoteSignedResponse'
'400':
description: The server could not understand the request due to invalid syntax.
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'401':
description: Unauthorized
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'403':
description: Forbidden
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'404':
description: Not found
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'405':
description: Method Not Allowed
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'406':
description: Not Acceptable
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'415':
description: Unsupported Media Type
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'429':
description: Too Many Requests
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
retry-after:
required: true
description: Number in seconds to wait
schema:
type: integer
format: int64
'500':
description: Internal Server Error
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
tags:
- FX Quotes
requestBody:
required: true
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AECreateFxQuoteRequestBody1'
examples:
CreateFXQuoteUnsignedRequest:
$ref: '#/components/examples/CreateFXQuoteUnsignedRequest'
application/json:
schema:
$ref: '#/components/schemas/AECreateFxQuoteRequestBody1'
examples:
CreateFXQuoteUnsignedRequest:
$ref: '#/components/examples/CreateFXQuoteUnsignedRequest'
application/jwt:
schema:
type: object
properties:
iss:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
exp:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
nbf:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
aud:
type: array
items:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
iat:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
message:
$ref: '#/components/schemas/AECreateFxQuoteRequestBody1'
required:
- iss
- exp
- nbf
- message
additionalProperties: false
examples:
CreateFXQuoteSignedRequest:
$ref: '#/components/examples/CreateFXQuoteSignedRequest'
description: Unsigned FX Quote Request Signed FX Quote Request
security:
- TPPOAuth2Security:
- fx
/fx-quotes/{FxQuoteId}:
get:
operationId: FxQuote_read
summary: Retrieve an FX quote
description: >-
Retrieve an FX quote based on a given quote identifier. The quote will
include
all the details submitted in the quote request together with the status
of the
quote.
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/FxQuoteId'
responses:
'200':
description: The request has succeeded.
headers:
x-fapi-interaction-id:
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEReadFxQuoteResponseBody1'
examples:
ReadFXQuoteUnsignedResponse:
$ref: '#/components/examples/ReadFXQuoteUnsignedResponse'
application/json:
schema:
$ref: '#/components/schemas/AEReadFxQuoteResponseBody1'
examples:
ReadFXQuoteUnsignedResponse:
$ref: '#/components/examples/ReadFXQuoteUnsignedResponse'
application/jwt:
schema:
type: object
properties:
iss:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
exp:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
nbf:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
aud:
type: array
items:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
iat:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
message:
$ref: '#/components/schemas/AEReadFxQuoteResponseBody1'
required:
- iss
- exp
- nbf
- message
additionalProperties: false
examples:
ReadFXQuoteSignedResponse:
$ref: '#/components/examples/ReadFXQuoteSignedResponse'
'400':
description: The server could not understand the request due to invalid syntax.
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'401':
description: Unauthorized
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'403':
description: Forbidden
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'404':
description: Not found
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'405':
description: Method Not Allowed
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'406':
description: Not Acceptable
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'415':
description: Unsupported Media Type
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'429':
description: Too Many Requests
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
retry-after:
required: true
description: Number in seconds to wait
schema:
type: integer
format: int64
'500':
description: Internal Server Error
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
tags:
- FX Quotes
security:
- TPPOAuth2Security:
- fx
patch:
operationId: FxQuote_unsignedRequest_FxQuote_signedRequest
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/x-customer-user-agent'
- $ref: '#/components/parameters/x-fapi-auth-date'
- $ref: '#/components/parameters/x-fapi-customer-ip-address'
- $ref: '#/components/parameters/x-fapi-interaction-id'
- $ref: '#/components/parameters/FxQuoteId'
description: >-
Update the status of a quote to Accepted as an indicator that the User
has
accepted the quote and will proceed with the FX trade. Completion of the
trade
is reliant on a funding account being available, which may require the
creation
of a new account at the LFI to complete the trade. The TPP will invoke
the
Account Opening API to initiate the creation of a new account for the
User,
sending the party data they previously retrieved through Bank Data
Sharing or
that the User shared with the TPP manually.
If the User does not have an account with the LFI they will indicate
this to the
TPP, who will optionally invoke the Account Opening API to initiate the
creation
of a new account for the User, sending User agreed through an existing
consent
to the LFI.
summary: Update an FX quote status
responses:
'204':
description: No content
headers:
x-fapi-interaction-id:
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
'400':
description: The server could not understand the request due to invalid syntax.
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'401':
description: Unauthorized
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'403':
description: Forbidden
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
'404':
description: Not found
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'405':
description: Method Not Allowed
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'406':
description: Not Acceptable
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'415':
description: Unsupported Media Type
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
'429':
description: Too Many Requests
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
retry-after:
required: true
description: Number in seconds to wait
schema:
type: integer
format: int64
'500':
description: Internal Server Error
headers:
x-fapi-interaction-id:
required: true
description: An RFC4122 UID used as a correlation id.
schema:
type: string
content:
application/json; charset=utf-8:
schema:
$ref: '#/components/schemas/AEErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/AEErrorResponse'
tags:
- FX Quotes
requestBody:
required: true
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/AEUpdateFxQuoteRequestBody1'
- type: object
properties:
iss:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.1)
exp:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.4)
nbf:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.5)
aud:
type: array
items:
type: string
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3)
iat:
type: number
description: >-
[https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6](https://www.rfc-editor.org/rfc/rfc7519#section-4.1.6)
message:
$ref: '#/components/schemas/AEUpdateFxQuoteRequestBody1'
additionalProperties: false
description: Unsigned FX Quote Request Signed FX Quote Request
security:
- TPPOAuth2Security:
- fx
components:
parameters:
AccountId:
name: AccountId
in: path
required: true
description: Unique identifier for a given account opening instance
schema:
$ref: '#/components/schemas/AEAccountIdType'
Authorization:
name: authorization
in: header
required: true
description: An Access Token as per https://tools.ietf.org/html/rfc6750
schema:
type: string
FxQuoteId:
name: FxQuoteId
in: path
required: true
description: Unique identifier for a given FX quote
schema:
$ref: '#/components/schemas/FxQuoteIdType'
x-customer-user-agent:
name: x-customer-user-agent
in: header
required: false
description: Indicates the user-agent that the User is using.
schema:
type: string
x-fapi-auth-date:
name: x-fapi-auth-date
in: header
required: false
description: >-
The time when the User last logged in with the TPP.
All dates in the HTTP headers are represented as RFC 7231 Full Dates. An
example is below:
Sun, 10 Sep 2017 19:43:31 UTC
schema:
type: string
pattern: >-
^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2}
(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4}
\d{2}:\d{2}:\d{2} (GMT|UTC)$
x-fapi-customer-ip-address:
name: x-fapi-customer-ip-address
in: header
required: false
description: The User's IP address if the User is currently logged in with the TPP.
schema:
type: string
x-fapi-interaction-id:
name: x-fapi-interaction-id
in: header
required: false
description: An RFC4122 UID used as a correlation ID.
schema:
type: string
schemas:
AEAccount:
type: object
required:
- AccountId
properties:
AccountId:
$ref: '#/components/schemas/UAEAccountInformationAPI.AccountId'
AccountHolderName:
$ref: '#/components/schemas/UAEAccountInformationAPI.AccountHolderName'
AccountHolderShortName:
$ref: '#/components/schemas/UAEAccountInformationAPI.AccountHolderShortName'
Status:
$ref: '#/components/schemas/UAEAccountInformationAPI.AEAccountStatusCode'
StatusUpdateDateTime:
$ref: '#/components/schemas/UAEAccountInformationAPI.StatusUpdateDateTime'
Currency:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.ActiveOrHistoricCurrencyCode_0
AccountType:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.AEExternalAccountTypeCode
AccountSubType:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.AEExternalAccountSubTypeCode
Description:
$ref: '#/components/schemas/UAEAccountInformationAPI.Description_0'
Nickname:
$ref: '#/components/schemas/UAEAccountInformationAPI.Nickname'
OpeningDate:
$ref: '#/components/schemas/UAEAccountInformationAPI.OpeningDate'
MaturityDate:
$ref: '#/components/schemas/UAEAccountInformationAPI.MaturityDate'
AccountIdentifiers:
$ref: '#/components/schemas/AccountIdentifiers'
Servicer:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.AEBranchAndFinancialInstitutionIdentification5_0
CreationDateTime:
$ref: '#/components/schemas/CreationDateTime'
OpeningStatus:
$ref: '#/components/schemas/AEAccountOpeningStatusCodes'
OpeningStatusUpdateDateTime:
$ref: '#/components/schemas/OpeningStatusUpdateDateTime'
description: >
The account object, which includes the account properties and the status
of the
account opening process. The properties of the account share the same
structure
as the Bank Data Sharing API description, in an effort to maintain
consistency
with other open finance APIs.
additionalProperties: false
AEAccountIdType:
type: string
minLength: 1
maxLength: 40
description: >-
A unique and immutable identifier produced by the LFI to identify the
account resource.This identifier has no meaning to the account owner
(User 1).
AEAccountOpeningLinks1:
type: object
required:
- Self
properties:
Self:
$ref: '#/components/schemas/Self'
AccountOpeningRedirectUrl:
type: string
format: uri
description: >-
A redirect URL provided by the LFI to complete the FX trade. The TPP
must redirect the User to this URL.
The URL is optional as the LFI may have all required information
through party data to complete account creation.
additionalProperties: false
AEAccountOpeningRequest:
type: object
required:
- FxQuoteId
properties:
FxQuoteId:
allOf:
- $ref: '#/components/schemas/FxQuoteIdType'
description: The unique identifier for the quote.
Account:
allOf:
- $ref: '#/components/schemas/UAEAccountInformationAPI.AECashAccount6_1'
description: >-
Details of the bank account details shared from the LFI through a
data sharing consent with the TPP.
Party:
$ref: '#/components/schemas/AEIdentityAssurance'
DataSharingAudit:
type: array
items:
type: object
properties:
JSONPath:
type: string
description: >-
The JSONPath expression pointing to the data that has been
changed in the request payload.
OriginalValue:
type: string
description: The original value that was shared through Bank Data Sharing.
required:
- JSONPath
- OriginalValue
additionalProperties: false
description: >-
Provides an audit trail of changes made by a User to the data shared
from the LFI through Bank Data Sharing.
Each element in the array is a JSONPath expression that points to
the data that has been changed and the original value supplied
through data sharing.
TPP must adhere to [RFC
9535](https://datatracker.ietf.org/doc/html/rfc9535) when
constructing JSON Path expressions. This value can be omitted when
no changes are made by the User.
description: >-
Request body for creating a new account based on a quote and shared user
data.
PartyData is optional as LFI can support manual data entry by the User
when they
use the LFI user interface.
additionalProperties: false
AEAccountOpeningStatusCodes:
type: string
enum:
- AwaitingPartyData
- Pending
- Created
- Rejected
description: >
The status of the opening of the account, based on progress at the LFI.
The values are defined as follows:
* AwaitingPartyData: The account is awaiting user data to be provided.
* Pending: The account is pending opening, based on LFI processes being
completed.
* Created: The account has been successfully opened. The account details
will be available in the response to the TPP.
* Rejected: The account opening has been rejected by the LFI due to
insufficient data or failure to validate the User data.
AEActiveCurrencyAmount:
type: object
required:
- Currency
- Amount
properties:
Currency:
$ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
Amount:
$ref: '#/components/schemas/AEActiveOrHistoricAmount'
description: >-
The Currency and Amount relating to the Payment, Refund or Request to
Pay
additionalProperties: false
AEActiveOrHistoricAmount:
type: string
pattern: ^\d{1,16}\.\d{2}$
description: >-
A number of monetary units specified in an active currency where the
unit of currency is explicit and compliant with ISO 4217.
example: '100.00'
AEActiveOrHistoricCurrencyCode:
type: string
pattern: ^[A-Z]{3,3}$
description: >-
A 3 character alphabetic code allocated to a currency under an
international currency identification scheme, as described in the latest
edition of the international standard ISO 4217 'Codes for the
representation of currencies and funds'.
example: AED
AEAddress:
type: array
items:
type: object
properties:
AddressType:
$ref: '#/components/schemas/UAEPaymentAPI.AEAddressTypeCode'
ShortAddress:
$ref: '#/components/schemas/UAEPaymentAPI.AEShortAddress'
UnitNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AEUnitNumber'
FloorNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AEFloorNumber'
BuildingNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AEBuildingNumber'
StreetName:
$ref: '#/components/schemas/UAEPaymentAPI.AEStreetName'
SecondaryNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AESecondaryNumber'
District:
$ref: '#/components/schemas/UAEPaymentAPI.AEDistrict'
PostalCode:
$ref: '#/components/schemas/UAEPaymentAPI.AEPostalCode'
POBox:
$ref: '#/components/schemas/UAEPaymentAPI.AEPOBox'
ZipCode:
$ref: '#/components/schemas/UAEPaymentAPI.AEZipCode'
City:
$ref: '#/components/schemas/UAEPaymentAPI.AECity'
Region:
$ref: '#/components/schemas/UAEPaymentAPI.AERegion'
Country:
$ref: '#/components/schemas/UAEPaymentAPI.AECountryCode'
required:
- AddressType
- Country
additionalProperties: false
minItems: 1
description: >-
(Array) Address information that locates and identifes a specific
address, as defined by a national or international postal service."
AECharges:
type: object
required:
- ChargeBearer
- Type
- Amount
properties:
ChargeBearer:
$ref: '#/components/schemas/UAEPaymentAPI.AEChargeBearerType1Code'
Type:
$ref: '#/components/schemas/UAEPaymentAPI.AEExternalPaymentChargeTypeCode'
Amount:
$ref: '#/components/schemas/AEActiveCurrencyAmount'
Description:
type: string
minLength: 1
maxLength: 140
description: >-
Description of the charge, for display to the User to help explain
why the charge is levied.
additionalProperties: false
AECreateAccountRequestBody1:
type: object
required:
- Data
properties:
Data:
$ref: '#/components/schemas/AEAccountOpeningRequest'
additionalProperties: false
AECreateAccountResponseBody1:
type: object
required:
- Data
- Links
- Meta
properties:
Data:
$ref: '#/components/schemas/AEAccount'
Links:
$ref: '#/components/schemas/AEAccountOpeningLinks1'
Meta:
$ref: '#/components/schemas/Meta'
additionalProperties: false
AECreateFxQuoteRequestBody1:
type: object
required:
- Data
properties:
Data:
$ref: '#/components/schemas/AEFxQuoteRequestProperties'
description: Request body for creating a new FX quote
additionalProperties: false
AECreateFxQuoteResponseBody1:
type: object
required:
- Data
- Links
- Meta
properties:
Data:
$ref: '#/components/schemas/AEFxQuoteProperties'
Links:
$ref: '#/components/schemas/LinksSelf'
Meta:
$ref: '#/components/schemas/Meta'
additionalProperties: false
AEError:
type: object
required:
- Code
- Message
properties:
Code:
allOf:
- $ref: '#/components/schemas/AEErrorCode'
description: Low level textual error code, e.g., UAEOF.Field.Missing
Message:
type: string
minLength: 1
maxLength: 500
description: >-
A description of the error that occurred. e.g., 'A mandatory field
isn't supplied' or 'RequestedExecutionDateTime must be in future'
UAEOF doesn't standardise this field
Path:
type: string
minLength: 1
maxLength: 500
description: >-
Recommended but optional reference to the JSON Path of the field
with error, e.g., Data.Initiation.InstructedAmount.Currency
Url:
type: string
description: >-
URL to help remediate the problem, or provide more information, or
to API Reference, or help etc
description: Error
additionalProperties: false
AEErrorCode:
type: string
enum:
- AccessToken.Unauthorized
- AccessToken.InvalidScope
- Consent.Revoked
- Consent.TransientAccountAccessFailure
- Consent.AccountTemporarilyBlocked
- Consent.PermanentAccountAccessFailure
- Consent.Invalid
- JWS.InvalidSignature
- JWS.Malformed
- JWS.InvalidClaim
- JWS.InvalidHeader
- GenericRecoverableError
- GenericError
- JWE.DecryptionError
- JWE.InvalidHeader
- Event.UnexpectedEvent
- Body.InvalidFormat
- Resource.InvalidResourceId
- Resource.InvalidFormat
- Consent.BusinessRuleViolation
AEErrorResponse:
type: object
required:
- Errors
properties:
Errors:
type: array
items:
$ref: '#/components/schemas/AEError'
minItems: 1
description: >-
An array of detail error codes, and messages, and URLs to documentation
to help remediation.
additionalProperties: false
AEFxQuote:
type: object
required:
- FxQuoteId
- BuyAmount
- SellAmount
- UnitCurrency
- QuotedCurrency
- RateType
- ExchangeRate
- UserIdentificationStatus
- ExpirationDateTime
- Status
- CreationDateTime
- StatusUpdateDateTime
properties:
FxQuoteId:
allOf:
- $ref: '#/components/schemas/FxQuoteIdType'
description: The unique identifier for the quote.
BuyAmount:
allOf:
- $ref: '#/components/schemas/AETradeSideBuyAmount'
description: The amount of the currency being bought.
SellAmount:
allOf:
- $ref: '#/components/schemas/AETradeSideSellAmount'
description: The amount of the currency being sold.
UnitCurrency:
allOf:
- $ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
description: >-
Currency in which the rate of exchange is expressed in a currency
exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.
QuotedCurrency:
allOf:
- $ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
description: >-
Currency into which the base currency is converted, in a currency
exchange.
RateType:
type: string
enum:
- Actual
- Agreed
- Indicative
description: Specifies the type used to complete the currency exchange.
ExchangeRate:
type: number
description: >-
The factor used for conversion of an amount from one currency to
another. This reflects the price at which one currency was bought
with another currency.
Charges:
type: array
items:
$ref: '#/components/schemas/AECharges'
description: The charges associated with the request currency exchange.
UserIdentificationStatus:
type: string
enum:
- UserIdentified
- UserNotIdentified
- AccountOpeningNotSupported
description: >-
Status of User identification based on supplied Party data. The
status code values are defined as follows:
* UserIdentified: The User has been identified by the LFI based on
the supplied Party data.
* UserNotIdentified: The User has not been identified by the LFI
based on the supplied Party data. The User may be able to open an
account at the LFI when data requirements are fulfilled.
* AccountOpeningNotSupported: The User has not been identified and
the LFI does not support account opening based on the supplied Party
data.
Please note that there is no status code associated with a User
logging into the LFI at this stage as this will be completed after
the quote has been accepted and consent for the trade is granted
through Bank Service Initiation.
ExpirationDateTime:
allOf:
- $ref: '#/components/schemas/AEGulfStandardDateTime'
description: The quote expiration data and time.
ContractIdentification:
type: string
minLength: 1
maxLength: 256
description: >-
Unique and unambiguous reference to the foreign exchange contract
agreed between the initiating party/creditor and the debtor agent.
Party:
$ref: '#/components/schemas/AEIdentityAssurance'
Status:
allOf:
- $ref: '#/components/schemas/AEFxQuoteStatusCodes'
description: >-
The status of the quote. The status code values are defined as
follows:
* Pending: The quote has been created at the LFI but the details
have yet to finalized by the LFI.
* Active: The quote has been finalized by the LFI and is available
for the TPP to display to the User.
* Accepted: The User has accepted the quote and the LFI has been
notified by the TPP.
* Fulfilled: The quote has been fulfilled by the LFI through either
deposit of funds or remittance to a given Creditor.
* Expired: The quote has expired and is no longer valid.
The LFI is responsible for updating the statue to Fulfilled and
returning relevant information based on the finalized value.
FulfillmentAmount:
type: object
properties:
BuyAmount:
allOf:
- $ref: '#/components/schemas/AETradeSideBuyAmount'
description: The amount of the currency being bought.
SellAmount:
allOf:
- $ref: '#/components/schemas/AETradeSideSellAmount'
description: The amount of the currency being sold.
ExchangeRate:
type: number
description: >-
The factor used for conversion of an amount from one currency to
another. This reflects the price at which one currency was
bought with another currency.
required:
- BuyAmount
- SellAmount
- ExchangeRate
description: >-
The fulfillment value of the quote, based the final execution of the
trade by the LFI.
This value is only provided when the quote status is Fulfilled and
the exchange rate and amount values differ from the original quote.
Both the buy and sell side amounts are provided for ease of use.
additionalProperties: false
CreationDateTime:
allOf:
- $ref: '#/components/schemas/CreationDateTime'
description: The date and time when the quote was created.
StatusUpdateDateTime:
allOf:
- $ref: '#/components/schemas/AEGulfStandardDateTime'
description: The data and time the quote was last updated.
additionalProperties: false
AEFxQuoteAddress:
type: array
items:
type: object
properties:
AddressType:
$ref: '#/components/schemas/UAEPaymentAPI.AEAddressTypeCode'
ShortAddress:
$ref: '#/components/schemas/UAEPaymentAPI.AEShortAddress'
UnitNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AEUnitNumber'
FloorNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AEFloorNumber'
BuildingNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AEBuildingNumber'
StreetName:
$ref: '#/components/schemas/UAEPaymentAPI.AEStreetName'
SecondaryNumber:
$ref: '#/components/schemas/UAEPaymentAPI.AESecondaryNumber'
District:
$ref: '#/components/schemas/UAEPaymentAPI.AEDistrict'
PostalCode:
$ref: '#/components/schemas/UAEPaymentAPI.AEPostalCode'
POBox:
$ref: '#/components/schemas/UAEPaymentAPI.AEPOBox'
ZipCode:
$ref: '#/components/schemas/UAEPaymentAPI.AEZipCode'
City:
$ref: '#/components/schemas/UAEPaymentAPI.AECity'
Region:
$ref: '#/components/schemas/UAEPaymentAPI.AERegion'
Country:
$ref: '#/components/schemas/UAEPaymentAPI.AECountryCode'
required:
- AddressType
- Country
additionalProperties: false
minItems: 1
description: >-
(Array) Address information that locates and identifes a specific
address, as defined by a national or international postal service."
AEFxQuoteCreditorAccount:
type: object
required:
- SchemeName
- Identification
- Name
properties:
SchemeName:
$ref: >-
#/components/schemas/UAEPaymentAPI.AECreditorExternalAccountIdentificationCode
Identification:
$ref: '#/components/schemas/UAEPaymentAPI.AEIdentification'
Name:
$ref: '#/components/schemas/UAEPaymentAPI.AEName'
TradingName:
$ref: '#/components/schemas/UAEPaymentAPI.AETradingName'
description: >-
Unambiguous identification of the account of the creditor to which a
credit entry will be posted.
additionalProperties: false
AEFxQuoteCreditorAgent:
type: object
required:
- SchemeName
- Identification
properties:
SchemeName:
type: string
enum:
- BICFI
- Other
description: >-
Refers to the Identification scheme for uniquely identifying the
Agent.
* BICFI: The BIC/SWIFT Code
* Other: The ID; A Country Code followed by a Bank Code (4 character
code). The full list of LFI names and 6 digits IDs are as follows:
Identification:
type: string
description: The Agent is the Country Code followed by a Bank Code"
Name:
type: string
minLength: 1
maxLength: 140
description: >-
Name by which an agent is known and which is usually used to
identify that agent.
PostalAddress:
$ref: '#/components/schemas/AEAddress'
description: Refers to the Financial Institution.
additionalProperties: false
AEFxQuoteProperties:
type: object
required:
- FxQuoteId
- BuyAmount
- SellAmount
- UnitCurrency
- QuotedCurrency
- RateType
- ExchangeRate
- UserIdentificationStatus
- ExpirationDateTime
properties:
FxQuoteId:
allOf:
- $ref: '#/components/schemas/FxQuoteIdType'
description: The unique identifier for the quote.
BuyAmount:
allOf:
- $ref: '#/components/schemas/AETradeSideBuyAmount'
description: The amount of the currency being bought.
SellAmount:
allOf:
- $ref: '#/components/schemas/AETradeSideSellAmount'
description: The amount of the currency being sold.
UnitCurrency:
allOf:
- $ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
description: >-
Currency in which the rate of exchange is expressed in a currency
exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.
QuotedCurrency:
allOf:
- $ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
description: >-
Currency into which the base currency is converted, in a currency
exchange.
RateType:
type: string
enum:
- Actual
- Agreed
- Indicative
description: Specifies the type used to complete the currency exchange.
ExchangeRate:
type: number
description: >-
The factor used for conversion of an amount from one currency to
another. This reflects the price at which one currency was bought
with another currency.
Charges:
type: array
items:
$ref: '#/components/schemas/AECharges'
description: The charges associated with the request currency exchange.
UserIdentificationStatus:
type: string
enum:
- UserIdentified
- UserNotIdentified
- AccountOpeningNotSupported
description: >-
Status of User identification based on supplied Party data. The
status code values are defined as follows:
* UserIdentified: The User has been identified by the LFI based on
the supplied Party data.
* UserNotIdentified: The User has not been identified by the LFI
based on the supplied Party data. The User may be able to open an
account at the LFI when data requirements are fulfilled.
* AccountOpeningNotSupported: The User has not been identified and
the LFI does not support account opening based on the supplied Party
data.
Please note that there is no status code associated with a User
logging into the LFI at this stage as this will be completed after
the quote has been accepted and consent for the trade is granted
through Bank Service Initiation.
ExpirationDateTime:
allOf:
- $ref: '#/components/schemas/AEGulfStandardDateTime'
description: The quote expiration data and time.
additionalProperties: false
AEFxQuoteRemittanceInformation:
type: object
required:
- CreditorAccount
properties:
CreditorAgent:
$ref: '#/components/schemas/AEFxQuoteCreditorAgent'
Creditor:
type: object
properties:
Name:
type: string
minLength: 1
maxLength: 140
PostalAddress:
$ref: '#/components/schemas/AEFxQuoteAddress'
additionalProperties: false
CreditorAccount:
$ref: '#/components/schemas/AEFxQuoteCreditorAccount'
description: >-
Provides remittance information for the quote, to allow the LFI to
calculate charges accurately.
The CreditorAccount is required as this will contain the destination
account for the remittance. All other values are optional.
If the quote does include a remittance element then this data is
omitted.
additionalProperties: false
AEFxQuoteRequestProperties:
type: object
required:
- TradeType
- BuyCurrency
- SellCurrency
- Amount
properties:
TradeType:
type: string
enum:
- Spot
description: The trade type. Only Spot is currently supported.
BuyCurrency:
allOf:
- $ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
description: >-
The buy currency, expressed as a ISO 4217 three-character currency
code.
example: USD
SellCurrency:
allOf:
- $ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
description: >-
The sell currency, expressed as a ISO 4217 three-character currency
code.
example: AED
Amount:
type: object
properties:
Type:
type: string
enum:
- Buy
- Sell
Amount:
$ref: '#/components/schemas/AEActiveCurrencyAmount'
required:
- Type
- Amount
description: >-
The requested currency amount, qualified with the correct currency
code and a buy/sell indicator.
additionalProperties: false
ContractIdentification:
type: string
minLength: 1
maxLength: 256
description: >-
Unique and unambiguous reference to the foreign exchange contract
agreed between the initiating party/creditor and the debtor agent.
Party:
$ref: '#/components/schemas/AEIdentityAssurance'
RemittanceInformation:
$ref: '#/components/schemas/AEFxQuoteRemittanceInformation'
description: >-
A foreign exchange request based on a given currency pair.
The buy or sell side is based on the Amount property, which is qualified
with the currency code and a buy/sell indicator.
Buy and sell currency is also provided separately for easy of reference.
additionalProperties: false
AEFxQuoteStatusCodes:
type: string
enum:
- Pending
- Active
- Accepted
- Fulfilled
- Expired
AEGulfStandardDateTime:
type: string
pattern: .+\+04:00$
format: date-time
AEIdentityAssurance:
type: object
required:
- Claims
properties:
Verification:
$ref: '#/components/schemas/AEVerifiedClaimVerification'
Claims:
$ref: '#/components/schemas/AEVerifiedClaims'
description: >-
Verified identity assurance data and claims. Data can collected from
LFIs under Data Sharing consent or provided manually by the TPP using
data collected from the User.
example:
Claims:
IdentityType: Person
GivenName: John
Surname: Doe
additionalProperties: false
AEReadAccountResponseBody1:
type: object
required:
- Data
- Links
- Meta
properties:
Data:
$ref: '#/components/schemas/AEAccount'
Links:
$ref: '#/components/schemas/AEAccountOpeningLinks1'
Meta:
$ref: '#/components/schemas/Meta'
additionalProperties: false
AEReadFxQuoteResponseBody1:
type: object
required:
- Data
- Links
- Meta
properties:
Data:
$ref: '#/components/schemas/AEFxQuote'
Links:
$ref: '#/components/schemas/LinksSelf'
Meta:
$ref: '#/components/schemas/Meta'
additionalProperties: false
AETradeSideBuyAmount:
type: object
required:
- Currency
- Amount
properties:
Currency:
$ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
Amount:
$ref: '#/components/schemas/AEActiveOrHistoricAmount'
description: >-
The Currency and Amount relating to the Payment, Refund or Request to
Pay
additionalProperties: false
AETradeSideSellAmount:
type: object
required:
- Currency
- Amount
properties:
Currency:
$ref: '#/components/schemas/AEActiveOrHistoricCurrencyCode'
Amount:
$ref: '#/components/schemas/AEActiveOrHistoricAmount'
description: >-
The Currency and Amount relating to the Payment, Refund or Request to
Pay
additionalProperties: false
AEUpdateFxQuoteRequestBody1:
type: object
properties:
Data:
type: object
properties:
status:
type: string
enum:
- Accepted
additionalProperties: false
additionalProperties: false
AEVerifiedBusinessClaims:
type: object
required:
- IdentityType
- BusinessName
- TradeLicenceNumber
properties:
IdentityType:
type: string
enum:
- Business
BusinessName:
type: string
minLength: 1
maxLength: 256
description: Name of the business requesting the quote.
TradeLicenceNumber:
type: string
description: Trade License Number of the business requesting the quote.
description: Claims related to a business entity that holds a Trade License Number.
additionalProperties: false
AEVerifiedClaimVerification:
type: object
required:
- TrustFramework
properties:
TrustFramework:
$ref: '#/components/schemas/UAEAccountInformationAPI.TrustFrameworkCode'
AssuranceLevel:
type: string
description: >-
Determines the assurance level associated with the User in the
respective VerifiedClaims. The value range depends on the respective
TrustFramework value.
Assurance Level:
[https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)
AssuranceProcess:
$ref: '#/components/schemas/UAEAccountInformationAPI.AssuranceProcess'
Time:
description: >-
Representing the date and time when the identity verification
process took place. All dates in the JSON payloads are represented
in ISO 8601 date-time format. All date-time fields in responses must
include the timezone. An example is below: 2017-04-05T10:43:07+00:00
VerificationProcess:
type: string
description: >-
Unique reference to the identity verification process as performed
by the OP. Used for identifying and retrieving details in case of
disputes or audits. Presence of this element might be required for
certain trust frameworks.
Evidence:
description: >-
The type of evidence allowed for providing verification.
OpenID Connect for Identity Assurance 1.0:
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-evidence-element)
description: >-
Verification
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element)
additionalProperties: false
AEVerifiedClaims:
oneOf:
- $ref: '#/components/schemas/AEVerifiedPersonClaims'
- $ref: '#/components/schemas/AEVerifiedBusinessClaims'
discriminator:
propertyName: IdentityType
mapping:
Person: '#/components/schemas/AEVerifiedPersonClaims'
Business: '#/components/schemas/AEVerifiedBusinessClaims'
AEVerifiedPersonClaims:
type: object
required:
- IdentityType
properties:
IdentityType:
type: string
enum:
- Person
FullName:
type: string
description: >-
The full name of the person. Can be provided as an alternative to
`GivenName` and `Surname` where only the full name is captured.
GivenName:
type: string
description: >-
Given name of the Party. Given name (also called forename) is used
to differentiate from the surname or family name.
Surname:
type: string
description: Surname of the Party
MiddleName:
type: string
description: Middle name of the Party
Nickname:
type: string
description: Nickname of the Party
EmiratesId:
type: string
description: Emirates ID number of the Party
EmiratesIdExpiryDate:
type: string
format: date
description: Emirates ID card expiry date
DateOfBirth:
type: string
format: date
description: Date of birth of the Party
SourceOfIncome:
type: string
Salary:
type: number
Nationality:
type: string
ResidentialAddress:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.AEPartyIdentityAddressClaim
MobileNumber:
type: string
Email:
type: string
MaritalStatus:
type: string
Salutation:
type: string
Language:
type: string
EmployerName:
type: string
EmploymentSinceDate:
type: string
format: date
PowerofAttorney:
type: boolean
SalaryTransfer:
type: boolean
Profession:
type: string
UpdatedAt:
type: string
format: time
additionalProperties: false
AccountIdentifiers:
type: array
items:
type: object
properties:
SchemeName:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.AEExternalAccountIdentificationCode
Identification:
$ref: '#/components/schemas/UAEAccountInformationAPI.Identification_0'
Name:
$ref: '#/components/schemas/UAEAccountInformationAPI.Name_0'
required:
- SchemeName
- Identification
additionalProperties: false
CreationDateTime:
type: string
pattern: .+\+04:00$
format: date-time
description: The resource creation date and time.
FxQuoteIdType:
type: string
minLength: 1
maxLength: 128
LinksSelf:
type: object
required:
- Self
properties:
Self:
$ref: '#/components/schemas/Self'
description: Links relevant to the resource
additionalProperties: false
Meta:
type: object
description: Metadata relevant to the resource
additionalProperties: false
OpeningStatusUpdateDateTime:
type: string
pattern: .+\+04:00$
format: date-time
description: The date and time the opening status was last updated.
Self:
type: string
format: uri
description: A link to the current resource
UAEAccountInformationAPI.AEAccountStatusCode:
type: string
enum:
- Active
- Inactive
- Dormant
- Unclaimed
- Deceased
- Suspended
- Closed
description: >-
Specifies the status of account resource in code form.
* Active: The account exist and is in an active state.
* Inactive: The account is deemed not active by the LFI. Please refer to
the
[CBUAE
Website](https://rulebook.centralbank.ae/en/rulebook/dormant-accounts-regulation)
for qualification of Inactive status.
* Dormant: Please refer to the [CBUAE
Website](https://rulebook.centralbank.ae/en/rulebook/dormant-accounts-regulation)
for the definition of Dormant status.
* Unclaimed: Please refer to the [CBUAE
Website](https://rulebook.centralbank.ae/en/rulebook/dormant-accounts-regulation)
for the definition of Unclaimed status.
* Deceased: The account holder has passed away.
* Suspended: The account has been temporarily deactivated by the LFI for
reasons such as
suspicious activities or non-compliance with regulations. The account
holder might
be unable to access funds or perform transactions until the bank's
requirements
are met, and the suspension is lifted.
* Closed: The account is closed
UAEAccountInformationAPI.AEBranchAndFinancialInstitutionIdentification5_0:
type: object
required:
- SchemeName
- Identification
properties:
SchemeName:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.AEExternalFinancialInstitutionIdentificationCode
Identification:
$ref: '#/components/schemas/UAEAccountInformationAPI.Identification_1'
description: >-
Party that manages the account on behalf of the account owner, that is
manages the registration and booking of entries on the account,
calculates balances on the account and provides information about the
account.
additionalProperties: false
UAEAccountInformationAPI.AECashAccount6_1:
type: object
properties:
SchemeName:
$ref: >-
#/components/schemas/UAEAccountInformationAPI.AEExternalAccountIdentificationCode
Identification:
$ref: '#/components/schemas/UAEAccountInformationAPI.Identification_0'
Name:
$ref: '#/components/schemas/UAEAccountInformationAPI.Name_0'
description: >-
Account details of the Debtor in case the transaction is a Credit
transaction.
These are optional because there are situations where this cannot be
populated for the following Credit transactions
- cash deposits (no creditor account/agent)
- cheques and DDs may not have this information at least during the
process of clearing and sometimes (e.g. for agency banks) may not be
reconciled ever
- some corner situations with international payments
- for refunds with card payments (instead merchant information fields
should be populated)
additionalProperties: false
UAEAccountInformationAPI.AEExternalAccountIdentificationCode:
type: string
enum:
- IBAN
- AccountNumber
description: >-
Name of the identification scheme for the account. Encoded with
allowable values published in an external list.
UAEAccountInformationAPI.AEExternalAccountSubTypeCode:
type: string
description: >-
Specifies the sub type of account (product family group). Examples
values include: CurrentAccount, Savings
x-namespaced-enum:
- CurrentAccount
- Savings
UAEAccountInformationAPI.AEExternalAccountTypeCode:
type: string
enum:
- Retail
- SME
- Corporate
description: Specifies the type of account (Retail, SME or Corporate).
UAEAccountInformationAPI.AEExternalFinancialInstitutionIdentificationCode:
type: string
enum:
- BICFI
- Other
description: >-
* /accounts resource
The name of the identification scheme for the LFI as the account
services provider. Encoded with allowable value as published in an
external list.
* /beneficiaries resource
Refers to the Financial Institution that manages the account on behalf
of the Beneficiary party, managing registration, booking of entries on
the account, calculating balances on the account and providing
information about the account. This is the servicing Financial
Institution of the Beneficiary account.
* /scheduled-payments resource
Refers to the identification scheme for uniquely identifying the
Creditor Agent.
* /standing-orders resource
Refers to the identification scheme for uniquely identifying the
Creditor Agent.
* /transactions resource
Refers to the identification scheme for uniquely identifying the
Creditor Agent.
UAEAccountInformationAPI.AEPartyIdentityAddressClaim:
type: object
required:
- Formatted
- StreetAddress
- Locality
- Region
- PostalCode
- Country
properties:
Formatted:
type: string
description: The address number and street claim that has been verified.
StreetAddress:
type: string
description: The address street claim that has been verified.
Locality:
type: string
description: >-
The address locality (village, town, city etc) claim that has been
verified.
Region:
type: string
description: The address region claim that has been verified.
PostalCode:
$ref: '#/components/schemas/UAEAccountInformationAPI.PostalCode'
Country:
$ref: '#/components/schemas/UAEAccountInformationAPI.CountryCode'
description: >-
Address object as per OpenID Connect Core 1.0 Address Claim
[https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim](https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim)
additionalProperties: false
UAEAccountInformationAPI.AccountHolderName:
type: string
description: >-
* /accounts resource
The Account Holder Name is the name or names of the Account owner(s)
represented at the account level
* /accounts/{AccountId} resource
The Account Holder Name is the name or names of the Account owner(s)
represented at the account level
* /beneficiaries resource
The Account Holder Name is the name or names of the Beneficiary account
owner(s) represented at the account level, as displayed by the Creditor
Agent's online channels and as provided by the Beneficiary to the User 1
when adding the Beneficiary in the Beneficiary list.
Note, the Account Holder Name is not the product name or the nickname of
the account.
* /scheduled-payments resource
The Account Holder Name is the name or names of the Beneficiary account
owner(s) represented at the account level, as displayed by the Creditor
Agent's online channels and as provided by the Beneficiary to the User 1
when adding the Beneficiary in the Beneficiary list.
Note, the Account Holder Name is not the product name or the nickname of
the account.
* /standing-orders resource
The Account Holder Name is the name or names of the Beneficiary account
owner(s) represented at the account level, as displayed by the Creditor
Agent's online channels and as provided by the Beneficiary to the User 1
when adding the Beneficiary in the Beneficiary list.
Note, the Account Holder Name is not the product name or the nickname of
the account.
UAEAccountInformationAPI.AccountHolderShortName:
type: string
description: |-
* /accounts resource
The Account holder nick name
* /accounts/{AccountId} resource
The Account holder nick name
* /beneficiaries resource
The Beneficiary account holder nick name
* /scheduled-payments resource
The Beneficiary account holder nick name
* /standing-orders resource
The Beneficiary account holder nick name
UAEAccountInformationAPI.AccountId:
type: string
minLength: 1
maxLength: 40
description: >-
A unique and immutable identifier produced by the LFI to identify the
account resource.This identifier has no meaning to the account owner
(User 1).
UAEAccountInformationAPI.ActiveOrHistoricCurrencyCode_0:
type: string
pattern: ^[A-Z]{3,3}$
description: >-
Identification of the currency in which the account is held. A code
allocated to a currency under an international currency identification
scheme, as described in the latest edition of the international standard
ISO 4217 'Codes for the representation of currencies and funds'.
UAEAccountInformationAPI.AssuranceDetails:
type: object
required:
- AssuranceType
- AssuranceClassification
- EvidenceRef
properties:
AssuranceType:
type: string
description: >-
String denoting which part of the assurance_process the evidence
fulfils
AssuranceClassification:
type: string
description: >-
String reflecting how the evidence has been classified or measured
as required by the TrustFramework
EvidenceRef:
type: array
items:
$ref: '#/components/schemas/UAEAccountInformationAPI.EvidenceRef'
description: Denoting the details about how the evidence complies with the policy
additionalProperties: false
UAEAccountInformationAPI.AssuranceProcess:
type: object
required:
- Policy
- Procedure
- AssuranceDetails
properties:
Policy:
type: string
description: Representing the standard or policy that was followed.
Procedure:
type: string
description: Representing a specific procedure from the policy that was followed.
AssuranceDetails:
type: array
items:
$ref: '#/components/schemas/UAEAccountInformationAPI.AssuranceDetails'
description: >-
Determines the assurance process that was followed. This reflects how
the evidence meets the requirements of the TrustFramework and
AssuranceLevel. The factual record of the evidence and the procedures
followed are recorded in the evidence element, this element is used to
cross reference the evidence to the AssuranceLevel followed
OpenID Connect for Identity Assurance 1.0:
[https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element](https://openid.net/specs/openid-connect-4-identity-assurance-1_0.html#name-verification-element)
additionalProperties: false
UAEAccountInformationAPI.CountryCode:
type: object
required:
- CountryCode
properties:
CountryCode:
type: string
pattern: ^[A-Z]{2,2}$
description: Nation with its own government, occupying a particular territory.
additionalProperties: false
UAEAccountInformationAPI.Description_0:
type: string
minLength: 1
maxLength: 35
description: Specifies the description of the account sub-type.
UAEAccountInformationAPI.EvidenceMetadata:
type: object
required:
- EvidenceClassification
properties:
EvidenceClassification:
type: string
description: >-
Object indicating any meta data about the evidence that is required by
the AssuranceProcess in order to demonstrate compliance with the
TrustFramework. It has the following sub-elements
additionalProperties: false
UAEAccountInformationAPI.EvidenceRef:
type: object
required:
- Txn
- EvidenceMetadata
properties:
Txn:
type: string
description: Identifier referring to the txn used in the CheckDetails.
EvidenceMetadata:
$ref: '#/components/schemas/UAEAccountInformationAPI.EvidenceMetadata'
description: Evidence being referred to
additionalProperties: false
UAEAccountInformationAPI.Identification_0:
type: string
minLength: 1
maxLength: 400
description: >-
Identification for the account assigned by the LFI based on the Account
Scheme Name. This identification is known by the User 1 account owner.
For IBAN, refer to the ISO Standard 13616.
UAEAccountInformationAPI.Identification_1:
type: string
minLength: 1
maxLength: 35
description: >-
* /accounts resource
Unique and unambiguous identification of the LFI as the account
servicing institution for the Open Banking Services.
* /beneficiaries resource
Unique and unambiguous identification of the Creditor Agency as the
servicing institution of the Beneficiary.
* /scheduled-payments resource
Unique and unambiguous identification of the LFI as the account
servicing institution for the Open Banking Services.
* /standing-orders resource
Unique and unambiguous identification of the LFI as the account
servicing institution for the Open Banking Services.
* /transactions resource
Unique and unambiguous identification of the LFI as the account
servicing institution for the Open Banking Services.
* Notes:
Based on the value of the field **SchemeName**, this entry may be :
* BICFI: The BIC/SWIFT Code
* Other: The ID; A Country Code followed by a Bank Code (4 character
code).
UAEAccountInformationAPI.MaturityDate:
type: string
format: date-time
description: >-
* Fixed Term Savings Account
MaturityDate is the date on which the savings mature and the balance can
be withdrawn by the User without penalty
* All dates in the JSON payloads are represented in ISO 8601 date-time
format. All date-time fields in responses must include the timezone. An
example is: 2017-04-05T10:43:07+00:00
UAEAccountInformationAPI.Name_0:
type: string
minLength: 1
maxLength: 70
description: >-
The account name is the name or names of the User 1 account owner(s)
represented at an account level, as displayed by the LFI's online
channels. Note: The account name is not the product name or the nickname
of the account.
UAEAccountInformationAPI.Nickname:
type: string
minLength: 1
maxLength: 70
description: >-
The nickname of the account, assigned by User 1 to provide an additional
and easier means of identification of the account at the LFI.
UAEAccountInformationAPI.OpeningDate:
type: string
format: date-time
description: >-
Date on which the account and its related basic services by LFI started
to be operational for User 1. All dates in the JSON payloads are
represented in ISO 8601 date-time format. All date-time fields in
responses must include the timezone. An example is below:
2017-04-05T10:43:07+00:00
UAEAccountInformationAPI.PostalCode:
type: object
required:
- PostalCode
properties:
PostalCode:
type: string
minLength: 5
maxLength: 5
description: >-
Identifier consisting of a group of letters and/or numbers that is
added to a postal address to assist the sorting of mail.
additionalProperties: false
UAEAccountInformationAPI.StatusUpdateDateTime:
type: string
format: date-time
description: >-
Date and time at which the account resource status was updated. All
dates in the JSON payloads are represented in ISO 8601 date-time format.
All date-time fields in responses must include the timezone. An example
is below:
2017-04-05T10:43:07+00:00
UAEAccountInformationAPI.TrustFrameworkCode:
type: string
enum:
- Undefined
description: >-
Identifies the trust framework used for verification. This consists of a
set of rules and standards and sets out requirements so that
organisations know what ‘good’ identity verification looks like.
Trust Frameworks:
[https://bitbucket.org/openid/ekyc-ida/wiki/identifiers](https://bitbucket.org/openid/ekyc-ida/wiki/identifiers)
UAEPaymentAPI.AEAddressTypeCode:
type: string
enum:
- Business
- Correspondence
- Residential
description: Specifies the nature of the Address.
UAEPaymentAPI.AEBuildingNumber:
type: string
minLength: 1
maxLength: 10
description: Identifies the building number.
UAEPaymentAPI.AEChargeBearerType1Code:
type: string
enum:
- BorneByCreditor
- BorneByDebtor
- Shared
description: >-
Specifies which party/parties will bear the charges associated with the
processing of the payment transaction.
UAEPaymentAPI.AECity:
type: string
minLength: 1
maxLength: 35
description: Identifies the name of the city or town where the address is situated.
UAEPaymentAPI.AECountryCode:
type: string
pattern: ^[A-Z]{2,2}$
description: >-
Indicates the country code in which the address is located (References
ISO 3166-1 alpha-2).
UAEPaymentAPI.AECreditorExternalAccountIdentificationCode:
type: string
enum:
- IBAN
- AccountNumber
description: >-
Name of the identification scheme, in a coded form as published in an
external list.
UAEPaymentAPI.AEDistrict:
type: string
minLength: 1
maxLength: 35
description: Identifies the district of a city.
UAEPaymentAPI.AEExternalPaymentChargeTypeCode:
type: string
enum:
- VAT
- Fees
description: Charge type, in a coded form.
UAEPaymentAPI.AEFloorNumber:
type: string
minLength: 1
maxLength: 10
description: Identifies the building floor number.
UAEPaymentAPI.AEIdentification:
type: string
minLength: 1
description: >-
Identification for the account assigned by the LFI based on the Account
Scheme Name.
This identification is known by the User account owner.
UAEPaymentAPI.AEName:
type: object
properties:
en:
type: string
maxLength: 70
description: English value of the string
ar:
type: string
maxLength: 70
description: Arabic value of the string
description: >-
The Account Holder Name is the name or names of the Account owner(s)
represented at the account level
additionalProperties: false
UAEPaymentAPI.AEPOBox:
type: string
minLength: 1
maxLength: 10
description: Identifies the POBox.
UAEPaymentAPI.AEPostalCode:
type: string
minLength: 1
maxLength: 10
description: >-
Identifies the postal code; a unique code assigned to a specific
geographic area for efficient mail sorting and delivery purposes.
UAEPaymentAPI.AERegion:
type: string
minLength: 1
maxLength: 35
description: Identifies the region.
UAEPaymentAPI.AESecondaryNumber:
type: string
minLength: 4
maxLength: 4
description: 4 numbers representing the accurate location coordinates of the address
UAEPaymentAPI.AEShortAddress:
type: string
minLength: 1
maxLength: 8
description: >-
A short address consists of four letters: region code, branch code,
division code, unique code and a four-digit number for the building.
UAEPaymentAPI.AEStreetName:
type: string
minLength: 1
maxLength: 70
description: Identifies the street name or road.
UAEPaymentAPI.AETradingName:
type: object
properties:
en:
type: string
maxLength: 70
description: English value of the string
ar:
type: string
maxLength: 70
description: Arabic value of the string
description: |-
The Trading Brand Name (if applicable) for the Creditor.
Applicable to Payments.
additionalProperties: false
UAEPaymentAPI.AEUnitNumber:
type: string
minLength: 1
maxLength: 10
description: Identifies the unit or apartment number.
UAEPaymentAPI.AEZipCode:
type: string
minLength: 1
maxLength: 10
description: >-
Identifies the ZIP code; a unique code assigned to a specific geographic
area for efficient mail sorting and delivery purposes.
examples:
CreateFXQuoteUnsignedRequest:
summary: Create FX Quote Example - Unsigned Request
description: >-
Create an FX Quote for a AED to USD trade. The trade is a spot trade
with a buy amount of 100 USD.
value:
Data:
TradeType: Spot
BuyCurrency: USD
SellCurrency: AED
Amount:
Type: Buy
Amount:
Currency: USD
Amount: '100.00'
ContractIdentification: 54c2d2bd-92de-4dcd-8eb7-f48527a2f0a5
Party:
Claims:
IdentityType: Person
GivenName: Hamad
Surname: Ali
EmiratesId: 7841-1234-1234567-1
CreateFXQuoteSignedRequest:
summary: Create FX Quote Example - Signed Request
description: >-
Create an FX Quote for a AED to USD trade. The trade is a spot trade
with a buy amount of 100 USD.
value:
iss: https://lfi.openfinanceapihub.ae
exp: 1738848508
nbf: 1738844908
message:
Data:
TradeType: Spot
BuyCurrency: USD
SellCurrency: AED
Amount:
Type: Buy
Amount:
Currency: USD
Amount: '100.00'
ContractIdentification: 54c2d2bd-92de-4dcd-8eb7-f48527a2f0a5
Party:
Claims:
IdentityType: Person
GivenName: Hamad
Surname: Ali
EmiratesId: 7841-1234-1234567-1
CreateFXQuoteUnsignedResponse:
summary: Create FX Quote Example - Unsigned Response
description: Quote response for a spot trade with a buy amount of 100 USD.
value:
Data:
FxQuoteId: 1d747c7b-7285-43e2-bb26-f7d6f195177e
BuyAmount:
Currency: USD
Amount: '100.00'
SellAmount:
Currency: AED
Amount: '367.25'
UnitCurrency: AED
QuotedCurrency: USD
RateType: Actual
ExchangeRate: 0.272294
ExpirationDateTime: '2025-08-24T14:15:22.001+04:00'
UserIdentificationStatus: UserIdentified
Links:
Self: >-
https://lfi.openfinanceapihub.ae/open-finance/fx/v2.0-draft2/fx-quotes/1d747c7b-7285-43e2-bb26-f7d6f195177e
Meta: {}
CreateFXQuoteSignedResponse:
summary: Create FX Quote Example - Signed Response
description: Quote response for a spot trade with a buy amount of 100 USD.
value:
iss: https://lfi.openfinanceapihub.ae
exp: 1738848508
nbf: 1738844908
message:
Data:
FxQuoteId: 1d747c7b-7285-43e2-bb26-f7d6f195177e
BuyAmount:
Currency: USD
Amount: '100.00'
SellAmount:
Currency: AED
Amount: '367.25'
UnitCurrency: AED
QuotedCurrency: USD
RateType: Actual
ExchangeRate: 0.272294
ExpirationDateTime: '2025-08-24T14:15:22.001+04:00'
UserIdentificationStatus: UserIdentified
Links:
Self: >-
https://lfi.openfinanceapihub.ae/open-finance/fx/v2.0-draft2/fx-quotes/1d747c7b-7285-43e2-bb26-f7d6f195177e
Meta: {}
ReadFXQuoteUnsignedResponse:
summary: Read FX Quote Example - Unsigned Response
description: Quote response for a spot trade with a buy amount of 100 USD.
value:
Data:
FxQuoteId: 1d747c7b-7285-43e2-bb26-f7d6f195177e
BuyAmount:
Currency: USD
Amount: '100.00'
SellAmount:
Currency: AED
Amount: '367.25'
UnitCurrency: AED
QuotedCurrency: USD
RateType: Actual
ExchangeRate: 0.272294
ExpirationDateTime: '2025-08-24T14:15:22.001+04:00'
UserIdentificationStatus: UserIdentified
Party:
Claims:
IdentityType: Person
GivenName: Hamad
Surname: Ali
EmiratesId: 7841-1234-1234567-1
Status: Pending
CreationDateTime: '2025-08-24T14:05:22.001+04:00'
StatusUpdateDateTime: '2025-08-24T14:05:22.001+04:00'
Links:
Self: >-
https://lfi.openfinanceapihub.ae/open-finance/fx/v2.0-draft2/fx-quotes/1d747c7b-7285-43e2-bb26-f7d6f195177e
Meta: {}
ReadFXQuoteSignedResponse:
summary: Read FX Quote Example - Signed Response
description: Quote response for a spot trade with a buy amount of 100 USD.
value:
iss: https://lfi.openfinanceapihub.ae
exp: 1738848508
nbf: 1738844908
message:
Data:
FxQuoteId: 1d747c7b-7285-43e2-bb26-f7d6f195177e
BuyAmount:
Currency: USD
Amount: '100.00'
SellAmount:
Currency: AED
Amount: '367.25'
UnitCurrency: AED
QuotedCurrency: USD
RateType: Actual
ExchangeRate: 0.272294
ExpirationDateTime: '2025-08-24T14:15:22.001+04:00'
UserIdentificationStatus: UserIdentified
Party:
Claims:
IdentityType: Person
GivenName: Hamad
Surname: Ali
EmiratesId: 7841-1234-1234567-1
Status: Pending
CreationDateTime: '2025-08-24T14:05:22.001+04:00'
StatusUpdateDateTime: '2025-08-24T14:05:22.001+04:00'
Links:
Self: >-
https://lfi.openfinanceapihub.ae/open-finance/fx/v2.0-draft2/fx-quotes/1d747c7b-7285-43e2-bb26-f7d6f195177e
Meta: {}
CreateAccountUnsignedRequest:
summary: Create Account Opening Example - Unsigned Request
description: >-
Create an account opening request for a new account with party data
provided through data sharing.
value:
Data:
FxQuoteId: 1d747c7b-7285-43e2-bb26-f7d6f195177e
Party:
Claims:
IdentityType: Person
GivenName: Hamad
Surname: Ali
EmiratesId: 7841-1234-1234567-1
CreateAccountSignedRequest:
summary: Create Account Opening Example - Signed Request
description: >-
Create an account opening request for a new account with party data
provided through data sharing.
value:
iss: https://lfi.openfinanceapihub.ae
exp: 1738848508
nbf: 1738844908
message:
Data:
FxQuoteId: 1d747c7b-7285-43e2-bb26-f7d6f195177e
Party:
Claims:
IdentityType: Person
GivenName: Hamad
Surname: Ali
EmiratesId: 7841-1234-1234567-1
ReadAccountOpeningAwaitingPartyDataUnsignedResponse:
summary: Read Account Opening Example - AwaitingPartyData - Unsigned Response
description: The account opening is pending the User providing additional data.
value:
Data:
AccountId: 7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
OpeningStatus: AwaitingPartyData
OpeningStatusUpdateDateTime: '2021-01-01T00:00:00+04:00'
Links:
Self: >-
https://lfi.openfinanceapihub.ae/accounts/7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
AccountOpeningRedirectUrl: >-
https://lfi.example.ae/accounts?account-id=7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
Meta: {}
ReadAccountOpeningAwaitingPartyDataSignedResponse:
summary: Read Account Opening Example - AwaitingPartyData - Signed Response
description: The account opening is pending the User providing additional data.
value:
iss: https://lfi.openfinanceapihub.ae
exp: 1738848508
nbf: 1738844908
message:
Data:
AccountId: 7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
OpeningStatus: AwaitingPartyData
OpeningStatusUpdateDateTime: '2021-01-01T00:00:00+04:00'
Links:
Self: >-
https://lfi.openfinanceapihub.ae/accounts/7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
AccountOpeningRedirectUrl: >-
https://lfi.example.ae/accounts?account-id=7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
Meta: {}
ReadAccountOpeningCreatedUnsignedResponse:
summary: Read Account Opening Example - Created - Unsigned Response
description: >-
The account has been successfully opened and account details are
available for use.
value:
Data:
AccountId: 7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
AccountHolderName: Hamad Ali
AccountIdentifiers:
- SchemeName: IBAN
Identification: AE460090000000123456789
OpeningStatus: Created
OpeningStatusUpdateDateTime: '2021-01-01T01:00:00+04:00'
Links:
Self: >-
https://lfi.openfinanceapihub.ae/accounts/7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
Meta: {}
ReadAccountOpeningCreatedSignedResponse:
summary: Read Account Opening Example - Created - Signed Response
description: >-
The account has been successfully opened and account details are
available for use.
value:
iss: https://lfi.openfinanceapihub.ae
exp: 1738848508
nbf: 1738844908
message:
Data:
AccountId: 7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
AccountHolderName: Hamad Ali
AccountIdentifiers:
- SchemeName: IBAN
Identification: AE460090000000123456789
OpeningStatus: Created
OpeningStatusUpdateDateTime: '2021-01-01T01:00:00+04:00'
Links:
Self: >-
https://lfi.openfinanceapihub.ae/accounts/7a79d7f0-4054-4ee8-bce2-ef696f1a7a31
Meta: {}
securitySchemes:
TPPOAuth2Security:
type: oauth2
description: >-
TPP confidential client authorization with the LFI to stage a consent.
**Please refer to [OpenID FAPI Security Profile 1.0 -Part 2
Advanced](https://openid.net/specs/openid-financial-api-part-2-1_0.html#authorization-server)
- 5.2.2 point 14 - shall authenticate the confidential client using one
of the following methods private_key_jwt and [OpenID Connect Core
1.0](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication)
9. Client Authentication private_key_jwt**
flows:
clientCredentials:
tokenUrl: https://authserver.example/token
scopes:
fx: >-
Ability to get FX quotes and dynamically open account for funding
deposit
servers:
- url: /open-finance/fx/v2.0-draft2
description: ''
variables: {}
|