Receive account holder information

Receive Account Holder Information

The GET /v2/holder endpoint retrieves comprehensive profile information for the currently authenticated account holder. It returns both personal and business identity data, application status, security settings, and profile configuration in a single response. Only authenticated users with a valid Bearer token can access this sensitive account information.

Endpoint

GET /v2/holder

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 the full account holder profile after authentication, such as when populating a dashboard with the holder's personal or business details. It is also useful for checking the application status, banking approval state, MFA/OTP security settings, and profile-level transfer and financial account limits. Both personal and business account holders are supported; the relevant object (accountHolderInformation or businessAccountHolder) will be populated based on account type.

Response

200 OK

Top-level fields

FieldTypeDescription
idinteger (int32)Internal record identifier
createdDatestring (date-time)Date and time the profile was created
updatedDatestring (date-time) | nullDate and time the profile was last updated
userProfileIdinteger (int32)Linked user profile identifier
stepinteger (int32)Onboarding step indicator (0–4)
accountHolderInformationobjectPersonal account holder details (see below)
businessAccountHolderobjectBusiness account holder details (see below)
isSubmittedboolean | nullWhether the application has been submitted
accountHolderIdstring | nullExternal account holder identifier
nickNamestring | nullDisplay nickname for the account holder
cardProductIdstring | nullAssociated card product identifier
openApplicationIdstring | nullIdentifier of an open banking application
financialAccountIdstring | nullPrimary financial account identifier
applicationStatusinteger (int32)Numeric application status code (0–4)
bankingStatusstringString application status (e.g., Approved, PendingUW, Denied)
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 account is locked
isAccessLockedbooleanWhether login access is locked (e.g., after repeated failed login attempts)
isMfaEnabledbooleanWhether multi-factor authentication is enabled
isOtpEnabledbooleanWhether one-time password authentication is enabled
agentPayoutProfileIdinteger (int32) | nullAssociated agent payout profile, if any
salesRepresentativeIdinteger (int32) | nullAssociated sales representative, if any
rewordTypeinteger (int32)Rewards type for the account (1, 2, or 4)
isNewboolean | nullWhether the account is newly created
isExceptionalboolean | nullWhether the account has exceptional status
profileSettingsobjectProfile-level settings (see below)
applicationCreationTypestringChannel through which the application was created (e.g., BankingAPI, NeteviaAPI)
exceptionalTemplateIdinteger (int32) | nullExceptional template identifier, if applicable
profileTypeinteger (int32)Profile type code (0–3)
accountTypeinteger (int32)Account type code (1–5)
employerobjectAssociated employer profile (EWA), if any
lockFinancialAccountIdstring | nullFinancial account ID used for locking purposes
agreementsarray | nullList of accepted agreements (see below)

accountHolderInformation object (personal accounts)

FieldTypeDescription
idinteger (int32)Record identifier
createdDatestring (date-time)Record creation timestamp
updatedDatestring (date-time) | nullRecord last-updated timestamp
emailstring | nullAccount holder email address
givenNamestring | nullFirst name
familyNamestring | nullLast name
middleNamestring | nullMiddle name
phonestring | nullPrimary phone number
ssnstring | nullSocial Security Number (masked: 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 (int32)US state code (1–53)
countryCodeAlpha3string | nullISO 3166-1 alpha-3 country code (read-only)

businessAccountHolder object (business accounts)

FieldTypeDescription
idinteger (int32)Record identifier
createdDatestring (date-time)Record creation timestamp
updatedDatestring (date-time) | nullRecord last-updated timestamp
emailstring | nullPrimary authorized person email
givenNamestring | nullPrimary authorized person first name
familyNamestring | nullPrimary authorized person last name
middleNamestring | nullPrimary authorized person middle name
phonestring | nullPrimary authorized person phone number
ssnstring | nullPrimary authorized person SSN (masked: XXX-XX-XXXX)
dateOfBirthstring (date-time) | nullPrimary authorized person date of birth
streetAddressstring | nullBusiness street address (read-only)
extendedAddressstring | nullBusiness address line 2 (read-only)
postalCodestring | nullBusiness ZIP/postal code (read-only)
localitystring | nullBusiness city (read-only)
stateinteger (int32)Business US state code (1–53)
countryCodeAlpha3string | nullISO 3166-1 alpha-3 country code (read-only)
percentageOwnershipinteger (int32)Ownership percentage of the primary authorized person
authorizingPersonTitleinteger (int32)Title of the authorizing person (0–6)
legalBusinessNamestring | nullLegal registered business name
doingBusinessAsNamestring | nullDBA name
websitestring | nullBusiness website URL
businessTypeinteger (int32)Business entity type (0–4)
businessPhonestring | nullBusiness phone number
employerIdentificationNumberstring | nullEIN (masked in production)
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 (int32)Primary authorized person US state code (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 business owners (see owner object below)
merchantProfileIdinteger (int32) | nullAssociated merchant profile identifier

owners array item object

FieldTypeDescription
idinteger (int32)Record identifier
createdDatestring (date-time)Record creation timestamp
updatedDatestring (date-time) | nullRecord last-updated timestamp
businessAccountIdinteger (int32)Parent business account identifier
givenNamestring | nullOwner first name
familyNamestring | nullOwner last name
middleNamestring | nullOwner middle name
emailstring | nullOwner email address
dateOfBirthstring (date-time)Owner date of birth
percentageOwnershipinteger (int32)Owner's percentage of business ownership
phoneNumberstring | nullOwner phone number
ssnstring | nullOwner SSN (masked: XXX-XX-XXXX)
streetAddressstring | nullOwner street address (read-only)
extendedAddressstring | nullOwner address line 2 (read-only)
postalCodestring | nullOwner ZIP/postal code (read-only)
localitystring | nullOwner city (read-only)
stateinteger (int32)Owner US state code (1–53)
countryCodeAlpha3string | nullISO 3166-1 alpha-3 country code (read-only)
ownerTypeinteger (int32)Owner classification type (1–4)

profileSettings object

FieldTypeDescription
financialAccountsPermissions.financialAccountsMaxNumberinteger (int32)Maximum number of internal financial accounts allowed
financialAccountsPermissions.externalAccountsMaxNumberinteger (int32)Maximum 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
idinteger (int32)Employer record identifier
namestring | nullEmployer name
enabledbooleanWhether the employer integration is active
datestring (date-time)Date the employer record was created

agreements array item object

FieldTypeDescription
namestring | nullAgreement name
createdDatestring (date-time)Date the agreement was created
acceptanceDatestring (date-time) | nullDate the account holder accepted the agreement
{
  "id": 1042,
  "createdDate": "2024-03-15T10:22:00Z",
  "updatedDate": "2024-11-01T08:45:00Z",
  "userProfileId": 8831,
  "step": 4,
  "accountHolderInformation": {
    "id": 501,
    "createdDate": "2024-03-15T10:22:00Z",
    "updatedDate": null,
    "email": "[email protected]",
    "givenName": "Jane",
    "familyName": "Doe",
    "middleName": "A",
    "phone": "+15555550101",
    "ssn": "XXX-XX-XXXX",
    "dateOfBirth": "1985-07-20T00:00:00Z",
    "streetAddress": "123 Main St",
    "extendedAddress": "Apt 4B",
    "postalCode": "30301",
    "locality": "Atlanta",
    "state": 10,
    "countryCodeAlpha3": "USA"
  },
  "businessAccountHolder": null,
  "isSubmitted": true,
  "accountHolderId": "ah_8f3a9c12e7d4b501",
  "nickName": "Jane",
  "cardProductId": "cp_7b2e1f45a3c8d906",
  "openApplicationId": null,
  "financialAccountId": "fa_2c9d4e78b1a5f310",
  "applicationStatus": 3,
  "bankingStatus": "Approved",
  "applicationDate": "2024-03-15T10:25:00Z",
  "approvalDate": "2024-03-16T09:00:00Z",
  "isDeleted": false,
  "isLocked": false,
  "isAccessLocked": false,
  "isMfaEnabled": true,
  "isOtpEnabled": false,
  "agentPayoutProfileId": null,
  "salesRepresentativeId": 12,
  "rewordType": 1,
  "isNew": false,
  "isExceptional": false,
  "profileSettings": {
    "financialAccountsPermissions": {
      "financialAccountsMaxNumber": 5,
      "externalAccountsMaxNumber": 3
    },
    "transferAmountLimits": {
      "achOutTransferAmountLimit": 1000000,
      "internalTransferAmountLimit": 500000
    },
    "loanOff": false
  },
  "applicationCreationType": "NeteviaAPI",
  "exceptionalTemplateId": null,
  "profileType": 1,
  "accountType": 1,
  "employer": null,
  "lockFinancialAccountId": null,
  "agreements": [
    {
      "name": "Terms of Service",
      "createdDate": "2024-01-01T00:00:00Z",
      "acceptanceDate": "2024-03-15T10:24:00Z"
    }
  ]
}

Error Codes

CodeWhen it happens
401Token missing, expired, or invalid
403Insufficient permissions to access the holder profile
500Internal server error

Common Mistakes

  • Sending the request without a Bearer token or with an expired token will return a 401 error. Always refresh the token via POST /api/auth/refresh before it expires.
  • Expecting businessAccountHolder to be populated for personal accounts — for personal customers this field will be null, and personal data will be in accountHolderInformation instead.
  • Misinterpreting the state field as a two-letter abbreviation — the API returns an integer code (1–53) representing the US state, not a string.
  • Treating applicationStatus (integer) and bankingStatus (string) as the same field — they are distinct representations of application state and should be evaluated independently.

Related Endpoints

  • POST /api/auth/v2 — Obtain a Bearer token for authentication
  • POST /api/auth/refresh — Refresh an existing Bearer token
  • GET /v2/holder/business — Retrieve detailed business account holder profile
  • PUT /v2/holder — Update account holder information
  • GET /v2/financial-accounts — List financial accounts associated with the holder

Example

curl -X GET https://api.banking.netevia.dev/v2/holder \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
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