Table of Contents | ||||
---|---|---|---|---|
|
...
Table of Contents | ||||
---|---|---|---|---|
|
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 |
23.1 | transactions | GET | GET/accounts/{AccountId}/transactions | Mandatory | accounts | Authorisation Code | No | Pagination filtering |
| OBReadTransaction |
23.2 | transactions | GET | GET/transactions | optionalOptional | accounts | Authorisation Code | No | Pagination filtering |
| OBReadTransaction |
...
3.1 GET/accounts/{AccountId}/transactions
An AISP may retrieve AISP may retrieve the transaction resource for a specific AccountId (which is retrieved in the call to GET /accounts) .
...
3.2 GET /transactions
If If an ASPSP has implemented the bulk retrieval endpoints, an AISP may optionally 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+0003: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 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, the principle we have applied for the code lists is to have longer more 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. a Sunday 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 must 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
|
...
4.1.5
...
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
ofPending
is mutableA transaction with a
Status
ofBooked
where theTransactionMutability
flag is not specified is immutable.A transaction with a
Status
ofBooked
with theTransactionMutability
flag set toImmutable
is immutable.A transaction with a
Status
ofBooked
with theTransactionMutability
flag set toMutable
is mutable.
3.1.5.1 Examples to illustrate mutability
|
3.1.6 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 customer:
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 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
3.1.7 Data Dictionary
...
Name
...
Occurrence
...
XPath
...
EnhancedDefinition
...
Class
...
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
...
...
...
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 customer:
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 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
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 | 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:
|
| ||||||||||
Status | 1..1 | OBReadTransaction/Data/Transaction/Status | Status of a transaction entry on the books of the account servicer | String | Enum:
|
| ||||||||||
BookingDateTime | 1..1 | OBReadTransaction/Data/Transaction/BookingDateTime | 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/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 available days | DateTime |
|
| ||||||||||
TransactionInformation | 0..1 | OBReadTransaction/Data/Transaction/TransactionIdUnique identifier for TransactionInformation | Further details of the transaction within an servicing institution. This identifier is both unique and immutable.is the transaction narrative, which is unstructured text | String |
|
| ||||||||||
TransactionReferenceAddressLine | 0..1 | OBReadTransaction/Data/Transaction/TransactionReferenceUnique reference for the transaction. This reference is optionally populated, and may as an example be the FPID in the Faster Payments context.AddressLine | Information that locates and identifies a specific address for a transaction entry that is presented in free format text | String |
|
| ||||||||||
StatementReferenceAmount | 01..n1 | OBReadTransaction/Data/Transaction/StatementReference | Unique reference for the statement. This reference may be optionally populated if available. | StringAmount | Amount of money in the cash transaction entry | OBReadTransaction/Data/Transaction/Amount |
|
| ||||||||
CreditDebitIndicatorAmount | 1..1 | OBReadTransaction/Data/Transaction/Amount/CreditDebitIndicator | Indicates whether the transaction is a credit or a debit entry. | String | Enum:
|
| StatusAmount | 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/Amount/Status | Status of a transaction entry on the books of the account servicer. | String | Enum:
|
| TransactionMutabilityCurrency | 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}$ | |||||
ChargeAmount | 0..1 | OBReadTransaction/Data/Transaction/TransactionMutability | Specifies the Mutability of the Transaction record. | String | Enum:
|
| BookingDateTime | 1..1 | ChargeAmount | Transaction charges to be paid by the charge bearer | OBReadTransaction/Data/Transaction/BookingDateTime | 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 | ChargeAmount |
|
|
ValueDateTimeAmount | 01..1 | OBReadTransaction/Data/Transaction/ChargeAmount/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 |
|
| TransactionInformationAmount | 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/ChargeAmount/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}$ | ||||||||||
CurrencyExchange | 0..1 | OBReadTransaction/Data/Transaction/TransactionInformationFurther details of the transaction. This is the transaction narrative, which is unstructured text.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 |
|
| AddressLine^[A-Z]{3,3}$ | |||||||||
TargetCurrency | 0..1 | OBReadTransaction/Data/Transaction/AddressLineInformation that locates and identifies a specific address for a transaction entry, that is presented in free format text.CurrencyExchange/TargetCurrency | Currency into which an amount is to be converted in a currency conversion | String |
|
| Amount | 1^[A-Z]{3,3}$ | ||||||||
UnitCurrency | 0..1 | OBReadTransaction/Data/Transaction/CurrencyExchange/Amount | Amount of money in the cash transaction entry. | OBReadTransaction/Data/Transaction/Amount |
|
| AmountUnitCurrency | 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/AmountCurrencyExchange/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 | 1ExchangeRate | 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/AmountCurrencyExchange/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".ContractIdentification | Unique identification to unambiguously identify the foreign exchange contract | String |
| ^[A-Z]{3,3}$ | ChargeAmount | |||||||||
QuotationDate | 0..1 | OBReadTransaction/Data/Transaction/ChargeAmountTransaction charges to be paid by the charge bearer./CurrencyExchange/QuotationDate | Date and time at which an exchange rate is quoted | DateTime |
|
| ||||||||||
InstructedAmount | 0..1 | OBReadTransaction/Data/Transaction/CurrencyExchange/InstructedAmount | 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/ChargeAmountInstructedAmount |
|
| ||||||||||
Amount | 1..1 | OBReadTransaction/Data/Transaction/ChargeAmountCurrencyExchange/InstructedAmount/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/CurrencyExchange/ChargeAmountInstructedAmount/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}$ | ||||||||||
CurrencyExchangeBankTransactionCode | 0..1 | OBReadTransaction/Data/Transaction/CurrencyExchangeBankTransactionCode | Set of elements used to provide details on the currency exchange.fully identify the type of underlying transaction resulting in an entry | OBReadTransaction/Data/Transaction/BankTransactionCode |
|
| ||||||||||
Code | 1..1 | OBReadTransaction/Data/Transaction/BankTransactionCode/Code | Specifies the family within a domain | String |
|
| ||||||||||
SubCode | 1..1 | OBReadTransaction/Data/Transaction/CurrencyExchangeBankTransactionCode/SubCode | Specifies the sub-product family within a specific family | String |
|
| ||||||||||
SourceCurrencyProprietaryBankTransactionCode | 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 | 0ProprietaryBankTransactionCode | Set of elements to fully identify a proprietary bank transaction code | OBReadTransaction/Data/Transaction/ProprietaryBankTransactionCode |
|
| ||||
Code | 1..1 | OBReadTransaction/Data/Transaction/CurrencyExchangeProprietaryBankTransactionCode/TargetCurrency | Currency into which an amount is to be converted in a currency conversion. | String |
| ^[A-Z]{3,3}$ | UnitCurrencyCode | Proprietary bank transaction code to identify the underlying transaction | String |
|
| |||||
Issuer | 0..1 | OBReadTransaction/Data/Transaction/CurrencyExchangeProprietaryBankTransactionCode/UnitCurrencyCurrency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.Issuer | Identification of the issuer of the proprietary bank transaction code | String |
| ^[A-Z]{3,3}$ | ExchangeRate | 1 | ||||||||
Balance | 0..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 | 0Balance | Set 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 | OBReadTransaction/Data/Transaction/Balance |
|
| ||||
CreditDebitIndicator | 1..1 | OBReadTransaction/Data/Transaction/CurrencyExchangeBalance/ContractIdentification | Unique identification to unambiguously identify the foreign exchange contract. | String |
|
| QuotationDate | 0CreditDebitIndicator | Indicates whether the balance is a credit or a debit balance. Usage: A zero balance is considered to be a credit balance | String | Enum:
|
| ||||
Type | 1..1 | OBReadTransaction/Data/Transaction/CurrencyExchange/QuotationDate | Date and time at which an exchange rate is quoted. | DateTime |
|
| InstructedAmount | 0Balance/Type | Balance type, in a coded form | String | Enum:
|
| ||||
Amount | 1..1 | OBReadTransaction/Data/Transaction/CurrencyExchangeBalance/InstructedAmountAmount | 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.the cash balance after a transaction entry is applied to the account | OBReadTransaction/Data/Transaction/CurrencyExchangeBalance/InstructedAmountAmount |
|
| ||||||||||
Amount | 1..1 | OBReadTransaction/Data/Transaction/CurrencyExchangeBalance/InstructedAmountAmount/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/CurrencyExchangeBalance/InstructedAmountAmount/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}$ | ||||||||||
BankTransactionCodeMerchantDetails | 0..1 | OBReadTransaction/Data/Transaction/BankTransactionCodeMerchantDetails | Set Details 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/BankTransactionCode/Code | Specifies the family within a domain. | String |
|
| ||||||||||
SubCode | 1..1the merchant involved in the transaction | OBReadTransaction/Data/Transaction/BankTransactionCode/SubCode | Specifies the sub-product family within a specific family. | StringMerchantDetails |
|
| ||||||||||
ProprietaryBankTransactionCodeMerchantName | 0..1 | OBReadTransaction/Data/Transaction/MerchantDetails/ProprietaryBankTransactionCode | Set of elements to fully identify a proprietary bank transaction code. | OBReadTransaction/Data/Transaction/ProprietaryBankTransactionCodeMerchantName | Name by which the merchant is known | String |
|
| ||||||||
CodeMerchantCategoryCode | 10..1 | OBReadTransaction/Data/Transaction/ProprietaryBankTransactionCodeMerchantDetails/CodeMerchantCategoryCode | Proprietary bank transaction Category code to identify the underlying transaction.conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction | String |
|
| ||||||||||
IssuerCreditorAgent | 0..1 | OBReadTransaction/Data/Transaction/ProprietaryBankTransactionCode/Issuer | Identification of the issuer of the proprietary bank transaction code. | StringCreditorAgent | Financial institution servicing an account for the creditor | OBReadTransaction/Data/Transaction/CreditorAgent |
|
| ||||||||
BalanceSchemeName | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/BalanceSchemeName | Set Name 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. | OBReadTransaction/Data/Transaction/Balance |
|
| CreditDebitIndicator | 1the identification scheme, in a coded form as published in an external list | String | Enum:
|
| |||||
Identification | 0..1 | OBReadTransaction/Data/Transaction/BalanceCreditorAgent/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:
|
| Type | 1Identification | Unique and unambiguous identification of a financial institution or a branch of a financial institution | String |
|
| ||||
Name | 0..1 | OBReadTransaction/Data/Transaction/BalanceCreditorAgent/Type | Balance type, in a coded form. | String | Enum:
|
| Amount | 1Name | Name by which an agent is known and which is usually used to identify that agent | String |
|
| ||||
PostalAddress | 0..1 | OBReadTransaction/Data/Transaction/BalanceCreditorAgent/AmountAmount of money of the cash balance after a transaction entry is applied to the account..PostalAddress | Information that locates and identifies a specific address, as defined by postal services | OBReadTransaction/Data/Transaction/BalanceCreditorAgent/AmountPostalAddress |
|
| ||||||||||
AmountAddressType | 10..1 | OBReadTransaction/Data/Transaction/BalanceCreditorAgent/AmountPostalAddress/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 | 1AddressType | Identifies the nature of the postal address | String | Enum:
|
| ||||
Department | 0..1 | OBReadTransaction/Data/Transaction/BalanceCreditorAgent/AmountPostalAddress/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".Department | Identification of a division of a large organisation or building | String |
| ^[A-Z]{3,3}$ | MerchantDetails | |||||||||
SubDepartment | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/MerchantDetailsDetails of the merchant involved in the transaction.PostalAddress/SubDepartment | Identification of a sub-division of a large organisation or building | String |
|
| ||||||||||
AddressLine | 0..7 | OBReadTransaction/Data/Transaction/MerchantDetails |
|
| MerchantNameCreditorAgent/PostalAddress/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/MerchantDetailsCreditorAgent/PostalAddress/MerchantNameName by which the merchant is known.StreetName | Number of a street or thoroughfare | String |
|
| ||||||||||
MerchantCategoryCodeBuildingNumber | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/MerchantDetailsPostalAddress/MerchantCategoryCode | Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction. | String |
|
| CreditorAgent | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent | Financial institution servicing an account for the creditor.BuildingNumber | Number that identifies the position of a building on a street | String | ||||
PostCode | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent |
|
| SchemeName/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 | |||||||||
TownName | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/SchemeNamePostalAddress/TownName | Name of the identification scheme, in a coded form as published in an external list.a built-up area, with defined boundaries, and a local government | String | Enum:
|
| ||||||||||
Identification | CountrySubDivision | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/Identification | Unique and unambiguous identification of a financial institution or a branch of a financial institution. | String |
|
| Name | PostalAddress/CountrySubDivision | Identifies a subdivision of a country such as state, region and county | String | |||||
Country | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/Name | Name by which an agent is known and which is usually used to identify that agent. | String |
|
| PostalAddressPostalAddress/Country | Nation with its own government | String | ^[A-Z]{2,2} $ | ||||||
CreditorAccount | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddressInformation that locates and identifies a specific address, as defined by postal services.CreditorAccount | Unambiguous identification of the account of the creditor, in the case of a debit transaction | OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddressCreditorAccount |
|
| ||||||||||
AddressTypeSchemeName | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgentCreditorAccount/PostalAddress/AddressTypeIdentifies the nature of the postal address.SchemeName | Name of the identification scheme, in a coded form as published in an external list | String | Enum:
|
| ||||||||||
Department | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/Department | Identification of a division of a large organisation or building. | String |
|
| ||||||||||
SubDepartment
|
| |||||||||||||||
Identification | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgentCreditorAccount/PostalAddress/SubDepartmentIdentification of a sub-division of a large organisation or building.Identification | Identification assigned by an institution to identify an account. This identification is known by the account owner | String |
|
| ||||||||||
AddressLineName | 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 |
| StreetName | ||||||||||
DebtorAgent | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/StreetName | Name of a street or thoroughfare. | String |
|
| BuildingNumber | 0..1 | DebtorAgent | Financial institution servicing an account for the debtor | OBReadTransaction/Data/Transaction/CreditorAgent/PostalAddress/BuildingNumber | Number that identifies the position of a building on a street. | String | DebtorAgent |
|
|
PostCodeSchemeName | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgentDebtorAgent/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 |
|
| TownNameSchemeName | Name of the identification scheme, in a coded form as published in an external list | String | Enum:
|
| |||||
Identification | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgentDebtorAgent/PostalAddress/TownNameName of a built-up area, with defined boundaries, and a local government.Identification | Unique and unambiguous identification of a financial institution or a branch of a financial institution | String |
|
| ||||||||||
CountrySubDivisionName | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgentDebtorAgent/PostalAddress/CountrySubDivisionIdentifies a subdivision of a country such as state, region, county.Name | Name by which an agent is known and which is usually used to identify that agent | String |
|
| ||||||||||
CountryPostalAddress | 0..1 | OBReadTransaction/Data/Transaction/CreditorAgentDebtorAgent/PostalAddress/Country | Nation with its own government. | String |
| ^[A-Z]{2,2}$ | CreditorAccount | 0..1 | Information that locates and identifies a specific address, as defined by postal services | OBReadTransaction/Data/Transaction/CreditorAccountUnambiguous identification of the account of the creditor, in the case of a debit transaction.DebtorAgent/PostalAddress |
|
| ||||
AddressType | 0..1 | OBReadTransaction/Data/Transaction/CreditorAccount /DebtorAgent/PostalAddress/AddressType | Identifies the nature of the postal address | String | Enum:
|
| ||||||||||
SchemeNameDepartment | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/CreditorAccountPostalAddress/SchemeName | Name of the identification scheme, in a coded form as published in an external list. | String | Enum:
|
| IdentificationDepartment | Identification of a division of a large organisation or building | String |
|
| |||||
SubDepartment | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/CreditorAccountPostalAddress/IdentificationIdentification assigned by an institution to identify an account. This identification is known by the account owner.SubDepartment | Identification of a sub-division of a large organisation or building | String |
|
| ||||||||||
NameAddressLine | 0..17 | OBReadTransaction/Data/Transaction/DebtorAgent/CreditorAccountPostalAddress/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 |
|
| DebtorAgentAddressLine | 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/DebtorAgent | Financial institution servicing an account for the debtor. | OBReadTransaction/Data/Transaction/DebtorAgent |
|
| SchemeNameCreditorAgent/PostalAddress/StreetName | Number of a street or thoroughfare | String | |||||||
BuildingNumber | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/SchemeName | Name of the identification scheme, in a coded form as published in an external list. | String | Enum:
|
| IdentificationPostalAddress/BuildingNumber | Number that identifies the position of a building on a street | String |
|
| |||||
PostCode | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/Identification | Unique and unambiguous identification of a financial institution or a branch of a financial institution. | String |
|
| NamePostCode | 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/Name | Name by which an agent is known and which is usually used to identify that agent. | String |
|
| PostalAddress | TownName | Name of a built-up area, with defined boundaries, and a local government | String | ||||||
CountrySubDivision | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddressInformation that locates and identifies a specific address, as defined by postal services./CountrySubDivision | Identifies a subdivision of a country such as state, region, and county | String |
|
| ||||||||||
Country | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress |
|
| AddressType/Country | Nation with its own government | String | ^[A-Z]{2,2} $ | ||||||||
DebtorAccount | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/AddressType | Identifies the nature of the postal address. | String | Enum:
|
| DepartmentDebtorAccount | Unambiguous identification of the account of the debtor, in the case of a credit transaction | OBReadTransaction/Data/Transaction/DebtorAccount |
|
| |||||
SchemeName | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgentDebtorAccount/PostalAddress/DepartmentSchemeName | Identification Name of a division of a large organisation or building. | String |
|
| AddressLinethe identification scheme, in a coded form as published in an external list | String | Enum:
|
| ||||||
Identification | 0..71 | OBReadTransaction/Data/Transaction/DebtorAgentDebtorAccount/PostalAddress/AddressLine | Information that locates and identifies a specific address, as defined by postal services, presented in free format text. | String | StreetNameIdentification | Identification assigned by an institution to identify an account. This identification is known by the account owner | String |
|
| |||||||
Name | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgentDebtorAccount/PostalAddress/StreetNameName of a street or thoroughfare.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 |
|
| ||||||||||
BuildingNumberCardInstrument | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/BuildingNumber | Number that identifies the position of a building on a street. | StringCardInstrument | Set of elements to describe the card instrument used in the transaction | OBReadTransaction/Data/Transaction/CardInstrument |
|
| ||||||||
PostCodeCardSchemeName | 01..1 | OBReadTransaction/Data/Transaction/DebtorAgentCardInstrument/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 |
|
| TownNameCardSchemeName | Name of the card scheme | String | Enum: (Indicative)
|
| |||||
AuthorisationType | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgent/PostalAddress/TownName | Name of a built-up area, with defined boundaries, and a local government | String |
|
| CountrySubDivisionCardInstrument/AuthorisationType | The card authorisation type | String | Enum:
|
| |||||
Name | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgentCardInstrument/PostalAddress/CountrySubDivisionIdentifies a subdivision of a country such as state, region, county.Name | Name of the cardholder using the card instrument | String |
|
| ||||||||||
CountryIdentification | 0..1 | OBReadTransaction/Data/Transaction/DebtorAgentCardInstrument/PostalAddress/Country | 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 |
|
| ||||||||||
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:
|
| ||||||||||
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 |
|
| ||||||||||
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:
|
| ||||||||||
AuthorisationType | 0..1 | OBReadTransaction/Data/Transaction/CardInstrument/AuthorisationType | The card authorisation type. | String | Enum:
|
| ||||||||||
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
...
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 |
|
|
5. Usage Examples
5.1 Specific Account Transaction
5.1.1 Get Account Transactions Request
|
5.1.2 Get Account Transactions Response
|
|
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
|
...
5.
...
2.2 Get Transactions Response
|
|
...
5.
...
3 Specific Account
...
5.
...
3.1 Get Account Transactions Request
|
...
5.
...
3.2 Get Account Transactions Response
|
|
5.4
...
No Access
In this example, the AISP does not have AISP does not have access to call the transactions endpoint. This will result in a 403 error.
5.4
...
.1 Get Account Transactions Request
|
5.4
...
.2 Get Account Transactions Response
|
CENTRAL BANK OF BAHRAIN © 2020