API Explorer 975 endpoints

Create Account (POST)

POST /obp/v7.0.0/banks/BANK_ID/accounts

OBPv7.0.0-createAccountV700 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.

The response metadata.created says who created the Account and for whom: user_id is the User who made the call and on_behalf_of_user_id the User it was made for. They differ when an application acting for a User, such as an AI agent, calls with a Consent; see On Behalf Of. consent_reference_id is then the Consent's reference id, the one Metrics record for the same call; it is omitted when the caller acted for themselves. OBP keeps this record itself, whichever Connector holds the Account.

Authentication is Required.

The ACCOUNT_ID is generated by the server and returned in the response. To specify the ACCOUNT_ID yourself, use the PUT variant.

User Authentication is Required. The User must be logged in. The Application must also be authenticated.

URL Parameters:

BANK_ID: gh.29.uk

JSON request body fields (10)
address
amount
10.12
balance
10
currency
EUR
label
My Account
product_code
1234BW
scheme
OBP
account_routings
branch_id
DERBY6
user_id
9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
JSON response body fields (18)
account_attributes
account_id
8ca8a7e4-6d02-40e3-a129-0b2bf89de9f0
account_routings
address
amount
10.12
at
at
balance
10
bank_id
gh.29.uk
branch_id
DERBY6
created
currency
EUR
label
My Account
metadata
on_behalf_of_user_id
on_behalf_of_user_id
product_code
1234BW
scheme
OBP
user_id
9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1
consent_reference_id
fd13b9af-4f74-4d52-a7f1-7c2c12f3aa11
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": [],
  "metadata": {
    "created": {
      "at": "2026-09-30T10:12:00Z",
      "user_id": "a9f2c7e1-3d4b-4a5c-8e6f-7a8b9c0d1e2f",
      "on_behalf_of_user_id": "9ca9a7e4-6d02-40e3-a129-0b2bf89de9b1",
      "consent_reference_id": "4c7e8f2a-1b3d-4e5f-9a6b-7c8d9e0f1a2b"
    }
  }
}
Possible errors (11)
  • 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-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.
Implemented by OBPv7.0.0 createAccountV700