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

TermDefinition
APIApplication Programming Interface
PSUPayment Service User
TPPThird Party Provider
ASAPAccount Servicing Payment Service Provider
CIBAClient Initiated Backchannel Authentication
OAuthType of access Token
FAPIFinancial-grade API Security Profile
AISPAccount information service providers
PISPPayment initiation service providers
SAMASaudi Monetary Agency (Saudi Central Bank)
PASPPayment 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


APIEndpoint
Authorization
Push Authorization Request
Generate Access Token

Authorization


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 NameParameter typeDescription
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

CodeDescription
302Successful Operation
303See others
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
415Unsupported Media Type
429Too Many Requests
500Internal 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.



 

Request(Headers-parameters)

No Parameters


Request Type

x-www-form-urlencoded


Request Body

x-www-form-urlencoded

field nametype
client_assertion_type*string
client_assertion*string
request*string
Response Schema
ElementTypeDescription
ValidResponsestructure 
    request_uristring 
    expires_in*integer 

Response Http codes

CodeDescription
201Successful Operation
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
415Unsupported Media Type
429Too Many Requests
500Internal 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


Request Type

x-www-form-urlencoded


Request Body

FieldTypeDescription
grant_typestring requiredOAuth2 grant type according to RFC6749
codestringAuthorization code
redirect_uristringTPP Redirect URI
code_verifierstringOAuth2 Code Verifier
refresh_tokenstringOAuth2 refresh token returned previously to the clien
client_assertion_type*string requiredThis parameter will be used to identify the way the client will be authenticated. In this API, it will be JWT bearer.
client_assertion*string requiredThe 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.
scopestringOAuth2 token requested scope according to RFC6749
auth_req_idstringThis is a unique identifier to identify the authentication request made by the Client(required when generating the access token).
Response Schema
ElementTypeDescription
access_token*structure (required)example:eyJhbGciOiJQUzI1NiIsInR5cCIgOir05bgN1FctdrZ--TLlGqL4cWkGw
The access token issued by the authorization server.
token_typestring (optional)example: Bearer
The type of the token.
expires_in*integer (required)example:3600
The lifetime in seconds of the access token.
refresh_expires_ininteger (optional)example:2488965
The lifetime in seconds of the refresh token.
refresh_tokenstructure (optional)example:jAifSwic2NvcGUiOiJvcmMWYCg4gL5RATCmE
The refresh token, which can be used to obtain new access tokens using the same authorization grant.
id_tokenstring (optional)example:MY4mEx0pr6GDnQUO9lbdspP2SVIGrH2ly1wqy5zLfoXaucw
ID Token with basic PSU user claims.
not-before-policystring (optional)example:1685384552
scopestring (optional)example: accounts openid The socpes granted by PSU to client
session_statestring (required)example: 09a56dad-81c5-4aba-8a55-d5893ea46e95
Session state (identifier)

Errors

HTTP codeErrorDescription
400Bad request
401Unauthorized
403Forbidden
405Method not allowed
406Not Acceptable
429Too many requests
500Internal 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


DescriptionEndpoint
Create Account Access Consents
Retrieve Account Access Consents
patch Consent

Create 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 KeyTypeHeader Description
authorization*string (required)An authorization Token as per 
x-fapi-auth-datestring (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-addressstring (optional)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring (optional)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring (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

CodeDescription
201Successful Operation (Account Access Consents Created)
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
415Unsupported Media Type
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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.
    ExpirationDateTimestring($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
    TransactionFromDateTimestring($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
    TransactionToDateTimestring($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
    AccountTypearray[2](optional)Specifies the type of account (Retail or Corporate).
    AccountSubTypearray[ ]structure is:OBExternalAccountSubTypeCode 
Specifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other
    OnBehalfOfarray[ ](optional)

On Behalf Of

  • TradingName   (string)   example: Accounting Trading Name
  • LegalName   (string)   example: Accounting Legal Name
  • IdentifierType   array[1](string)   
  • Identifier   (string)   example: m47Qs12
    Purposearray[9]structure is: OBExternalAccountSubTypeCode 
[ Account Aggregation, Personal Finance Manager, Electronic Verification, E-Statement, Credit Assessment, Tax Filing, Enterprise Financial Management, Letter Of Guarantee, Other ]
Subscriptionstructure 
    Webhook*array[ ]

A Webhook Schema

  • Url   (string)   example: https://api.tpp.com/webhook/callbackUrl The TPP Callback URL being registered with the PASP
  • IsActive   (boolean)   example: false The TPP specifying whether the PASP should send (IsActive true) or not send (IsActive false) Webhook Notifications to the TPP's Webhook URL
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


enables you to retrieve accounts for the user by consent id

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
ConsentId*string required(path)ConsentId

Response Http codes

CodeDescription
200Account Access Consents Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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 ]
    ExpirationDateTimestring($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
    TransactionFromDateTimestring($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
    TransactionToDateTimestring($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
    AccountTypearray[2](optional)OBExternalAccountTypeCode Specifies the type of account (Retail or Corporate).
    AccountSubTypearray[ ]Specifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other
    OnBehalfOfarray[ ](optional)

On Behalf Of

  • TradingName   (string)   example: Accounting Trading Name
  • LegalName   (string)   example: Accounting Legal Name
  • IdentifierType   array[1](string)   
  • Identifier   (string)   example: abMnh834
    Purposearray[9][ Account Aggregation, Personal Finance Manager, Electronic Verification, E-Statement, Credit Assessment, Tax Filing, Enterprise Financial Management, Letter Of Guarantee, Other ]
    RevokedByarray[2]Specifies the identifier of the revocation.
values are:[ KSAOB.PASP, KSAOB.TPP ]
SubscriptionstructureA Webhook Subscription Schema
    Webhook*array[ ]

A Webhook Schema

  • Url   (string)   example: https://api.tpp.com/webhook/callbackUrl The TPP Callback URL being registered with the PASP
  • IsActive   (boolean)   example: false The TPP specifying whether the PASP should send (IsActive true) or not send (IsActive false) Webhook Notifications to the TPP's Webhook URL
Links*structureLinks relevant to the resource
    Self*string($uri)A link to the current resource
Meta*structureMeta 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


enables you to update an account access consent Status or webhook subscription

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring 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
ElementTypeDescription
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
SubscriptionstructureA Webhook Subscription Schema
    Webhook*array[ ]

A Webhook Schema

  • Url   (string)   example: https://api.tpp.com/webhook/callbackUrl The TPP Callback URL being registered with the PASP
  • IsActive   (boolean)   example: false The TPP specifying whether the PASP should send (IsActive true) or not send (IsActive false) Webhook Notifications to the TPP's Webhook URL

Response Http codes

CodeDescription
204No Content
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
415Unsupported Media Type
429Too Many Requests
500Internal 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


Allows you to retrieve account’s Information..

Request(Headers-parameters)

Header KeyTypeHeader Description
authorization*string (required)An authorization Token
x-fapi-auth-datestring (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-addressstring (optional)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring (optional)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring (optional)Indicates the user-agent that the PSU is using.

Response Http codes

CodeDescription
200Accounts Read.
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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
    AccountHolderShortNamestringThe account holder nick name
        StatusArray [ 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
        StatusUpdateDateTimestring($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
        CurrencystringIdentification of the currency in which the account is held. A code allocated to a currency under an international currency identification scheme
        AccountTypeArray [2](required)Specifies the type of account (Retail or Corporate)
        AccountSubTypestringSpecifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other
        Descriptionstring(1:35)Specifies the description of the account sub-type.
        Nicknamestring(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.
        OpeningDatestring($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
        MaturityDatestring($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
        AccountIdentifiersstructureProvides 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
        Namesting (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.
        Servicerstructure (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
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the Prev page in a paginated result set
    Nextstring($uri)A link to the Next page in a paginated result set
    Laststring($uri)A link to the Last page in a paginated result set
Meta*structure (required)Meta Data relevant to the payload
    TotalPagesinteger($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


Allows you to display account’s Information using the account ID..

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId

Response Http codes

CodeDescription
200Account ID Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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
        AccountHolderShortNamestringThe account holder nick name
        StatusArray [ 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
        StatusUpdateDateTimestring($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
        CurrencystringIdentification of the currency in which the account is held. A code allocated to a currency under an international currency identification scheme
        AccountTypeArray [2](required)Specifies the type of account (Retail or Corporate)
        AccountSubTypestringSpecifies the sub type of account (product family group). Examples values include: CurrentAccount, Savings, CreditCard, PrePaidCard, EMoney, ChargeCard, Other
        Descriptionstring(1:35)Specifies the description of the account sub-type.
        Nicknamestring(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.
        OpeningDatestring($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
        MaturityDatestring($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
        AccountIdentifiersstructureProvides 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
        Namesting (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.
        Servicerstructure (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
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the Prev page in a paginated result set
    Nextstring($uri)A link to the Next page in a paginated result set
    Laststring($uri)A link to the Last page in a paginated result set
Meta*structure (required)Meta Data relevant to the payload
    TotalPagesinteger($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


Allows you to display account balances in bulk or individually.

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token.
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId

Response Http codes

CodeDescription
200Balances Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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.
        DateTimestring($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
        CreditLinearray[ ]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*structureAmount 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
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the Prev page in a paginated result set
    Nextstring($uri)A link to the Next page in a paginated result set
    Laststring($uri)A link to the Last page in a paginated result set
Meta*structure (required)Meta Data relevant to the resource
    TotalPagesinteger($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


Allows you to display beneficiaries account Information

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId

Response Http codes

CodeDescription
200Beneficiaries Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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
        AccountHolderShortNamestringThe Beneficiary account holder nick name
        Referencestring(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
        SupplementaryDatastructureAdditional information that can not be captured in the structured fields and/or any other specific block.
        CreditorAgentstructureParty 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.
 
            Namestring(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.
            PostalAddressstructurePostal Address specifies Information that locate and identify a specific address, as defined by postal services.
                AddressTypearray[8]Postal Address type specifies the the nature of the postal address.
                ShortAddressstring8character Unique alphanumeric Code.
                BuildingNumberstring (1:4)Number that identifies the position of a building on a street.
                UnitNumbernumberThis is the unit number of the business premises or dwelling.
                StreetNamestring (1:70)Name of a street or thoroughfare.
                SecondaryNumberstringSecondary Number, if required
                Districtstring (1:35)Identifies the District of a City
                PostalCodestring (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.
                 Citystring (1:35)Identifies the City of a Country
                Countrystring (1:35)Identifies a county either by full name or country code
        CreditorAccountstructureParty 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
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the Prev page in a paginated result set
    Nextstring($uri)A link to the Next page in a paginated result set
    Laststring($uri)A link to the Last page in a paginated result set
Meta*structure (required)Meta Data relevant to the payload
    TotalPagesinteger($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


Allows you to retrieve Direct Debits Details for individual or bulk accounts.

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token as per
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId

Response Http codes

CodeDescription
200Direct Debits Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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.

  • DirectDebitId*    (string(1:40))   A unique and immutable identifier used to identify the direct debit resource. This identifier has no meaning to the account owner.
  • MandateIdentification*    (string(1:35))   This is the unique and immutable reference to the PSU 1 for the Direct Debit mandate.
  • DirectDebitStatusCode*    array[2](string)    Specifies the status of the direct debit. Encoded with allowable values of: 'Active', 'Inactive'
  • Name*    (string(1:70))   This is the name of the regulated beneficiary entity that initiates the Direct Debit collection.
  • Frequency*   array[8](string)   Specifies the frequency of the Direct Debit collections to the PSU 1 account.
  • PreviousPaymentDateTime    string($date-time))   The date of most recent direct debit collection to the PSU 1 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
  • PreviousPaymentAmount   (string)   This is the value of the last direct debit collection from the PSU 1 account.
    • Amount*    (string)    A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.
    • Currency*    (string)     A 3 character alphabetic code allocated to a currency under an international currency identification scheme
Links*structure {required)Links relevant to the resource
    Self*string($uri)A link to the current resource
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the previous page in a paginated result set
    Nextstring($uri)A link to the next page in a paginated result set
    Laststring($uri)A link to the last page in a paginated result set
Meta*structure {required)Meta Data relevant to the payload
    TotalPagesinteger($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


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 KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId

Response Http codes

CodeDescription
200Parties Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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

  • PartyId*

    string(1:40)
    A unique and immutable identifier used to identify the customer resource. This identifier has no meaning to the account owner.

  • PartyNumber

    string(1:35)
    Number assigned by an agent to identify its customer.

  • PartyType*

    array[3]
    Specifies the party type. Encoded with allowable values: "Delegate" :Used for business accounts when user has delegated authority to access the account 
    "Joint" : Party is a joint owner of the account 
    "Sole" : Party is the sole owner of the account 
     

  • AccountRole*

    Array [ 14 ]
    Specifies the Party's role with respect to the related account.

  • VerifiedClaims*

    structure (required)
    Container object containing entries for the trust framework and the evidence used to verify the PSU 1 claims.
     

    • Verification*
      • TrustFramework*

        array[4]
        Identifies the trust framework used for PSU 1 verification. This consists of a set of rules and standards and sets out requirements so that organisations know what good identity verification looks like and to be confirmed as the finalised list from SAMA

      • AssuranceLevel

        string
        Determines the assurance level associated with the PSU1 in the respective VerifiedClaims. The value range depends on the respective TrustFramework value

      • AssuranceProcess

        Determines the assurance process that was followed. This reflects how the evidence meets the requirements of the TrustFramework and AssuranceLevel

        • Policy

          (string)
          Representing the standard or policy that was followed.

        • Procedure

          (string)
          Representing a specific procedure from the policy that was followed.

        • AssuranceDetails

          Denoting the details about how the evidence complies with the policy

          • AssuranceType

            (string)
            String denoting which part of the assurance_process the evidence fulfils

          • AssuranceClassification

            (string)
            String reflecting how the evidence has been classified or measured as required by the TrustFramework

          • EvidenceRef

            Evidence being referred to:

            • Txn*

              (string)
              Identifier referring to the txn used in the CheckDetails.

            • EvidenceMetadata

              Object indicating any meta data about the evidence that is required by the AssuranceProcess in order to demonstrate compliance with the TrustFramework. It has the following sub-elements

              • EvidenceClassification

                (string)
                String indicating how the process demonstrated by the check_details for the evidence is classified by the AssuranceProcess in order to demonstrate compliance with the TrustFramework.

      • Time

        string($date-time)
        Representing the date and time when the identity verification process took place. 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

      • VerificationProcess

        (string)
        Unique reference to the identity verification process as performed by the OP. Used for identifying and retrieving details in case of disputes or audits. Presence of this element might be required for certain trust frameworks.

      • Evidence

        The type of evidence allowed for providing PSU 1 verification.

        • OBPartyIdentityEvidenceTypeDocument

          Document Evidence

          • Type

            array[1]
            The type of evidence allowed for providing PSU 1 verification.

          • CheckDetails

            Identifes the method used by PASP for checking the PSU 1 evidence for verification.

            • CheckMethod

              (string)
              Identifes the method used by PASP for checking the PSU 1 evidence for verification String representing the check done, this includes processes such as checking the authenticity of the document, or verifying the user's biometric against an identity document.

            • Organization

              (string)
              String denoting the legal entity that performed the check. This SHOULD be included if the OP did not perform the check itself

            • Txn

              (string)
              Identifier referring to the identity verification transaction. The OP MUST ensure that this is present when EvidenceRef element is used. The OP MUST ensure that the transaction identifier can be resolved into transaction details during an audit

            • Time

              string($date-time)
              title: ISODateTime
              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

          • Verifier
            • Organization

              (string)

            • Txn

              (string)

          • Time

            string($date-time)
            title: ISODateTime
            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

          • DocumentDetails
            • Type

              array[4]
              The type of document used for evidence checking by the PASP

            • DocumentNumber

              (string)
              The unique id number in the evidence used for verification checking

            • PersonalNumber

              (string)
              An identifier that is assigned to the End-User and is not limited to being used in one document, for example a national identification number, personal identity number, citizen number, social security number, driver number, account number, customer number, licensee number

            • SerialNumber

              (string)
              It identifies the document irrespective of any personalization information (this usually only applies to physical artifacts and is present before personalization

            • CalendarType

              array[2]
              The type of calendar used for the date of issuance and date of expiry in the document evidence Allowable values: "Islamic Calendar" "Gregorian Calendar" Both calendars must follow YYYY-MM-DD

            • DateOfIssuance

              string($date-time)
              title: ISODateTime
              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

            • DateOfExpiry

              string($date-time)
              title: ISODateTime
              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

            • Issuer
              • Name

                (string)
                Designation of the issuer of the document.

              • Address

                Address object as per OpenID Connect Core 1.0 Address Claim .

                • Formatted

                  (string)
                  The PSU 1 address number and street claim that has been verified by the PASP.

                • StreetAddress

                  (string)
                  The PSU 1 address street claim that has been verified by the PASP.

                • Locality

                  (string)
                  The PSU 1 address locality (village, town, city etc) claim that has been verified by the PASP.

                • Region

                  (string)
                  The PSU 1 address region claim that has been verified by the PASP.

                • PostalCode

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

                • Country

                  (string)
                  Nation with its own government, occupying a particular territory.

              • CountryCode

                (string)
                String denoting the country or supranational organization that issued the document as ISO 3166

              • Jurisdiction

                (string)
                String containing the name of the region(s)/state(s)/province(s)/municipality(ies) that issuer has jurisdiction over (if this information is not common knowledge or derivable from the address)

          • Attachments
            • Desc

              (string)
              Description of the document. This can be the filename or just an explanation of the content.

            • ContentType

              (string)
              Content (MIME) type of the document

            • Content

              (string)
              Base64 encoded representation of the document content

            • Txn

              (string)
              Identifier referring to the transaction

        • OBPartyIdentityEvidenceTypeElectronicRecord

          Electronic Record Evidence

          • Type

            array[1]
            The type of evidence allowed for providing PSU 1 verification

          • CheckDetails

            (Identifes the method used by PASP for checking the PSU 1 evidence for verification. Representing the checks done in relation to the evidence OpenID Connect for Identity Assurance 1.0

            • CheckMethod

              (string)
              Identifes the method used by PASP for checking the PSU 1 evidence for verification String representing the check done, this includes processes such as checking the authenticity of the document, or verifying the user's biometric against an identity document.

            • Organization

              (string)
              String denoting the legal entity that performed the check. This SHOULD be included if the OP did not perform the check itself

            • Txn

              (string)
              Identifier referring to the identity verification transaction. The OP MUST ensure that this is present when EvidenceRef element is used. The OP MUST ensure that the transaction identifier can be resolved into transaction details during an audit

            • Time

              ISODateTimestring($date-time)
              title: ISODateTime
              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

          • Time

            ISODateTimestring($date-time)
            title: ISODateTime
            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

          • Record

            Representing the record used to perform the identity verification.

            • Type

              array[3]
              String denoting the type of electronic record "https://bitbucket.org/openid/ekyc-ida/wiki/identifiers"

            • PersonalNumber

              (string)
              String representing an identifier that is assigned to the PSU1 and is not limited to being used in one record, for example a national identification number, personal identity number, citizen number, social security number, driver number, account number, customer number, licensee number, etc.

            • CalendarType

              array[2]
              OBPartyCalendarTypestring 
              The type of calendar used for the date of issuance and date of expiry in the document evidence Allowable values: "Islamic Calendar" "Gregorian Calendar" Both calendars must follow YYYY-MM-DD

            • CreatedAt

              ISODateTimestring($date-time)
              title: ISODateTime
              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

            • DateOfExpiry

              ISODateTimestring($date-time)
              title: ISODateTime
              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

            • Source

              Information about the source of this record

              • Name

                (string)
                Designation of the source of the electronic_record

              • Address

                Address object as per OpenID Connect Core 1.0 Address Claim

                • Formatted

                  (string)
                  The PSU 1 address number and street claim that has been verified by the PASP.

                • StreetAddress

                  (string)
                  The PSU 1 address street claim that has been verified by the PASP.

                • Locality

                  (string)
                  The PSU 1 address locality (village, town, city etc) claim that has been verified by the PASP.

                • Region

                  (string)
                  The PSU 1 address region claim that has been verified by the PASP.

                • PostalCode

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

                • Country

                  string 
                  Nation with its own government, occupying a particular territory.

              • CountryCode

                (string)
                the country or supranational organization that issued the evidence

              • Jurisdiction

                (string)
                String containing the name of the region(s)/state(s)/province(s)/municipality(ies) that source has jurisdiction over

          • Attachments
            • Desc

              (string)
              Description of the document. This can be the filename or just an explanation of the content.

            • ContentType

              (string)
              Content (MIME) type of the document

            • Content

              (string)
              ase64 encoded representation of the document content

            • Txn

              (string)
              Identifier referring to the transaction

    • Claims*

      Standard Claims

      • Sub

        (string)
        Identifier for the PSU 1 at the Issuer.

      • Name

        (string)
        The PSU 1 name claim that has been verified by the PASP

      • GivenName

        (string)
        The PSU 1 given name claim that has been verified by the PASP. Given name (also called forename) is used to differentiate from the surname or family name. Also called first name to distinguish it from the family name. Some people have two or more given names or acquired names that they use before the family name.

      • FamilyName

        (string)
        The PSU 1 family name claim that has been verified by the PASP.

      • MiddleName

        (string)
        The PSU 1 middle name claim that has been verified by the PASP.

      • Nickname

        (string)
        The PSU 1 nickname claim that has been verified by the PASP.

      • PreferredUsername

        (string)
        The PSU 1 preferred username claim that has been verified by the PASP.

      • Profile

        (string)
        The PSU 1 profile id claim that has been verified by the PASP.

      • Picture

        (string)
        The PSU 1 photo claim that has been verified by the PASP.

      • Website

        (string)
        The PSU 1 website claim that has been verified by the PASP

      • Email

        (string)
        The PSU 1 Email claim that has been verified by the PASP.

      • EmailVerified

        (boolean)
        The PSU 1 Email Verified claim that has been verified by the PASP.

      • Gender

        (string)
        The PSU 1 Gender claim that has been verified by the PASP.

      • BirthDate

        string($date)
        The PSU 1 date of birth claim that has been verified by the PASP.

      • ZoneInfo

        (string)
        The PSU 1 timezone claim that has been verified by the PASP.

      • Locale

        (string)
        The PSU 1 locale claim that has been verified by the PASP.

      • PhoneNumber

        (string)
        The PSU 1 phone number claim that has been verified by the PASP.

      • PhoneNumberVerified

        (boolean)
        The PSU 1 verified phone number claim that has been verified by the PASP.

      • Salutation

        (string)
        The PSU 1 Salutation claim that has been verified by the PASP.

      • Title

        (string)
        The PSU 1 Title claim that has been verified by the PASP.

      • MSISDN

        (string)
        The PSU 1 MSISDN claim that has been verified by the PASP. The MSISDN uniquely identifies a mobile subscriber across the globe. It is the phone number digits along with other protocol information.

      • BirthFamilyName

        (string)
        The PSU 1 birth family name claim that has been verified by the PASP.

      • BirthGivenName

        (string)
        The PSU 1 birth given name claim that has been verified by the PASP.

      • BirthMiddleName

        (string)
        The PSU 1 birth middle name claim that has been verified by the PASP.

      • AlsoKnownAs

        (string)
        The PSU 1 other name claim that has been verified by the PASP.

      • PlaceOfBirth

        Place of Birth Claim

        • Country

          Nation with its own government, occupying a particular territory.

        • Region

          (string)
          The PSU 1 region of birth claim that has been verified by the PASP.

        • Locality

          (string)
          The PSU 1 locality (village, town, city etc) of birth claim that has been verified by the PASP.

      • Nationalities

        (string)
        The PSU 1 nationality claim that has been verified by the PASP. This is an array which may contain multiple entries

      • Address

        Address object as per OpenID Connect Core 1.0 Address Claim

        • Formatted

          (string)
          The PSU 1 address number and street claim that has been verified by the PASP.

        • StreetAddress

          (string)
          The PSU 1 address street claim that has been verified by the PASP.

        • Locality

          (string)
          The PSU 1 address locality (village, town, city etc) claim that has been verified by the PASP.

        • Region

          (string)
          The PSU 1 address region claim that has been verified by the PASP.

        • PostalCode

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

        • Country

          string pattern: ^[A-Z]{2,2}$
          Nation with its own government, occupying a particular territory.

      • UpdatedAt

        (number)
        Time the PSU1's information was last updated. Its value is a JSON number representing the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the date/time.

Links*structure (required)Links relevant to the resource
     Self*string($uri)A link to the current resource
     Firststring($uri)A link to the first page in a paginated result set
     Prevstring($uri)A link to the previous page in a paginated result set
     Nextstring($uri)A link to the next page in a paginated result set
     Laststring($uri)A link to the last page in a paginated result set
Meta*structure (required)Meta Data relevant to the payload
    TotalPagesinteger($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


Allows you to retrieve the current PSU Information.

Request(Headers-parameters)

Header KeytypeHeader Description
authorization*string (required)An authorization Token as per 
x-fapi-auth-datestring (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-addressstring (optional)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring (optional)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring (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


Allows you to get Scheduled Payments information in bulk or individual behaviour.

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId

Response Http codes

CodeDescription
200Scheduled Payments Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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
        CreditorReferencestring (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
        CreditorAgentstructure (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.
        CreditorAccountstructure (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
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the Prev page in a paginated result set
    Nextstring($uri)A link to the Next page in a paginated result set
    Laststring($uri)A link to the Last page in a paginated result set
Meta*structure (required)Meta Data relevant to the payload
    TotalPagesinteger($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


Allows you to display Standing Orders information.

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId

Response Http codes

CodeDescription
200Standing Orders Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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.
        Frequencystring (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
        FirstPaymentDateTimestring (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
        NextPaymentDateTimestring (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
        LastPaymentDateTimestructure (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.
        StandingOrderStatusCodestructure (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.
        CreditorAgentstring (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.
        CreditorAccountstructure (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.
        SupplementaryDatastring (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
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the Prev page in a paginated result set
    Nextstring($uri)A link to the Next page in a paginated result set
    Laststring($uri)A link to the Last page in a paginated result set
Meta*structure (required)Meta Data relevant to the payload
    TotalPagesinteger($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


allows you to retrieve Transaction information.

Request(Headers-parameters)

Parameter KeyParameter TypeParameter Description
authorization*string required(header)An authorization Token
x-fapi-auth-datestring 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-addressstring optional(header)The PSU's IP address if the PSU is currently logged in with the TPP.
x-fapi-interaction-idstring optional(header)An RFC4122 UID used as a correlation id.
x-customer-user-agentstring optional(header)Indicates the user-agent that the PSU is using.
AccountId*string required(path)AccountId
fromBookingDateTimestring 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.
toBookingDateTimestring 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

CodeDescription
200Transactions Read
400Bad request
401Unauthorized
403Forbidden
405Method Not Allowed
406Not Acceptable
429Too Many Requests
500Internal Server Error
Response Schema
ElementTypeDescription
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
      LocalTimeZonestring (optional)The UTC offset of the local date and time of where the transaction occurred
      StatementReferencestring (optional)Unique reference for the statement. This reference may be optionally populated if available.
      TransactionReferencestring (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 ]
      TerminalIdstructure (optional)ID of the Terminal if the transaction was initiated from a retail POS
      Flagsstring (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 ]
      TransactionMutabilitystring (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.
      ValueDateTimestring (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.
        TransactionInformationstring (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.
        ChargeAmountstring (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.
          ChargeIncludedstring (optional)If true then the value in the Amount has the ChargeAmount deducted from it
        ChargeAmountVatstring (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.
        BankTransactionCodestring (optional)BankTransactionCode is mandatory when the ProprietaryBankTransactionCode is absent.
          Domainstring (optional)Specifies the Domain
          DomainCodestring (optional)Specifies the Domain Code.
          Familystring (optional)Specifies the Family
          FamilyCodestring (optional)Specifies the Family Code
          SubFamilystring (optional)Specifies the Sub-Family
          SubFamilyCodestring (optional)Specifies the Sub-family Code
        ProprietaryBankTransactionCodestring (optional)ProprietaryBankTransactionCode is mandatory when the BankTransactionCode (with code specifying the Domain, Family and SubFamily as per External Codes ISO20022) is absent.
          Domainstring (optional)Specifies the Domain
          DomainCodestring (optional)Specifies the Domain Code.
          Familystring (optional)Specifies the Family
          FamilyCodestring (optional)Specifies the Family Code
        ProprietaryBankTransactionCodestring (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.
          Issuerstring (optional)Identification of the issuer of the proprietary bank transaction code.
        Balancestring (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
        MerchantDetailsstring (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
          MerchantIdinteger (optional)Id of the Merchant
          MerchantNamestring (optional)Name by which the merchant is known.
          MerchantCategoryCodestring (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."
        CreditorAccountstructure (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)
          IdentificationTypestring (optional)Enum: [ KSAOB.BICFI, KSAOB.OTHER ]
          Identificationstring (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
          Namestring (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.
          PostalAddressstring (optional)Postal Address specifies Information that locate and identify a specific address, as defined by postal services.
            AddressTypestring (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 ]
            ShortAddressstring (optional)8 character Unique alphanumeric Code.
            BuildingNumberstring (optional)Number that identifies the position of a building on a street.
            UnitNumberstring (optional)This is the unit number of the business premises or dwelling
            StreetNamestring (optional)Name of a street or thoroughfare.
            SecondaryNumberstring (optional)Secondary Number, if required
            Districtstring (optional)Identifies the District of a City
            PostalCodestring (optional)Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.
            Citystring (optional)Identifies the City of a Country
            Countrystring (optional)Identifies a county either by full name or country code
        CreditorAccountstructure (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)
          IdentificationTypestring (optional)Name of the identification scheme for the account. Encoded with allowable values published in an external list.
Enum: [ KSAOB.IBAN, KSAOB.MaskedPAN ]
          Identificationstring (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 ]
          Namestring (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.
        DebtorAgentstructure (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)
          IdentificationTypestring (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 ]
          Identificationstring (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
          Namestring (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.
          PostalAddressstring (optional)Postal Address specifies Information that locate and identify a specific address, as defined by postal services.
            AddressTypestring (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 ]
            ShortAddressstring (optional)8 character Unique alphanumeric Code.
            BuildingNumberstring (optional)Number that identifies the position of a building on a street.
            UnitNumberstring (optional)This is the unit number of the business premises or dwelling
            StreetNamestring (optional)Name of a street or thoroughfare.
            SecondaryNumberstring (optional)Secondary Number, if required
            Districtstring (optional)Identifies the District of a City
            PostalCodestring (optional)Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.
            Citystring (optional)Identifies the City of a Country
            Countrystring (optional)Identifies a county either by full name or country code
        DebtorAccountstring (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)
          IdentificationTypestring (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 ]
          Identificationstring (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
          Namestring (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.
        PostalAddressstring (optional)Postal Address specifies Information that locate and identify a specific address, as defined by postal services.
                AddressTypearray[8]Postal Address type specifies the the nature of the postal address.
                ShortAddressstring8character Unique alphanumeric Code.
                BuildingNumberstring (1:4)Number that identifies the position of a building on a street.
                UnitNumbernumberThis is the unit number of the business premises or dwelling.
                StreetNamestring (1:70)Name of a street or thoroughfare.
                SecondaryNumberstringSecondary Number, if required
                Districtsting (1:35)Identifies the District of a City
                PostalCodesting (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.
                 Citysting (1:35)Identifies the City of a Country
                Countrysting (1:35)pattern: ^[A-Z]{2,2}$
Identifies a county either by full name or country code
        CreditorAgentstring (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).
        DebtorAccountstring (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)
          IdentificationTypestring (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 ]
          Identificationstring (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 ]
          Namestring (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.
        CardInstrumentstring (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 ]
          Namestring (optional)minLength: 1 maxLength: 70 Name of the cardholder using the card instrument.
          Identificationstring (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
        SupplementaryDatastring (optional)Additional information that can not be captured in the structured fields and/or any other specific block.
        BillDetailsstring (optional)Bill Details
          BillerIDnumber (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.)
          BillNumberstring (optional)Unique bill identifier within the account.
          BillPaymentTypestring (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
    Firststring($uri)A link to the first page in a paginated result set
    Prevstring($uri)A link to the Prev page in a paginated result set
    Nextstring($uri)A link to the Next page in a paginated result set
    Laststring($uri)A link to the Last page in a paginated result set
Meta*structure (required)Meta Data relevant to the payload
    TotalPagesinteger($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:

 


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.