-
Account
-
The thing that tokens of value (money) come in and out of. An account has one or more `owners` whichMore...
- Create or Update Account Attribute Definition
- Delete Account Attribute Definition
- Delete Account Cascade
- Update Account Attribute
- Update Account Label
-
-
Customer
-
The legal entity that has the relationship to the bank. Customers are linked to Users via `User CusMore...
- Create Customer Attribute
- Update Customer Attribute
- Update the Address of a Customer
- Update the Branch of a Customer
-
-
Dynamic Entity Manage
-
Dynamic Entities can be used to store and retrieve custom data objects (think your own tables andMore...
- Create Bank Level Dynamic Entity
- Get Bank Level Dynamic Entities
-
-
Transaction
-
Transactions are records of successful movements of value into or out of an `Account`. OBP TransacMore...
- Update Transaction Attribute
-
-
Account
-
Create or Update Account Attribute Definition
-
Delete Account Attribute Definition
-
Delete Account Cascade
-
Update Account Attribute
-
Update Account Label
-
Create or Update Account Attribute Definition
-
Counterparty Metadata
-
Customer
-
Create Customer Attribute
-
Update Customer Attribute
-
Update the Address of a Customer
-
Update the Branch of a Customer
-
Create Customer Attribute
-
Dynamic Entity Manage
-
Product
-
Qredo Partner & Core Client API
-
Transaction
-
Transaction Metadata
-
Transaction Request
-
Create Transaction Request (ACCOUNT)
-
Create Transaction Request Attribute
-
Create or Update Transaction Request Attribute Definition
-
Delete Transaction Request Attribute Definition
-
Create Transaction Request (ACCOUNT)
v5.0.0 (28 APIs)
Create or Update Account Attribute Definition
Create or Update Account Attribute Definition
The category field must be Account
The type field must be one of; DOUBLE, STRING, INTEGER and DATE_WITH_DAY
Authentication is Mandatory
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
-
bank_id: gh.29.uk
-
can_be_seen_on_views: true
-
description: This an optional field. Maximum length is 2000. It can be any characters here.
-
is_active: true
-
name: ACCOUNT_MANAGEMENT_FEE
{
"attribute_definition_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"bank_id":"gh.29.uk",
"name":"SPECIAL_TAX_NUMBER",
"category":"Account",
"type":"STRING",
"description":"description",
"alias":"STRING",
"can_be_seen_on_views":["bank"],
"is_active":true
}
-
CanCreateAccountAttributeDefinitionAtOneBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-50000: Unknown Error.
- OBP-20006: User is missing one or more roles:
Delete Account Attribute Definition
Delete Account Attribute Definition by ATTRIBUTE_DEFINITION_ID
Authentication is Mandatory
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
-
CanDeleteAccountAttributeDefinitionAtOneBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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.
- OBP-20006: User is missing one or more roles:
Delete Account Cascade
Delete an Account Cascade specified by ACCOUNT_ID.
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
JSON response body fields:
-
CanDeleteAccountCascade
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
- OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.
Update Account Attribute
Update Account Attribute
Account Attributes are used to describe a financial Product with a list of typed key value pairs.
Each Account Attribute is linked to its Account by ACCOUNT_ID
Typical account attributes might be:
ISIN (for International bonds)
VKN (for German bonds)
REDCODE (markit short code for credit derivative)
LOAN_ID (e.g. used for Anacredit reporting)
ISSUE_DATE (When the bond was issued in the market)
MATURITY_DATE (End of life time of a product)
TRADABLE
See FPML for more examples.
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
PRODUCT_CODE: 1234
JSON response body fields:
-
name: ACCOUNT_MANAGEMENT_FEE
-
product_code: 1234
-
value: 5987953
{
"product_code":"1234",
"account_attribute_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f",
"name":"OVERDRAFT_START_DATE",
"type":"DATE_WITH_DAY",
"value":"2012-04-23"
}
-
CanUpdateAccountAttribute
- Please login to request this Role
- 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.
- OBP-20006: User is missing one or more roles:
Update Account Label
Update the label for the account. The label is how the account is known to the account owner e.g. 'My savings account'
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
JSON request body fields:
- label: My Account
JSON response body fields:
{
"success":"Success"
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-10001: Incorrect json format.
- 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.
- OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
- user does not have access to owner view on account
Add Corporate Location to Counterparty
Add the geolocation of the counterparty's registered address
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
VIEW_ID: owner
JSON request body fields:
JSON response body fields:
{
"success":"Success"
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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.
- the view does not allow metadata access
- the view does not allow adding a corporate location
- Coordinates not possible
- Corporate Location cannot be deleted
- OBP-50000: Unknown Error.
Add Counterparty More Info
Add a description of the counter party from the perpestive of the account e.g. My dentist
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
VIEW_ID: owner
JSON request body fields:
JSON response body fields:
{
"success":"Success"
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-10001: Incorrect json format.
- OBP-30022: The current view does not have the permission:
- the view ownerdoes not allow adding more info
- More Info cannot be added
- OBP-50000: Unknown Error.
Create Customer Attribute
Create Customer Attribute
The type field must be one of "STRING", "INTEGER", "DOUBLE" or DATE_WITH_DAY"
Authentication is Mandatory
URL Parameters:
-
BANK_ID: gh.29.uk
-
CUSTOMER_ID: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
JSON request body fields:
JSON response body fields:
-
customer_attribute_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
-
name: ACCOUNT_MANAGEMENT_FEE
-
value: 5987953
{
"customer_attribute_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
"name":"SPECIAL_TAX_NUMBER",
"type":"STRING",
"value":"123456789"
}
-
CanCreateCustomerAttributeAtOneBank
- Please login to request this Role
-
CanCreateCustomerAttributeAtAnyBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-50000: Unknown Error.
- OBP-20006: User is missing one or more roles:
Update Customer Attribute
Update Customer Attribute
Authentication is Mandatory
URL Parameters:
-
BANK_ID: gh.29.uk
-
CUSTOMER_ATTRIBUTE_ID: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
-
CUSTOMER_ID: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
JSON response body fields:
-
customer_attribute_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
-
name: ACCOUNT_MANAGEMENT_FEE
-
value: 5987953
{
"customer_attribute_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
"name":"SPECIAL_TAX_NUMBER",
"type":"STRING",
"value":"123456789"
}
-
CanUpdateCustomerAttributeAtOneBank
- Please login to request this Role
-
CanUpdateCustomerAttributeAtAnyBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-50000: Unknown Error.
- OBP-20006: User is missing one or more roles:
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:
-
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":"2017-09-19T00: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.
Update the Branch of a Customer
Update the Branch of the Customer specified by CUSTOMER_ID.
Authentication is Mandatory
URL Parameters:
-
BANK_ID: gh.29.uk
-
CUSTOMER_ID: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
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](/glossary#Scenario 6: Update credit score based on transaction and device data.): 2020-01-27
-
date_of_birth: 2018-03-09
-
employment_status: worker
-
highest_education_attained: Master
-
kyc_status: true
-
legal_name: Eveline Tripman
-
name_suffix: Sr
-
relationship_status: single
-
[source](/glossary#Dynamic Resource Doc):
-
title: Dr.
{
"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":"2017-09-19T00:00:00Z"
},
"date_of_birth":"2017-09-19T00:00:00Z",
"relationship_status":"single",
"dependants":1,
"dob_of_dependants":["2017-09-19T00:00:00Z"],
"credit_rating":{
"rating":"OBP",
"source":"OBP"
},
"credit_limit":{
"currency":"EUR",
"amount":"0"
},
"highest_education_attained":"Master",
"employment_status":"worker",
"kyc_status":true,
"last_ok_date":"2017-09-19T00:00:00Z",
"title":"Dr.",
"branch_id":"DERBY6",
"name_suffix":"Sr"
}
-
CanUpdateCustomerIdentity
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-10001: Incorrect json format.
- OBP-50000: Unknown Error.
Create Bank Level Dynamic Entity
Create a Bank Level DynamicEntity.
Authentication is Mandatory
Create a DynamicEntity. If creation is successful, the corresponding POST, GET, PUT and DELETE (Create, Read, Update, Delete or CRUD for short) endpoints will be generated automatically
The following field types are as supported:
[number, integer, boolean, string, DATE_WITH_DAY, reference]
The DATE_WITH_DAY format is: yyyy-MM-dd
Reference types are like foreign keys and composite foreign keys are supported. The value you need to supply as the (composite) foreign key is a UUID (or several UUIDs in the case of a composite key) that match value in another Entity..
The following list shows all the possible reference types in the system with corresponding examples values so you can see how to construct each reference type value.
"someField0": {
"type": "reference:OBP_API",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField1": {
"type": "reference:FooBar",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField2": {
"type": "reference:OBP_Activity",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField3": {
"type": "reference:OBP_Reena",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField4": {
"type": "reference:Bank",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField5": {
"type": "reference:Consumer",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField6": {
"type": "reference:Customer",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField7": {
"type": "reference:MethodRouting",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField8": {
"type": "reference:DynamicEntity",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField9": {
"type": "reference:TransactionRequest",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField10": {
"type": "reference:ProductAttribute",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField11": {
"type": "reference:AccountAttribute",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField12": {
"type": "reference:TransactionAttribute",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField13": {
"type": "reference:CustomerAttribute",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField14": {
"type": "reference:AccountApplication",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField15": {
"type": "reference:CardAttribute",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField16": {
"type": "reference:Counterparty",
"example": "63753059-3fec-47c1-bd7c-3aa3df1bf85e"
}
"someField17": {
"type": "reference:Branch:bankId&branchId",
"example": "bankId=63753059-3fec-47c1-bd7c-3aa3df1bf85e&branchId=460eae75-45b3-4e53-8fe6-9d931530ca7b"
}
"someField18": {
"type": "reference:Atm:bankId&atmId",
"example": "bankId=63753059-3fec-47c1-bd7c-3aa3df1bf85e&atmId=460eae75-45b3-4e53-8fe6-9d931530ca7b"
}
"someField19": {
"type": "reference:BankAccount:bankId&accountId",
"example": "bankId=63753059-3fec-47c1-bd7c-3aa3df1bf85e&accountId=460eae75-45b3-4e53-8fe6-9d931530ca7b"
}
"someField20": {
"type": "reference:Product:bankId&productCode",
"example": "bankId=63753059-3fec-47c1-bd7c-3aa3df1bf85e&productCode=460eae75-45b3-4e53-8fe6-9d931530ca7b"
}
"someField21": {
"type": "reference:PhysicalCard:bankId&cardId",
"example": "bankId=63753059-3fec-47c1-bd7c-3aa3df1bf85e&cardId=460eae75-45b3-4e53-8fe6-9d931530ca7b"
}
"someField22": {
"type": "reference:Transaction:bankId&accountId&transactionId",
"example": "bankId=63753059-3fec-47c1-bd7c-3aa3df1bf85e&accountId=460eae75-45b3-4e53-8fe6-9d931530ca7b&transactionId=c32e085b-bf94-4ded-857c-b02aadc247eb"
}
"someField23": {
"type": "reference:Counterparty:bankId&accountId&counterpartyId",
"example": "bankId=63753059-3fec-47c1-bd7c-3aa3df1bf85e&accountId=460eae75-45b3-4e53-8fe6-9d931530ca7b&counterpartyId=c32e085b-bf94-4ded-857c-b02aadc247eb"
}
Note: BankId filed is optional,
if you add it, the entity will be the Bank level.
if you omit it, the entity will be the System level.
{
"bankId":"gh.29.uk",
"FooBar":{
"description":"description of this entity, can be markdown text.",
"required":["name"],
"properties":{
"name":{
"type":"string",
"minLength":3,
"maxLength":20,
"example":"James Brown",
"description":"description of **name** field, can be markdown text."
},
"number":{
"type":"integer",
"example":698761728,
"description":"description of **number** field, can be markdown text."
}
}
},
"dynamicEntityId":"dynamic-entity-id",
"userId":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1"
}
-
CanCreateBankLevelDynamicEntity
- Please login to request this Role
-
CanCreateDynamicEntity
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-10001: Incorrect json format.
- OBP-50000: Unknown Error.
Get Bank Level Dynamic Entities
Get all the bank level Dynamic Entities for one bank.
Authentication is Mandatory
{
"dynamic_entities":[{
"bankId":"gh.29.uk",
"FooBar":{
"description":"description of this entity, can be markdown text.",
"required":["name"],
"properties":{
"name":{
"type":"string",
"minLength":3,
"maxLength":20,
"example":"James Brown",
"description":"description of **name** field, can be markdown text."
},
"number":{
"type":"integer",
"example":698761728,
"description":"description of **number** field, can be markdown text."
}
}
},
"dynamicEntityId":"dynamic-entity-id",
"userId":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1"
}]
}
-
CanGetBankLevelDynamicEntities
- Please login to request this Role
-
CanGetDynamicEntities
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.
Create Product
Create or Update Product for the Bank.
Typical Super Family values / Asset classes are:
Debt
Equity
FX
Commodity
Derivative
Product hiearchy vs Product Collections:
-
You can define a hierarchy of products - so that a child Product inherits attributes of its parent Product - using the parent_product_code in Product.
-
You can define a collection (also known as baskets or buckets) of products using Product Collections.
Authentication is Mandatory
URL Parameters:
-
BANK_ID: gh.29.uk
-
PRODUCT_CODE: 1234
JSON response body fields:
-
bank_id: gh.29.uk
-
description: This an optional field. Maximum length is 2000. It can be any characters here.
-
fees: fees
-
name: ACCOUNT_MANAGEMENT_FEE
-
product_code: 1234
{
"bank_id":"gh.29.uk",
"product_code":"1234",
"parent_product_code":"no-example-provided",
"name":"no-example-provided",
"more_info_url":"no-example-provided",
"terms_and_conditions_url":"no-example-provided",
"description":"This an optional field. Maximum length is 2000. It can be any characters here.",
"meta":{
"license":{
"id":"ODbL-1.0",
"name":"Open Database License"
}
}
}
-
CanCreateProduct
- Please login to request this Role
-
CanCreateProductAtAnyBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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.
Create Product Attribute
Create Product Attribute
Product Attributes are used to describe a financial Product with a list of typed key value pairs.
Each Product Attribute is linked to its Product by PRODUCT_CODE
Typical product attributes might be:
ISIN (for International bonds)
VKN (for German bonds)
REDCODE (markit short code for credit derivative)
LOAN_ID (e.g. used for Anacredit reporting)
ISSUE_DATE (When the bond was issued in the market)
MATURITY_DATE (End of life time of a product)
TRADABLE
See FPML for more examples.
The type field must be one of "STRING", "INTEGER", "DOUBLE" or DATE_WITH_DAY"
Authentication is Mandatory
URL Parameters:
-
BANK_ID: gh.29.uk
-
PRODUCT_CODE: 1234
JSON request body fields:
JSON response body fields:
-
bank_id: gh.29.uk
-
is_active: true
-
name: ACCOUNT_MANAGEMENT_FEE
-
product_code: 1234
-
value: 5987953
{
"bank_id":"gh.29.uk",
"product_code":"1234",
"product_attribute_id":"613c83ea-80f9-4560-8404-b9cd4ec42a7f",
"name":"OVERDRAFT_START_DATE",
"type":"DATE_WITH_DAY",
"value":"2012-04-23",
"is_active":true
}
-
CanCreateProductAttribute
- Please login to request this Role
- 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!
- OBP-20006: User is missing one or more roles:
Create Product Fee
{
"bank_id":"gh.29.uk",
"product_code":"1234",
"product_fee_id":"no-example-provided",
"name":"ACCOUNT_MANAGEMENT_FEE",
"is_active":true,
"more_info":"no-example-provided",
"value":{
"currency":"EUR",
"amount":"10.12",
"frequency":"5",
"type":"no-example-provided"
}
}
-
CanCreateProductFee
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-50000: Unknown Error.
- OBP-20006: User is missing one or more roles:
Add Asset To A Fund
Add an Asset to an existing fund
MethodRouting settings example:
{
"is_bank_id_exact_match":false,
"method_name":"dynamicEndpointProcess",
"connector_name":"rest_vMar2019",
"bank_id_pattern":".*",
"parameters":[
{
"key":"url_pattern",
"value":"https://play-api.qredo.network/api/v1/p/company/{company_id}/fund/{fund_id}/asset"
},
{
"key":"http_method",
"value":"POST"
}
{
"key":"url",
"value":"http://mydomain.com/xxx"
}
]
}
Authentication is Mandatory
{
"wallets":["string"]
}
-
CanCreateDynamicEndpoint_FundAsset567
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.
Add Fund
Create a Fund that serves as a wallet containing assets, addresses, and custody policies. Custody policies for both deposits and withdrawals must exist for a fund. Policies can include multiple custodians, or a single user that self-manages custody. For an individual fund, you can also add whitelisted withdrawal addresses.
MethodRouting settings example:
{
"is_bank_id_exact_match":false,
"method_name":"dynamicEndpointProcess",
"connector_name":"rest_vMar2019",
"bank_id_pattern":".*",
"parameters":[
{
"key":"url_pattern",
"value":"https://play-api.qredo.network/api/v1/p/company/{company_id}/fund"
},
{
"key":"http_method",
"value":"POST"
}
{
"key":"url",
"value":"http://mydomain.com/xxx"
}
]
}
Authentication is Mandatory
{
"custodygroup_tx":"string",
"custodygroup_withdraw":"string",
"fund_id":"string"
}
-
CanCreateDynamicEndpoint_Fund114
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.
Add Trusted Party
Add a Trusted Party for the Company. A Trusted Party is a user that can be added as a custodian of a wallet or member of a fund. Qredo network as a Company or User.
When adding a user, they must approve this via their Qredo Signing App.
MethodRouting settings example:
{
"is_bank_id_exact_match":false,
"method_name":"dynamicEndpointProcess",
"connector_name":"rest_vMar2019",
"bank_id_pattern":".*",
"parameters":[
{
"key":"url_pattern",
"value":"https://play-api.qredo.network/api/v1/p/company/{company_id}/trustedparty"
},
{
"key":"http_method",
"value":"POST"
}
{
"key":"url",
"value":"http://mydomain.com/xxx"
}
]
}
Authentication is Mandatory
{
"code":1,
"msg":"string"
}
-
CanCreateDynamicEndpoint_TrustedPartyNew113
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.
Add Wallet To A Fund
Add a new Wallet to an existing fund. If Custody groups are blank the default fund cutosdy policy will be used
MethodRouting settings example:
{
"is_bank_id_exact_match":false,
"method_name":"dynamicEndpointProcess",
"connector_name":"rest_vMar2019",
"bank_id_pattern":".*",
"parameters":[
{
"key":"url_pattern",
"value":"https://play-api.qredo.network/api/v1/p/company/{company_id}/fund/{fund_id}/wallet"
},
{
"key":"http_method",
"value":"POST"
}
{
"key":"url",
"value":"http://mydomain.com/xxx"
}
]
}
Authentication is Mandatory
{
"wallets":["string"]
}
-
CanCreateDynamicEndpoint_FundWallet103
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.
Update Transaction Attribute
Update Transaction Attribute
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
TRANSACTION_ID: 2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub
JSON response body fields:
-
name: ACCOUNT_MANAGEMENT_FEE
-
transaction_attribute_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
-
value: 5987953
{
"transaction_attribute_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
"name":"HOUSE_RENT",
"type":"DATE_WITH_DAY",
"value":"123456789"
}
-
CanUpdateTransactionAttributeAtOneBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
- OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
- OBP-10001: Incorrect json format.
- OBP-50000: Unknown Error.
- OBP-20006: User is missing one or more roles:
Add a Transaction Comment
Posts a comment about a transaction TRANSACTION_ID on a view VIEW_ID.
${authenticationRequiredMessage(false)}
Authentication is required since the comment is linked with the user.
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
TRANSACTION_ID: 2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub
-
VIEW_ID: owner
JSON request body fields:
- value: 5987953
JSON response body fields:
{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"value":"OBP",
"date":"2017-09-19T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-10001: Incorrect json format.
- OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
- OBP-30022: The current view does not have the permission:
- OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID
- OBP-50000: Unknown Error.
Add a Transaction Image
Posts an image about a transaction TRANSACTION_ID on a view VIEW_ID.
Authentication is Mandatory
The image is linked with the user.
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
TRANSACTION_ID: 2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub
-
VIEW_ID: owner
JSON request body fields:
-
label: My Account
JSON response body fields:
{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"label":"NONE",
"URL":"www.openbankproject.com",
"date":"2017-09-19T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-10001: Incorrect json format.
- OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
- OBP-30022: The current view does not have the permission:
- OBP-30005: View not found for Account. Please specify a valid value for VIEW_ID
- OBP-10017: Incorrect URL Format.
- OBP-50000: Unknown Error.
- OBP-20001: User not logged in. Authentication is required!
Add a Transaction Tag
Posts a tag about a transaction TRANSACTION_ID on a view VIEW_ID.
Authentication is Mandatory
Authentication is required as the tag is linked with the user.
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
TRANSACTION_ID: 2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub
-
VIEW_ID: owner
JSON request body fields:
- value: 5987953
JSON response body fields:
{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"value":"OBP",
"date":"2017-09-19T00:00:00Z",
"user":{
"id":"5995d6a2-01b3-423c-a173-5481df49bdaf",
"provider":"http://127.0.0.1:8080",
"display_name":"OBP"
}
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-10001: Incorrect json format.
- OBP-30022: The current view does not have the permission:
- 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.
-
value: 5987953
JSON response body fields:
-
account_id: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
amount: 10.12
-
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.
-
future_date: 20200127
-
iban: DE91 1000 0000 0123 4567 89
-
instructedAmount: 100
-
legal_name: Eveline Tripman
-
[message](/glossary#Message Doc): 123456
-
name: ACCOUNT_MANAGEMENT_FEE
-
start_date: 2020-01-27
-
to_simple: to_simple
-
user_id: 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
-
value: 5987953
{
"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_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":"String"
},
"transaction_ids":["902ba3bb-dedd-45e7-9319-2fd3f2cd98a1"],
"status":"COMPLETED",
"start_date":"2017-09-19T00:00:00Z",
"end_date":"2017-09-19T00:00:00Z",
"challenges":[{
"id":"2fg8a7e4-6d02-40e3-a129-0b2bf89de8ub",
"user_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"allowed_attempts":3,
"challenge_type":"OTP_VIA_API",
"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 view don't have the `canAddTransactionRequestToAnyAccount` permission or your consumer doesn't not have the access to the view of the from account or you don't have the role CanCreateAnyTransactionRequest.
- 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.
Create Transaction Request Attribute
Create Transaction Request Attribute
The type field must be one of "STRING", "INTEGER", "DOUBLE" or DATE_WITH_DAY"
Authentication is Mandatory
URL Parameters:
-
ACCOUNT_ID: 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
-
BANK_ID: gh.29.uk
-
TRANSACTION_REQUEST_ID: 8138a7e4-6d02-40e3-a129-0b2bf89de9f1
JSON request body fields:
JSON response body fields:
-
name: ACCOUNT_MANAGEMENT_FEE
-
transaction_request_attribute_id: 7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh
-
value: 5987953
{
"transaction_request_attribute_id":"7uy8a7e4-6d02-40e3-a129-0b2bf89de8uh",
"name":"HOUSE_RENT",
"type":"DATE_WITH_DAY",
"value":"123456789"
}
-
CanCreateTransactionRequestAttributeAtOneBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-30001: Bank not found. Please specify a valid value for BANK_ID.
- OBP-30018: Bank Account not found. Please specify valid values for BANK_ID and ACCOUNT_ID.
- OBP-10001: Incorrect json format.
- OBP-50000: Unknown Error.
- OBP-20006: User is missing one or more roles:
Create or Update Transaction Request Attribute Definition
Create or Update Transaction Request Attribute Definition
The category field must be TransactionRequest
The type field must be one of: DOUBLE, STRING, INTEGER and DATE_WITH_DAY
Authentication is Mandatory
URL Parameters:
- BANK_ID: gh.29.uk
JSON response body fields:
-
bank_id: gh.29.uk
-
can_be_seen_on_views: true
-
description: This an optional field. Maximum length is 2000. It can be any characters here.
-
is_active: true
-
name: ACCOUNT_MANAGEMENT_FEE
{
"attribute_definition_id":"9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"bank_id":"gh.29.uk",
"name":"SPECIAL_TAX_NUMBER",
"category":"TransactionRequest",
"type":"STRING",
"description":"description",
"alias":"STRING",
"can_be_seen_on_views":["bank"],
"is_active":true
}
-
CanCreateTransactionRequestAttributeDefinitionAtOneBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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-50000: Unknown Error.
- OBP-20006: User is missing one or more roles:
Delete Transaction Request Attribute Definition
{
"value":true
}
-
CanDeleteTransactionRequestAttributeDefinitionAtOneBank
- Please login to request this Role
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- 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.
- OBP-20006: User is missing one or more roles: