Get main profile data by ID

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

ParameterTypeRequiredDescription
profileIdinteger (int32)YesUnique numeric identifier of the user profile to retrieve

Response

200 OK

Top-level profile fields:

FieldTypeDescription
idintegerInternal numeric ID of the profile record
createdDatestring (date-time)Timestamp when the profile was created
updatedDatestring (date-time) | nullTimestamp of the most recent profile update
userProfileIdintegerID of the associated user account
stepinteger (enum)Onboarding step progress: 0=NotStarted, 1=PersonalInfo, 2=BusinessInfo, 3=Documents, 4=Complete
accountHolderInformationobjectPersonal account holder details (see below); populated for personal customers
businessAccountHolderobjectBusiness account holder details (see below); populated for business customers
isSubmittedboolean | nullWhether the application has been submitted
accountHolderIdstring | nullExternal account holder reference ID
nickNamestring | nullDisplay nickname for the profile
cardProductIdstring | nullCard product assigned to this profile
openApplicationIdstring | nullID of the open banking application
financialAccountIdstring | nullPrimary financial account ID linked to this profile
applicationStatusinteger (enum)Numeric application status: 0=Unknown, 1=New, 2=Submitted, 3=Approved, 4=Declined
bankingStatusstring (enum)Banking application status string: New, Submitted, PendingUW, ApprovedUW, Closed, Cancelled, Pending_Review, Denied, Approved, Pending, InReview, AutoApprovedUW
applicationDatestring (date-time) | nullDate the application was submitted
approvalDatestring (date-time) | nullDate the application was approved
isDeletedbooleanWhether the profile has been soft-deleted
isLockedbooleanWhether the profile is administratively locked
isAccessLockedbooleanWhether login access is locked (e.g., after multiple failed login attempts)
isMfaEnabledbooleanWhether multi-factor authentication is enabled
isOtpEnabledbooleanWhether one-time password authentication is enabled
agentPayoutProfileIdinteger | nullID of the agent payout profile, if assigned
salesRepresentativeIdinteger | nullID of the assigned sales representative
rewordTypeinteger (enum)Rewards program type: 1=Standard, 2=Premium, 4=None
isNewboolean | nullIndicates a newly created profile
isExceptionalboolean | nullWhether the profile is flagged as exceptional
profileSettingsobjectProfile-level settings (see below)
applicationCreationTypestring (enum)Channel through which the application was created: MobileApplication, OnlineBankingApplication, OnlineMerchantApplication, NeteviaBoardingApplication, BankingAPI, NeteviaAPI
exceptionalTemplateIdinteger | nullID of the exceptional template applied, if any
profileTypeinteger (enum)Profile type: 0=Unknown, 1=Personal, 2=Business, 3=SubProfile
accountTypeinteger (enum)Account type category: 1–5
employerobject | nullEmployer profile linked for EWA (see below)
lockFinancialAccountIdstring | nullFinancial account ID used as a funding lock
agreementsarray | nullList of agreements accepted by the customer (see below)

accountHolderInformation object (personal customers):

FieldTypeDescription
idintegerRecord ID
createdDatestring (date-time)Record creation timestamp
updatedDatestring (date-time) | nullRecord update timestamp
emailstring | nullAccount holder email address
givenNamestring | nullFirst name
familyNamestring | nullLast name
middleNamestring | nullMiddle name
phonestring | nullPhone number
ssnstring | nullSocial Security Number (returned as "XXX-XX-XXXX")
dateOfBirthstring (date-time) | nullDate of birth
streetAddressstring | nullStreet address (read-only)
extendedAddressstring | nullAddress line 2 (read-only)
postalCodestring | nullZIP/postal code (read-only)
localitystring | nullCity (read-only)
stateinteger (enum)US state as numeric enum (1–53)
countryCodeAlpha3string | nullISO 3166-1 alpha-3 country code (read-only)

businessAccountHolder object (business customers):

FieldTypeDescription
idintegerRecord ID
createdDatestring (date-time)Record creation timestamp
updatedDatestring (date-time) | nullRecord update timestamp
emailstring | nullPrimary authorized person email
givenNamestring | nullFirst name of primary authorized person
familyNamestring | nullLast name of primary authorized person
middleNamestring | nullMiddle name of primary authorized person
phonestring | nullPrimary authorized person phone number
ssnstring | nullSSN of primary authorized person (returned as "XXX-XX-XXXX")
dateOfBirthstring (date-time) | nullDate of birth of primary authorized person
streetAddressstring | nullBusiness street address (read-only)
extendedAddressstring | nullAddress line 2 (read-only)
postalCodestring | nullBusiness ZIP/postal code (read-only)
localitystring | nullBusiness city (read-only)
stateinteger (enum)US state as numeric enum (1–53)
countryCodeAlpha3string | nullISO 3166-1 alpha-3 country code (read-only)
percentageOwnershipintegerOwnership percentage of the primary authorized person
authorizingPersonTitleinteger (enum)Title of the authorizing person: 0–6
legalBusinessNamestring | nullLegal registered business name
doingBusinessAsNamestring | nullDBA name
websitestring | nullBusiness website URL
businessTypeinteger (enum)Business entity type: 0=Unknown, 1=SoleProprietorship, 2=Partnership, 3=LLC, 4=Corporation
businessPhonestring | nullBusiness phone number
employerIdentificationNumberstring | nullFederal EIN
primaryAuthorizedPersonIdstring | nullExternal ID of the primary authorized person
primaryAuthorizedStreetAddressstring | nullPrimary authorized person street address (read-only)
primaryAuthorizedExtendedAddressstring | nullPrimary authorized person address line 2 (read-only)
primaryAuthorizedPostalCodestring | nullPrimary authorized person ZIP code (read-only)
primaryAuthorizedLocalitystring | nullPrimary authorized person city (read-only)
primaryAuthorizedStateinteger (enum)Primary authorized person US state as numeric enum (1–53)
businessStartDatestring (date-time) | nullDate the business was established
annualBusinessRevenueinteger (int64) | nullAnnual business revenue in cents
payrollCustomerboolean | nullWhether the business is a payroll customer
ownersarray | nullList of additional beneficial owners (see owner object)
merchantProfileIdinteger | nullLinked merchant profile ID

profileSettings object:

FieldTypeDescription
financialAccountsPermissions.financialAccountsMaxNumberintegerMaximum number of internal financial accounts allowed
financialAccountsPermissions.externalAccountsMaxNumberintegerMaximum number of linked external accounts allowed
transferAmountLimits.achOutTransferAmountLimitinteger (int64) | nullMaximum ACH outbound transfer amount in cents
transferAmountLimits.internalTransferAmountLimitinteger (int64) | nullMaximum internal transfer amount in cents
loanOffbooleanWhether loan/funding features are disabled for this profile

employer object:

FieldTypeDescription
idintegerEmployer record ID
namestring | nullEmployer name
enabledbooleanWhether the employer link is active
datestring (date-time)Date the employer was linked

agreements array item:

FieldTypeDescription
namestring | nullAgreement name or type
createdDatestring (date-time)Date the agreement was presented
acceptanceDatestring (date-time) | nullDate 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

CodeWhen it happens
400The profileId is missing or not a valid integer
401Bearer token is missing, expired, or invalid
403The authenticated user does not have permission to view this profile
404No profile found for the specified profileId
500Internal server error

Common Mistakes

  • Passing a string or UUID as profileId instead of a numeric integer — the parameter must be an int32
  • Not refreshing the Bearer token before it expires (10-minute lifetime); requests will return 401 after expiry
  • Expecting accountHolderInformation to be populated for business customers — only businessAccountHolder is filled for business profiles, and vice versa for personal profiles
  • Attempting to read streetAddress, postalCode, locality, or countryCodeAlpha3 from write operations — these fields are read-only and only returned in GET responses
  • Treating applicationStatus (numeric enum) and bankingStatus (string enum) as interchangeable — they represent different classification systems

Related Endpoints

  • POST /netevia/profile — Create a new customer profile
  • PUT /netevia/profile/{profileId} — Update an existing profile
  • GET /netevia/profile/{profileId}/financial-accounts — List financial accounts linked to a profile
  • GET /netevia/profile/{profileId}/subprofiles — List authorized users (subprofiles) for a business customer
  • POST /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"
Path Params
int32
required
Headers
string
enum
Defaults to application/json

Generated from available response 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