Getting Started
- Application Programming Interface (API) portals offer a wide range of features and capabilities to make working with APIs easier. From documentation and sample code to testing tools, API portals are designed to help developers get up and running quickly
- Application Programming Interface (API) portals enable companies to easily share information and data across real-time, distributed cloud and mobile applications.
- Developer-users can access the underlying systems through a product-like interface that is only loosely coupled with the underlying develops tools. Using this interface, they can perform developer self-service actions such as spinning up new environments, requesting permissions, storing secrets, scaffolding microservices, performing day 3 operations and more.
- At the center of the developer portal lies the software catalog which shows services, environments, clouds, devtools and more, creating an in-context understanding of what is deployed where.
- In short, the developer platform is a systematically organized set of interfaces that are created to make the consumption of devops assets simple and easy for developers. This creates a smooth self-service developer experience that allows developer productivity that is freed from the need to stop and figure out what to do with regards to devops assets, which suddenly become accessible.
- In ARB Developer Portal API Technical Guide, we'll take a closer look at the features and capabilities of API portals, and provide all API Guidelines that will enable ARB success partners to integrate and build API applications seamlessly. In addition, we also provide testing projects with valid sample requests and responses with highlighting how partners will get subscribed and utilize ARB APIs. So, let's get started and explore the exciting world of API portals!
- If you have any further inquiries, please check our FAQ section, first. If your queries remain unresolved, please don't hesitate to Contact Us
.
Abbreviations
Term | Definition |
---|---|
API | Application Programming Interface |
PSU | Payment Service User |
TPP | Third Party Provider |
ASAP | Account Servicing Payment Service Provider |
CIBA | Client Initiated Backchannel Authentication |
OAuth | Type of access Token |
FAPI | Financial-grade API Security Profile |
AISP | Account information service providers |
PISP | Payment initiation service providers |
SAMA | Saudi Monetary Agency (Saudi Central Bank) |
PASP | Payment Account Service Provider |
Optimizing Your Development Workflow with ARB Sandbox Portal
- Sandbox is a solution used to test, run, the code before they affect an app, system, or network A sandbox is an isolated testing environment that enables users to run programs or open files without affecting the application, system or platform on which they run.
- Software developers use sandboxes to test new programming code. Cybersecurity professionals use sandboxes to test potentially malicious software. Without sandboxing, software or applications could have potentially unlimited access to all the user data and system resources on a network.
- Testing your development using a fully integrated ARB sandbox without risking any real accounts, you can access our sandbox environment and test your application before deploying your application to production where you will take the integration live for real users. This environment is fully scalable and designed to work with live banks.
Alrajhi Bank (ARB) Developer Portal Capabilities
- ARB Developer Portal offers APIs for getting access to account information from online payment accounts. They permit an Account Information Service Provider (AISP) to access account information from online payment accounts held by Payment Account Service Providers (PASP), with the explicit consent of the Paying Party.
- We are using account information version 2022.11.01-final-errata2.
- Facilitating the Digital capability in issuing requests to banks to issue a Letter of Guarantee and make it available to beneficiary businesses on behalf of business customers.
Your Key to Login
You must first create an account on Alrajhi Developer Portal and set up your login credentials. By doing so, you will be able to gain access to the necessary tools and resources to develop and test your application smoothly.
Opening the Door
- Sign up for a developer account at Alrajhi Bank Gateway.
- Verify that you're following the password policy outlined below.
- Once approved, you will receive an activation mail.
- Click the provided link to activate your account.
- Select which product and plan to which you are willing to subscribe. Then, confirm your subscription details. After that, subscription request will be submitted for review. The request will be validated, reviewed and approved by AlRajhi concerned team.
- Once approved,You can start consuming our APIs as a SAMA-certified TPP.
Open Banking APIs
Security APIs
- There are several methods of API authentication, such as Basic Auth (username and password) and OAuth (a standard for accessing user permissions without a password). In our case, Alrajhi Bank Gateway APIs generates OAuth. client access token using client credentials grant type following FAPI standards.
All open banking Standard APIs are secured based on FAPI 1 Advanced with PAR ,For more information, please refer to
API | Endpoint |
---|---|
Authorization | /auth |
Push Authorization Request | /par-request |
Generate Access Token | /token |
Authorization
/auth
API will initiate PSU authentication and authorization flow which will end with getting an Authorization Code that later can be exchanged to an OIDC access and ID tokens conforming with FAPI standards during AISP and PISP flows.
Initiating PSU authentication and authorization flow.
Request(Headers-parameters)
Parameter Name | Parameter type | Description |
---|---|---|
request_uri* | string required (query) | The request URI corresponding to the authorization request posted. This URI is a single-use reference to the respective request data in the subsequent authorization request. The way the authorization process obtains the authorization request data is at the discretion of the authorization server and is out of scope of this specification. Example : "urn:example:bwc4JK-ESC0w8acc191e-Y1LTC2" |
client_id* | string required (query) | The client associated with request_uri Example : 12345 |
Response Http codes
Code | Description |
---|---|
302 | Successful Operation |
303 | See others |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
415 | Unsupported Media Type |
429 | Too Many Requests |
500 | Internal Server Error |
Error
{
"error": "string",
"error_description": "string"
}
Push Authorization API (PAR)
The Pushed Authorization Requests extension outlines a method for initiating an OAuth flow from the TPP rather than by creating a URL, thereby enhancing security and providing greater flexibility when constructing authorization requests.
/par-request
Request(Headers-parameters)
No Parameters
Request Type
x-www-form-urlencoded
Request Body
x-www-form-urlencoded
field name | type |
---|---|
client_assertion_type* | string |
client_assertion* | string |
request* | string |
Response Schema
Element | Type | Description |
---|---|---|
ValidResponse | structure | |
request_uri | string | |
expires_in* | integer |
Response Http codes
Code | Description |
---|---|
201 | Successful Operation |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
415 | Unsupported Media Type |
429 | Too Many Requests |
500 | Internal Server Error |
Successful Operation
{
"request_uri": "urn:ietf:params:oauth:request_uri:6ff74d4a-31b5-4768-8c1e-df89ebef01d3",
"expires_in": 60
}
Error
{
"error": "invalid_request",
"error_description": "Authentication failed."
}
Access Token
- Access tokens are a type of security credential that a system uses to grant or deny access to resources. They are commonly used in authentication and authorization processes to ensure that only authorized users can access sensitive data or perform certain actions.
- Token-based authentication allows access tokens to grant applications API access. After a user has successfully completed authentication and been granted permission, the application receives an access token. Then passes the access token as a credential when it calls the target API.
- Alrajhi Bank Gateway APIs generates OAuth. client access token using client credentials grant type following FAPI standards, generate or refresh PSU access token for backchannel CIBA authentication, and generate PSU access token in accordance with FAPI standards, either by exchanging authorization code with a new access token or refreshing an expired token.
Generate Access Token
Fetch access token for your authentication and use to access Alrajhi Bank Gateway APIs Works with
HTTP Request Url
/token
Request Type
x-www-form-urlencoded
Request Body
Field | Type | Description |
---|---|---|
grant_type | string required | OAuth2 grant type according to RFC6749 |
code | string | Authorization code |
redirect_uri | string | TPP Redirect URI |
code_verifier | string | OAuth2 Code Verifier |
refresh_token | string | OAuth2 refresh token returned previously to the clien |
client_assertion_type* | string required | This parameter will be used to identify the way the client will be authenticated. In this API, it will be JWT bearer. |
client_assertion* | string required | The value of the client assertion is a signed JWT. Mandating token encryption is determined during client registration along with signing and encryption keys and algorithms. |
scope | string | OAuth2 token requested scope according to RFC6749 |
auth_req_id | string | This is a unique identifier to identify the authentication request made by the Client(required when generating the access token). |
Response Schema
Element | Type | Description |
---|---|---|
access_token* | structure (required) | example:eyJhbGciOiJQUzI1NiIsInR5cCIgOir05bgN1FctdrZ--TLlGqL4cWkGw The access token issued by the authorization server. |
token_type | string (optional) | example: Bearer The type of the token. |
expires_in* | integer (required) | example:3600 The lifetime in seconds of the access token. |
refresh_expires_in | integer (optional) | example:2488965 The lifetime in seconds of the refresh token. |
refresh_token | structure (optional) | example:jAifSwic2NvcGUiOiJvcmMWYCg4gL5RATCmE The refresh token, which can be used to obtain new access tokens using the same authorization grant. |
id_token | string (optional) | example:MY4mEx0pr6GDnQUO9lbdspP2SVIGrH2ly1wqy5zLfoXaucw ID Token with basic PSU user claims. |
not-before-policy | string (optional) | example:1685384552 |
scope | string (optional) | example: accounts openid The socpes granted by PSU to client |
session_state | string (required) | example: 09a56dad-81c5-4aba-8a55-d5893ea46e95 Session state (identifier) |
Errors
HTTP code | Error | Description |
---|---|---|
400 | Bad request | |
401 | Unauthorized | |
403 | Forbidden | |
405 | Method not allowed | |
406 | Not Acceptable | |
429 | Too many requests | |
500 | Internal server error |
Successful Operation
{
"access_token": "eyJhbGciOiJQUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSUjVWLUNGMkpnX3BPR1JNM1RmRVU5XzBXYjdLZVhfaC1WWld6M3V4TXRFIn0.eyJleHAiOjE2ODc4NjE0NzcsImlhdCI6MTY4NzI1NjY3NywiYXV0aF90aW1lIjoxNjg3MjU2NjYyLCJqdGkiOiJmYWI2OTA5NS01Y2E3LTQzZjMtODBiYy1hNDU4NzI5MmZjNTkiLCJpc3MiOiJodHRwczovL3NpdC5hdXRoLmFscmFqaGliYW5rLmNvbS5zYS9hdXRoL3JlYWxtcy90c3Atb2IiLCJzdWIiOiIxY2NiYWI3YS02YmZlLTQ3NTQtYWIwMi0xNWM0ZjdmY2FmMjIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiIyYzIwNTNjYWU4OTgyYmNhOGMwOWM0NTdkZjMxNGJhZiIsIm5vbmNlIjoiMTY4NzI1NjQ1NDk0OTAwIiwic2Vzc2lvbl9zdGF0ZSI6IjhlZWMxMDFkLWIxZGMtNDZhNS1hYjY5LTMxZjIxMzNkNmYyMCIsImFjciI6IjEiLCJjbmYiOnsieDV0I1MyNTYiOiJKeThOdDZSOFk1SmtleE9iY2c4Ml9SY2g1Rndhdk9vVGJQY1l2NXBTRVpVIn0sInNjb3BlIjoib3BlbmlkIG9mZmxpbmVfYWNjZXNzIiwic2lkIjoiOGVlYzEwMWQtYjFkYy00NmE1LWFiNjktMzFmMjEzM2Q2ZjIwIn0.iUiAoB7Vnu0tJt0iQ4RyBo93KkqqZbGXGprN1pTAz2HZjg-inUOEyUnxO20LXROFnxmPxyR-KSoAleT7HdgXl3yG-lKpOgVZfedRLoGGX9MeZWCO9enbolNcSkm7kYQr_bbFpeOigmPNp-BEO_nT8n0Dftj34g3spJxv_YPTKO3mQM5xhUqFxj96-XRCwkCvUR2mWVI75TJHG24EsOiv8zRUtJk59V81FJfOnruCRsdL9823FBYnGh-IzJYe12v4WgHR5hU8XwJVMOLRduRU6F2zeiUp10H1dgZhoSSRvMnZ9FBxByM2UUscYk5t0Z_qUvKCDSXBZKI1GqCJLKQCYg",
"expires_in": 604800,
"refresh_expires_in": 2591985,
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyZmNjMTY1MS1lYjQzLTQ0ZmQtYmE1Yi00N2ZhMmI5ZGE1MzMifQ.eyJleHAiOjE2ODk4NDg2NjIsImlhdCI6MTY4NzI1NjY3NywianRpIjoiZDJkNzgwYWYtZTVlNC00ZTc2LWIzOGYtMDQyYWI0MzljODcwIiwiaXNzIjoiaHR0cHM6Ly9zaXQuYXV0aC5hbHJhamhpYmFuay5jb20uc2EvYXV0aC9yZWFsbXMvdHNwLW9iIiwiYXVkIjoiaHR0cHM6Ly9zaXQuYXV0aC5hbHJhamhpYmFuay5jb20uc2EvYXV0aC9yZWFsbXMvdHNwLW9iIiwic3ViIjoiMWNjYmFiN2EtNmJmZS00NzU0LWFiMDItMTVjNGY3ZmNhZjIyIiwidHlwIjoiT2ZmbGluZSIsImF6cCI6IjJjMjA1M2NhZTg5ODJiY2E4YzA5YzQ1N2RmMzE0YmFmIiwibm9uY2UiOiIxNjg3MjU2NDU0OTQ5MDAiLCJzZXNzaW9uX3N0YXRlIjoiOGVlYzEwMWQtYjFkYy00NmE1LWFiNjktMzFmMjEzM2Q2ZjIwIiwiY25mIjp7Ing1dCNTMjU2IjoiSnk4TnQ2UjhZNUprZXhPYmNnODJfUmNoNUZ3YXZPb1RiUGNZdjVwU0VaVSJ9LCJzY29wZSI6Im9wZW5pZCBvZmZsaW5lX2FjY2VzcyIsInNpZCI6IjhlZWMxMDFkLWIxZGMtNDZhNS1hYjY5LTMxZjIxMzNkNmYyMCJ9._rfiEVQ1j1rYKjst2_F6rDzXfqeLbx4W9v_t138Igf8",
"token_type": "Bearer",
"id_token": "eyJhbGciOiJQUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSUjVWLUNGMkpnX3BPR1JNM1RmRVU5XzBXYjdLZVhfaC1WWld6M3V4TXRFIn0.eyJleHAiOjE2ODc4NjE0NzcsImlhdCI6MTY4NzI1NjY3NywiYXV0aF90aW1lIjoxNjg3MjU2NjYyLCJqdGkiOiJkYmM1MTFiMC00OTQyLTQ3ZDktODM1YS0yMjhkZWQ0ZDUyMzMiLCJpc3MiOiJodHRwczovL3NpdC5hdXRoLmFscmFqaGliYW5rLmNvbS5zYS9hdXRoL3JlYWxtcy90c3Atb2IiLCJhdWQiOiIyYzIwNTNjYWU4OTgyYmNhOGMwOWM0NTdkZjMxNGJhZiIsInN1YiI6IjFjY2JhYjdhLTZiZmUtNDc1NC1hYjAyLTE1YzRmN2ZjYWYyMiIsInR5cCI6IklEIiwiYXpwIjoiMmMyMDUzY2FlODk4MmJjYThjMDljNDU3ZGYzMTRiYWYiLCJub25jZSI6IjE2ODcyNTY0NTQ5NDkwMCIsInNlc3Npb25fc3RhdGUiOiI4ZWVjMTAxZC1iMWRjLTQ2YTUtYWI2OS0zMWYyMTMzZDZmMjAiLCJhdF9oYXNoIjoiTE50eFhxdktFejAxcGxER2JodGVsdyIsImFjciI6IjEiLCJzaWQiOiI4ZWVjMTAxZC1iMWRjLTQ2YTUtYWI2OS0zMWYyMTMzZDZmMjAifQ.DSOWB5qlpsTUQdcYHxBt_sKRf-sXHRnzo-TPvN3r8eLjsT-Pn9nAwDi6Vi1nDmAZMzqWjOaK4X-Cp7PzvTAP5-nBHfND4daYWxkUzV761VTsaRjjDbnf2pLxtuWCba5ivtzqc55Mb_qSxxTWQwyYHO6U3B3d1Arzi45E_Y8SKSlyiX13o9QQTa_3_UFDvTMwhCd6JD-zkUiZ6ugEA-vh9hEfQ04dySSF2UCyrHktDaj-wEUfVPjQCwzMvqSYx2PTSm2iYpKc4mxUzw_iseAUE2ESjWJL3ztpUGeJIZK3yW0QN1ja5BpqQ_M-ALh5tczYjlz5jy5DejqkYGdfr1Ho6Q",
"not-before-policy": 1685384552,
"session_state": "8eec101d-b1dc-46a5-ab69-31f2133d6f20",
"scope": "openid offline_access"
}
Error
{
"error": "invalid_request",
"error_description": "Authentication failed."
}
Account Information APIs
Gaining the access to a variety of Open Banking account information APIs, allowing Third Party Providers (TPPs) to give consumers with a full view of their money across all of their current accounts following SAMA Open Banking KSA regulations regardless of bank format. In other meaning, links Bank accounts using Alrajhi Bank Gateway to obtain full access to various accounts and transactions details.
Explore our API Products
Account Access Consents
TPP can utilize the Account Access Consents API to request PASP to establish a new account-access-consent resource, receive the status of the account-access-consent resource, or remove the account-access-consent resource
Description | Endpoint |
---|---|
Create Account Access Consents | /account-access-consents |
Retrieve Account Access Consents | /account-access-consents/{ConsentId} |
patch Consent | /account-access-consents/{ConsentId} |
Create Account Access Consents
/account-access-consents
enables you to have your users initiate the account linking process by creating an account.
The API should be called from your backend/server and it returns a connect url, which starts the consent journey for an end-user.
Request(Headers-parameters)
Header Key | Type | Header Description |
---|---|---|
authorization* | string (required) | An authorization Token as per |
x-fapi-auth-date | string (optional) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string (optional) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string (optional) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string (optional) | Indicates the user-agent that the PSU is using. |
Request Body
{
"Data": {
"Permissions": [
"ReadAccountsBasic",
"ReadAccountsDetail",
"ReadBalances",
"ReadBeneficiariesBasic",
"ReadStandingOrdersBasic",
"ReadDirectDebits",
"ReadScheduledPaymentsBasic",
"ReadScheduledPaymentsDetail",
"ReadTransactionsCredits",
"ReadTransactionsBasic",
"ReadTransactionsDetail",
"ReadPartyPSU",
"ReadPartyPSUIdentity",
"ReadParty"
],
"ExpirationDateTime": "2023-06-30T13:40:00+03:00",
"TransactionFromDateTime": "2022-03-31T09:38:59Z",
"TransactionToDateTime": "2024-03-31T09:38:59Z",
"AccountType": [
"KSAOB.Retail"
],
"AccountSubType": [
"CurrentAccount"
],
"OnBehalfOf": {
"TradingName": "Acme Accounting Trading Name",
"LegalName": "Acme Accounting Legal Name",
"IdentifierType": "Other",
"Identifier": "abcd1234"
},
"Purpose": [
"Account Aggregation"
]
},
"Subscription": {
"Webhook": {
"Url": "https://api.tpp.com/webhook/callbackUrl",
"IsActive": false
}
}
}
Response Http codes
Code | Description |
---|---|
201 | Successful Operation (Account Access Consents Created) |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
415 | Unsupported Media Type |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
OBConsentPermissions* | array[ ] (required) | Specifies the Open Banking account access data types. This is a list of the data groups being consented by the PSU, and requested for authorization with the PASP. |
ExpirationDateTime | string($date-time) | Specified date and time the permissions will expire. If this is not populated, the permissions will be open ended.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
TransactionFromDateTime | string($date-time) | Specified start date and time for the transaction query period. If this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
TransactionToDateTime | string($date-time) | Specified end date and time for the transaction query period. If this is not populated, the end date will be open ended, and data will be returned to the latest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
AccountType | array[2](optional) | Specifies the type of account (Retail or Corporate). |
AccountSubType | array[ ] | structure is:OBExternalAccountSubTypeCode Specifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other |
OnBehalfOf | array[ ](optional) | On Behalf Of
|
Purpose | array[9] | structure is: OBExternalAccountSubTypeCode [ Account Aggregation, Personal Finance Manager, Electronic Verification, E-Statement, Credit Assessment, Tax Filing, Enterprise Financial Management, Letter Of Guarantee, Other ] |
Subscription | structure | |
Webhook* | array[ ] | A Webhook Schema
|
Successful Operation
{
"Data": {
"ConsentId": "385445735569443680314337704613",
"CreationDateTime": "2023-06-20T09:04:50Z",
"Status": "AwaitingAuthorization",
"StatusUpdateDateTime": "2023-06-20T09:04:50Z",
"Permissions": [
"ReadAccountsBasic",
"ReadAccountsDetail",
"ReadBalances",
"ReadBeneficiariesBasic",
"ReadStandingOrdersBasic",
"ReadDirectDebits",
"ReadScheduledPaymentsBasic",
"ReadScheduledPaymentsDetail",
"ReadTransactionsCredits",
"ReadTransactionsBasic",
"ReadTransactionsDetail",
"ReadPartyPSU",
"ReadPartyPSUIdentity",
"ReadParty"
],
"ExpirationDateTime": "2023-06-30T13:40:00+03:00",
"TransactionFromDateTime": "2022-03-31T09:38:59Z",
"TransactionToDateTime": "2024-03-31T09:38:59Z",
"AccountType": [
"KSAOB.Retail"
],
"AccountSubType": [
"CurrentAccount"
],
"OnBehalfOf": {
"TradingName": "Acme Accounting Trading Name",
"LegalName": "Acme Accounting Legal Name",
"IdentifierType": "Other",
"Identifier": "abcd1234"
},
"Purpose": [
"Account Aggregation"
]
},
"Subscription": {
"Webhook": {
"Url": "https://api.tpp.com/webhook/callbackUrl",
"IsActive": false
}
},
"Links": {
"Self": "https://api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/account-access-consents"
},
"Meta": {}
}
Error
{
"Errors": [
{
"Code": "KSAOB.AccessToken.Unauthorized",
"Message": "Authorization header is required",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "authorization"
}
]
}
Retrieve Account Access Consents
/account-access-consents/{ConsentId}
enables you to retrieve accounts for the user by consent id
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
ConsentId* | string required(path) | ConsentId |
Response Http codes
Code | Description |
---|---|
200 | Account Access Consents Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
ConsentId* | string(1:128) | Unique identification as assigned to identify the account access consent resource. |
CreationDateTime* | string($date-time) | Date and Time at which the resource was created.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Status* | array[5] | Specifies the status of consent resource in code form. [ Authorized, AwaitingAuthorization, Rejected, Revoked, Expired ] |
StatusUpdateDateTime* | string($date-time) | Date and time at which the account resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Permissions* | array[17] | Specifies the Open Banking account access data types. This is a list of the data groups being consented by the PSU, and requested for authorization with the PASP. [ ReadAccountsBasic, ReadAccountsDetail, ReadBalances, ReadParty, ReadPartyPSU, ReadPartyPSUIdentity, ReadBeneficiariesBasic, ReadBeneficiariesDetail, ReadTransactionsBasic, ReadTransactionsDetail, ReadTransactionsCredits, ReadTransactionsDebits, ReadScheduledPaymentsBasic, ReadScheduledPaymentsDetail, ReadDirectDebits, ReadStandingOrdersBasic, ReadStandingOrdersDetail ] |
ExpirationDateTime | string($date-time) | Specified date and time the permissions will expire. If this is not populated, the permissions will be open ended.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
TransactionFromDateTime | string($date-time) | Specified start date and time for the transaction query period. If this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
TransactionToDateTime | string($date-time) | Specified end date and time for the transaction query period. If this is not populated, the end date will be open ended, and data will be returned to the latest available transaction.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
AccountType | array[2](optional) | OBExternalAccountTypeCode Specifies the type of account (Retail or Corporate). |
AccountSubType | array[ ] | Specifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other |
OnBehalfOf | array[ ](optional) | On Behalf Of
|
Purpose | array[9] | [ Account Aggregation, Personal Finance Manager, Electronic Verification, E-Statement, Credit Assessment, Tax Filing, Enterprise Financial Management, Letter Of Guarantee, Other ] |
RevokedBy | array[2] | Specifies the identifier of the revocation. values are:[ KSAOB.PASP, KSAOB.TPP ] |
Subscription | structure | A Webhook Subscription Schema |
Webhook* | array[ ] | A Webhook Schema
|
Links* | structure | Links relevant to the resource |
Self* | string($uri) | A link to the current resource |
Meta* | structure | Meta Data relevant to the payload |
Successful Operation
{
"Data": {
"ConsentId": "385445735569443680314337704613",
"CreationDateTime": "2023-06-20T09:04:50.620+03:00",
"Status": "AwaitingAuthorization",
"StatusUpdateDateTime": "2023-06-20T09:05:12.579+03:00",
"ExpirationDateTime": "2023-06-30T10:40:00.000+03:00",
"TransactionFromDateTime": "2022-03-31T09:38:59.000+03:00",
"TransactionToDateTime": "2024-03-31T09:38:59.000+03:00",
"Permissions": [
"ReadAccountsDetail",
"ReadAccountsBasic",
"ReadBalances",
"ReadBeneficiariesBasic",
"ReadScheduledPaymentsDetail",
"ReadStandingOrdersBasic",
"ReadDirectDebits",
"ReadScheduledPaymentsBasic",
"ReadTransactionsBasic",
"ReadTransactionsDetail",
"ReadTransactionsCredits",
"ReadParty",
"ReadPartyPSU",
"ReadPartyPSUIdentity"
],
"AccountType": [
"KSAOB.Retail"
],
"AccountSubType": [
"CurrentAccount"
],
"OnBehalfOf": {
"TradingName": "Acme Accounting Trading Name",
"LegalName": "Acme Accounting Legal Name"
},
"Purpose": [
"Account Aggregation"
]
},
"Subscription": {
"Webhook": {
"Url": "https://api.tpp.com/webhook/callbackUrl",
"IsActive": false
}
},
"Links": {
"Self": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/account-access-consents/385445735569443680314337704613"
},
"Meta": {}
}
Error
{
"Errors": [
{
"Code": "KSAOB.AccessToken.Unauthorized",
"Message": "Authorization header is required",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "authorization"
}
]
}
Patch Consent
/account-access-consents/{ConsentId}
enables you to update an account access consent Status or webhook subscription
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
ConsentId* | string required(path) | ConsentId |
Request Body
{
"Data": {
"Status": "Revoked"
},
"Subscription": {
"Webhook": {
"Url": "https://api.tpp.com/webhook/callbackUrl",
"IsActive": false
}
}
}
Request Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
Status* | array [1] | The Revoked status must only be set if the current Consent Status is set to either Authorized or AwaitingAuthorization |
Subscription | structure | A Webhook Subscription Schema |
Webhook* | array[ ] | A Webhook Schema
|
Response Http codes
Code | Description |
---|---|
204 | No Content |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
415 | Unsupported Media Type |
429 | Too Many Requests |
500 | Internal Server Error |
Error
{
"Errors": [
{
"Code": "KSAOB.Consent.Invalid",
"Message": "Technical state is not expected",
"Url": "https://portal-www.apic1012.ejada.com"
}
]
}
Accounts APIs
The accounts API is used by a TPP to retrieve full list of accounts and account information that the PSU has authorised to access.
Get all accounts
/accounts
Allows you to retrieve account’s Information..
Request(Headers-parameters)
Header Key | Type | Header Description |
---|---|---|
authorization* | string (required) | An authorization Token |
x-fapi-auth-date | string (optional) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string (optional) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string (optional) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string (optional) | Indicates the user-agent that the PSU is using. |
Response Http codes
Code | Description |
---|---|
200 | Accounts Read. |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
Account* | array[ ] (required) | Unambiguous identification of the account to which credit and debit entries are made.The following fields are optional only for accounts that are switched: •Data.Currency •Data.AccountType •Data.AccountSubType For all other accounts, the fields must be populated by the PASP. |
AccountId* | string(1:40) (required) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). |
AccountHolderName* | string(required) | The Account Holder Name of the Account owner(s) represented at the account level |
AccountHolderShortName | string | The account holder nick name |
Status | Array [ 7 ] | Specifies the status of account resource in code form. [Active]: It means that the account is exist and active. [NotActive]: It means that the account has been not active for 6 to 12 months. [Dormant]: It means that the accounts has been Inactive for 1 to 5 years. [Unclaimed]: It means that the accounts has been Inactive for more than 5 years. [Deceased]: Indicates that the account holder has passed away.[Suspended]: If the account is suspended do to any reason. E.g: SAMA requested the bank to suspend the account for security reason. [Closed]: If the account is closed |
StatusUpdateDateTime | string($date-time) | Date and time at which the account resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Currency | string | Identification of the currency in which the account is held. A code allocated to a currency under an international currency identification scheme |
AccountType | Array [2](required) | Specifies the type of account (Retail or Corporate) |
AccountSubType | string | Specifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other |
Description | string(1:35) | Specifies the description of the account sub-type. |
Nickname | string(1:70) | The nickname of the account, assigned by PSU 1 to provide an additional and easier means of identification of the account at the PASP. |
OpeningDate | string($date-time) | Date on which the account and its related basic services by PASP started to be operational for PSU 1. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
MaturityDate | string($date-time) | Fixed Term Loan Account MaturityDate is the date on which the debt of an account must be paid in full. On this date, the principal amount of the debt is fully paid, so no further interest expense accrues. Maturity date of the account. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
AccountIdentifiers | structure | Provides the details to identify an account. |
IdentificationType* | Array[2](required) | Name of the identification scheme for the account. Encoded with allowable values published in an external list. |
Identification* | string(1:256)(required) | Identification for the account assigned by the PASP based on the Account Scheme Name. This identification is known by the PSU 1 account owner. For IBAN, refer to the ISO Standard 13616. For MASKEDPAN, masked details as follows: - First 4 numbers are exposed, last 4 numbers are exposed, everyting else is masked with an asterix |
Name | sting (1:350) | The account name is the name or names of the PSU 1 account owner(s) represented at an account level, as displayed by the PASP's online channels. Note: The account name is not the product name or the nickname of the account. |
Servicer | structure (required) | Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account. |
IdentificationType* | Array [2] (required) | •accounts resource:The name of the identification scheme for the PASP as the account services provider. Encoded with allowable value as published in an external list. •beneficiaries resource:Refers to the Financial Institution that manages the account on behalf of the Beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. •scheduled-payments resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. •standing-orders resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. •transactions resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. |
Identification* | string(1:35)(required) | •accounts resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. •beneficiaries resource:Unique and unambiguous identification of the Creditor Agency as the servicing institution of the Beneficiary. •scheduled-payments resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. •standing-orders resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services.. •transactions resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. |
Links* | structure (required) | Links relevant to the resource |
Self* | string($uri) (required) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the Prev page in a paginated result set |
Next | string($uri) | A link to the Next page in a paginated result set |
Last | string($uri) | A link to the Last page in a paginated result set |
Meta* | structure (required) | Meta Data relevant to the payload |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"Account": [
{
"AccountId": "CA_0000000001601713308000010006080067493",
"AccountHolderShortName": "محمد حسن",
"Status": "Active",
"StatusUpdateDateTime": "2023-03-21T19:31:37",
"Currency": "SAR",
"AccountType": "KSAOB.Corporate",
"AccountSubType": "CurrentAccount",
"AccountIdentifiers": [
{
"IdentificationType": "KSAOB.IBAN",
"Identification": "SA7080000308608010067493"
},
{
"IdentificationType": "KSAOB.AccountNumber",
"Identification": "308000010006080067493"
}
]
},
{
"AccountId": "CA_0000000003061961204000010006084040848",
"AccountHolderName": "Nagav Rajuo Thogy Garul ",
"AccountHolderShortName": "عشور أسد آية أمين",
"Status": "Active",
"StatusUpdateDateTime": "2023-06-08T16:37:04",
"Currency": "SAR",
"AccountType": "KSAOB.Retail",
"AccountSubType": "CurrentAccount",
"AccountIdentifiers": [
{
"IdentificationType": "KSAOB.IBAN",
"Identification": "SA7180000204608014040848",
"Name": "Nagav Rajuo Thogy Garul "
},
{
"IdentificationType": "KSAOB.AccountNumber",
"Identification": "204000010006084040848",
"Name": "Nagav Rajuo Thogy Garul "
}
]
}
]
},
"Links": {
"Self": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts",
"First": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts",
"Prev": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts?pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.AccessToken.Unauthorized",
"Message": "Authorization header is required",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "authorization"
}
]
}
Get an account Identified by Account ID
/accounts/{AccountId}
Allows you to display account’s Information using the account ID..
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
Response Http codes
Code | Description |
---|---|
200 | Account ID Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
AccountId* | string(1:40) (required) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). |
Account* | array[ ] (required) | Unambiguous identification of the account to which credit and debit entries are made. The following fields are optional only for accounts that are switched: Data.Currency,Data.AccountType,Data.AccountSubType ,For all other accounts, the fields must be populated by the PASP. |
AccountHolderName* | string(required) | The Account Holder Name of the Account owner(s) represented at the account level |
AccountHolderShortName | string | The account holder nick name |
Status | Array [ 7 ] | Specifies the status of account resource in code form. [Active]: It means that the account is exist and active. [NotActive]: It means that the account has been not active for 6 to 12 months. [Dormant]: It means that the accounts has been Inactive for 1 to 5 years.[Unclaimed]: It means that the accounts has been Inactive for more than 5 years.[Deceased]: Indicates that the account holder has passed away.[Suspended]: If the account is suspended do to any reason. E.g: SAMA requested the bank to suspend the account for security reason. [Closed]: If the account is closed |
StatusUpdateDateTime | string($date-time) | Date and time at which the account resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Currency | string | Identification of the currency in which the account is held. A code allocated to a currency under an international currency identification scheme |
AccountType | Array [2](required) | Specifies the type of account (Retail or Corporate) |
AccountSubType | string | Specifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other |
Description | string(1:35) | Specifies the description of the account sub-type. |
Nickname | string(1:70) | The nickname of the account, assigned by PSU 1 to provide an additional and easier means of identification of the account at the PASP. |
OpeningDate | string($date-time) | Date on which the account and its related basic services by PASP started to be operational for PSU 1. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
MaturityDate | string($date-time) | Fixed Term Loan Account MaturityDate is the date on which the debt of an account must be paid in full. On this date, the principal amount of the debt is fully paid, so no further interest expense accrues.Fixed Term Savings Account MaturityDate is the date on which the savings mature and the balance can be withdrawn by the PSU without penalty, All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
AccountIdentifiers | structure | Provides the details to identify an account. |
IdentificationType* | Array [2] (required) | Name of the identification scheme for the account. Encoded with allowable values published in an external list. |
Identification* | string(1:256)(required) | Identification for the account assigned by the PASP based on the Account Scheme Name. This identification is known by the PSU 1 account owner. For IBAN, refer to the ISO Standard 13616. For MASKEDPAN, masked details as follows: - First 4 numbers are exposed, last 4 numbers are exposed, everyting else is masked with an asterix |
Name | sting (1:350) | The account name is the name or names of the PSU 1 account owner(s) represented at an account level, as displayed by the PASP's online channels. Note: The account name is not the product name or the nickname of the account. |
Servicer | structure (required) | Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account. |
IdentificationType* | Array [2] (required) | •accounts resource:The name of the identification scheme for the PASP as the account services provider. Encoded with allowable value as published in an external list. •beneficiaries resource:Refers to the Financial Institution that manages the account on behalf of the Beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. •scheduled-payments resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. •standing-orders resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. •transactions resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. |
Identification* | string(1:35)(required) | •accounts resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. •beneficiaries resource:Unique and unambiguous identification of the Creditor Agency as the servicing institution of the Beneficiary. •scheduled-payments resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. •standing-orders resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services.. •transactions resource:Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. |
Links* | structure (required) | Links relevant to the resource |
Self* | string($uri) (required) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the Prev page in a paginated result set |
Next | string($uri) | A link to the Next page in a paginated result set |
Last | string($uri) | A link to the Last page in a paginated result set |
Meta* | structure (required) | Meta Data relevant to the payload |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "CA_0000000001601713308000010006080067493",
"Account": {
"AccountHolderShortName": "محمد حسن",
"Status": "Active",
"StatusUpdateDateTime": "2023-03-21T19:31:37",
"Currency": "SAR",
"AccountType": "KSAOB.Corporate",
"AccountSubType": "CurrentAccount",
"AccountIdentifiers": [
{
"IdentificationType": "KSAOB.IBAN",
"Identification": "SA7080000308608010067493"
},
{
"IdentificationType": "KSAOB.AccountNumber",
"Identification": "308000010006080067493"
}
]
}
},
"Links": {
"Self": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000001601713308000010006080067493",
"First": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000001601713308000010006080067493",
"Last": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000001601713308000010006080067493?pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.AccessToken.Unauthorized",
"Message": "Authorization header is required",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "authorization"
}
]
}
Balances
The accounts API is used by TPP to retrieve full list of accounts and account information that the PSU has authorised to access.
Get balances
/accounts/{AccountId}/balances
Allows you to display account balances in bulk or individually.
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token. |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
Response Http codes
Code | Description |
---|---|
200 | Balances Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
AccountId* | string(1:40) (required) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). |
Balance* | array[ ](required) | Set of elements used to define the balance details. |
CreditDebitIndicator* | Array [2](required) | Indicates whether the balance of the account is a credit or a debit balance.Encoded with allowable values:'Credit','Debit' Usage: A zero balance is considered to be a credit balance. |
Type* | Array[13](required) | The type of balance for the account.Encoded with allowable values of: •ClosingAvailable- end of day balance specifying the amount available to PSU 1 to withdraw or use. •ClosingBooked - end of day balance including value of payments for cheques or payments which have not been cleared yet. •ClosingCleared - end of day balance including value of payments for cheques or payments which have been cleared. •Expected - intra day balance including value of payments for cheques or payments which have been cleared. •ForwardAvailable - intraday balance specifying the amount available to PSU 1 to withdraw or use considering forward dated payments or other intraday payments or cheques that will be clearing to the account. •InterimAvailable - intraday balance specifying the amount available to PSU 1 to withdraw or use (most probably real-time.'InterimBooked' - intraday balance including value of payments for cheques or payments which have not been cleared yet. •InterimCleared - intraday balance including value of payments for cheques or payments which have been cleared (probably real-time). 'OpeningAvailable' - start of day balance specifying the amount available to PSU 1 to withdraw or use. •OpeningBooked - start of day balance including value of payments for cheques or payments which have not been cleared yet. 'OpeningCleared' - start of day balance including value of payments for cheques or payments which have been cleared. •PreviouslyClosedBooked -TBC. Note: PASPs support different types for presenting account balance, so this list is used to support different PASP systmes in KSA. |
DateTime | string($date-time) | Date and time at which the account resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
Amount* | structure(required) | Amount of money of the cash balance. |
Amount* | string(required) | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217 |
Currency* | string(required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme example: SAR |
CreditLine | array[ ] | Set of elements used to provide details on the credit line. |
Included* | boolean(required) | Boolean flag to Indicate whether or not a credit line is included in the balance of the account.Usage:If not present,credit line is not included in the balance amount of the account. |
Type* | Array [5] | Type of credit line provided to the account. Encoded with allowable values of:Available,Credit, Emergency,Pre-Agreed,Temporary.Note:PASPs support different types of credit lines on accounts, so this list is used to support different PASP systmes in KSA. |
Amount* | structure | Amount of money of the credit line. |
Amount* | string(required) | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217 |
Currency* | string(required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme example: SAR |
Links* | structure (required) | Links relevant to the resource |
Self* | string($uri) (required) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the Prev page in a paginated result set |
Next | string($uri) | A link to the Next page in a paginated result set |
Last | string($uri) | A link to the Last page in a paginated result set |
Meta* | structure (required) | Meta Data relevant to the resource |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "CA_0000000003099115187000010006080124449",
"Balance": [
{
"CreditDebitIndicator": "KSAOB.Credit",
"Type": "KSAOB.InterimAvailable",
"DateTime": "2023-03-21T19:31:32",
"Amount": {
"Amount": "1000000",
"Currency": "SAR"
}
},
{
"CreditDebitIndicator": "KSAOB.Credit",
"Type": "KSAOB.InterimBooked",
"DateTime": "2023-03-21T19:31:32",
"Amount": {
"Amount": "1000000",
"Currency": "SAR"
}
},
{
"CreditDebitIndicator": "KSAOB.Credit",
"Type": "KSAOB.ClosingBooked",
"DateTime": "2023-03-21T19:31:32",
"Amount": {
"Amount": "1000000",
"Currency": "SAR"
}
}
]
},
"Links": {
"Self": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003099115187000010006080124449/balances",
"First": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003099115187000010006080124449/balances",
"Last": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003099115187000010006080124449/balances?pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.GenericError",
"Message": "Account is not Authorized",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "request.parameters.AccountId"
}
]
}
Beneficiaries
The beneficiaries’ API is used by TPP to retrieve the account beneficiary’s information for a individual AccountId or to retrieve the beneficiary’s information in bulk for account(s) that the PSU has authorised to access.
Get beneficiaries
/accounts/{AccountId}/beneficiaries
Allows you to display beneficiaries account Information
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
Response Http codes
Code | Description |
---|---|
200 | Beneficiaries Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
AccountId* | string(1:40)(required) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1) |
Beneficiary* | array[ ](required) | Beneficiaries for a specific AccountId |
BeneficiaryId* | string(1:40)(required) | A unique and immutable identifier used to identify the beneficiary resource. This identifier has no meaning to the account owner. |
BeneficiaryType* | Array [2](required) | Specifies the Beneficiary Type. Encoded with allowable values of:'Activated'-Beneficiary has been added to the beneficiary list using SCA.'NotActivated' - Beneficiary has been added to the beneficiary list without SCA |
AccountHolderName* | string(required) | The Account Holder Name is the name or names of the Beneficiary account owner(s) represented at the account level, as displayed by the Creditor Agent's online channels and as provided by the Beneficiary to the PSU 1 when adding the Beneficiary in the Beneficiary list |
AccountHolderShortName | string | The Beneficiary account holder nick name |
Reference | string(1:35) | Unique reference in the context of the creditor, provided by the creditor to the PSU1 (Debtor), to unambiguously refer to the payment transaction. If available, the initiating party provides this reference in the structured remittance information, to enable reconciliation by the Creditor upon receipt of the amount of money. This field is populated by the PSU 1 who is the initiating party of the payment .Field is free format text |
SupplementaryData | structure | Additional information that can not be captured in the structured fields and/or any other specific block. |
CreditorAgent | structure | Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account. This is the servicer of the beneficiary account. |
IdentificationType* | Array [ 2 ] (required) | •accounts resource:The name of the identification scheme for the PASP as the account services provider. Encoded with allowable value as published in an external list. •beneficiaries resource:Refers to the Financial Institution that manages the account on behalf of the Beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. •scheduled-payments resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. •standing-orders resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. •transactions resource:Refers to the identification scheme for uniquely identifying the Creditor Agent. |
Identification* | string(1:35)(required) | Unique and unambiguous identification of the Creditor Agency as the servicing institution of the Beneficiary. |
Name | string(1:140) | •Beneficiary:Name by which an agent is known and which is usually used to identify that agent •Creditor agent:Name by which the Financial institution(FI) which is the creditor is known and which is usually used to identify that FI. •DebtorAgent:Name by which an financial institution of the debtor is known and which is usually used to identify that financial institution. |
PostalAddress | structure | Postal Address specifies Information that locate and identify a specific address, as defined by postal services. |
AddressType | array[8] | Postal Address type specifies the the nature of the postal address. |
ShortAddress | string | 8character Unique alphanumeric Code. |
BuildingNumber | string (1:4) | Number that identifies the position of a building on a street. |
UnitNumber | number | This is the unit number of the business premises or dwelling. |
StreetName | string (1:70) | Name of a street or thoroughfare. |
SecondaryNumber | string | Secondary Number, if required |
District | string (1:35) | Identifies the District of a City |
PostalCode | string (1:16) | Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail. |
City | string (1:35) | Identifies the City of a Country |
Country | string (1:35) | Identifies a county either by full name or country code |
CreditorAccount | structure | Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account. This is the servicer of the beneficiary account. |
IdentificationType* | Array [ 2 ] (required) | Name of the identification scheme for the account. Encoded with allowable values published in an external list. |
Identification* | string(1:256)(required) | Identification for the account assigned by the PASP based on the Account Scheme Name. This identification is known by the PSU 1 account owner. For IBAN, refer to the ISO Standard 13616. For MASKEDPAN, masked details as follows: - First 4 numbers are exposed, last 4 numbers are exposed, everyting else is masked with an asterix |
Links* | structure (required) | Links relevant to the resource |
Self* | string($uri) (required) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the Prev page in a paginated result set |
Next | string($uri) | A link to the Next page in a paginated result set |
Last | string($uri) | A link to the Last page in a paginated result set |
Meta* | structure (required) | Meta Data relevant to the payload |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "CA_0000000003061961204000010006084040848",
"Beneficiary": [
{
"AccountHolderName": "Ahmed Mohsen Mohamed ",
"AccountHolderShortName": "Ahmed Mohsen",
"BeneficiaryId": "BN_000000000306733361779661",
"BeneficiaryType": "KSAOB.NotActivated"
},
{
"AccountHolderName": "Ahmed Younes KUMAR ",
"AccountHolderShortName": "Ahmed Younes",
"BeneficiaryId": "BN_0000000003067333617796610",
"BeneficiaryType": "KSAOB.NotActivated"
},
{
"AccountHolderName": "Mohamed Ali GURU",
"AccountHolderShortName": "Mohamed Ali",
"BeneficiaryId": "BN_00000000030673336177966100",
"BeneficiaryType": "KSAOB.NotActivated"
},
{
"AccountHolderName": "GURU KUMAR ",
"AccountHolderShortName": "GURU KUMAR",
"BeneficiaryId": "BN_00000000030673336177966115",
"BeneficiaryType": "KSAOB.NotActivated"
},
]
},
"Links": {
"Self": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003061961204000010006084040848/beneficiaries",
"First": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003061961204000010006084040848/beneficiaries",
"Last": "https://sit.api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003061961204000010006084040848/beneficiaries?pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.GenericError",
"Message": "Account is not Authorized",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "request.parameters.AccountId"
}
]
}
Direct Debits
The direct-debits API is used by a TPP to retrieve the direct debits for an individual account identified by AccountId or to retrieve direct debits for all accounts that the PSU has consented to.
Get Direct Debits
/accounts/{AccountId}/direct-debits
Allows you to retrieve Direct Debits Details for individual or bulk accounts.
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token as per |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
Response Http codes
Code | Description |
---|---|
200 | Direct Debits Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
AccountId* | string (1:40) | title: AccountId A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). |
DirectDebit* | string($date-time) | Account to or from which a cash entry is made.
|
Links* | structure {required) | Links relevant to the resource |
Self* | string($uri) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the previous page in a paginated result set |
Next | string($uri) | A link to the next page in a paginated result set |
Last | string($uri) | A link to the last page in a paginated result set |
Meta* | structure {required) | Meta Data relevant to the payload |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "AA_0000000000000000204608017845128",
"DirectDebit": [
{
"DirectDebitId": "G4030180844203",
"MandateIdentification": "SOAPUI",
"DirectDebitStatusCode": "Active",
"Name": "Dar Al Tamleek",
"Frequency": "KSAOB.Monthly",
"PreviousPaymentDateTime": "T00:00:00.000Z"
}
]
},
"Links": {
"Self": "https://api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/AA_0000000000000000204608017845128/direct-debits",
"First": "https://api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/AA_0000000000000000204608017845128/direct-debits",
"Last": "https://api.alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/AA_0000000000000000204608017845128/direct-debits?pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.AccessToken.Unauthorized",
"Message": "Authorization header is required",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "authorization"
}
]
}
Parties
The parties API is used by a TPP to retrieve the details of the account owner(s)/holder(s) and operator(s) for a specific account identified by AccountId.
Get Parties for an Account
/accounts/{AccountId}/parties
Allows you to retrieve the account party Information whether the account party is the account’s owner(s)/holder(s) or operator(s).
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
Response Http codes
Code | Description |
---|---|
200 | Parties Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
AccountId* | string (1:40) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). |
Party* | structure (required) | Party Identity Assurance (Response) Schema Based on the OpenID Connect for Identity Assurance 1.0 Specification
|
Links* | structure (required) | Links relevant to the resource |
Self* | string($uri) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the previous page in a paginated result set |
Next | string($uri) | A link to the next page in a paginated result set |
Last | string($uri) | A link to the last page in a paginated result set |
Meta* | structure (required) | Meta Data relevant to the payload |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "GC_00000000068753240030082332",
"Party": [
{
"PartyId": "PT_0000000006875324",
"PartyNumber": "0000000006875324",
"PartyType": "KSAOB.Sole",
"AccountRole": "KSAOB.Administrator",
"VerifiedClaims": [
{
"Verification": {
"TrustFramework": "SA_IAM",
"AssuranceLevel": "Medium",
"AssuranceProcess": {
"Policy": "Onboardin",
"AssuranceDetails": [
{
"AssuranceType": "verification",
"AssuranceClassification": "medium_score",
"EvidenceRef": [
{
"Txn": "00001",
"EvidenceMetadata": {
"EvidenceClassification": "medium_score"
}
}
]
}
]
},
"Time": "2023-04-13T15:54:09Z",
"VerificationProcess": "onsite",
"Evidence": [
{
"Time": "2023-04-13T15:54:09Z",
"Type": "document",
"CheckDetails": [
{
"CheckMethod": "onsite",
"Txn": "00001",
"Time": "2023-04-13T15:54:09Z"
}
],
"DocumentDetails": {
"Type": "idcard",
"DocumentNumber": "00001",
"PersonalNumber": "1082490903",
"SerialNumber": "1",
"CalendarType": "KSAOB.IslamicCalendar",
"DateOfIssuance": "1438-07-05T00:00:00+00:00",
"DateOfExpiry": "2026-09-03T00:00:00+00:00",
"Issuer": {
"Name": "وزارة الداخلية ا",
"Address": {
"Formatted": "الرياض",
"Locality": "الرياض",
"Country": "SA"
},
"Jurisdiction": "Saudi",
"CountryCode": "KSA"
}
}
},
{
"Type": "electronic_record",
"Time": "2023-04-13T15:54:09Z",
"CheckDetails": [
{
"CheckMethod": "NAFATH",
"Txn": "00001",
"Time": "2023-04-13T15:54:09Z"
}
],
"Record": {
"Type": "bank_account",
"PersonalNumber": "1082490903",
"CalendarType": "KSAOB.IslamicCalendar",
"CreatedAt": "2008-06-23T00:00:00+00:00",
"DateOfExpiry": "2026-09-03T00:00:00+00:00",
"Source": {
"Name": "وزارة الداخلية ا",
"Address": {
"Formatted": "الرياض",
"Locality": "الرياض",
"Country": "SA"
},
"CountryCode": "KSA"
}
}
}
]
},
"Claims": {
"Sub": "0000000006875324",
"Name": "HOSHAN HAMAD H ALHOSHAN ",
"GivenName": "HOSHAN",
"FamilyName": "ALHOSHAN",
"MiddleName": "HAMAD",
"Email": "alsqar.hh@gmail.com",
"EmailVerified": false,
"Gender": "male",
"BirthDate": "1414-01-02",
"ZoneInfo": "Saudi/Riyadh",
"PhoneNumber": "+966506060823",
"PhoneNumberVerified": true,
"Salutation": "SECONDARY",
"Title": "MR.",
"Nationalities": [
"SAU"
],
"BirthGivenName": "HOSHAN",
"BirthFamilyName": "ALHOSHAN",
"BirthMiddleName": "HAMADH",
"PlaceOfBirth": {
"Country": "SA",
"Region": "3",
"Locality": "0"
},
"UpdatedAt": 1681390449,
"Address": {
"Formatted": "سناكم نبا المنار 3",
"StreetAddress": "سناكم نبا",
"Locality": "المنار",
"Region": "3",
"PostalCode": "14221",
"Country": "SA"
}
}
}
]
}
]
},
"Links": {
"Self": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/GC_00000000068753240030082332/parties?OBPermissionsList=WyJSZWFkUGFydHkiXQ==",
"First": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/GC_00000000068753240030082332/parties?OBPermissionsList=WyJSZWFkUGFydHkiXQ==",
"Last": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/GC_00000000068753240030082332/parties?OBPermissionsList=WyJSZWFkUGFydHkiXQ==&pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.GenericError",
"Message": "Account is not Authorized",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "request.parameters.AccountId"
}
]
}
Get current PSU Information
/parties
Allows you to retrieve the current PSU Information.
Request(Headers-parameters)
Header Key | type | Header Description |
---|---|---|
authorization* | string (required) | An authorization Token as per |
x-fapi-auth-date | string (optional) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string (optional) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string (optional) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string (optional) | Indicates the user-agent that the PSU is using. |
Successful Operation
{
"Data": {
"Party": [
{
"PartyId": "PT_0000000006875324",
"PartyNumber": "0000000006875324",
"PartyType": "KSAOB.Sole",
"AccountRole": "KSAOB.Administrator",
"VerifiedClaims": [
{
"Verification": {
"TrustFramework": "SA_IAM",
"AssuranceLevel": "Medium",
"AssuranceProcess": {
"Policy": "Onboardin",
"AssuranceDetails": [
{
"AssuranceType": "verification",
"AssuranceClassification": "medium_score",
"EvidenceRef": [
{
"Txn": "00001",
"EvidenceMetadata": {
"EvidenceClassification": "medium_score"
}
}
]
}
]
},
"Time": "2023-04-13T04:03:18Z",
"VerificationProcess": "onsite",
"Evidence": [
{
"Time": "2023-04-13T04:03:18Z",
"Type": "document",
"CheckDetails": [
{
"CheckMethod": "onsite",
"Txn": "00001",
"Time": "2023-04-13T04:03:18Z"
}
],
"DocumentDetails": {
"Type": "idcard",
"DocumentNumber": "00001",
"PersonalNumber": "1082490903",
"SerialNumber": "1",
"CalendarType": "KSAOB.IslamicCalendar",
"DateOfIssuance": "1438-07-05T00:00:00+00:00",
"DateOfExpiry": "2026-09-03T00:00:00+00:00",
"Issuer": {
"Name": "وزارة الداخلية ا",
"Address": {
"Formatted": "الرياض",
"Locality": "الرياض",
"Country": "SA"
},
"Jurisdiction": "Saudi",
"CountryCode": "KSA"
}
}
},
{
"Type": "electronic_record",
"Time": "2023-04-13T04:03:18Z",
"CheckDetails": [
{
"CheckMethod": "NAFATH",
"Txn": "00001",
"Time": "2023-04-13T04:03:18Z"
}
],
"Record": {
"Type": "bank_account",
"PersonalNumber": "1082490903",
"CalendarType": "KSAOB.IslamicCalendar",
"CreatedAt": "2008-06-23T00:00:00+00:00",
"DateOfExpiry": "2026-09-03T00:00:00+00:00",
"Source": {
"Name": "وزارة الداخلية ا",
"Address": {
"Formatted": "الرياض",
"Locality": "الرياض",
"Country": "SA"
},
"CountryCode": "KSA"
}
}
}
]
},
"Claims": {
"Sub": "0000000006875324",
"Name": "HOSHAN HAMAD H ALHOSHAN ",
"GivenName": "HOSHAN",
"FamilyName": "ALHOSHAN",
"MiddleName": "HAMAD",
"Email": "alsqar.hh@gmail.com",
"EmailVerified": false,
"Gender": "male",
"BirthDate": "1414-01-02",
"ZoneInfo": "Saudi/Riyadh",
"PhoneNumber": "+966506060823",
"PhoneNumberVerified": true,
"Salutation": "SECONDARY",
"Title": "MR.",
"Nationalities": [
"SAU"
],
"BirthGivenName": "HOSHAN",
"BirthFamilyName": "ALHOSHAN",
"BirthMiddleName": "HAMADH",
"PlaceOfBirth": {
"Country": "SA",
"Region": "3",
"Locality": "0"
},
"UpdatedAt": 1681347798,
"Address": {
"Formatted": "سناكم نبا المنار 3",
"StreetAddress": "سناكم نبا",
"Locality": "المنار",
"Region": "3",
"PostalCode": "14221",
"Country": "SA"
}
}
}
]
}
]
},
"Links": {
"Self": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/parties?OBPermissionsList=WyJSZWFkUGFydHkiXQ==",
"First": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/parties?OBPermissionsList=WyJSZWFkUGFydHkiXQ==",
"Last": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/parties?OBPermissionsList=WyJSZWFkUGFydHkiXQ==&pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.GenericError",
"Message": "Account is not Authorized",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "request.parameters.AccountId"
}
]
}
Scheduled Payments
The scheduled-payments API is used by a TPP to retrieve the scheduled payments for a specific account identified by AccountId or to retrieve scheduled payments for all accounts that the PSU has consented to.
Get Scheduled Payments
/accounts/{AccountId}/scheduled-payments
Allows you to get Scheduled Payments information in bulk or individual behaviour.
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
Response Http codes
Code | Description |
---|---|
200 | Scheduled Payments Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
AccountId* | string (required) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). |
ScheduledPayment* | structure (required) | |
ScheduledPaymentId* | string (required) | A unique and immutable identifier produced by the PASP to identify the scheduled payment resource. This identifier has no meaning to the account owner. |
AccountHolderName* | string (required) | The Account Holder Name is the name or names of the Beneficiary account owner(s) represented at the account level, as displayed by the Creditor Agent's online channels and as provided by the Beneficiary to the PSU 1 when adding the Beneficiary in the Beneficiary list. Note, the Account Holder Name is not the product name or the nickname of the account. |
AccountHolderShortName* | string (optional) | The Beneficiary account holder nick name |
ScheduledType* | string (required) | Specifies the type of scheduled payment date provided under ScheduledPaymentDateTime. Encoded with allowable values of: "Arrival" - PSU1 specifies the date for the arrival of funds in the beneficiary (Creditor) account "Execution" - PSU1 specifies the date which the payment needs to be executed from the PSU 1 (Debtor) account |
ScheduledPaymentDateTime* | string (required) | Date and time information related to the scheduled payment (Arrival or Execution) based on the ScheduleType field. An example is below: 2017-04-05T10:43:07+00:00 |
CreditorReference | string (optional) | Unique reference in the context of the creditor, provided by the creditor to the PSU1 (Debtor), to unambiguously refer to the payment transaction. |
DebtorReference* | string (optional) | Reference in the context of the PSU 1 (i.e. the Debtor) to refer to the payment transaction. |
InstructedAmount* | structure (required) | The amount of money that was moved between the PSU 1 (Debtor) and the payment beneficiary (Creditor) by the PASP, before adding any charges from the sending PASP. It is expressed in the currency as ordered by the PSU 1 (i.e. the initiating party of the payment). This amount is transported unchanged through the transaction chain. |
Amount* | string (required) | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217. |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme |
CreditorAgent | structure (required) | Creditor Agent refers to the Financial Institution that manages the account on behalf of the scheduled payment beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account |
IdentificationType* | string (required) | /accounts resource: The name of the identification scheme for the PASP as the account services provider. Encoded with allowable value as published in an external list. /beneficiaries resource: Refers to the Financial Institution that manages the account on behalf of the Beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. /scheduled-payments resource: Refers to the identification scheme for uniquely identifying the Creditor Agent. /standing-orders resource: Refers to the identification scheme for uniquely identifying the Creditor Agent. /transactions resource: Refers to the identification scheme for uniquely identifying the Creditor Agent. Enum: [ KSAOB.BICFI, KSAOB.OTHER ] |
Identification* | string (required) | /scheduled-payments resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. |
CreditorAccount | structure (required) | Provides the details to identify the beneficiary account. |
IdentificationType* | string (required) | OBExternalAccountIdentificationCode Name of the identification scheme for the account. Encoded with allowable values published in an external list . Enum:[ KSAOB.IBAN, KSAOB.MaskedPAN ] |
Identification* | string (required) | minLength: 1 maxLength: 256 Beneficiary account identification. |
Links* | structure (required) | Links relevant to the resource |
Self* | string($uri) (required) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the Prev page in a paginated result set |
Next | string($uri) | A link to the Next page in a paginated result set |
Last | string($uri) | A link to the Last page in a paginated result set |
Meta* | structure (required) | Meta Data relevant to the payload |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "string",
"ScheduledPayment": [
{
"ScheduledPaymentId": "string",
"AccountHolderName": "string",
"AccountHolderShortName": "string",
"ScheduledType": "KSAOB.Arrival",
"ScheduledPaymentDateTime": "2023-06-21T13:57:48.013Z",
"CreditorReference": "string",
"DebtorReference": "string",
"InstructedAmount": {
"Amount": "77383.436",
"Currency": "SAR"
},
"CreditorAgent": {
"IdentificationType": "KSAOB.BICFI",
"Identification": "string"
},
"CreditorAccount": [
{
"IdentificationType": "KSAOB.IBAN",
"Identification": "string"
}
]
}
]
},
"Links": {
"Self": "string",
"First": "string",
"Prev": "string",
"Next": "string",
"Last": "string"
},
"Meta": {
"TotalPages": 0
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.AccessToken.Unauthorized",
"Message": "Authorization header is required",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "authorization"
}
]
}
Standing Orders
The standing-orders API is used to retrieve the standing orders for an Individual Account using the Account ID or to retrieve the standing orders in bulk for all accounts.
Get Standing Orders
/accounts/{AccountId}/standing-orders
Allows you to display Standing Orders information.
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
Response Http codes
Code | Description |
---|---|
200 | Standing Orders Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description |
---|---|---|
Data* | structure (required) | |
AccountId* | string (required) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). |
StandingOrder* | structure (required) | Standing Orders for a specific AccountId |
StandingOrderId* | string (required) | A unique and immutable identifier produced by the PASP to identify the account resource. This identifier has no meaning to the account owner. |
AccountHolderName* | string (required) | The Account Holder Name is the name or names of the Beneficiary account owner(s) represented at the account level, as displayed by the Creditor Agent's online channels and as provided by the Beneficiary to the PSU 1 when adding the Beneficiary in the Beneficiary list. Note, the Account Holder Name is not the product name or the nickname of the account. |
AccountHolderShortName* | string (optional) | The Beneficiary account holder nick name |
StandingOrderType* | Array[5](required) | Specifies The type of Standing Order. |
Frequency | string (required) | The frequency that the Standing Order payments are executed from the PSU1s account |
CreditorReference* | string (optional) | Unique reference in the context of the creditor, provided by the creditor to the PSU1 (Debtor), to unambiguously refer to the payment transaction. Usage: If available, the initiating party (i.e. Debtor) provides this reference in the structured remittance information, to enable reconciliation by the Creditor upon receipt of the amount of money. This field is populated by the PSU 1 (who is the initiating party of the payment e.g. the Debtor). Field is free format text |
FirstPaymentDateTime | string (required) | The date on which the first payment for a Standing Order schedule will be made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
NextPaymentDateTime | string (optional) | The date on which the next payment for a Standing Order schedule will be made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
LastPaymentDateTime | structure (optional) | The date on which the last (most recent) payment for a Standing Order schedule was made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
FinalPaymentDateTime* | string (required) | The date on which the final payment for a Standing Order schedule will be made.All dates in the JSON payloads are represented in ISO 8601 date-time format. All date-time fields in responses must include the timezone. An example is below: 2017-04-05T10:43:07+00:00 |
NumberOfPayments* | string (required) | Number of the payments that will be made in completing this frequency sequence including any executed since the sequence start date. |
StandingOrderStatusCode | structure (required) | Specifies the status of the standing order in code form. Enum: [ KSAOB.Active, KSAOB.Inactive ] |
FirstPaymentAmount* | string (required) | The amount of the first Standing Order |
Amount* | string (required) | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217. |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme |
NextPaymentAmount* | string (required) | The amount of the first Standing Order |
Amount* | string (required) | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217. |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification schema |
LastPaymentAmount* | string (required) | The amount of the first Standing Order |
Amount* | string (required) | A number of monetary units specified in an active currency |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme. |
FinalPaymentAmount* | string (required) | The amount of the first Standing Order |
Amount* | string (required) | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217. |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme. |
CreditorAgent | string (optional) | Creditor Agent refers to the Financial Institution that manages the account on behalf of the scheduled payment beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. |
IdentificationType* | string (required) | title: OBExternalFinancialInstitutionIdentificationCode /accounts resource The name of the identification scheme for the PASP as the account services provider. Encoded with allowable value as published in an external list. /beneficiaries resource Refers to the Financial Institution that manages the account on behalf of the Beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. /scheduled-payments resource Refers to the identification scheme for uniquely identifying the Creditor Agent. /standing-orders resource Refers to the identification scheme for uniquely identifying the Creditor Agent. /transactions resource Refers to the identification scheme for uniquely identifying the Creditor Agent. Enum: [ KSAOB.BICFI, KSAOB.OTHER ] |
Identification* | string (required) | /accounts resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /beneficiaries resource Unique and unambiguous identification of the Creditor Agency as the servicing institution of the Beneficiary. /scheduled-payments resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /standing-orders resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /transactions resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services |
CreditorAccount* | structure (required) | Provides the details to identify the beneficiary account. |
IdentificationType* | string (required) | OBExternalAccountIdentificationCodestring title: OBExternalAccountIdentificationCode Name of the identification scheme for the account. Encoded with allowable values published in an external list. Enum:[ KSAOB.IBAN, KSAOB.MaskedPAN ] |
Identification* | string (required) | minLength: 1 maxLength: 256 Beneficiary account identification. |
CreditorAccount | structure (required) | Provides the details to identify the beneficiary account. |
IdentificationType* | string (required) | OBExternalAccountIdentificationCodestring title: OBExternalAccountIdentificationCode Name of the identification scheme for the account. Encoded with allowable values published in an external list. Enum:[ KSAOB.IBAN, KSAOB.MaskedPAN ] |
Identification* | string (required) | minLength: 1 maxLength: 256 Beneficiary account identification. |
SupplementaryData | string (optional) | Additional information that can not be captured in the structured fields and/or any other specific block. |
Links* | structure (required) | Links relevant to the resource |
Self* | string($uri) (required) | A link to the current resource |
First | string($uri) | A link to the first page in a paginated result set |
Prev | string($uri) | A link to the Prev page in a paginated result set |
Next | string($uri) | A link to the Next page in a paginated result set |
Last | string($uri) | A link to the Last page in a paginated result set |
Meta* | structure (required) | Meta Data relevant to the payload |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "CA_0000000001601713308000010006080067493",
"StandingOrder": [
{
"StandingOrderId": "00291653210000000001",
"AccountHolderName": "Metwaly Elsaied Hussien ",
"AccountHolderShortName": "متولي السعيد حسين",
"Frequency": "IntervalDay:3.2E+1",
"CreditorReference": "00291653210000000001",
"FirstPaymentDateTime": "2023-02-28T00:00:00+00:00",
"NextPaymentDateTime": "2023-04-28T00:00:00+00:00",
"LastPaymentDateTime": "2023-03-27T00:00:00+00:00",
"FinalPaymentDateTime": "2023-04-12T00:00:00+00:00",
"NumberOfPayments": "13",
"StandingOrderStatusCode": "KSAOB.Active",
"FirstPaymentAmount": {
"Amount": "1000",
"Currency": "SAR"
},
"NextPaymentAmount": {
"Amount": "1000",
"Currency": "SAR"
},
"LastPaymentAmount": {
"Amount": "1000",
"Currency": "SAR"
},
"FinalPaymentAmount": {
"Amount": "1000",
"Currency": "SAR"
},
"CreditorAgent": {
"IdentificationType": "KSAOB.BICFI",
"Identification": "08048700"
}
}
]
},
"Links": {
"Self": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000001601713308000010006080067493/standing-orders",
"First": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000001601713308000010006080067493/standing-orders",
"Last": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000001601713308000010006080067493/standing-orders?pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.GenericError",
"Message": "Account is not Authorized",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "request.parameters.AccountId"
}
]
}
Transactions
The transactions API is used by a TPP to retrieve the transactions details for a specific AccountId or to retrieve the transactions details in bulk for account(s) that the PSU has authorised to access.
Get Transactions
/accounts/{AccountId}/transactions
allows you to retrieve Transaction information.
Request(Headers-parameters)
Parameter Key | Parameter Type | Parameter Description |
---|---|---|
authorization* | string required(header) | An authorization Token |
x-fapi-auth-date | string optional(header) | The time when the PSU last logged in with the TPP. All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: Sun, 10 Sep 2017 19:43:31 UTC |
x-fapi-customer-ip-address | string optional(header) | The PSU's IP address if the PSU is currently logged in with the TPP. |
x-fapi-interaction-id | string optional(header) | An RFC4122 UID used as a correlation id. |
x-customer-user-agent | string optional(header) | Indicates the user-agent that the PSU is using. |
AccountId* | string required(path) | AccountId |
fromBookingDateTime | string optional($date-time)(query) | The UTC ISO 8601 Date Time to filter transactions FROM NB Time component is optional - set to 00:00:00 for just Date. If the Date Time contains a timezone, the PASP must ignore the timezone component. |
toBookingDateTime | string optional ($date-time)(query) | The UTC ISO 8601 Date Time to filter transactions TO NB Time component is optional - set to 00:00:00 for just Date. If the Date Time contains a timezone, the PASP must ignore the timezone component. |
Response Http codes
Code | Description |
---|---|
200 | Transactions Read |
400 | Bad request |
401 | Unauthorized |
403 | Forbidden |
405 | Method Not Allowed |
406 | Not Acceptable |
429 | Too Many Requests |
500 | Internal Server Error |
Response Schema
Element | Type | Description | |
---|---|---|---|
Data* | structure (required) | ||
AccountId* | string (required) | A unique and immutable identifier produced by the PASP to identify the account resource.This identifier has no meaning to the account owner (PSU 1). | |
Transaction* | string (required) | Provides further details on an entry in the report. | |
TransactionId* | string (required) | Unique identifier for the transaction within an servicing institution. This identifier is both unique and immutable. | |
TransactionDateTime* | structure (required) | The Date Time of when the transaction occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format | |
LocalTimeZone | string (optional) | The UTC offset of the local date and time of where the transaction occurred | |
StatementReference | string (optional) | Unique reference for the statement. This reference may be optionally populated if available. | |
TransactionReference | string (optional) | Unique reference for the transaction. When processed through a national payment system, it is mandatory to be populated by the PASP. As an example, it may be a reference code for the local payment scheme e.g. mada, SARIE." | |
TransactionType* | string (required) | The type of transaction Enum: [[ KSAOB.POS, KSAOB.ECommerce, KSAOB.ATM, KSAOB.BillPayments, KSAOB.LocalBankTransfer, KSAOB.SameBankTransfer, KSAOB.InternationalTransfer, KSAOB.Teller, KSAOB.Cheque, KSAOB.Other ] | |
SubTransactionType* | string (required) | The sub-type of a transaction Enum: [ KSAOB.Purchase, KSAOB.Reversal, KSAOB.Refund, KSAOB.Withdrawal, KSAOB.WithdrawalReversal, KSAOB.Deposit, KSAOB.DepositReversal, KSAOB.MoneyTransfer, KSAOB.NotApplicable ] | |
TerminalId | structure (optional) | ID of the Terminal if the transaction was initiated from a retail POS | |
Flags | string (optional) | The flag of a transaction Enum: [ KSAOB.Cashback, KSAOB.Payroll, KSAOB.DirectDebit, KSAOB.StandingOrder, KSAOB.Loan, KSAOB.Dividend ] | |
PaymentModes* | string (required) | The mode of payment Enum: [ KSAOB.Online, KSAOB.Offline, KSAOB.Batch ] | |
CreditDebitIndicator* | structure (required) | Indicates whether the transaction is a credit or a debit entry. Enum: [ KSAOB.Credit, KSAOB.Debit ] | |
Status* | string (required) | Status of a transaction entry on the books of the account servicer. Enum: [ KSAOB.Booked, KSAOB.Pending, KSAOB.Rejected ] | |
TransactionMutability | string (required) | Specifies the Mutability of the Transaction record. Enum: [ KSAOB.Mutable, KSAOB.Immutable ] | |
BookingDateTime* | structure (required) | 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. | |
ValueDateTime | string (optional) | 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. | |
TransactionInformation | string (optional) | Further details of the transaction. This is the transaction narrative, which is unstructured text. | |
Amount* | string (required) | Further details of the transaction. This is the transaction narrative, which is unstructured text. | |
Amount* | string (required) | A number of monetary units specified in an active currency . | |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme. | |
ChargeAmount | string (optional) | Transaction charges to be paid by the charge bearer. | |
Amount* | string (required) | A number of monetary units specified in an active currency . | |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme. | |
ChargeIncluded | string (optional) | If true then the value in the Amount has the ChargeAmount deducted from it | |
ChargeAmountVat | string (optional) | Transaction charges to be paid by the charge bearer. | |
Amount* | string (required) | A number of monetary units specified in an active currency . | |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme. | |
BankTransactionCode | string (optional) | BankTransactionCode is mandatory when the ProprietaryBankTransactionCode is absent. | |
Domain | string (optional) | Specifies the Domain | |
DomainCode | string (optional) | Specifies the Domain Code. | |
Family | string (optional) | Specifies the Family | |
FamilyCode | string (optional) | Specifies the Family Code | |
SubFamily | string (optional) | Specifies the Sub-Family | |
SubFamilyCode | string (optional) | Specifies the Sub-family Code | |
ProprietaryBankTransactionCode | string (optional) | ProprietaryBankTransactionCode is mandatory when the BankTransactionCode (with code specifying the Domain, Family and SubFamily as per External Codes ISO20022) is absent. | |
Domain | string (optional) | Specifies the Domain | |
DomainCode | string (optional) | Specifies the Domain Code. | |
Family | string (optional) | Specifies the Family | |
FamilyCode | string (optional) | Specifies the Family Code | |
ProprietaryBankTransactionCode | string (optional) | ProprietaryBankTransactionCode is mandatory when the BankTransactionCode (with code specifying the Domain, Family and SubFamily as per External Codes ISO20022) is absent. | |
Code* | string (required) | Proprietary bank transaction code to identify the underlying transaction. | |
Issuer | string (optional) | Identification of the issuer of the proprietary bank transaction code. | |
Balance | string (optional) | 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. | |
CreditDebitIndicator* | string (required) | Indicates whether the balance of the account is a credit or a debit balance Enum: [ KSAOB.Credit, KSAOB.Debit ] | |
Type* | string (required) | The type of balance for the account. Enum: [ KSAOB.ClosingAvailable, KSAOB.ClosingBooked, KSAOB.ClosingCleared, KSAOB.Expected, KSAOB.ForwardAvailable, KSAOB.Information, KSAOB.InterimAvailable, KSAOB.InterimBooked, KSAOB.InterimCleared, KSAOB.OpeningAvailable, KSAOB.OpeningBooked, KSAOB.OpeningCleared, KSAOB.PreviouslyClosedBooked ] | |
Amount* | string (required) | Amount of money of the cash balance after a transaction entry is applied to the account.. | |
Amount* | string (required) | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217. | |
Currency* | string (required) | A 3 character alphabetic code allocated to a currency under an international currency identification scheme | |
MerchantDetails | string (optional) | Details of the Merchant involved in the transaction. Merchant Details are specified only for those merchant categories that are generally expected to originate retail financial transactions | |
MerchantId | integer (optional) | Id of the Merchant | |
MerchantName | string (optional) | Name by which the merchant is known. | |
MerchantCategoryCode | string (optional) | Category code values are used to enable the classification of merchants into specific categories based on the type of business, trade or services supplied. Category code conforms to ISO 18245, related to the type of services or goods the merchant provides for the transaction." | |
CreditorAccount | structure (optional) | Financial institution servicing an account for the creditor in case the transaction is a Debit transaction. These are optional because there are situations where this cannot be populated for the following Debit transactions Cash withdrawals (no creditor account/agent) Cheques and DDs may not have this information at least during the process of clearing and sometimes (e.g. for agency banks) may not be reconciled ever Some corner situations with international payments For card payments (instead merchant information fields should be populated) | |
IdentificationType | string (optional) | Enum: [ KSAOB.BICFI, KSAOB.OTHER ] | |
Identification | string (required) | /accounts resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /beneficiaries resource Unique and unambiguous identification of the Creditor Agency as the servicing institution of the Beneficiary. /scheduled-payments resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /standing-orders resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /transactions resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. Notes: Based on the value of the field IdentificationType, this entry may be : KSAOB.BICFI: The BIC/SWIFT Code KSAOB.OTHER: The ID; A Country Code followed by a Bank Code (KSAOB 4 character code). The full list of PASP names and 6 digits IDs | |
Name | string (required) | The account name is the name or names of the PSU 1 account owner(s) represented at an account level, as displayed by the PASP's online channels. Note: The account name is not the product name or the nickname of the account. | |
PostalAddress | string (optional) | Postal Address specifies Information that locate and identify a specific address, as defined by postal services. | |
AddressType | string (optional) | Postal Address type specifies the the nature of the postal address. Enum: [ KSAOB.Business, KSAOB.Correspondence, KSAOB.DeliveryTo, KSAOB.MailTo, KSAOB.POBox, KSAOB.Postal, KSAOB.Residential, KSAOB.Statement ] | |
ShortAddress | string (optional) | 8 character Unique alphanumeric Code. | |
BuildingNumber | string (optional) | Number that identifies the position of a building on a street. | |
UnitNumber | string (optional) | This is the unit number of the business premises or dwelling | |
StreetName | string (optional) | Name of a street or thoroughfare. | |
SecondaryNumber | string (optional) | Secondary Number, if required | |
District | string (optional) | Identifies the District of a City | |
PostalCode | string (optional) | Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail. | |
City | string (optional) | Identifies the City of a Country | |
Country | string (optional) | Identifies a county either by full name or country code | |
CreditorAccount | structure (optional) | Creditor account details available in case the transaction is a Debit transaction. These are optional because there are situations where this cannot be populated for the following Debit transactions: cash withdrawals (no creditor account/agent) cheques and DDs may not have this information at least during the process of clearing and sometimes (e.g. for agency banks) may not be reconciled ever some corner situations with international payments for card payments (instead merchant information fields should be populated) | |
IdentificationType | string (optional) | Name of the identification scheme for the account. Encoded with allowable values published in an external list. Enum: [ KSAOB.IBAN, KSAOB.MaskedPAN ] | |
Identification | string (optional) | Identification assigned by an institution to identify an account. This identification is known by the account owner." Enum: [ KSAOB.AccountNumber, KSAOB.CommercialRegistrationNumber, KSAOB.Email, KSAOB.MobileNumber, KSAOB.NationalID, KSAOB.IqamaNumber, KSAOB.PassportNumber ] | |
Name | string (optional) | title: Name_0 minLength: 1 maxLength: 350 The account name is the name or names of the PSU 1 account owner(s) represented at an account level, as displayed by the PASP's online channels. Note: The account name is not the product name or the nickname of the account. | |
DebtorAgent | structure (optional) | Financial institution servicing an account for the Debtor in case the transaction is a Credit transaction. These are optional because there are situations where this cannot be populated for the following Credit transactions cash deposits (no creditor account/agent) cheques and DDs may not have this information at least during the process of clearing and sometimes (e.g. for agency banks) may not be reconciled ever some corner situations with international payments for refunds with card payments (instead merchant information fields should be populated) | |
IdentificationType | string (optional) | title: OBExternalFinancialInstitutionIdentificationCode /accounts resource The name of the identification scheme for the PASP as the account services provider. Encoded with allowable value as published in an external list. /beneficiaries resource Refers to the Financial Institution that manages the account on behalf of the Beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. /scheduled-payments resource Refers to the identification scheme for uniquely identifying the Creditor Agent. /standing-orders resource Refers to the identification scheme for uniquely identifying the Creditor Agent. /transactions resource Refers to the identification scheme for uniquely identifying the Creditor Agent. Enum: [ KSAOB.BICFI, KSAOB.OTHER ] | |
Identification | string (optional) | /accounts resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /beneficiaries resource Unique and unambiguous identification of the Creditor Agency as the servicing institution of the Beneficiary. /scheduled-payments resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /standing-orders resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /transactions resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. Notes: Based on the value of the field IdentificationType | |
Name | string (optional) | Beneficiary Name by which an agent is known and which is usually used to identify that agent Creditor agent Name by which the Financial institution(FI) which is the creditor is known and which is usually used to identify that FI. DebtorAgent Name by which an financial institution of the debtor is known and which is usually used to identify that financial institution. | |
PostalAddress | string (optional) | Postal Address specifies Information that locate and identify a specific address, as defined by postal services. | |
AddressType | string (optional) | Postal Address type specifies the the nature of the postal address. Enum: [ KSAOB.Business, KSAOB.Correspondence, KSAOB.DeliveryTo, KSAOB.MailTo, KSAOB.POBox, KSAOB.Postal, KSAOB.Residential, KSAOB.Statement ] | |
ShortAddress | string (optional) | 8 character Unique alphanumeric Code. | |
BuildingNumber | string (optional) | Number that identifies the position of a building on a street. | |
UnitNumber | string (optional) | This is the unit number of the business premises or dwelling | |
StreetName | string (optional) | Name of a street or thoroughfare. | |
SecondaryNumber | string (optional) | Secondary Number, if required | |
District | string (optional) | Identifies the District of a City | |
PostalCode | string (optional) | Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail. | |
City | string (optional) | Identifies the City of a Country | |
Country | string (optional) | Identifies a county either by full name or country code | |
DebtorAccount | string (optional) | Account details of the Debtor in case the transaction is a Credit transaction. These are optional because there are situations where this cannot be populated for the following Credit transactions cash deposits (no creditor account/agent) cheques and DDs may not have this information at least during the process of clearing and sometimes (e.g. for agency banks) may not be reconciled ever some corner situations with international payments for refunds with card payments (instead merchant information fields should be populated) | |
IdentificationType | string (optional) | /accounts resource The name of the identification scheme for the PASP as the account services provider. . /beneficiaries resource Refers to the Financial Institution that manages the account on behalf of the Beneficiary party, managing registration, booking of entries on the account, calculating balances on the account and providing information about the account. This is the servicing Financial Institution of the Beneficiary account. /scheduled-payments resource Refers to the identification scheme for uniquely identifying the Creditor Agent. /standing-orders resource Refers to the identification scheme for uniquely identifying the Creditor Agent . /transactions resource Refers to the identification scheme for uniquely identifying the Creditor Agent. Enum: [ KSAOB.BICFI, KSAOB.OTHER ] | |
Identification | string (optional) | /accounts resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /beneficiaries resource Unique and unambiguous identification of the Creditor Agency as the servicing institution of the Beneficiary. /scheduled-payments resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /standing-orders resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services. /transactions resource Unique and unambiguous identification of the PASP as the account servicing institution for the Open Banking Services | |
Name | string (optional) | Beneficiary Name by which an agent is known and which is usually used to identify that agent Creditor agent Name by which the Financial institution(FI) which is the creditor is known and which is usually used to identify that FI. DebtorAgent Name by which an financial institution of the debtor is known and which is usually used to identify that financial institution. | |
PostalAddress | string (optional) | Postal Address specifies Information that locate and identify a specific address, as defined by postal services. | |
AddressType | array[8] | Postal Address type specifies the the nature of the postal address. | |
ShortAddress | string | 8character Unique alphanumeric Code. | |
BuildingNumber | string (1:4) | Number that identifies the position of a building on a street. | |
UnitNumber | number | This is the unit number of the business premises or dwelling. | |
StreetName | string (1:70) | Name of a street or thoroughfare. | |
SecondaryNumber | string | Secondary Number, if required | |
District | sting (1:35) | Identifies the District of a City | |
PostalCode | sting (1:16) | Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail. | |
City | sting (1:35) | Identifies the City of a Country | |
Country | sting (1:35) | pattern: ^[A-Z]{2,2}$ Identifies a county either by full name or country code | |
CreditorAgent | string (optional) | Financial institution servicing an account for the creditor in case the transaction is a Debit transaction. These are optional because there are situations where this cannot be populated for the following Debit transactions Cash withdrawals (no creditor account/agent) Cheques and DDs may not have this information at least during the process of clearing and sometimes (e.g. for agency banks) may not be reconciled ever Some corner situations with international payments For card payments (instead merchant information fields should be populated). | |
DebtorAccount | string (optional) | Account details of the Debtor in case the transaction is a Credit transaction. These are optional because there are situations where this cannot be populated for the following Credit transactions cash deposits (no creditor account/agent) cheques and DDs may not have this information at least during the process of clearing and sometimes (e.g. for agency banks) may not be reconciled ever some corner situations with international payments for refunds with card payments (instead merchant information fields should be populated) | |
IdentificationType | string (optional) | title: OBExternalAccountIdentificationCode Name of the identification scheme for the account. Encoded with allowable values published in an external list. Enum: [ KSAOB.IBAN, KSAOB.MaskedPAN ] | |
Identification | string (optional) | Identification assigned by an institution to identify an account. This identification is known by the account owner." Enum: [ KSAOB.AccountNumber, KSAOB.CommercialRegistrationNumber, KSAOB.Email, KSAOB.MobileNumber, KSAOB.NationalID, KSAOB.IqamaNumber, KSAOB.PassportNumber ] | |
Name | string (optional) | title: Name_0 minLength: 1 maxLength: 350 The account name is the name or names of the PSU 1 account owner(s) represented at an account level, as displayed by the PASP's online channels. Note: The account name is not the product name or the nickname of the account. | |
CardInstrument | string (optional) | Set of elements to describe the card instrument used in the transaction. | |
CardSchemeName* | string (required) | The card instrument type. Enum: [ KSAOB.ApplePay, KSAOB.madaPay, KSAOB.Contactless, KSAOB.MagStripe, KSAOB.Chip, KSAOB.Other ] | |
Name | string (optional) | minLength: 1 maxLength: 70 Name of the cardholder using the card instrument. | |
Identification | string (optional) | minLength: 1 maxLength: 16 example: 1234********4321 Identification assigned by an institution to identify the card instrument used in the transaction. This identification is kn | |
SupplementaryData | string (optional) | Additional information that can not be captured in the structured fields and/or any other specific block. | |
BillDetails | string (optional) | Bill Details | |
BillerID | number (optional) | This should be 'BillerCode' as per SP-SADAD specifications. It is a unique biller identifier within SADAD that could be used by the end-user to refer to a specific SADAD biller (e.g. STC biller code is 001, water services biller code is 015, etc.) | |
BillNumber | string (optional) | Unique bill identifier within the account. | |
BillPaymentType | string (optional) | Indicates whether the bill could be a One-off payment, Recurring payment, Postpaid, Pre-paid, etc. Example values: "KSAOB.Post-Paid" "KSAOB.AdvancePaymentForRoaming" "KSAOB.Recharge" "KSAOB.Renewal" "KSAOB.RoamingDeposit" "KSAOB.One-Off" "KSAOB.RecurringPayment" | |
Links* | structure (required) | Links relevant to the resource | |
Self* | string($uri) (required) | A link to the current resource | |
First | string($uri) | A link to the first page in a paginated result set | |
Prev | string($uri) | A link to the Prev page in a paginated result set | |
Next | string($uri) | A link to the Next page in a paginated result set | |
Last | string($uri) | A link to the Last page in a paginated result set | |
Meta* | structure (required) | Meta Data relevant to the payload | |
TotalPages | integer($int32) | Total number of Pages where a result set is paginated |
Successful Operation
{
"Data": {
"AccountId": "CA_0000000003061961204000010006084040848",
"Transaction": [
{
"TransactionId": "SAT_204000010006084040848202301117000001",
"TransactionDateTime": "2023-01-11T03:01:51.000Z",
"LocalTimeZone": "UTC+03:00",
"TransactionReference": "204000010006084040848202301117000001",
"TransactionType": "KSAOB.SameBankTransfer",
"SubTransactionType": "KSAOB.MoneyTransfer",
"Flags": [
{
"TransactionId": "SAT_204000010006084040848202301117000001",
"TransactionDateTime": "2023-01-11T03:01:51.000Z",
"LocalTimeZone": "UTC+03:00",
"TransactionReference": "204000010006084040848202301117000001",
"TransactionType": "KSAOB.SameBankTransfer",
"SubTransactionType": "KSAOB.MoneyTransfer",
"PaymentModes": "KSAOB.Offline",
"CreditDebitIndicator": "KSAOB.Credit",
"Status": "KSAOB.Booked",
"TransactionMutability": "KSAOB.Immutable",
"BookingDateTime": "2023-01-11",
"ValueDateTime": "2023-01-11T03:01:51.000Z",
"Amount": {
"Amount": "333.33",
"Currency": "SAR"
},
"ChargeAmount": {
"Amount": "0",
"Currency": "SAR"
},
"CurrencyExchange": {
"SourceCurrency": "SAR",
"TargetCurrency": "SAR",
"UnitCurrency": "SAR",
"ExchangeRate": 1,
"QuotationDate": "2023-01-11T03:01:51.000Z",
"InstructedAmount": {
"Amount": "333.33",
"Currency": "SAR"
}
},
"Balance": {
"CreditDebitIndicator": "KSAOB.Credit",
"Type": "KSAOB.InterimAvailable",
"Amount": {
"Amount": "0",
"Currency": "SAR"
}
},
"CreditorAgent": {
"IdentificationType": "KSAOB.BICFI",
"Identification": "00020400",
"Name": "AL- Rawdah",
"PostalAddress": {
"AddressType": "KSAOB.Statement",
"BuildingNumber": "1112",
"UnitNumber": 1112,
"StreetName": "OLAYA",
"PostalCode": "11117",
"City": "AL RIYADH",
"Country": "SA"
}
},
"CreditorAccount": {
"Item": {
"IdentificationType": "KSAOB.AccountNumber",
"Identification": "204000010006084040848",
"Name": "Nagav Rajuo Thogy Garul "
}
},
"DebtorAgent": {
"identificationType": "KSAOB.BICFI",
"PostalAddress": {
"AddressType": "KSAOB.Correspondence"
}
},
"DebtorAccount": {
"IdentificationType": "KSAOB.AccountNumber"
}
}
],
"PaymentModes": "KSAOB.Offline",
"CreditDebitIndicator": "KSAOB.Credit",
"Status": "KSAOB.Booked",
"TransactionMutability": "KSAOB.Immutable",
"BookingDateTime": "2023-01-11",
"ValueDateTime": "2023-01-11T03:01:51.000Z",
"Amount": {
"Amount": "333.33",
"Currency": "SAR"
},
"ChargeAmount": {
"Amount": "0",
"Currency": "SAR"
},
"Balance": {
"CreditDebitIndicator": "KSAOB.Credit",
"Type": "KSAOB.InterimAvailable",
"Amount": {
"Amount": "0",
"Currency": "SAR"
}
},
"CreditorAgent": {
"IdentificationType": "KSAOB.BICFI",
"Identification": "00020400",
"Name": "AL- Rawdah"
},
"CreditorAccount": {
"IdentificationType": [
"KSAOB.AccountNumber"
],
"Identification": [
"204000010006084040848"
],
"Name": [
"Nagav Rajuo Thogy Garul "
]
},
"DebtorAgent": {
"IdentificationType": "KSAOB.BICFI"
},
"DebtorAccount": {
"IdentificationType": "KSAOB.AccountNumber"
}
},
{
"TransactionId": "SAT_204000010006084040848202301057000001",
"TransactionDateTime": "2023-01-09T06:01:48.000Z",
"LocalTimeZone": "UTC+03:00",
"TransactionReference": "204000010006084040848202301057000001",
"TransactionType": "KSAOB.ATM",
"SubTransactionType": "KSAOB.Deposit",
"Flags": [
{
"TransactionId": "SAT_204000010006084040848202301057000001",
"TransactionDateTime": "2023-01-09T06:01:48.000Z",
"LocalTimeZone": "UTC+03:00",
"TransactionReference": "204000010006084040848202301057000001",
"TransactionType": "KSAOB.ATM",
"SubTransactionType": "KSAOB.Deposit",
"PaymentModes": "KSAOB.Offline",
"CreditDebitIndicator": "KSAOB.Credit",
"Status": "KSAOB.Booked",
"TransactionMutability": "KSAOB.Immutable",
"BookingDateTime": "2023-01-09",
"ValueDateTime": "2023-01-09T06:01:48.000Z",
"Amount": {
"Amount": "5000",
"Currency": "SAR"
},
"ChargeAmount": {
"Amount": "0",
"Currency": "SAR"
},
"CurrencyExchange": {
"SourceCurrency": "SAR",
"TargetCurrency": "SAR",
"UnitCurrency": "SAR",
"ExchangeRate": 1,
"QuotationDate": "2023-01-09T06:01:48.000Z",
"InstructedAmount": {
"Amount": "5000",
"Currency": "SAR"
}
},
"Balance": {
"CreditDebitIndicator": "KSAOB.Credit",
"Type": "KSAOB.InterimAvailable",
"Amount": {
"Amount": "0",
"Currency": "SAR"
}
},
"CreditorAgent": {
"IdentificationType": "KSAOB.BICFI",
"Identification": "00020400",
"Name": "AL- Rawdah",
"PostalAddress": {
"AddressType": "KSAOB.Statement",
"BuildingNumber": "1112",
"UnitNumber": 1112,
"StreetName": "OLAYA",
"PostalCode": "11117",
"City": "AL RIYADH",
"Country": "SA"
}
},
"CreditorAccount": {
"Item": {
"IdentificationType": "KSAOB.AccountNumber",
"Identification": "204000010006084040848",
"Name": "Nagav Rajuo Thogy Garul "
}
},
"DebtorAgent": {
"identificationType": "KSAOB.BICFI",
"PostalAddress": {
"AddressType": "KSAOB.Correspondence"
}
},
"DebtorAccount": {
"IdentificationType": "KSAOB.AccountNumber"
}
}
],
"PaymentModes": "KSAOB.Offline",
"CreditDebitIndicator": "KSAOB.Credit",
"Status": "KSAOB.Booked",
"TransactionMutability": "KSAOB.Immutable",
"BookingDateTime": "2023-01-09",
"ValueDateTime": "2023-01-09T06:01:48.000Z",
"Amount": {
"Amount": "5000",
"Currency": "SAR"
},
"Balance": {
"CreditDebitIndicator": "KSAOB.Credit",
"Type": "KSAOB.InterimAvailable",
"Amount": {
"Amount": "0",
"Currency": "SAR"
}
},
"CreditorAgent": {
"IdentificationType": "KSAOB.BICFI"
},
"DebtorAgent": {
"IdentificationType": "KSAOB.BICFI"
}
}
]
},
"Links": {
"Self": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003061961204000010006084040848/transactions?pg=1&TPPID=2c2053cae8982bca8c09c457df314baf&TPPSubscriptionPlan=default-plan",
"First": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003061961204000010006084040848/transactions",
"Last": "https://alrajhibank.com.sa/open-banking/account-information/2022.11.01-final-errata2/accounts/CA_0000000003061961204000010006084040848/transactions?pg=1"
},
"Meta": {
"TotalPages": 1
}
}
Error
{
"Errors": [
{
"Code": "KSAOB.GenericError",
"Message": "Account is not Authorized",
"Url": "https://portal-www.apic1012.ejada.com",
"Path": "request.parameters.AccountId"
}
]
}
Security Standards
All open banking Standard APIs are secured based on FAPI 1 Advanced with PAR ,For more information, please refer to
Testing Best Practice
Postman Collection
- Postman is a popular tool used by developers for testing and documenting APIs. A Postman collection is a set of saved requests that can be organized into folders. Collections can be shared with team members, exported, and imported.
- A Postman collection can include multiple requests, each with its own HTTP method, URL, headers, and body. Collections can also contain pre-request scripts, test scripts, and variables.
- With Postman Collections. You can group your Postman requests and examples into collections to keep your workspace organized, to collaborate with teammates, to generate API documentation.
- In Alrajhi Bank Gateway APIs, we have established an Effortless Testing environment of No Code Required. We have created the Postman collection that includes pre-formatted requests of APIs endpoints. All you have to do is:
Download and install the
Download and import the
Alrajhi Bank Gateway API Endpoints postman collection
Copy this JSON link and import into Postman
- Configure the environment with your API keys by adding them as Postman collection variables.
Start using each API as explained in the
Sample data in Sandbox
Here is a sample Data used for testing in sandbox.
Going Live
Once you are ready to promote your project from the sandbox to the certification or production environment, you may initiate the process to go live, you can refer to the following link for more details.