Approve External Account
The Approve External Account endpoint updates the status of an external bank account linked to a customer profile to "approved," enabling it to be used for transactions. This ensures that only verified and secure external accounts can interact with the Netevia banking platform. The approval process may involve validation that the account meets defined criteria before the status change is persisted.
Endpoint
POST /netevia/externalAccount/approve/{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 after a customer has linked an external bank account (via Finicity or Plaid) and the account has passed underwriting verification. Approving the account makes it eligible for ACH transfers and other banking operations. This step is required before the external account can be used in any transaction flow.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| profileId | integer (int32) | Yes | The unique identifier of the customer profile whose linked external account is being approved. |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| financialAccountId | string | No | The identifier of the specific financial account to associate with the approved external account. |
Response
200 OK
The response may be one of two schemas depending on whether a financial account is opened as part of the approval.
BoardingResponse
| Field | Type | Description |
|---|---|---|
| profileId | integer (int32) | The profile ID of the customer whose external account was approved. |
| errors | string (nullable) | Error message if the operation encountered issues; null on success. |
| success | boolean | Indicates whether the approval operation completed successfully. |
| changeLog | array (nullable) | List of change log entries recording what was updated during the approval process. |
changeLog items
| Field | Type | Description |
|---|---|---|
| requestType | integer (int32) | Numeric code representing the type of banking request made (enum 0–28). |
| changes | string (nullable) | Description of the specific change that was applied. |
OpenFinancialAccountResponse (extends BoardingResponse)
| Field | Type | Description |
|---|---|---|
| profileId | integer (int32) | The profile ID of the customer. |
| errors | string (nullable) | Error message if the operation encountered issues; null on success. |
| success | boolean | Indicates whether the approval operation completed successfully. |
| changeLog | array (nullable) | List of change log entries recording what was updated. |
| financialAccountId | string (nullable) | The identifier of the newly opened or associated financial account, if applicable. |
{
"profileId": 100234,
"errors": null,
"success": true,
"changeLog": [
{
"requestType": 3,
"changes": "External account status updated to approved"
}
],
"financialAccountId": "fa_8d2a9c3e7f1b04e5"
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields or validation error (e.g., profileId is not a valid integer) |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to approve external accounts for this profile |
| 404 | Profile not found or no linked external account exists for the given profileId |
| 500 | Internal server error |
Common Mistakes
- Passing a
profileIdthat belongs to a profile with no linked external account — the account must be linked before it can be approved. - Attempting to approve an account that has already been approved — check the current account status first to avoid redundant calls.
- Omitting the
Authorizationheader or using an expired token, which will return a 401 error. - Providing
financialAccountIdas a path parameter instead of a query parameter.
Related Endpoints
POST /netevia/externalAccount/link/{profileId}— Link an external bank account to a customer profile via Finicity or Plaid before approval.GET /netevia/externalAccount/{profileId}— Retrieve external accounts linked to a profile and check their current status.DELETE /netevia/externalAccount/{profileId}— Remove a linked external account from a customer profile.POST /api/auth/v2— Obtain a Bearer token for authentication.POST /api/auth/refresh— Refresh an expiring Bearer token.
Example
curl -X POST https://api.banking.netevia.dev/netevia/externalAccount/approve/100234 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"With optional financialAccountId query parameter:
curl -X POST "https://api.banking.netevia.dev/netevia/externalAccount/approve/100234?financialAccountId=fa_8d2a9c3e7f1b04e5" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"