Get Profile by ID
The Get Profile by ID endpoint returns the full profile record for a given user, including personal or business account holder information, application status, security settings, profile preferences, and linked agreements. It supports both personal and business customer profiles. Use this endpoint when you need to inspect a customer's current profile state or drive downstream logic based on account status.
Endpoint
GET /netevia/profile/{profileId}
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 to retrieve a customer's full profile after onboarding or at any point during the account lifecycle. It is useful for checking application approval status, verifying account lock states, reading reward type configuration, or surfacing profile settings such as transfer limits and financial account permissions. Partners commonly call this endpoint to present a profile summary in their UI or to gate downstream operations based on bankingStatus.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| profileId | integer (int32) | Yes | Unique numeric identifier of the user profile to retrieve |
Response
200 OK
Top-level profile fields:
| Field | Type | Description |
|---|---|---|
| id | integer | Internal numeric ID of the profile record |
| createdDate | string (date-time) | Timestamp when the profile was created |
| updatedDate | string (date-time) | null | Timestamp of the most recent profile update |
| userProfileId | integer | ID of the associated user account |
| step | integer (enum) | Onboarding step progress: 0=NotStarted, 1=PersonalInfo, 2=BusinessInfo, 3=Documents, 4=Complete |
| accountHolderInformation | object | Personal account holder details (see below); populated for personal customers |
| businessAccountHolder | object | Business account holder details (see below); populated for business customers |
| isSubmitted | boolean | null | Whether the application has been submitted |
| accountHolderId | string | null | External account holder reference ID |
| nickName | string | null | Display nickname for the profile |
| cardProductId | string | null | Card product assigned to this profile |
| openApplicationId | string | null | ID of the open banking application |
| financialAccountId | string | null | Primary financial account ID linked to this profile |
| applicationStatus | integer (enum) | Numeric application status: 0=Unknown, 1=New, 2=Submitted, 3=Approved, 4=Declined |
| bankingStatus | string (enum) | Banking application status string: New, Submitted, PendingUW, ApprovedUW, Closed, Cancelled, Pending_Review, Denied, Approved, Pending, InReview, AutoApprovedUW |
| applicationDate | string (date-time) | null | Date the application was submitted |
| approvalDate | string (date-time) | null | Date the application was approved |
| isDeleted | boolean | Whether the profile has been soft-deleted |
| isLocked | boolean | Whether the profile is administratively locked |
| isAccessLocked | boolean | Whether login access is locked (e.g., after multiple failed login attempts) |
| isMfaEnabled | boolean | Whether multi-factor authentication is enabled |
| isOtpEnabled | boolean | Whether one-time password authentication is enabled |
| agentPayoutProfileId | integer | null | ID of the agent payout profile, if assigned |
| salesRepresentativeId | integer | null | ID of the assigned sales representative |
| rewordType | integer (enum) | Rewards program type: 1=Standard, 2=Premium, 4=None |
| isNew | boolean | null | Indicates a newly created profile |
| isExceptional | boolean | null | Whether the profile is flagged as exceptional |
| profileSettings | object | Profile-level settings (see below) |
| applicationCreationType | string (enum) | Channel through which the application was created: MobileApplication, OnlineBankingApplication, OnlineMerchantApplication, NeteviaBoardingApplication, BankingAPI, NeteviaAPI |
| exceptionalTemplateId | integer | null | ID of the exceptional template applied, if any |
| profileType | integer (enum) | Profile type: 0=Unknown, 1=Personal, 2=Business, 3=SubProfile |
| accountType | integer (enum) | Account type category: 1–5 |
| employer | object | null | Employer profile linked for EWA (see below) |
| lockFinancialAccountId | string | null | Financial account ID used as a funding lock |
| agreements | array | null | List of agreements accepted by the customer (see below) |
accountHolderInformation object (personal customers):
| Field | Type | Description |
|---|---|---|
| id | integer | Record ID |
| createdDate | string (date-time) | Record creation timestamp |
| updatedDate | string (date-time) | null | Record update timestamp |
| string | null | Account holder email address | |
| givenName | string | null | First name |
| familyName | string | null | Last name |
| middleName | string | null | Middle name |
| phone | string | null | Phone number |
| ssn | string | null | Social Security Number (returned as "XXX-XX-XXXX") |
| dateOfBirth | string (date-time) | null | Date of birth |
| streetAddress | string | null | Street address (read-only) |
| extendedAddress | string | null | Address line 2 (read-only) |
| postalCode | string | null | ZIP/postal code (read-only) |
| locality | string | null | City (read-only) |
| state | integer (enum) | US state as numeric enum (1–53) |
| countryCodeAlpha3 | string | null | ISO 3166-1 alpha-3 country code (read-only) |
businessAccountHolder object (business customers):
| Field | Type | Description |
|---|---|---|
| id | integer | Record ID |
| createdDate | string (date-time) | Record creation timestamp |
| updatedDate | string (date-time) | null | Record update timestamp |
| string | null | Primary authorized person email | |
| givenName | string | null | First name of primary authorized person |
| familyName | string | null | Last name of primary authorized person |
| middleName | string | null | Middle name of primary authorized person |
| phone | string | null | Primary authorized person phone number |
| ssn | string | null | SSN of primary authorized person (returned as "XXX-XX-XXXX") |
| dateOfBirth | string (date-time) | null | Date of birth of primary authorized person |
| streetAddress | string | null | Business street address (read-only) |
| extendedAddress | string | null | Address line 2 (read-only) |
| postalCode | string | null | Business ZIP/postal code (read-only) |
| locality | string | null | Business city (read-only) |
| state | integer (enum) | US state as numeric enum (1–53) |
| countryCodeAlpha3 | string | null | ISO 3166-1 alpha-3 country code (read-only) |
| percentageOwnership | integer | Ownership percentage of the primary authorized person |
| authorizingPersonTitle | integer (enum) | Title of the authorizing person: 0–6 |
| legalBusinessName | string | null | Legal registered business name |
| doingBusinessAsName | string | null | DBA name |
| website | string | null | Business website URL |
| businessType | integer (enum) | Business entity type: 0=Unknown, 1=SoleProprietorship, 2=Partnership, 3=LLC, 4=Corporation |
| businessPhone | string | null | Business phone number |
| employerIdentificationNumber | string | null | Federal EIN |
| primaryAuthorizedPersonId | string | null | External ID of the primary authorized person |
| primaryAuthorizedStreetAddress | string | null | Primary authorized person street address (read-only) |
| primaryAuthorizedExtendedAddress | string | null | Primary authorized person address line 2 (read-only) |
| primaryAuthorizedPostalCode | string | null | Primary authorized person ZIP code (read-only) |
| primaryAuthorizedLocality | string | null | Primary authorized person city (read-only) |
| primaryAuthorizedState | integer (enum) | Primary authorized person US state as numeric enum (1–53) |
| businessStartDate | string (date-time) | null | Date the business was established |
| annualBusinessRevenue | integer (int64) | null | Annual business revenue in cents |
| payrollCustomer | boolean | null | Whether the business is a payroll customer |
| owners | array | null | List of additional beneficial owners (see owner object) |
| merchantProfileId | integer | null | Linked merchant profile ID |
profileSettings object:
| Field | Type | Description |
|---|---|---|
| financialAccountsPermissions.financialAccountsMaxNumber | integer | Maximum number of internal financial accounts allowed |
| financialAccountsPermissions.externalAccountsMaxNumber | integer | Maximum number of linked external accounts allowed |
| transferAmountLimits.achOutTransferAmountLimit | integer (int64) | null | Maximum ACH outbound transfer amount in cents |
| transferAmountLimits.internalTransferAmountLimit | integer (int64) | null | Maximum internal transfer amount in cents |
| loanOff | boolean | Whether loan/funding features are disabled for this profile |
employer object:
| Field | Type | Description |
|---|---|---|
| id | integer | Employer record ID |
| name | string | null | Employer name |
| enabled | boolean | Whether the employer link is active |
| date | string (date-time) | Date the employer was linked |
agreements array item:
| Field | Type | Description |
|---|---|---|
| name | string | null | Agreement name or type |
| createdDate | string (date-time) | Date the agreement was presented |
| acceptanceDate | string (date-time) | null | Date the customer accepted the agreement |
{
"id": 1042,
"createdDate": "2024-03-15T10:22:00Z",
"updatedDate": "2024-05-01T08:45:00Z",
"userProfileId": 8801,
"step": 4,
"accountHolderInformation": null,
"businessAccountHolder": {
"id": 305,
"createdDate": "2024-03-15T10:22:00Z",
"updatedDate": "2024-05-01T08:45:00Z",
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Smith",
"middleName": null,
"phone": "+15551234567",
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1980-06-12T00:00:00Z",
"streetAddress": "500 Commerce Blvd",
"extendedAddress": "Suite 200",
"postalCode": "30301",
"locality": "Atlanta",
"state": 10,
"countryCodeAlpha3": "USA",
"percentageOwnership": 100,
"authorizingPersonTitle": 2,
"legalBusinessName": "Acme Corp LLC",
"doingBusinessAsName": "Acme Corp",
"website": "https://www.acmecorp.com",
"businessType": 3,
"businessPhone": "+14045559876",
"employerIdentificationNumber": "XX-XXXXXXX",
"primaryAuthorizedPersonId": "auth-person-abc123",
"primaryAuthorizedStreetAddress": "500 Commerce Blvd",
"primaryAuthorizedExtendedAddress": "Suite 200",
"primaryAuthorizedPostalCode": "30301",
"primaryAuthorizedLocality": "Atlanta",
"primaryAuthorizedState": 10,
"businessStartDate": "2015-01-20T00:00:00Z",
"annualBusinessRevenue": 500000000,
"payrollCustomer": true,
"owners": [],
"merchantProfileId": null
},
"isSubmitted": true,
"accountHolderId": "accthldr-xyz789",
"nickName": "Acme Main",
"cardProductId": "cardprod-001",
"openApplicationId": null,
"financialAccountId": "XXXXXXXXXX",
"applicationStatus": 3,
"bankingStatus": "Approved",
"applicationDate": "2024-03-15T10:30:00Z",
"approvalDate": "2024-03-17T14:00:00Z",
"isDeleted": false,
"isLocked": false,
"isAccessLocked": false,
"isMfaEnabled": true,
"isOtpEnabled": false,
"agentPayoutProfileId": null,
"salesRepresentativeId": 22,
"rewordType": 1,
"isNew": false,
"isExceptional": false,
"profileSettings": {
"financialAccountsPermissions": {
"financialAccountsMaxNumber": 5,
"externalAccountsMaxNumber": 3
},
"transferAmountLimits": {
"achOutTransferAmountLimit": 1000000,
"internalTransferAmountLimit": 500000
},
"loanOff": false
},
"applicationCreationType": "NeteviaAPI",
"exceptionalTemplateId": null,
"profileType": 2,
"accountType": 2,
"employer": null,
"lockFinancialAccountId": null,
"agreements": [
{
"name": "Terms of Service",
"createdDate": "2024-03-15T10:22:00Z",
"acceptanceDate": "2024-03-15T10:25:00Z"
},
{
"name": "Privacy Policy",
"createdDate": "2024-03-15T10:22:00Z",
"acceptanceDate": "2024-03-15T10:25:00Z"
}
]
}Error Codes
| Code | When it happens |
|---|---|
| 400 | The profileId is missing or not a valid integer |
| 401 | Bearer token is missing, expired, or invalid |
| 403 | The authenticated user does not have permission to view this profile |
| 404 | No profile found for the specified profileId |
| 500 | Internal server error |
Common Mistakes
- Passing a string or UUID as
profileIdinstead of a numeric integer — the parameter must be anint32 - Not refreshing the Bearer token before it expires (10-minute lifetime); requests will return 401 after expiry
- Expecting
accountHolderInformationto be populated for business customers — onlybusinessAccountHolderis filled for business profiles, and vice versa for personal profiles - Attempting to read
streetAddress,postalCode,locality, orcountryCodeAlpha3from write operations — these fields are read-only and only returned in GET responses - Treating
applicationStatus(numeric enum) andbankingStatus(string enum) as interchangeable — they represent different classification systems
Related Endpoints
POST /netevia/profile— Create a new customer profilePUT /netevia/profile/{profileId}— Update an existing profileGET /netevia/profile/{profileId}/financial-accounts— List financial accounts linked to a profileGET /netevia/profile/{profileId}/subprofiles— List authorized users (subprofiles) for a business customerPOST /api/auth/v2— Obtain a Bearer token for authentication
Example
curl -X GET https://api.banking.netevia.dev/netevia/profile/1042 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"