API Explorer
v4.0.0 filtered by tag: Bank, Bank-Branch, Bank-ATM, Bank-Product, Bank-FX (13 APIs)
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
JSON request body fields:
JSON response body fields:
{
"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"
}]
}
-
CanCreateBank
- Please login to request this Role
- 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:
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON request body fields:
-
amount: 10.12
-
balance: 10
-
branch_id: DERBY6
-
currency: EUR
-
label: My Account
-
payment_system: SEPA
-
user_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
JSON response body fields:
-
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
amount: 10.12
-
balance: 10
-
branch_id: DERBY6
-
currency: EUR
-
label: My Account
-
payment_system: SEPA
-
user_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
-
value: 5987953
{
"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"
}]
}
-
CanCreateSettlementAccountAtOneBank
- Please login to request this Role
- 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.
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
{
"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"
}
}
-
CanCreateTransactionType
- Please login to request this Role
- 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:
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
{
"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"
}]
}
- 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.
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
JSON response body fields:
{
"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"
}]
}]
}
- OBP-50000: Unknown Error.
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
-
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
amount: 10.12
-
balance: 10
-
branch_id: DERBY6
-
currency: EUR
-
label: My Account
-
payment_system: SEPA
-
value: 5987953
{
"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"
}]
}]
}
-
CanGetSettlementAccountAtOneBank
- Please login to request this Role
- 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.
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
{
"transaction_types":[{
"id":{
"value":"123"
},
"bank_id":"gh.29.uk",
"short_code":"PlaceholderString",
"summary":"PlaceholderString",
"description":"PlaceholderString",
"charge":{
"currency":"EUR",
"amount":"0"
}
}]
}
- OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
- OBP-50000: Unknown Error.
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
URL Parameters:
JSON response body fields:
-
bank_id: gh.29.uk
-
is_accessible: true
-
latitude: 38.8951
-
longitude: -77.0364
{
"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"
}
- 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.
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
-
bank_id: gh.29.uk
-
is_accessible: true
-
latitude: 38.8951
-
longitude: -77.0364
{
"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"
}]
}
- 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.
Get Transaction Request Types at Bank
Get the list of the Transaction Request Types supported by the bank.
Authentication is Optional
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
- transaction_request_type: SEPA
{
"transaction_request_types":[{
"transaction_request_type":"SandboxTan"
}]
}
- OBP-50000: Unknown Error.
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON request body fields:
-
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
JSON response body fields:
-
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
bank_id: gh.29.uk
{
"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
}
-
CanCreateWebhook
- Please login to request this Role
- OBP-50000: Unknown Error.
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
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
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
-
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
bank_id: gh.29.uk
{
"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
}
-
CanUpdateWebhook
- Please login to request this Role
- OBP-50000: Unknown Error.
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
Get Account Webhooks
Get Account Webhooks.
Possible custom URL parameters for pagination:
Possible custom url parameters 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
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
-
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
bank_id: gh.29.uk
{
"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
}]
}
-
CanGetWebhooks
- Please login to request this Role
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.