---
title: "Update external account"
method: PATCH
path: "/core/external-accounts/{externalAccountId}"
tags: ["External accounts"]
---

# Update external account

`PATCH /core/external-accounts/{externalAccountId}`

## Request

- Base URL: `https://api.enterprise.sandbox.uphold.com`
- URL: `https://api.enterprise.sandbox.uphold.com/core/external-accounts/{externalAccountId}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/core/oauth2/token` scopes: `core.external-accounts:update`
- TypeScript: <https://skmtc.dev/uphold/apis/core-api/docs/core/external-accounts/:externalAccountId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update an existing external account.

## Path parameters

- `externalAccountId` string, uuid, required

## Headers

- `X-On-Behalf-Of` string
- `X-Uphold-User-Ip` union
  - string, ipv4
  - string, ipv6
- `X-Uphold-User-Agent` string
- `X-Uphold-User-Origin` string
- `X-Uphold-User-Country` string
- `X-Uphold-User-Subdivision` string
- `X-Uphold-User-City` string

## Request body

- object
  - `label` string: The label of the external account.

## Response `200`

External account updated.

- object
  - `externalAccount` ExternalAccount, required
    - `id` string, uuid, required: The unique identifier of the external account.
    - `ownerId` string, uuid, required: The unique identifier of the user that owns the account.
    - `type` 'apm' | 'bank' | 'card' | 'crypto', required: The type of the external account.
    - `status` 'processing' | 'ok' | 'expired' | 'failed' | 'restricted' | 'blocked', required: The status of the external account.
    - `statusDetails` object: The details of the status of the external account.
      - `reason` 'card-data-invalid' | 'card-declined-by-bank' | 'card-expired' | 'card-permanently-declined-by-bank' | 'card-unauthorized' | 'card-unsupported' | 'bank-account-holder-name-mismatch' | 'velocity' | 'under-review' | 'unspecified-error', required: The reason why the external account is in its current status.
    - `label` string, required: The label of the external account.
    - `asset` string, required: The asset in which the external account is denominated.
    - `network` string: The network that the external account corresponds to.
    - `features` string[], required: The features of the external account.
    - `details` union, required: The details of the external account based on the type and network.
      - ExternalAccountDetailsCard
        - `type` 'credit' | 'debit': The type of the card, available if card was recognized.
        - `last4Digits` string, required: The last 4 digits of the card number.
        - `expiryDate` object, required: The expiry date of the card.
          - `month` integer, required: The expiry month of the card.
          - `year` integer, required: The expiry year of the card.
        - `octSupport` 'unknown' | 'supported' | 'unsupported', required: The support for Open Credit Transfer (withdrawals) for the card.
      - ExternalAccountDetailsBankAch
        - `address` Address, required: The address information.
          - `country` string: The country of the address.
          - `subdivision` string: The subdivision of the address.
          - `city` string: The city of the address.
          - `line1` string: The first line of the address.
          - `line2` string: The second line of the address.
          - `postalCode` string: The postal code of the address.
        - `routingNumber` string, required: The routing number of the bank account (ABA).
        - `accountNumber` string, required: The account number of the bank account.
        - `accountType` string, required: The type of the bank account.
        - `secondaryNetworks` object: The secondary networks that the external account can be used with, grouped by operation.
          - `deposit` string[]
          - `withdraw` string[]
      - ExternalAccountDetailsBankFps
        - `accountNumber` string, required: The account number of the bank account.
        - `sortCode` string, required: The sort code of the bank account.
      - ExternalAccountDetailsBankSepa
        - `bic` string, required: The bank account's BIC.
        - `iban` string, required: The IBAN.
      - ExternalAccountDetailsApm
        - `identifier` string, required: The identifier of the payment method account.
      - ExternalAccountDetailsCrypto
        - `address` string, required: The crypto address.
        - `reference` string: The additional identifier (e.g., destination tag, memo) for the address.
    - `createdAt` string, date-time, required: The time at which the external account was created.
    - `updatedAt` string, date-time, required: The last time at which the external account was updated.
    - `verifications` ExternalAccountVerification[]: The verification records for the external account.
      - `via` 'request-for-information', required: The method through which the verification is tracked.
      - `level` 'declared' | 'verified', required: The level of the verification.
      - `status` 'pending' | 'completed' | 'failed', required: The status of the verification.
      - `completedAt` string, date-time: The time at which the verification was completed.

## Other responses

- `400`: Bad Request.
- `401`: Unauthorized.
- `403`: Forbidden.
- `404`: Resource not found.
- `409`: Business logic error.
- `429`: Too Many Requests.

---

[API](https://skmtc.dev/uphold/apis/core-api.md) - [All operations](https://skmtc.dev/uphold/apis/core-api/llms.txt) - [OpenAPI document](https://skmtc.dev/uphold/apis/core-api/revisions/6c663575c57a?raw)
