Uphold Accounts API

Accounts.

Operations 10

GET /core/accounts List accounts #
POST /core/accounts Create account #
GET /core/accounts/defaults List default accounts #
GET /core/accounts/{accountId} Get account #
PATCH /core/accounts/{accountId} Update account #
DELETE /core/accounts/{accountId} Archive account #
GET /core/accounts/{accountId}/deposit-method Get account deposit method #
PUT /core/accounts/{accountId}/deposit-method Set up account deposit method #
POST /core/accounts/test-helpers/bank-deposits Simulate bank deposit #
POST /core/accounts/test-helpers/crypto-deposits Simulate crypto deposit #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uphold-accounts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

uphold-accounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 0.1.0
  title: Core Accounts API
  description: The Core API provides essential building blocks that empower businesses to embed financial services into their applications.
  contact:
    name: Uphold API Team
    email: developers@uphold.com
    url: https://developer.uphold.com
servers:
- url: https://api.enterprise.sandbox.uphold.com
  description: Sandbox
- url: https://api.enterprise.uphold.com
  description: Production
security:
- OAuth2: []
tags:
- name: Accounts
  description: Accounts.
paths:
  /core/accounts:
    get:
      operationId: core.list-accounts
      summary: List accounts
      description: List accounts owned by a user.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:read
      parameters:
      - $ref: '#/components/parameters/list-accounts-asset-code-filter'
      - $ref: '#/components/parameters/pagination-per-page'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/list-accounts-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too-many-requests'
    post:
      operationId: core.create-account
      summary: Create account
      description: Create a new account.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:create
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/create-account-request-body'
      responses:
        '201':
          $ref: '#/components/responses/create-account-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/asset-not-found-response'
        '409':
          $ref: '#/components/responses/create-account-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/accounts/defaults:
    get:
      operationId: core.list-default-accounts
      summary: List default accounts
      description: List the default account for each asset owned by a user.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:read
      parameters:
      - $ref: '#/components/parameters/list-default-accounts-asset-code-filter'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/list-default-accounts-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/accounts/{accountId}:
    get:
      operationId: core.get-account
      summary: Get account
      description: Retrieve an existing account by id.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:read
      parameters:
      - $ref: '#/components/parameters/account-id'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-account-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-account-not-found-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
    patch:
      operationId: core.update-account
      summary: Update account
      description: Update an existing account.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:update
      parameters:
      - $ref: '#/components/parameters/account-id'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-account-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-account-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/update-account-not-found-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
    delete:
      operationId: core.archive-account
      summary: Archive account
      description: Archive an existing account.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:archive
      parameters:
      - $ref: '#/components/parameters/account-id'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '204':
          $ref: '#/components/responses/archive-account-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/archive-account-not-found-response'
        '409':
          $ref: '#/components/responses/archive-account-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/accounts/{accountId}/deposit-method:
    get:
      operationId: core.get-account-deposit-method
      summary: Get account deposit method
      description: Gets deposit method for depositing into an account externally.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:deposit-method
      parameters:
      - $ref: '#/components/parameters/account-id'
      - $ref: '#/components/parameters/account-deposit-method-type'
      - $ref: '#/components/parameters/account-deposit-method-asset'
      - $ref: '#/components/parameters/account-deposit-method-network'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-account-deposit-method-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/get-account-deposit-method-account-not-found-response'
        '409':
          $ref: '#/components/responses/get-account-deposit-method-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
    put:
      operationId: core.setup-account-deposit-method
      summary: Set up account deposit method
      description: Sets up a deposit method for depositing into an account externally.
      tags:
      - Accounts
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      security:
      - OAuth2:
        - core.accounts:deposit-method
      parameters:
      - $ref: '#/components/parameters/account-id'
      - $ref: '#/components/parameters/account-deposit-method-type'
      - $ref: '#/components/parameters/account-deposit-method-asset'
      - $ref: '#/components/parameters/account-deposit-method-network'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/setup-account-deposit-method-response'
        '201':
          $ref: '#/components/responses/setup-account-deposit-method-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/setup-account-deposit-method-account-not-found-response'
        '409':
          $ref: '#/components/responses/setup-account-deposit-method-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/accounts/test-helpers/bank-deposits:
    post:
      operationId: core.simulate-bank-deposit
      summary: Simulate bank deposit
      description: Simulate an incoming bank deposit for testing purposes.
      tags:
      - Accounts
      security:
      - OAuth2:
        - core.accounts:use-test-helpers
      x-uphold:
        operation:
          notImplementedIn:
          - production
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/simulate-bank-deposit-request-body'
      responses:
        '202':
          $ref: '#/components/responses/simulate-bank-deposit-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/simulate-bank-deposit-not-found-response'
        '409':
          $ref: '#/components/responses/simulate-bank-deposit-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/accounts/test-helpers/crypto-deposits:
    post:
      operationId: core.simulate-crypto-deposit
      summary: Simulate crypto deposit
      description: Simulate an incoming crypto deposit for testing purposes.
      tags:
      - Accounts
      security:
      - OAuth2:
        - core.accounts:use-test-helpers
      x-uphold:
        operation:
          notImplementedIn:
          - production
        security:
          OAuth2:
            subjects:
            - user:business
            - user:individual
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/simulate-crypto-deposit-request-body'
      responses:
        '202':
          $ref: '#/components/responses/simulate-crypto-deposit-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/simulate-crypto-deposit-not-found-response'
        '409':
          $ref: '#/components/responses/simulate-crypto-deposit-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
webhooks:
  core.account.created:
    post:
      operationId: core.account-created
      summary: Account Created
      description: An account has been created.
      tags:
      - Accounts
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: Account created event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account-webhook-event'
            examples:
              Account Created:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.account.created
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    account:
                      id: 555a99a1-620d-4431-a0ac-b43e1aad2bdc
                      ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                      label: My BTC account
                      asset: BTC
                      balance:
                        total: '0'
                        available: '0'
                      createdAt: '2024-06-01T00:00:00.000Z'
                      updatedAt: '2024-07-15T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.account.balance-changed:
    post:
      operationId: core.account-balance-changed
      summary: Account Balance Changed
      description: The balance of an account has changed.
      tags:
      - Accounts
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: Account balance changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account-webhook-event'
            examples:
              Account Balance Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.account.balance.changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    account:
                      id: 555a99a1-620d-4431-a0ac-b43e1aad2bdc
                      ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                      label: My BTC account
                      asset: BTC
                      balance:
                        total: '0.5'
                        available: '0.3'
                      createdAt: '2024-06-01T00:00:00.000Z'
                      updatedAt: '2024-07-15T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.account.archived:
    post:
      operationId: core.account-archived
      summary: Account archived
      description: An account has been archived.
      tags:
      - Accounts
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: Account archived event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account-webhook-event'
            examples:
              Account Archived:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.account.archived
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    account:
                      id: 555a99a1-620d-4431-a0ac-b43e1aad2bdc
                      ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                      label: My BTC account
                      asset: BTC
                      balance:
                        total: '0'
                        available: '0'
                      createdAt: '2024-06-01T00:00:00.000Z'
                      updatedAt: '2024-07-15T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.account.unarchived:
    post:
      operationId: core.account-unarchived
      summary: Account unarchived
      description: An account has been unarchived.
      tags:
      - Accounts
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: Account unarchived event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account-webhook-event'
            examples:
              Account Unarchived:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.account.unarchived
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    account:
                      id: 555a99a1-620d-4431-a0ac-b43e1aad2bdc
                      ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                      label: My BTC account
                      asset: BTC
                      balance:
                        total: '0'
                        available: '0'
                      createdAt: '2024-06-01T00:00:00.000Z'
                      updatedAt: '2024-07-15T00:00:00.000Z'
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
components:
  responses:
    list-accounts-response:
      description: Accounts retrieved.
      content:
        application/json:
          schema:
            type: object
            properties:
              accounts:
                type: array
                items:
                  $ref: '#/components/schemas/account'
              pagination:
                $ref: '#/components/schemas/pagination'
            required:
            - accounts
            - pagination
          examples:
            Accounts Retrieved:
              value:
                accounts:
                - id: 555a99a1-620d-4431-a0ac-b43e1aad2bdc
                  ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                  label: My BTC account
                  asset: BTC
                  balance:
                    total: '0.0015'
                    available: '0.0015'
                  createdAt: '2024-06-01T00:00:00.000Z'
                  updatedAt: '2024-07-15T00:00:00.000Z'
                - id: 38778db4-7ad5-4353-88b8-07e93eb1e02e
                  ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                  label: My ETH account
                  asset: ETH
                  balance:
                    total: '0.04'
                    available: '0.039'
                  createdAt: '2024-07-01T00:00:00.000Z'
                  updatedAt: '2024-07-10T00:00:00.000Z'
                pagination:
                  first: https://api.enterprise.uphold.com/core/accounts?page=1&perPage=2
                  next: https://api.enterprise.uphold.com/core/accounts?page=2&perPage=2
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-account-deposit-method-account-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Account Not Found:
              value:
                code: entity_not_found
                message: The account cannot be found
                details:
                  entity: account
            Rail Not Found:
              value:
                code: entity_not_found
                message: A rail for the specified type, asset and network cannot be found
                details:
                  entity: rail
            Deposit Method Not Found:
              value:
                code: entity_not_found
                message: A deposit method for the specified type, asset and network cannot be found
                details:
                  entity: depositMethod
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    forbidden:
      description: Forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Token Insufficient Scopes:
              value:
                code: token_insufficient_scopes
                message: Authorization failed due to insufficient scopes
                details:
                  security:
                  - scheme: OAuth
                    schemeScopes:
                    - required:scope_1
                    - required:scope_2
                    tokenScopes:
                    - token:scope
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    unauthorized:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Token Expired:
              value:
                code: token_expired
                message: The access token has expired
            Token Invalid:
              value:
                code: token_invalid
                message: The access token is invalid
            Token Revoked:
              value:
                code: token_revoked
                message: The access token has been revoked
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-account-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Account Not Found:
              value:
                code: entity_not_found
                message: The account cannot be found
                details:
                  entity: account
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    archive-account-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Account Not Found:
              value:
                code: entity_not_found
                message: The account cannot be found
                details:
                  entity: account
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    simulate-crypto-deposit-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Crypto Address Invalid:
              value:
                code: crypto_address_invalid
                message: The crypto address is invalid
                details:
                  context: body
                  property: address
            Rail Missing Deposit Feature:
              value:
                code: rail_feature_not_available
                message: The 'deposit' feature is not available for the rail
                details:
                  feature: deposit
            Amount Minimum Limit Not Met:
              value:
                code: transaction_amount_invalid
                message: The amount minimum limit was not met
                details:
                  context: body
                  property: amount
                  rule: minimum-limit-not-met
                  threshold:
                    value: 10
            Remitter Addresses Invalid:
              value:
                code: crypto_address_invalid
                message: The crypto address is invalid
                details:
                  context: body
                  property: remitter.addresses
            Remitter Addresses Limit Exceeded:
              value:
                code: crypto_address_invalid
                message: The number of addresses must be less than or equal to 1
                details:
                  context: body
                  property: remitter.addresses,
                  threshold:
                    limit: 1
            Remitter And Recipient Cannot Match:
              value:
                code: remitter_and_recipient_cannot_match
                message: The remitter and recipient cannot match
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    simulate-bank-deposit-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Deposit Method Not Found:
              value:
                code: entity_not_found
                message: The account deposit method cannot be found
                details:
                  entity: depositMethod
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    list-default-accounts-response:
      description: Default accounts retrieved.
      content:
        application/json:
          schema:
            type: object
            properties:
              accounts:
                type: array
                items:
                  $ref: '#/components/schemas/account'
            required:
            - accounts
          examples:
            Default Accounts Retrieved:
              value:
                accounts:
                - id: 555a99a1-620d-4431-a0ac-b43e1aad2bdc
                  ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                  label: My BTC account
                  asset: BTC
                  balance:
                    total: '0.0015'
                    available: '0.0015'
                  createdAt: '2024-06-01T00:00:00Z'
                  updatedAt: '2024-07-15T00:00:00Z'
                - id: 38778db4-7ad5-4353-88b8-07e93eb1e02e
                  ownerId: 1e32fca3-23f7-40ed-bc1b-de10c790182d
                  label: My ETH account
                  asset: ETH
                  balance:
                    total: '0.04'
                    available: '0.039'
                  createdAt: '2024-07-01T00:00:00Z'
                  updatedAt: '2024-07-10T00:00:00Z'
      headers:
        x-uphold-request-id:
          description: A unique identifier for the request that can be shared with Uphold for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-account-deposit-method-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Rai

# --- truncated at 32 KB (115 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uphold/refs/heads/main/openapi/uphold-accounts-api-openapi.yml