Skip to main content
An entity represents a person or business onboarded to your platform. Entities must be created and approved before accounts can be opened for them.

The Entity object

string
Unique entity identifier.
string
individual or business.
string
Review state. One of incomplete, pending, approved, rejected, or suspended. A newly created entity is incomplete until it is submitted for review.
string
Display name for the entity.
boolean
Whether this entity is the top of its hierarchy, or a child of another entity.
string
The ID of the parent entity, when this entity was created under one.
string
The ID of the associated person record. Present only when type is individual.
string
The ID of the associated business record. Present only when type is business.
string
The ID of the user associated with this entity, when applicable.
string
How the entity was created. e.g. api, user.
string
The compliance risk band assigned to this entity. e.g. medium.
number
Unix timestamp in milliseconds when the entity was created.
number
Unix timestamp in milliseconds when the entity was last updated.
Identity details, business details, and metadata are not nested inside the entity object. They’re returned as sibling objects (person or business, and person_meta or business_meta) alongside entity in endpoint responses. See Get an entity.
Example

Create an individual entity

POST /individual-entities Creates a new individual entity. After creation, upload KYC documents and submit for onboarding review before the entity can open accounts.
Request fields
string
required
A display name for the entity. 1–255 characters.
object
required
Personal details for the individual.
object
Residential address of the individual.
object
Identity and address verification documents.
object
Business context for the individual, if applicable (e.g. a sole trader or freelancer).
object
Additional compliance and risk metadata.
string
Description of this individual’s relationship to its parent, if associated with a business entity. 1–100 characters. You can’t set the parent via a request field: it’s always the authenticating entity. See Managing child entities.

Response

Returns the created entity object with status: "incomplete" until it is submitted for review.
Response
The response includes a data.person.id field used to associate KYC documents in the next step. See Entities guide for the full onboarding flow.

Update an individual entity

PATCH /individual-entities/{entity_id} Updates the profile of an existing individual entity.

Path parameters

string
required
The ID of the individual entity to update.

Request parameters

string
The name of the individual entity.
object
The profile details of the individual entity.
object
The address of the individual entity.
object
object
The identification details of the individual entity.
string
Description of this individual’s relationship to its parent entity (e.g. director, owner, etc.). You can’t set the parent via a request field: it’s always the authenticating entity. See Managing child entities.

Sample Response

Response fields

string
A message describing the result of the update operation.
string
The status of the update operation.
object
The updated entity data.

Create a business entity

POST /business-entities Creates a new business entity. After creation, submit for KYB onboarding review before the entity can open accounts.

Request fields

string
required
A display name for the entity. 1–255 characters.
object
required
Core business information.
object
Registered address of the business.
object
The address where the business physically operates, if different from the registered address. Same structure as address.
array
The individuals associated with the business. At least one officer is required.
object
Additional compliance and business metadata.
string
The ID of the parent entity, if this entity was created by another entity’s API key. Always the authenticating entity at creation; not settable via a request field.

Person object

The person object is used within business_officers to capture individual details.
string
required
1–100 characters.
string
required
1–100 characters.
string
Max 100 characters.
string
required
Format: YYYY-MM-DD.
string
required
Valid email address.
string
required
ISO 3166-1 alpha-2 country code. e.g. NG, GH, US.
string
required
m for male, f for female.
string
Phone number including country code. 10–14 characters.
string
Bank Verification Number (BVN) required for Nigerian nationals.
string
National Identity Number (NIN) required for Nigerian nationals.
string
Social Security Number (SSN) required for U.S. nationals.
object
Identity verification documents for this person.
object
Residential address of this person. Same structure as the business address object.

Response

Returns the created entity object with type: "business" and status: "incomplete" until it is submitted for review.
Response

Upload a KYC document

POST /documents Upload a supporting document for identity or business verification. Documents must be passed as base64-encoded strings.
Required documents vary by entity type. See Creating an individual entity or Creating a business entity for the full list per entity type.

Request parameters

string
required
Document type. One of identity, proof_of_address, tax_verification, certificate_of_incorporation, or memorandum_of_association.
string
required
A short description of the document. 1–500 characters.
The person_id returned in the response when the individual entity was created.
file
required
The document file. Accepted formats: PDF, JPG, PNG. Maximum file size: 10 MB.

Response

Response
Upload every document required for the entity’s type before calling the onboarding submission endpoint.

Submit for onboarding review

POST /onboarding-submissions Submit an entity for KYC or KYB review. For individual entities, call this after uploading all required documents. For business entities, call this after providing full business details.

Request parameters

string
required
The ID of the entity to submit for review.

Response

Returns the entity object with status: "pending". Nuvion reviews the submission asynchronously and fires a webhook when the status changes to approved or rejected.
Response

Update a business entity

PATCH /business-entities/{entity_id} Updates the profile of an existing business entity.

Path parameters

string
required
The ID of the business entity to update.

Request parameters

string
The name of the business entity.
object
The profile details of the business entity.
object
The registered address of the business.
object
The operating address of the business if different from the registered address.
array
A list of the business’s officers and their details.
object
Additional metadata about the business entity to provide more context for KYB review.
string
Description of this business’s relationship to its parent entity (e.g. “subsidiary”, “affiliate”, etc.). You can’t set the parent via a request field: it’s always the authenticating entity. See Managing child entities.

Response fields

string
A human-readable message describing the result of the API call.
string
The status of the API call. Either success or error.
object
The details of the updated entity, including all related objects and the specific changes that were applied.

Get an entity

GET /entities/{entity_id} Retrieves an existing entity by ID.

Path parameters

string
required
The ID of the entity to retrieve.

Response

Returns the full entity record: the core entity object, the associated person or business record, addresses, identification, uploaded documents, and platform metadata. Business entities also include officers and child entities. Shape depends on type.

Response fields

string
Always success for a successful request.
string
Human-readable confirmation message.
object

Entity statuses