Online Personal Customer Application

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.

FieldTypeRequiredDescription
emailstring (email)YesCustomer's email address. Used for login and communications.
givenNamestringYesCustomer's legal first name.
familyNamestringYesCustomer's legal last name.
middleNamestringNoCustomer's middle name.
cardProductIdstringNoID of the card product to associate with the profile.
agentPayoutProfileIdinteger (int32)YesID of the agent payout profile linked to this customer.
salesRepresentativeIdinteger (int32)YesID of the sales representative responsible for onboarding.
merchantProfileIdinteger (int32)NoOptional merchant profile ID if applicable.
isRiskbooleanNoFlag indicating whether the profile is flagged for risk review.
nickNamestringNoOptional display name or alias for the customer.
passwordstringNoInitial password for the customer's account.
partnerIdinteger (int32)NoID of the partner submitting this request.
phonestringYesCustomer's phone number.
ssnstringYesCustomer's Social Security Number. Must match pattern for valid US SSNs. Format: XXX-XX-XXXX.
dateOfBirthstring (date-time)YesCustomer's date of birth in ISO 8601 format.
streetAddressstringYesCustomer's street address. Must be a valid US street address format.
extendedAddressstringNoApartment, suite, unit, or other secondary address details.
citystringYesCity of residence.
postalCodestringYesZIP or postal code of residence.
stateinteger (int32)YesUS state as an integer enum (1–53, corresponding to US states and territories).
employerIdinteger (int32)NoOptional 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

FieldTypeDescription
errorstringError message if the operation encountered an issue; null on success.
profileIdinteger (int32)The unique identifier assigned to the newly created or updated personal profile.
{
  "error": null,
  "profileId": 98765
}

Error Codes

CodeWhen it happens
400Missing required fields, invalid SSN format, invalid street address format, or other validation errors
401Token missing, expired, or invalid
403Insufficient permissions to create or update profiles
404Referenced resource (e.g., agentPayoutProfileId, salesRepresentativeId) not found
500Internal server error

Common Mistakes

  • Submitting ssn in 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 state integer — 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 agentPayoutProfileId or salesRepresentativeId — both are required base profile fields even though they may not be obvious from the personal profile fields alone.
  • Sending dateOfBirth as 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 streetAddress value 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 endpoint
  • POST /api/auth/refresh — Refresh an expiring Bearer token
  • POST /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
  }'
Body Params
string
required
length ≥ 1
string
required
length ≥ 1
^(?!(666|9\d{2}))(?:0[1-9]\d|00[1-9]|[1-8]\d{2})(?:0[1-9]|[1-9]\d)(?!0000)\d{4}$
date-time
required
string
required
length ≥ 1
string | null
^[a-zA-Z\d',. \-#]+(([',. \-#][a-zA-Z ])?[a-zA-Z.]*)*$
string
required
length ≥ 1
string
required
length ≥ 1
int32
enum
required
int32 | null
string
required
length ≥ 1
string
required
length ≥ 1
string
required
length ≥ 1
string | null
string | null
int32
required
int32
required
int32 | null
string | null
boolean | null
string | null
string | null
int32 | null
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Response

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json