Online Merchant Application — Create Business Profile
This endpoint creates or updates a business customer profile in the Netevia banking platform. It accepts the authorized person's personal details alongside the business entity's information, including ownership structure and KYB/KYC data. Upon successful submission, the platform returns a confirmation with the assigned profile identifier.
Endpoint
POST /netevia/oma/profile
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 during the partner onboarding flow when registering a new business customer or updating an existing business profile. It is the entry point for the Online Merchant Application (OMA) and Banking API boarding paths. Submit this request after collecting all required KYB (Know Your Business) and KYC (Know Your Customer) information from the business owner.
Request Body
The request body accepts one of two schemas:
createbusinessprofileomarequest— Standard OMA flow (up to two beneficial owners viaprimaryOwnerandsecondaryOwner).createbusinessprofilebankingapirequest— Extended Banking API flow, which inherits all OMA fields and addsthirdOwnerandfourstOwnerfor up to four beneficial owners.
Base Profile Fields (inherited by both schemas)
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | Yes | Authorized person's email address |
givenName | string | Yes | Authorized person's first name |
familyName | string | Yes | Authorized person's last name |
middleName | string | No | Authorized person's middle name |
cardProductId | string | No | Card product identifier to assign |
agentPayoutProfileId | integer (int32) | Yes | Agent payout profile identifier |
salesRepresentativeId | integer (int32) | Yes | Sales representative identifier |
merchantProfileId | integer (int32) | No | Existing merchant profile identifier (for updates) |
isRisk | boolean | No | Flags the profile as high-risk |
nickName | string | No | Display nickname for the profile |
password | string | No | Initial account password |
partnerId | integer (int32) | No | Partner identifier |
OMA Profile Fields (createbusinessprofileomarequest)
createbusinessprofileomarequest)| Field | Type | Required | Description |
|---|---|---|---|
phone | string | Yes | Authorized person's phone number (10 digits) |
authorizedPersonTitle | integer (enum) | Yes | Title of the authorized person. Values: 0–6 (e.g., 0=Mr, 1=Mrs, 2=Ms, etc.) |
percentageOwnership | integer (0–100) | Yes | Authorized person's ownership percentage |
ssn | string | Yes | Authorized person's Social Security Number (format: XXX-XX-XXXX) |
dateOfBirth | string (date-time) | Yes | Authorized person's date of birth (ISO 8601) |
streetAddress | string | Yes | Authorized person's residential street address |
extendedAddress | string | No | Authorized person's address line 2 (apt, suite, etc.) |
city | string | Yes | Authorized person's city |
postalCode | string | Yes | Authorized person's ZIP/postal code |
state | integer (enum) | Yes | Authorized person's state (integer 1–53 representing US states/territories) |
legalBusinessName | string | Yes | Legal registered business name |
doingBusinessAsName | string | Yes | DBA (Doing Business As) name |
website | string | No | Business website URL |
businessType | integer (enum) | No | Business entity type. Values: 0–4 (e.g., 0=SoleProprietorship, 1=LLC, 2=Corporation, 3=Partnership, 4=NonProfit) |
businessPhone | string | Yes | Business phone number (10 digits, pattern: `^(\d |
businessStreetAddress | string | Yes | Business street address |
businessExtendedAddress | string | No | Business address line 2 |
businessCity | string | Yes | Business city |
businessPostalCode | string | Yes | Business ZIP/postal code |
businessState | integer (enum) | Yes | Business state (integer 1–53) |
employerIdentificationNumber | string | Yes | Federal Employer Identification Number (EIN, format: XX-XXXXXXX) |
primaryOwnerIsPrimaryAuthorizedPerson | boolean | No | Set true if the authorized person is also the primary owner |
primaryOwner | object (ownerrequest) | No | Primary beneficial owner details (see Owner Object below) |
secondaryOwner | object (ownerrequest) | No | Secondary beneficial owner details |
owner3 | object (ownerrequest) | No | Third beneficial owner details |
owner4 | object (ownerrequest) | No | Fourth beneficial owner details |
businessStartDate | string (date-time) | No | Date the business was established (ISO 8601) |
annualBusinessRevenue | integer (int64) | No | Annual business revenue in cents (minimum: 0) |
profileType | integer (enum) | No | Profile type. Values: 0–3 |
applicationCreationType | string (enum) | No | Source of the application. Values: MobileApplication, OnlineBankingApplication, OnlineMerchantApplication, NeteviaBoardingApplication, BankingAPI, NeteviaAPI |
payrollCustomer | boolean | No | Indicates if this is a payroll customer |
Extended Banking API Fields (createbusinessprofilebankingapirequest)
createbusinessprofilebankingapirequest)Inherits all fields from createbusinessprofileomarequest, plus:
| Field | Type | Required | Description |
|---|---|---|---|
thirdOwner | object (ownerrequest) | No | Third beneficial owner (use instead of owner3 in API flow) |
fourstOwner | object (ownerrequest) | No | Fourth beneficial owner (use instead of owner4 in API flow) |
Owner Object (ownerrequest)
ownerrequest)Used for primaryOwner, secondaryOwner, owner3, owner4, thirdOwner, fourstOwner.
| Field | Type | Required | 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 |
homeAddress | string | Yes | Owner's residential street address |
extendedAddress | string | No | Owner's address line 2 |
city | string | Yes | Owner's city |
state | integer (enum) | Yes | Owner's state (integer 1–53) |
zipCode | string | Yes | Owner's ZIP code (5 digits, pattern: ^\d{5}$) |
homePhone | string | Yes | Owner's phone number (10 digits) |
percentageOwnership | integer (25–100) | Yes | Owner's ownership percentage (minimum 25) |
ssn | string | Yes | Owner's Social Security Number (format: XXX-XX-XXXX) |
dob | string (date-time) | Yes | Owner's date of birth (ISO 8601) |
email | string (email) | Yes | Owner's email address |
{
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"middleName": "M",
"agentPayoutProfileId": 101,
"salesRepresentativeId": 55,
"partnerId": 12,
"phone": "5551234567",
"authorizedPersonTitle": 1,
"percentageOwnership": 75,
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1980-04-15T00:00:00Z",
"streetAddress": "123 Main St",
"extendedAddress": "Apt 4B",
"city": "Austin",
"postalCode": "78701",
"state": 44,
"legalBusinessName": "Acme Corp LLC",
"doingBusinessAsName": "Acme Corp",
"website": "https://www.acmecorp.com",
"businessType": 1,
"businessPhone": "5559876543",
"businessStreetAddress": "456 Commerce Blvd",
"businessExtendedAddress": "Suite 200",
"businessCity": "Austin",
"businessPostalCode": "78702",
"businessState": 44,
"employerIdentificationNumber": "12-3456789",
"primaryOwnerIsPrimaryAuthorizedPerson": true,
"businessStartDate": "2015-06-01T00:00:00Z",
"annualBusinessRevenue": 500000,
"profileType": 1,
"applicationCreationType": "NeteviaAPI",
"payrollCustomer": false,
"secondaryOwner": {
"firstName": "John",
"lastName": "Smith",
"homeAddress": "789 Oak Ave",
"city": "Austin",
"state": 44,
"zipCode": "78703",
"homePhone": "5554445555",
"percentageOwnership": 25,
"ssn": "XXX-XX-XXXX",
"dob": "1975-09-20T00:00:00Z",
"email": "[email protected]"
}
}Response
200 OK
| Field | Type | Description |
|---|---|---|
profileId | integer (int32) | The unique identifier of the created or updated business profile |
error | string | null | Error message if the operation encountered a non-fatal issue; null on full success |
{
"profileId": 98432,
"error": null
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields, validation error (e.g., invalid SSN format, EIN format, phone pattern, or ownership percentage out of range) |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions for the requested operation |
| 404 | Referenced resource (e.g., agentPayoutProfileId, salesRepresentativeId) not found |
| 500 | Internal server error |
Common Mistakes
- Submitting
ssnas a plain number string instead of the validated pattern — the API enforces a strict regex; SSNs beginning with 666 or 9XX are rejected. - Providing
percentageOwnershipfor anownerrequestobject below 25 — the minimum for beneficial owners is 25%. - Using a two-digit or hyphenated EIN format that does not match the expected pattern (
^(\d{2})?(\d{7})$without hyphens). - Setting
primaryOwnerIsPrimaryAuthorizedPerson: truewhile also submitting a populatedprimaryOwnerobject — these are mutually exclusive when the authorized person is the primary owner. - Sending
businessPhoneorhomePhonewith fewer or more than 10 digits, or including hyphens/spaces — only digits are accepted. - Omitting
applicationCreationTypewhen integrating via the Banking API path; use"NeteviaAPI"or"BankingAPI"to ensure correct routing. - Passing a
statevalue outside the valid range 1–53 for either the personal or business address.
Related Endpoints
POST /api/auth/v2— Obtain a Bearer token required for this requestPOST /api/auth/refresh— Refresh an expiring Bearer tokenGET /netevia/oma/profile/{profileId}— Retrieve an existing business profile by IDPUT /netevia/oma/profile/{profileId}— Update an existing business profile
Example
curl -X POST https://api.banking.netevia.dev/netevia/oma/profile \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"agentPayoutProfileId": 101,
"salesRepresentativeId": 55,
"partnerId": 12,
"phone": "5551234567",
"authorizedPersonTitle": 1,
"percentageOwnership": 75,
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1980-04-15T00:00:00Z",
"streetAddress": "123 Main St",
"city": "Austin",
"postalCode": "78701",
"state": 44,
"legalBusinessName": "Acme Corp LLC",
"doingBusinessAsName": "Acme Corp",
"businessPhone": "5559876543",
"businessStreetAddress": "456 Commerce Blvd",
"businessCity": "Austin",
"businessPostalCode": "78702",
"businessState": 44,
"employerIdentificationNumber": "12-3456789",
"applicationCreationType": "NeteviaAPI"
}'