Find Similar Profiles
This endpoint searches for and returns customer profiles that share similar attributes with a given profile. It is used during boarding and compliance workflows to detect potential duplicate accounts or related customer records. The response includes full profile details for each matched record.
Endpoint
GET /netevia/profile/similar
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 during the customer boarding process to identify existing profiles that may match a new applicant based on shared personal or business attributes. This is particularly useful for fraud prevention, duplicate account detection, and compliance screening before approving new banking applications.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| profileId | integer (int32) | No | The ID of the profile to use as the reference for finding similar profiles. |
Response
200 OK
| Field | Type | Description |
|---|---|---|
| key | string | An identifier or label associated with the similarity match result set. |
| profiles | array | List of profile objects that are similar to the referenced profile. |
| profiles[].id | integer | Unique identifier for the profile. |
| profiles[].createdDate | string (date-time) | Timestamp when the profile was created. |
| profiles[].updatedDate | string (date-time) | Timestamp when the profile was last updated. |
| profiles[].userProfileId | integer | The associated user profile ID. |
| profiles[].step | integer | Current onboarding step of the profile (enum: 0–4). |
| profiles[].accountHolderInformation | object | Personal information for individual account holders. |
| profiles[].accountHolderInformation.id | integer | Entity ID. |
| profiles[].accountHolderInformation.email | string | Account holder email address. |
| profiles[].accountHolderInformation.givenName | string | Account holder first name. |
| profiles[].accountHolderInformation.familyName | string | Account holder last name. |
| profiles[].accountHolderInformation.middleName | string | Account holder middle name. |
| profiles[].accountHolderInformation.phone | string | Account holder phone number. |
| profiles[].accountHolderInformation.ssn | string | Account holder SSN (sanitized as XXX-XX-XXXX). |
| profiles[].accountHolderInformation.dateOfBirth | string (date-time) | Account holder date of birth. |
| profiles[].accountHolderInformation.streetAddress | string | Street address (read-only). |
| profiles[].accountHolderInformation.extendedAddress | string | Extended address line (read-only). |
| profiles[].accountHolderInformation.postalCode | string | ZIP/postal code (read-only). |
| profiles[].accountHolderInformation.locality | string | City or locality (read-only). |
| profiles[].accountHolderInformation.state | integer | US state enum value. |
| profiles[].accountHolderInformation.countryCodeAlpha3 | string | ISO 3166-1 alpha-3 country code (read-only). |
| profiles[].businessAccountHolder | object | Business information for business account holders. |
| profiles[].businessAccountHolder.email | string | Business contact email. |
| profiles[].businessAccountHolder.givenName | string | Primary authorized person first name. |
| profiles[].businessAccountHolder.familyName | string | Primary authorized person last name. |
| profiles[].businessAccountHolder.phone | string | Primary authorized person phone. |
| profiles[].businessAccountHolder.ssn | string | Primary authorized person SSN (sanitized). |
| profiles[].businessAccountHolder.dateOfBirth | string (date-time) | Primary authorized person date of birth. |
| profiles[].businessAccountHolder.legalBusinessName | string | Legal name of the business. |
| profiles[].businessAccountHolder.doingBusinessAsName | string | DBA name of the business. |
| profiles[].businessAccountHolder.website | string | Business website URL. |
| profiles[].businessAccountHolder.businessType | integer | Business entity type enum (0–4). |
| profiles[].businessAccountHolder.businessPhone | string | Business phone number. |
| profiles[].businessAccountHolder.employerIdentificationNumber | string | Business EIN. |
| profiles[].businessAccountHolder.percentageOwnership | integer | Ownership percentage of the primary authorized person. |
| profiles[].businessAccountHolder.authorizingPersonTitle | integer | Title of the authorizing person (enum: 0–6). |
| profiles[].businessAccountHolder.businessStartDate | string (date-time) | Date the business was established. |
| profiles[].businessAccountHolder.annualBusinessRevenue | integer (int64) | Annual revenue of the business. |
| profiles[].businessAccountHolder.payrollCustomer | boolean | Whether the business is a payroll customer. |
| profiles[].businessAccountHolder.owners | array | Additional business owners/beneficial owners. |
| profiles[].isSubmitted | boolean | Whether the profile application has been submitted. |
| profiles[].accountHolderId | string | External account holder reference ID. |
| profiles[].nickName | string | Display name or nickname for the profile. |
| profiles[].cardProductId | string | Associated card product identifier. |
| profiles[].openApplicationId | string | Open banking application identifier. |
| profiles[].financialAccountId | string | Associated financial account identifier. |
| profiles[].applicationStatus | integer | Numeric application status code (enum: 0–4). |
| profiles[].bankingStatus | string | Textual banking application status (e.g., New, Approved, Denied). |
| profiles[].applicationDate | string (date-time) | Date the application was submitted. |
| profiles[].approvalDate | string (date-time) | Date the application was approved. |
| profiles[].isDeleted | boolean | Whether the profile has been soft-deleted. |
| profiles[].isLocked | boolean | Whether the profile is locked. |
| profiles[].isAccessLocked | boolean | Whether login access is restricted (e.g., after multiple failed login attempts). |
| profiles[].isMfaEnabled | boolean | Whether multi-factor authentication is enabled. |
| profiles[].isOtpEnabled | boolean | Whether one-time password authentication is enabled. |
| profiles[].agentPayoutProfileId | integer | Associated agent payout profile ID, if any. |
| profiles[].salesRepresentativeId | integer | Associated sales representative ID, if any. |
| profiles[].rewordType | integer | Reward program type enum (1, 2, or 4). |
| profiles[].isNew | boolean | Whether the profile is newly created. |
| profiles[].isExceptional | boolean | Whether the profile is flagged as exceptional. |
| profiles[].profileSettings | object | Settings governing the profile's financial account and transfer limits. |
| profiles[].profileSettings.financialAccountsPermissions.financialAccountsMaxNumber | integer | Maximum number of financial accounts allowed. |
| profiles[].profileSettings.financialAccountsPermissions.externalAccountsMaxNumber | integer | Maximum number of external accounts allowed. |
| profiles[].profileSettings.transferAmountLimits.achOutTransferAmountLimit | integer (int64) | Maximum ACH outbound transfer amount. |
| profiles[].profileSettings.transferAmountLimits.internalTransferAmountLimit | integer (int64) | Maximum internal transfer amount. |
| profiles[].profileSettings.loanOff | boolean | Whether loan features are disabled for this profile. |
| profiles[].applicationCreationType | string | Channel through which the application was created (e.g., BankingAPI, NeteviaAPI). |
| profiles[].exceptionalTemplateId | integer | ID of the exceptional template applied to the profile. |
| profiles[].profileType | integer | Profile type enum (0–3). |
| profiles[].accountType | integer | User account type enum (1–5). |
| profiles[].employer | object | Employer information if the profile is linked to an EWA program. |
| profiles[].employer.id | integer | Employer ID. |
| profiles[].employer.name | string | Employer name. |
| profiles[].employer.enabled | boolean | Whether the employer relationship is active. |
| profiles[].employer.date | string (date-time) | Date the employer association was established. |
| profiles[].lockFinancialAccountId | string | Financial account ID used for account locking. |
| profiles[].agreements | array | List of agreements accepted by the profile holder. |
| profiles[].agreements[].name | string | Agreement name. |
| profiles[].agreements[].createdDate | string (date-time) | Date the agreement was created. |
| profiles[].agreements[].acceptanceDate | string (date-time) | Date the agreement was accepted by the user. |
{
"key": "similar-match-group-001",
"profiles": [
{
"id": 1042,
"createdDate": "2024-03-15T10:30:00Z",
"updatedDate": "2024-06-01T08:15:00Z",
"userProfileId": 2088,
"step": 4,
"accountHolderInformation": {
"id": 305,
"email": "[email protected]",
"givenName": "Jane",
"familyName": "Smith",
"middleName": "A",
"phone": "+15551234567",
"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-9f3c2b1a",
"nickName": "Jane S.",
"cardProductId": "cp-00123",
"openApplicationId": "app-00456",
"financialAccountId": "fa-00789",
"applicationStatus": 2,
"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": 55,
"rewordType": 1,
"isNew": false,
"isExceptional": false,
"profileSettings": {
"financialAccountsPermissions": {
"financialAccountsMaxNumber": 5,
"externalAccountsMaxNumber": 3
},
"transferAmountLimits": {
"achOutTransferAmountLimit": 10000,
"internalTransferAmountLimit": 25000
},
"loanOff": false
},
"applicationCreationType": "NeteviaAPI",
"exceptionalTemplateId": null,
"profileType": 1,
"accountType": 1,
"employer": null,
"lockFinancialAccountId": null,
"agreements": [
{
"name": "Deposit Account Agreement",
"createdDate": "2024-03-15T10:00:00Z",
"acceptanceDate": "2024-03-15T10:30:00Z"
}
]
}
]
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields or validation error |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions |
| 404 | Resource not found |
| 500 | Internal server error |
Common Mistakes
- Omitting the
profileIdquery parameter — the endpoint may return an empty or unexpected result set without a valid profile reference. - Using a stale or expired Bearer token — tokens expire after 10 minutes; always refresh before making requests.
- Expecting the
ssnfield to contain a real value — for security, SSN values are masked asXXX-XX-XXXXin all responses. - Confusing
applicationStatus(numeric enum) withbankingStatus(string enum) — both fields represent status but use different formats and scopes.
Related Endpoints
GET /netevia/profile/{profileId}— Retrieve full details for a specific profile by IDPOST /netevia/profile— Create a new customer profileGET /netevia/profile— List all profiles accessible to the partner
Example
curl -X GET "https://api.banking.netevia.dev/netevia/profile/similar?profileId=1042" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"