Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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 product supplementary account info resource is used by an AISP to retrieve the account product information for a specific AccountId.The products resource is used by an AISP to retrieve the products for all authorised accounts linked to a specific account-request.

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.1products

supplementary-account-info

GET

GET /accounts/{AccountId}/product

Conditional

accounts

Authorization Code

No

 

 

OBReadProduct

2

products

GET

GET /products

supplementary-account-info

Optional

accounts

Authorization Authorisation Code

No

PaginationOBReadSupplementaryAccountInfoOBReadSupplementaryAccountInfo

 

...

OBReadProduct

 

...

3.1 GET /accounts/{AccountId}/

...

supplementary-account-info

An AISP may retrieve the account product information for a specific AccountId (which is retrieved in the call to GET /accounts). While this This endpoint is marked as Conditional, it will be Mandatory Optional for ASPSPs and account types covered in the CMA Order.

2.2 GET /products

If an ASPSP has implemented the bulk retrieval endpoints for products an AISP may optionally retrieve the products information in bulk. This endpoint will retrieve the products resources for all authorised accounts linked to a specific account-request

...

.

4. Data Model

The OBReadProduct OBReadSupplementaryAccountInfo OBReadSupplementaryAccountInfo object will be used for the call to:

  • GET /accounts/{AccountId}/product

  • GET /products

...

  • supplementary-account-info

4.1 UML Diagram

...

...

4.2 Permission Codes

The resource requires the ReadProducts ReadSupplementaryAccountInfo permission. The resource response payload does not differ depending on the permissions granted.

...

4.3 Data Dictionary

 

EnhancedDefinition

Name

Occurrence

XPath

Enhanced Definition

Class/ Datatype

Codes

Pattern

OBReadSupplementaryAccountInfo

OBReadProduct 

OBReadSupplementaryAccountInfo

 

OBReadProductOBReadSupplementaryAccountInfo

 

OBReadProduct 

Data

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data

 

OBReadProductOBReadSupplementaryAccountInfo/Data

CASA 

 

ReadAccount

0..n1

OBReadProductOBReadSupplementaryAccountInfo/Data/CASAReadAccount

 

OBReadProductOBReadSupplementaryAccountInfo/Data/CASAReadAccount

 

 

AccountID 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/CASAReadAccount/AccountID 

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

String

AccountType 

1..1

OBReadProduct/Data/CASA/AccountType 

Type of account as classified by the ASPSP (eg. Savings Account, Current account)

String

ProductTypeDescription 

 

 

DateTime 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/CASAReadAccount/ProductTypeDescription 

Full description of the product

String

Name

1..1

OBReadProduct/Data/CASA/Name

Full name of the account holder

String

BranchName  

1..1

OBReadProduct/Data/CASA/BranchName  

Branch Name

String

AccountStatus 

1..1

OBReadProduct/Data/CASA/AccountStatus 

Specifies the status of account resource in code form.

String

AccountClosed 

1..1

OBReadProduct/Data/CASA/AccountClosed 

Y or N

String

Currency 

1..1

OBReadProduct/Data/CASA/Currency 

Identification of the currency in which the account is held.

String

AvailableBalance 

1..1

OBReadProduct/Data/CASA/AvailableBalance 

Withdrawable balance + funds in clearing

String

EffectiveAvailableBalance 

1..1

OBReadProduct/Data/CASA/EffectiveAvailableBalance 

Withdrawable balance

String

DateTime 

Date on which the account and related basic services are effectively operational for the account owner

DateTime

 

 

ReadCASAInfo

0..1

OBReadSupplementaryAccountInfo/Data/ReadAccount/ReadCASAInfo

 

OBReadSupplementaryAccountInfo/Data/ReadAccount/ReadCASAInfo

 

 

LienAmount 

0..1

OBReadProductOBReadSupplementaryAccountInfo/Data/CASAReadAccount/ReadCASAInfo /LienAmount 

Lien amount marked

String

 

 

ExchangeRate Rate

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/CASAReadCASAInfo /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).

String

AccountOpeningDate 

1..1

OBReadProduct/Data/CASA/AccountOpeningDate 

Account opening date

DateTime

AccountClosingDate 

1..1

OBReadProduct/Data/CASA/AccountClosingDate 

If the account is closed then Account closed date should be available.

DateTime

JointHoldersName

0..1

OBReadProduct/Data/CASA/JointHoldersNameRate 

Rate charged for the account (where it is charged in terms of a rate rather than an amount)- In Islamic banking, this field is referred to as ‘Profit/ Charge’

String

 

 

JointHolderName

0..1

OBReadSupplementaryAccountInfo/Data/ReadAccount/ReadCASAInfo /JointHolderName

List of joint account holder name

String

Investment

0..n

OBReadProduct/Data/Investment

 

OBReadProduct/Data/Investment

AccountID

1 

 

ReadDepositInfo

0..1

OBReadProductOBReadSupplementaryAccountInfo/Data/InvestmentReadAccount/AccountID

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

String

AccountType 

1..1

OBReadProductReadDepositInfo

 

OBReadSupplementaryAccountInfo/Data/InvestmentReadAccount/AccountType 

Type of account as classified by the ASPSP (eg. Savings Account, Current account)

String

ProductTypeDescription ReadDepositInfo

 

 

Rate 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/Investment/ProductTypeDescription 

Full description of the product

String

Name 

1..1

OBReadProduct/Data/Investment/Name 

Full name of the account holder

String

BranchName 

1..1

OBReadProduct/Data/Investment/BranchName 

Branch Name

String

AccountStatus ReadAccount/ReadDepositInfo /Rate 

Rate charged for the account (where it is charged in terms of a rate rather than an amount)- In Islamic banking, this field is referred to as ‘Profit/ Charge’

String

 

 

InitialDepositAmount 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/InvestmentReadDepositInfo /AccountStatus Specifies the status of account resource in code form.InitialDepositAmount 

Initial deposit amount

String

AccountClosed 

1..1

OBReadProduct/Data/Investment/AccountClosed 

Y or N

String

Currency 

 

 

DepositFrequency 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/InvestmentReadAccount/ReadDepositInfo /Currency Identification of the currency in which the account is held.DepositFrequency

Regularity with which deposit are made/processed to the account

StringRate 

DepositTerms - Days 

1..1

OBReadProduct/Data/Investment/DepositTerms - Days 

Deposit term in days

String

 Enum:1

  • BH.OBF.

1

OBReadProduct/Data/Investment/Rate 

Interest rate / profit rate for islamic banks

String

InitialDepositAmount 

1..1

OBReadProduct/Data/Investment/InitialDepositAmount 

Initial deposit amount

String

DepositTerms- Months 

1..1

OBReadProduct/Data/Investment/DepositTerms- Months 

Deposit terms in months (in case of years convert to months)

String

  • Annually

  • BH.OBF.Quarterly

  • BH.OBF.StatementMonthly

  • BH.OBF.Weekly

  • BH.OBF.Daily

 

MaturityAmount 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/InvestmentReadDepositInfo /MaturityAmount 

Maturity Amount

String

 

 

MaturityDate 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/InvestmentReadDepositInfo /MaturityDate 

Maturity Date

DateTime

ExchangeRate 

1..1

OBReadProduct/Data/Investment/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).

String

AccountOpeningDate 

1..1

OBReadProduct/Data/Investment/AccountOpeningDate 

Account opening date

DateTime

AccountClosingDate 

1..1

OBReadProduct/Data/Investment/AccountClosingDate 

If the account is closed then Account closed date should be available.

DateTime

JointHoldersName

0..1

OBReadProduct/Data/Investment/JointHoldersName

 

 

JointHolderName

0..1

OBReadSupplementaryAccountInfo/Data/ReadAccount/ReadDepositInfo /JointHolderName

List of joint account holder name

String

Loans

0..n

OBReadProduct/Data/Loans

 

OBReadProduct/Data/Loans

AccountID 

1 

 

ReadLoanMortgageInfo

0..1

OBReadProductOBReadSupplementaryAccountInfo/Data/LoansReadAccount/ AccountID

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

String

LoanType 

1..1

OBReadProduct/Data/Loans/LoanType 

Type of loan as classified by the ASPSP

String

ProductTypeDescription 

1..1

OBReadProduct/Data/Loans/ProductTypeDescription 

Full description of the product

String

Name 

1..1

OBReadProduct/Data/Loans/Name 

Full name of the account holder

String

BranchName ReadLoanMortgageInfo

In Islamic banking, this field is referred to as ‘Financing/ Property Finance'

OBReadSupplementaryAccountInfo/Data/ReadAccount/ ReadLoanMortgageInfo

 

 

Rate 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/Loans/BranchName 

Branch Name

String

AccountStatus 

1..1

OBReadProduct/Data/Loans/AccountStatus 

Specifies the status of account resource in code form.

String

AccountClosed 

1..1

OBReadProduct/Data/Loans/AccountClosed 

Y or N

String

Currency 

1..1

OBReadProduct/Data/Loans/Currency 

Identification of the currency in which the loan is held.

String

Rate 

1..1

OBReadProduct/Data/Loans/Rate 

Interest rate / profit rate for islamic banks

StringReadAccount/ ReadLoanMortgageInfo /Rate 

Rate charged for the account (where it is charged in terms of a rate rather than an amount)- In Islamic banking, this field is referred to as ‘Profit/ Charge’

String

 

 

LoanAmount 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/ LoansReadLoanMortgageInfo /LoanAmount 

Initial Loan Amount issued to the account- In Islamic banking, this field is referred to as ‘Finance Amount’

String

 

 

DisbursedAmount 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/ LoansReadLoanMortgageInfo /DisbursedAmount 

Disbursed Amount till date to the account

String

 

 

OutstandingLoanAmount 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/LoansReadAccount/ ReadLoanMortgageInfo /OutstandingLoanAmount 

Outstanding Loan Amount- In Islamic banking, this field is referred to as ‘Outstanding Finance Amount’

String

 

 

Numberofinstallments 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/ LoansReadLoanMortgageInfo /Numberofinstallments 

Number of installments

String

LoanTerms - Months  

 

LoanFrequency

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/ LoansReadLoanMortgageInfo /LoanTerms - Months 

Deposit terms in months (in case of years convert to months)

String

DepositTerms - Days 

1..1

OBReadProduct/Data/Loans/DepositTerms - Days 

Deposit term in days

String

ExchangeRate 

1..1

OBReadProduct/Data/Loans/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).

String

AccountOpeningDate 

1..1

OBReadProduct/Data/Loans/AccountOpeningDate 

Account opening date

DateTime

AccountClosingDate 

1..1

OBReadProduct/Data/Loans/AccountClosingDate 

If the account is closed then Account closed date should be available.

DateTime

JointHoldersName

0..1

OBReadProduct/Data/Loans/JointHoldersNameLoanFrequency 

Regularity with which the installment is applied to the Account

String

 Enum:

  • BH.OBF.Annually

  • BH.OBF.Quarterly

  • BH.OBF.StatementMonthly

  • BH.OBF.Weekly

  • BH.OBF.Daily

 

JointHolderName

0..1

OBReadSupplementaryAccountInfo/Data/ReadAccount/ ReadLoanMortgageInfo /JointHolderName

List of joint account holder name

String

CreditCards

0..n

OBReadProduct/Data/CreditCards 

 

OBReadProduct/Data//CreditCards

CardNumber 

1ReadCreditCardInfo

0..1

OBReadProductOBReadSupplementaryAccountInfo/Data/CreditCardsReadAccount/ CardNumber 

Card number (Masked card details)

String

CardIssuer 

1..1

OBReadProductReadCreditCardInfo

 

OBReadSupplementaryAccountInfo/Data/CreditCardsReadAccount/ CardIssuer 

Card issuer (e.g VISA)

String

CardType ReadCreditCardInfo

 

 

Rate 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/CreditCards/CardType 

Primary or Secondary

String

ProductTypeDescription 

1..1

OBReadProduct/Data/CreditCards/ProductTypeDescription 

Full description of the product

String

Name 

1..1

OBReadProduct/Data/CreditCards/Name 

Full Name

String

BranchName 

ReadAccount/ ReadCreditCardInfo /Rate 

Rate charged for the account (where it is charged in terms of a rate rather than an amount)- In Islamic banking, this field is referred to as ‘Profit/ Charge’

String

 

 

CardLimit 

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/CreditCards/BranchName 

Branch Name

String

CardStatus 

1..1

OBReadProduct/Data/CreditCards/CardStatus 

Specifies the status of card resource in code form.

String

CardClosed 

1..1

OBReadProduct/Data/CreditCards/CardClosed 

Y or N

String

Currency 

1..1

OBReadProduct/Data/CreditCards/Currency 

Identification of the currency in which the account is held.

String

CardBalance 

1..1

OBReadProduct/Data/CreditCards/CardBalance 

Card Balance

String

Rate 

1..1

OBReadProduct/Data/CreditCards/Rate 

Interest rate / profit rate for islamic banks

String

CardLimit 

1..1

OBReadProduct/Data/CreditCards/CardLimit 

Card Limit

String

MinimumDue

1..1

OBReadProduct/Data/CreditCards/MinimumDue 

Minimum Amount payable

String

TotalDue 

1..1

OBReadProduct/Data/CreditCards/TotalDue 

Total Amount payable

String

PaymentDueDate ReadAccount/ ReadCreditCardInfo /CardLimit 

Credit Limit applied to the account

String

 

 

GracePeriod

0..1

OBReadSupplementaryAccountInfo/Data/ReadAccount/ ReadCreditCardInfo/ GracePeriod

The duration after the due date during which the payment can be received without penalty

String

 

 

URL

0..1

OBReadSupplementaryAccountInfo/Data/ReadAccount/ ReadCreditCardInfo/URL

Uniform resource locator of the specified product

String

 

 

ReadEWalletInfo

0..1

OBReadSupplementaryAccountInfo/Data/ReadAccount/ ReadEWalletInfo

 

OBReadSupplementaryAccountInfo/Data/ReadAccount/ ReadEWalletInfo

 

 

Charge

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/CreditCards/PaymentDueDate 

Payment Due date

DateTime

AddOnCards 

1..1

OBReadProduct/Data/CreditCards/AddOnCards 

Number of add-on cards (supplementary cards)

String

ExchangeRate ReadAccount/ ReadEWalletInfo/Charge

Fee charged for the account (where it is charged in terms of an amount)

 

String

 

 

ChargeFrequency

1..1

OBReadProductOBReadSupplementaryAccountInfo/Data/ReadAccount/ CreditCardsReadEWalletInfo/ 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).

String

CardIssueDate 

1..1

OBReadProduct/Data/CreditCards/CardIssueDate 

Card Issue date

DateTime

CardClosingDate

1..1

OBReadProduct/Data/CreditCards/CardClosingDate

If the Card is closed then Account closed date should be available.

DateTime

 

4. Usage Example

4.1 Specific Account

...

ChargeFrequency

Regularity with which the fee is applied to the Account

String

Enum:

  • BH.OBF.Annually

  • BH.OBF.Quarterly

  • BH.OBF.StatementMonthly

  • BH.OBF.Weekly

  • BH.OBF.Daily

 

 

5. Usage Example

5.1 Get Supplementary Account Info

5.1.1 Request

GET /accounts/22289/productsupplementary-account-info
Authorisation: Bearer 4ZopnFZFKjr5zDsicSQpLL
x-fapi-auth-date: Tue, 22 Apr 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 Response

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

Get Product Response

{

  "Data": {

                "CASAReadAccount": [      {

                                "AccountIDAccountId": "22289",

                                "AccountType": "Savings Account",

        "ProductTypeDescription": "A financial account held by the individuals for carrying out transaction on a regular basis",

        "Name": "Asif Khan",

        "BranchName": "Manama",

        "AccountStatus": "A",

        "AccountClosed": "N",

        "Currency": "BHD",

        "AvailableBalance": "190000 BHD",

        "EffectiveAvailableBalance": "150000 BHD",

        "LienAmount": "1000 BHD",

        "ExchangeRate": "1",

        "AccountOpeningDate": "2019-04-22T07:07:54.469+03:00",

        "AccountClosingDate": "2032-04-22T07:07:54.469+03:00",

        "JointHoldersName": "NA"

      }

    ]

  }

}

4.2 Bulk Account

4.2.1 Get Products Request

GET /products
Authoriszation: Bearer 4ZopnFZFKjr5zDsicSQpLL
x-fapi-auth-date: Tue, 22 Apr 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

4.2.2 Get Products Response

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

{
  "Data": {
    "CASA": [
      {
        "AccountID": "22289",
        "AccountType": "Savings Account",
        "ProductTypeDescription": "A financial account held by the individuals for carrying out transaction on a regular basis",
        "Name": "Asif Khan",
        "BranchName": "Manama",
        "AccountStatus": "A",
        "AccountClosed": "N",
        "Currency": "BHD",
        "AvailableBalance": "190000 BHD",
        "EffectiveAvailableBalance": "150000 BHD",
        "DateTime": "2015-04-22”

                        "ReadCASAInfo": [

                          {

                                    "LienAmount": "1000 BHD",

                                            "ExchangeRateRate": "1",
        "AccountOpeningDate": "2019-04-22T07:07:54.469+03:00",
        "AccountClosingDate": "2032-04-22T07:07:54.469+03:00",
        "JointHoldersName": "NA"
      }
    ],    "Investment": [
      {
        "AccountID": "38980",
        "AccountType": "Current Account",
        "ProductTypeDescription": "A financial account held by the individuals that contains products related to short term and long term investments such as deposit of funds, securities, etc.",
        "Name": "Infra Limited",
        "BranchName": "Manama",
       "AccountStatus": "A",
        "AccountClosed": "N",
        "Currency": "BHD",
        "Rate": "8.00%",
        "InitialDepositAmount": "100000 BHD",
        "DepositTerms-Months": "12",
        "DepositTerms-Days": "0",
        "MaturityAmount": "108000 BHD",
        "MaturityDate": "2020-10-22T07:07:54.469+03:00",
        "ExchangeRate": "1",
        "AccountOpeningDate": "2019-04-22T07:07:54.469+03:00",
        "AccountClosingDate": "2032-04-22T07:07:54.469+03:00",
        "JointHoldersName": "NA"
      }
    ]
  }}5.00%",

                          }

                        ],

              }

                        ],

            }         

  }

}

CENTRAL BANK OF BAHRAIN © 2020