Create Personal Profile
The Create Personal Profile endpoint provisions a new personal customer profile within the Netevia banking platform. It accepts identifying details such as name, email, and partner configuration, and returns a unique profile ID upon success. This profile serves as the foundation for all subsequent personal banking operations, including account creation, card issuance, and transfers.
Endpoint
POST /netevia/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. It must be called before creating financial accounts, issuing cards, or enabling any banking features for the customer. The returned profileId is required by all subsequent personal banking API calls.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| string (email) | Yes | Customer's email address. Used for login and notifications. | |
| givenName | string | Yes | Customer's first (given) name. |
| familyName | string | Yes | Customer's last (family) name. |
| middleName | string | No | Customer's middle name. |
| agentPayoutProfileId | integer (int32) | Yes | ID of the agent payout profile associated with this customer. |
| salesRepresentativeId | integer (int32) | Yes | ID of the sales representative responsible for onboarding this customer. |
| cardProductId | string | No | ID of the card product to assign to the profile. If omitted, the default card product is used. |
| merchantProfileId | integer (int32) | No | Optional merchant profile ID to associate with this personal profile. |
| isRisk | boolean | No | Flags the profile for risk review if set to true. |
| nickName | string | No | Display name or alias for the customer. |
| password | string | No | Initial password for the customer's account. If omitted, a password must be set separately. |
| partnerId | integer (int32) | No | ID of the partner under which this profile is created. Defaults to the partner associated with the authenticated token. |
{
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"middleName": "Marie",
"agentPayoutProfileId": 101,
"salesRepresentativeId": 55,
"cardProductId": "CARD_PROD_001",
"merchantProfileId": null,
"isRisk": false,
"nickName": "JaneDoe",
"password": "Secur3P@ssword!",
"partnerId": 12
}Response
200 OK
| Field | Type | Description |
|---|---|---|
| profileId | integer (int32) | Unique identifier assigned to the newly created personal profile. Store this value — it is required for all subsequent API calls for this customer. |
| error | string | Present and non-null only when an error occurs despite a 200 response. Inspect this field to detect application-level failures. |
{
"profileId": 4823,
"error": null
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields (email, givenName, familyName, agentPayoutProfileId, or salesRepresentativeId) or validation error (e.g., malformed email). |
| 401 | Token missing, expired, or invalid. |
| 403 | Insufficient permissions to create a personal profile under the specified partner or agent payout profile. |
| 404 | Referenced agentPayoutProfileId, salesRepresentativeId, cardProductId, or merchantProfileId not found. |
| 500 | Internal server error. |
Common Mistakes
- Omitting
agentPayoutProfileIdorsalesRepresentativeId— both are required even though they may feel like internal configuration fields. - Submitting a duplicate
emailaddress for an already-existing profile, which typically results in a 400 error or an application-level error returned in theerrorfield of the 200 response. - Ignoring the
errorfield on a 200 response — the API may return HTTP 200 with a non-nullerrorstring to indicate a business logic failure. - Using an invalid
cardProductIdstring — verify the product ID exists in your partner configuration before submitting. - Not storing the returned
profileId— this value is required by all downstream personal banking endpoints and cannot be easily retrieved later.
Related Endpoints
POST /netevia/profile/business— Creates a primary business customer profile.POST /netevia/profile/personal/subprofile— Adds an authorized sub-user to an existing personal profile.GET /netevia/profile/personal/{profileId}— Retrieves details of an existing personal profile.POST /netevia/account— Creates a financial account linked to a personal profile.POST /api/auth/v2— Obtains a Bearer token required to authenticate this request.
Example
curl -X POST https://api.banking.netevia.dev/netevia/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": 55,
"cardProductId": "CARD_PROD_001",
"isRisk": false,
"nickName": "JaneDoe",
"password": "Secur3P@ssword!",
"partnerId": 12
}'