Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

1.      Overview

The transactions resource is used by an AISP to retrieve the transactions for a specific AccountId or to retrieve the transactions in bulk for account(s) that the PSU has authorised to access.

This resource description should be read in conjunction with a compatible Account Information Services API Profile.

2.    Endpoints

Endpoints for the resource - and available methods.

S.No.

Resource

HTTP Operation

Endpoint

Mandatory

Scope

Grant Type

Idempotency Key

Parameters

Request Object

Response Object

2.1

transactions

GET

GET /accounts/{AccountId}/transactions

Mandatory

accounts

Authorization Code

No

Pagination filtering

 

OBReadTransaction

2.2

transactions

GET

GET/transactions

optional

accounts

Authorization Code

No

Pagination filtering

 

OBReadTransaction

 2.1.     GET/accounts/{AccountsId}/transactions

An AISP may retrieve the transaction resource for a specific AccountId (which is retrieved in the call to GET /accounts) 

2.2.     GET /transactions

 If an ASPSP has implemented the bulk retrieval endpoints, an AISP may optionally retrieve the transactions in bulk. This will retrieve the resources for all authorised accounts linked to the account-request.

3.    Data Models

3.1.      OBReadTransaction 

The OBReadTransaction object will be used for the call to:

  • GET /accounts/{AccountId}/transactions

  • GET /transactions

  • GET /accounts/{AccountId}/statements/{StatementId}transactions

3.1.1       Resource Definition

A resource that describes a posting to an account that results in an increase or decrease to a balance. For a specific date range, an account (AccountId) may have no transactions booked, or may have multiple transactions booked.

3.1.2       UML Diagram

 

...

3.1.3       Notes

  • The use of the term "Transaction" has been made consistently in the Transaction endpoint payload (instead of "Entry" which is the ISO20022 element name).

  • A DateTime element has been used instead of a complex choice element of Date and DateTime. Where time elements do not exist in ASPSP systems, the time portion of the DateTime element will be defaulted to 00:00:00+00:00.

  • The BookingDateTime has been set to mandatory as all ASPSPs must provide this field for pagination and filtering. The BookingDateTime is the date the transaction is booked (or posted) and becomes immutable, which is not the date the transaction took place.

  • For CreditCard transactions that are not yet booked, ASPSPs must populate the BookingDateTime field with an expected booking date

  • Either the BankTransactionCode (which is the ISO transaction code list), or ProprietaryBankTransactionCode, or both may be populated. While the expectation is that at least one of BankTransactionCode. or ProprietaryBankTransactionCode are populated, we have decided not to enforce this behaviour in the payload structure as this would require nesting elements and introducing complex choice elements.

  • The BankTransactionCode (ISO) code-list is documented on the ISO20022 website: here; and External Code Sets spreadsheet.

    • The ISO 20022 BankTransactionCode Code and SubCode are specified as 4 letter codes. However, the principle we have applied for the code lists is to have longer more descriptive codes.

    • The BankTransactionCode Code and SubCode will be populated with the long form description of the ISO 20022 code, with delimiters removed. E.g., the Family Code "CNTR" has a description of "Counter Transactions" which is populated as "CounterTransactions"

  • ASPSPs must have the ability to provide transactions through APIs for a period that at least equals the period provided through their online channels

3.1.4       Filtering

Name

Occurrence

Enhanced Definition

Class

fromBookingDateTime

0..1

Specifies start date and time for filtering of the Transaction records on the Transaction/BookingDateTime field

DateTime

toBookingDateTime

0..1

Specifies end date and time for filtering of the Transaction records on the Transaction/BookingDateTime field.

DateTime

Limited support for filtering is provided on the transactions resource.

The ASPSP must treat the following as valid input:

  • Non-working days (e.g. a Sunday or a Bank holiday) or any other days on which no transactions are recorded.

  • Dates that fall outside the range for which transaction information is provided through APIs.

  • Dates that fall outside the range for which a consent authorisation is available.

  • Timezone may be included in the filter request, but must be ignored by the ASPSP.

In the above situations, the ASPSP must return data for the remaining valid period specified by the filter

3.1.4.1     Filtering Example

// All transactions from 1st Jan, 2020

GET /transactions?fromBookingDateTime=2020-01-01T00:00:00

// All transactions in 2019

GET /transactions?fromBookingDateTime=2019-01-01T00:00:00&toBookingDateTime=2019-12-31T23:59:59

// All transactions in a specific account up to 31-Mar-2020

GET /accounts/1/transactions?toBookingDateTime=2020-03-31T23:59:59

3.1.5      Mutability

Due to the way that ASPSPs and payment systems operate, some of the fields in a transaction may change for a short period of time before it settles into an eventual immutable state.

Prior to Version 3.1.5, there was no specific flag to indicate the mutability of a transaction record and TPPs inferred it from the Status field. As an "unstated" standard, a transaction with a status of Pending was considered to be mutable (ie some of its fields like date, description and amount may change or the transaction may be backed out completely) while a Booked transaction was considered to be immutable. There were however, some edge cases where a Booked transaction may suffer from changes to some fields.

Since Version 3.1.5, the mutability for a transaction has been made explicit:

  • A transaction with a Status of Pending is mutable

  • A transaction with a Status of Booked where the TransactionMutability flag is not specified is immutable.

  • A transaction with a Status of Booked with the TransactionMutability flag set to Immutable is immutable.

  • A transaction with a Status of Booked with the TransactionMutability flag set to Mutable is mutable.

3.1.5.1     Examples to illustrate mutability

// Mutable

{  "Status": "Booked",

  "TransactionMutability": "Mutable"   }

// Immutable

{  "Status": "Booked",

  "TransactionMutability": "Immutable" }

...

Table of Contents
maxLevel1
stylenone

1. Version Control

Version

Date

Description of Changes

Bahrain OBF v1.0.0

25th Aug 2020

Initial Release

2. Overview

The transactions resource is used by an AISP to retrieve the transactions for a specific AccountId or to retrieve the transactions in bulk for account(s) that the customer has authorised to access.

This resource description should be read in conjunction with a compatible Account Information Services API Profile.

3. Endpoints

Endpoints for the resource - and available methods.

S. No.

Resource

HTTP Operation

Endpoint

Mandatory

Scope

Grant Type

Idempotency Key

Parameters

Request Object

Response Object

3.1

transactions

GET

GET/accounts/{AccountId}/transactions

Mandatory

accounts

Authorisation Code

No

Pagination filtering

 

OBReadTransaction

3.2

transactions

GET

GET/transactions

Optional

accounts

Authorisation Code

No

Pagination filtering

 

OBReadTransaction

3.1 GET/accounts/{AccountId}/transactions

An AISP may retrieve the transaction resource for a specific AccountId (which is retrieved in the call to GET /accounts).

3.2 GET /transactions

If an ASPSP has implemented the bulk retrieval endpoints, an AISP may optionally retrieve the transactions in bulk. This will retrieve the resources for all authorised accounts linked to the account-request.

4. Data Models

4.1 OBReadTransaction 

The OBReadTransaction object will be used for the call to:       

  • GET /accounts/{AccountId}/transactions

  • GET /transactions

  • GET /accounts/{AccountId}/statements/{StatementId}/transactions

4.1.1 Resource Definition

A resource that describes a posting to an account that results in an increase or decrease to a balance. For a specific date range, an account (AccountId) may have no transactions booked, or may have multiple transactions booked.

4.1.2 UML Diagram

...

4.1.3 Notes

  • The use of the term "Transaction" has been made consistently in the Transaction endpoint payload (instead of "Entry" which is the ISO20022 element name)

  • A DateTime element has been used instead of a complex choice element of Date and DateTime. Where time elements do not exist in ASPSP systems, the time portion of the DateTime element will be defaulted to 00:00:00+03:00

  • The BookingDateTime has been set to mandatory as all ASPSPs must provide this field for pagination and filtering. The BookingDateTime is the date the transaction is booked (or posted) and becomes immutable, which is not the date the transaction took place

  • For CreditCard transactions that are not yet booked, ASPSPs must populate the BookingDateTime field with an expected booking date

  • Either the BankTransactionCode (which is the ISO transaction code list), or ProprietaryBankTransactionCode, or both may be populated. While the expectation is that at least one of BankTransactionCode. or ProprietaryBankTransactionCode are populated, it is decided not to enforce this behaviour in the payload structure as this would require nesting elements and introducing complex choice elements

  • The BankTransactionCode (ISO) code-list is documented on the ISO20022 website: here; and External Code Sets spreadsheet

    • The ISO 20022 BankTransactionCode Code and SubCode are specified as 4 letter codes. However, longer descriptive codes are used

    • The BankTransactionCode Code and SubCode will be populated with the long form description of the ISO 20022 code, with delimiters removed. E.g., the Family Code "CNTR" has a description of "Counter Transactions" which is populated as "CounterTransactions"

  • ASPSPs must have the ability to provide transactions through APIs for a period that at least equals the period provided through their online channels

4.1.4 Filtering

Name

Occurrence

Enhanced Definition

Class

fromBookingDateTime

0..1

Specifies start date and time for filtering of the Transaction records on the Transaction/BookingDateTime field

DateTime

toBookingDateTime

0..1

Specifies end date and time for filtering of the Transaction records on the Transaction/BookingDateTime field

DateTime

Limited support for filtering is provided on the transactions resource.

The ASPSP must treat the following as valid input:

  • Non-working days (e.g. weekend or a Bank holiday) or any other days on which no transactions are recorded

  • Dates that fall outside the range for which transaction information is provided through APIs

  • Dates that fall outside the range for which a consent authorisation is available

  • Timezone may be included in the filter request, but may be ignored by the ASPSP

In the above situations, the ASPSP must return data for the remaining valid period specified by the filter.

4.1.4.1Filtering Example

// All transactions from 1st Jan, 2020

GET /transactions?fromBookingDateTime=2020-01-01T00:00:00

// All transactions in 2019

GET /transactions?fromBookingDateTime=2019-01-01T00:00:00&toBookingDateTime=2019-12-31T23:59:59

// All transactions in a specific account up to 31-Mar-2020

GET /accounts/1/transactions?toBookingDateTime=2020-03-31T23:59:59

4.1.5 Permission Codes

The resource differs depending on the permissions (ReadTransactionsBasic and ReadTransactionsDetail) used to access resource. In the event the resource is accessed with both ReadTransactionsBasic and ReadTransactionsDetail, the most detailed level (ReadTransactionsDetail) must be used.

  • These objects must not be returned without the ReadTransactionsDetail permission:

    • OBReadTransaction/Data/Transaction/TransactionInformation

    • OBReadTransaction/Data/Transaction/Balance

    • OBReadTransaction/Data/Transaction/MerchantDetails

    • OBReadTransaction/Data/Transaction/CreditorAgent

    • OBReadTransaction/Data/Transaction/CreditorAccount

    • OBReadTransaction/Data/Transaction/DebtorAgent

    • OBReadTransaction/Data/Transaction/DebtorAccount

  • If the ReadTransactionsDetail is granted by the PSUcustomer:

    • OBReadTransaction/Data/Transaction/TransactionInformation may be returned if applicable to the transaction and ASPSP (0..1)

    • OBReadTransaction/Data/Transaction/Balance may be returned if applicable to the transaction and ASPSP (0..1)

    • OBReadTransaction/Data/Transaction/MerchantDetails may be returned if applicable to the transaction and ASPSP (0..1)

    • OBReadTransaction/Data/Transaction/CreditorAgent may be returned if applicable to the transaction and ASPSP (0..1)

    • OBReadTransaction/Data/Transaction/CreditorAccount may be returned if applicable to the transaction and ASPSP (0..1)

    • OBReadTransaction/Data/Transaction/DebtorAgent may be returned if applicable to the transaction and ASPSP (0..1)

    • OBReadTransaction/Data/Transaction/DebtorAccount may be returned if applicable to the transaction and ASPSP (0..1)

If the ReadPAN permission is granted by the PSU customer - the ASPSP may choose to populate the unmasked PAN - if the PAN is being populated in the response for these fields:

  • OBReadTransaction/Data/Transaction/CreditorAccount/Identification

  • OBReadTransaction/Data/Transaction/DebtorAccount/Identification

  • OBReadTransaction/Data/Transaction/CardInstrument/Identification

...

4.1.

...

6 Data Dictionary

EnhancedDefinition

Name

Occurrence

XPath

Enhanced Definition

Class/ Datatype

Codes

Pattern

OBReadTransaction

 

OBReadTransaction

 

OBReadTransaction

 

 

Data

1..1

OBReadTransaction/Data

 

OBReadTransaction/Data

 

 

Transaction

0..n

OBReadTransaction/Data/Transaction

Provides further details on an entry in the report.

OBReadTransaction/Data/Transaction

 

 

AccountId

1..1

OBReadTransaction/Data/Transaction/AccountId

A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.

String

 

 

TransactionId

0..1

OBReadTransaction/Data/Transaction/TransactionId

Unique identifier for the transaction within an servicing institution. This identifier is both unique and immutable.

String

 

 

TransactionReference

0..1

OBReadTransaction/Data/Transaction/TransactionReference

Unique reference for the transaction. This reference is optionally populated, and may as an example be the FPID in the Faster Payments context.

String

 

 

StatementReference

0..n

OBReadTransaction/Data/Transaction/StatementReference

Unique reference for the statement. This reference may be optionally populated if available.

String

 

 

CreditDebitIndicator

1..1

OBReadTransaction/Data/Transaction/CreditDebitIndicator

Indicates whether the transaction is a credit or a debit entry.

String

Enum:

  • Credit

  • Debit

 

Status

1..1

OBReadTransaction/Data/Transaction/Status

Status of a transaction entry on the books of the account servicer.

String

Enum:

  • Booked

  • Pending

  • Interimpending

 

TransactionMutabilityBookingDateTime

01..1

OBReadTransaction/Data/Transaction/TransactionMutability

Specifies the Mutability of the Transaction record.

String

Enum:

  • Mutable

  • Immutable

 

BookingDateTime

1BookingDateTime

Date and time when a transaction entry is posted to an account on the account servicer's books. Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date

DateTime

 

 

ValueDateTime

0..1

OBReadTransaction/Data/Transaction/BookingDateTimeValueDateTime

Date and time when a transaction entry is posted to an account on the account servicer's books. Usage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date.at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry. Usage: If transaction entry status is pending and value date is present, then the value date refers to an expected/requested value date. For transaction entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of available days

DateTime

 

 

ValueDateTimeTransactionInformation

0..1

OBReadTransaction/Data/Transaction/ValueDateTime

Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry. Usage: If transaction entry status is pending and value date is present, then the value date refers to an expected/requested value date. For transaction entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of availability days.

DateTime

 

 

TransactionInformation

0TransactionInformation

Further details of the transaction. This is the transaction narrative, which is unstructured text

String

 

 

AddressLine

0..1

OBReadTransaction/Data/Transaction/AddressLine

Information that locates and identifies a specific address for a transaction entry that is presented in free format text

String

 

 

Amount

1..1

OBReadTransaction/Data/Transaction/Amount

Amount of money in the cash transaction entry

OBReadTransaction/Data/Transaction/Amount

 

 

Amount

1..1

OBReadTransaction/Data/Transaction/TransactionInformationFurther details of the transaction. This is the transaction narrative, which is unstructured text.Amount/Amount

A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217

String

 

 

AddressLine

0^\d{1,13}$\|^\d{1,13}\.\d{1,5}$

Currency

1..1

OBReadTransaction/Data/Transaction/AddressLineInformation that locates and identifies a specific address for a transaction entry, that is presented in free format text.Amount/Currency

A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds"

String

 

 

Amount

1^[A-Z]{3,3}$

ChargeAmount

0..1

OBReadTransaction/Data/Transaction/AmountAmount of money in the cash transaction entry.ChargeAmount

Transaction charges to be paid by the charge bearer

OBReadTransaction/Data/Transaction/AmountChargeAmount

 

 

Amount

1..1

OBReadTransaction/Data/Transaction/AmountChargeAmount/Amount

A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.

String

 

^\d{1,13}$\|^\d{1,13}\.\d{1,5}$

Currency

1..1

OBReadTransaction/Data/Transaction/AmountChargeAmount/Currency

A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds"."Codes for the representation of currencies and funds"

String

 

^[A-Z]{3,3}$

CurrencyExchange

0..1

OBReadTransaction/Data/Transaction/CurrencyExchange

Set of elements used to provide details on the currency exchange

OBReadTransaction/Data/Transaction/CurrencyExchange

 

 

SourceCurrency

1..1

OBReadTransaction/Data/Transaction/CurrencyExchange/SourceCurrency

Currency from which an amount is to be converted in a currency conversion

String

 

^[A-Z]{3,3}$

ChargeAmountTargetCurrency

0..1

OBReadTransaction/Data/Transaction/CurrencyExchange/ChargeAmount

Transaction charges to be paid by the charge bearer.

OBReadTransaction/Data/Transaction/ChargeAmount

 

Amount

1..1

OBReadTransaction/Data/Transaction/ChargeAmount/Amount

A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.TargetCurrency

Currency into which an amount is to be converted in a currency conversion

String

 

 ^\d{1,13}$|^\d{1,13}.\d{1,5^[A-Z]{3,3}$

CurrencyUnitCurrency

10..1

OBReadTransaction/Data/Transaction/ChargeAmountCurrencyExchange/CurrencyA code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".UnitCurrency

Currency in which the rate of exchange is expressed in a currency exchange. In the example 1BHD = xxxCUR, the unit currency is BHD

String

 

^[A-Z]{3,3}$

ExchangeRate

1..1

OBReadTransaction/Data/Transaction/CurrencyExchange/ExchangeRate

Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency. Usage: ExchangeRate expresses the ratio between UnitCurrency and QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency)

Number

 

 

ContractIdentification

0..1

OBReadTransaction/Data/Transaction/CurrencyExchangeSet of elements used to provide details on the currency exchange./ContractIdentification

Unique identification to unambiguously identify the foreign exchange contract

String

 

 

QuotationDate

0..1

OBReadTransaction/Data/Transaction/CurrencyExchange/QuotationDate

Date and time at which an exchange rate is quoted

 DateTime

 

 

SourceCurrencyInstructedAmount

10..1

OBReadTransaction/Data/Transaction/CurrencyExchange/SourceCurrency

Currency from which an amount is to be converted in a currency conversion.

String

 

^[A-Z]{3,3}$

TargetCurrency

0InstructedAmount

Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party

OBReadTransaction/Data/Transaction/CurrencyExchange/InstructedAmount

 

 

Amount

1..1

OBReadTransaction/Data/Transaction/CurrencyExchange/InstructedAmount/TargetCurrencyCurrency into which an amount is to be converted in a currency conversion.Amount

A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217

String

 

^[A-Z]{3,3\d{1,13}$\|^\d{1,13}\.\d{1,5}$

UnitCurrencyCurrency

01..1

OBReadTransaction/Data/Transaction/CurrencyExchange/UnitCurrencyCurrency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP./Transaction/CurrencyExchange/InstructedAmount/Currency

A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds"

String

 

^[A-Z]{3,3}$

ExchangeRateBankTransactionCode

10..1

OBReadTransaction/Data/Transaction/CurrencyExchange/ExchangeRate

Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency. Usage: ExchangeRate expresses the ratio between UnitCurrency and QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency).

Number

 

 

ContractIdentification

0OBReadTransaction/Data/Transaction/BankTransactionCode

Set of elements used to fully identify the type of underlying transaction resulting in an entry

OBReadTransaction/Data/Transaction/BankTransactionCode

 

 

Code

1..1

OBReadTransaction/Data/Transaction/CurrencyExchangeBankTransactionCode/ContractIdentificationUnique identification to unambiguously identify the foreign exchange contract.Code

Specifies the family within a domain

String

 

 

QuotationDateSubCode

01..1

OBReadTransaction/Data/Transaction/CurrencyExchangeBankTransactionCode/QuotationDate

Date and time at which an exchange rate is quoted.

 DateTimeSubCode

Specifies the sub-product family within a specific family

String

 

 

InstructedAmountProprietaryBankTransactionCode

0..1

OBReadTransaction/Data/Transaction/CurrencyExchange/InstructedAmountProprietaryBankTransactionCode

Amount Set of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.elements to fully identify a proprietary bank transaction code

OBReadTransaction/Data/Transaction/CurrencyExchange/InstructedAmountProprietaryBankTransactionCode

 

 

AmountCode

1..1

OBReadTransaction/Data/Transaction/CurrencyExchangeProprietaryBankTransactionCode/InstructedAmount/AmountA number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.Code

Proprietary bank transaction code to identify the underlying transaction

String

 

^\d{1,13}$|^\d{1,13}.\d{1,5}$

Currency

1 

Issuer

0..1

OBReadTransaction/Data/Transaction/CurrencyExchangeProprietaryBankTransactionCode/InstructedAmount/CurrencyA code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".Issuer

Identification of the issuer of the proprietary bank transaction code

String

 

^[A-Z]{3,3}$

BankTransactionCode 

Balance

0..1

OBReadTransaction/Data/Transaction/BankTransactionCodeBalance

Set of elements used to fully identify the type of underlying transaction resulting in an entry.

OBReadTransaction/Data/Transaction/BankTransactionCode

 

 

Codedefine the balance as a numerical representation of the net increases and decreases in an account after a transaction entry is applied to the account

OBReadTransaction/Data/Transaction/Balance

 

 

CreditDebitIndicator

1..1

OBReadTransaction/Data/Transaction/Balance/CreditDebitIndicator

Indicates whether the balance is a credit or a debit balance. Usage: A zero balance is considered to be a credit balance

String

Enum:

  • Credit

  • Debit

 

Type

1..1

OBReadTransaction/Data/Transaction/BankTransactionCodeBalance/Code

Specifies the family within a domain.

String

 

 

SubCodeType

Balance type, in a coded form

String

Enum:

  • ClosingAvailable

  • ClosingBooked

  • ClosingCleared

  • Expected

  • ForwardAvailable

  • Information

  • InterimAvailable

  • InterimBooked

  • InterimCleared

  • OpeningAvailable

  • OpeningBooked

  • OpeningCleared

  • PreviouslyClosedBooked

 

Amount

1..1

OBReadTransaction/Data/Transaction/BankTransactionCodeBalance/SubCode

Specifies the sub-product family within a specific family.

StringAmount

Amount of money of the cash balance after a transaction entry is applied to the account

OBReadTransaction/Data/Transaction/Balance/Amount

 

 

ProprietaryBankTransactionCodeAmount

01..1

OBReadTransaction/Data/Transaction/ProprietaryBankTransactionCode

Set of elements to fully identify a proprietary bank transaction code.

OBReadTransaction/Data/Transaction/ProprietaryBankTransactionCode

 

 

CodeBalance/Amount/Amount

A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217

String

 

^\d{1,13}$\|^\d{1,13}\.\d{1,5}$

Currency

1..1

OBReadTransaction/Data/Transaction/Balance/ProprietaryBankTransactionCodeAmount/CodeCurrency

Proprietary bank transaction A code to identify the underlying transaction.

String

 

 

Issuer

0..1

OBReadTransaction/Data/Transaction/ProprietaryBankTransactionCode/Issuer

Identification of the issuer of the proprietary bank transaction code.

String

 

 

Balanceallocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds"

String

 

^[A-Z]{3,3}$

MerchantDetails

0..1

OBReadTransaction/Data/Transaction/BalanceMerchantDetails

Set Details of elements used to define the balance as a numerical representation of the net increases and decreases in an account after a transaction entry is applied to the account.the merchant involved in the transaction

OBReadTransaction/Data/Transaction/Balance

 

 

CreditDebitIndicator

1..1

OBReadTransaction/Data/Transaction/Balance/CreditDebitIndicator

Indicates whether the balance is a credit or a debit balance. Usage: A zero balance is considered to be a credit balance.

String

Enum:

  • Credit

  • Debit

    MerchantDetails

     

     

    TypeMerchantName

    10..1

    OBReadTransaction/Data/Transaction/BalanceMerchantDetails/TypeBalance type, in a coded form.MerchantName

    Name by which the merchant is known

    String

    Enum:

    • ClosingAvailable

    • ClosingBooked

    • ClosingCleared

    • Expected

    • ForwardAvailable

    • Information

    • InterimAvailable

    • InterimBooked

    • InterimCleared

    • OpeningAvailable

    • OpeningBooked

    • OpeningCleared

    • PreviouslyClosedBooked

     

    Amount

    1 

     

    MerchantCategoryCode

    0..1

    OBReadTransaction/Data/Transaction/BalanceMerchantDetails/Amount

    Amount of money of the cash balance after a transaction entry is applied to the account..

    OBReadTransaction/Data/Transaction/Balance/AmountMerchantCategoryCode

    Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction

    String

     

     

    AmountCreditorAgent

    10..1

    OBReadTransaction/Data/Transaction/Balance/Amount/Amount

    A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.

    String

     

    ^\d{1,13}$|^\d{1,13}.\d{1,5}$

    Currency

    1CreditorAgent

    Financial institution servicing an account for the creditor

    OBReadTransaction/Data/Transaction/CreditorAgent

     

     

    SchemeName

    0..1

    OBReadTransaction/Data/Transaction/BalanceCreditorAgent/Amount/CurrencyA code allocated to a currency by a Maintenance Agency under an international SchemeName

    Name of the identification scheme, in a coded form as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".published in an external list

    String

     

    ^[A-Z]{3,3}$

    MerchantDetailsEnum: 

    • BH.OBF.BICFI

     

    Identification

    0..1

    OBReadTransaction/Data/Transaction/MerchantDetails

    Details of the merchant involved in the transaction.

    OBReadTransaction/Data/Transaction/MerchantDetailsCreditorAgent/Identification

    Unique and unambiguous identification of a financial institution or a branch of a financial institution

    String

     

     

    MerchantNameName

    0..1

    OBReadTransaction/Data/Transaction/MerchantDetailsCreditorAgent/MerchantNameName

    Name by which the merchant an agent is known .and which is usually used to identify that agent

    String

     

     

    MerchantCategoryCodePostalAddress

    0..1

    OBReadTransaction/Data/Transaction/MerchantDetailsCreditorAgent/MerchantCategoryCode

    Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction.

    String

     

     

    CreditorAgent

    0..1PostalAddress

    Information that locates and identifies a specific address, as defined by postal services

    OBReadTransaction/Data/Transaction/CreditorAgent

    Financial institution servicing an account for the creditor.

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress

     

     SchemeName[PA1] 

    AddressType

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/SchemeNameAddressType

    Name of the identification scheme, in a coded form as published in an external list.Identifies the nature of the postal address

    String

    Enum:

    BH.OBF.BICFI

    • Business

    • Correspondence

    • DeliveryTo

    • MailTo

    • POBox

    • Postal

    • Residential

    • Statement

     

    IdentificationDepartment

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/IdentificationUnique and unambiguous identification of a financial institution or a branch of a financial institution.PostalAddress/Department

    Identification of a division of a large organisation or building

    String

     

     

    NameSubDepartment

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/NameName by which an agent is known and which is usually used to identify that agent.SubDepartment

    Identification of a sub-division of a large organisation or building

    String

     

     

    PostalAddressAddressLine

    0..17

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/AddressLine

    Information that locates and identifies a specific address, as defined by postal services.

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress

     

     

    AddressType

    , presented in free format text

    String

    StreetName

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/AddressType

    Identifies the nature of the postal address.

    String

    Enum:

    • Business

    • Correspondence

    • DeliveryTo

    • MailTo

    • POBox

    • Postal

    • Residential

    • Statement

     

    Department/StreetName

    Number of a street or thoroughfare

    String

     

     

    BuildingNumber

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/DepartmentIdentification BuildingNumber

    Number that identifies the position of a division of a large organisation or building.building on a street

    String

     

     PostCode

    SubDepartment

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/SubDepartmentPostCode

    Identification Identifier consisting of a sub-division of a large organisation or building.group of letters and/or numbers that is added to a postal address to assist the sorting of mail

    String

     TownName

     

    StreetName

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/StreetNameName of a street or thoroughfare./TownName

    Name of a built-up area, with defined boundaries, and a local government

    String

     CountrySubDivision

     

    BuildingNumber

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/BuildingNumberNumber that identifies the position of a building on a street.CountrySubDivision

    Identifies a subdivision of a country such as state, region and county

    String

     Country

     

    PostCode

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/PostCode

    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.

    String

     

     

    TownNameCountry

    Nation with its own government

    String

    ^[A-Z]{2,2} $

    CreditorAccount

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/TownName

    Name of a built-up area, with defined boundaries, and a local government.

    StringCreditorAccount

    Unambiguous identification of the account of the creditor, in the case of a debit transaction

    OBReadTransaction/Data/Transaction/CreditorAccount

     

     

    CountrySubDivisionSchemeName

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgentCreditorAccount/PostalAddress/CountrySubDivision

    Identifies a subdivision of a country such as state, region, county.

    String

     

     

    CountrySchemeName

    Name of the identification scheme, in a coded form as published in an external list

    String

    Enum:

    • BH.OBF.IBAN

     

    Identification

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgentCreditorAccount/PostalAddress/CountryNation with its own government.Identification

    Identification assigned by an institution to identify an account. This identification is known by the account owner

    String

     

    ^[A-Z]{2,2}$

    AddressLine 

    Name

    0..71

    OBReadTransaction/Data/Transaction/CreditorAgentCreditorAccount/PostalAddress/AddressLineInformation that locates and identifies a specific address, as defined by postal services, presented in free format text.Name

    The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP’s online channels. Note, the account name is not the product name or the nickname of the account

    String

     

     

    CreditorAccountDebtorAgent

    0..1

    OBReadTransaction/Data/Transaction/CreditorAccountUnambiguous identification of the account of the creditor, in the case of a debit transaction.DebtorAgent

    Financial institution servicing an account for the debtor

    OBReadTransaction/Data/Transaction/CreditorAccountDebtorAgent

     

     

    SchemeName[PA2] 

    0..1

    OBReadTransaction/Data/Transaction/CreditorAccountDebtorAgent/SchemeName

    Name of the identification scheme, in a coded form as published in an external list.

    String

     EnumEnum:

    • BH.OBF.BBAN

    • BH.OBF.IBAN

    • BH.OBF.PAN

     

    Identification
    • .OBF.BICFI

     

    Identification

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/Identification

    Unique and unambiguous identification of a financial institution or a branch of a financial institution

    String

     

     

    Name

    0..1

    OBReadTransaction/Data/Transaction/CreditorAccountDebtorAgent/IdentificationName

    Identification assigned Name by an institution to identify an account. This identification is known by the account owner.which an agent is known and which is usually used to identify that agent

    String

     

     

    NamePostalAddress

    0..1

    OBReadTransaction/Data/Transaction/CreditorAccountDebtorAgent/Name

    The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels. Note, the account name is not the product name or the nickname of the account.

    StringPostalAddress

    Information that locates and identifies a specific address, as defined by postal services

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress

     

     

    SecondaryIdentificationAddressType

    0..1

    OBReadTransaction/Data/Transaction/CreditorAccountDebtorAgent/PostalAddress/SecondaryIdentification

    This is secondary identification of the account, as assigned by the account servicing institution. This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).

    String

     

     

    DebtorAgentAddressType

    Identifies the nature of the postal address

    String

    Enum:

    • Business

    • Correspondence

    • DeliveryTo

    • MailTo

    • POBox

    • Postal

    • Residential

    • Statement

     

    Department

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgentFinancial institution servicing an account for the debtor./PostalAddress/Department

    Identification of a division of a large organisation or building

    String

     

     

    SubDepartment

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/SubDepartment

    Identification of a sub-division of a large organisation or building

    String

     

     

    SchemeNameAddressLine

    0..17

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/SchemeName

    Name of the identification scheme, in a coded form as published in an external list.

    String

    Enum:

    • BH.OBF.BICFI

     

    Identification

    AddressLine

    Information that locates and identifies a specific address, as defined by postal services, presented in free format text

    String

    StreetName

    0..1

    OBReadTransaction/Data/Transaction/CreditorAgent/DebtorAgentPostalAddress/IdentificationUnique and unambiguous identification StreetName

    Number of a financial institution or a branch of a financial institution.street or thoroughfare

    String

     

     BuildingNumber

    Name

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/NameName by which an agent is known and which is usually used to identify that agent.PostalAddress/BuildingNumber

    Number that identifies the position of a building on a street

    String

     

     

    PostalAddressPostCode

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress

    Information that locates and identifies a specific address, as defined by postal services.

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress

     

     

    AddressType/PostCode

    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail

    String

    TownName

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/AddressTypeTownName

    Identifies the nature of the postal address.

    String

    Enum:

    • Business

    • Correspondence

    • DeliveryTo

    • MailTo

    • POBox

    • Postal

    • Residential

    • Statement

     

    Department

    Name of a built-up area, with defined boundaries, and a local government

    String

    CountrySubDivision

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/DepartmentCountrySubDivision

    Identification of Identifies a division subdivision of a large organisation or building.country such as state, region, and county

    String

     

     

    SubDepartmentCountry

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/SubDepartment

    Identification of a sub-division of a large organisation or building.

    StringCountry

    Nation with its own government

    String

    ^[A-Z]{2,2} $

    DebtorAccount

    0..1

    OBReadTransaction/Data/Transaction/DebtorAccount

    Unambiguous identification of the account of the debtor, in the case of a credit transaction

    OBReadTransaction/Data/Transaction/DebtorAccount

     

     

    StreetNameSchemeName

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgentDebtorAccount/PostalAddress/StreetNameSchemeName

    Name of a street or thoroughfare.the identification scheme, in a coded form as published in an external list

    String 

    Enum:

    • BH.OBF.IBAN

     

    BuildingNumberIdentification

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgentDebtorAccount/PostalAddress/BuildingNumberNumber that identifies the position of a building on a street.Identification

    Identification assigned by an institution to identify an account. This identification is known by the account owner

    String

     

     

    PostCodeName

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddressDebtorAccount/PostCodeIdentifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.Name

    The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP’s online channels. Note, the account name is not the product name or the nickname of the account

    String

     

     

    TownNameCardInstrument

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/TownName

     Name of a built-up area, with defined boundaries, and a local government

     StringCardInstrument

    Set of elements to describe the card instrument used in the transaction

    OBReadTransaction/Data/Transaction/CardInstrument

     

     

    CountrySubDivisionCardSchemeName

    01..1

    OBReadTransaction/Data/Transaction/DebtorAgentCardInstrument/PostalAddress/CountrySubDivision

    Identifies a subdivision of a country such as state, region, county.

    String

     

     

    CountryCardSchemeName

    Name of the card scheme

    String

    Enum: (Indicative)

    • AmericanExpress

    • Diners

    • JCB

    • MasterCard

    • VISA

     

    AuthorisationType

    0..1

    OBReadTransaction/Data/Transaction/DebtorAgentCardInstrument/PostalAddress/Country

    Nation with its own government.

    String

     

    ^[A-Z]{2,2}$

    AddressLineAuthorisationType

    The card authorisation type

    String

    Enum:

    • ConsumerDevice

    • Contactless

    • None

    • PIN

     

    Name

    0..71

    OBReadTransaction/Data/Transaction/DebtorAgentCardInstrument/PostalAddress/AddressLineInformation that locates and identifies a specific address, as defined by postal services, presented in free format text.Name

    Name of the cardholder using the card instrument

    String

     

     

    DebtorAccountIdentification

    0..1

    OBReadTransaction/Data/Transaction/CardInstrument/DebtorAccount

    Unambiguous identification of the account of the debtor, in the case of a credit transaction.

    OBReadTransaction/Data/Transaction/DebtorAccountIdentification

    Identification assigned by an institution to identify the card instrument used in the transaction. This identification is known by the account owner, and may be masked

    String

     

     

     

    ...

    SchemeName

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/DebtorAccount/SchemeName

    ...

    Name of the identification scheme, in a coded form as published in an external list.

    ...

    String

    ...

    Enum:

    • BH.OBF.BBAN

    • BH.OBF.IBAN

    • BH.OBF.PAN

    ...

     

    ...

    Identification

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/DebtorAccount/Identification

    ...

    Identification assigned by an institution to identify an account. This identification is known by the account owner.

    ...

    String

    ...

     

    ...

     

    ...

    Name

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/DebtorAccount/Name

    ...

    The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels. Note, the account name is not the product name or the nickname of the account.

    ...

    String

    ...

     

    ...

     

    ...

    SecondaryIdentification

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/DebtorAccount/SecondaryIdentification

    ...

    This is secondary identification of the account, as assigned by the account servicing institution. This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).

    ...

    String

    ...

     

    ...

     

    ...

    CardInstrument

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/CardInstrument

    ...

    Set of elements to describe the card instrument used in the transaction.

    ...

    OBReadTransaction/Data/Transaction/CardInstrument

    ...

     

    ...

     

    ...

    CardSchemeName

    ...

    1..1

    ...

    OBReadTransaction/Data/Transaction/CardInstrument/CardSchemeName

    ...

    Name of the card scheme.

    ...

    String

    ...

    Enum:

    • AmericanExpress

    • Diners Discover

    • MasterCard VISA

    ...

     

    ...

    AuthorisationType

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/CardInstrument/AuthorisationType

    ...

    The card authorisation type.

    ...

    String

    ...

    Enum:

    • ConsumerDevice

    • Contactless

    • None

    • PIN

    ...

     

    ...

    Name

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/CardInstrument/Name

    ...

    Name of the cardholder using the card instrument.

    ...

    String

    ...

     

    ...

     

    ...

    Identification

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/CardInstrument/Identification

    ...

    Identification assigned by an institution to identify the card instrument used in the transaction. This identification is known by the account owner, and may be masked.

    ...

    String

    ...

     

    ...

     

    ...

    SupplementaryData

    ...

    0..1

    ...

    OBReadTransaction/Data/Transaction/SupplementaryData

    ...

    Additional information that can not be captured in the structured fields and/or any other specific block.

    ...

    OBReadTransaction/Data/Transaction/SupplementaryData

    ...

     

    ...

     

     

    4.      Usage Examples 

    ...

    5. Usage Examples 

    5.1 Specific Account Transaction

    5.1.1 Get Account Transactions Request

    GET /accounts/00345897/transactions
    Authorisation: Bearer 4ZopnFZFKjr5zDsicSQpLL
    x-fapi-auth-date: Tue, 24 Mar 2020 19:43:31 GMT+03:00
    x-fapi-customer-ip-address: 204.35.213.15
    x-fapi-interaction-id: 75bdc714-b2dg-7676-c759-780d6815689f
    Accept: application/json

    5.1.2 Get Account Transactions Response

    200 OK
    x-fapi-interaction-id: 75bdc714-b2dg-7676-c759-780d6815689f
    Content-Type: application/json

    {
      "Data": {
        "Transaction": [
          {
            "AccountId": "00345897",
            "TransactionId": "2257",
            "TransactionReference": "Transaction Ref",
            "StatementReference": [
              "Statement Ref"
            ],
            "CreditDebitIndicator": "Credit",
            "Status": "Booked",
            "BookingDateTime": "2020-03-24T06:03:00.348+03:00”,
            "ValueDateTime": "2020-03-24T06:03:00.348+03:00”,
            "Amount": {
              "Amount": "1000",
              "Currency": "BHD"
            },
            "ChargeAmount": {
              "Amount": "50",
              "Currency": "BHD"
            },

            "CurrencyExchange": {
              "SourceCurrency": "BHD",
              "TargetCurrency": "BHD",
              "UnitCurrency": "BHD",
              "ExchangeRate": 0.44,
              "ContractIdentification": " ",
              "QuotationDate": "2020-03-24T06:03:00.348+03:00”,
              "InstructedAmount": {
                "Amount": "1000",
                "Currency": "BHD"
              }
            },
            "BankTransactionCode": {
              "Code": "ReceivedCreditTransfer",
              "SubCode": "CreditTransfer"
            },
            "ProprietaryBankTransactionCode": {
              "Code": "Transfer",
              "Issuer": "XYZBank"
            },
            "CardInstrument": {
              "CardSchemeName": "XYZ",
              "AuthorisationType": "ConsumerDevice",
              "Name": "Ali Hassan Mohammed",
              "Identification": "BH10XYZU00100000008876"
            },
          },
        ]
      },
     "Links": {
        "Self": "www.TBC.com"
      },
      "Meta": {
        "TotalPages": 02,
        "FirstAvailableDateTime": "2020-03-24T09:10:17.596+03:00”,
        "LastAvailableDateTime": "2020-03-24T09:10:17.596+03:00”
      }

    }

     

    5.2 Bulk Transaction

    None of the transactions included in the payload are Ecommerce transactions, so MerchantDetails are not included in the examples.

    ...

    5.2.1

    ...

    Get Transactions Request

    GET /transactions HTTP/1.1
    AuthorizationAuthorisation: Bearer 4ZopnFZFKjr5zDsicSQpLL
    x-fapi-auth-date: Tue, 24 Mar 2020 19:43:31 GMT+03:00
    x-fapi-customer-ip-address: 204.35.213.15
    x-fapi-interaction-id: 75bdc714-b2dg-7676-c759-780d6815689f
    Accept: application/json

    ...

    5.

    ...

    2.

    ...

    2 Get Transactions Response

    200 OK
    x-fapi-interaction-id: 75bdc714-b2dg-7676-c759-780d6815689f
    Content-Type: application/json

    {
      "Data": {
        "Transaction": [
          {
            "AccountId": "00345897",
            "TransactionId": "2257",
            "TransactionReference": "Transaction Ref",
            "StatementReference": [
              "Statement Ref"
            ],
            "CreditDebitIndicator": "Credit",
            "Status": "Booked",
            "BookingDateTime": "2020-03-24T06:03:00.348Z"348+03:00”,
            "ValueDateTime": "2020-03-24T06:03:00.348Z"348+03:00”,
            "Amount": {
              "Amount": "1000",
              "Currency": "BHD"
            },
            "ChargeAmount": {
              "Amount": "50",
              "Currency": "BHD"
            },
            "CurrencyExchange": {
              "SourceCurrency": "BHD",
              "TargetCurrency": "BHD",
              "UnitCurrency": "BHD",
              "ExchangeRate": 0.44,
              "ContractIdentification": " ",
              "QuotationDate": "2020-03-24T06:03:00.348Z"348+03:00”,
              "InstructedAmount": {
                "Amount": "1000",
                "Currency": "BHD"
              }
            },

            "BankTransactionCode": {
              "Code": "ReceivedCreditTransfer",
              "SubCode": "CreditTransfer"
            },
            "ProprietaryBankTransactionCode": {
              "Code": "Transfer",
              "Issuer": "XYZBank"
            },
            "CardInstrument": {
              "CardSchemeName": "AmericanExpressXYZ",
              "AuthorisationType": "ConsumerDevice",
              "Name": "Asif KhanAli Hassan Mohammed",
              "Identification": "BH10XYZU00100000008876"
            },
          },
          {
            "AccountId": "0012786",
            "TransactionId": "4532",
            "TransactionReference": "Transaction Ref",
            "StatementReference": [
              "Statement Ref"
            ],
            "CreditDebitIndicator": "Debit",
            "Status": "Booked",
            "BookingDateTime": "2020-03-24T06:03:00.348Z"348+03:00”,
            "ValueDateTime": "2020-03-24T06:03:00.348Z"348+03:00”,
            "Amount": {
              "Amount": "100",
              "Currency": "BHD"
            },
            "ChargeAmount": {
              "Amount": "10",
              "Currency": "BHD"
            },
            "CurrencyExchange": {
              "SourceCurrency": "BHD",
              "TargetCurrency": "BHD",
              "UnitCurrency": "BHD",
              "ExchangeRate": 2.65,
              "ContractIdentification": " ",
              "QuotationDate": "2020-03-24T06:03:00.348Z"348+03:00”,
              "InstructedAmount": {
                "Amount": "100",
                "Currency": "BHD"
              }
            },
            "BankTransactionCode": {
              "Code": "IssuedCreditTransfer",
              "SubCode": "AutomaticTransfer"
            },
            "ProprietaryBankTransactionCode": {
              "Code": "DirectDebit",
              "Issuer": "XYZBank"
            },
            "CardInstrument": {
              "CardSchemeName": "AmericanExpressXYZ",
              "AuthorisationType": "ConsumerDevice",
              "Name": "Avin D'souza",
              "Identification": "BH10XYZU00100000008876"
            },
          }
        ]
      },
     "Links": {
        "Self": "www.TBC.com"
      },
      "Meta": {
        "TotalPages": 02,
        "FirstAvailableDateTime": "2020-03-24T09:10:17.596Z"596+03:00”,
        "LastAvailableDateTime": "2020-03-24T09:10:17.596Z"596+03:00”
      }

    ...

    5.

    ...

    3 Specific Account

    ...

    5.

    ...

    3.

    ...

    1 Get Account Transactions Request

    GET /accounts/00345897/transactions
    AuthorizationAuthorisation: Bearer 4ZopnFZFKjr5zDsicSQpLL
    x-fapi-auth-date: Tue, 18 Mar 2020 19:43:31 GMT+03:00
    x-fapi-customer-ip-address: 204.35.213.15
    x-fapi-interaction-id: 75bdc714-b2dg-7676-c759-780d6815689f
    Accept: application/json

    ...

    5.3.2

    ...

    Get Account Transactions Response

    200 OK
    x-fapi-interaction-id: 75bdc714-b2dg-7676-c759-780d6815689f
    Content-Type: application/json

    {
      "Data": {
        "Transaction": [
          {
            "AccountId": "00345897",
            "TransactionId": "2257",
            "TransactionReference": "Transaction Ref",
            "StatementReference": [
              "Statement Ref"
            ],
            "CreditDebitIndicator": "Credit",
            "Status": "Booked",
            "BookingDateTime": "2020-03-24T06:03:00.348Z"348+03:00”,
            "ValueDateTime": "2020-03-24T06:03:00.348Z"348+03:00”,
            "Amount": {
              "Amount": "1000",
              "Currency": "BHD"
            },
            "ChargeAmount": {
              "Amount": "50",
              "Currency": "BHD"
            },
            "CurrencyExchange": {
              "SourceCurrency": "BHD",
              "TargetCurrency": "BHD",
              "UnitCurrency": "BHD",
              "ExchangeRate": 0.44,
              "ContractIdentification": " ",
              "QuotationDate": "2020-03-24T06:03:00.348Z"348+03:00”,
              "InstructedAmount": {
                "Amount": "1000",
                "Currency": "BHD"
              }
            },
            "BankTransactionCode": {
              "Code": "ReceivedCreditTransfer",
              "SubCode": "CreditTransfer"
            },
            "ProprietaryBankTransactionCode": {
              "Code": "Transfer",
              "Issuer": "XYZBank"
            },
            "CardInstrument": "XYZBank"
            },
            "CardInstrument": {
              "CardSchemeName": "XYZ",
              "AuthorisationType": "ConsumerDevice",
              "Name": "Ali Hassan Mohammed",
              "Identification": "BH10XYZU00100000008876"
            },
          },
        ]
      },

    "Links": {
                  "CardSchemeNameSelf": "AmericanExpress"www.TBC.com"
      },
                "AuthorisationTypeMeta": {
        "ConsumerDeviceTotalPages": 02,
                  "NameFirstAvailableDateTime": "Asif Khan",
              "Identification": "BH10XYZU00100000008876"
            },
          },
        ]
      },
     "Links": {
        "Self": "www.TBC.com"
      },
      "Meta": {
        "TotalPages": 02,
        "FirstAvailableDateTime": "2020-03-24T09:10:17.596Z",
        "LastAvailableDateTime": "2020-03-24T09:10:17.596Z"
      }}2020-03-24T09:10:17.596+03:00”,
        "LastAvailableDateTime": "2020-03-24T09:10:17.596+03:00”
      }

    }

    5.4 No Access

    In this example, the AISP does not have access to call the transactions endpoint. This will result in a 403 error.

    5.4.1 Get Account Transactions Request

    GET /accounts/00345897/transactions
    Authorisation: Bearer 4ZopnFZFKjr5zDsicSQpLL
    x-fapi-auth-date: Tue, 18 Mar 2020 19:43:31 GMT+03:00
    x-fapi-customer-ip-address: 204.35.213.15
    x-fapi-interaction-id: 75bdc714
    Accept: application/json

    5.4.2 Get Account Transactions Response

    403 Forbidden

    x-fapi-interaction-id: 75bdc714-b2dg-7676-c759-780d6815689f


    CENTRAL BANK OF BAHRAIN © 2020