Paxos Accounts API

Accounts connect Identities (persons or institutions) to Profiles (asset balances). Key features include: - **Balance Management**: Track and manage profile balances via [Subledgering](https://docs.paxos.com/crypto-brokerage/ledger-type#fiat-and-crypto-subledger) - **Joint Account Support**: Link multiple Identities to a single Account for shared on platform balance Accounts are required for all Identity API integrations.

Business capability
Customer Onboarding Management BC-1300.10

Operations 4

GET /identity/accounts List Accounts #
POST /identity/accounts Create Account #
PUT /identity/accounts Update Account #
GET /identity/accounts/{id} Get account #

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/paxos-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

paxos-accounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Paxos Accounts API
  version: '2.0'
  description: Welcome to Paxos APIs.
  x-logo:
    url: /docs/paxos.svg
    backgroundColor: '#FFFFFF'
    altText: Paxos logo
servers:
- url: https://api.paxos.com/v2
  description: Production
- url: https://api.sandbox.paxos.com/v2
  description: Sandbox
tags:
- name: Accounts
  description: 'Accounts connect Identities (persons or institutions) to Profiles (asset balances).

    Key features include:


    - **Balance Management**: Track and manage profile balances via Subledgering

    - **Joint Account Support**: Link multiple Identities to a single Account for shared on platform balance


    Accounts are required for all Identity API integrations.'
paths:
  /identity/accounts:
    get:
      summary: List Accounts
      description: 'List accounts with pagination. Every response will contain a `next_page` field,

        as long as the end of the list has not been reached. Pass this value into the `page_cursor` field of the next request

        to retrieve the next page of results.'
      operationId: ListAccounts
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAccountsResponse'
      parameters:
      - name: page_cursor
        in: query
        required: false
        schema:
          type: string
      - name: order
        description: Return items in ascending (ASC) or descending (DESC) order. Defaults to DESC.
        in: query
        required: false
        schema:
          type: string
          enum:
          - DESC
          - ASC
      - name: order_by
        description: The specific method by which the returned results will be ordered.
        in: query
        required: false
        schema:
          type: string
          enum:
          - CREATED_AT
      - name: limit
        description: Number of results to return.
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: created_at.lt
        description: Include timestamps strictly less than lt. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: created_at.lte
        description: Include timestamps less than or equal to lte. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: created_at.eq
        description: Include timestamps exactly equal to eq. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: created_at.gte
        description: Include timestamps greater than or equal to gte. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: created_at.gt
        description: Include timestamps strictly greater than gt. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: identity_id
        description: Optionally filter by primary identity identity.
        in: query
        required: false
        schema:
          type: string
      - name: updated_at.lt
        description: Include timestamps strictly less than lt. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: updated_at.lte
        description: Include timestamps less than or equal to lte. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: updated_at.eq
        description: Include timestamps exactly equal to eq. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: updated_at.gte
        description: Include timestamps greater than or equal to gte. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: updated_at.gt
        description: Include timestamps strictly greater than gt. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      tags:
      - Accounts
      security:
      - OAuth2:
        - identity:read_account
    post:
      summary: Create Account
      description: 'Create an account for a given identity, via the `identity_id` field.

        This identity is the primary owner of the account for all tax-related purposes.


        To track user balances using Paxos Profiles, use `create_profile=true` when creating the account.

        Once an account has been created, it is not possible to associate it with a Profile.


        ### Account Members


        In addition to the primary owner, other identities may be associated with the account, by using `members`.

        The identity on the account is treated as a BENEFICIAL_OWNER.


        To add a financial advisor to an account, add a member with the FINANCIAL_ADVISOR role.


        #### Example

        This example request creates a joint account for John and Jane Doe. John has identity_id=82c338f4-3cb7-4d9b-be2a-4b077c82ee3a,

        and Jane has identity_id=0f5d8475-33f3-4ebd-88a0-66dedc2581c1. John is the primary owner of the account for tax-purposes, but Jane

        is a full beneficial owner.


        Additionally, this account has an associated financial advisor with identity_id=0d26f878-298e-4d47-81be-cdf4e982a3d3.


        ```json

        {

        "account": {

        "identity_id": "82c338f4-3cb7-4d9b-be2a-4b077c82ee3a",

        "members": [{

        "identity_id": "0f5d8475-33f3-4ebd-88a0-66dedc2581c1",

        "roles": ["BENEFICIAL_OWNER"]

        }, {

        "identity_id": "0d26f878-298e-4d47-81be-cdf4e982a3d3",

        "roles": ["FINANCIAL_ADVISOR"]

        }]

        }

        }

        ```


        ### Fields


        Any fields not listed are forbidden in this request.


        Field | Notes

        ---|---

        identity_id | Required

        description | Optional

        metadata | Optional

        ref_id | Optional

        members | Optional'
      operationId: CreateAccount
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
              example:
                id: e69e4e31-6dca-4a46-bb85-af40b5fe2d59
                identity_id: 82c338f4-3cb7-4d9b-be2a-4b077c82ee3a
                ref_id: fec36070-4c23-48ac-9ee1-df338b8233fc
                description: Individual account for John Doe
                metadata:
                  custom_field: custom_value
                admin_disabled: false
                user_disabled: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccountRequest'
        required: true
      tags:
      - Accounts
      security:
      - OAuth2:
        - identity:write_account
    put:
      summary: Update Account
      description: 'This enables you to update an existing account with new information. Please refer to the following

        table for fields that can be updated via this endpoint.


        Field | Notes

        ---|---

        account.id | Required

        account.description | Optional

        account.ref_id | Optional

        account.metadata | Optional. This will overwrite any existing metadata added to the account.

        account.members | Optional. The only roles that can be added/removed are `FINANCIAL_ADVISOR` or `AUTHORIZED_USER.` You must always specify the full members object as we do not currently support differential member updates.

        set_user_disabled | Optional. Setting this to `true` will disable the account, limiting its ability to be used within the Paxos platform.


        #### Example Requests

        #### Disabling an account


        ```json

        {

        "set_user_disabled": true,

        "account": {

        "id": "82c338f4-3cb7-4d9b-be2a-4b077c82ee3a",

        "description": "Account Description",

        "ref_id": "82c338f4-3cb7"

        }

        }

        ```


        ### Adding an account member

        To retain the existing account members and add a new account member, the `members` field must contain the existing

        account members and the new member. The below example adds an `AUTHORIZED_USER` to the account.


        In order to add account members while leaving existing account members unaffected, clients

        should use the Add Account Members API.


        ```json

        {

        "account": {

        "id": "82c338f4-3cb7-4d9b-be2a-4b077c82ee3a",

        "members": [{

        "identity_id": "0f5d8475-33f3-4ebd-88a0-66dedc2581c1",

        "roles": ["BENEFICIAL_OWNER"]

        }, {

        "identity_id": "0d26f878-298e-4d47-81be-cdf4e982a3d3",

        "roles": ["FINANCIAL_ADVISOR"]

        }, {

        "identity_id": "012k23eb-298e-4d47-81be-cdf4e982a3d3",

        "roles": ["AUTHORIZED_USER"]

        }]

        }

        }

        ```


        ### Removing an account member

        To remove an existing account member and retain other needed members, the `members` field must contain

        the existing account members without the account member you''d like to remove. The below example removes an `AUTHORIZED_USER` from the account.


        Note, this API requires the `members` array to have at least one element. In order to delete all members

        from an account, clients should use the Delete Account Member API.


        ```json

        {

        "account": {

        "id": "82c338f4-3cb7-4d9b-be2a-4b077c82ee3a",

        "members": [{

        "identity_id": "0f5d8475-33f3-4ebd-88a0-66dedc2581c1",

        "roles": ["BENEFICIAL_OWNER"]

        }]

        }

        }

        ```


        ### Updating an account members'' roles

        To update an account members'' roles, the `members` field must contain all the existing members with their roles along

        with the additional role that you''d like to add or remove. The below example adds the `FINANCIAL_ADVISOR` role to an member that is already a `BENEFICIAL_OWNER`.


        ```json

        {

        "account": {

        "id": "82c338f4-3cb7-4d9b-be2a-4b077c82ee3a",

        "members": [{

        "identity_id": "0f5d8475-33f3-4ebd-88a0-66dedc2581c1",

        "roles": ["BENEFICIAL_OWNER", "FINANCIAL_ADVISOR"]

        }]

        }

        }

        ```'
      operationId: UpdateAccount
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
              example:
                created_at: '2014-02-20T04:22:22.222221Z'
                id: 79c27a0e-46a2-4276-9769-e1ebc055fa72
                identity_id: 0acd56b7-140b-4b29-83e4-7e717f03afd9
                members:
                - identity_id: 11a3122a-0c50-4950-9934-2ad48a782b78
                  roles:
                  - FINANCIAL_ADVISOR
                - identity_id: 08ba6b70-bcc0-4e4a-a67f-1d28842dedfc
                  roles:
                  - AUTHORIZED_USER
                - identity_id: 2dedfc70-a67f-4e4a-bcc0-1d288408ba6b
                  roles:
                  - BENEFICIAL_OWNER
                summary_status: PENDING
                updated_at: '2022-02-24T04:20:22.222222Z'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAccountRequest'
            example:
              account:
                id: 79c27a0e-46a2-4276-9769-e1ebc055fa72
                members:
                - identity_id: 11a3122a-0c50-4950-9934-2ad48a782b78
                  roles:
                  - FINANCIAL_ADVISOR
                - identity_id: 08ba6b70-bcc0-4e4a-a67f-1d28842dedfc
                  roles:
                  - AUTHORIZED_USER
                - identity_id: 2dedfc70-a67f-4e4a-bcc0-1d288408ba6b
                  roles:
                  - BENEFICIAL_OWNER
        required: true
      tags:
      - Accounts
      security:
      - OAuth2:
        - identity:write_account
  /identity/accounts/{id}:
    get:
      operationId: GetAccount
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
      parameters:
      - name: id
        description: uuid id of account
        in: path
        required: true
        schema:
          type: string
      tags:
      - Accounts
      security:
      - OAuth2:
        - identity:read_account
      summary: Get account
      x-summary-source: derived
components:
  schemas:
    ListAccountsResponse:
      type: object
      properties:
        next_page_cursor:
          type: string
          description: Cursor token required for fetching the next page.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Account'
          description: The result list of accounts.
    AccountMember:
      type: object
      properties:
        identity_id:
          type: string
        type:
          $ref: '#/components/schemas/AccountMemberAccountRoleType'
        roles:
          type: array
          items:
            $ref: '#/components/schemas/AccountMemberAccountRoleType'
        id:
          type: string
          description: 'Account member ID. Note: This field is auto-generated. Specifying an ID when creating an account member is a client error.'
      required:
      - identity_id
    CreateAccountRequest:
      type: object
      properties:
        account:
          $ref: '#/components/schemas/Account'
        create_profile:
          type: boolean
          description: 'Create a new profile for this account.

            Set to `true` to track user balances at the Profile level for this account.

            See also [Profiles](#tag/Profiles).'
      required:
      - account
      example:
        account:
          identity_id: 82c338f4-3cb7-4d9b-be2a-4b077c82ee3a
          ref_id: fec36070-4c23-48ac-9ee1-df338b8233fc
          description: Individual account for John Doe
          metadata:
            custom_field: custom_value
    AccountAccountType:
      type: string
      enum:
      - BROKERAGE
      - TRADITIONAL_IRA
      - ROTH_IRA
      - SEP_IRA
      - FINANCIAL_ADVISOR
    UpdateAccountRequest:
      type: object
      properties:
        account:
          $ref: '#/components/schemas/Account'
        set_user_disabled:
          type: boolean
          description: true if the account is required to be disabled by the API user.
      required:
      - account
    AccountMemberAccountRoleType:
      type: string
      enum:
      - BENEFICIAL_OWNER
      - AUTHORIZED_USER
      - FINANCIAL_ADVISOR
    IdentityStatus:
      type: string
      enum:
      - PENDING
      - ERROR
      - APPROVED
      - DENIED
      - DISABLED
      title: ''
    Account:
      type: object
      properties:
        id:
          type: string
          description: The id used for all other interactions with this account. Required on update. Auto-generated on create; do not set.
        identity_id:
          type: string
          description: The primary identity associated with the account. Required on create. Not writable on update.
        description:
          type: string
          description: A free-text description of the account.
        admin_disabled:
          type: boolean
          description: true if the account has been disabled by a Paxos admin.
        user_disabled:
          type: boolean
          description: true if the account has been disabled by the API user.
        metadata:
          type: object
          additionalProperties:
            type: string
          description: API User-facing metadata.
        ref_id:
          type: string
          description: A user-facing ID to prevent duplicate account creation. Unique for all accounts created by the same API user.
        members:
          type: array
          items:
            $ref: '#/components/schemas/AccountMember'
          description: Additional Identities with varying types of access to this account.
        created_at:
          type: string
          format: date-time
          description: The time this account was created.
        summary_status:
          $ref: '#/components/schemas/IdentityStatus'
        updated_at:
          type: string
          format: date-time
          description: The time this account was updated.
        profile_id:
          type: string
          description: 'The ID of the profile created for the account when `create_profile=true`.

            The [Profile](#tag/Profiles) type is `NORMAL`.

            The field is omitted when the account has no associated [Profile](#tag/Profiles).'
        type:
          $ref: '#/components/schemas/AccountAccountType'
  securitySchemes:
    OAuth2:
      type: oauth2
      description: 'Paxos APIs use [OAuth 2](https://tools.ietf.org/html/rfc6749) with the [client credentials](https://tools.ietf.org/html/rfc6749#section-4.4) grant flow.


        **Token URLs:**

        - Production: https://oauth.paxos.com/oauth2/token

        - Sandbox: https://oauth.sandbox.paxos.com/oauth2/token


        Learn more in the [API credentials guide →](https://docs.paxos.com/developer/credentials)

        '
      flows:
        clientCredentials:
          tokenUrl: https://oauth.paxos.com/oauth2/token
          scopes:
            conversion:read_conversion_stablecoin: Retrieve stablecoin conversion details
            conversion:write_conversion_stablecoin: Create or cancel a stablecoin conversion
            exchange:historical_prices: Retrieve marketnaverage prices at a certain time increment
            exchange:read_order: Retrieve order or order execution details
            exchange:read_quote: Retrieve quote details for buying or selling an asset
            exchange:read_quote_execution: Retrieve quote execution details
            exchange:write_quote_execution: Create a quote execution for buying or selling an asset
            exchange:write_order: Create or cancel an order for buying or selling an asset
            fee:write_crypto_withdrawal_fee: Create a guaranteed fee for crypto withdrawal
            funding:read_bank_balance: Retrieve Paxos dedicated bank account balance
            funding:read_profile: Retrieve Profile details and deposit funds in Sandbox
            funding:write_profile: Create a Profile
            identity:read_account: Retrieve Account details
            identity:read_identity: Retrieve Identity details or documents
            identity:write_account: Create or update Account and Account Members
            identity:write_identity: Create or update Identity details and set Sandbox Identify Status
            settlement:read_transaction: Retrieve settlement transaction details
            settlement:write_transaction: Create, affirm or cancel a settlement transaction
            tax:read_tax_form: Retrieve tax details
            tax:read_tax_lot: Retrieve tax lot details
            tax:write_tax_lot: Update the given tax-lot ID
            transfer:read_deposit_address: Retrieve deposit address details
            transfer:read_fiat_account: Retrieve Fiat Account details
            transfer:read_fiat_deposit_instructions: Retrieve fiat deposit instruction details
            transfer:read_transfer: Retrieve transfer details
            transfer:read_transfer_limit: Retrieve limits for the given transaction type
            transfer:reject_crypto_deposit: Reject a crypto deposit (travel rule)
            transfer:update_crypto_deposit: Provide required travel-rule details
            transfer:write_crypto_withdrawal: Withdraw asset to a specified destination address
            transfer:write_deposit_address: Create an deposit address on a blockchain network
            transfer:write_fiat_account: Create, update or delete a Fiat Account
            transfer:write_fiat_deposit_instructions: Create, update or delete fiat deposit instructions
            transfer:write_internal_transfer: Transfer assets between two Profiles
            transfer:write_sandbox_fiat_deposit: Initiate a test fiat deposit in the Sandbox environment
            transfer:write_fiat_withdrawal: Withdraw fiat to the given destination
            events:read_event: Retrieve events
x-tagGroups:
- name: Deposits and Withdrawals
  tags:
  - Transfers
  - Fiat Transfers
  - Deposit Addresses
  - Crypto Deposits
  - Crypto Withdrawals
  - Fees
  - Internal Transfers
  - Paxos Transfers
  - Limits
- name: Identity
  tags:
  - Identity
  - Institution Members
  - Accounts
  - Account Members
  - Identity Documents
- name: API Credentials
  tags:
  - API Credentials
- name: Profiles
  tags:
  - Profiles
- name: Sandbox
  tags:
  - Sandbox Deposits
  - Sandbox Identity
  - Sandbox Fiat Transfers
- name: Settlements
  tags:
  - Settlement
- name: Stablecoin Conversion
  tags:
  - Stablecoin Conversion
- name: Taxes
  tags:
  - Tax Forms
- name: Trading
  tags:
  - Market Data
  - Orders
  - Quotes
  - Quote Executions
  - Pricing
  - Issuer Quotes
- name: Rewards
  tags:
  - Monitoring Addresses
  - Statements
  - Payments
- name: Rewards (Alpha)
  tags:
  - Reward Addresses
  - Claims
  - Payout Groups
  - Rewards
- name: Events
  tags:
  - Events
  - Event Types
  - Event Objects