Documentation/API/Entity API
Entity Service
API reference for managing organizations, businesses, and personal entities
VERTEX ENGINE
00
Table of Contents
Entity Types Overview
The Entity service supports two types of entities: Business entities and Personal entities. Each type has different requirements and automated processes.
Business Entity
- Represents a company or organization
- Requires KYB (Know Your Business) verification
- First account created automatically after KYB approval
- Can create multiple accounts
- Requires registration number and trading name
Personal Entity
- Represents an individual person
- Requires KYC (Know Your Customer) verification
- User account created automatically upon entity creation
- Requires personal details (name, ID, date of birth, etc.)
- Suitable for individual banking needs
ℹ️ Automatic User Creation for Personal Entities
When a personal entity is created, a corresponding user account is automatically created with the same details. This streamlines the onboarding process for individual customers.
Entity-Account Relationship
The relationship between entities and accounts differs based on the entity type.
Business Entities
Business Account Creation Process
- First account is automatically created after successful KYB verification
- Additional accounts can be created by calling the entity endpoint again
- Each account has a unique account number
- All accounts are linked to the parent entity
- No limit on the number of accounts per entity
Benefits of Multiple Accounts
- Segregate funds by department, project, or purpose
- Simplify financial organization
- Improve financial reporting and reconciliation
- Enable better cash flow management
- Support compliance requirements for fund segregation
Personal Entities
Personal Entity Process
- User account is automatically created when personal entity is created
- User inherits all personal details from the entity
- Account creation follows after KYC verification
- Single user per personal entity
1. Create Entity
Creates a new entity in the system.
Subject: svc.entity.<partner_id>.create
Request for Business Entity
{
"name": "string", // Required - Company name
"trading_name": "string", // Required - Trading name
"tax_number": "string", // Optional - Tax number
"registration_number": "string", // Required - Company registration number (12 digits)
"email": "string", // Required - Business email
"country": "string", // Required - ISO 3-letter country code (e.g., "ZAF")
"entity_type": "business" // Required - Must be "business"
}
Required Fields for Business Entity
name
- Company nametrading_name
- Trading nameregistration_number
- Company registration number (12 digits)email
- Business emailcountry
- ISO 3-letter country codeentity_type
- Must be "business"
Request for Personal Entity
{
"name": "string", // Optional - Will be auto-generated from first_name + last_name
"entity_type": "personal", // Required - Must be "personal"
"email": "string", // Required - Personal email
"country": "string", // Required - ISO 3-letter country code (e.g., "ZAF")
"first_name": "string", // Required - First name
"last_name": "string", // Required - Last name
"phone_number": "string", // Required - Phone number
"gender": "string", // Required - One of: male, female, other
"date_of_birth": "string", // Required - Format: "YYYY-MM-DDTHH:MM:SSZ"
"id_number": "string", // Required - National ID or passport number
"id_type": "string", // Required - One of: National, Passport
"id_issue_date": "string", // Required - Format: "YYYY-MM-DDTHH:MM:SSZ"
"id_issue_expiry_date": "string", // Optional - Format: "YYYY-MM-DDTHH:MM:SSZ"
"city": "string", // Optional - City of residence
"residency": "string", // Optional - Residency status
"title": "string", // Optional - Title (e.g., Mr, Ms, Dr, Mx)
"permit_number": "string" // Optional - Work permit number (for non-citizens)
}
Required Fields for Personal Entity
entity_type
- Must be "personal"email
- Personal emailcountry
- ISO 3-letter country codefirst_name
- First namelast_name
- Last namephone_number
- Phone numbergender
- One of: male, female, otherdate_of_birth
- Format: YYYY-MM-DDTHH:MM:SSZid_number
- National ID or passport numberid_type
- One of: National, Passportid_issue_date
- Format: YYYY-MM-DDTHH:MM:SSZ
ℹ️ ID Type Validation
- For
National
ID type: ID number must be exactly 13 digits - For
Passport
type: Any alphanumeric format is accepted
Response
{
"id": "uuid" // The ID of the newly created entity
}
Possible Errors
400 Bad Request
: Invalid input data or validation failure409 Conflict
: Entity already exists (duplicate ID number or registration number)500 Internal Server Error
: Error creating organization
2. Get Entity Info
Retrieves information about a specific entity.
Subject: svc.entity.<partner_id>.info
Request
{
"entity_id": "uuid" // Required - The entity ID to retrieve
}
Response for Business Entity
{
"id": "uuid",
"date_created": "string",
"name": "string",
"trading_name": "string",
"entity_type": "business",
"email": "string",
"approved": boolean
}
Response for Personal Entity
{
"id": "uuid",
"date_created": "string",
"name": "string",
"entity_type": "personal",
"email": "string",
"approved": boolean,
"first_name": "string",
"last_name": "string",
"phone_number": "string",
"gender": "string",
"date_of_birth": "string",
"id_number": "string",
"id_type": "string",
"id_issue_date": "string",
"id_issue_expiry_date": "string",
"city": "string",
"residency": "string",
"title": "string",
"permit_number": "string"
}
Possible Errors
400 Bad Request
: Invalid request data403 Forbidden
: Permission denied404 Not Found
: Entity not found
3. Update Entity Address
Updates the address information for an entity.
Subject: svc.entity.<partner_id>.update_address
Request
{
"entity_id": "string", // Required
"address_line_1": "string", // Required
"address_line_2": "string", // Optional
"state": "string", // Optional
"postcode": "string", // Optional
"country": "string", // Optional - ISO 3-letter country code
"city": "string" // Optional
}
Required Fields
entity_id
address_line_1
Response
{
// Empty response indicates success
}
Possible Errors
400 Bad Request
: Invalid input data404 Not Found
: Entity not found500 Internal Server Error
: Error updating address