Approve external account

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

ParameterTypeRequiredDescription
profileIdinteger (int32)YesThe unique identifier of the customer profile whose linked external account is being approved.

Query Parameters

ParameterTypeRequiredDescription
financialAccountIdstringNoThe 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

FieldTypeDescription
profileIdinteger (int32)The profile ID of the customer whose external account was approved.
errorsstring (nullable)Error message if the operation encountered issues; null on success.
successbooleanIndicates whether the approval operation completed successfully.
changeLogarray (nullable)List of change log entries recording what was updated during the approval process.

changeLog items

FieldTypeDescription
requestTypeinteger (int32)Numeric code representing the type of banking request made (enum 0–28).
changesstring (nullable)Description of the specific change that was applied.

OpenFinancialAccountResponse (extends BoardingResponse)

FieldTypeDescription
profileIdinteger (int32)The profile ID of the customer.
errorsstring (nullable)Error message if the operation encountered issues; null on success.
successbooleanIndicates whether the approval operation completed successfully.
changeLogarray (nullable)List of change log entries recording what was updated.
financialAccountIdstring (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

CodeWhen it happens
400Missing required fields or validation error (e.g., profileId is not a valid integer)
401Token missing, expired, or invalid
403Insufficient permissions to approve external accounts for this profile
404Profile not found or no linked external account exists for the given profileId
500Internal server error

Common Mistakes

  • Passing a profileId that 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 Authorization header or using an expired token, which will return a 401 error.
  • Providing financialAccountId as 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"
Path Params
int32
required
Query Params
string
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