General
Expand | ||
---|---|---|
| ||
Bahrain OBF is a holistic Open Banking stands to unlock greater value through proliferation of new business models, new market entrants, increased monetization opportunities, scaled up digital banking and most importantly greater value to customer in usage of financial products and services. |
Expand | ||||
---|---|---|---|---|
| A holistic Open Banking framework that will support the evolution of innovation while continuously addressing issues to protect, maintain and bolster the safety and robustness of Bahrain’s financial system.||||
Bahrain OBF will focus focuses on several key guiding principles while designing its Open Banking Framework:•
|
Expand | ||||
---|---|---|---|---|
| Any participant supplying or accessing data already has obligations under existing legal and regulatory frameworks in Bahrain, such as the Personal Data Protection Law (PDPL) of 2018
| |||
Bahrain OBF is a set of standards and guidelines that will enable Open Banking participants to offer a variety of Open Banking services in Bahrain. This Framework has to be read in conjunction with the CBB Open Banking Rulebook. Guidelines drafted under Bahrain OBF are complementary to and not a replacement of any existing legal or regulatory requirements in Bahrain. |
Expand | ||
---|---|---|
| ||
No, there is no additional charge for using Open Banking. However, some accredited third party providers may choose to charge you for their products and services. | ||
Expand | ||
| ||
| ||
Bahrain OBF will be updated on a periodic basis to incorporate industry feedback, changes to standards or guidelines, addition of new innovative use cases, and modifications to the local and regulatory and Open Banking landscape. |
Expand |
---|
All date-time fields in responses must include the timezone. For Example:
2020-04-05T10:43:07+03:00 2020-05-03T14:43:41Z |
---|
The API allows the AISP to ask an ASPSP to create a new account-access-consent resource.
All dates in the query string are represented in ISO-8601 date-time format and must not include the timezone. For example:
2020-04-05T10:43:07 2020-04-05 |
---|
All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below:
Tue, 10 Mar 2020 19:43:31 GMT+03:00 |
---|
All dates in the JWT claims are expressed as a JSON number, representing the number of seconds from 1970-01-01T0:0:0Z as measured in GMT until the date/time.
//Wed, 12 Feb 2020 14:45:00 GMT+03:00 1581507900 |
---|
Expand | ||
---|---|---|
| ||
The path of the URI must follow the structure below
This consists of the following elements:
An ASPSP must use the same participant-path-prefix and host name for all its resources. Examples:
|
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Header Value | Notes | POST Requests | GET Requests | DELETE Requests | PUT Requests | PATCH | |
x-fapi-auth-date | The time when the User/Customer last logged in with the AISP/PISP. e.g., x-fapi-auth-date: Mon, 11 May 2020 19:43:31 GMT+03:00 | Optional | Optional | Optional | Do not use | Optional | |
x-fapi-customer-ip-address | The User’s/Customer’s IP address if the User/Customer is currently logged in with the AISP/PISP. | Optional | Optional | Optional | Do not use | Optional | |
x-fapi-interaction-id | An RFC4122 UID used as a correlation Id. | Optional | Optional | Optional | Optional | Optional | |
Authorization | Standard HTTP Header; Allows Credentials to be provided to the Authorisation / Resource Server depending on the type of resource being requested. For OAuth 2.0 / OIDC, this comprises of either the Basic / Bearer Authentication Schemes. | Mandatory | Mandatory | Mandatory | Mandatory | Mandatory | |
Content-Type | Standard HTTP Header; Represents the format of the payload being provided in the request. | Mandatory | Do not use | Do not use | Mandatory | Mandatory | |
Accept | Standard HTTP Header; Determine the Content-Type that is required from the Server. | Optional | Optional | Do not use | Optional | Optional | |
x-idempotency-key | Custom HTTP Header; Unique request identifier to support idempotency. | Optional | Do not use | Do not use | Do not use | Do not use | |
x-jws-signature | Header containing a detached JWS signature of the body of the payload. | API specific | API specific | API specific | Mandatory | API specific | |
x-customer-user-agent | The header indicates the user-agent that the User/Customer is using. | Optional | Optional | Optional | Optional | Optional | |
Expand | |||||||
| |||||||
Header Value | Notes | Mandatory? | |||||
Content-Type | Standard HTTP Header; Represents the format of the payload returned in the response. | Mandatory | |||||
x-jws-signature | Header containing a detached JWS signature of the body of the payload. | API specific | |||||
x-fapi-interaction-id | An RFC4122 UID used as a correlation Id. | Mandatory | |||||
Retry-After | Header indicating the time (in seconds) that the AISP/PISP should wait before retrying an operation. | Optional | |||||
Expand | |||||||
| |||||||
Situation | HTTP Status | Notes | Returned by POST | Returned by GET | Returned by DELETE | Returned by PUT | Returned by PATCH |
Request completed successfully | 200 OK | PUT will be specified to return the updated resource. A 200 status code is therefore appropriate. | No | Yes | No | Yes | Yes |
Normal execution. The request has succeeded. | 201 Created | The operation results in the creation of a new resource. | Yes | No | No | No | No |
Delete operation completed successfully | 204 No Content |
| No | No | Yes | No | No |
Request has malformed, missing or non-compliant JSON body, URL parameters or header fields. | 400 Bad Request | The requested operation will not be carried out. | Yes | Yes | Yes | Yes | Yes |
Authorization header missing or invalid token | 401 Unauthorized | The operation was refused access. | Yes | Yes | Yes | Yes | Yes |
Token has incorrect scope or a security policy was violated. | 403 Forbidden | The operation was refused access. | Yes | Yes | Yes | Yes | Yes |
The AISP/PISP tried to access the resource with a method that is not defined | 404Not found |
| Yes | Yes | Yes | Yes | Yes |
The AISP/PISP tried to access the resource with a method that is not supported. | 405 Method Not Allowed |
| Yes | Yes | Yes | Yes | Yes |
The request contained an Accept header other than permitted media types and a character set other than UTF-8 | 406 Not Acceptable |
| Yes | Yes | Yes | Yes | Yes |
The operation was refused as too many requests have been made within a certain timeframe. | 429 Too Many Requests | ASPSPs may throttle requests when they are made in excess of their fair usage policy. | Yes | Yes | No | Yes | Yes | Something went wrong on the API gateway or micro-service | 500 Internal Server Error | The operation failed. | Yes | Yes | Yes | Yes | Yes
|
PISP offer payment initiation services to users/customers as part of Open Banking. On the other hand, EFTS is a payments network/system that enables payments between two IBAN accounts in Bahrain. Thus both are independent of each other. For example, a user/customer may initiate a payment through a PISP application, and the actual payment will be handled/settled by the EFTS system. |
Security and Privacy
Expand | ||
---|---|---|
| ||
Security has always been the primary focus area for Open Banking.
|
Expand | ||
---|---|---|
| ||
No. You will only use Open Banking if you give permission to an accredited third party provider. It will always be your choice – you need to give your explicit consent. |
Expand | ||
---|---|---|
| ||
Yes. The user/customer needs to give an explicit consent to use the Open Banking services of a third party provider. Amongst other things, the consent will clearly state the purpose for which it is granted and the time period for which it will be used. |
Expand | ||
---|---|---|
| ||
You will always be in control. You decide what information you wish to share with which third party. You choose which accredited third party provider you want to use. The ultimate control of your information will always be with you. |
Expand | ||
---|---|---|
| ||
Access to data is driven by consent and the purpose which access was granted in first place. There are 2 ways in which you can stop giving access to your data:-
|
Expand | ||
---|---|---|
| ||
Data can only be stored by the accredited third party providers for the purpose for which it was accessed under an explicit consent. Hence, once you cancel/revoke access to your data, the accredited third party provider has to delete that data. |
Expand | ||
---|---|---|
| ||
No. You’ll always need to approve any payment made from your account. No payment can be made without your authorization. |
Expand | ||
---|---|---|
| ||
If money has been taken from your account without your authorization, contact your bank as soon as you notice. Depending on the circumstances, they may be able to refund your money back. |
Expand | ||
---|---|---|
| ||
Contact the bank or third party provider you believe have misused your data immediately. If you think you have been a victim of identity theft, immediately report it to your bank. |
Expand | ||
---|---|---|
| ||
All Open Banking participants to use the existing infrastructure for disputes handling process and dispute resolution. |
Expand | ||
---|---|---|
| ||
When a User/Customer signs up for a service, the AISP/PISPs must request for explicit consent from the User/Customer in order to permit access to data that may be essential only for that specific service. All consent requests should indicate in a clear and specific manner, the details, scope, objectives and implication of providing such consent. Necessary safeguards should be established by the AISP/PISP to ensure that the User/Customer reads the terms and conditions before providing explicit consent. Details on the consent message, structure and language are specified in detail as part of Bahrain OBF. |
Accreditation
Expand | ||
---|---|---|
| ||
Only accredited third party providers and ASPSPs are allowed to offer Open Banking services in Bahrain.
|
Expand | ||
---|---|---|
| ||
Accreditation criteria has been laid down and explained in detail in the Authorization Module of Volume 5 of CBB rulebook. |
Expand | ||
---|---|---|
| ||
Anyone who wishes to know about the accreditation of a third party provider may do so by checking the list of accredited third party providers on the licensing directory available on the CBB website. In addition to the CBB website, the third party should clearly state their accreditation status. |
Expand | ||
---|---|---|
| ||
The CBB may amend or revoke a license in any of the following cases:
|
API Specification
Expand | ||
---|---|---|
| ||
An idempotency key is used to guard against the creation of duplicate resources when using the POST API endpoints (where indicated). If an idempotency key is required for an API endpoint:
If an idempotency key is not required for an API endpoint:
|
Expand | ||
---|---|---|
| ||
The APIs require TLS 1.2 Mutual Authentication and this may be used as a means of non-repudiation. However, it would be difficult to maintain digital records and evidence of non-repudiation if the API only relied on TLS 1.2. A solution for non-repudiation that does not rely on TLS, would be achieved by providing a JWS with detached content (as defined in RFC 7515 - Appendix F) in the HTTP header of each API request. The HTTP body would form an un-encoded payload as defined in RFC 7797. The JWS would be signed using an algorithm that supports asymmetric keys. A request would be signed by a AISP/PISP's private key and a response would be signed by the ASPSP's private key. Not all API requests and responses are signed. Whether message signing is mandatory, supported or not supported is documented along with each API. |
Expand | ||
---|---|---|
| ||
Message encryption is implemented through JSON Web Encryption (JWE). The approach differs from message signing in that:
If an ASPSP does not support message encryption then should reject any requests with a Content-type or Accept headers that indicate that message encryption is required. |
Expand | ||
---|---|---|
| ||
A REST resource should have a unique identifier (e.g. a primary key) that may be used to identify the resource. These unique identifiers are used to construct URLs to identify and address specific resources. However, considering that some of the resources described in these specifications do not have a primary key in the system of record, the Id field will be optional for some resources. An ASPSP that chooses to populate optional Id fields must ensure that the values are unique and immutable. |
Expand | ||
---|---|---|
| ||
The functionality, endpoints and fields within each resource are categorised as 'Mandatory', 'Conditional' or 'Optional'. MandatoryFunctionality, endpoints and fields marked as Mandatory are required in all cases for regulatory compliance and/or for the API to function and deliver essential customer outcomes. For functionalities and endpoints:
For fields:
ConditionalFunctionality, endpoints and fields marked as Conditional may be required in some cases for regulatory compliance (for example, if these are made available to the USER/CUSTOMER in the ASPSP's existing Online Channel, or if ASPSPs (or a subset of ASPSPs) have been mandated by a regulatory requirement). For functionalities and endpoints:
For fields:
An ASPSP must include meaningful values for Conditional fields in an API response if these are required for regulatory compliance. OptionalFunctionality and endpoints marked as Optional are not necessarily required for regulatory compliance but may be implemented to enable desired customer outcomes. For functionalities and endpoints:
For fields:
For any endpoints which are implemented by an ASPSP, the fields are either Mandatory or Conditional. |
Expand | ||
---|---|---|
| ||
The API requests and responses must use a UTF-8 character encoding. This is the default character encoding for JSON (RFC 7158 - https://tools.ietf.org/html/rfc7158#section-8.1) However, an ASPSP's downstream system may not accept some UTF-8 characters, such as emoji characters (e.g. "J" may not be an acceptable Payment Reference). If the ASPSP rejects the message with a UTF-8 character that cannot be processed, the ASPSP must respond with an HTTP 400 (Bad Request) status code. |
...
title | What are the Date Formats used in the API? |
---|
| |
Any Open Banking participant supplying or accessing data has obligations under existing legal and regulatory frameworks in Bahrain, such as the CBB Rulebook and PDPL. Guidelines drafted under Bahrain OBF are complementary to and not a replacement of any existing legal or regulatory requirements in Bahrain. |
Expand | ||
---|---|---|
| ||
No, there is no additional charge for using Open Banking as a service. However, some accredited third party providers may decide to charge you for their products/solutions/services customized for your needs. |
Expand | ||
---|---|---|
| ||
No. You have to enable online or mobile banking services for your account to avail Open Banking services. |
Expand | ||
---|---|---|
| ||
PISPs offer payment initiation services to the users/customers as part of Open Banking. EFTS is a payments network/system that enables payments between two IBAN accounts in Bahrain. The execution of the payment under the PISP service will be handled/settled by the existing EFTS system. For example, a user/customer may initiate a payment through a PISP application, to transfer funds from his/her bank account to a beneficiary and the actual payment will be handled/settled by the EFTS system. |
Expand | ||
---|---|---|
| ||
Under Bahrain OBF, third party providers have both read and write access depending on the nature of service they provide.
|
Security and Privacy
Expand | ||
---|---|---|
| ||
Safety and Security of user/customer data has always been the primary focus area for Bahrain Open Banking:
The principles of control, regulation and security combine to create a trusted Open Banking environment for the user/customer. |
Expand | ||
---|---|---|
| ||
No. It is always your decision and you will need to give your explicit consent to avail Open Banking services. You can avail of Open Banking services only if you give permission to an accredited third party provider to use your data or initiate a payment on your behalf. |
Expand | ||
---|---|---|
| ||
Yes. You need to give an explicit consent to use the Open Banking services of a third party provider. Amongst other things, the consent will clearly state the purpose for which it is granted and the time period for which it will be used. |
Expand | ||
---|---|---|
| ||
Access to data is driven by consent and the purpose for which access was granted in first place. There are 2 ways in which you can revoke access to your data:
|
Expand | ||
---|---|---|
| ||
Data can only be stored by the AISP/PISP for the purpose for which it was accessed under an explicit consent. Hence, once you cancel/revoke access to your data, the AISP/PISP has to delete that data and it cannot be used any further. |
Expand | ||
---|---|---|
| ||
No. You will always need to approve any payment made from your account. No payment can be made without your authorisation. |
Expand | ||
---|---|---|
| ||
If under some circumstances, money has been transferred from your account without your authorisation for transferring it, contact your bank as soon as you become aware about this transaction. Depending on the circumstances, they may be able to refund back the money. |
Expand | ||
---|---|---|
| ||
Contact the bank or third party provider immediately, if you believe that your data has been used incorrectly or has been misused. |
Expand | ||
---|---|---|
| ||
All Open Banking participants should use the existing infrastructure for disputes handling process and dispute resolution. |
Expand | ||
---|---|---|
| ||
When a user/customer signs up for a service, the AISP/PISP must request for explicit consent from the user/customer in order to permit access to data that may be essential only for that specific service. All consent requests should indicate in a clear and specific manner, the details, scope, objectives and implication of providing such consent. Necessary safeguards should be established by the AISP/PISP to ensure that the user/customer reads the terms and conditions before providing explicit consent. Details on the consent message, structure and language are specified in detail as part of Bahrain OBF. |
Expand | ||
---|---|---|
| ||
Open Banking participants should follow archiving policies based on existing Bahrain regulatory and legal requirements. |
Expand | ||
---|---|---|
| ||
The first step is to discuss your complaint directly with AISP/PISP or an ASPSP. If you believe you are not satisfied with their response, you can contact CBB by submitting the Complaint Form available on https://www.cbb.gov.bh/complaint-form/ |
Accreditation
Expand | ||
---|---|---|
| ||
Only accredited third party providers and ASPSPs are allowed to offer Open Banking services in Bahrain.
|
Expand | ||
---|---|---|
| ||
Accreditation criteria has been laid down and explained in detail in the Authorisation Module of Volume 5 of the CBB Rulebook. |
Expand | ||
---|---|---|
| ||
Anyone who wishes to know about the accreditation of a third party provider may do so by checking the list of accredited third party providers on the licensing directory available on the CBB website. In addition to the CBB website, the third party provider should clearly state their accreditation status. |
Expand | ||
---|---|---|
| ||
The CBB may amend or revoke a license in any of the following cases:
|
API Specification
Expand | ||
---|---|---|
| ||
An idempotency key is used to guard against the creation of duplicate resources when using the POST API endpoints (where indicated). If an idempotency key is required for an API endpoint:
If an idempotency key is not required for an API endpoint:
|
Expand | ||
---|---|---|
| ||
The APIs require TLS 1.2 Mutual Authentication and this may be used as a means of non-repudiation. However, it would be difficult to maintain digital records and evidence of non-repudiation if the API only relied on TLS 1.2. A solution for non-repudiation that does not rely on TLS, would be achieved by providing a JWS with detached content (as defined in RFC 7515 - Appendix F) in the HTTP header of each API request. The HTTP body would form an un-encoded payload as defined in RFC 7797. The JWS would be signed using an algorithm that supports asymmetric keys. A request would be signed by a AISP/PISP's private key and a response would be signed by the ASPSP's private key. Not all API requests and responses are signed. Whether message signing is mandatory, supported or not supported is documented along with each API. |
Expand | ||
---|---|---|
| ||
Message encryption is implemented through JSON Web Encryption (JWE). The approach differs from message signing in that:
If an ASPSP does not support message encryption then should reject any requests with a Content-type or Accept headers that indicate that message encryption is required. |
Expand | ||
---|---|---|
| ||
A REST resource should have a unique identifier (e.g. a primary key) that may be used to identify the resource. These unique identifiers are used to construct URLs to identify and address specific resources. However, considering that some of the resources described in these specifications do not have a primary key in the system of record, the Id field will be optional for some resources. An ASPSP that chooses to populate optional Id fields must ensure that the values are unique and immutable. |
Expand | ||
---|---|---|
| ||
The functionality, endpoints and fields within each resource are categorised as 'Mandatory', 'Conditional' or 'Optional'. MandatoryFunctionality, endpoints and fields marked as Mandatory are required in all cases for regulatory compliance and/or for the API to function and deliver essential customer outcomes. For functionalities and endpoints:
For fields:
ConditionalFunctionality, endpoints and fields marked as Conditional may be required in some cases for regulatory compliance (for example, if these are made available to the USER/CUSTOMER in the ASPSP's existing Online Channel, or if ASPSPs (or a subset of ASPSPs) have been mandated by a regulatory requirement). For functionalities and endpoints:
For fields:
An ASPSP must include meaningful values for Conditional fields in an API response if these are required for regulatory compliance. OptionalFunctionality and endpoints marked as Optional are not necessarily required for regulatory compliance but may be implemented to enable desired customer outcomes. For functionalities and endpoints:
For fields:
For any endpoints which are implemented by an ASPSP, the fields are either Mandatory or Conditional. |
Expand | ||
---|---|---|
| ||
The API requests and responses must use a UTF-8 character encoding. This is the default character encoding for JSON (RFC 7158 - https://tools.ietf.org/html/rfc7158#section-8.1) However, an ASPSP's downstream system may not accept some UTF-8 characters, such as emoji characters (e.g. "J" may not be an acceptable Payment Reference). If the ASPSP rejects the message with a UTF-8 character that cannot be processed, the ASPSP must respond with an HTTP 400 (Bad Request) status code. |
Expand | ||||
---|---|---|---|---|
| ||||
All date-time fields in responses must include the timezone. For Example:
The API allows the AISP to ask an ASPSP to create a new account-access-consent resource. All dates in the query string are represented in ISO-8601 date-time format and must not include the timezone. For example:
All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below:
All dates in the JWT claims are expressed as a JSON number, representing the number of seconds from 1970-01-01T0:0:0Z as measured in GMT until the date/time.
|
Expand | ||
---|---|---|
| ||
The path of the URI must follow the structure below
This consists of the following elements:
An ASPSP must use the same participant-path-prefix and host name for all its resources. Examples:
|
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Expand | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
Expand | ||
---|---|---|
| ||
An ASPSP must provide limited support of filtering on GET operations that return multiple records. The filter parameters, are always specific to particular field(s) of the resource, and follow the rules/formats defined under the resource's data dictionary. In case of DateTime type filter parameters, values must be specified in ISO8601 format. If the DateTime contains a timezone, the ASPSP may ignore the timezone component. The filter values will be assumed to refer to the same timezone as the timezone in which the resource is maintained. |
...
Expand | ||
---|---|---|
| ||
This flow assumes that the following Steps have been completed successfully:
|
Further Information
Expand | ||
---|---|---|
| ||
Feel free to visit our confluence page for more updates. CBB will update this page The confluence pages will be updated on a periodic basis . | ||
Expand | ||
| ||
Feel free to contact CBB for any enquiry on Open Banking by submitting a general enquiry form available on https://www.cbb.gov.bh/general-enquiry-form/to keep the Open Banking participants informed on new developments. |
Expand | ||||
---|---|---|---|---|
| First, discuss your complaint directly with the company, institution or bank. If you believe you are not satisfied with their response, you can contact CBB by submitting a Complaint Form
| |||
For any general enquiry on Open Banking, kindly submit the general enquiry form available on https://www.cbb.gov.bh/complaintgeneral-enquiry-form/ |
CENTRAL BANK OF BAHRAIN © 2020