API Explorer

UK Open Banking APIs v3.0.0 (all tags) (34)

Bank

Accounts

Counterparties

Transactions

The configuration of the API

Returns information about:

  • Akka ports
  • Elastic search ports
  • Cached function
Typical Successful Response:

								
									
{ "akka":{ "ports":[{ "property":"default", "value":"8080" }], "log_level":"Debug" }, "elastic_search":{ "metrics":[{ "property":"String", "value":"Mapper" }], "warehouse":[{ "property":"String", "value":"ElasticSearch" }] }, "cache":[{ "function_name":"getBanks", "ttl_in_seconds":5 }] }
Required Roles:
  • CanGetConfig - 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.
Implmented in 2_2_0 by config

The root of the API

Returns information about:

  • API version
  • Hosted by information
  • Git Commit
Typical Successful Response:

								
									
{ "version":"String", "version_status":"String", "git_commit":"String", "connector":"String", "hosted_by":{ "organisation":"String", "email":"String", "phone":"String" }, "akka":{ "remote_data_secret_matched":true } }
Possible Errors:
  • OBP-50000: Unknown Error.
  • no connector set
Implmented in 1_2_1 by root

Create ATM

Create ATM for the Bank.

Authentication is Mandatory

OBP-20006: User is missing one or more roles: CanCreateAtm OR CanCreateAtmAtAnyBank

Typical Successful Response:

								
									
{ "id":"atm-id-123", "bank_id":"bank-id-123", "name":"Atm by the Lake", "address":{ "line_1":"No 1 the Road", "line_2":"The Place", "line_3":"The Hill", "city":"Berlin", "county":"", "state":"Brandenburg", "postcode":"13359", "country_code":"DE" }, "location":{ "latitude":11.45, "longitude":11.45 }, "meta":{ "license":{ "id":"5", "name":"TESOBE" } }, "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" }, "is_accessible":"true", "located_at":"Full service store", "more_info":"short walk to the lake from here", "has_deposit_capability":"true" }
Required Roles:
  • CanCreateAtm - Please login to request this Role
  • CanCreateAtmAtAnyBank - 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-20006: User is missing one or more roles:
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by createAtm

Get Bank ATM

Returns information about ATM for a single bank specified by BANK_ID and ATM_ID including:

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

Authentication is Optional

Typical Successful Response:

								
									
{ "id":"atm-id-123", "bank_id":"bank-id-123", "name":"Atm by the Lake", "address":{ "line_1":"No 1 the Road", "line_2":"The Place", "line_3":"The Hill", "city":"Berlin", "county":"", "state":"Brandenburg", "postcode":"13359", "country_code":"DE" }, "location":{ "latitude":11.45, "longitude":11.45 }, "meta":{ "license":{ "id":"5", "name":"TESOBE" } }, "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" }, "is_accessible":"true", "located_at":"Full service store", "more_info":"short walk to the lake from here", "has_deposit_capability":"true" }
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-30009: ATM not found. Please specify a valid value for ATM_ID.
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by getAtm

Get Bank ATMS

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

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

Pagination:

By default, 100 records are returned.

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

Authentication is Optional

Typical Successful Response:

								
									
{ "id":"atm-id-123", "bank_id":"bank-id-123", "name":"Atm by the Lake", "address":{ "line_1":"No 1 the Road", "line_2":"The Place", "line_3":"The Hill", "city":"Berlin", "county":"", "state":"Brandenburg", "postcode":"13359", "country_code":"DE" }, "location":{ "latitude":11.45, "longitude":11.45 }, "meta":{ "license":{ "id":"5", "name":"TESOBE" } }, "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" }, "is_accessible":"true", "located_at":"Full service store", "more_info":"short walk to the lake from here", "has_deposit_capability":"true" }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • No ATMs available. License may not be set.
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by getAtms

Get Accounts at all Banks (Private)

Get private accounts at all banks (Authenticated access) Returns the list of accounts containing private views for the user at all banks. For each account the API returns the ID and the available views.

Authentication is Mandatory

Typical Successful Response:

								
									
{ "accounts":[{ "id":"String", "label":" String", "bank_id":" String", "account_routing":{ "scheme":"String", "address":"String" } }] }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by corePrivateAccountsAllBanks

Get Counterparty by Counterparty Id.

Information returned about the Counterparty specified by COUNTERPARTY_ID:

Authentication is Mandatory

This endpoint works with firehose.

Typical Successful Response:

								
									
{ "name":"CounterpartyName", "description":"My landlord", "created_by_user_id":"49e1e147-64c1-4823-ad9f-89efcd02a9fa", "this_bank_id":"gh.29.uk", "this_account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0", "this_view_id":"owner", "counterparty_id":"1d65db7c-a7b2-4839-af41-958276ab7790", "other_bank_routing_scheme":"bankCode", "other_bank_routing_address":"bankCode", "other_branch_routing_scheme":"bankCode", "other_branch_routing_address":"bankCode", "other_account_routing_scheme":"bankCode", "other_account_routing_address":"bankCode", "other_account_secondary_routing_scheme":"bankCode", "other_account_secondary_routing_address":"bankCode", "is_beneficiary":true, "bespoke":[{ "key":"englishName", "value":"english Name" }], "metadata":{ "public_alias":"String", "more_info":null, "url":null, "image_url":null, "open_corporates_url":null, "corporate_location":null, "physical_location":null, "private_alias":null } }
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-50000: Unknown Error.
Implmented in 2_2_0 by getCounterpartyById

Get Firehose Accounts at one Bank (Firehose)

Get firehose accounts at one bank.

Authentication is Mandatory

Typical Successful Response:

								
									
{ "accounts":[{ "id":"String", "bank_id":"String", "label":"String", "number":"String", "owners":[{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" }], "type":"String", "balance":{ "currency":"EUR", "amount":"10" }, "account_routings":[{ "scheme":"IBAN", "address":"DE89 3704 0044 0532 0130 00" }], "account_rules":[{ "scheme":"OVERDRAFT", "value":"10" }] }] }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by getFirehoseAccountsAtOneBank

Get Firehose Transactions for Account (Firehose)

Get firehose transactions for Account.

Authentication is Mandatory

Typical Successful Response:

								
									
{ "transactions":[{ "id":"String", "this_account":{ "id":"String", "bank_routing":{ "scheme":"Bank_ID", "address":"gh.29.uk" }, "account_routing":{ "scheme":"IBAN", "address":"DE89 3704 0044 0532 0130 00" }, "holders":[{ "name":"OBP", "is_alias":true }] }, "other_account":{ "id":"String", "holder":{ "name":"OBP", "is_alias":true }, "bank_routing":{ "scheme":"Bank_ID", "address":"gh.29.uk" }, "account_routing":{ "scheme":"IBAN", "address":"DE89 3704 0044 0532 0130 00" }, "metadata":{ "public_alias":"NONE", "private_alias":"NONE", "more_info":"www.openbankproject.com", "url":"www.openbankproject.com", "image_url":"www.openbankproject.com", "open_corporates_url":"www.openbankproject.com", "corporate_location":{ "latitude":1.231, "longitude":1.231, "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } }, "physical_location":{ "latitude":1.231, "longitude":1.231, "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } } } }, "details":{ "type":"AC", "description":"GOOD", "posted":"2013-01-22T00:08:00Z", "completed":"2013-01-22T00:08:00Z", "new_balance":{ "currency":"EUR", "amount":"10" }, "value":{ "currency":"EUR", "amount":"10" } }, "metadata":{ "narrative":"NONE", "comments":[{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "value":"OBP", "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } }], "tags":[{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "value":"OBP", "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } }], "images":[{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "label":"NONE", "url":"www.openbankproject.com", "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } }], "where":{ "latitude":1.231, "longitude":1.231, "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } } } }] }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-00009: Firehose views not allowed on this instance. Please set allow_firehose_views = true in props files.
  • OBP-20006: User is missing one or more roles:
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by getFirehoseTransactionsForBankAccount

Get private accounts at one bank.

Returns the list of private accounts at BANK_ID that the user has access to. For each account the API returns the ID and the available views.

If you want to see more information on the Views, use the Account Detail call. If you want less information about the account, use the /my accounts call

Authentication is Mandatory

Typical Successful Response:

								
									
{ "accounts":[{ "id":"String", "label":" String", "bank_id":" String", "account_routing":{ "scheme":"String", "address":"String" } }] }
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-50000: Unknown Error.
Implmented in 3_0_0 by privateAccountsAtOneBank

Get private accounts ids at one bank.

Returns the list of private accounts ids at BANK_ID that the user has access to. For each account the API returns the ID

If you want to see more information on the Views, use the Account Detail call.

Authentication is Mandatory

Typical Successful Response:

								
									
{ "accounts":[{ "id":"String" }] }
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-50000: Unknown Error.
Implmented in 3_0_0 by getPrivateAccountIdsbyBankId

Create Bank

Create a new bank (Authenticated access). Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"gh.29.uk.x", "full_name":"uk", "short_name":"uk", "logo_url":"https://static.openbankproject.com/images/sandbox/bank_x.png", "website_url":"https://www.example.com", "swift_bic":"IIIGGB22", "national_identifier":"UK97ZZZ1234567890", "bank_routing":{ "scheme":"BIC", "address":"OKOYFIHH" } }
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.
Implmented in 2_2_0 by createBank

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
Typical Successful Response:

								
									
{ "id":"gh.29.uk", "short_name":"short_name ", "full_name":"full_name", "logo":"logo", "website":"www.openbankproject.com", "bank_routing":{ "scheme":"Bank_ID", "address":"gh.29.uk" } }
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.
Implmented in 1_2_1 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
Typical Successful Response:

								
									
{ "banks":[{ "id":"gh.29.uk", "short_name":"short_name ", "full_name":"full_name", "logo":"logo", "website":"www.openbankproject.com", "bank_routing":{ "scheme":"Bank_ID", "address":"gh.29.uk" } }] }
Possible Errors:
  • OBP-50000: Unknown Error.
Implmented in 1_2_1 by getBanks

Create Branch

Create Branch for the Bank.

Authentication is Mandatory

OBP-20006: User is missing one or more roles: CanCreateBranch entitlements are required OR CanCreateBranchAtAnyBank

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", "branch_type":"Full service store", "more_info":"short walk to the lake from here", "phone_number":"+381631954907" }
Required Roles:
  • CanCreateBranch - Please login to request this Role
  • CanCreateBranchAtAnyBank - 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-30209: Insufficient authorisation to Create Branch. You do not have the role CanCreateBranch.
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by createBranch

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", "branch_type":"Full service store", "more_info":"short walk to the lake from here", "phone_number":"+381631954907" }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • License may not be set. meta.license.id and eta.license.name can not be empty
  • OBP-50000: Unknown Error.
Implmented in 3_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, 100 records are returned.

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

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", "branch_type":"Full service store", "more_info":"short walk to the lake from here", "phone_number":"+381631954907" }] }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • No branches available. License may not be set.
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by getBranches

Update Branch

Update an existing branch for a bank account (Authenticated access). Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"String", "name":"String", "address":{ "line_1":"Osloer Straße 16/17", "line_2":"Wedding", "line_3":"", "city":"Berlin", "state":"Berlin Brandenburg", "postcode":"13359", "country":"DE" }, "location":{ "latitude":11.45, "longitude":11.45 }, "lobby":{ "hours":"5" }, "drive_up":{ "hours":"5" }, "meta":{ "license":{ "id":"5", "name":"TESOBE" } }, "branch_routing":{ "scheme":"String", "address":"String" } }
Required Roles:
  • CanCreateBranch - 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-30209: Insufficient authorisation to Create Branch. You do not have the role CanCreateBranch.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by updateBranch

Get Counterparties of one Account.

Get the counterparties for the account / view.

Authentication is Mandatory

This endpoint works with firehose.

Typical Successful Response:

								
									
{ "counterparties":[{ "name":"CounterpartyName", "description":"My landlord", "created_by_user_id":"49e1e147-64c1-4823-ad9f-89efcd02a9fa", "this_bank_id":"gh.29.uk", "this_account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0", "this_view_id":"owner", "counterparty_id":"1d65db7c-a7b2-4839-af41-958276ab7790", "other_bank_routing_scheme":"bankCode", "other_bank_routing_address":"bankCode", "other_branch_routing_scheme":"bankCode", "other_branch_routing_address":"bankCode", "other_account_routing_scheme":"bankCode", "other_account_routing_address":"bankCode", "other_account_secondary_routing_scheme":"bankCode", "other_account_secondary_routing_address":"bankCode", "is_beneficiary":true, "bespoke":[{ "key":"englishName", "value":"english Name" }] }] }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
  • OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID
  • OBP-30022: The current view does not have the permission:
  • OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.
  • OBP-50000: Unknown Error.
Implmented in 2_2_0 by getCounterpartiesForAccount

Get Other Account by Id.

Returns data about the Other Account that has shared at least one transaction with ACCOUNT_ID at BANK_ID. Authentication is Optional

Authentication is required if the view is not public.

Typical Successful Response:

								
									
{ "id":"String", "holder":{ "name":"OBP", "is_alias":true }, "bank_routing":{ "scheme":"Bank_ID", "address":"gh.29.uk" }, "account_routing":{ "scheme":"IBAN", "address":"DE89 3704 0044 0532 0130 00" }, "metadata":{ "public_alias":"NONE", "private_alias":"NONE", "more_info":"www.openbankproject.com", "url":"www.openbankproject.com", "image_url":"www.openbankproject.com", "open_corporates_url":"www.openbankproject.com", "corporate_location":{ "latitude":1.231, "longitude":1.231, "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } }, "physical_location":{ "latitude":1.231, "longitude":1.231, "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } } } }
Possible Errors:
  • OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by getOtherAccountByIdForBankAccount

Get Other Accounts of one Account.

Returns data about all the other accounts that have shared at least one transaction with the ACCOUNT_ID at BANK_ID. Authentication is Optional

Authentication is required if the view VIEW_ID is not public.

Typical Successful Response:

								
									
{ "other_accounts":[{ "id":"String", "holder":{ "name":"OBP", "is_alias":true }, "bank_routing":{ "scheme":"Bank_ID", "address":"gh.29.uk" }, "account_routing":{ "scheme":"IBAN", "address":"DE89 3704 0044 0532 0130 00" }, "metadata":{ "public_alias":"NONE", "private_alias":"NONE", "more_info":"www.openbankproject.com", "url":"www.openbankproject.com", "image_url":"www.openbankproject.com", "open_corporates_url":"www.openbankproject.com", "corporate_location":{ "latitude":1.231, "longitude":1.231, "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } }, "physical_location":{ "latitude":1.231, "longitude":1.231, "date":"2013-01-22T00:08:00Z", "user":{ "id":"5995d6a2-01b3-423c-a173-5481df49bdaf", "provider":"OBP", "display_name":"OBP" } } } }] }
Possible Errors:
  • OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
  • OBP-50000: Unknown Error.
Implmented in 3_0_0 by getOtherAccountsForBankAccount

Create Fx

Create or Update Fx for the Bank.

Authentication is Mandatory

OBP-20006: User is missing one or more roles: CanCreateFxRate OR CanCreateFxRateAtAnyBank

Typical Successful Response:

								
									
{ "bank_id":"bankid123", "from_currency_code":"EUR", "to_currency_code":"USD", "conversion_value":1.0, "inverse_conversion_value":1.0, "effective_date":"2013-01-22T00:08:00Z" }
Required Roles:
  • CanCreateFxRate - Please login to request this Role
  • CanCreateFxRateAtAnyBank - 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-20006: User is missing one or more roles:
  • OBP-50000: Unknown Error.
Implmented in 2_2_0 by createFx

Create Product

Create or Update Product for the Bank.

Authentication is Mandatory

OBP-20006: User is missing one or more roles: CanCreateProduct OR CanCreateProductAtAnyBank

Typical Successful Response:

								
									
{ "bank_id":"bankid123", "code":"prod1", "name":"product name", "category":"category", "family":"family", "super_family":"super family", "more_info_url":"www.example.com/prod1/more-info.html", "details":"Details", "description":"Description", "meta":{ "license":{ "id":"5", "name":"TESOBE" } } }
Required Roles:
  • CanCreateProduct - Please login to request this Role
  • CanCreateProductAtAnyBank - 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-20006: User is missing one or more roles:
  • OBP-50000: Unknown Error.
Implmented in 2_2_0 by createProduct

Get Bank Product

Returns information about the financial products offered by a bank specified by BANK_ID and PRODUCT_CODE including:

  • Name
  • Code
  • Category
  • Family
  • Super Family
  • More info URL
  • Description
  • Terms and Conditions
  • License the data under this endpoint is released under Authentication is Optional
Typical Successful Response:

								
									
{ "bank_id":"bankid123", "code":"prod1", "name":"product name", "category":"category", "family":"family", "super_family":"super family", "more_info_url":"www.example.com/prod1/more-info.html", "details":"Details", "description":"Description", "meta":{ "license":{ "id":"5", "name":"TESOBE" } } }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30011: Product not found. Please specify a valid value for PRODUCT_CODE.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by getProduct

Get Bank Products

Returns information about the financial products offered by a bank specified by BANK_ID including:

  • Name
  • Code
  • Category
  • Family
  • Super Family
  • More info URL
  • Description
  • Terms and Conditions
  • License the data under this endpoint is released under Authentication is Optional
Typical Successful Response:

								
									
{ "products":[{ "bank_id":"bankid123", "code":"prod1", "name":"product name", "category":"category", "family":"family", "super_family":"super family", "more_info_url":"www.example.com/prod1/more-info.html", "details":"Details", "description":"Description", "meta":{ "license":{ "id":"5", "name":"TESOBE" } } }] }
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-30011: Product not found. Please specify a valid value for PRODUCT_CODE.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by getProducts

Get Entitlements for User at Bank.

Get Entitlements specified by BANK_ID and USER_ID

Authentication is Mandatory

Typical Successful Response:

								
									
{ "list":[{ "entitlement_id":"6fb17583-1e49-4435-bb74-a14fe0996723", "role_name":"CanQueryOtherUser", "bank_id":"gh.29.uk" }] }
Required Roles:
  • CanGetEntitlementsForAnyUserAtOneBank - Please login to request this Role
  • CanGetEntitlementsForAnyUserAtAnyBank - 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.
Implmented in 2_1_0 by getEntitlementsByBankAndUser

Get Roles

Returns all available roles

Authentication is Mandatory

Typical Successful Response:

								
									
{ "roles":[{ "role":"eBranch", "requires_bank_id":true }] }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by getRoles

Answer Transaction Request Challenge.

In Sandbox mode, any string that can be converted to a positive integer will be accepted as an answer.

This endpoint totally depends on createTransactionRequest, it need get the following data from createTransactionRequest response body.

1)TRANSACTION_REQUEST_TYPE : is the same as createTransactionRequest request URL .

2)TRANSACTION_REQUEST_ID : is the id field in createTransactionRequest response body.

3) id : is challenge.id field in createTransactionRequest response body.

4) answer : is challenge.answer can be any Interge in sandbox mode.

This endpoint works with firehose.

Typical Successful Response:

								
									
{ "id":"82f92531-9c63-4246-abfc-96c20ec46188", "type":"SANDBOX_TAN", "from":{ "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0" }, "details":{ }, "transaction_ids":"666666-9c63-4246-abfc-96c20ec46188", "status":"COMPLETED", "start_date":"2013-01-22T00:08:00Z", "end_date":"2013-01-22T00:08:00Z", "challenge":{ "id":"be1a183d-b301-4b83-b855-5eeffdd3526f", "allowed_attempts":3, "challenge_type":"SANDBOX_TAN" }, "charge":{ "summary":"Good", "value":{ "currency":"EUR", "amount":"10" } } }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-10001: Incorrect json format.
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.
  • OBP-40011: Transaction Request Status is not INITIATED.
  • OBP-40009: The TRANSACTION_REQUEST_TYPE has changed.
  • OBP-40010: Invalid Challenge Id. Please specify a valid value for CHALLENGE_ID.
  • OBP-40014: Sorry, you've used up your allowed attempts.
  • OBP-00003: Transaction Requests is disabled in this API instance.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by answerTransactionRequestChallenge

Create Transaction Request (COUNTERPARTY)

Special instructions for COUNTERPARTY:

When using a COUNTERPARTY to create a Transaction Request, specificy the counterparty_id in the body of the request. The routing details of the counterparty will be forwarded for the transfer.

Initiate a Payment via creating a Transaction Request.

In OBP, a transaction request may or may not result in a transaction. However, a transaction only has one possible state: completed.

A Transaction Request can have one of several states.

Transactions are modeled on items in a bank statement that represent the movement of money.

Transaction Requests are requests to move money which may or may not succeeed and thus result in a Transaction.

A Transaction Request might create a security challenge that needs to be answered before the Transaction Request proceeds.

Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).

Transaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response. This provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.

The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.

In sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to SANDBOX_TAN. See getTransactionRequestTypesSupportedByBank for all supported types.

In sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.

If a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.

You can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.

The following static FX rates are available in sandbox mode:

{ "XAF":{ "AUD":1.0, "KRW":1.87975, "JOD":1.0, "GBP":0.00131092, "AED":0.00601555, "INR":0.110241, "JPY":0.185328, "USD":0.00163773, "EUR":0.00152449 }, "AUD":{ "XAF":762.826, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":0.79, "EUR":0.67 }, "KRW":{ "XAF":0.531986, "AUD":1.0, "JOD":1.0, "GBP":6.97389E-4, "AED":0.00320019, "INR":0.0586469, "JPY":0.0985917, "USD":8.7125E-4, "EUR":8.11008E-4 }, "JOD":{ "XAF":1.0, "AUD":1.0, "KRW":1.0, "GBP":1.0, "AED":1.0, "INR":1.0, "JPY":1.0, "USD":1.0, "EUR":1.0 }, "GBP":{ "XAF":762.826, "AUD":1.0, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":1.2493, "EUR":1.16278 }, "AED":{ "XAF":166.236, "AUD":1.0, "KRW":312.482, "GBP":0.217921, "AED":1.0, "INR":18.3255, "JPY":30.8081, "USD":0.27225, "EUR":0.253425 }, "INR":{ "XAF":9.07101, "AUD":1.0, "KRW":17.0512, "JOD":1.0, "GBP":0.0118913, "AED":0.0545671, "JPY":1.68111, "USD":0.0148559, "EUR":0.0138287 }, "JPY":{ "XAF":5.39585, "AUD":1.0, "KRW":10.1428, "JOD":1.0, "GBP":0.0070735, "AED":0.032459, "INR":0.594846, "USD":0.00883695, "EUR":0.00822592 }, "USD":{ "XAF":610.601, "AUD":1.0, "KRW":1147.78, "JOD":1.0, "GBP":0.800446, "AED":3.6731, "INR":67.3135, "JPY":113.161, "EUR":0.930886 }, "EUR":{ "XAF":655.957, "AUD":1.0, "KRW":1233.03, "JOD":1.0, "GBP":0.860011, "AED":3.94594, "INR":72.3136, "JPY":121.567, "USD":1.07428 } }

Transaction Requests satisfy PSD2 requirements thus:

1) A transaction can be initiated by a third party application.

2) The customer is informed of the charge that will incurred.

3) The call supports delegated authentication (OAuth)

See this python code for a complete example of this flow.

There is further documentation here

Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"4050046c-63b3-4868-8a22-14b4181d33a6", "type":"SANDBOX_TAN", "from":{ "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0" }, "details":{ }, "transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"], "status":"COMPLETED", "start_date":"2013-01-22T00:08:00Z", "end_date":"2013-01-22T00:08:00Z", "challenge":{ "id":"be1a183d-b301-4b83-b855-5eeffdd3526f", "allowed_attempts":3, "challenge_type":"SANDBOX_TAN" }, "charge":{ "summary":"Good", "value":{ "currency":"EUR", "amount":"10" } } }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-10001: Incorrect json format.
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.
  • OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID
  • OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because you don't have access to the owner view of the from account or you don't have access to canCreateAnyTransactionRequest.
  • OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.
  • OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE
  • OBP-10001: Incorrect json format.
  • OBP-10002: Invalid Number. Could not convert value to a number.
  • OBP-40008: Can't send a payment with a value of 0 or less.
  • OBP-40003: Transaction Request Currency must be the same as From Account Currency.
  • OBP-00003: Transaction Requests is disabled in this API instance.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by createTransactionRequestCouterparty

Create Transaction Request (FREE_FORM).

Initiate a Payment via creating a Transaction Request.

In OBP, a transaction request may or may not result in a transaction. However, a transaction only has one possible state: completed.

A Transaction Request can have one of several states.

Transactions are modeled on items in a bank statement that represent the movement of money.

Transaction Requests are requests to move money which may or may not succeeed and thus result in a Transaction.

A Transaction Request might create a security challenge that needs to be answered before the Transaction Request proceeds.

Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).

Transaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response. This provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.

The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.

In sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to SANDBOX_TAN. See getTransactionRequestTypesSupportedByBank for all supported types.

In sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.

If a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.

You can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.

The following static FX rates are available in sandbox mode:

{ "XAF":{ "AUD":1.0, "KRW":1.87975, "JOD":1.0, "GBP":0.00131092, "AED":0.00601555, "INR":0.110241, "JPY":0.185328, "USD":0.00163773, "EUR":0.00152449 }, "AUD":{ "XAF":762.826, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":0.79, "EUR":0.67 }, "KRW":{ "XAF":0.531986, "AUD":1.0, "JOD":1.0, "GBP":6.97389E-4, "AED":0.00320019, "INR":0.0586469, "JPY":0.0985917, "USD":8.7125E-4, "EUR":8.11008E-4 }, "JOD":{ "XAF":1.0, "AUD":1.0, "KRW":1.0, "GBP":1.0, "AED":1.0, "INR":1.0, "JPY":1.0, "USD":1.0, "EUR":1.0 }, "GBP":{ "XAF":762.826, "AUD":1.0, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":1.2493, "EUR":1.16278 }, "AED":{ "XAF":166.236, "AUD":1.0, "KRW":312.482, "GBP":0.217921, "AED":1.0, "INR":18.3255, "JPY":30.8081, "USD":0.27225, "EUR":0.253425 }, "INR":{ "XAF":9.07101, "AUD":1.0, "KRW":17.0512, "JOD":1.0, "GBP":0.0118913, "AED":0.0545671, "JPY":1.68111, "USD":0.0148559, "EUR":0.0138287 }, "JPY":{ "XAF":5.39585, "AUD":1.0, "KRW":10.1428, "JOD":1.0, "GBP":0.0070735, "AED":0.032459, "INR":0.594846, "USD":0.00883695, "EUR":0.00822592 }, "USD":{ "XAF":610.601, "AUD":1.0, "KRW":1147.78, "JOD":1.0, "GBP":0.800446, "AED":3.6731, "INR":67.3135, "JPY":113.161, "EUR":0.930886 }, "EUR":{ "XAF":655.957, "AUD":1.0, "KRW":1233.03, "JOD":1.0, "GBP":0.860011, "AED":3.94594, "INR":72.3136, "JPY":121.567, "USD":1.07428 } }

Transaction Requests satisfy PSD2 requirements thus:

1) A transaction can be initiated by a third party application.

2) The customer is informed of the charge that will incurred.

3) The call supports delegated authentication (OAuth)

See this python code for a complete example of this flow.

There is further documentation here

Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"4050046c-63b3-4868-8a22-14b4181d33a6", "type":"SANDBOX_TAN", "from":{ "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0" }, "details":{ }, "transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"], "status":"COMPLETED", "start_date":"2013-01-22T00:08:00Z", "end_date":"2013-01-22T00:08:00Z", "challenge":{ "id":"be1a183d-b301-4b83-b855-5eeffdd3526f", "allowed_attempts":3, "challenge_type":"SANDBOX_TAN" }, "charge":{ "summary":"Good", "value":{ "currency":"EUR", "amount":"10" } } }
Required Roles:
  • CanCreateAnyTransactionRequest - Please login to request this Role
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-10001: Incorrect json format.
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.
  • OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID
  • OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because you don't have access to the owner view of the from account or you don't have access to canCreateAnyTransactionRequest.
  • OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.
  • OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE
  • OBP-10001: Incorrect json format.
  • OBP-10002: Invalid Number. Could not convert value to a number.
  • OBP-40008: Can't send a payment with a value of 0 or less.
  • OBP-40003: Transaction Request Currency must be the same as From Account Currency.
  • OBP-00003: Transaction Requests is disabled in this API instance.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by createTransactionRequestFreeForm

Create Transaction Request (SANDBOX_TAN)

When using SANDBOX_TAN, the payee is set in the request body.

Money goes into the BANK_ID and ACCOUNT_ID specified in the request body.

Initiate a Payment via creating a Transaction Request.

In OBP, a transaction request may or may not result in a transaction. However, a transaction only has one possible state: completed.

A Transaction Request can have one of several states.

Transactions are modeled on items in a bank statement that represent the movement of money.

Transaction Requests are requests to move money which may or may not succeeed and thus result in a Transaction.

A Transaction Request might create a security challenge that needs to be answered before the Transaction Request proceeds.

Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).

Transaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response. This provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.

The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.

In sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to SANDBOX_TAN. See getTransactionRequestTypesSupportedByBank for all supported types.

In sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.

If a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.

You can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.

The following static FX rates are available in sandbox mode:

{ "XAF":{ "AUD":1.0, "KRW":1.87975, "JOD":1.0, "GBP":0.00131092, "AED":0.00601555, "INR":0.110241, "JPY":0.185328, "USD":0.00163773, "EUR":0.00152449 }, "AUD":{ "XAF":762.826, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":0.79, "EUR":0.67 }, "KRW":{ "XAF":0.531986, "AUD":1.0, "JOD":1.0, "GBP":6.97389E-4, "AED":0.00320019, "INR":0.0586469, "JPY":0.0985917, "USD":8.7125E-4, "EUR":8.11008E-4 }, "JOD":{ "XAF":1.0, "AUD":1.0, "KRW":1.0, "GBP":1.0, "AED":1.0, "INR":1.0, "JPY":1.0, "USD":1.0, "EUR":1.0 }, "GBP":{ "XAF":762.826, "AUD":1.0, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":1.2493, "EUR":1.16278 }, "AED":{ "XAF":166.236, "AUD":1.0, "KRW":312.482, "GBP":0.217921, "AED":1.0, "INR":18.3255, "JPY":30.8081, "USD":0.27225, "EUR":0.253425 }, "INR":{ "XAF":9.07101, "AUD":1.0, "KRW":17.0512, "JOD":1.0, "GBP":0.0118913, "AED":0.0545671, "JPY":1.68111, "USD":0.0148559, "EUR":0.0138287 }, "JPY":{ "XAF":5.39585, "AUD":1.0, "KRW":10.1428, "JOD":1.0, "GBP":0.0070735, "AED":0.032459, "INR":0.594846, "USD":0.00883695, "EUR":0.00822592 }, "USD":{ "XAF":610.601, "AUD":1.0, "KRW":1147.78, "JOD":1.0, "GBP":0.800446, "AED":3.6731, "INR":67.3135, "JPY":113.161, "EUR":0.930886 }, "EUR":{ "XAF":655.957, "AUD":1.0, "KRW":1233.03, "JOD":1.0, "GBP":0.860011, "AED":3.94594, "INR":72.3136, "JPY":121.567, "USD":1.07428 } }

Transaction Requests satisfy PSD2 requirements thus:

1) A transaction can be initiated by a third party application.

2) The customer is informed of the charge that will incurred.

3) The call supports delegated authentication (OAuth)

See this python code for a complete example of this flow.

There is further documentation here

Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"4050046c-63b3-4868-8a22-14b4181d33a6", "type":"SANDBOX_TAN", "from":{ "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0" }, "details":{ }, "transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"], "status":"COMPLETED", "start_date":"2013-01-22T00:08:00Z", "end_date":"2013-01-22T00:08:00Z", "challenge":{ "id":"be1a183d-b301-4b83-b855-5eeffdd3526f", "allowed_attempts":3, "challenge_type":"SANDBOX_TAN" }, "charge":{ "summary":"Good", "value":{ "currency":"EUR", "amount":"10" } } }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-10001: Incorrect json format.
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.
  • OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID
  • OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because you don't have access to the owner view of the from account or you don't have access to canCreateAnyTransactionRequest.
  • OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.
  • OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE
  • OBP-10001: Incorrect json format.
  • OBP-10002: Invalid Number. Could not convert value to a number.
  • OBP-40008: Can't send a payment with a value of 0 or less.
  • OBP-40003: Transaction Request Currency must be the same as From Account Currency.
  • OBP-00003: Transaction Requests is disabled in this API instance.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by createTransactionRequestSandboxTan

Create Transaction Request (SEPA)

Special instructions for SEPA:

When using a SEPA Transaction Request, you specify the IBAN of a Counterparty in the body of the request. The routing details (IBAN) of the counterparty will be forwarded to the core banking system for the transfer.

Initiate a Payment via creating a Transaction Request.

In OBP, a transaction request may or may not result in a transaction. However, a transaction only has one possible state: completed.

A Transaction Request can have one of several states.

Transactions are modeled on items in a bank statement that represent the movement of money.

Transaction Requests are requests to move money which may or may not succeeed and thus result in a Transaction.

A Transaction Request might create a security challenge that needs to be answered before the Transaction Request proceeds.

Transaction Requests contain charge information giving the client the opportunity to proceed or not (as long as the challenge level is appropriate).

Transaction Requests can have one of several Transaction Request Types which expect different bodies. The escaped body is returned in the details key of the GET response. This provides some commonality and one URL for many different payment or transfer types with enough flexibility to validate them differently.

The payer is set in the URL. Money comes out of the BANK_ID and ACCOUNT_ID specified in the URL.

In sandbox mode, TRANSACTION_REQUEST_TYPE is commonly set to SANDBOX_TAN. See getTransactionRequestTypesSupportedByBank for all supported types.

In sandbox mode, if the amount is less than 1000 EUR (any currency, unless it is set differently on this server), the transaction request will create a transaction without a challenge, else the Transaction Request will be set to INITIALISED and a challenge will need to be answered.

If a challenge is created you must answer it using Answer Transaction Request Challenge before the Transaction is created.

You can transfer between different currency accounts. (new in 2.0.0). The currency in body must match the sending account.

The following static FX rates are available in sandbox mode:

{ "XAF":{ "AUD":1.0, "KRW":1.87975, "JOD":1.0, "GBP":0.00131092, "AED":0.00601555, "INR":0.110241, "JPY":0.185328, "USD":0.00163773, "EUR":0.00152449 }, "AUD":{ "XAF":762.826, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":0.79, "EUR":0.67 }, "KRW":{ "XAF":0.531986, "AUD":1.0, "JOD":1.0, "GBP":6.97389E-4, "AED":0.00320019, "INR":0.0586469, "JPY":0.0985917, "USD":8.7125E-4, "EUR":8.11008E-4 }, "JOD":{ "XAF":1.0, "AUD":1.0, "KRW":1.0, "GBP":1.0, "AED":1.0, "INR":1.0, "JPY":1.0, "USD":1.0, "EUR":1.0 }, "GBP":{ "XAF":762.826, "AUD":1.0, "KRW":1433.92, "JOD":1.0, "AED":4.58882, "INR":84.095, "JPY":141.373, "USD":1.2493, "EUR":1.16278 }, "AED":{ "XAF":166.236, "AUD":1.0, "KRW":312.482, "GBP":0.217921, "AED":1.0, "INR":18.3255, "JPY":30.8081, "USD":0.27225, "EUR":0.253425 }, "INR":{ "XAF":9.07101, "AUD":1.0, "KRW":17.0512, "JOD":1.0, "GBP":0.0118913, "AED":0.0545671, "JPY":1.68111, "USD":0.0148559, "EUR":0.0138287 }, "JPY":{ "XAF":5.39585, "AUD":1.0, "KRW":10.1428, "JOD":1.0, "GBP":0.0070735, "AED":0.032459, "INR":0.594846, "USD":0.00883695, "EUR":0.00822592 }, "USD":{ "XAF":610.601, "AUD":1.0, "KRW":1147.78, "JOD":1.0, "GBP":0.800446, "AED":3.6731, "INR":67.3135, "JPY":113.161, "EUR":0.930886 }, "EUR":{ "XAF":655.957, "AUD":1.0, "KRW":1233.03, "JOD":1.0, "GBP":0.860011, "AED":3.94594, "INR":72.3136, "JPY":121.567, "USD":1.07428 } }

Transaction Requests satisfy PSD2 requirements thus:

1) A transaction can be initiated by a third party application.

2) The customer is informed of the charge that will incurred.

3) The call supports delegated authentication (OAuth)

See this python code for a complete example of this flow.

There is further documentation here

Authentication is Mandatory

Typical Successful Response:

								
									
{ "id":"4050046c-63b3-4868-8a22-14b4181d33a6", "type":"SANDBOX_TAN", "from":{ "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0" }, "details":{ }, "transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"], "status":"COMPLETED", "start_date":"2013-01-22T00:08:00Z", "end_date":"2013-01-22T00:08:00Z", "challenge":{ "id":"be1a183d-b301-4b83-b855-5eeffdd3526f", "allowed_attempts":3, "challenge_type":"SANDBOX_TAN" }, "charge":{ "summary":"Good", "value":{ "currency":"EUR", "amount":"10" } } }
Possible Errors:
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-20001: User not logged in. Authentication is required!
  • OBP-30111: Invalid Bank Id. The BANK_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-30110: Invalid Account Id. The ACCOUNT_ID should only contain 0-9/a-z/A-Z/'-'/'.'/'_', the length should be smaller than 255.
  • OBP-10001: Incorrect json format.
  • OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
  • OBP-30003: Account not found. Please specify a valid value for ACCOUNT_ID.
  • OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID
  • OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because you don't have access to the owner view of the from account or you don't have access to canCreateAnyTransactionRequest.
  • OBP-20017: Current user does not have access to the view. Please specify a valid value for VIEW_ID.
  • OBP-40001: Invalid value for TRANSACTION_REQUEST_TYPE
  • OBP-10001: Incorrect json format.
  • OBP-10002: Invalid Number. Could not convert value to a number.
  • OBP-40008: Can't send a payment with a value of 0 or less.
  • OBP-40003: Transaction Request Currency must be the same as From Account Currency.
  • OBP-00003: Transaction Requests is disabled in this API instance.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by createTransactionRequestSepa

Get Transaction Request Types for Account

Returns the Transation Request Types that the account specified by ACCOUNT_ID and view specified by VIEW_ID has access to.

These are the ways this API Server can create a Transaction via a Transaction Request (as opposed to Transaction Types which include external types too e.g. for Transactions created by core banking etc.)

A Transaction Request Type internally determines:

  • the required Transaction Request 'body' i.e. fields that define the 'what' and 'to' of a Transaction Request,
  • the type of security challenge that may be be raised before the Transaction Request proceeds, and
  • the threshold of that challenge.

For instance in a 'SANDBOX_TAN' Transaction Request, for amounts over 1000 currency units, the user must supply a positive integer to complete the Transaction Request and create a Transaction.

This approach aims to provide only one endpoint for initiating transactions, and one that handles challenges, whilst still allowing flexibility with the payload and internal logic.

This endpoint works with firehose

Typical Successful Response:

								
									
{ "transaction_request_types":[{ "value":"10", "charge":{ "summary":"Good", "value":{ "currency":"EUR", "amount":"10" } } }] }
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-30003: Account not found. Please specify a valid value for ACCOUNT_ID.
  • Please specify a valid value for CURRENCY of your Bank Account.
  • Current user does not have access to the view
  • account not found at bank
  • user does not have access to owner view
  • Sorry, Transaction Requests are not enabled in this API instance.
  • OBP-50000: Unknown Error.
Implmented in 1_4_0 by getTransactionRequestTypes

Get Transaction Requests.

Returns transaction requests for account specified by ACCOUNT_ID at bank specified by BANK_ID.

The VIEW_ID specified must be 'owner' and the user must have access to this view.

Version 2.0.0 now returns charge information.

Transaction Requests serve to initiate transactions that may or may not proceed. They contain information including:

  • Transaction Request Id
  • Type
  • Status (INITIATED, COMPLETED)
  • Challenge (in order to confirm the request)
  • From Bank / Account
  • Details including Currency, Value, Description and other initiation information specific to each type. (Could potentialy include a list of future transactions.)
  • Related Transactions

PSD2 Context: PSD2 requires transparency of charges to the customer. This endpoint provides the charge that would be applied if the Transaction Request proceeds - and a record of that charge there after. The customer can proceed with the Transaction by answering the security challenge.

This endpoint works with firehose.

Typical Successful Response:

								
									
{ "transaction_requests_with_charges":[{ "id":"4050046c-63b3-4868-8a22-14b4181d33a6", "type":"SANDBOX_TAN", "from":{ "bank_id":"gh.29.uk", "account_id":"8ca8a7e4-6d02-48e3-a029-0b2bf89de9f0" }, "details":{ }, "transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"], "status":"COMPLETED", "start_date":"2013-01-22T00:08:00Z", "end_date":"2013-01-22T00:08:00Z", "challenge":{ "id":"be1a183d-b301-4b83-b855-5eeffdd3526f", "allowed_attempts":3, "challenge_type":"SANDBOX_TAN" }, "charge":{ "summary":"Good", "value":{ "currency":"EUR", "amount":"10" } } }] }
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-30003: Account not found. Please specify a valid value for ACCOUNT_ID.
  • OBP-20006: User is missing one or more roles:
  • OBP-20019: User does not have access to owner view.
  • OBP-50000: Unknown Error.
Implmented in 2_1_0 by getTransactionRequests