Set Linked Banking Profile by Merchant Profile ID

Links a Netevia banking profile to a merchant profile by merchant profile ID.

Set Linked Banking Profile by Merchant Profile ID

This endpoint links a Netevia banking profile to a merchant profile, associating the two records within the platform. Once linked, the banking profile and merchant profile share integrated financial management, enabling streamlined transactions and consolidated account operations. This is typically used during merchant onboarding or when a merchant account needs to be connected to an existing banking profile.

Endpoint

POST /netevia/profile/{profileId}/{merchantProfileId}

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 when onboarding a merchant who already has a Netevia banking profile, or when you need to associate an existing banking profile with a new or existing merchant profile. This linkage enables the merchant to manage banking operations and financial accounts in conjunction with their merchant account. It is also appropriate when re-linking profiles after a merchant profile update or migration.

Path Parameters

ParameterTypeRequiredDescription
profileIdinteger (int32)YesThe unique identifier of the Netevia banking profile to link.
merchantProfileIdinteger (int32)YesThe unique identifier of the merchant profile to associate with the banking profile.

Query Parameters

ParameterTypeRequiredDescription
riskbooleanNoFlag indicating whether the profile should be evaluated or flagged for risk assessment during linking.
isNewbooleanNoIndicates whether this is a new profile association. When true, the system may treat the link as a first-time association rather than an update.

Response

200 OK

FieldTypeDescription
idintegerInternal record ID of the primary profile.
createdDatestring (date-time)Timestamp when the profile record was created.
updatedDatestring (date-time)Timestamp of the last update to the profile record. Null if never updated.
userProfileIdintegerID of the user profile associated with this primary profile.
stepintegerCurrent onboarding step of the profile (enum: 0–4).
accountHolderInformationobjectPersonal information of the account holder (for personal profiles). See fields below.
accountHolderInformation.idintegerInternal ID of the personal information record.
accountHolderInformation.createdDatestring (date-time)Creation timestamp of the personal information record.
accountHolderInformation.updatedDatestring (date-time)Last update timestamp. Nullable.
accountHolderInformation.emailstringAccount holder email address.
accountHolderInformation.givenNamestringAccount holder first name.
accountHolderInformation.familyNamestringAccount holder last name.
accountHolderInformation.middleNamestringAccount holder middle name. Nullable.
accountHolderInformation.phonestringAccount holder phone number.
accountHolderInformation.ssnstringAccount holder SSN (returned masked as XXX-XX-XXXX).
accountHolderInformation.dateOfBirthstring (date-time)Account holder date of birth.
accountHolderInformation.streetAddressstringStreet address (read-only).
accountHolderInformation.extendedAddressstringExtended address line (read-only).
accountHolderInformation.postalCodestringPostal/ZIP code (read-only).
accountHolderInformation.localitystringCity or locality (read-only).
accountHolderInformation.stateintegerUS state enum (1–53).
accountHolderInformation.countryCodeAlpha3stringISO 3166-1 alpha-3 country code (read-only).
businessAccountHolderobjectBusiness account holder information (for business profiles). Contains business and primary authorized person details.
businessAccountHolder.emailstringEmail of the primary authorized person.
businessAccountHolder.givenNamestringFirst name of the primary authorized person.
businessAccountHolder.familyNamestringLast name of the primary authorized person.
businessAccountHolder.middleNamestringMiddle name of the primary authorized person.
businessAccountHolder.phonestringPhone number of the primary authorized person.
businessAccountHolder.ssnstringSSN of the primary authorized person (returned masked).
businessAccountHolder.dateOfBirthstring (date-time)Date of birth of the primary authorized person.
businessAccountHolder.legalBusinessNamestringLegal name of the business.
businessAccountHolder.doingBusinessAsNamestringDBA name of the business.
businessAccountHolder.websitestringBusiness website URL.
businessAccountHolder.businessTypeintegerBusiness type enum (0–4).
businessAccountHolder.businessPhonestringBusiness phone number.
businessAccountHolder.employerIdentificationNumberstringBusiness EIN.
businessAccountHolder.percentageOwnershipintegerOwnership percentage of the primary authorized person.
businessAccountHolder.authorizingPersonTitleintegerTitle of the authorizing person (enum: 0–6).
businessAccountHolder.primaryAuthorizedPersonIdstringExternal identifier for the primary authorized person.
businessAccountHolder.businessStartDatestring (date-time)Date the business was established.
businessAccountHolder.annualBusinessRevenueinteger (int64)Annual revenue of the business in cents.
businessAccountHolder.payrollCustomerbooleanWhether the business is a payroll customer.
businessAccountHolder.ownersarrayList of additional business owners. Each owner includes: businessAccountId, givenName, familyName, middleName, email, dateOfBirth, percentageOwnership, phoneNumber, ssn, streetAddress, extendedAddress, postalCode, locality, state, countryCodeAlpha3, ownerType.
businessAccountHolder.merchantProfileIdintegerThe merchant profile ID linked to this business account holder.
isSubmittedbooleanWhether the banking application has been submitted. Nullable.
accountHolderIdstringExternal account holder identifier.
nickNamestringDisplay nickname for the profile.
cardProductIdstringID of the card product associated with this profile.
openApplicationIdstringID of the open banking application.
financialAccountIdstringID of the associated financial account.
applicationStatusintegerNumeric application status (enum: 0–4).
bankingStatusstringString-based banking application status. One of: New, Submitted, PendingUW, ApprovedUW, Closed, Cancelled, Pending_Review, Denied, Approved, Pending, InReview, AutoApprovedUW.
applicationDatestring (date-time)Date the application was created.
approvalDatestring (date-time)Date the application was approved.
isDeletedbooleanWhether the profile has been soft-deleted.
isLockedbooleanWhether the profile is 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.
agentPayoutProfileIdintegerID of the associated agent payout profile. Nullable.
salesRepresentativeIdintegerID of the associated sales representative. Nullable.
rewordTypeintegerReward type enum (1, 2, or 4).
isNewbooleanWhether this is a new profile. Nullable.
isExceptionalbooleanWhether the profile is flagged as exceptional. Nullable.
profileSettingsobjectProfile-level settings including financial account limits and transfer limits.
profileSettings.financialAccountsPermissions.financialAccountsMaxNumberintegerMaximum number of financial accounts allowed.
profileSettings.financialAccountsPermissions.externalAccountsMaxNumberintegerMaximum number of external accounts allowed.
profileSettings.transferAmountLimits.achOutTransferAmountLimitinteger (int64)ACH outbound transfer limit in cents. Nullable.
profileSettings.transferAmountLimits.internalTransferAmountLimitinteger (int64)Internal transfer limit in cents. Nullable.
profileSettings.loanOffbooleanWhether loan features are disabled for this profile.
applicationCreationTypestringHow the banking application was created. One of: MobileApplication, OnlineBankingApplication, OnlineMerchantApplication, NeteviaBoardingApplication, BankingAPI, NeteviaAPI.
exceptionalTemplateIdintegerID of the exceptional template applied to this profile. Nullable.
profileTypeintegerProfile type enum (0–3).
accountTypeintegerAccount type enum (1–5).
employerobjectEmployer profile linked via EWA. Includes id, name, enabled, date.
lockFinancialAccountIdstringID of the financial account used as a lock account. Nullable.
agreementsarrayList of agreements accepted by the account holder. Each includes name, createdDate, acceptanceDate.
{
  "id": 10045,
  "createdDate": "2025-03-10T08:30:00Z",
  "updatedDate": "2025-11-15T14:22:00Z",
  "userProfileId": 3301,
  "step": 3,
  "accountHolderInformation": null,
  "businessAccountHolder": {
    "id": 8821,
    "createdDate": "2025-03-10T08:30:00Z",
    "updatedDate": "2025-11-15T14:22:00Z",
    "email": "[email protected]",
    "givenName": "Jane",
    "familyName": "Smith",
    "middleName": null,
    "phone": "5125550100",
    "ssn": "XXX-XX-XXXX",
    "dateOfBirth": "1980-06-15T00:00:00Z",
    "streetAddress": "456 Commerce Blvd",
    "extendedAddress": "Suite 200",
    "postalCode": "78701",
    "locality": "Austin",
    "state": 43,
    "countryCodeAlpha3": "USA",
    "percentageOwnership": 100,
    "authorizingPersonTitle": 2,
    "legalBusinessName": "Acme Corp LLC",
    "doingBusinessAsName": "Acme Corp",
    "website": "https://acmecorp.com",
    "businessType": 1,
    "businessPhone": "5125550200",
    "employerIdentificationNumber": "12-3456789",
    "primaryAuthorizedPersonId": "auth-person-abc123",
    "businessStartDate": "2018-01-01T00:00:00Z",
    "annualBusinessRevenue": 500000000,
    "payrollCustomer": false,
    "owners": [],
    "merchantProfileId": 7712
  },
  "isSubmitted": true,
  "accountHolderId": "acct-holder-xyz789",
  "nickName": "Acme Main",
  "cardProductId": "card-prod-001",
  "openApplicationId": "app-open-55432",
  "financialAccountId": "fin-acct-998877",
  "applicationStatus": 2,
  "bankingStatus": "Approved",
  "applicationDate": "2025-03-10T08:30:00Z",
  "approvalDate": "2025-03-12T11:00:00Z",
  "isDeleted": false,
  "isLocked": false,
  "isAccessLocked": false,
  "isMfaEnabled": true,
  "isOtpEnabled": false,
  "agentPayoutProfileId": null,
  "salesRepresentativeId": 501,
  "rewordType": 1,
  "isNew": false,
  "isExceptional": false,
  "profileSettings": {
    "financialAccountsPermissions": {
      "financialAccountsMaxNumber": 5,
      "externalAccountsMaxNumber": 3
    },
    "transferAmountLimits": {
      "achOutTransferAmountLimit": 1000000,
      "internalTransferAmountLimit": 500000
    },
    "loanOff": false
  },
  "applicationCreationType": "NeteviaBoardingApplication",
  "exceptionalTemplateId": null,
  "profileType": 1,
  "accountType": 2,
  "employer": null,
  "lockFinancialAccountId": null,
  "agreements": [
    {
      "name": "Terms of Service",
      "createdDate": "2025-03-10T08:30:00Z",
      "acceptanceDate": "2025-03-10T08:35:00Z"
    }
  ]
}

Error Codes

CodeWhen it happens
400Missing required path parameters or invalid integer format for profileId or merchantProfileId
401Token missing, expired, or invalid
403Insufficient permissions to link the specified profiles
404The specified profileId or merchantProfileId does not exist
500Internal server error

Common Mistakes

  • Passing profileId or merchantProfileId as strings instead of integers — both path parameters must be valid 32-bit integers.
  • Omitting the Authorization: Bearer header or using an expired token, resulting in a 401 error.
  • Attempting to link profiles that belong to different partners — ensure both the banking profile and merchant profile are within the same partner scope.
  • Confusing profileId (banking profile) with merchantProfileId (merchant system profile) — they are distinct identifiers and must be passed in the correct path positions.
  • Not checking bankingStatus in the response — a status of Denied or Closed may indicate the link succeeded at the data level but the account is not in an active state.

Related Endpoints

  • GET /netevia/profile/{profileId} — Retrieve details of an existing banking profile by its ID
  • POST /netevia/profile — Create a new Netevia banking profile
  • PUT /netevia/profile/{profileId} — Update an existing banking profile
  • GET /netevia/profile/{profileId}/{merchantProfileId} — Retrieve the linked banking profile for a given merchant profile ID

Example

curl -X POST https://api.banking.netevia.dev/netevia/profile/10045/7712 \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"

To include optional query parameters:

curl -X POST "https://api.banking.netevia.dev/netevia/profile/10045/7712?risk=false&isNew=false" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
Path Params
int32
required
int32
required
Query Params
boolean
boolean
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