Manage Online Personal Customer Application

Manage Online Personal Customer Application

This endpoint creates or updates a personal customer profile within the Netevia Banking platform. It accepts identity, contact, and address information required to onboard a personal (consumer) customer. Upon successful submission, the platform returns the assigned profile ID for use in subsequent API calls.

Endpoint

POST /netevia/api/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 (consumer) customer onto the Netevia Banking platform, or when updating an existing personal customer's profile data. This is typically the first call in a personal customer onboarding flow, after which the returned profileId is used to create financial accounts, issue payment cards, and configure other services for that customer.

Request Body

All fields from the base profile schema are inherited, combined with personal-specific fields listed below.

Inherited base fields:

FieldTypeRequiredDescription
emailstring (email)YesCustomer's email address
givenNamestringYesCustomer's first name
familyNamestringYesCustomer's last name
middleNamestringNoCustomer's middle name
cardProductIdstringNoCard product identifier to associate with the profile
agentPayoutProfileIdinteger (int32)YesID of the agent payout profile
salesRepresentativeIdinteger (int32)YesID of the sales representative
merchantProfileIdinteger (int32)NoMerchant profile ID if applicable
isRiskbooleanNoFlag indicating whether the customer is flagged for risk review
nickNamestringNoDisplay nickname for the customer
passwordstringNoInitial password for the customer's account
partnerIdinteger (int32)NoPartner ID associated with this customer

Personal profile-specific fields:

FieldTypeRequiredDescription
phonestringYesCustomer's phone number
ssnstringYesCustomer's Social Security Number. Must match a valid SSN format (9 digits, not starting with 666 or 9xx)
dateOfBirthstring (date-time)YesCustomer's date of birth in ISO 8601 format
streetAddressstringYesStreet address (must begin with a street number followed by street name)
extendedAddressstringNoApartment, suite, unit, or other secondary address line
citystringYesCity of residence
postalCodestringYesZIP or postal code
stateinteger (int32)YesUS state as an integer enum (1–53, representing US states and territories)
employerIdinteger (int32)NoEmployer ID if the customer is associated with an EWA employer
{
  "email": "[email protected]",
  "givenName": "Jane",
  "familyName": "Doe",
  "middleName": "Marie",
  "agentPayoutProfileId": 101,
  "salesRepresentativeId": 202,
  "partnerId": 5,
  "phone": "5125550100",
  "ssn": "XXX-XX-XXXX",
  "dateOfBirth": "1990-04-15T00:00:00Z",
  "streetAddress": "123 Main St",
  "extendedAddress": "Apt 4B",
  "city": "Austin",
  "postalCode": "78701",
  "state": 43
}

Response

200 OK

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

Error Codes

CodeWhen it happens
400Missing required fields, validation failure (e.g., invalid SSN format, malformed street address, or invalid date of birth)
401Token missing, expired, or invalid
403Insufficient permissions to create or update a personal profile
404Referenced resource not found (e.g., invalid agentPayoutProfileId or salesRepresentativeId)
500Internal server error

Common Mistakes

  • Submitting ssn in a formatted string with dashes (e.g., "123-45-6789") — the field accepts only 9 consecutive digits without separators, and must pass the pattern validation (no SSNs starting with 666 or 9xx).
  • Providing dateOfBirth without a valid ISO 8601 date-time format — use "YYYY-MM-DDT00:00:00Z" to avoid parse errors.
  • Omitting required base profile fields (email, givenName, familyName, agentPayoutProfileId, salesRepresentativeId) — these are inherited from the base schema but are still required on this endpoint.
  • Passing streetAddress without a leading street number — the field pattern requires the address to start with digits followed by a street name.
  • Using an out-of-range integer for state — valid values are 1 through 53 corresponding to US states and territories.

Related Endpoints

  • POST /api/auth/v2 — Obtain a Bearer token for authentication
  • POST /netevia/api/profile/business — Create or update a business customer profile
  • GET /netevia/api/profile/personal/{profileId} — Retrieve a personal customer profile by ID
  • POST /netevia/api/account — Create a financial account for an onboarded customer

Example

curl -X POST https://api.banking.netevia.dev/netevia/api/profile/personal \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "givenName": "Jane",
    "familyName": "Doe",
    "middleName": "Marie",
    "agentPayoutProfileId": 101,
    "salesRepresentativeId": 202,
    "partnerId": 5,
    "phone": "5125550100",
    "ssn": "123456789",
    "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