User Registration for Personal Accounts
This endpoint registers a new personal account holder within the Netevia Banking platform. Partners submit the individual's identity, contact, and address details to create the account. On success, a profile ID and optional financial account ID are returned for use in subsequent API calls.
Endpoint
POST /api/users/personal
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 individual customer to the platform. This is the first step in the personal account lifecycle — the returned profileId is required for opening financial accounts, issuing cards, and initiating transfers on behalf of the customer. Submit complete and accurate identity data to avoid underwriting failures.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| givenName | string | Yes | Legal first name. Max 255 characters. Letters, hyphens, and spaces only. |
| familyName | string | Yes | Legal last name. Max 255 characters. Letters and spaces only. |
| middleName | string | No | Middle name. Max 255 characters. Letters and spaces only. |
| string (email) | Yes | Valid email address for the account holder. | |
| phone | string | Yes | 10-digit phone number (digits only, no formatting). |
| ssn | string | Yes | Social Security Number (9 digits, no dashes). Must be a valid SSN format. |
| dateOfBirth | string (date-time) | Yes | Date of birth in ISO 8601 format (e.g., 1990-01-15T00:00:00Z). |
| streetAddress | string | Yes | Street address including house number. |
| extendedAddress | string | No | Apartment, suite, or unit number. |
| postalCode | string | Yes | 5-digit US ZIP code. |
| locality | string | Yes | City name. |
| state | integer (enum) | Yes | US state as an integer enum value (1–53, mapping to US states and territories). |
| password | string | No | Account password. Transmitted securely. |
| login | string | No | Desired login username. 6–40 characters. |
| partnerId | integer | No | Partner identifier. Provided by Netevia during onboarding. |
| agentUserName | string | No | Username of the referring agent, if applicable. |
| agentPayoutId | integer | No | Payout identifier for the referring agent, if applicable. |
| employerId | integer | No | Employer identifier, used for Earned Wage Access (EWA) integrations. |
{
"givenName": "Jane",
"familyName": "Smith",
"middleName": "Marie",
"email": "[email protected]",
"phone": "5551234567",
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1990-03-22T00:00:00Z",
"streetAddress": "123 Main St",
"extendedAddress": "Apt 4B",
"postalCode": "30301",
"locality": "Atlanta",
"state": 11,
"password": "S3cur3P@ssword!",
"login": "janesmith90",
"partnerId": 1001
}Response
200 OK
The response may be one of two shapes depending on whether a financial account was simultaneously opened:
boardingresponse (base shape):
| Field | Type | Description |
|---|---|---|
| profileId | integer | Unique identifier for the newly created personal profile. |
| success | boolean | true if the registration succeeded. |
| errors | string | null | Error message if the operation failed; null on success. |
| changeLog | array | null | List of change log entries describing actions taken during boarding. |
changeLog item fields:
| Field | Type | Description |
|---|---|---|
| requestType | integer (enum) | Type of bank request performed (internal operation code). |
| changes | string | null | Description of the change applied. |
openfinancialaccountresponse (extended shape, when a financial account is also opened):
| Field | Type | Description |
|---|---|---|
| profileId | integer | Unique identifier for the newly created personal profile. |
| success | boolean | true if the registration succeeded. |
| errors | string | null | Error message if the operation failed; null on success. |
| changeLog | array | null | List of change log entries. |
| financialAccountId | string | null | Identifier of the financial account opened during registration, if applicable. |
{
"profileId": 48291,
"success": true,
"errors": null,
"changeLog": [
{
"requestType": 1,
"changes": "Personal account holder created successfully."
}
],
"financialAccountId": "XXXXXXXXXX"
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields, invalid field format (e.g., bad SSN pattern, invalid postal code, invalid email), or an account with the same email already exists |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions for the requesting partner |
| 404 | Resource not found |
| 500 | Internal server error |
Common Mistakes
- Submitting the SSN with dashes (e.g.,
123-45-6789) instead of digits only (123456789). The field requires a 9-digit string matching the valid SSN pattern. - Formatting the phone number with parentheses or dashes (e.g.,
(555) 123-4567). Use exactly 10 consecutive digits:5551234567. - Using an incorrect
dateOfBirthformat. The field requires ISO 8601 date-time format — always include the time portion (e.g.,1990-03-22T00:00:00Z). - Passing a string representation for
stateinstead of the integer enum value. Refer to the state enum mapping to supply the correct integer. - Omitting
partnerIdwhen registering on behalf of a specific partner channel — this may cause the account to be assigned to the wrong partner context.
Related Endpoints
POST /api/users/business— Register a new business account holderPOST /api/auth/v2— Obtain a Bearer token for authenticationPOST /api/auth/refresh— Refresh an existing Bearer tokenGET /api/users/personal/{profileId}— Retrieve personal account holder detailsPUT /api/users/personal/{profileId}— Update personal account holder informationPOST /api/financialaccounts— Open a financial account for an existing profile
Example
curl -X POST https://api.banking.netevia.dev/api/users/personal \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"givenName": "Jane",
"familyName": "Smith",
"middleName": "Marie",
"email": "[email protected]",
"phone": "5551234567",
"ssn": "123456789",
"dateOfBirth": "1990-03-22T00:00:00Z",
"streetAddress": "123 Main St",
"extendedAddress": "Apt 4B",
"postalCode": "30301",
"locality": "Atlanta",
"state": 11,
"password": "S3cur3P@ssword!",
"login": "janesmith90",
"partnerId": 1001
}'