-
Customer
-
The legal entity that has the relationship to the bank. Customers are linked to Users via `User CusMore...
- Update the Address of a Customer
-
-
Transaction
-
Transactions are records of successful movements of value into or out of an `Account`. OBP TransacMore...
- Get Transactions for Account (Full)
-
v5.1.0 (4 APIs)
Create Account Application
Create Account Application
Authentication is Mandatory
URL Parameters:
BANK_ID: gh.29.uk
JSON request body fields:
product_code: 1234BW
customer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
user_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
JSON response body fields:
amount: 10.12
bank_id: gh.29.uk
branch_id: DERBY6
currency: EUR
customer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
customer_number: 5987953
date: 2020-01-27
date_of_application: 2020-01-27
date_of_birth: 2018-03-09
dependants: 1
dob_of_dependants: [2019-09-08, 2017-07-12]
employment_status: worker
highest_education_attained: Master
kyc_status: false
last_ok_date: 2023-10-11T13:23:44.172Z
legal_name: Eveline Tripman
mobile_phone_number: +49 30 901820
name_suffix: Sr
product_code: 1234BW
provider: ETHEREUM
relationship_status: single
title: Dr.
url: http://www.example.com/id-docs/123/image.png
user:
user_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
username: felixsmith
{
"account_application_id":"gc23a7e2-7dd2-4bdf-a0b4-ae31232a4763",
"product_code":"1234BW",
"user":{
"user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"email":"felixsmith@example.com",
"provider_id":"Chris",
"provider":"http://127.0.0.1:8080",
"username":"felixsmith"
},
"customer":{
"bank_id":"gh.29.uk",
"customer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
"customer_number":"5987953",
"legal_name":"Eveline Tripman",
"mobile_phone_number":"+44 07972 444 876",
"email":"felixsmith@example.com",
"face_image":{
"url":"www.openbankproject",
"date":"1100-01-01T00:00:00Z"
},
"date_of_birth":"1100-01-01T00:00:00Z",
"relationship_status":"single",
"dependants":1,
"dob_of_dependants":["1100-01-01T00:00:00Z"],
"credit_rating":{
"rating":"OBP",
"source":"OBP"
},
"credit_limit":{
"currency":"EUR",
"amount":"0"
},
"highest_education_attained":"Master",
"employment_status":"worker",
"kyc_status":false,
"last_ok_date":"2023-10-11T13:23:44Z",
"title":"Dr.",
"branch_id":"DERBY6",
"name_suffix":"Sr"
},
"date_of_application":"1100-01-01T00:00:00Z",
"status":"REQUESTED"
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-10001: Incorrect json format.
- OBP-50000: Unknown Error.
- OBP-20001: User not logged in. Authentication is required!
Update the Address of a Customer
Update an Address of the Customer specified by CUSTOMER_ADDRESS_ID.
Authentication is Mandatory
URL Parameters:
BANK_ID: gh.29.uk
CUSTOMER_ID: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
JSON response body fields:
city:
country_code: 1254
customer_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
insert_date: 2020-01-27
tags: Create-My-User
{
"customer_address_id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"customer_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
"line_1":"No 1 the Road",
"line_2":"The Place",
"line_3":"The Hill",
"city":"Berlin",
"county":"",
"state":"Brandenburg",
"postcode":"13359",
"country_code":"DE",
"tags":["mailing","home"],
"status":"OK",
"insert_date":"1100-01-01T00:00:00Z"
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-10001: Incorrect json format.
- OBP-50000: Unknown Error.
Get Transactions for Account (Full)
Returns transactions list of the account specified by ACCOUNT_ID and moderated by the view (VIEW_ID).
Authentication is Optional
Authentication is required if the view is not public.
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
- from_date=DATE => example value: 1970-01-01T00:00:00.000Z. NOTE! The default value is one year ago (1970-01-01T00:00:00.000Z).
- to_date=DATE => example value: 2024-10-11T13:23:46.998Z. NOTE! The default value is now (2024-10-11T13:23:46.998Z).
Date format parameter: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'(1100-01-01T01:01:01.000Z) ==> time zone is UTC.
eg3:?sort_direction=ASC&limit=100&offset=0&from_date=1100-01-01T01:01:01.000Z&to_date=1100-01-01T01:01:01.000Z
URL Parameters:
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
BANK_ID: gh.29.uk
VIEW_ID: owner
JSON response body fields:
URL: http://www.example.com/id-docs/123/image.png
amount: 10.12
completed: 2020-01-27
currency: EUR
date: 2020-01-27
description: This an optional field. Maximum length is 2000. It can be any characters here.
id: d8839721-ad8f-45dd-9f78-2080414b93f9
label: My Account
latitude: 38.8951
longitude: -77.0364
more_info: More information about this fee
name: ACCOUNT_MANAGEMENT_FEE
new_balance: 20
posted: 2020-01-27
provider: ETHEREUM
scheme: scheme value
tags: Create-My-User
transaction_attribute_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
type:
user:
value: 5987953
{
"transactions":[{
"id":"String",
"this_account":{
"id":"String",
"bank_routing":{
"scheme":"scheme value",
"address":""
},
"account_routings":[{
"scheme":"AccountNumber",
"address":"4930396"
}],
"holders":[{
"name":"OBP",
"is_alias":true
}]
},
"other_account":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"holder":{
"name":"OBP",
"is_alias":true
},
"bank_routing":{
"scheme":"scheme value",
"address":""
},
"account_routings":[{
"scheme":"AccountNumber",
"address":"4930396"
}],
"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":"1100-01-01T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
},
"physical_location":{
"latitude":1.231,
"longitude":1.231,
"date":"1100-01-01T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}
}
},
"details":{
"type":"AC",
"description":"this is for family",
"posted":"1100-01-01T00:00:00Z",
"completed":"1100-01-01T00:00:00Z",
"new_balance":{
"currency":"EUR",
"amount":"0"
},
"value":{
"currency":"EUR",
"amount":"0"
}
},
"metadata":{
"narrative":"NONE",
"comments":[{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"value":"OBP",
"date":"1100-01-01T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}],
"tags":[{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"value":"OBP",
"date":"1100-01-01T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}],
"images":[{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"label":"NONE",
"URL":"www.openbankproject.com",
"date":"1100-01-01T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}],
"where":{
"latitude":1.231,
"longitude":1.231,
"date":"1100-01-01T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}
},
"transaction_attributes":[{
"transaction_attribute_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
"name":"HOUSE_RENT",
"type":"DATE_WITH_DAY",
"value":"123456789"
}]
}]
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-10023: obp_sort_direction parameter can only take two values: DESC or ASC!
- OBP-10024: wrong value for obp_offset parameter. Please send a positive integer (=>0)!
- OBP-10025: wrong value for obp_limit parameter. Please send a positive integer (=>1)!
- OBP-10026: Failed to parse date string. Please use this format yyyy-MM-dd'T'HH:mm:ss.SSS'Z'!
- 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-50000: Unknown Error.
Create Transaction Request (ACCOUNT)
When using ACCOUNT, 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: INITIATED, NEXT_CHALLENGE_PENDING etc.
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 succeed and thus result in a Transaction
.
A Transaction Request
might create a security challenge that needs to be answered before the Transaction Request
proceeds.
In case 1 person needs to answer security challenge we have next flow of state of an transaction request
:
INITIATED => COMPLETED
In case n persons needs to answer security challenge we have next flow of state of an transaction request
:
INITIATED => NEXT_CHALLENGE_PENDING => ... => NEXT_CHALLENGE_PENDING => COMPLETED
The security challenge is bound to a user i.e. in case of right answer and the user is different than expected one the challenge will fail.
Rule for calculating number of security challenges:
If product Account attribute REQUIRED_CHALLENGE_ANSWERS=N then create N challenges
(one for every user that has a View where permission "can_add_transaction_request_to_any_account"=true)
In case REQUIRED_CHALLENGE_ANSWERS is not defined as an account attribute default value is 1.
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 ACCOUNT. 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:
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
URL Parameters:
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
BANK_ID: gh.29.uk
VIEW_ID: owner
JSON request body fields:
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
amount: 10.12
bank_id: gh.29.uk
currency: EUR
description: This an optional field. Maximum length is 2000. It can be any characters here.
to:
value: 5987953
JSON response body fields:
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
amount: 10.12
bank_code: CGHZ
bank_id: gh.29.uk
challenges: challenges
counterparty_id: 9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh
currency: EUR
date_of_birth: 2018-03-09
description: This an optional field. Maximum length is 2000. It can be any characters here.
from:
future_date: 20200127
iban: DE91 1000 0000 0123 4567 89
id: d8839721-ad8f-45dd-9f78-2080414b93f9
instructedAmount: 100
legal_name: Eveline Tripman
link:
message: 123456
mobile_phone_number: +49 30 901820
name: ACCOUNT_MANAGEMENT_FEE
otherAccountRoutingAddress: otherAccountRoutingAddress
otherAccountRoutingScheme: otherAccountRoutingScheme
otherAccountSecondaryRoutingAddress: otherAccountSecondaryRoutingAddress
otherAccountSecondaryRoutingScheme: otherAccountSecondaryRoutingScheme
otherBankRoutingAddress: otherBankRoutingAddress
otherBankRoutingScheme: otherBankRoutingScheme
otherBranchRoutingAddress: otherBranchRoutingAddress
otherBranchRoutingScheme: otherBranchRoutingScheme
start_date: 2020-01-27
to:
type:
user_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
value: 5987953
to_simple: to_simple
{
"id":"4050046c-63b3-4868-8a22-14b4181d33a6",
"type":"SANDBOX_TAN",
"from":{
"bank_id":"gh.29.uk",
"account_id":"8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"
},
"details":{
"to_sandbox_tan":{
"bank_id":"String",
"account_id":"String"
},
"to_sepa":{
"iban":"String"
},
"to_counterparty":{
"counterparty_id":"9fg8a7e4-6d02-40e3-a129-0b2bf89de8uh"
},
"to_simple":{
"otherBankRoutingScheme":"BIC",
"otherBankRoutingAddress":"GENODEM1GLS",
"otherBranchRoutingScheme":"BRANCH-CODE",
"otherBranchRoutingAddress":"DERBY6",
"otherAccountRoutingScheme":"IBAN",
"otherAccountRoutingAddress":"DE91 1000 0000 0123 4567 89",
"otherAccountSecondaryRoutingScheme":"IBAN",
"otherAccountSecondaryRoutingAddress":"DE91 1000 0000 0123 4567 89"
},
"to_transfer_to_phone":{
"value":{
"currency":"EUR",
"amount":"0"
},
"description":"String",
"message":"String",
"from":{
"mobile_phone_number":"+44 07972 444 876",
"nickname":"String"
},
"to":{
"mobile_phone_number":"+44 07972 444 876"
}
},
"to_transfer_to_atm":{
"value":{
"currency":"EUR",
"amount":"0"
},
"description":"String",
"message":"String",
"from":{
"mobile_phone_number":"+44 07972 444 876",
"nickname":"String"
},
"to":{
"legal_name":"Eveline Tripman",
"date_of_birth":"20181230",
"mobile_phone_number":"+44 07972 444 876",
"kyc_document":{
"type":"String",
"number":"String"
}
}
},
"to_transfer_to_account":{
"value":{
"currency":"EUR",
"amount":"0"
},
"description":"String",
"transfer_type":"String",
"future_date":"20181230",
"to":{
"name":"String",
"bank_code":"String",
"branch_number":"String",
"account":{
"number":"String",
"iban":"String"
}
}
},
"to_sepa_credit_transfers":{
"debtorAccount":{
"iban":"12345"
},
"instructedAmount":{
"currency":"EUR",
"amount":"0"
},
"creditorAccount":{
"iban":"54321"
},
"creditorName":"John Miles"
},
"value":{
"currency":"EUR",
"amount":"100"
},
"description":"This an optional field. Maximum length is 2000. It can be any characters here."
},
"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],
"status":"COMPLETED",
"start_date":"1100-01-01T00:00:00Z",
"end_date":"1100-01-01T00:00:00Z",
"challenges":[{
"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub",
"user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"allowed_attempts":3,
"challenge_type":"OBP_TRANSACTION_REQUEST_CHALLENGE",
"link":"/obp/v4.0.0/banks/BANK_ID/accounts/ACCOUNT_ID/VIEW_ID/transaction-request-types/TRANSACTION_REQUEST_TYPE/transaction-requests/TRANSACTION_REQUEST_ID/challenge"
}],
"charge":{
"summary":"Rent the flat",
"value":{
"currency":"EUR",
"amount":"0"
}
}
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
- OBP-40002: Insufficient authorisation to create TransactionRequest. The Transaction Request could not be created because the login user doesn't have access to the view of the from account or the consumer doesn't have the access to the view of the from account or the login user does not have the `CanCreateAnyTransactionRequest` role or the view does not have the permission can_add_transaction_request_to_any_account or the view does not have the permission can_add_transaction_request_to_beneficiary.
- 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.