API Explorer

OBP v4.0.0 filtered by tag: Bank, Bank-Branch, Bank-ATM, Bank-Product, Bank-FX (13 APIs)

Bank

Accounts

Views

Counterparties

Transactions

Create Bank

Create a new bank (Authenticated access).

The user creating this will be automatically assigned the Role CanCreateEntitlementAtOneBank.
Thus the User can manage the bank they create and assign Roles to other Users.

Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"gh.29.uk", "short_name":"short_name ", "full_name":"full_name", "logo":"logo", "website":"www.openbankproject.com", "bank_routings":[{ "scheme":"Bank_ID", "address":"gh.29.uk" }] }
Headers:

								
									
Required Roles:
  • CanCreateBank - Please login to request this Role
Possible Errors:
  • OBP-10001: Incorrect json format.
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30210: Insufficient authorisation to Create Bank. You do not have the role CanCreateBank.
  • OBP-50000: Unknown Error.
  • OBP-20006: User is missing one or more roles:
Connector Methods:
Implemented in OBPv4.0.0 by createBank

Create Settlement Account

Create a new settlement account at a bank.

The created settlement account id will be the concatenation of the payment system and the account currency.
For examples: SEPA_SETTLEMENT_ACCOUNT_EUR, CARD_SETTLEMENT_ACCOUNT_USD

By default, when you create a new bank, two settlements accounts are created automatically: OBP_DEFAULT_INCOMING_ACCOUNT_ID and OBP_DEFAULT_OUTGOING_ACCOUNT_ID
Those two accounts have EUR as default currency.

If you want to create default settlement account for a specific currency, you can fill the payment_system field with the DEFAULT value.

When a transaction is saved in OBP through the mapped connector, OBP-API look for the account to save the double-entry transaction.
If no OBP account can be found from the counterparty, the double-entry transaction will be saved on a bank settlement account.
- First, the mapped connector looks for a settlement account specific to the payment system and currency. E.g SEPA_SETTLEMENT_ACCOUNT_EUR.
- If we don't find any specific settlement account with the payment system, we look for a default settlement account for the counterparty currency. E.g DEFAULT_SETTLEMENT_ACCOUNT_EUR.
- Else, we select one of the two OBP default settlement accounts (OBP_DEFAULT_INCOMING_ACCOUNT_ID/OBP_DEFAULT_OUTGOING_ACCOUNT_ID) according to the transaction direction.

If the POST body USER_ID is specified, the logged in user must have the Role CanCreateAccount. Once created, the Account will be owned by the User specified by USER_ID.

If the POST body USER_ID is not specified, the account will be owned by the logged in User.

Note: The Amount MUST be zero.

Authentication is Mandatory

Typical Successful Response:

								
									
{ "account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0", "user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1", "payment_system":"SEPA", "balance":{ "currency":"EUR", "amount":"0" }, "label":"My Account", "branch_id":"DERBY6", "account_routings":[{ "scheme":"AccountNumber", "address":"4930396" }], "account_attributes":[{ "product_code":"saving1", "account_attribute_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f", "name":"OVERDRAFT_START_DATE", "type":"DATE_WITH_DAY", "value":"2012-04-23" }] }
Headers:

								
									
Required Roles:
  • CanCreateSettlementAccountAtOneBank - Please login to request this Role
Possible Errors:
  • OBP-10001: Incorrect json format.
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20006: User is missing one or more roles:
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-30112: Invalid Number. Initial balance must be a number, e.g 1000.00
  • OBP-30109: Initial Balance of Account must be Zero (0).
  • OBP-10003: Invalid Currency Value. It should be three letters ISO Currency Code.
  • OBP-50000: Unknown Error.
Implemented in OBPv4.0.0 by createSettlementAccount

Create Transaction Type at bank

Create Transaction Types for the bank specified by BANK_ID:

  • id : Unique transaction type id across the API instance. SHOULD be a UUID. MUST be unique.
  • bank_id : The bank that supports this TransactionType
  • short_code : A short code (SHOULD have no-spaces) which MUST be unique across the bank. May be stored with Transactions to link here
  • summary : A succinct summary
  • description : A longer description
  • charge : The charge to the customer for each one of these

Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":{ "value":"123" }, "bankId":{ "value":"gh.uk.9j" }, "shortCode":"80080", "summary":"SANDBOX_TAN", "description":"This is the sandbox mode, charging litter money.", "charge":{ "currency":"EUR", "amount":"100" } }
Headers:

								
									
Required Roles:
  • CanCreateTransactionType - Please login to request this Role
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-10001: Incorrect json format.
  • OBP-40005: Insufficient authorisation to Create Transaction Type offered by the bank. The Request could not be created because you don't have access to CanCreateTransactionType.
  • OBP-50000: Unknown Error.
  • OBP-20006: User is missing one or more roles:
Connector Methods:
Implemented in OBPv2.1.0 by createTransactionType

Get Bank

Get the bank specified by BANK_ID
Returns information about a single bank specified by BANK_ID including:

  • Short and full name of bank
  • Logo URL
  • Website

Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"gh.29.uk", "short_name":"short_name ", "full_name":"full_name", "logo":"logo", "website":"www.openbankproject.com", "bank_routings":[{ "scheme":"Bank_ID", "address":"gh.29.uk" }] }
Headers:

								
									
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-50000: Unknown Error.
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
Connector Methods:
Implemented in OBPv3.0.0 by bankById

Get Banks

Get banks on this API instance
Returns a list of banks supported on this server:

  • ID used as parameter in URLs
  • Short and full name of bank
  • Logo URL
  • Website

Authentication is Optional

Typical Successful Response:

								
									
{ "banks":[{ "id":"gh.29.uk", "short_name":"short_name ", "full_name":"full_name", "logo":"logo", "website":"www.openbankproject.com", "bank_routings":[{ "scheme":"Bank_ID", "address":"gh.29.uk" }] }] }
Headers:

								
									
Possible Errors:
  • OBP-50000: Unknown Error.
Implemented in OBPv4.0.0 by getBanks

Get Settlement accounts at Bank

Get settlement accounts on this API instance
Returns a list of settlement accounts at this Bank

Note: a settlement account is considered as a bank account.
So you can update it and add account attributes to it using the regular account endpoints

Authentication is Mandatory

Typical Successful Response:

								
									
{ "settlement_accounts":[{ "account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0", "payment_system":"SEPA", "balance":{ "currency":"EUR", "amount":"0" }, "label":"My Account", "branch_id":"DERBY6", "account_routings":[{ "scheme":"AccountNumber", "address":"4930396" }], "account_attributes":[{ "product_code":"saving1", "account_attribute_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f", "name":"OVERDRAFT_START_DATE", "type":"DATE_WITH_DAY", "value":"2012-04-23" }] }] }
Headers:

								
									
Required Roles:
  • CanGetSettlementAccountAtOneBank - Please login to request this Role
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20006: User is missing one or more roles:
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-50000: Unknown Error.
Implemented in OBPv4.0.0 by getSettlementAccounts

Get Transaction Types at Bank

Get Transaction Types for the bank specified by BANK_ID:

Lists the possible Transaction Types available at the bank (as opposed to Transaction Request Types which are the possible ways Transactions can be created by this API Server).

  • id : Unique transaction type id across the API instance. SHOULD be a UUID. MUST be unique.
  • bank_id : The bank that supports this TransactionType
  • short_code : A short code (SHOULD have no-spaces) which MUST be unique across the bank. May be stored with Transactions to link here
  • summary : A succinct summary
  • description : A longer description
  • charge : The charge to the customer for each one of these

Authentication is Optional

Typical Successful Response:

								
									
{ "transaction_types":[{ "id":{ "value":"123" }, "bank_id":"gh.29.uk", "short_code":"PlaceholderString", "summary":"PlaceholderString", "description":"PlaceholderString", "charge":{ "currency":"EUR", "amount":"0" } }] }
Headers:

								
									
Possible Errors:
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-50000: Unknown Error.
Connector Methods:
Implemented in OBPv2.0.0 by getTransactionTypes

Get Branch

Returns information about a single Branch specified by BANK_ID and BRANCH_ID including:

  • Name
  • Address
  • Geo Location
  • License the data under this endpoint is released under.

Authentication is Optional

Typical Successful Response:

								
									
{ "id":"branch-id-123", "bank_id":"bank-id-123", "name":"Branch by the Lake", "address":{ "line_1":"No 1 the Road", "line_2":"The Place", "line_3":"The Hill", "city":"Berlin", "county":"String", "state":"Brandenburg", "postcode":"13359", "country_code":"DE" }, "location":{ "latitude":10.0, "longitude":10.0 }, "meta":{ "license":{ "id":"PDDL", "name":"Open Data Commons Public Domain Dedication and License " } }, "lobby":{ "monday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "tuesday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "wednesday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "thursday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "friday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "saturday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "sunday":[{ "opening_time":"10:00", "closing_time":"18:00" }] }, "drive_up":{ "monday":{ "opening_time":"10:00", "closing_time":"18:00" }, "tuesday":{ "opening_time":"10:00", "closing_time":"18:00" }, "wednesday":{ "opening_time":"10:00", "closing_time":"18:00" }, "thursday":{ "opening_time":"10:00", "closing_time":"18:00" }, "friday":{ "opening_time":"10:00", "closing_time":"18:00" }, "saturday":{ "opening_time":"10:00", "closing_time":"18:00" }, "sunday":{ "opening_time":"10:00", "closing_time":"18:00" } }, "branch_routing":{ "scheme":"OBP", "address":"123abc" }, "is_accessible":"true", "accessibleFeatures":"wheelchair, atm usuable by the visually impaired", "branch_type":"Full service store", "more_info":"short walk to the lake from here", "phone_number":"+381631954907" }
Headers:

								
									
Possible Errors:
  • OBP-300010: Branch not found. Please specify a valid value for BRANCH_ID. Or License may not be set. meta.license.id and meta.license.name can not be empty
  • OBP-50000: Unknown Error.
Implemented in OBPv3.0.0 by getBranch

Get Branches for a Bank

Returns information about branches for a single bank specified by BANK_ID including:

  • Name
  • Address
  • Geo Location
  • License the data under this endpoint is released under
  • Structured opening hours
  • Accessible flag
  • Branch Type
  • More Info

Pagination:

By default, 50 records are returned.

You can use the url query parameters limit and offset for pagination
You can also use the follow url query parameters:

  • city - string, find Branches those in this city, optional

  • withinMetersOf - number, find Branches within given meters distance, optional

  • nearLatitude - number, a position of latitude value, cooperate with withMetersOf do query filter, optional
  • nearLongitude - number, a position of longitude value, cooperate with withMetersOf do query filter, optional

note: withinMetersOf, nearLatitude and nearLongitude either all empty or all have value.

Authentication is Optional

Typical Successful Response:

								
									
{ "branches":[{ "id":"branch-id-123", "bank_id":"bank-id-123", "name":"Branch by the Lake", "address":{ "line_1":"No 1 the Road", "line_2":"The Place", "line_3":"The Hill", "city":"Berlin", "county":"String", "state":"Brandenburg", "postcode":"13359", "country_code":"DE" }, "location":{ "latitude":10.0, "longitude":10.0 }, "meta":{ "license":{ "id":"PDDL", "name":"Open Data Commons Public Domain Dedication and License " } }, "lobby":{ "monday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "tuesday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "wednesday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "thursday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "friday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "saturday":[{ "opening_time":"10:00", "closing_time":"18:00" }], "sunday":[{ "opening_time":"10:00", "closing_time":"18:00" }] }, "drive_up":{ "monday":{ "opening_time":"10:00", "closing_time":"18:00" }, "tuesday":{ "opening_time":"10:00", "closing_time":"18:00" }, "wednesday":{ "opening_time":"10:00", "closing_time":"18:00" }, "thursday":{ "opening_time":"10:00", "closing_time":"18:00" }, "friday":{ "opening_time":"10:00", "closing_time":"18:00" }, "saturday":{ "opening_time":"10:00", "closing_time":"18:00" }, "sunday":{ "opening_time":"10:00", "closing_time":"18:00" } }, "branch_routing":{ "scheme":"OBP", "address":"123abc" }, "is_accessible":"true", "accessibleFeatures":"wheelchair, atm usuable by the visually impaired", "branch_type":"Full service store", "more_info":"short walk to the lake from here", "phone_number":"+381631954907" }] }
Headers:

								
									
Possible Errors:
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-32001: No branches available. License may not be set.
  • OBP-50000: Unknown Error.
Implemented in OBPv3.0.0 by getBranches

Get Transaction Request Types at Bank

Get the list of the Transaction Request Types supported by the bank.

Authentication is Optional

Typical Successful Response:

								
									
{ "transaction_request_types":[{ "transaction_request_type":"SandboxTan" }] }
Headers:

								
									
Possible Errors:
  • OBP-50000: Unknown Error.
Connector Methods:
Implemented in OBPv2.1.0 by getTransactionRequestTypesSupportedByBank

Create an Account Webhook

Create an Account Webhook

Webhooks are used to call external URLs when certain events happen.

Account Webhooks focus on events around accounts.

For instance, a webhook could be used to notify an external service if a balance changes on an account.

This functionality is work in progress! Please note that only implemented trigger is: OnBalanceChange

Authentication is Mandatory

Typical Successful Response:

								
									
{ "account_webhook_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f", "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0", "trigger_name":"OnBalanceChange", "url":"https://localhost.openbankproject.com", "http_method":"POST", "http_protocol":"HTTP/1.1", "created_by_user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1", "is_active":true }
Headers:

								
									
Required Roles:
  • CanCreateWebhook - Please login to request this Role
Possible Errors:
  • OBP-50000: Unknown Error.
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20006: User is missing one or more roles:
Implemented in OBPv3.1.0 by createAccountWebhook

Enable/Disable an Account Webhook

Enable/Disable an Account Webhook

Webhooks are used to call external URLs when certain events happen.

Account Webhooks focus on events around accounts.

For instance, a webhook could be used to notify an external service if a balance changes on an account.

This functionality is work in progress! Please note that only implemented trigger is: OnBalanceChange

Authentication is Mandatory

Typical Successful Response:

								
									
{ "account_webhook_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f", "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0", "trigger_name":"OnBalanceChange", "url":"https://localhost.openbankproject.com", "http_method":"POST", "http_protocol":"HTTP/1.1", "created_by_user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1", "is_active":true }
Headers:

								
									
Required Roles:
  • CanUpdateWebhook - Please login to request this Role
Possible Errors:
  • OBP-50000: Unknown Error.
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20006: User is missing one or more roles:
Implemented in OBPv3.1.0 by enableDisableAccountWebhook

Get Account Webhooks

Get Account Webhooks.

Possible custom URL parameters for pagination:

Possible custom headers for pagination:

  • limit=NUMBER ==> default value: 50
  • offset=NUMBER ==> default value: 0

eg1:?limit=100&offset=0

  • sort_direction=ASC/DESC ==> default value: DESC.

eg2:?limit=100&offset=0&sort_direction=ASC

  • account_id=STRING (if null ignore)
  • user_id=STRING (if null ignore)

Authentication is Mandatory

Typical Successful Response:

								
									
{ "web_hooks":[{ "account_webhook_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f", "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0", "trigger_name":"OnBalanceChange", "url":"https://localhost.openbankproject.com", "http_method":"POST", "http_protocol":"HTTP/1.1", "created_by_user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1", "is_active":true }] }
Headers:

								
									
Required Roles:
  • CanGetWebhooks - Please login to request this Role
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20006: User is missing one or more roles:
  • OBP-50000: Unknown Error.
Implemented in OBPv3.1.0 by getAccountWebhooks