Send Primary, Authorized Person and Owners Data
This endpoint is used during business customer onboarding to submit identity and contact details for the primary authorized person and up to four beneficial owners associated with a business account. It records critical KYC (Know Your Customer) information required by Netevia to verify and activate the business account. Successful submission returns a boarding response confirming the profile ID and any processing changes.
Endpoint
POST /netevia/businessAccountHolder
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when onboarding a new business customer onto the Netevia platform. It should be called after initial business registration to provide the authorizing person's personal details, business identification data, and ownership information for all beneficial owners holding 25% or more of the business. This step is required before a financial account can be opened for the business.
Request Body
Primary / Authorizing Person Fields
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | Yes | Email address of the authorizing person |
givenName | string | Yes | First name of the authorizing person |
familyName | string | Yes | Last name of the authorizing person |
middleName | string | No | Middle name of the authorizing person |
phone | string | Yes | 10-digit personal phone number (digits only) |
ssn | string | Yes | Social Security Number of the authorizing person (format: XXX-XX-XXXX) |
dateOfBirth | string (date-time) | Yes | Date of birth in ISO 8601 format |
streetAddress | string | Yes | Street address of the authorizing person's residence |
extendedAddress | string | No | Apartment, suite, or unit number for the residence |
city | string | Yes | City of the authorizing person's residence |
postalCode | string | Yes | ZIP code of the authorizing person's residence |
state | integer (enum) | Yes | US state as integer enum (1–53) |
authorizingPersonTitle | integer (enum) | Yes | Title of the authorizing person (0=None, 1=Mr, 2=Mrs, 3=Ms, 4=Dr, 5=Prof, 6=Other) |
primaryAuthorizedStreetAddress | string | Yes | Primary authorized person's street address |
primaryAuthorizedExtendedAddress | string | No | Primary authorized person's extended address (apt/suite) |
primaryAuthorizedPostalCode | string | Yes | 5-digit ZIP code for the primary authorized address |
primaryAuthorizedLocality | string | Yes | City for the primary authorized address |
primaryAuthorizedState | integer (enum) | Yes | US state enum for the primary authorized address |
Business Fields
| Field | Type | Required | Description |
|---|---|---|---|
legalBusinessName | string | Yes | Full legal name of the business |
doingBusinessAsName | string | Yes | DBA (doing business as) name |
employerIdentificationNumber | string | Yes | Federal EIN (9-digit format) |
businessPhone | string | Yes | 10-digit business phone number (digits only) |
percentageOwnership | integer (0–100) | Yes | Ownership percentage of the authorizing person |
businessType | integer (enum) | No | Type of business (0=Unknown, 1=SoleProprietorship, 2=Partnership, 3=Corporation, 4=LLC) |
website | string | No | Business website URL |
businessStartDate | string (date-time) | No | Date the business was established |
annualBusinessRevenue | integer (int64) | No | Annual revenue of the business in USD |
payrollCustomer | boolean | No | Indicates if this business is a payroll customer |
profileType | integer (enum) | No | Profile type (0=Default, 1=Type1, 2=Type2, 3=Type3) |
Beneficial Owner Fields (owner, owner2, owner3, owner4)
Each owner object supports up to four beneficial owners. All owner objects use the same schema. Each individual owner field set is optional at the top level, but if provided, all required sub-fields must be included.
| Field | Type | Required (if owner provided) | Description |
|---|---|---|---|
firstName | string (max 255) | Yes | Owner's first name |
lastName | string (max 255) | Yes | Owner's last name |
middleName | string (max 255) | No | Owner's middle name |
email | string (email) | Yes | Owner's email address |
homePhone | string | Yes | 10-digit home phone number (digits only) |
ssn | string | Yes | Owner's Social Security Number (format: XXX-XX-XXXX) |
dob | string (date-time) | Yes | Owner's date of birth in ISO 8601 format |
homeAddress | string | Yes | Owner's street address |
extendedAddress | string | No | Apt, suite, or unit for the owner's address |
city | string | Yes | Owner's city |
state | integer (enum) | Yes | US state enum for owner's address |
zipCode | string | Yes | 5-digit ZIP code for owner's address |
percentageOwnership | integer (25–100) | Yes | Owner's ownership percentage (minimum 25%) |
{
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"middleName": "A",
"phone": "3055550101",
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1980-04-15T00:00:00Z",
"streetAddress": "100 Main St",
"extendedAddress": "Suite 200",
"city": "Miami",
"postalCode": "33101",
"state": 10,
"authorizingPersonTitle": 2,
"primaryAuthorizedStreetAddress": "100 Main St",
"primaryAuthorizedExtendedAddress": "Suite 200",
"primaryAuthorizedPostalCode": "33101",
"primaryAuthorizedLocality": "Miami",
"primaryAuthorizedState": 10,
"legalBusinessName": "Acme Corporation LLC",
"doingBusinessAsName": "Acme Corp",
"employerIdentificationNumber": "123456789",
"businessPhone": "3055550100",
"percentageOwnership": 60,
"businessType": 4,
"website": "https://www.acmecorp.com",
"businessStartDate": "2010-06-01T00:00:00Z",
"annualBusinessRevenue": 500000,
"payrollCustomer": false,
"owner": {
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"homePhone": "3055550202",
"ssn": "XXX-XX-XXXX",
"dob": "1975-08-20T00:00:00Z",
"homeAddress": "200 Oak Ave",
"city": "Miami",
"state": 10,
"zipCode": "33102",
"percentageOwnership": 40
}
}Response
200 OK
The response is one of two schemas depending on whether a financial account was also opened during the boarding process.
boardingresponse
| Field | Type | Description |
|---|---|---|
profileId | integer (int32) | The Netevia profile ID assigned to the business account holder |
success | boolean | Indicates whether the submission was successful |
errors | string | Error message if success is false; null otherwise |
changeLog | array | List of changes processed during boarding; each entry contains requestType (integer enum) and changes (string) |
openfinancialaccountresponse (extends boardingresponse)
| Field | Type | Description |
|---|---|---|
profileId | integer (int32) | The Netevia profile ID assigned to the business account holder |
success | boolean | Indicates whether the submission was successful |
errors | string | Error message if success is false; null otherwise |
changeLog | array | List of boarding changes processed |
financialAccountId | string | ID of the financial account opened during boarding, if applicable |
{
"profileId": 100234,
"success": true,
"errors": null,
"changeLog": [
{
"requestType": 1,
"changes": "Business account holder profile created."
}
]
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields, invalid field format (e.g., invalid SSN pattern, phone not 10 digits, ZIP not 5 digits), or ownership percentage out of range |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to submit business account holder data |
| 404 | Referenced profile or resource not found |
| 500 | Internal server error |
Common Mistakes
- Sending
ssnordobin an incorrect format — SSN must match the exact regex pattern (no dashes in the raw value sent; use the unformatted 9-digit number), anddateOfBirth/dobmust be ISO 8601 date-time strings. - Providing an owner's
percentageOwnershipbelow 25 — the schema enforces a minimum of 25% per beneficial owner. - Sending
phoneorbusinessPhoneorhomePhonewith formatting characters (dashes, spaces, parentheses) — these fields must be exactly 10 consecutive digits. - Omitting
primaryAuthorizedStreetAddress,primaryAuthorizedPostalCode,primaryAuthorizedLocality, orprimaryAuthorizedState— these are required even when they duplicate the authorizing person's residence address. - Using a string state abbreviation (e.g.,
"FL") instead of the integer enum value (e.g.,10) for anystatefield. - Submitting an
employerIdentificationNumberwith dashes — the EIN must be submitted as a 9-digit numeric string with no formatting characters.
Related Endpoints
POST /netevia/businessCustomer— Create the initial business customer record before submitting account holder dataPOST /netevia/authorizedUser— Add an authorized subprofile user to an existing business accountGET /netevia/businessAccountHolder/{profileId}— Retrieve submitted business account holder details for a given profilePUT /netevia/businessAccountHolder— Update existing business account holder information
Example
curl -X POST https://api.banking.netevia.dev/netevia/businessAccountHolder \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"phone": "3055550101",
"ssn": "XXXXXXXXX",
"dateOfBirth": "1980-04-15T00:00:00Z",
"streetAddress": "100 Main St",
"city": "Miami",
"postalCode": "33101",
"state": 10,
"authorizingPersonTitle": 2,
"primaryAuthorizedStreetAddress": "100 Main St",
"primaryAuthorizedPostalCode": "33101",
"primaryAuthorizedLocality": "Miami",
"primaryAuthorizedState": 10,
"legalBusinessName": "Acme Corporation LLC",
"doingBusinessAsName": "Acme Corp",
"employerIdentificationNumber": "123456789",
"businessPhone": "3055550100",
"percentageOwnership": 100,
"businessType": 4
}'