Create Account (PUT)
PUT /obp/v7.0.0/banks/BANK_ID/accounts/NEW_ACCOUNT_ID
OBPv7.0.0-createAccountWithIdV700 Roles: CanCreateAccount(per bank) AccountOnboarding
Create an Account at the bank specified by BANK_ID.
The logged-in user must have the Role CanCreateAccount at BANK_ID. Unlike the v4.0.0/v5.0.0 Create Account, creating an account for yourself does not waive the Role: self-service account opening is deprecated in v7.0.0 — use Account Applications for customer-initiated account opening.
The body USER_ID is optional; when present the created Account is owned by the User specified by USER_ID, otherwise by the logged-in User.
The product_code SHOULD be a product_code from Product. If it matches one, Account Attributes are created from the Product Attributes.
account_routings carries external routings only (e.g. IBAN). The OBP-family schemes (OBP, OBP_ACCOUNT_ID) are refused: the canonical {"scheme": "OBP", "address": "<account_id>"} routing is implicit and included in every response, never stored. One routing per scheme; a routing address already registered at the bank is refused.
The balance amount MUST be zero.
Authentication is Required.
The Account is created with the NEW_ACCOUNT_ID given in the URL, which must not already exist at the bank. To let the server generate the ACCOUNT_ID, use the POST variant.
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
URL Parameters:
BANK_ID: gh.29.uk
NEW_ACCOUNT_ID: NEW_ACCOUNT_ID
JSON response body fields (13)
- account_attributes
- account_id
- 8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
- account_routings
- address
- amount
- 10.12
- balance
- 10
- bank_id
- gh.29.uk
- branch_id
- DERBY6
- currency
- EUR
- label
- My Account
- product_code
- 1234BW
- scheme
- OBP
- user_id
- 9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
Example request body
{
"user_id": "9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"label": "My Account",
"product_code": "OPEN_CORRIDOR",
"balance": {
"currency": "EUR",
"amount": "0"
},
"branch_id": "",
"account_routings": [
{
"scheme": "IBAN",
"address": "DE91100000000123456789"
}
]
}Example success response
{
"account_id": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0",
"bank_id": "gh.29.uk",
"user_id": "9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
"label": "My Account",
"product_code": "OPEN_CORRIDOR",
"balance": {
"currency": "EUR",
"amount": "0"
},
"branch_id": "",
"account_routings": [
{
"scheme": "OBP",
"address": "8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0"
},
{
"scheme": "IBAN",
"address": "DE91100000000123456789"
}
],
"account_attributes": []
}Possible errors (13)
- 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-20005: User not found. Please specify a valid value for USER_ID.
- OBP-20006: User is missing one or more roles:
- 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-30208: Account_ID already exists at the Bank.
- OBP-30114: Invalid Account Routings.
- OBP-30115: Account Routing already exist.
- OBP-30112: Invalid Number. Initial balance must be a number, e.g 1000.00
- OBP-30109: Initial Balance of Account must be Zero (0).
- OBP-10003: Invalid Currency Value. Expected a 3-letter ISO Currency Code (e.g., 'USD', 'EUR'), 'lovelace' (Cardano), or 'ETH' (Ethereum). Refer to ISO 4217 currency codes: https://www.iso.org/iso-4217-currency-codes.html
- OBP-50000: Unknown Error.