Get Main Profile Data by UserName
The GET /netevia/profileByUserName endpoint retrieves the complete primary profile for a user based on their username. It returns essential account holder details including name, contact information, application status, financial account identifiers, and associated settings. Both personal and business profile data are included where applicable.
Endpoint
GET /netevia/profileByUserName
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 look up a user's full profile when you have their username but need their internal profile IDs, application status, or account holder details. It is commonly used during onboarding flows to check whether a user has already submitted an application, and during support or administrative workflows where a username is the only known identifier.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| userName | string | No | The username of the profile to retrieve |
Response
200 OK
| Field | Type | Description |
|---|---|---|
| id | integer (int32) | Internal record ID |
| createdDate | string (date-time) | Date the profile record was created |
| updatedDate | string (date-time) | null | Date the profile record was last updated |
| userProfileId | integer (int32) | ID of the associated user profile |
| step | integer (int32) | Onboarding step status (0–4) |
| accountHolderInformation | object | Personal account holder details (see below) |
| accountHolderInformation.id | integer (int32) | Internal ID |
| accountHolderInformation.createdDate | string (date-time) | Record creation timestamp |
| accountHolderInformation.updatedDate | string (date-time) | null | Record last updated timestamp |
| accountHolderInformation.email | string | null | Account holder email address |
| accountHolderInformation.givenName | string | null | First name |
| accountHolderInformation.familyName | string | null | Last name |
| accountHolderInformation.middleName | string | null | Middle name |
| accountHolderInformation.phone | string | null | Phone number |
| accountHolderInformation.ssn | string | null | Social Security Number (masked as XXX-XX-XXXX) |
| accountHolderInformation.dateOfBirth | string (date-time) | null | Date of birth |
| accountHolderInformation.streetAddress | string | null | Street address (read-only) |
| accountHolderInformation.extendedAddress | string | null | Extended address line (read-only) |
| accountHolderInformation.postalCode | string | null | ZIP/postal code (read-only) |
| accountHolderInformation.locality | string | null | City (read-only) |
| accountHolderInformation.state | integer (int32) | US state enum value (1–53) |
| accountHolderInformation.countryCodeAlpha3 | string | null | ISO 3166-1 alpha-3 country code (read-only) |
| businessAccountHolder | object | null | Business account holder details (business profiles only; see below) |
| businessAccountHolder.email | string | null | Primary authorized person email |
| businessAccountHolder.givenName | string | null | Primary authorized person first name |
| businessAccountHolder.familyName | string | null | Primary authorized person last name |
| businessAccountHolder.middleName | string | null | Primary authorized person middle name |
| businessAccountHolder.phone | string | null | Primary authorized person phone |
| businessAccountHolder.ssn | string | null | Primary authorized person SSN (masked as XXX-XX-XXXX) |
| businessAccountHolder.dateOfBirth | string (date-time) | null | Primary authorized person date of birth |
| businessAccountHolder.streetAddress | string | null | Business street address (read-only) |
| businessAccountHolder.extendedAddress | string | null | Business extended address (read-only) |
| businessAccountHolder.postalCode | string | null | Business ZIP/postal code (read-only) |
| businessAccountHolder.locality | string | null | Business city (read-only) |
| businessAccountHolder.state | integer (int32) | Business state enum value (1–53) |
| businessAccountHolder.countryCodeAlpha3 | string | null | Business country code (read-only) |
| businessAccountHolder.percentageOwnership | integer (int32) | Ownership percentage of primary authorized person |
| businessAccountHolder.authorizingPersonTitle | integer (int32) | Title of authorizing person (0–6) |
| businessAccountHolder.legalBusinessName | string | null | Legal business name |
| businessAccountHolder.doingBusinessAsName | string | null | DBA name |
| businessAccountHolder.website | string | null | Business website URL |
| businessAccountHolder.businessType | integer (int32) | Business entity type (0–4) |
| businessAccountHolder.businessPhone | string | null | Business phone number |
| businessAccountHolder.employerIdentificationNumber | string | null | EIN |
| businessAccountHolder.primaryAuthorizedPersonId | string | null | ID of the primary authorized person |
| businessAccountHolder.businessStartDate | string (date-time) | null | Business establishment date |
| businessAccountHolder.annualBusinessRevenue | integer (int64) | null | Annual business revenue in cents |
| businessAccountHolder.payrollCustomer | boolean | null | Whether the business is a payroll customer |
| businessAccountHolder.owners | array | null | List of business owners (see owner object below) |
| businessAccountHolder.merchantProfileId | integer (int32) | null | Associated merchant profile ID |
| isSubmitted | boolean | null | Whether the application has been submitted |
| accountHolderId | string | null | External account holder identifier |
| nickName | string | null | Profile nickname |
| cardProductId | string | null | Associated card product ID |
| openApplicationId | string | null | Open application ID |
| financialAccountId | string | null | Primary financial account ID |
| applicationStatus | integer (int32) | Application status enum (0–4) |
| bankingStatus | string | Banking application status (New, Submitted, PendingUW, ApprovedUW, Closed, Cancelled, Pending_Review, Denied, Approved, Pending, InReview, AutoApprovedUW) |
| applicationDate | string (date-time) | null | Date application was submitted |
| approvalDate | string (date-time) | null | Date application was approved |
| isDeleted | boolean | Whether the profile is soft-deleted |
| isLocked | boolean | Whether the profile is locked |
| isAccessLocked | boolean | Whether login access is locked due to multiple failed attempts |
| isMfaEnabled | boolean | Whether multi-factor authentication is enabled |
| isOtpEnabled | boolean | Whether one-time password is enabled |
| agentPayoutProfileId | integer (int32) | null | Agent payout profile reference |
| salesRepresentativeId | integer (int32) | null | Sales representative reference |
| rewordType | integer (int32) | Reward program type (1, 2, or 4) |
| isNew | boolean | null | Whether this is a newly created profile |
| isExceptional | boolean | null | Whether the profile has an exceptional template applied |
| profileSettings | object | null | Profile-level settings and limits |
| profileSettings.financialAccountsPermissions.financialAccountsMaxNumber | integer (int32) | Maximum number of financial accounts allowed |
| profileSettings.financialAccountsPermissions.externalAccountsMaxNumber | integer (int32) | Maximum number of external accounts allowed |
| profileSettings.transferAmountLimits.achOutTransferAmountLimit | integer (int64) | null | ACH outbound transfer limit in cents |
| profileSettings.transferAmountLimits.internalTransferAmountLimit | integer (int64) | null | Internal transfer limit in cents |
| profileSettings.loanOff | boolean | Whether loan products are disabled for this profile |
| applicationCreationType | string | Channel through which the application was created (MobileApplication, OnlineBankingApplication, OnlineMerchantApplication, NeteviaBoardingApplication, BankingAPI, NeteviaAPI) |
| exceptionalTemplateId | integer (int32) | null | ID of the exceptional pricing template applied |
| profileType | integer (int32) | Profile type enum (0–3) |
| accountType | integer (int32) | Account type enum (1–5) |
| employer | object | null | Linked employer profile (EWA-enabled accounts) |
| employer.id | integer (int32) | Employer record ID |
| employer.name | string | null | Employer name |
| employer.enabled | boolean | Whether the employer integration is active |
| employer.date | string (date-time) | Date the employer was linked |
| lockFinancialAccountId | string | null | Financial account ID used for access lock enforcement |
| agreements | array | null | List of accepted agreements |
| agreements[].name | string | null | Agreement name |
| agreements[].createdDate | string (date-time) | Date agreement was created |
| agreements[].acceptanceDate | string (date-time) | null | Date user accepted the agreement |
{
"id": 1042,
"createdDate": "2024-03-15T10:22:00Z",
"updatedDate": "2024-11-01T14:05:00Z",
"userProfileId": 7831,
"step": 4,
"accountHolderInformation": {
"id": 9012,
"createdDate": "2024-03-15T10:22:00Z",
"updatedDate": "2024-11-01T14:05:00Z",
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Doe",
"middleName": "A",
"phone": "+15551234567",
"ssn": "XXX-XX-XXXX",
"dateOfBirth": "1985-06-20T00:00:00Z",
"streetAddress": "123 Main St",
"extendedAddress": "Apt 4B",
"postalCode": "30301",
"locality": "Atlanta",
"state": 11,
"countryCodeAlpha3": "USA"
},
"businessAccountHolder": null,
"isSubmitted": true,
"accountHolderId": "ah_7f3a9c1d2e",
"nickName": "JaneDoe",
"cardProductId": "cp_84b2c3d4e5",
"openApplicationId": null,
"financialAccountId": "fa_91c3d4e5f6",
"applicationStatus": 2,
"bankingStatus": "Approved",
"applicationDate": "2024-03-15T10:30:00Z",
"approvalDate": "2024-03-16T09:00:00Z",
"isDeleted": false,
"isLocked": false,
"isAccessLocked": false,
"isMfaEnabled": true,
"isOtpEnabled": false,
"agentPayoutProfileId": null,
"salesRepresentativeId": null,
"rewordType": 1,
"isNew": false,
"isExceptional": false,
"profileSettings": {
"financialAccountsPermissions": {
"financialAccountsMaxNumber": 5,
"externalAccountsMaxNumber": 3
},
"transferAmountLimits": {
"achOutTransferAmountLimit": 500000,
"internalTransferAmountLimit": 1000000
},
"loanOff": false
},
"applicationCreationType": "BankingAPI",
"exceptionalTemplateId": null,
"profileType": 1,
"accountType": 2,
"employer": null,
"lockFinancialAccountId": null,
"agreements": [
{
"name": "Terms of Service",
"createdDate": "2024-01-01T00:00:00Z",
"acceptanceDate": "2024-03-15T10:28:00Z"
},
{
"name": "Privacy Policy",
"createdDate": "2024-01-01T00:00:00Z",
"acceptanceDate": "2024-03-15T10:28:00Z"
}
]
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing or malformed userName query parameter |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to view this profile |
| 404 | No profile found for the provided username |
| 500 | Internal server error |
Common Mistakes
- Omitting the
userNamequery parameter entirely — the endpoint may return an error or no results rather than all profiles - Using a display name or email address instead of the exact registered username
- Not refreshing the Bearer token before the call, resulting in a 401 when the 10-minute lifetime has elapsed
- Expecting business account holder data on a personal profile —
businessAccountHolderwill benullfor personal accounts - Treating
applicationStatus(integer enum) andbankingStatus(string enum) as the same field — they represent different status dimensions
Related Endpoints
POST /api/auth/v2— Obtain a Bearer token required for all API callsGET /netevia/profile— Retrieve profile data by internal profile IDGET /netevia/profiles— List all profiles for the authenticated partnerPUT /netevia/profile— Update profile informationGET /netevia/profileByUserName— This endpoint (lookup by username)
Example
curl -X GET "https://api.banking.netevia.dev/netevia/profileByUserName?userName=janedoe" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"