Skip to main content
POST
Create Associated Person
An associated person is a natural person behind a business entity: an ultimate beneficial owner, a director, or someone who exercises control. Virtual account onboarding needs them for two reasons: the provider verifies each person, and one of them signs the provider agreements. Associated persons exist only on business accounts: set the account’s identity to type: "business" through Update Account first, or this endpoint returns 422 BUSINESS_RULE_VIOLATION. Requires an API key with write access on the accounts scope.

Who signs the agreements

Set is_signer: true on at least one person. A business virtual account group cannot complete its agreements without one: Submit Agreement Actions requires a signer_id, and the person it names must carry this flag. Setting it on more than one person is allowed. You choose which one signs at the time.

Path Parameters

string
required
The account’s external ID (starts with acct_)

Request Body

string
required
The person’s role on the entity: ultimate_beneficial_owner, director, control_person or account_representative. account_holder is reserved for Hop’s own use and is rejected here.Hop submits exactly the roles you declare. It does not add one for you: a large owner is not treated as a control person, and a signer is not treated as an account representative.
string[]
default:"[]"
Other roles the same person holds, from the same values as role, for example an owner who is also the control person. Must not repeat role or list a value twice.
boolean
default:"false"
Whether this person may sign agreements on behalf of the entity. It gives signing authority only; declare an account representative with the account_representative role.
string
required
Max 100 characters.
string
required
Max 100 characters.
string
Max 100 characters.
string
required
Contact email for the person. Must be a valid address.
string
E.164 format, for example +6581234567. Max 20 characters.
string
required
ISO 8601 date, for example 1985-06-21.
string
required
ISO 3166-1 alpha-2 country of residence.
string
required
ISO 3166-1 alpha-2 nationality.
string
required
ISO 3166-1 alpha-2 country of birth.
string
Tax identification number, 1 to 255 characters. Must be sent together with tax_residence_country_code. Supplying one without the other is rejected.
string
ISO 3166-1 alpha-2 country of tax residence. Paired with tax_identification_number, as above.
string
Position held at the business, for example Director. Max 255 characters.
string
Ownership share as a percentage, from 0 to 100, at most 5 digits with 2 decimal places. Required when role or additional_roles includes ultimate_beneficial_owner, optional otherwise. A value outside 0 to 100 returns 422.
string
direct or indirect: whether the share is held directly or through other entities. Only accepted together with ownership_percentage. When a percentage is set, the type is needed before verification can complete.
object
required
The person’s home address. Fields: address_line and city required, country required as an ISO 3166-1 alpha-2 code, region and postal_code optional. The provider may later require postal_code, so supply it when the country has one.
object[]
default:"[]"
Identity document reference numbers. Each entry carries type (for example passport, national_id, drivers_license, max 100 characters), number (max 100 characters) and an optional issuing_country as an alpha-2 code.Reference numbers only: document files go through Upload Document against the requirement that asks for them.
identifying_information is stored for submission to the provider and is not returned on any response.

Response

Returns 201 with the created person.
string
Associated person identifier (starts with aap_), and the value to pass as signer_id when responding to agreements.
string
Always returns "associated_person"
string
Parent account ID
string
ultimate_beneficial_owner, director, control_person or account_representative
string[]
Other roles the person holds. Empty when they hold only role
boolean
Whether the person may be named as signer_id on an agreement response
string
First name
string
Last name
string
Middle name, or null
string
Contact email, or null
string
Contact phone in E.164, or null
string
ISO 8601 date, or null
string
Country of residence, alpha-2
string
Nationality, alpha-2, or null
string
Country of birth, alpha-2, or null
string
Tax identification number, or null
string
Country of tax residence, alpha-2, or null
string
Position at the business, or null
string
Ownership share as a percentage, or null
string
direct or indirect, or null
object
Residential address, or null
string
ISO 8601 timestamp when created
string
ISO 8601 timestamp when last updated
string
ID of the API key that created the person (starts with ak_)
string
Actor that last updated the person, or null

Errors

Request Example

Response Example