Online Personal Customer Application
This endpoint creates or updates a personal customer profile in the Netevia banking platform. It accepts personal details including identity information, date of birth, contact data, and residential address. On success, it returns the assigned profile ID that can be used in subsequent API calls.
Endpoint
POST /netevia/oma/profile/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 personal customer to the Netevia platform or updating an existing personal profile's information. It is the primary boarding entry point for personal (consumer) accounts and must be called before issuing cards or creating financial accounts for an individual. This endpoint is typically invoked by partners during customer sign-up flows or profile management workflows.
Request Body
All fields from the base profile schema are inherited. Required fields are marked accordingly.
| Field | Type | Required | Description |
|---|---|---|---|
| string (email) | Yes | Customer's email address. Used for login and communications. | |
| givenName | string | Yes | Customer's legal first name. |
| familyName | string | Yes | Customer's legal last name. |
| middleName | string | No | Customer's middle name. |
| cardProductId | string | No | ID of the card product to associate with the profile. |
| agentPayoutProfileId | integer (int32) | Yes | ID of the agent payout profile linked to this customer. |
| salesRepresentativeId | integer (int32) | Yes | ID of the sales representative responsible for onboarding. |
| merchantProfileId | integer (int32) | No | Optional merchant profile ID if applicable. |
| isRisk | boolean | No | Flag indicating whether the profile is flagged for risk review. |
| nickName | string | No | Optional display name or alias for the customer. |
| password | string | No | Initial password for the customer's account. |
| partnerId | integer (int32) | No | ID of the partner submitting this request. |
| phone | string | Yes | Customer's phone number. |
| ssn | string | Yes | Customer's Social Security Number. Must match pattern for valid US SSNs. Format: XXX-XX-XXXX. |
| dateOfBirth | string (date-time) | Yes | Customer's date of birth in ISO 8601 format. |
| streetAddress | string | Yes | Customer's street address. Must be a valid US street address format. |
| extendedAddress | string | No | Apartment, suite, unit, or other secondary address details. |
| city | string | Yes | City of residence. |
| postalCode | string | Yes | ZIP or postal code of residence. |
| state | integer (int32) | Yes | US state as an integer enum (1–53, corresponding to US states and territories). |
| employerId | integer (int32) | No | Optional employer ID, used when linking to an Earned Wage Access (EWA) program via Pinwheel. |
{
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"middleName": "Marie",
"cardProductId": "card-product-abc123",
"agentPayoutProfileId": 101,
"salesRepresentativeId": 55,
"merchantProfileId": null,
"isRisk": false,
"nickName": "JD",
"password": "SecurePass!2025",
"partnerId": 12,
"phone": "5551234567",
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1990-04-15T00:00:00Z",
"streetAddress": "123 Main St",
"extendedAddress": "Apt 4B",
"city": "Austin",
"postalCode": "78701",
"state": 43,
"employerId": null
}Response
200 OK
| Field | Type | Description |
|---|---|---|
| error | string | Error message if the operation encountered an issue; null on success. |
| profileId | integer (int32) | The unique identifier assigned to the newly created or updated personal profile. |
{
"error": null,
"profileId": 98765
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields, invalid SSN format, invalid street address format, or other validation errors |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to create or update profiles |
| 404 | Referenced resource (e.g., agentPayoutProfileId, salesRepresentativeId) not found |
| 500 | Internal server error |
Common Mistakes
- Submitting
ssnin a format other than a valid 9-digit US SSN — the API enforces a strict regex pattern and will reject invalid values. - Providing an invalid
stateinteger — the value must be a valid enum integer between 1 and 53 corresponding to a US state or territory; string abbreviations (e.g., "TX") are not accepted. - Omitting
agentPayoutProfileIdorsalesRepresentativeId— both are required base profile fields even though they may not be obvious from the personal profile fields alone. - Sending
dateOfBirthas a plain date string (e.g.,"1990-04-15") instead of ISO 8601 date-time format (e.g.,"1990-04-15T00:00:00Z"). - Using a
streetAddressvalue that does not conform to the required US street address pattern, which will cause a 400 validation error.
Related Endpoints
POST /api/auth/v2— Obtain a Bearer token required to call this endpointPOST /api/auth/refresh— Refresh an expiring Bearer tokenPOST /netevia/oma/profile/business— Create or update a business customer profile
Example
curl -X POST https://api.banking.netevia.dev/netevia/oma/profile/personal \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"middleName": "Marie",
"cardProductId": "card-product-abc123",
"agentPayoutProfileId": 101,
"salesRepresentativeId": 55,
"isRisk": false,
"partnerId": 12,
"phone": "5551234567",
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1990-04-15T00:00:00Z",
"streetAddress": "123 Main St",
"extendedAddress": "Apt 4B",
"city": "Austin",
"postalCode": "78701",
"state": 43
}'