-
Dynamic Entity Manage
- Create Bank Level Dynamic Entity
- Create System Level Dynamic Entity
- Delete Bank Level Dynamic Entity
- Delete My Dynamic Entity
- Delete System Level Dynamic Entity
- Get Bank Level Dynamic Entities
- Get My Dynamic Entities
- Get System Dynamic Entities
- Update Bank Level Dynamic Entity
- Update My Dynamic Entity
- Update System Level Dynamic Entity
-
Dynamic Entity Manage
-
Create Bank Level Dynamic Entity
-
Create System Level Dynamic Entity
-
Delete Bank Level Dynamic Entity
-
Delete My Dynamic Entity
-
Delete System Level Dynamic Entity
-
Get Bank Level Dynamic Entities
-
Get My Dynamic Entities
-
Get System Dynamic Entities
-
Update Bank Level Dynamic Entity
-
Update My Dynamic Entity
-
Update System Level Dynamic Entity
-
Create Bank Level Dynamic Entity
v5.1.0 filtered by tag: Dynamic-Entity-Manage (11 APIs)
Create Bank Level Dynamic Entity
Create a Bank Level DynamicEntity.
Note: Once you have created a DynamicEntity to see it in the API Explorer II, find OBPdynamic-entity or similar in the list of API versions.
FYI Dynamic Entities and Dynamic Endpoints are listed in the Resource Doc endpoints by adding content=dynamic to the path. They are cached differently to static endpoints.
For more information about Dynamic Entities see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
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.
To see the complete list of available reference types and their correct formats, call:
GET /obp/v6.0.0/management/dynamic-entities/reference-types
This endpoint returns all available reference types (both static OBP entities and dynamic entities) with example values showing the correct format.
Note: if you set hasPersonalEntity = false, then OBP will not generate the CRUD my FooBar endpoints.
IMPORTANT: Entity Naming
In the examples below, "AgentConversation" and "AgentMessage" are example entity names. You should replace these with your own entity name (e.g., "Event", "Price", "Order", "Invoice"). The entity name you choose will become the API endpoint name and must be a valid identifier.
Example Request Body 1:
{
"AgentConversation": {
"description": "Stores conversation metadata between users and agents",
"required": ["conversation_id", "user_id"],
"properties": {
"conversation_id": {
"type": "string",
"example": "conv_3f8a7b29c91d4a93b0e0f5b1c9a4b2d1"
},
"user_id": {
"type": "string",
"example": "user_47b2de93a3b14f3db6f5aa1e1c892a9a"
},
"title": {
"type": "string",
"example": "Stripe price ID error"
},
"created_at": {
"type": "string",
"example": "2025-01-07T14:30:00.000Z"
},
"model": {
"type": "string",
"example": "gpt-5"
},
"language": {
"type": "string",
"example": "en"
},
"metadata_platform": {
"type": "string",
"example": "web"
},
"metadata_browser": {
"type": "string",
"example": "Firefox 144.0"
},
"metadata_os": {
"type": "string",
"example": "Ubuntu 22.04"
},
"tags": {
"type": "string",
"example": "stripe,api,error"
},
"summary": {
"type": "string",
"example": "User received 'No such price' error using Stripe API"
}
}
},
"hasPersonalEntity": true
}
Example 2: AgentMessage Entity with Reference to the above Entity
{
"hasPersonalEntity": true,
"AgentMessage": {
"description": "Stores individual messages within agent conversations",
"required": [
"message_id",
"conversation_id",
"role"
],
"properties": {
"message_id": {
"type": "string",
"example": "msg_8a2f3c6c44514c4ea92d4f7b91b6f002"
},
"conversation_id": {
"type": "reference:AgentConversation",
"example": "a8770fca-3d1d-47af-b6d0-7a6c3f124388"
},
"role": {
"type": "string",
"example": "user"
},
"content_text": {
"type": "string",
"example": "I'm using Stripe for the first time and getting an error..."
},
"timestamp": {
"type": "string",
"example": "2025-01-07T14:30:15.000Z"
},
"token_count": {
"type": "integer",
"example": 150
},
"model_used": {
"type": "string",
"example": "gpt-5"
}
}
}
}
Important Notes:
- Entity name is your choice: "AgentConversation", "FooBar", etc. are just examples. Replace with YOUR entity name (e.g., "Event", "Price", "Invoice")
- Entity name becomes the endpoint: If you create an entity called "Invoice", OBP will generate endpoints like /obp/dynamic-entity/Invoice, POST /obp/dynamic-entity/Invoice, etc.
- The entity name (e.g., "AgentConversation") MUST be a direct top-level key in the JSON root object
- Do NOT wrap the entity in an "entity" field - this is a common mistake
- Do NOT include "entityName" as a separate field
- The JSON root can contain at most TWO fields: your entity name and optionally "hasPersonalEntity"
- The "properties" object contains all field definitions
- Each property must have "type" and "example" fields. The "description" field is optional
- For boolean fields, the example must be the STRING "true" or "false" (not boolean values)
- The "hasPersonalEntity" field is optional (defaults to true) and goes at the root level
Example 3: Piano Entity Demonstrating Different Field Types
{
"Piano": {
"description": "Piano entity with make, year, number of keys, and type",
"required": ["make", "year", "number_of_keys", "is_grand", "date_purchased", "weight_in_kg"],
"properties": {
"make": {
"type": "string",
"example": "Steinway"
},
"year": {
"type": "string",
"example": "2023"
},
"number_of_keys": {
"type": "integer",
"example": 88
},
"is_grand": {
"type": "boolean",
"example": "true"
},
"date_purchased": {
"type": "DATE_WITH_DAY",
"example": "2023-06-15"
},
"weight_in_kg": {
"type": "number",
"example": 480.5
}
}
},
"hasPersonalEntity": true
}
WRONG (will fail validation):
{
"entity": {
"AgentConversation": { ... }
}
}
CORRECT:
{
"AgentConversation": { ... },
"hasPersonalEntity": true
}
{
"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",
"hasPersonalEntity":true
}
-
CanCreateBankLevelDynamicEntity
- 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.
Create System Level Dynamic Entity
Create a system level Dynamic Entity.
Note: To see DynamicEntity in API Explorer II, find OBPdynamic-entity or similar in the list of API versions.
FYI Dynamic Entities and Dynamic Endpoints are listed in the Resource Doc endpoints by adding content=dynamic to the path. They are cached differently to static endpoints.
For more information about Dynamic Entities see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
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.
To see the complete list of available reference types and their correct formats, call:
GET /obp/v6.0.0/management/dynamic-entities/reference-types
This endpoint returns all available reference types (both static OBP entities and dynamic entities) with example values showing the correct format.
Note: if you set hasPersonalEntity = false, then OBP will not generate the CRUD my FooBar endpoints.
IMPORTANT: Entity Naming
In the examples below, "AgentConversation" and "AgentMessage" are example entity names. You should replace these with your own entity name (e.g., "Event", "Price", "Order", "Invoice"). The entity name you choose will become the API endpoint name and must be a valid identifier.
Example Request Body 1:
{
"AgentConversation": {
"description": "Stores conversation metadata between users and agents",
"required": ["conversation_id", "user_id"],
"properties": {
"conversation_id": {
"type": "string",
"example": "conv_3f8a7b29c91d4a93b0e0f5b1c9a4b2d1"
},
"user_id": {
"type": "string",
"example": "user_47b2de93a3b14f3db6f5aa1e1c892a9a"
},
"title": {
"type": "string",
"example": "Stripe price ID error"
},
"created_at": {
"type": "string",
"example": "2025-01-07T14:30:00.000Z"
},
"model": {
"type": "string",
"example": "gpt-5"
},
"language": {
"type": "string",
"example": "en"
},
"metadata_platform": {
"type": "string",
"example": "web"
},
"metadata_browser": {
"type": "string",
"example": "Firefox 144.0"
},
"metadata_os": {
"type": "string",
"example": "Ubuntu 22.04"
},
"tags": {
"type": "string",
"example": "stripe,api,error"
},
"summary": {
"type": "string",
"example": "User received 'No such price' error using Stripe API"
}
}
},
"hasPersonalEntity": true
}
Example 2: AgentMessage Entity with Reference to the above Entity
{
"hasPersonalEntity": true,
"AgentMessage": {
"description": "Stores individual messages within agent conversations",
"required": [
"message_id",
"conversation_id",
"role"
],
"properties": {
"message_id": {
"type": "string",
"example": "msg_8a2f3c6c44514c4ea92d4f7b91b6f002"
},
"conversation_id": {
"type": "reference:AgentConversation",
"example": "a8770fca-3d1d-47af-b6d0-7a6c3f124388"
},
"role": {
"type": "string",
"example": "user"
},
"content_text": {
"type": "string",
"example": "I'm using Stripe for the first time and getting an error..."
},
"timestamp": {
"type": "string",
"example": "2025-01-07T14:30:15.000Z"
},
"token_count": {
"type": "integer",
"example": 150
},
"model_used": {
"type": "string",
"example": "gpt-5"
}
}
}
}
Important Notes:
- Entity name is your choice: "AgentConversation", "FooBar", etc. are just examples. Replace with YOUR entity name (e.g., "Event", "Price", "Invoice")
- Entity name becomes the endpoint: If you create an entity called "Invoice", OBP will generate endpoints like /obp/dynamic-entity/Invoice, POST /obp/dynamic-entity/Invoice, etc.
- The entity name (e.g., "AgentConversation") MUST be a direct top-level key in the JSON root object
- Do NOT wrap the entity in an "entity" field - this is a common mistake
- Do NOT include "entityName" as a separate field
- The JSON root can contain at most TWO fields: your entity name and optionally "hasPersonalEntity"
- The "properties" object contains all field definitions
- Each property must have "type" and "example" fields. The "description" field is optional
- For boolean fields, the example must be the STRING "true" or "false" (not boolean values)
- The "hasPersonalEntity" field is optional (defaults to true) and goes at the root level
Example 3: Piano Entity Demonstrating Different Field Types
{
"Piano": {
"description": "Piano entity with make, year, number of keys, and type",
"required": ["make", "year", "number_of_keys", "is_grand", "date_purchased", "weight_in_kg"],
"properties": {
"make": {
"type": "string",
"example": "Steinway"
},
"year": {
"type": "string",
"example": "2023"
},
"number_of_keys": {
"type": "integer",
"example": 88
},
"is_grand": {
"type": "boolean",
"example": "true"
},
"date_purchased": {
"type": "DATE_WITH_DAY",
"example": "2023-06-15"
},
"weight_in_kg": {
"type": "number",
"example": 480.5
}
}
},
"hasPersonalEntity": true
}
WRONG (will fail validation):
{
"entity": {
"AgentConversation": { ... }
}
}
CORRECT:
{
"AgentConversation": { ... },
"hasPersonalEntity": true
}
{
"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",
"hasPersonalEntity":true
}
-
CanCreateSystemLevelDynamicEntity
- 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.
Delete Bank Level Dynamic Entity
Delete a Bank Level DynamicEntity specified by DYNAMIC_ENTITY_ID.
For more information see here/
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
-
CanDeleteBankLevelDynamicEntity
- 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.
Delete My Dynamic Entity
Delete my DynamicEntity specified by DYNAMIC_ENTITY_ID.
For more information see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-50000: Unknown Error.
Delete System Level Dynamic Entity
Delete a DynamicEntity specified by DYNAMIC_ENTITY_ID.
For more information see here/
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
-
CanDeleteSystemLevelDynamicEntity
- 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.
Get Bank Level Dynamic Entities
Get all the bank level Dynamic Entities for one bank.
For more information see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
{
"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",
"hasPersonalEntity":true
}]
}
-
CanGetBankLevelDynamicEntities
- 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.
Get My Dynamic Entities
Get all my Dynamic Entities (definitions I created).
For more information see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
{
"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",
"hasPersonalEntity":true
}]
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-50000: Unknown Error.
Get System Dynamic Entities
Get all System Dynamic Entities.
For more information see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
{
"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",
"hasPersonalEntity":true
}]
}
-
CanGetSystemLevelDynamicEntities
- 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 Bank Level Dynamic Entity
Update a Bank Level DynamicEntity.
For more information see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
Update one DynamicEntity, after update finished, the corresponding CRUD endpoints will be changed.
The following field types are as supported:
[number, integer, boolean, string, DATE_WITH_DAY, reference]
The DATE_WITH_DAY format is: yyyy-MM-dd
To see all available reference types and their correct formats, call:
GET /obp/v6.0.0/management/dynamic-entities/reference-types
{
"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",
"hasPersonalEntity":true
}
-
CanUpdateBankLevelDynamicEntity
- 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.
Update My Dynamic Entity
Update my DynamicEntity.
For more information see here/
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
Update one of my DynamicEntity, after update finished, the corresponding CRUD endpoints will be changed.
Current support filed types as follow:
[number, integer, boolean, string, DATE_WITH_DAY, reference]
The DATE_WITH_DAY format is: yyyy-MM-dd
To see all available reference types and their correct formats, call:
GET /obp/v6.0.0/management/dynamic-entities/reference-types
{
"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",
"hasPersonalEntity":true
}
- Required JSON Validation: No
- Allowed Authentication Types: Not set
- OBP-20001: User not logged in. Authentication is required!
- OBP-10001: Incorrect json format.
- OBP-09001: DynamicEntity not found. Please specify a valid value for DYNAMIC_ENTITY_ID.
- OBP-50000: Unknown Error.
Update System Level Dynamic Entity
Update a System Level Dynamic Entity.
For more information see here
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
Update one DynamicEntity, after update finished, the corresponding CRUD endpoints will be changed.
The following field types are as supported:
[number, integer, boolean, string, DATE_WITH_DAY, reference]
The DATE_WITH_DAY format is: yyyy-MM-dd
To see all available reference types and their correct formats, call:
GET /obp/v6.0.0/management/dynamic-entities/reference-types
{
"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",
"hasPersonalEntity":true
}
-
CanUpdateSystemLevelDynamicEntity
- 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-09001: DynamicEntity not found. Please specify a valid value for DYNAMIC_ENTITY_ID.
- OBP-10001: Incorrect json format.
- OBP-50000: Unknown Error.

