{
  "openapi": "3.1.0",
  "info": {
    "version": "0.1.0",
    "title": "Core 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": "Authentication",
      "description": "Authentication."
    },
    {
      "name": "Countries",
      "description": "Countries."
    },
    {
      "name": "Users",
      "description": "Users."
    },
    {
      "name": "KYC",
      "description": "Individual User's KYC."
    },
    {
      "name": "KYB",
      "description": "Business User's KYB."
    },
    {
      "name": "Capabilities",
      "description": "User capabilities."
    },
    {
      "name": "Terms of service",
      "description": "User terms of service."
    },
    {
      "name": "Files",
      "description": "Files."
    },
    {
      "name": "Assets",
      "description": "Assets, networks and rails."
    },
    {
      "name": "Accounts",
      "description": "Accounts."
    },
    {
      "name": "External accounts",
      "description": "External accounts."
    },
    {
      "name": "Transactions",
      "description": "Transactions."
    },
    {
      "name": "Portfolio",
      "description": "Portfolio."
    },
    {
      "name": "Metadata",
      "description": "Metadata."
    },
    {
      "name": "Webhooks",
      "description": "Webhooks."
    }
  ],
  "paths": {
    "/core/oauth2/token": {
      "post": {
        "operationId": "core.create-oauth2-token",
        "summary": "Request OAuth2 token",
        "description": "Request an access token using OAuth2 protocol.",
        "tags": [
          "Authentication"
        ],
        "security": [],
        "parameters": [
          {
            "$ref": "#/components/parameters/create-oauth2-token-authorization"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-oauth2-token-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/create-oauth2-token-response"
          },
          "400": {
            "$ref": "#/components/responses/create-oauth2-token-bad-request-response"
          },
          "401": {
            "$ref": "#/components/responses/create-oauth2-token-unauthorized-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/countries": {
      "get": {
        "operationId": "core.list-countries",
        "summary": "List countries",
        "description": "List countries supported by the platform.",
        "tags": [
          "Countries"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$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-countries-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/countries/{country}": {
      "get": {
        "operationId": "core.get-country",
        "summary": "Get country",
        "description": "Retrieve a country by code.",
        "tags": [
          "Countries"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/country-code"
          },
          {
            "$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-country-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/get-country-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/users": {
      "post": {
        "operationId": "core.create-user",
        "summary": "Create user",
        "description": "Create a new user.",
        "tags": [
          "Users"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.users:create"
            ]
          }
        ],
        "parameters": [
          {
            "$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-user-request-body"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/create-user-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/create-user-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/users/me": {
      "get": {
        "operationId": "core.get-user",
        "summary": "Get user",
        "description": "Retrieve an existing user.",
        "tags": [
          "Users"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.users:read"
            ]
          }
        ],
        "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"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/get-user-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "delete": {
        "operationId": "core.delete-user",
        "summary": "Delete user",
        "description": "Delete an existing user.",
        "tags": [
          "Users"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.users:delete"
            ]
          }
        ],
        "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/delete-user-request-body"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/delete-user-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/delete-user-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc": {
      "get": {
        "operationId": "core.get-kyc-overview",
        "summary": "Get overview",
        "description": "Get the KYC overview of a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/get-kyc-overview-detailed"
          },
          {
            "$ref": "#/components/parameters/accept-language"
          },
          {
            "$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-kyc-overview-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/get-kyc-overview-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/profile": {
      "patch": {
        "operationId": "core.update-kyc-profile",
        "summary": "Update profile",
        "description": "Update the profile process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.profile:update"
            ]
          }
        ],
        "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/update-kyc-profile-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-profile-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-profile-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/address": {
      "patch": {
        "operationId": "core.update-kyc-address",
        "summary": "Update address",
        "description": "Update the address process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.address:update"
            ]
          }
        ],
        "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/update-kyc-address-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-address-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-address-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/email": {
      "patch": {
        "operationId": "core.update-kyc-email",
        "summary": "Update email",
        "description": "Update the email process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.email:update"
            ]
          }
        ],
        "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/update-kyc-email-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-email-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-email-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/phone": {
      "patch": {
        "operationId": "core.update-kyc-phone",
        "summary": "Update phone",
        "description": "Update the phone process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.phone:update"
            ]
          }
        ],
        "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/update-kyc-phone-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-phone-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-phone-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/identity": {
      "patch": {
        "operationId": "core.update-kyc-identity",
        "summary": "Update identity",
        "description": "Update the identity process for a user.",
        "tags": [
          "KYC"
        ],
        "security": [
          {
            "OAuth2": [
              "core.kyc.identity:update"
            ]
          }
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ],
              "includeClient": true,
              "includeClientOwner": true
            }
          }
        },
        "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/update-kyc-identity-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-identity-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-kyc-identity-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-identity-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/proof-of-address": {
      "patch": {
        "operationId": "core.update-kyc-proof-of-address",
        "summary": "Update proof-of-address",
        "description": "Update the proof-of-address process for a user.",
        "tags": [
          "KYC"
        ],
        "security": [
          {
            "OAuth2": [
              "core.kyc.proof-of-address:update"
            ]
          }
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ],
              "includeClient": true,
              "includeClientOwner": true
            }
          }
        },
        "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/update-kyc-proof-of-address-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-proof-of-address-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-kyc-proof-of-address-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-proof-of-address-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/customer-due-diligence": {
      "patch": {
        "operationId": "core.update-kyc-customer-due-diligence",
        "summary": "Update customer due diligence",
        "description": "Update the customer due diligence process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.customer-due-diligence:update"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/accept-language"
          },
          {
            "$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-kyc-customer-due-diligence-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-customer-due-diligence-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-kyc-customer-due-diligence-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-customer-due-diligence-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/enhanced-due-diligence": {
      "patch": {
        "operationId": "core.update-kyc-enhanced-due-diligence",
        "summary": "Update enhanced due diligence",
        "description": "Update the enhanced due diligence process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.enhanced-due-diligence:update"
            ]
          }
        ],
        "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/update-kyc-enhanced-due-diligence-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-enhanced-due-diligence-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-kyc-enhanced-due-diligence-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-enhanced-due-diligence-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/crypto-risk-assessment": {
      "patch": {
        "operationId": "core.update-kyc-crypto-risk-assessment",
        "summary": "Update crypto risk assessment",
        "description": "Update the crypto risk assessment process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.crypto-risk-assessment:update"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/accept-language"
          },
          {
            "$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-kyc-crypto-risk-assessment-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-crypto-risk-assessment-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-kyc-crypto-risk-assessment-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-crypto-risk-assessment-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/self-categorization-statement": {
      "patch": {
        "operationId": "core.update-kyc-self-categorization-statement",
        "summary": "Update self-categorization statement",
        "description": "Update the self-categorization statement process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.self-categorization-statement:update"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/accept-language"
          },
          {
            "$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-kyc-self-categorization-statement-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-self-categorization-statement-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-kyc-self-categorization-statement-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-self-categorization-statement-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/kyc/processes/tax-details": {
      "patch": {
        "operationId": "core.update-kyc-tax-details",
        "summary": "Update tax details",
        "description": "Update the tax details process for a user.",
        "tags": [
          "KYC"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.kyc.tax-details:update"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/x-on-behalf-of"
          },
          {
            "$ref": "#/components/parameters/accept-language"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-kyc-tax-details-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-kyc-tax-details-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/update-kyc-tax-details-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/capabilities": {
      "get": {
        "operationId": "core.list-capabilities",
        "summary": "List capabilities",
        "description": "List user capabilities.",
        "tags": [
          "Capabilities"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual",
                "user:business"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.capabilities:read"
            ]
          }
        ],
        "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"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/list-capabilities-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/capabilities/{capability}": {
      "get": {
        "operationId": "core.get-capability",
        "summary": "Get capability",
        "description": "Retrieve a user capability by code.",
        "tags": [
          "Capabilities"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual",
                "user:business"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.capabilities:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/capability-code"
          },
          {
            "$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-capability-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/terms-of-service": {
      "get": {
        "operationId": "core.list-terms-of-service",
        "summary": "List terms of service",
        "description": "List terms of service of the platform.",
        "tags": [
          "Terms of service"
        ],
        "security": [
          {
            "OAuth2": [
              "core.terms-of-service:read"
            ]
          }
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/list-terms-of-service-type-filter"
          },
          {
            "$ref": "#/components/parameters/list-terms-of-service-country-code-filter"
          },
          {
            "$ref": "#/components/parameters/list-terms-of-service-user-type-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-terms-of-service-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/terms-of-service/{termsOfService}": {
      "get": {
        "operationId": "core.get-terms-of-service",
        "summary": "Get terms of service",
        "description": "Retrieve terms of service by code.",
        "tags": [
          "Terms of service"
        ],
        "security": [
          {
            "OAuth2": [
              "core.terms-of-service:read"
            ]
          }
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/terms-of-service-code"
          },
          {
            "$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-terms-of-service-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/terms-of-service/{termsOfService}/accept": {
      "post": {
        "operationId": "core.accept-terms-of-service",
        "summary": "Accept terms of service",
        "description": "Accept terms of service by code.",
        "tags": [
          "Terms of service"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.terms-of-service:accept"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/terms-of-service-code-excluding-general"
          },
          {
            "$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": {
          "201": {
            "$ref": "#/components/responses/accept-terms-of-service-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/accept-terms-of-service-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/files": {
      "post": {
        "operationId": "core.create-file",
        "summary": "Create file",
        "description": "Create a new file.",
        "tags": [
          "Files"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.files: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-file-request-body"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/create-file-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/create-file-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/files/{fileId}": {
      "get": {
        "operationId": "core.get-file",
        "summary": "Get file",
        "description": "Retrieve an existing file by id.",
        "tags": [
          "Files"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.files:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/file-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-file-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-file-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/files/settings": {
      "get": {
        "operationId": "core.list-files-settings",
        "summary": "List files settings",
        "description": "List files upload settings.",
        "tags": [
          "Files"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.files:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/list-files-settings-file-category-filter"
          },
          {
            "$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-files-settings-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/assets": {
      "get": {
        "operationId": "core.list-assets",
        "summary": "List assets",
        "description": "List assets supported by the platform.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/list-assets-type-filter"
          },
          {
            "$ref": "#/components/parameters/list-assets-sort"
          },
          {
            "$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-assets-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/assets/_mget": {
      "post": {
        "operationId": "core.get-many-assets",
        "summary": "Get many assets",
        "description": "Retrieve several assets by their codes.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "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/get-many-assets-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/get-many-assets-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/assets/{asset}": {
      "get": {
        "operationId": "core.get-asset",
        "summary": "Get asset",
        "description": "Retrieve an asset by code.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/asset-code"
          },
          {
            "$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-asset-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/get-asset-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/assets/{asset}/rates": {
      "get": {
        "operationId": "core.get-asset-rates",
        "summary": "Get asset rates",
        "description": "Retrieve asset rates against other assets.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/asset-code"
          },
          {
            "$ref": "#/components/parameters/get-asset-rates-denomination-filter"
          },
          {
            "$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-asset-rates-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/get-asset-rates-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-asset-rates-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/assets/{asset}/historical-rates": {
      "get": {
        "operationId": "core.get-asset-historical-rates",
        "summary": "Get asset historical rates",
        "description": "Retrieve historical rates for a specific asset.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/asset-code"
          },
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/asset-historical-rates-interval"
          },
          {
            "$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-asset-historical-rate-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/get-asset-historical-rate-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-asset-historical-rate-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/networks": {
      "get": {
        "operationId": "core.list-networks",
        "summary": "List networks",
        "description": "List networks supported by the platform.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/list-networks-type-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-networks-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/networks/{network}": {
      "get": {
        "operationId": "core.get-network",
        "summary": "Get network",
        "description": "Retrieve a network by code.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/network-code"
          },
          {
            "$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-network-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/get-network-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/networks/{network}/validate-address": {
      "post": {
        "operationId": "core.validate-network-address",
        "summary": "Validate network address",
        "description": "Validate an address for a specific network.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/network-code"
          },
          {
            "$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/validate-network-address-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/validate-network-address-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/validate-network-address-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/validate-network-address-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/rails": {
      "get": {
        "operationId": "core.list-rails",
        "summary": "List rails",
        "description": "List rails supported by the platform.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "client",
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/list-rails-type-filter"
          },
          {
            "$ref": "#/components/parameters/list-rails-network-code-filter"
          },
          {
            "$ref": "#/components/parameters/list-rails-method-filter"
          },
          {
            "$ref": "#/components/parameters/list-rails-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-rails-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/assets/test-helpers/skip-assets-cooldowns": {
      "put": {
        "operationId": "core.skip-assets-cooldowns",
        "summary": "Skip assets cooldowns",
        "description": "Skips assets cooldowns for testing purposes.",
        "tags": [
          "Assets"
        ],
        "x-uphold": {
          "operation": {
            "notImplementedIn": [
              "production"
            ]
          },
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual",
                "user:business"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.assets:use-test-helpers"
            ]
          }
        ],
        "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"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/skip-assets-cooldowns-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/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/external-accounts": {
      "post": {
        "operationId": "core.create-external-account",
        "summary": "Create external account",
        "description": "Create an external account for the user.",
        "tags": [
          "External accounts"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.external-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-external-account-request-body"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/create-external-account-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/create-external-account-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/create-external-account-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "get": {
        "operationId": "core.list-external-accounts",
        "summary": "List external accounts",
        "description": "List external accounts for the user.",
        "tags": [
          "External accounts"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.external-accounts:read"
            ]
          }
        ],
        "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"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/list-external-accounts-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/external-accounts/{externalAccountId}": {
      "get": {
        "operationId": "core.get-external-account",
        "summary": "Get external account",
        "description": "Retrieve an existing external account by id.",
        "tags": [
          "External accounts"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.external-accounts:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/external-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-external-account-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-external-account-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "patch": {
        "operationId": "core.update-external-account",
        "summary": "Update external account",
        "description": "Update an existing external account.",
        "tags": [
          "External accounts"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.external-accounts:update"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/external-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-external-account-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-external-account-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-external-account-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "delete": {
        "operationId": "core.delete-external-account",
        "summary": "Delete external account",
        "description": "Delete an existing external account.",
        "tags": [
          "External accounts"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.external-accounts:delete"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/external-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/delete-external-account-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/delete-external-account-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/transactions/quote": {
      "post": {
        "operationId": "core.create-quote",
        "summary": "Create quote",
        "description": "Create a quote for a transaction.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.transactions: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-quote-request-body"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/create-quote-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/create-quote-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/create-quote-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/accounts/{accountId}/transactions": {
      "get": {
        "operationId": "core.list-account-transactions",
        "summary": "List account transactions",
        "description": "List transactions for an account.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.accounts:read",
              "core.transactions:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/account-id"
          },
          {
            "$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-account-transactions-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/list-account-transactions-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/transactions": {
      "get": {
        "operationId": "core.list-transactions",
        "summary": "List transactions",
        "description": "List transactions associated with a user.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.transactions:read"
            ]
          }
        ],
        "parameters": [
          {
            "$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-transactions-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "post": {
        "operationId": "core.create-transaction",
        "summary": "Create transaction",
        "description": "Create transaction from a quote.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.transactions: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-transaction-request-body"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/create-transaction-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/create-transaction-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/create-transaction-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/transactions/{transactionId}": {
      "get": {
        "operationId": "core.get-transaction",
        "summary": "Get transaction",
        "description": "Retrieve an existing transaction by id.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.transactions:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/transaction-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-transaction-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-transaction-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/transactions/{transactionId}/requests-for-information": {
      "get": {
        "operationId": "core.list-transaction-requests-for-information",
        "summary": "List requests for information",
        "description": "List requests for information associated with a transaction.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.transactions.requests-for-information:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/transaction-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/list-transaction-requests-for-information-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/transaction-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/transactions/{transactionId}/requests-for-information/{requestForInformationId}": {
      "get": {
        "operationId": "core.get-transaction-request-for-information",
        "summary": "Get request for information",
        "description": "Retrieve a request for information associated with a transaction.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.transactions.requests-for-information:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/transaction-id"
          },
          {
            "$ref": "#/components/parameters/request-for-information-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-transaction-request-for-information-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-transaction-request-for-information-not-found-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "put": {
        "operationId": "core.update-transaction-request-for-information",
        "summary": "Update request for information",
        "description": "Update a request for information associated with a transaction.",
        "tags": [
          "Transactions"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.transactions.requests-for-information:update"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/transaction-id"
          },
          {
            "$ref": "#/components/parameters/request-for-information-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-transaction-request-for-information-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-transaction-request-for-information-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/update-transaction-request-for-information-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/update-transaction-request-for-information-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio": {
      "get": {
        "operationId": "core.get-portfolio-overview",
        "summary": "Get overview",
        "description": "Retrieves an overview of the portfolio, including the total portfolio value and a breakdown of individual holdings.",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-include-base"
          },
          {
            "$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-portfolio-overview-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-overview-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-overview-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/performance": {
      "get": {
        "operationId": "core.get-portfolio-performance",
        "summary": "Get performance",
        "description": "Retrieves the performance of the portfolio, including the average cost, total invested, and unrealized gains (gains and losses).",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-performance-interval"
          },
          {
            "$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-portfolio-performance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-performance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-performance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/historical-balance": {
      "get": {
        "operationId": "core.get-portfolio-historical-balance",
        "summary": "Get historical balance",
        "description": "Retrieves the historical balance of the portfolio, including the total and available balance over time.",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-historical-balance-interval"
          },
          {
            "$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-portfolio-historical-balance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-historical-balance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-historical-balance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/assets/{asset}/performance": {
      "get": {
        "operationId": "core.get-portfolio-asset-performance",
        "summary": "Get asset performance",
        "description": "Retrieves the performance of an asset in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses).",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/asset-code"
          },
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-performance-interval"
          },
          {
            "$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-portfolio-asset-performance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-asset-performance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-asset-performance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/assets/_mget/performance": {
      "post": {
        "operationId": "core.get-portfolio-many-assets-performance",
        "summary": "Get many assets performance",
        "description": "Retrieves the performance of multiple assets in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses) for each asset.",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-performance-interval"
          },
          {
            "$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/get-portfolio-many-assets-performance-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/get-portfolio-many-assets-performance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-many-assets-performance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-many-assets-performance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/assets/{asset}/historical-balance": {
      "get": {
        "operationId": "core.get-portfolio-asset-historical-balance",
        "summary": "Get asset historical balance",
        "description": "Retrieves the historical balance of a specific asset in the portfolio, including the total and available balance over time.",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/asset-code"
          },
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-historical-balance-interval"
          },
          {
            "$ref": "#/components/parameters/portfolio-include-base"
          },
          {
            "$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-portfolio-asset-historical-balance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-asset-historical-balance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-asset-historical-balance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/accounts/{accountId}/performance": {
      "get": {
        "operationId": "core.get-portfolio-account-performance",
        "summary": "Get account performance",
        "description": "Retrieves the performance of an account in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses).",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/account-id"
          },
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-performance-interval"
          },
          {
            "$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-portfolio-account-performance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-account-performance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-account-performance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/accounts/_mget/performance": {
      "post": {
        "operationId": "core.get-portfolio-many-accounts-performance",
        "summary": "Get many accounts performance",
        "description": "Retrieves the performance of multiple accounts in the portfolio, including the average cost, total invested, and unrealized gains (gains and losses) for each account.",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-performance-interval"
          },
          {
            "$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/get-many-accounts-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/get-portfolio-many-accounts-performance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-many-accounts-performance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-many-accounts-performance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/portfolio/accounts/{accountId}/historical-balance": {
      "get": {
        "operationId": "core.get-portfolio-account-historical-balance",
        "summary": "Get account historical balance",
        "description": "Retrieves the historical balance of a specific account, including the total and available balance over time.",
        "tags": [
          "Portfolio"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.portfolio:read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/account-id"
          },
          {
            "$ref": "#/components/parameters/denomination"
          },
          {
            "$ref": "#/components/parameters/portfolio-historical-balance-interval"
          },
          {
            "$ref": "#/components/parameters/portfolio-include-base"
          },
          {
            "$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-portfolio-account-historical-balance-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/get-portfolio-account-historical-balance-not-found-response"
          },
          "409": {
            "$ref": "#/components/responses/get-portfolio-account-historical-balance-conflict-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/{entity}/{entityId}/metadata": {
      "get": {
        "operationId": "core.get-metadata",
        "summary": "Get metadata",
        "description": "Retrieve metadata for a given entity.",
        "tags": [
          "Metadata"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/metadata-entity"
          },
          {
            "$ref": "#/components/parameters/metadata-entity-id"
          },
          {
            "$ref": "#/components/parameters/metadata-if-none-match"
          },
          {
            "$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-metadata-response"
          },
          "304": {
            "$ref": "#/components/responses/get-metadata-not-modified-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/metadata-not-found"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "put": {
        "operationId": "core.set-metadata",
        "summary": "Set metadata",
        "description": "Create or update metadata for a given entity.",
        "tags": [
          "Metadata"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/metadata-entity"
          },
          {
            "$ref": "#/components/parameters/metadata-entity-id"
          },
          {
            "$ref": "#/components/parameters/metadata-if-match"
          },
          {
            "$ref": "#/components/parameters/metadata-if-none-match-any"
          },
          {
            "$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/set-metadata-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/set-metadata-replaced-response"
          },
          "201": {
            "$ref": "#/components/responses/set-metadata-created-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/metadata-not-found"
          },
          "409": {
            "$ref": "#/components/responses/set-metadata-conflict-response"
          },
          "412": {
            "$ref": "#/components/responses/metadata-precondition-failed"
          },
          "413": {
            "$ref": "#/components/responses/metadata-payload-too-large"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "patch": {
        "operationId": "core.update-metadata",
        "summary": "Update metadata",
        "description": "Update existing metadata for a given entity.",
        "tags": [
          "Metadata"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/metadata-entity"
          },
          {
            "$ref": "#/components/parameters/metadata-entity-id"
          },
          {
            "$ref": "#/components/parameters/metadata-if-match"
          },
          {
            "$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-metadata-request-body"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/update-metadata-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/metadata-not-found"
          },
          "412": {
            "$ref": "#/components/responses/metadata-precondition-failed"
          },
          "413": {
            "$ref": "#/components/responses/metadata-payload-too-large"
          },
          "422": {
            "$ref": "#/components/responses/update-metadata-unprocessable-entity-response"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      },
      "delete": {
        "operationId": "core.delete-metadata",
        "summary": "Delete metadata",
        "description": "Delete metadata for a given entity.",
        "tags": [
          "Metadata"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "subjects": [
                "user:business",
                "user:individual"
              ]
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/metadata-entity"
          },
          {
            "$ref": "#/components/parameters/metadata-entity-id"
          },
          {
            "$ref": "#/components/parameters/metadata-if-match"
          },
          {
            "$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/delete-metadata-response"
          },
          "400": {
            "$ref": "#/components/responses/bad-request"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "$ref": "#/components/responses/metadata-not-found"
          },
          "412": {
            "$ref": "#/components/responses/metadata-precondition-failed"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    },
    "/core/webhooks/management-link": {
      "post": {
        "operationId": "core.create-webhook-management-link",
        "summary": "Request webhook management link",
        "description": "Request a webhook management link to configure webhooks.",
        "tags": [
          "Webhooks"
        ],
        "x-uphold": {
          "security": {
            "OAuth2": {
              "includeClient": true,
              "subjects": [
                "client"
              ]
            }
          }
        },
        "security": [
          {
            "OAuth2": [
              "core.webhooks:management-link"
            ]
          }
        ],
        "parameters": [
          {
            "$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": {
          "201": {
            "$ref": "#/components/responses/create-webhook-management-link-response"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "429": {
            "$ref": "#/components/responses/too-many-requests"
          }
        }
      }
    }
  },
  "webhooks": {
    "core.user.created": {
      "post": {
        "operationId": "core.user-created",
        "summary": "User created",
        "description": "A new user has been created.",
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "User created event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user-webhook-event"
              },
              "examples": {
                "Individual User Created": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.user.created",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "user": {
                        "id": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
                        "type": "individual",
                        "email": "john.doe@uphold.com",
                        "citizenshipCountry": "GB",
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN"
                        },
                        "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                        "createdAt": "2024-03-13T20:20:39.000Z",
                        "updatedAt": "2024-03-13T20:20:39.000Z"
                      }
                    }
                  }
                },
                "Business User Created": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174001",
                    "type": "core.user.created",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "user": {
                        "id": "ab34c56d-78e9-0123-4567-89abcdef0123",
                        "type": "business",
                        "email": "acme-corp@uphold.com",
                        "address": {
                          "country": "US",
                          "subdivision": "US-FL",
                          "city": "Miami",
                          "line1": "1234 Palm Tree Blvd",
                          "postalCode": "33125"
                        },
                        "createdAt": "2024-03-13T20:20:39.000Z",
                        "updatedAt": "2024-03-13T20:20:39.000Z"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.user.deleted": {
      "post": {
        "operationId": "core.user-deleted",
        "summary": "User deleted",
        "description": "A user has been deleted.",
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "User deleted event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user-webhook-event"
              },
              "examples": {
                "User Deleted": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.user.deleted",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "user": {
                        "id": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
                        "type": "individual",
                        "email": "john.doe@uphold.com",
                        "fullName": "John Doe",
                        "birthdate": "1987-01-01",
                        "citizenshipCountry": "GB",
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN",
                          "city": "Manchester",
                          "line1": "1 High Street",
                          "line2": "Northern Quarter",
                          "postalCode": "M4 1AA"
                        },
                        "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                        "createdAt": "2024-03-13T20:20:39.000Z",
                        "updatedAt": "2024-03-13T20:20:39.000Z"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.profile.status-changed": {
      "post": {
        "operationId": "core.kyc-profile-status-changed",
        "summary": "Profile Status Changed",
        "description": "The profile status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC profile status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Profile Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.profile.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.email.status-changed": {
      "post": {
        "operationId": "core.kyc-email-status-changed",
        "summary": "Email Status Changed",
        "description": "The email status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC email status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Email Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.email.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.phone.status-changed": {
      "post": {
        "operationId": "core.kyc-phone-status-changed",
        "summary": "Phone Status Changed",
        "description": "The phone status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC phone status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Phone Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.phone.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.address.status-changed": {
      "post": {
        "operationId": "core.kyc-address-status-changed",
        "summary": "Address Status Changed",
        "description": "The address status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC address status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Address Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.address.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.identity.status-changed": {
      "post": {
        "operationId": "core.kyc-identity-status-changed",
        "summary": "Identity Status Changed",
        "description": "The identity status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC identity status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Identity Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.identity.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.proof-of-address.status-changed": {
      "post": {
        "operationId": "core.kyc-proof-of-address-status-changed",
        "summary": "Proof-of-address Status Changed",
        "description": "The proof-of-address status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC proof-of-address status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Proof-of-address Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.proof-of-address.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.tax-details.status-changed": {
      "post": {
        "operationId": "core.kyc-tax-details-status-changed",
        "summary": "Tax Details Status Changed",
        "description": "The tax details status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC tax details status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Tax Details Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.tax-details.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.customer-due-diligence.status-changed": {
      "post": {
        "operationId": "core.kyc-customer-due-diligence-status-changed",
        "summary": "Customer Due Diligence Status Changed",
        "description": "The customer due diligence status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC customer due diligence status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Customer Due Diligence Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.customer-due-diligence.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.enhanced-due-diligence.status-changed": {
      "post": {
        "operationId": "core.kyc-enhanced-due-diligence-status-changed",
        "summary": "Enhanced Due Diligence Status Changed",
        "description": "The enhanced due diligence status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC enhanced due diligence status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Enhanced Due Diligence Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.enhanced-due-diligence.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.crypto-risk-assessment.status-changed": {
      "post": {
        "operationId": "core.kyc-crypto-risk-assessment-status-changed",
        "summary": "Crypto Risk Assessment Status Changed",
        "description": "The crypto risk assessment status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC crypto risk assessment status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Crypto Risk Assessment Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.crypto-risk-assessment.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.self-categorization-statement.status-changed": {
      "post": {
        "operationId": "core.kyc-self-categorization-statement-status-changed",
        "summary": "Self Categorization Statement Status Changed",
        "description": "The self categorization statement status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC self categorization statement status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Self Categorization Statement Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.self-categorization-statement.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.screening.status-changed": {
      "post": {
        "operationId": "core.kyc-screening-status-changed",
        "summary": "Screening Status Changed",
        "description": "The screening status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC screening status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Screening Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.screening.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyc.risk.status-changed": {
      "post": {
        "operationId": "core.kyc-risk-status-changed",
        "summary": "Risk Status Changed",
        "description": "The risk status has been changed.",
        "tags": [
          "KYC"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYC risk status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/kyc-webhook-event"
              },
              "examples": {
                "KYC Risk Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyc.risk.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.kyb.onboarding.status-changed": {
      "post": {
        "operationId": "core.kyb-onboarding-status-changed",
        "summary": "KYB Onboarding Status Changed",
        "description": "The KYB onboarding status has changed.",
        "tags": [
          "KYB"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "KYB onboarding status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/webhook-event"
                  },
                  {
                    "type": "object",
                    "properties": {
                      "data": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "description": "The status of the KYB onboarding process.",
                            "enum": [
                              "running",
                              "ok",
                              "failed"
                            ]
                          },
                          "userId": {
                            "type": "string",
                            "description": "The id of the user.",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "status",
                          "userId"
                        ]
                      }
                    }
                  }
                ]
              },
              "examples": {
                "KYB Onboarding Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.kyb.onboarding.status-changed",
                    "createdAt": "2021-01-01T00:00:00Z",
                    "data": {
                      "status": "ok",
                      "userId": "123e4567-e89b-12d3-a456-426614174000"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.assets.cooldown-ended": {
      "post": {
        "operationId": "core.assets-cooldown-ended",
        "summary": "Assets cooldown ended",
        "description": "The cooldown period for a set of assets has ended.",
        "tags": [
          "Assets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "Assets cooldown ended event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/assets-cooldown-webhook-event"
              },
              "examples": {
                "Assets Financial Promotions Cooldown Ended": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.assets.cooldown-ended",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "userId": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
                      "assets": [
                        "BTC",
                        "ETH"
                      ],
                      "cooldown": {
                        "rule": "financial-promotions",
                        "features": [
                          "buy",
                          "deposit"
                        ],
                        "endsAt": "2024-12-31T23:59:59.000Z"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "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."
          }
        }
      }
    },
    "core.external-account.created": {
      "post": {
        "operationId": "core.external-account-created",
        "summary": "External account created",
        "description": "An external account has been created.",
        "tags": [
          "External accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "External account created event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/external-account-webhook-event"
              },
              "examples": {
                "External Account Created": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.external-account.created",
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "data": {
                      "externalAccount": {
                        "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                        "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                        "type": "card",
                        "status": "processing",
                        "label": "My Visa Card",
                        "asset": "GBP",
                        "network": "visa",
                        "features": [],
                        "details": {
                          "last4Digits": "1519",
                          "expiryDate": {
                            "month": 12,
                            "year": 2030
                          },
                          "octSupport": "unknown"
                        },
                        "createdAt": "2024-06-01T00:00:00.000Z",
                        "updatedAt": "2024-06-01T00:00:00.000Z"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.external-account.status-changed": {
      "post": {
        "operationId": "core.external-account-status-changed",
        "summary": "External account status changed",
        "description": "The status of an external account has been changed.",
        "tags": [
          "External accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "External account status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/external-account-webhook-event"
              },
              "examples": {
                "External Account Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.external-account.status-changed",
                    "createdAt": "2024-07-16T00:00:00.000Z",
                    "data": {
                      "externalAccount": {
                        "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                        "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                        "type": "card",
                        "status": "failed",
                        "statusDetails": {
                          "reason": "card-expired"
                        },
                        "label": "My Visa Card",
                        "asset": "GBP",
                        "network": "visa",
                        "features": [
                          "deposit",
                          "withdraw"
                        ],
                        "details": {
                          "last4Digits": "1519",
                          "expiryDate": {
                            "month": 12,
                            "year": 2030
                          },
                          "octSupport": "supported"
                        },
                        "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.external-account.deleted": {
      "post": {
        "operationId": "core.external-account-deleted",
        "summary": "External account deleted",
        "description": "An external account has been deleted.",
        "tags": [
          "External accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "External account deleted event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/external-account-webhook-event"
              },
              "examples": {
                "External Account Deleted": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.external-account.deleted",
                    "createdAt": "2024-07-16T00:00:00.000Z",
                    "data": {
                      "externalAccount": {
                        "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                        "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                        "type": "card",
                        "status": "ok",
                        "label": "My Visa Card",
                        "asset": "GBP",
                        "network": "visa",
                        "features": [
                          "deposit",
                          "withdraw"
                        ],
                        "details": {
                          "type": "debit",
                          "last4Digits": "1519",
                          "expiryDate": {
                            "month": 12,
                            "year": 2030
                          },
                          "octSupport": "supported"
                        },
                        "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.transaction.created": {
      "post": {
        "operationId": "core.transaction-created",
        "summary": "Transaction created",
        "description": "A new transaction has been created.",
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "Transaction created event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/transaction-webhook-event"
              },
              "examples": {
                "Transaction Created": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.transaction.created",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "transaction": {
                        "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                        "origin": {
                          "amount": "100.00",
                          "asset": "GBP",
                          "rate": "47619.04761904762",
                          "node": {
                            "type": "account",
                            "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                            "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                          }
                        },
                        "destination": {
                          "amount": "0.0021",
                          "asset": "BTC",
                          "rate": "0.000021",
                          "node": {
                            "type": "account",
                            "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                            "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                          }
                        },
                        "denomination": {
                          "amount": "100.00",
                          "asset": "GBP",
                          "target": "origin",
                          "rate": "1"
                        },
                        "fees": [],
                        "status": "processing",
                        "quotedAt": "2024-07-24T15:02:39.000Z",
                        "createdAt": "2024-07-24T15:22:39.000Z",
                        "updatedAt": "2024-07-24T15:32:39.000Z"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    },
    "core.transaction.status-changed": {
      "post": {
        "operationId": "core.transaction-status-changed",
        "summary": "Transaction status changed",
        "description": "The transaction status has been changed.",
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/webhook-id"
          },
          {
            "$ref": "#/components/parameters/webhook-timestamp"
          },
          {
            "$ref": "#/components/parameters/webhook-signature"
          }
        ],
        "requestBody": {
          "description": "Transaction status changed event.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/transaction-webhook-event"
              },
              "examples": {
                "Transaction Status Changed": {
                  "value": {
                    "id": "123e4567-e89b-12d3-a456-426614174000",
                    "type": "core.transaction.status-changed",
                    "createdAt": "2021-01-01T00:00:00.000Z",
                    "data": {
                      "transaction": {
                        "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                        "origin": {
                          "amount": "100.00",
                          "asset": "GBP",
                          "rate": "47619.04761904762",
                          "node": {
                            "type": "account",
                            "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                            "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                          }
                        },
                        "destination": {
                          "amount": "0.0021",
                          "asset": "BTC",
                          "rate": "0.000021",
                          "node": {
                            "type": "account",
                            "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                            "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                          }
                        },
                        "denomination": {
                          "amount": "100.00",
                          "asset": "GBP",
                          "target": "origin",
                          "rate": "1"
                        },
                        "fees": [],
                        "status": "completed",
                        "quotedAt": "2024-07-24T15:02:39.000Z",
                        "createdAt": "2024-07-24T15:22:39.000Z",
                        "updatedAt": "2024-07-24T15:32:39.000Z"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully."
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth 2.0 authentication.",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/core/oauth2/token",
            "scopes": {
              "core.users:act-on-behalf-of": "Grants access to act on behalf of a user",
              "core.users:create": "Grants access to create users",
              "core.users:read": "Grants access to view users",
              "core.users:delete": "Grants access to delete users",
              "core.users.metadata:read": "Grants access to view user metadata",
              "core.users.metadata:write": "Grants access to modify user metadata",
              "core.kyc:read": "Grants access to view KYC processes",
              "core.kyc.profile:update": "Grants access to update profile KYC process",
              "core.kyc.address:update": "Grants access to update address KYC process",
              "core.kyc.email:update": "Grants access to update email KYC process",
              "core.kyc.phone:update": "Grants access to update phone KYC process",
              "core.kyc.identity:update": "Grants access to update identity KYC process",
              "core.kyc.proof-of-address:update": "Grants access to update proof-of-address KYC process",
              "core.kyc.customer-due-diligence:update": "Grants access to update customer due diligence KYC process",
              "core.kyc.enhanced-due-diligence:update": "Grants access to update enhanced due diligence KYC process",
              "core.kyc.crypto-risk-assessment:update": "Grants access to update crypto risk assessment KYC process",
              "core.kyc.self-categorization-statement:update": "Grants access to update self-categorization statement KYC process",
              "core.kyc.tax-details:update": "Grants access to update tax details KYC process",
              "core.capabilities:read": "Grants access to view user capabilities",
              "core.terms-of-service:read": "Grants access to view terms of service",
              "core.terms-of-service:accept": "Grants access to accept terms of service",
              "core.files:create": "Grants access to create files",
              "core.files:read": "Grants access to view files",
              "core.files.metadata:read": "Grants access to view files metadata",
              "core.files.metadata:write": "Grants access to modify files metadata",
              "core.accounts:create": "Grants access to create accounts",
              "core.accounts:read": "Grants access to view accounts",
              "core.accounts:update": "Grants access to update accounts",
              "core.accounts:archive": "Grants access to archive accounts",
              "core.accounts:deposit-method": "Grants access to deposit method needed for depositing into accounts",
              "core.accounts:use-test-helpers": "Grants access to test helpers of accounts",
              "core.accounts.metadata:read": "Grants access to view accounts metadata",
              "core.accounts.metadata:write": "Grants access to modify accounts metadata",
              "core.assets:use-test-helpers": "Grants access to test helpers of assets",
              "core.external-accounts:create": "Grants access to create external accounts",
              "core.external-accounts:read": "Grants access to view external accounts",
              "core.external-accounts:update": "Grants access to update external accounts",
              "core.external-accounts:delete": "Grants access to delete external accounts",
              "core.external-accounts.metadata:read": "Grants access to view external accounts metadata",
              "core.external-accounts.metadata:write": "Grants access to modify external accounts metadata",
              "core.transactions:create": "Grants access to commit quotes",
              "core.transactions:read": "Grants access to view transactions",
              "core.transactions.metadata:read": "Grants access to view transactions metadata",
              "core.transactions.metadata:write": "Grants access to modify transactions metadata",
              "core.transactions.requests-for-information:read": "Grants access to view transactions requests for information",
              "core.transactions.requests-for-information:update": "Grants access to update transactions requests for information",
              "core.portfolio:read": "Grants access to view portfolio overview, performance, and historical balance",
              "core.webhooks:management-link": "Grants access to create webhook management links"
            }
          }
        }
      }
    },
    "parameters": {
      "create-oauth2-token-authorization": {
        "name": "Authorization",
        "description": "The client ID and secret, separated by a colon and base64-encoded.",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        },
        "examples": {
          "Basic Authorization": {
            "value": "Basic aW52YWxpZDpzZWNyZXQ="
          }
        }
      },
      "x-uphold-user-ip": {
        "name": "X-Uphold-User-Ip",
        "description": "Contains the IP of the end user that is requesting the operation.",
        "in": "header",
        "schema": {
          "oneOf": [
            {
              "title": "IPv4",
              "type": "string",
              "format": "ipv4"
            },
            {
              "title": "IPv6",
              "type": "string",
              "format": "ipv6"
            }
          ]
        },
        "examples": {
          "User Ip": {
            "value": "47.174.97.164"
          }
        }
      },
      "x-uphold-user-agent": {
        "name": "X-Uphold-User-Agent",
        "description": "Contains the user agent of the end user that is requesting the operation.",
        "in": "header",
        "schema": {
          "$ref": "#/components/schemas/string-no-edge-spaces"
        },
        "examples": {
          "User Agent": {
            "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
          }
        }
      },
      "x-uphold-user-origin": {
        "name": "X-Uphold-User-Origin",
        "description": "Contains the origin of the request made by the end user.",
        "in": "header",
        "schema": {
          "$ref": "#/components/schemas/string-no-edge-spaces"
        },
        "examples": {
          "Origin": {
            "value": "https://uphold.com"
          }
        }
      },
      "x-uphold-user-country": {
        "name": "X-Uphold-User-Country",
        "description": "Contains the code of the country of the end user that is requesting the operation.",
        "in": "header",
        "schema": {
          "$ref": "#/components/schemas/country-code-for-request"
        },
        "examples": {
          "User Country": {
            "value": "US"
          }
        }
      },
      "x-uphold-user-subdivision": {
        "name": "X-Uphold-User-Subdivision",
        "description": "Contains the code of the subdivision of the end user that is requesting the operation.",
        "in": "header",
        "schema": {
          "$ref": "#/components/schemas/subdivision-code-for-request"
        },
        "examples": {
          "User Subdivision": {
            "value": "US-CA"
          }
        }
      },
      "x-uphold-user-city": {
        "name": "X-Uphold-User-City",
        "description": "Contains the name of the city of the end user that is requesting the operation.",
        "in": "header",
        "schema": {
          "$ref": "#/components/schemas/string-no-edge-spaces"
        },
        "examples": {
          "User City": {
            "value": "San Francisco"
          }
        }
      },
      "country-code": {
        "name": "country",
        "description": "The unique code of the country.",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/country-code-for-request"
        },
        "examples": {
          "United Kingdom": {
            "value": "GB"
          }
        }
      },
      "x-on-behalf-of": {
        "name": "X-On-Behalf-Of",
        "description": "The subject on whose behalf the operation is being performed.",
        "in": "header",
        "schema": {
          "type": "string",
          "pattern": "^(user|client)\\s[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$"
        },
        "examples": {
          "User Identifier": {
            "value": "user cd21b26d-35d2-408a-9201-b8fdbef7a604"
          },
          "Client Identifier": {
            "value": "client 3fa85f64-5717-4562-b3fc-2c963f66afa6"
          }
        }
      },
      "get-kyc-overview-detailed": {
        "name": "detailed",
        "in": "query",
        "description": "Include detailed information about the specified KYC processes. Use this sparingly as its more expensive to retrieve.",
        "explode": false,
        "schema": {
          "type": "array",
          "maxItems": 20,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "profile",
              "address",
              "email",
              "phone",
              "identity",
              "proofOfAddress",
              "customerDueDiligence",
              "enhancedDueDiligence",
              "cryptoRiskAssessment",
              "selfCategorizationStatement",
              "taxDetails",
              "screening",
              "risk"
            ]
          }
        },
        "examples": {
          "Detailed KYC Processes": {
            "value": [
              "identity",
              "proofOfAddress"
            ]
          }
        }
      },
      "accept-language": {
        "name": "Accept-Language",
        "description": "The natural language and locale that the client prefers.",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "examples": {
          "English (UK)": {
            "value": "en-GB"
          }
        }
      },
      "capability-code": {
        "name": "capability",
        "description": "The capability code.",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/capability-code"
        },
        "examples": {
          "Trades": {
            "value": "trades"
          }
        }
      },
      "list-terms-of-service-type-filter": {
        "name": "type",
        "description": "Filter terms of service by type.",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/terms-of-service-type"
        },
        "examples": {
          "General": {
            "value": "general"
          }
        }
      },
      "list-terms-of-service-country-code-filter": {
        "name": "country",
        "description": "Filter terms of service by unique code of the country.",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/country-code-for-request"
        },
        "examples": {
          "United Kingdom": {
            "value": "GB"
          }
        }
      },
      "list-terms-of-service-user-type-filter": {
        "name": "userType",
        "description": "Filter terms of service by user type.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "individual",
            "business"
          ]
        },
        "examples": {
          "Individual": {
            "value": "individual"
          },
          "Business": {
            "value": "business"
          }
        }
      },
      "terms-of-service-code": {
        "name": "termsOfService",
        "description": "The terms of service code.",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/terms-of-service-code"
        }
      },
      "terms-of-service-code-excluding-general": {
        "name": "termsOfService",
        "description": "The terms of service code.",
        "in": "path",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/terms-of-service-code-excluding-general"
        }
      },
      "file-id": {
        "name": "fileId",
        "description": "The file id.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "examples": {
          "File ID": {
            "value": "38cce774-b225-41ed-a9fd-f9c9777a13de"
          }
        }
      },
      "list-files-settings-file-category-filter": {
        "name": "category",
        "in": "query",
        "description": "Filter settings by file category (e.g., image).",
        "explode": false,
        "schema": {
          "type": "array",
          "maxItems": 3,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "enum": [
              "document",
              "image",
              "video"
            ]
          }
        },
        "examples": {
          "Filter by Image": {
            "value": [
              "image"
            ]
          }
        }
      },
      "list-assets-type-filter": {
        "name": "type",
        "description": "Filter assets by type.",
        "in": "query",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "maxItems": 25,
          "items": {
            "$ref": "#/components/schemas/asset-type"
          }
        },
        "examples": {
          "Crypto Asset Type": {
            "value": [
              "crypto"
            ]
          }
        }
      },
      "list-assets-sort": {
        "name": "sort",
        "in": "query",
        "description": "Sort assets by a criterion.",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "code:asc",
            "code:desc",
            "name:asc",
            "name:desc",
            "price:asc",
            "price:desc",
            "price-delta:asc:one-hour",
            "price-delta:asc:one-day",
            "price-delta:asc:one-week",
            "price-delta:asc:one-month",
            "price-delta:asc:one-year",
            "price-delta:asc:five-years",
            "price-delta:desc:one-hour",
            "price-delta:desc:one-day",
            "price-delta:desc:one-week",
            "price-delta:desc:one-month",
            "price-delta:desc:one-year",
            "price-delta:desc:five-years",
            "market-cap:asc",
            "market-cap:desc"
          ],
          "default": "code:asc"
        }
      },
      "asset-code": {
        "name": "asset",
        "description": "The asset code.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "minLength": 1
        },
        "examples": {
          "BTC Asset": {
            "value": "BTC"
          }
        }
      },
      "get-asset-rates-denomination-filter": {
        "name": "denomination",
        "description": "Filter rates by specified assets.",
        "in": "query",
        "style": "form",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "maxItems": 100,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "examples": {
          "GBP Asset": {
            "value": [
              "GBP"
            ]
          }
        }
      },
      "denomination": {
        "name": "denomination",
        "description": "Specifies the asset code to use as the denomination for value conversion. If not provided, USD is used by default.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "minLength": 1,
          "default": "USD"
        },
        "examples": {
          "BTC Asset": {
            "value": "BTC"
          }
        }
      },
      "asset-historical-rates-interval": {
        "name": "interval",
        "description": "The interval for the historical rates.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "one-hour",
            "one-day",
            "one-week",
            "one-month",
            "one-year",
            "five-years"
          ],
          "default": "one-day"
        }
      },
      "list-networks-type-filter": {
        "name": "type",
        "description": "Filter networks by type.",
        "in": "query",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "maxItems": 25,
          "uniqueItems": true,
          "items": {
            "allOf": [
              {
                "$ref": "#/components/schemas/network-type"
              },
              {
                "type": "string",
                "minLength": 1
              }
            ]
          }
        },
        "examples": {
          "Crypto Network Type": {
            "value": [
              "crypto"
            ]
          }
        }
      },
      "network-code": {
        "name": "network",
        "description": "The network code.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "minLength": 1
        },
        "examples": {
          "Bitcoin Network": {
            "value": "bitcoin"
          }
        }
      },
      "list-rails-type-filter": {
        "name": "type",
        "description": "Filter rails by type.",
        "in": "query",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "maxItems": 25,
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/rail-type"
          }
        },
        "examples": {
          "Crypto Rail Type": {
            "value": [
              "crypto"
            ]
          }
        }
      },
      "list-rails-network-code-filter": {
        "name": "network",
        "description": "Filter rails by network code.",
        "in": "query",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "maxItems": 25,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "examples": {
          "Bitcoin Network": {
            "value": [
              "bitcoin"
            ]
          }
        }
      },
      "list-rails-method-filter": {
        "name": "method",
        "description": "Filter rails by method.",
        "in": "query",
        "style": "form",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "maxItems": 25,
          "uniqueItems": true,
          "items": {
            "$ref": "#/components/schemas/rail-method"
          }
        },
        "examples": {
          "Debit Card Method": {
            "value": [
              "debit-card"
            ]
          }
        }
      },
      "list-rails-asset-code-filter": {
        "name": "asset",
        "description": "Filter rails by asset code.",
        "in": "query",
        "style": "form",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "maxItems": 100,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "examples": {
          "BTC Asset": {
            "value": [
              "BTC"
            ]
          }
        }
      },
      "list-accounts-asset-code-filter": {
        "name": "asset",
        "description": "Filter accounts by asset code.",
        "in": "query",
        "style": "form",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "maxItems": 100,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "examples": {
          "BTC Asset": {
            "value": [
              "BTC"
            ]
          }
        }
      },
      "pagination-per-page": {
        "name": "perPage",
        "description": "The number of items per page.",
        "in": "query",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "maximum": 100,
          "default": 10
        },
        "examples": {
          "10 Items Per Page": {
            "value": 10
          }
        }
      },
      "list-default-accounts-asset-code-filter": {
        "name": "asset",
        "description": "Filter default accounts by asset code.",
        "in": "query",
        "style": "form",
        "explode": false,
        "required": false,
        "schema": {
          "type": "array",
          "uniqueItems": true,
          "maxItems": 100,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "examples": {
          "BTC Asset": {
            "value": [
              "BTC"
            ]
          }
        }
      },
      "account-id": {
        "name": "accountId",
        "description": "The account id.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "examples": {
          "Account Identifier": {
            "value": "555a99a1-620d-4431-a0ac-b43e1aad2bdc"
          }
        }
      },
      "account-deposit-method-type": {
        "name": "type",
        "in": "query",
        "description": "The type of the deposit method.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/account-deposit-method-type"
        }
      },
      "account-deposit-method-asset": {
        "name": "asset",
        "in": "query",
        "description": "The asset to use for the deposit.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "account-deposit-method-network": {
        "name": "network",
        "in": "query",
        "description": "The network to use for the deposit.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "external-account-id": {
        "name": "externalAccountId",
        "description": "The external account identifier.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "examples": {
          "External Account Identifier": {
            "value": "be37b37c-4c1f-4b87-b2eb-86a1ff469470"
          }
        }
      },
      "transaction-id": {
        "name": "transactionId",
        "description": "The transaction id.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "examples": {
          "Transaction ID": {
            "value": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0"
          }
        }
      },
      "request-for-information-id": {
        "name": "requestForInformationId",
        "description": "The request for information id.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "examples": {
          "Request for Information ID": {
            "value": "adaf5731-b80a-4079-8561-c77597ac59d2"
          }
        }
      },
      "portfolio-include-base": {
        "name": "includeBase",
        "description": "Whether to include total and available amounts denominated in the base asset, in addition to the selected denomination.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "portfolio-performance-interval": {
        "name": "interval",
        "description": "The interval for the portfolio performance.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "one-hour",
            "one-day",
            "all-time"
          ],
          "default": "one-day"
        }
      },
      "portfolio-historical-balance-interval": {
        "name": "interval",
        "description": "The interval for the portfolio historical data.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "one-hour",
            "one-day",
            "one-week",
            "one-month",
            "one-year"
          ],
          "default": "one-day"
        }
      },
      "metadata-entity": {
        "name": "entity",
        "description": "The type of entity whose metadata is being accessed.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "accounts",
            "external-accounts",
            "files",
            "transactions",
            "users"
          ]
        },
        "examples": {
          "User Entity": {
            "value": "users"
          }
        }
      },
      "metadata-entity-id": {
        "name": "entityId",
        "description": "The unique identifier of the entity whose metadata is being accessed.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        },
        "examples": {
          "User ID": {
            "value": "me"
          }
        }
      },
      "metadata-if-none-match": {
        "name": "If-None-Match",
        "description": "Retrieves the entity metadata only if it does not match the given revision.",
        "in": "header",
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string",
          "pattern": "^(?:W\\/)?\"([A-Fa-f0-9]{64})\"$"
        },
        "examples": {
          "Metadata Revision": {
            "value": "\"b59c6960e8c802ec287f3892b398b7b58eb4790640414f2c2b048ff22f873d72\""
          }
        }
      },
      "metadata-if-match": {
        "name": "If-Match",
        "description": "Ensures conditional update by matching the current metadata revision.",
        "in": "header",
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string",
          "pattern": "^(?:W\\/)?\"([A-Fa-f0-9]{64})\"$"
        },
        "examples": {
          "Metadata Revision": {
            "value": "\"abc123def456789012345678901234567890123456789012345678901234abcd\""
          }
        }
      },
      "metadata-if-none-match-any": {
        "name": "If-None-Match",
        "description": "Prevents upsert operation if there is an existing metadata revision.",
        "in": "header",
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string",
          "enum": [
            "*"
          ]
        },
        "examples": {
          "Any Revision": {
            "value": "*"
          }
        }
      },
      "webhook-id": {
        "name": "webhook-id",
        "description": "The unique identifier of the webhook.",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string"
        },
        "examples": {
          "Webhook ID": {
            "value": "msg_p5jXN8AQM9LWM0D4loKWxJek"
          }
        }
      },
      "webhook-timestamp": {
        "name": "webhook-timestamp",
        "description": "The timestamp of the webhook, in seconds after the Unix epoch.",
        "in": "header",
        "required": true,
        "schema": {
          "type": "integer"
        },
        "examples": {
          "Webhook Timestamp": {
            "value": 1614265330
          }
        }
      },
      "webhook-signature": {
        "name": "webhook-signature",
        "description": "The signature of the webhook.",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string"
        },
        "examples": {
          "Webhook Signature": {
            "value": "v1,Hw8/adTzfYtjPGhuBahfmGhUROG3AvEKH3mvkeK791Q="
          }
        }
      }
    },
    "schemas": {
      "create-oauth2-token-client-credentials": {
        "type": "object",
        "properties": {
          "grant_type": {
            "type": "string",
            "enum": [
              "client_credentials"
            ]
          },
          "scope": {
            "description": "The list of scopes, delimited with spaces.",
            "type": "string"
          }
        },
        "required": [
          "grant_type"
        ]
      },
      "create-oauth2-token-refresh-token": {
        "type": "object",
        "properties": {
          "grant_type": {
            "type": "string",
            "enum": [
              "refresh_token"
            ]
          },
          "refresh_token": {
            "description": "The refresh token string.",
            "type": "string"
          },
          "scope": {
            "description": "The list of scopes, delimited with spaces.",
            "type": "string"
          }
        },
        "required": [
          "grant_type",
          "refresh_token"
        ]
      },
      "oauth2-token": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string",
            "description": "The access token string issued."
          },
          "refresh_token": {
            "type": "string",
            "description": "The refresh token string issued (only applicable to certain grant types)."
          },
          "expires_in": {
            "type": "integer",
            "description": "The number of seconds until the token expires."
          },
          "scope": {
            "description": "The list of scopes, delimited with spaces.",
            "type": "string"
          },
          "token_type": {
            "type": "string",
            "enum": [
              "Bearer"
            ]
          }
        },
        "required": [
          "access_token",
          "token_type",
          "expires_in"
        ]
      },
      "oauth2-error": {
        "type": "object",
        "properties": {
          "error": {
            "description": "A single error code.",
            "type": "string"
          },
          "error_description": {
            "description": "A human-readable description of the error.",
            "type": "string"
          },
          "error_uri": {
            "description": "A URI to a page with more information about the error.",
            "type": "string"
          }
        },
        "required": [
          "error"
        ]
      },
      "error": {
        "description": "The error information.",
        "type": "object",
        "properties": {
          "code": {
            "description": "A short string with a brief explanation about the error code reported.",
            "type": "string"
          },
          "message": {
            "description": "A human-readable message providing more details about the error.",
            "type": "string"
          },
          "details": {
            "description": "Additional information about the error reported.",
            "type": "object",
            "additionalProperties": true
          }
        },
        "required": [
          "code",
          "message"
        ]
      },
      "string-no-edge-spaces": {
        "type": "string",
        "pattern": "^\\S.*\\S$|^\\S$"
      },
      "country-code-for-request": {
        "type": "string",
        "pattern": "^[A-Z]{2}$"
      },
      "subdivision-code-for-request": {
        "type": "string",
        "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
      },
      "country-restriction-scope": {
        "description": "The scope of the country restriction.",
        "type": "string",
        "enum": [
          "citizenship",
          "geolocation",
          "phone",
          "residence"
        ]
      },
      "subdivision-restriction-scope": {
        "description": "The scope of the subdivision restriction.",
        "type": "string",
        "enum": [
          "residence"
        ]
      },
      "country": {
        "type": "object",
        "properties": {
          "code": {
            "description": "The unique code of the country.",
            "type": "string"
          },
          "name": {
            "description": "The name of the country.",
            "type": "string"
          },
          "asset": {
            "description": "The national asset of the country.",
            "type": "string"
          },
          "restrictions": {
            "description": "The restrictions of the country.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "scope": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/country-restriction-scope"
                    },
                    {
                      "description": "The scope of the restriction."
                    }
                  ]
                }
              }
            }
          },
          "subdivisions": {
            "description": "The subdivisions of the country.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "description": "The unique code of the subdivision.",
                  "type": "string"
                },
                "name": {
                  "description": "The name of the subdivision.",
                  "type": "string"
                },
                "restrictions": {
                  "description": "The restrictions of the country.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "scope": {
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/subdivision-restriction-scope"
                          },
                          {
                            "description": "The scope of the restriction."
                          }
                        ]
                      }
                    }
                  }
                }
              },
              "required": [
                "code",
                "name",
                "restrictions"
              ]
            }
          }
        },
        "required": [
          "code",
          "name",
          "asset",
          "restrictions",
          "subdivisions"
        ]
      },
      "terms-of-service-code-general": {
        "type": "string",
        "enum": [
          "general-us-hq",
          "general-gb-fca",
          "general-pt-bop",
          "general-lt-fcs",
          "general-bs-scb"
        ]
      },
      "create-user-type-individual": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the user.",
            "type": "string",
            "enum": [
              "individual"
            ]
          },
          "email": {
            "description": "The email address.",
            "type": "string",
            "format": "email",
            "maxLength": 255
          },
          "country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/country-code-for-request"
              },
              {
                "description": "The country of residency."
              }
            ]
          },
          "subdivision": {
            "allOf": [
              {
                "$ref": "#/components/schemas/subdivision-code-for-request"
              },
              {
                "description": "The subdivision of residency."
              }
            ]
          },
          "citizenshipCountry": {
            "allOf": [
              {
                "$ref": "#/components/schemas/country-code-for-request"
              },
              {
                "description": "The citizenship country."
              }
            ]
          },
          "termsOfService": {
            "allOf": [
              {
                "$ref": "#/components/schemas/terms-of-service-code-general"
              },
              {
                "description": "The general terms of service the user agreed to."
              }
            ]
          },
          "partnerOnboardedAt": {
            "description": "The date and time when the user was onboarded by the partner.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "type",
          "email",
          "country",
          "citizenshipCountry",
          "termsOfService",
          "partnerOnboardedAt"
        ]
      },
      "create-user-type-business": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the user.",
            "type": "string",
            "enum": [
              "business"
            ]
          },
          "email": {
            "description": "The email address.",
            "type": "string",
            "format": "email",
            "maxLength": 255
          },
          "country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/country-code-for-request"
              },
              {
                "description": "The country of residency."
              }
            ]
          },
          "subdivision": {
            "allOf": [
              {
                "$ref": "#/components/schemas/subdivision-code-for-request"
              },
              {
                "description": "The subdivision of residency."
              }
            ]
          },
          "legalEntityType": {
            "type": "string",
            "description": "Business legal form/classification",
            "enum": [
              "government-entity",
              "non-profit",
              "partnership",
              "private-limited-company",
              "public-company",
              "sole-proprietor"
            ]
          },
          "termsOfService": {
            "allOf": [
              {
                "$ref": "#/components/schemas/terms-of-service-code-general"
              },
              {
                "description": "The general terms of service the user agreed to."
              }
            ]
          },
          "partnerOnboardedAt": {
            "description": "The date and time when the user was onboarded by the partner.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "type",
          "email",
          "country",
          "legalEntityType",
          "termsOfService",
          "partnerOnboardedAt"
        ]
      },
      "address": {
        "description": "The address information.",
        "type": "object",
        "properties": {
          "country": {
            "description": "The country of the address.",
            "type": "string"
          },
          "subdivision": {
            "description": "The subdivision of the address.",
            "type": "string"
          },
          "city": {
            "description": "The city of the address.",
            "type": "string"
          },
          "line1": {
            "description": "The first line of the address.",
            "type": "string"
          },
          "line2": {
            "description": "The second line of the address.",
            "type": "string"
          },
          "postalCode": {
            "description": "The postal code of the address.",
            "type": "string"
          }
        }
      },
      "user-type-individual": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the user.",
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "description": "The type of the user.",
            "type": "string",
            "enum": [
              "individual"
            ]
          },
          "email": {
            "description": "The email address.",
            "type": "string",
            "format": "email"
          },
          "fullName": {
            "description": "The full legal name.",
            "type": "string"
          },
          "birthdate": {
            "description": "The date of birth.",
            "type": "string"
          },
          "citizenshipCountry": {
            "description": "The citizenship country.",
            "type": "string"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/address"
              },
              {
                "type": "object",
                "required": [
                  "country"
                ]
              }
            ]
          },
          "partnerOnboardedAt": {
            "description": "The date and time when the user was onboarded by the partner.",
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "description": "The time at which the user was created.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "The time at which the user was last updated.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "type",
          "email",
          "citizenshipCountry",
          "address",
          "createdAt",
          "updatedAt"
        ]
      },
      "user-type-business": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the user.",
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "description": "The type of the user.",
            "type": "string",
            "enum": [
              "business"
            ]
          },
          "name": {
            "description": "The legal name of the business.",
            "type": "string"
          },
          "email": {
            "description": "The email address.",
            "type": "string",
            "format": "email"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/address"
              },
              {
                "type": "object",
                "required": [
                  "country"
                ]
              }
            ]
          },
          "partnerOnboardedAt": {
            "description": "The date and time when the user was onboarded by the partner.",
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "description": "The time at which the user was created.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "The time at which the user was last updated.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "type",
          "email",
          "createdAt",
          "updatedAt"
        ]
      },
      "user": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "individual": "#/components/schemas/user-type-individual",
            "business": "#/components/schemas/user-type-business"
          }
        },
        "oneOf": [
          {
            "title": "Individual",
            "$ref": "#/components/schemas/user-type-individual"
          },
          {
            "title": "Business",
            "$ref": "#/components/schemas/user-type-business"
          }
        ]
      },
      "delete-user-review": {
        "type": "object",
        "properties": {
          "review": {
            "type": "object",
            "properties": {
              "reason": {
                "description": "The reason code for deleting the user.",
                "type": "string",
                "enum": [
                  "business-decision",
                  "closure-per-user-request",
                  "compliance-violation",
                  "fraud-violation",
                  "other"
                ]
              },
              "note": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "Additional notes about the deletion of the user.",
                    "type": "string"
                  }
                ]
              }
            },
            "required": [
              "reason"
            ]
          }
        },
        "required": [
          "review"
        ]
      },
      "kyc-process-status": {
        "description": "Status of the KYC process.",
        "type": "string",
        "enum": [
          "ok",
          "failed",
          "running",
          "pending",
          "exempt"
        ]
      },
      "kyc-process-hint-form": {
        "description": "Hints for the KYC process.",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the hint.",
            "type": "string",
            "enum": [
              "form"
            ]
          },
          "formId": {
            "description": "The id of the form.",
            "type": "string",
            "format": "uuid"
          },
          "schema": {
            "description": "The definition of the structure and validation rules for this KYC process form.\n\nIt follows the [JSON Schema](https://json-schema.org/) specification with the power of [JSON Forms](https://jsonforms.io/).\n\nThe schema is iterative, meaning that new questions and properties can be added dynamically as the KYC process evolves. This allows for a flexible and adaptive form structure that can accommodate changes and new requirements over time.",
            "type": "object",
            "additionalProperties": true
          },
          "uiSchema": {
            "description": "The `uiSchema` property defines the general layout and presentation of the form by means of different UI schema elements.\n\nIt follows the [JSON Forms](https://jsonforms.io/) specification and is used to customize the appearance and behavior of the form fields.\n\nThe `uiSchema` includes the following elements:\n\n- `Layouts`: Used to structure the form layout. It includes properties like `type` to define the layout type (e.g., `Categorization`) and `elements` to define the child elements.\n- `Controls`: Used to define the form controls. It includes properties like `scope` to point to the corresponding schema property and `label` to define the control's label.\n- `Rules`: Used to define conditional visibility rules for form controls. It includes properties like `effect` to define the rule effect (e.g., `SHOW`) and `condition` to define the rule condition.\n\nThe `uiSchema` is iterative, meaning that new controls and layout elements can be added dynamically as the KYC process evolves. This allows for a flexible and dynamic form layout, enhancing the user experience by providing a structured and intuitive form design that can adapt to new requirements and changes over time.",
            "type": "object",
            "additionalProperties": true
          }
        },
        "required": [
          "type",
          "schema",
          "uiSchema"
        ]
      },
      "kyc-profile": {
        "description": "The KYC profile object.",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "description": "The declared profile details.",
            "type": "object",
            "additionalProperties": true,
            "minProperties": 1
          },
          "hint": {
            "$ref": "#/components/schemas/kyc-process-hint-form"
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-address": {
        "description": "The KYC address object.",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "address": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/address"
                  },
                  {
                    "type": "object",
                    "required": [
                      "country"
                    ]
                  }
                ]
              }
            },
            "required": [
              "address"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-email": {
        "type": "object",
        "description": "The KYC email object.",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "email": {
                "description": "The email address that was verified.",
                "type": "string",
                "format": "email"
              }
            },
            "required": [
              "email"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-phone": {
        "description": "The KYC phone object.",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "phone": {
                "description": "The E.164 formatted phone number that was verified.",
                "type": "string"
              },
              "country": {
                "description": "The country code of the phone number.",
                "type": "string"
              }
            },
            "required": [
              "phone",
              "country"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-identity-none": {
        "title": "None",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "type": {
            "description": "The identity submission type.",
            "type": "string",
            "enum": [
              "none"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-identity-document-submission": {
        "title": "Document Submission",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "type": {
            "description": "The identity submission type.",
            "type": "string",
            "enum": [
              "document-submission"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "media": {
                "description": "The media that was collected during the process.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "context": {
                      "description": "The context of the file.",
                      "type": "string",
                      "enum": [
                        "photo-document-front",
                        "photo-document-back",
                        "photo-selfie",
                        "photo-selfie-and-document-front",
                        "video"
                      ]
                    },
                    "fileId": {
                      "description": "The id of the file.",
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "context",
                    "fileId"
                  ]
                }
              }
            },
            "required": [
              "media"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "description": "The provider used to verify the KYC process.",
                "type": "string"
              },
              "reason": {
                "description": "The reason associated with the verification.",
                "type": "string",
                "enum": [
                  "data-mismatch",
                  "duplicate",
                  "missing-declared-information",
                  "underage"
                ]
              },
              "document": {
                "description": "The identity document information.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "The type of the document.",
                    "type": "string",
                    "enum": [
                      "driving-license",
                      "id-card",
                      "passport",
                      "residence-permit",
                      "unsupported"
                    ]
                  },
                  "number": {
                    "description": "The number of the document.",
                    "type": "string"
                  },
                  "country": {
                    "description": "The country of the document.",
                    "type": "string"
                  },
                  "expiresAt": {
                    "description": "The expiration date of the document.",
                    "type": "string",
                    "format": "date"
                  }
                },
                "required": [
                  "type",
                  "number",
                  "country"
                ]
              },
              "person": {
                "description": "The person information.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "description": "The person's given name.",
                    "type": "string"
                  },
                  "familyName": {
                    "description": "The person's family name or surname.",
                    "type": "string"
                  },
                  "birthdate": {
                    "description": "The date of birth.",
                    "type": "string",
                    "format": "date"
                  },
                  "gender": {
                    "description": "The gender.",
                    "type": "string",
                    "enum": [
                      "female",
                      "male"
                    ]
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "birthdate"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "document",
              "person",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status",
          "type"
        ]
      },
      "kyc-identity-electronic-verification": {
        "title": "Electronic Verification",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "type": {
            "description": "The identity submission type.",
            "type": "string",
            "enum": [
              "electronic-verification"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "data": {
                "description": "The declared data used to verify the process.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "description": "The given name.",
                    "type": "string"
                  },
                  "familyName": {
                    "description": "The family name or surname.",
                    "type": "string"
                  },
                  "birthdate": {
                    "description": "The date of birth.",
                    "type": "string",
                    "format": "date"
                  },
                  "citizenshipCountry": {
                    "description": "The citizenship country.",
                    "type": "string"
                  },
                  "gender": {
                    "description": "The gender.",
                    "type": "string",
                    "enum": [
                      "female",
                      "male"
                    ]
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "birthdate",
                  "citizenshipCountry"
                ]
              }
            },
            "required": [
              "data"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "description": "The provider used to verify the KYC process.",
                "type": "string"
              },
              "reason": {
                "description": "The reason associated with the verification.",
                "type": "string",
                "enum": [
                  "data-mismatch",
                  "duplicate",
                  "missing-declared-information",
                  "underage"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status",
          "type"
        ]
      },
      "kyc-identity": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "none": "#/components/schemas/kyc-identity-none",
            "document-submission": "#/components/schemas/kyc-identity-document-submission",
            "electronic-verification": "#/components/schemas/kyc-identity-electronic-verification"
          }
        },
        "oneOf": [
          {
            "title": "None",
            "$ref": "#/components/schemas/kyc-identity-none"
          },
          {
            "title": "Document submission",
            "$ref": "#/components/schemas/kyc-identity-document-submission"
          },
          {
            "title": "Electronic verification",
            "$ref": "#/components/schemas/kyc-identity-electronic-verification"
          }
        ]
      },
      "kyc-proof-of-address-none": {
        "title": "None",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "type": {
            "description": "The proof-of-address submission type.",
            "type": "string",
            "enum": [
              "none"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-proof-of-address-document-submission": {
        "title": "Document Submission",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "type": {
            "description": "The proof-of-address submission type.",
            "type": "string",
            "enum": [
              "document-submission"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "media": {
                "description": "The media that was collected during the process.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "context": {
                      "description": "The context of the file.",
                      "type": "string",
                      "enum": [
                        "address-proof"
                      ]
                    },
                    "fileId": {
                      "description": "The id of the file.",
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "context",
                    "fileId"
                  ]
                }
              }
            },
            "required": [
              "media"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "description": "The provider used to verify the KYC process.",
                "type": "string"
              },
              "reason": {
                "description": "The reason associated with the verification.",
                "type": "string",
                "enum": [
                  "address-mismatch",
                  "name-mismatch"
                ]
              },
              "person": {
                "description": "The person information.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "description": "The person's given name.",
                    "type": "string"
                  },
                  "familyName": {
                    "description": "The person's family name or surname.",
                    "type": "string"
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "address"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "person",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status",
          "type"
        ]
      },
      "kyc-proof-of-address-electronic-verification": {
        "title": "Electronic Verification",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "type": {
            "description": "The proof-of-address submission type.",
            "type": "string",
            "enum": [
              "electronic-verification"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "data": {
                "description": "The declared data used to verify the process.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "description": "The given name.",
                    "type": "string"
                  },
                  "familyName": {
                    "description": "The family name or surname.",
                    "type": "string"
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "address"
                ]
              }
            },
            "required": [
              "data"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "description": "The provider used to verify the KYC process.",
                "type": "string"
              },
              "reason": {
                "description": "The reason associated with the verification.",
                "type": "string",
                "enum": [
                  "address-mismatch",
                  "name-mismatch"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status",
          "type"
        ]
      },
      "kyc-proof-of-address-from-identity": {
        "title": "From Identity",
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "type": {
            "description": "The proof-of-address submission type.",
            "type": "string",
            "enum": [
              "from-identity"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "description": "The provider used to verify the KYC process.",
                "type": "string"
              },
              "reason": {
                "description": "The reason associated with the verification.",
                "type": "string",
                "enum": [
                  "address-mismatch",
                  "name-mismatch"
                ]
              },
              "person": {
                "description": "The person information.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "description": "The person's given name.",
                    "type": "string"
                  },
                  "familyName": {
                    "description": "The person's family name or surname.",
                    "type": "string"
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "address"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "person",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status",
          "type"
        ]
      },
      "kyc-proof-of-address": {
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "none": "#/components/schemas/kyc-proof-of-address-none",
            "document-submission": "#/components/schemas/kyc-proof-of-address-document-submission",
            "electronic-verification": "#/components/schemas/kyc-proof-of-address-electronic-verification",
            "from-identity": "#/components/schemas/kyc-proof-of-address-from-identity"
          }
        },
        "oneOf": [
          {
            "title": "None",
            "$ref": "#/components/schemas/kyc-proof-of-address-none"
          },
          {
            "title": "Document submission",
            "$ref": "#/components/schemas/kyc-proof-of-address-document-submission"
          },
          {
            "title": "Electronic verification",
            "$ref": "#/components/schemas/kyc-proof-of-address-electronic-verification"
          },
          {
            "title": "From identity",
            "$ref": "#/components/schemas/kyc-proof-of-address-from-identity"
          }
        ]
      },
      "kyc-process-input-form": {
        "description": "Input of the KYC process.",
        "type": "object",
        "properties": {
          "formId": {
            "description": "The id of the form.",
            "type": "string"
          },
          "answers": {
            "description": "The answers of the form.",
            "type": "object",
            "additionalProperties": true
          }
        },
        "required": [
          "answers"
        ]
      },
      "kyc-customer-due-diligence": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "$ref": "#/components/schemas/kyc-process-input-form"
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "score": {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "description": "The score of the verification."
              },
              "expiresAt": {
                "type": "string",
                "format": "date-time",
                "description": "The date and time when the verification expires."
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "hint": {
            "$ref": "#/components/schemas/kyc-process-hint-form"
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-enhanced-due-diligence": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "media": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "context": {
                      "description": "The context of the file.",
                      "type": "string",
                      "enum": [
                        "source-of-funds-proof"
                      ]
                    },
                    "fileId": {
                      "description": "The id of the file.",
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "context",
                    "fileId"
                  ]
                }
              }
            }
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "verifiedAt"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-crypto-risk-assessment": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "$ref": "#/components/schemas/kyc-process-input-form"
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "result": {
                "description": "The result of the verification.",
                "type": "string",
                "enum": [
                  "approved",
                  "rejected"
                ]
              },
              "attempts": {
                "description": "The attempts state of the verification.",
                "type": "object",
                "properties": {
                  "used": {
                    "description": "The number of attempts used.",
                    "type": "integer"
                  },
                  "maximum": {
                    "description": "The maximum number of attempts.",
                    "type": "integer"
                  },
                  "retryAt": {
                    "description": "The date and time when the next attempt is allowed.",
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "used",
                  "maximum"
                ]
              },
              "offboard": {
                "description": "The offboarding state of the verification.",
                "type": "object",
                "properties": {
                  "completedAt": {
                    "description": "The date and time when the offboarding was completed.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "endsAt": {
                    "description": "The date and time when the offboard ends.",
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "endsAt"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "result",
              "attempts"
            ]
          },
          "hint": {
            "$ref": "#/components/schemas/kyc-process-hint-form"
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-self-categorization-statement": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "$ref": "#/components/schemas/kyc-process-input-form"
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "result": {
                "description": "The result of the verification.",
                "type": "string",
                "enum": [
                  "approved",
                  "rejected"
                ]
              },
              "attempts": {
                "description": "The attempts state of the verification.",
                "type": "object",
                "properties": {
                  "used": {
                    "description": "The number of attempts used.",
                    "type": "integer"
                  },
                  "maximum": {
                    "description": "The maximum number of attempts.",
                    "type": "integer"
                  }
                },
                "required": [
                  "used",
                  "maximum"
                ]
              },
              "offboard": {
                "description": "The offboarding state of the verification.",
                "type": "object",
                "properties": {
                  "completedAt": {
                    "description": "The date and time when the offboarding was completed.",
                    "type": "string",
                    "format": "date-time"
                  },
                  "endsAt": {
                    "description": "The date and time when the offboard ends.",
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "endsAt"
                ]
              },
              "expiresAt": {
                "description": "The date and time when the verification expires.",
                "type": "string",
                "format": "date-time"
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "result"
            ]
          },
          "hint": {
            "$ref": "#/components/schemas/kyc-process-hint-form"
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-tax-details": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "input": {
            "description": "The declared tax details.",
            "type": "object",
            "additionalProperties": true,
            "minProperties": 1
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "result": {
                "description": "The result of the verification.",
                "type": "string",
                "enum": [
                  "approved",
                  "rejected"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "result",
              "verifiedAt"
            ]
          },
          "hint": {
            "$ref": "#/components/schemas/kyc-process-hint-form"
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-screening": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "result": {
                "description": "The result of the verification.",
                "type": "string",
                "enum": [
                  "approved",
                  "rejected"
                ]
              }
            },
            "required": [
              "result"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-risk": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/kyc-process-status"
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "result": {
                "description": "The result of the verification.",
                "type": "string",
                "enum": [
                  "approved",
                  "rejected"
                ]
              }
            }
          }
        },
        "required": [
          "status"
        ]
      },
      "kyc-overview": {
        "description": "The KYC overview object.",
        "type": "object",
        "properties": {
          "summary": {
            "type": "object",
            "properties": {
              "status": {
                "description": "The overall KYC status.",
                "type": "string",
                "enum": [
                  "blocked",
                  "ok",
                  "pending",
                  "restricted"
                ]
              },
              "reason": {
                "description": "Additional reason for the status.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "reason"
            ]
          },
          "processes": {
            "type": "object",
            "properties": {
              "profile": {
                "$ref": "#/components/schemas/kyc-profile"
              },
              "address": {
                "$ref": "#/components/schemas/kyc-address"
              },
              "email": {
                "$ref": "#/components/schemas/kyc-email"
              },
              "phone": {
                "$ref": "#/components/schemas/kyc-phone"
              },
              "identity": {
                "$ref": "#/components/schemas/kyc-identity"
              },
              "proofOfAddress": {
                "$ref": "#/components/schemas/kyc-proof-of-address"
              },
              "customerDueDiligence": {
                "$ref": "#/components/schemas/kyc-customer-due-diligence"
              },
              "enhancedDueDiligence": {
                "$ref": "#/components/schemas/kyc-enhanced-due-diligence"
              },
              "cryptoRiskAssessment": {
                "$ref": "#/components/schemas/kyc-crypto-risk-assessment"
              },
              "selfCategorizationStatement": {
                "$ref": "#/components/schemas/kyc-self-categorization-statement"
              },
              "taxDetails": {
                "$ref": "#/components/schemas/kyc-tax-details"
              },
              "screening": {
                "$ref": "#/components/schemas/kyc-screening"
              },
              "risk": {
                "$ref": "#/components/schemas/kyc-risk"
              }
            },
            "required": [
              "profile",
              "address",
              "email",
              "phone",
              "identity",
              "proofOfAddress",
              "customerDueDiligence",
              "enhancedDueDiligence",
              "cryptoRiskAssessment",
              "selfCategorizationStatement",
              "taxDetails",
              "screening",
              "risk"
            ]
          }
        },
        "required": [
          "summary",
          "processes"
        ]
      },
      "string-at-least-two-words-no-edge-spaces": {
        "type": "string",
        "pattern": "^\\S+\\s+\\S+(\\s+\\S+)*$"
      },
      "address-for-request": {
        "description": "The address information.",
        "type": "object",
        "properties": {
          "country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/country-code-for-request"
              },
              {
                "description": "The country of the address."
              }
            ]
          },
          "subdivision": {
            "allOf": [
              {
                "$ref": "#/components/schemas/subdivision-code-for-request"
              },
              {
                "description": "The subdivision of the address."
              }
            ]
          },
          "city": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The city of the address."
              }
            ]
          },
          "line1": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The first line of the address."
              }
            ]
          },
          "line2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The second line of the address."
              }
            ]
          },
          "postalCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The postal code of the address."
              }
            ]
          }
        }
      },
      "update-kyc-identity-document-submission": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The identity submission type.",
            "type": "string",
            "enum": [
              "document-submission"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "media": {
                "description": "The media that was used to verify the process.",
                "type": "array",
                "minItems": 1,
                "maxItems": 10,
                "items": {
                  "type": "object",
                  "properties": {
                    "context": {
                      "description": "The context of the file.",
                      "type": "string",
                      "enum": [
                        "photo-document-front",
                        "photo-document-back",
                        "photo-selfie",
                        "photo-selfie-and-document-front",
                        "video"
                      ]
                    },
                    "fileId": {
                      "description": "The id of the file.",
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "context",
                    "fileId"
                  ]
                }
              }
            },
            "required": [
              "media"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "allOf": [
                  {
                    "description": "The provider used to verify the KYC process."
                  },
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  }
                ]
              },
              "document": {
                "description": "The identity document information.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "The type of the document.",
                    "type": "string",
                    "enum": [
                      "driving-license",
                      "id-card",
                      "passport",
                      "residence-permit"
                    ]
                  },
                  "number": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The number of the document."
                      }
                    ]
                  },
                  "country": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/country-code-for-request"
                      },
                      {
                        "description": "The country of the document."
                      }
                    ]
                  },
                  "expiresAt": {
                    "description": "The expiration date of the document.",
                    "type": "string",
                    "format": "date"
                  }
                },
                "required": [
                  "type",
                  "number",
                  "country"
                ]
              },
              "person": {
                "description": "The person information.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The person's given name.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "familyName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The person's family name or surname.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "birthdate": {
                    "description": "The date of birth.",
                    "type": "string",
                    "format": "date"
                  },
                  "gender": {
                    "description": "The gender.",
                    "type": "string",
                    "enum": [
                      "female",
                      "male"
                    ]
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address-for-request"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "birthdate"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "document",
              "person",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "type",
          "input"
        ]
      },
      "update-kyc-identity-electronic-verification": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The identity submission type.",
            "type": "string",
            "enum": [
              "electronic-verification"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "data": {
                "description": "The declared data used to verify the process.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The given name.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "familyName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The family name or surname.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "birthdate": {
                    "description": "The date of birth.",
                    "type": "string",
                    "format": "date"
                  },
                  "citizenshipCountry": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/country-code-for-request"
                      },
                      {
                        "description": "The citizenship country."
                      }
                    ]
                  },
                  "gender": {
                    "description": "The gender.",
                    "type": "string",
                    "enum": [
                      "female",
                      "male"
                    ]
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address-for-request"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "birthdate",
                  "citizenshipCountry"
                ]
              }
            },
            "required": [
              "data"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "allOf": [
                  {
                    "description": "The provider used to verify the KYC process."
                  },
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  }
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "type",
          "input"
        ]
      },
      "update-kyc-proof-of-address-electronic-verification": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The proof-of-address submission type.",
            "type": "string",
            "enum": [
              "electronic-verification"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "data": {
                "description": "The declared data used to verify the process.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The given name.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "familyName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The family name or surname.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address-for-request"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "address"
                ]
              }
            },
            "required": [
              "data"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The provider used to verify the KYC process.",
                    "type": "string",
                    "maxLength": 200
                  }
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "type",
          "input"
        ]
      },
      "update-kyc-proof-of-address-document-submission": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The proof-of-address submission type.",
            "type": "string",
            "enum": [
              "document-submission"
            ]
          },
          "input": {
            "description": "Input of the KYC process.",
            "type": "object",
            "properties": {
              "media": {
                "type": "array",
                "minItems": 1,
                "maxItems": 5,
                "items": {
                  "type": "object",
                  "properties": {
                    "context": {
                      "description": "The context of the file.",
                      "type": "string",
                      "enum": [
                        "address-proof"
                      ]
                    },
                    "fileId": {
                      "description": "The id of the file.",
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "context",
                    "fileId"
                  ]
                }
              }
            },
            "required": [
              "media"
            ]
          },
          "output": {
            "description": "Output of the KYC process.",
            "type": "object",
            "properties": {
              "provider": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The provider used to verify the KYC process.",
                    "type": "string",
                    "maxLength": 200
                  }
                ]
              },
              "person": {
                "description": "The person information.",
                "type": "object",
                "properties": {
                  "givenName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The person's given name.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "familyName": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/string-no-edge-spaces"
                      },
                      {
                        "description": "The person's family name or surname.",
                        "type": "string",
                        "maxLength": 200
                      }
                    ]
                  },
                  "address": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/address-for-request"
                      },
                      {
                        "type": "object",
                        "required": [
                          "country"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "givenName",
                  "address"
                ]
              },
              "verifiedAt": {
                "description": "The date and time of the verification.",
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "provider",
              "person",
              "verifiedAt"
            ]
          }
        },
        "required": [
          "type",
          "input"
        ]
      },
      "kyc-process-input-form-for-request": {
        "description": "Input of the KYC process.",
        "type": "object",
        "properties": {
          "formId": {
            "description": "The form identifier returned in the `formId` property of the KYC process hint. Include this value when you need to persist or resume the current form state over an extended period (for example, across user sessions or long-running saves).\n",
            "type": "string",
            "format": "uuid"
          },
          "answers": {
            "description": "The `answers` property follows the [JSON Forms](https://jsonforms.io/) specification for data objects and has two key behaviors:\n1. **Partial or Complete Answers Submission**:\n  - It accepts the answers to the questions of the current step (identified by UI Schema 'Category'). This allows the submission of the responses incrementally, either answering all questions in the current step or just a subset of them.\n\n2. **Form Reset by Answering Previous Questions**:\n  - It also allows for a form reset by accepting one or more answers from a previous step (identified by UI Schema 'Category'). This enables the modification of previous answers, ensuring that the form is flexible and can handle dynamic user interactions.\n\nThe KYC process starts its evaluation once the last question has been answered, ensuring that all necessary information has been provided before proceeding with the assessment.\n",
            "type": "object",
            "additionalProperties": true,
            "minProperties": 1,
            "maxProperties": 1
          }
        },
        "required": [
          "answers"
        ]
      },
      "update-kyc-tax-details-request-body-output": {
        "description": "Output of the KYC process.",
        "type": "object",
        "properties": {
          "result": {
            "description": "The result of the verification.",
            "type": "string",
            "enum": [
              "approved",
              "rejected"
            ]
          },
          "verifiedAt": {
            "description": "The date and time of the verification.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "result",
          "verifiedAt"
        ]
      },
      "capability-code": {
        "description": "The code of the capability.",
        "type": "string",
        "enum": [
          "crypto-withdrawals",
          "card-withdrawals",
          "bank-withdrawals",
          "crypto-deposits",
          "bank-deposits",
          "deposits",
          "receives",
          "sends",
          "trades",
          "cards",
          "unique-account-number-viban"
        ]
      },
      "capability": {
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/capability-code"
          },
          "name": {
            "description": "The name of the capability.",
            "type": "string"
          },
          "enabled": {
            "description": "Whether the capability is enabled. If this is false, then there's at least one restrictions active.",
            "type": "boolean"
          },
          "requirements": {
            "description": "The missing requirements for this capability to be fulfilled.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "user-must-submit-crypto-risk-assessment-form",
                "user-must-submit-self-categorization-form",
                "user-must-submit-residential-address",
                "user-must-submit-customer-due-diligence",
                "user-must-submit-enhanced-due-diligence",
                "user-must-wait-for-the-email-cooldown-period-to-expire",
                "user-must-submit-full-name",
                "user-must-submit-identity",
                "user-must-submit-identity-via-physical-document",
                "user-must-submit-phone-number",
                "user-must-submit-proof-of-address",
                "user-must-submit-tax-details",
                "user-must-submit-tax-identification-number",
                "user-must-submit-w9-form",
                "user-must-accept-unique-account-number-viban-terms-of-service",
                "user-must-delete-card"
              ]
            }
          },
          "restrictions": {
            "description": "The restrictions that are causing this capability to be disabled.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "crypto-risk-assessment-form-not-valid",
                "financial-promotion-cooldown-running",
                "phone-country-not-supported",
                "self-categorization-statement-form-not-valid",
                "temporarily-disabled",
                "user-residential-address-not-valid",
                "user-cannot-receive-funds",
                "user-country-not-supported",
                "user-enhanced-due-diligence-not-valid",
                "user-identity-not-valid",
                "user-proof-of-address-not-valid",
                "user-screening-running",
                "user-state-not-supported",
                "user-status-not-valid",
                "user-w9-form-not-valid",
                "user-unique-card-limit-reached"
              ]
            }
          }
        },
        "required": [
          "code",
          "name",
          "enabled",
          "requirements",
          "restrictions"
        ]
      },
      "terms-of-service-type": {
        "description": "The type of the terms of service.",
        "type": "string",
        "enum": [
          "general",
          "unique-account-number"
        ]
      },
      "terms-of-service-code": {
        "description": "The code of the terms of service.",
        "type": "string",
        "enum": [
          "general-us-hq",
          "general-gb-fca",
          "general-pt-bop",
          "general-lt-fcs",
          "general-bs-scb",
          "unique-account-number-viban"
        ]
      },
      "terms-of-service": {
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/terms-of-service-code"
          },
          "type": {
            "$ref": "#/components/schemas/terms-of-service-type"
          },
          "countries": {
            "description": "The country codes in which the terms of service apply. If omitted, the terms apply to all countries.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "userTypes": {
            "description": "The user types to which the terms of service apply. If omitted, the terms apply to all user types.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "individual",
                "business"
              ]
            }
          },
          "modifiedAt": {
            "description": "The date and time when the terms of service were last updated.",
            "type": "string",
            "format": "date-time"
          },
          "acceptedAt": {
            "description": "The date and time when the terms of service were accepted, in case the request is contextualized with a user.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "type",
          "code",
          "modifiedAt"
        ]
      },
      "terms-of-service-code-excluding-general": {
        "type": "string",
        "enum": [
          "unique-account-number-viban"
        ]
      },
      "metadata": {
        "type": "object",
        "additionalProperties": true,
        "minProperties": 1
      },
      "file-base": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the file.",
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "description": "The status of the file.",
            "type": "string",
            "enum": [
              "pending",
              "uploaded"
            ]
          },
          "category": {
            "description": "The category of the file.",
            "type": "string"
          },
          "contentType": {
            "description": "The content type of the file.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "category",
          "contentType"
        ]
      },
      "file-for-upload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/file-base"
          },
          {
            "type": "object",
            "properties": {
              "upload": {
                "description": "The upload information of the file.",
                "type": "object",
                "properties": {
                  "url": {
                    "description": "The pre-signed URL to upload the file to.",
                    "type": "string",
                    "format": "uri"
                  },
                  "formData": {
                    "description": "The form data to include when uploading the file.",
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "expiresAt": {
                    "description": "The date and time when the upload URL expires.",
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "url",
                  "formData",
                  "expiresAt"
                ]
              }
            },
            "required": [
              "upload"
            ]
          }
        ]
      },
      "file": {
        "allOf": [
          {
            "$ref": "#/components/schemas/file-base"
          },
          {
            "type": "object",
            "properties": {
              "download": {
                "description": "The download information of the file.",
                "type": "object",
                "properties": {
                  "url": {
                    "description": "The pre-signed URL to download the file.",
                    "type": "string",
                    "format": "uri"
                  },
                  "expiresAt": {
                    "description": "The date and time when the download URL expires.",
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "url",
                  "expiresAt"
                ]
              }
            }
          }
        ]
      },
      "files-settings": {
        "type": "object",
        "additionalProperties": {
          "title": "File category settings",
          "type": "object",
          "properties": {
            "allowedContentTypes": {
              "description": "The allowed content types.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "minFileSize": {
              "description": "The minimum file size in bytes.",
              "type": "integer",
              "format": "int64"
            },
            "maxFileSize": {
              "description": "The maximum file size in bytes.",
              "type": "integer",
              "format": "int64"
            },
            "expiresIn": {
              "description": "The expiration time in seconds.",
              "type": "integer",
              "format": "int64"
            }
          },
          "required": [
            "allowedContentTypes",
            "minFileSize",
            "maxFileSize",
            "expiresIn"
          ]
        }
      },
      "asset-type": {
        "description": "The type of the asset.",
        "type": "string",
        "enum": [
          "fiat",
          "crypto"
        ]
      },
      "asset-features": {
        "type": "string",
        "enum": [
          "buy",
          "sell",
          "transfer",
          "withdraw",
          "deposit"
        ]
      },
      "asset": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/asset-type"
          },
          "code": {
            "description": "The unique code of the asset.",
            "type": "string"
          },
          "name": {
            "description": "The name of the asset.",
            "type": "string"
          },
          "symbol": {
            "description": "The symbol of the asset.",
            "type": "string"
          },
          "decimals": {
            "description": "The maximum number of decimal places this asset can have.",
            "type": "integer",
            "minimum": 0
          },
          "logo": {
            "description": "The logo of the asset.",
            "type": "string",
            "format": "url"
          },
          "features": {
            "description": "The features of the asset.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/asset-features"
            }
          },
          "cooldowns": {
            "description": "The cooldowns of the asset.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rule": {
                  "description": "The cooldown rule.",
                  "type": "string",
                  "enum": [
                    "financial-promotions"
                  ]
                },
                "features": {
                  "description": "The features affected by the cooldown.",
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/asset-features"
                  }
                },
                "endsAt": {
                  "description": "The date and time when the cooldown ends.",
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          }
        },
        "required": [
          "code",
          "name",
          "type",
          "decimals",
          "cooldowns",
          "features"
        ]
      },
      "asset-rate": {
        "type": "object",
        "properties": {
          "bid": {
            "description": "Highest price a buyer is willing to pay.",
            "type": "string"
          },
          "ask": {
            "description": "Lowest price a seller is willing to accept.",
            "type": "string"
          },
          "mid": {
            "description": "The mid price between the bid and ask.",
            "type": "string"
          }
        },
        "required": [
          "mid"
        ]
      },
      "asset-historical-rate": {
        "type": "object",
        "properties": {
          "rate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/asset-rate"
              },
              {
                "description": "The rate of the asset at the given timestamp.\n\nThis field will be absent if the rate is not available for the given timestamp, which can happen if the asset was not available at that time."
              }
            ]
          },
          "timestamp": {
            "description": "The timestamp of the rate.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "timestamp"
        ]
      },
      "network-type": {
        "description": "The type of the network.",
        "type": "string",
        "enum": [
          "crypto",
          "card",
          "bank"
        ]
      },
      "network-base": {
        "type": "object",
        "properties": {
          "code": {
            "description": "The unique code of the network.",
            "type": "string"
          },
          "name": {
            "description": "The name of the network.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/network-type"
          },
          "logo": {
            "description": "The logo of the network.",
            "type": "string",
            "format": "url"
          }
        },
        "required": [
          "code",
          "name",
          "type"
        ]
      },
      "network-crypto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/network-base"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "crypto"
                ]
              },
              "exampleAddress": {
                "description": "An example address for the network.",
                "type": "string"
              },
              "reference": {
                "description": "The reference used for the network, if any.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "The type of reference.",
                    "type": "string",
                    "enum": [
                      "destination-tag",
                      "memo"
                    ]
                  }
                },
                "required": [
                  "type"
                ]
              },
              "explorer": {
                "description": "Details for exploring the blockchain.",
                "type": "object",
                "properties": {
                  "addressUrl": {
                    "description": "The URL to view address details.",
                    "type": "string"
                  },
                  "txUrl": {
                    "description": "The URL to view transaction details.",
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "network-card": {
        "allOf": [
          {
            "$ref": "#/components/schemas/network-base"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "card"
                ]
              }
            }
          }
        ]
      },
      "network-bank": {
        "allOf": [
          {
            "$ref": "#/components/schemas/network-base"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "bank"
                ]
              },
              "reference": {
                "description": "The reference used for the network, if any.",
                "type": "object",
                "properties": {
                  "type": {
                    "description": "The type of reference.",
                    "type": "string",
                    "enum": [
                      "payment-reference"
                    ]
                  }
                },
                "required": [
                  "type"
                ]
              }
            }
          }
        ]
      },
      "network": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "crypto": "#/components/schemas/network-crypto",
            "card": "#/components/schemas/network-card",
            "bank": "#/components/schemas/network-bank"
          }
        },
        "oneOf": [
          {
            "title": "Crypto",
            "$ref": "#/components/schemas/network-crypto"
          },
          {
            "title": "Card",
            "$ref": "#/components/schemas/network-card"
          },
          {
            "title": "Bank",
            "$ref": "#/components/schemas/network-bank"
          }
        ]
      },
      "rail-type": {
        "type": "string",
        "enum": [
          "crypto",
          "card",
          "bank"
        ]
      },
      "rail-method": {
        "type": "string",
        "enum": [
          "crypto-transaction",
          "credit-card",
          "debit-card",
          "bank-transfer"
        ]
      },
      "rail-base": {
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rail-type"
              },
              {
                "description": "The type of the rail."
              }
            ]
          },
          "network": {
            "description": "The network code of the rail.",
            "type": "string"
          },
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rail-method"
              },
              {
                "description": "The method through which operations are carried over the network."
              }
            ]
          },
          "asset": {
            "description": "The asset code of the rail.",
            "type": "string"
          },
          "decimals": {
            "description": "The number of decimal places for the asset within the network.",
            "type": "integer",
            "minimum": 0
          },
          "features": {
            "description": "The features of the asset within the network.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "withdraw",
                "deposit"
              ]
            }
          }
        },
        "required": [
          "type",
          "network",
          "method",
          "asset",
          "decimals",
          "features"
        ]
      },
      "rail-crypto": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/rail-base"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "crypto"
                ]
              },
              "method": {
                "enum": [
                  "crypto-transaction"
                ]
              },
              "contractAddress": {
                "description": "The contract address for the asset within the network.",
                "type": "string"
              }
            }
          }
        ]
      },
      "rail-card": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/rail-base"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "card"
                ]
              },
              "method": {
                "enum": [
                  "credit-card",
                  "debit-card"
                ]
              }
            }
          }
        ]
      },
      "rail-constraint-bank-allowed-deposit-accounts": {
        "type": "object",
        "properties": {
          "rule": {
            "type": "string",
            "enum": [
              "allowed-deposit-accounts"
            ]
          },
          "allowed": {
            "type": "string",
            "enum": [
              "default-only"
            ]
          }
        },
        "required": [
          "rule",
          "allowed"
        ]
      },
      "rail-constraint-bank": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/rail-constraint-bank-allowed-deposit-accounts"
          }
        ],
        "discriminator": {
          "propertyName": "rule",
          "mapping": {
            "allowed-deposit-accounts": "#/components/schemas/rail-constraint-bank-allowed-deposit-accounts"
          }
        }
      },
      "rail-bank": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/rail-base"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "enum": [
                  "bank"
                ]
              },
              "method": {
                "enum": [
                  "bank-transfer"
                ]
              },
              "constraints": {
                "description": "The constraints for the rail.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/rail-constraint-bank"
                }
              }
            }
          }
        ]
      },
      "rail": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "crypto": "#/components/schemas/rail-crypto",
            "card": "#/components/schemas/rail-card",
            "bank": "#/components/schemas/rail-bank"
          }
        },
        "oneOf": [
          {
            "title": "Crypto",
            "$ref": "#/components/schemas/rail-crypto"
          },
          {
            "title": "Card",
            "$ref": "#/components/schemas/rail-card"
          },
          {
            "title": "Bank",
            "$ref": "#/components/schemas/rail-bank"
          }
        ]
      },
      "account": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the account.",
            "type": "string",
            "format": "uuid"
          },
          "ownerId": {
            "description": "The id of the user that owns the account.",
            "type": "string",
            "format": "uuid"
          },
          "label": {
            "description": "The label of the account.",
            "type": "string"
          },
          "asset": {
            "description": "The asset in which the account is denominated.",
            "type": "string"
          },
          "balance": {
            "description": "The balance of the account.",
            "type": "object",
            "properties": {
              "total": {
                "description": "The total balance of the account.",
                "type": "string"
              },
              "available": {
                "description": "The available balance of the account.",
                "type": "string"
              }
            },
            "required": [
              "total",
              "available"
            ]
          },
          "createdAt": {
            "description": "The time at which the account was created.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "The last time at which the account was updated.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "ownerId",
          "label",
          "asset",
          "balance",
          "createdAt",
          "updatedAt"
        ]
      },
      "pagination": {
        "description": "The pagination information.",
        "type": "object",
        "properties": {
          "first": {
            "description": "The URL to the first set of results.",
            "type": "string",
            "format": "uri"
          },
          "prev": {
            "description": "The URL to the previous set of results.",
            "type": "string",
            "format": "uri"
          },
          "next": {
            "description": "The URL to the next set of results.",
            "type": "string",
            "format": "uri"
          }
        }
      },
      "account-label-for-request": {
        "allOf": [
          {
            "$ref": "#/components/schemas/string-no-edge-spaces"
          },
          {
            "type": "string",
            "description": "The label of the account.",
            "maxLength": 140
          }
        ]
      },
      "account-deposit-method-type": {
        "type": "string",
        "enum": [
          "crypto",
          "bank"
        ]
      },
      "account-deposit-method-detail-crypto-format": {
        "type": "string",
        "enum": [
          "native-segwit",
          "wrapped-segwit",
          "pubkey-hash"
        ]
      },
      "account-deposit-method-details-crypto": {
        "type": "object",
        "properties": {
          "network": {
            "description": "The network to use for the crypto transaction.",
            "type": "string"
          },
          "asset": {
            "description": "The asset to use for the crypto transaction.",
            "type": "string"
          },
          "address": {
            "description": "The destination address to use for the crypto transaction.",
            "type": "string"
          },
          "addressFormats": {
            "description": "The different address formats available for the crypto transaction.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "format": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/account-deposit-method-detail-crypto-format"
                    },
                    {
                      "description": "The format type of the address."
                    }
                  ]
                },
                "value": {
                  "description": "The address value in the specified format.",
                  "type": "string"
                }
              },
              "required": [
                "format",
                "value"
              ]
            },
            "minItems": 1
          },
          "reference": {
            "description": "The additional identifier to include with the transaction, usually added in the memo or tag fields depending on the network.",
            "type": "string"
          }
        },
        "required": [
          "address",
          "addressFormats",
          "asset",
          "network"
        ]
      },
      "account-deposit-method-details-bank-base": {
        "type": "object",
        "properties": {
          "network": {
            "description": "The bank network to use for the bank transfer.",
            "type": "string"
          },
          "asset": {
            "description": "The asset to use for the bank transfer.",
            "type": "string"
          },
          "beneficiary": {
            "description": "The name of the beneficiary for the bank transfer.",
            "type": "string"
          },
          "bankName": {
            "description": "The bank name the account belongs to.",
            "type": "string"
          },
          "bankAddress": {
            "description": "The bank address the account belongs to.",
            "type": "object",
            "properties": {
              "line1": {
                "description": "The first line of the bank address.",
                "type": "string"
              },
              "line2": {
                "description": "The second line of the bank address.",
                "type": "string"
              }
            },
            "required": [
              "line1"
            ]
          }
        },
        "required": [
          "asset",
          "network",
          "beneficiary",
          "bankName",
          "bankAddress"
        ]
      },
      "account-deposit-method-details-bank-fps": {
        "allOf": [
          {
            "$ref": "#/components/schemas/account-deposit-method-details-bank-base"
          },
          {
            "type": "object",
            "properties": {
              "network": {
                "enum": [
                  "fps"
                ]
              },
              "sortCode": {
                "description": "The sort code to use for the FPS transfer.",
                "type": "string"
              },
              "accountNumber": {
                "description": "The account number to use for the FPS transfer.",
                "type": "string"
              },
              "reference": {
                "description": "The additional identifier to include with the FPS transfer description.",
                "type": "string"
              }
            },
            "required": [
              "accountNumber",
              "sortCode"
            ]
          }
        ]
      },
      "account-deposit-method-details-bank-sepa": {
        "allOf": [
          {
            "$ref": "#/components/schemas/account-deposit-method-details-bank-base"
          },
          {
            "type": "object",
            "properties": {
              "network": {
                "enum": [
                  "sepa"
                ]
              },
              "bic": {
                "description": "The BIC of the bank for the SEPA transfer.",
                "type": "string"
              },
              "iban": {
                "description": "The IBAN to use for the SEPA transfer.",
                "type": "string"
              },
              "reference": {
                "description": "The additional identifier to include with the SEPA transfer description.",
                "type": "string"
              }
            },
            "required": [
              "bic",
              "iban",
              "reference"
            ]
          }
        ]
      },
      "account-deposit-method-details-bank-us-rails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/account-deposit-method-details-bank-base"
          },
          {
            "type": "object",
            "properties": {
              "network": {
                "enum": [
                  "ach",
                  "fednow",
                  "wire"
                ]
              },
              "routingNumber": {
                "description": "The routing number to use for the bank transfer.",
                "type": "string"
              },
              "accountNumber": {
                "description": "The account number to use for the bank transfer.",
                "type": "string"
              },
              "accountType": {
                "description": "The account type to use for the bank transfer.",
                "type": "string",
                "enum": [
                  "checking"
                ]
              },
              "secondaryNetworks": {
                "description": "The secondary networks that the bank account can be used with.",
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "ach",
                    "fednow",
                    "wire"
                  ]
                }
              }
            },
            "required": [
              "routingNumber",
              "accountNumber",
              "accountType"
            ]
          }
        ]
      },
      "account-deposit-method": {
        "type": "object",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/account-deposit-method-type"
              },
              {
                "description": "The deposit method type."
              }
            ]
          },
          "status": {
            "description": "The status of the deposit method.",
            "type": "string",
            "enum": [
              "processing",
              "ok",
              "failed"
            ]
          },
          "details": {
            "description": "The details of the deposit method based on the type and network.",
            "oneOf": [
              {
                "title": "Crypto",
                "$ref": "#/components/schemas/account-deposit-method-details-crypto"
              },
              {
                "title": "Bank (FPS)",
                "$ref": "#/components/schemas/account-deposit-method-details-bank-fps"
              },
              {
                "title": "Bank (SEPA)",
                "$ref": "#/components/schemas/account-deposit-method-details-bank-sepa"
              },
              {
                "title": "Bank (US Rails)",
                "$ref": "#/components/schemas/account-deposit-method-details-bank-us-rails"
              }
            ]
          }
        },
        "required": [
          "type",
          "status"
        ]
      },
      "simulate-bank-deposit-fps-for-request": {
        "type": "object",
        "properties": {
          "network": {
            "description": "The network used to process the bank transfer.",
            "type": "string",
            "enum": [
              "fps"
            ]
          },
          "sortCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The six-digit sort code of the destination bank account where funds will be deposited.",
                "type": "string",
                "pattern": "^\\d{6}$"
              }
            ]
          },
          "accountNumber": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The account number of the destination bank account where funds will be deposited.",
                "type": "string",
                "pattern": "^\\d{6,8}$"
              }
            ]
          },
          "asset": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The settlement asset of the user's bank account."
              }
            ]
          },
          "amount": {
            "description": "The amount to be deposited into the destination account.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$"
          },
          "reference": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "A unique identifier indicating the specific account where the funds should be credited.\nIf omitted, funds will be credited to the default account for the specified asset."
              }
            ]
          },
          "remitter": {
            "description": "The information about the external bank account holder who is sending the funds.",
            "type": "object",
            "additionalProperties": false,
            "minProperties": 1,
            "properties": {
              "name": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The full name of the account holder sending the funds. Defaults to the authenticated user's name if not provided.",
                    "type": "string",
                    "maxLength": 200
                  }
                ]
              },
              "sortCode": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The six-digit sort code of the sender's bank branch. A random value will be generated if not provided.",
                    "type": "string",
                    "pattern": "^\\d{6}$"
                  }
                ]
              },
              "accountNumber": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The account number of the sender's bank account. A random value will be generated if not provided.",
                    "type": "string",
                    "pattern": "^\\d{8}$"
                  }
                ]
              }
            }
          }
        },
        "required": [
          "network",
          "sortCode",
          "accountNumber",
          "asset",
          "amount"
        ]
      },
      "simulate-bank-deposit-sepa-for-request": {
        "type": "object",
        "properties": {
          "network": {
            "description": "The network used to process the bank transfer.",
            "type": "string",
            "enum": [
              "sepa"
            ]
          },
          "iban": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The IBAN of the destination bank account where funds will be deposited.",
                "type": "string",
                "pattern": "^[A-Z]{2}[0-9]{2}[A-Z0-9]{4}[0-9]{7}([A-Z0-9]?){0,16}$"
              }
            ]
          },
          "asset": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The settlement asset of the user's bank account."
              }
            ]
          },
          "amount": {
            "description": "The amount to be deposited into the destination account.",
            "type": "string",
            "pattern": "^\\d+(\\.\\d+)?$"
          },
          "reference": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "A unique identifier indicating the specific account where the funds should be credited.\nIf omitted, funds will be credited to the default account for the specified asset."
              }
            ]
          },
          "remitter": {
            "description": "The information about the external bank account holder who is sending the funds.",
            "type": "object",
            "additionalProperties": false,
            "minProperties": 1,
            "properties": {
              "name": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The full name of the account holder sending the funds. Defaults to the authenticated user's name if not provided.",
                    "type": "string",
                    "maxLength": 200
                  }
                ]
              },
              "bic": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The BIC of the sender's bank. A random value will be generated if not provided.",
                    "type": "string",
                    "pattern": "^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"
                  }
                ]
              },
              "iban": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/string-no-edge-spaces"
                  },
                  {
                    "description": "The IBAN of the sender's bank account. A random value will be generated if not provided.",
                    "type": "string",
                    "pattern": "^[A-Z]{2}[0-9]{2}[A-Z0-9]{4}[0-9]{7}([A-Z0-9]?){0,16}$"
                  }
                ]
              }
            }
          }
        },
        "required": [
          "network",
          "iban",
          "asset",
          "amount"
        ]
      },
      "simulate-bank-deposit-fps": {
        "type": "object",
        "properties": {
          "network": {
            "description": "The payment network used to process the simulated deposit.",
            "type": "string",
            "enum": [
              "fps"
            ]
          },
          "sortCode": {
            "description": "The sort code of the destination account that received the simulated deposit.",
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number of the destination account that received the simulated deposit.",
            "type": "string"
          },
          "asset": {
            "description": "The asset of the simulated deposit transaction.",
            "type": "string"
          },
          "amount": {
            "description": "The amount that was deposited in the simulation.",
            "type": "string"
          },
          "reference": {
            "description": "The payment reference used for the simulated deposit, if any was provided.",
            "type": "string"
          },
          "remitter": {
            "description": "The details of the simulated sender's bank account information.",
            "type": "object",
            "properties": {
              "name": {
                "description": "The full name of the simulated account holder who sent the funds.",
                "type": "string"
              },
              "sortCode": {
                "description": "The sort code of the simulated sender's bank branch.",
                "type": "string"
              },
              "accountNumber": {
                "description": "The account number of the simulated sender's bank account.",
                "type": "string"
              }
            },
            "required": [
              "name",
              "sortCode",
              "accountNumber"
            ]
          }
        },
        "required": [
          "network",
          "sortCode",
          "accountNumber",
          "asset",
          "amount",
          "remitter"
        ]
      },
      "simulate-bank-deposit-sepa": {
        "type": "object",
        "properties": {
          "network": {
            "description": "The payment network used to process the simulated deposit.",
            "type": "string",
            "enum": [
              "sepa"
            ]
          },
          "iban": {
            "description": "The IBAN of the destination account that received the simulated deposit.",
            "type": "string"
          },
          "asset": {
            "description": "The asset of the simulated deposit transaction.",
            "type": "string"
          },
          "amount": {
            "description": "The amount that was deposited in the simulation.",
            "type": "string"
          },
          "reference": {
            "description": "The payment reference used for the simulated deposit, if any was provided.",
            "type": "string"
          },
          "remitter": {
            "description": "The details of the simulated sender's bank account information.",
            "type": "object",
            "properties": {
              "name": {
                "description": "The full name of the simulated account holder who sent the funds.",
                "type": "string"
              },
              "bic": {
                "description": "The BIC of the simulated sender's bank.",
                "type": "string"
              },
              "iban": {
                "description": "The IBAN of the simulated sender's bank account.",
                "type": "string"
              }
            },
            "required": [
              "name",
              "bic",
              "iban"
            ]
          }
        },
        "required": [
          "network",
          "iban",
          "asset",
          "amount",
          "remitter"
        ]
      },
      "external-account-status-reason": {
        "description": "The reason why the external account is in its current status.",
        "type": "string",
        "enum": [
          "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"
        ]
      },
      "external-account-details-card": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the card, available if card was recognized.",
            "type": "string",
            "enum": [
              "credit",
              "debit"
            ]
          },
          "last4Digits": {
            "description": "The last 4 digits of the card number.",
            "type": "string",
            "pattern": "^[0-9]{4}$"
          },
          "expiryDate": {
            "description": "The expiry date of the card.",
            "type": "object",
            "properties": {
              "month": {
                "type": "integer",
                "description": "The expiry month of the card."
              },
              "year": {
                "type": "integer",
                "description": "The expiry year of the card."
              }
            },
            "required": [
              "month",
              "year"
            ]
          },
          "octSupport": {
            "description": "The support for Open Credit Transfer (withdrawals) for the card.",
            "type": "string",
            "enum": [
              "unknown",
              "supported",
              "unsupported"
            ]
          }
        },
        "required": [
          "last4Digits",
          "expiryDate",
          "octSupport"
        ]
      },
      "external-account-details-bank-ach": {
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "routingNumber": {
            "description": "The routing number of the bank account (ABA).",
            "type": "string"
          },
          "accountNumber": {
            "description": "The account number of the bank account.",
            "type": "string"
          },
          "accountType": {
            "description": "The type of the bank account.",
            "type": "string"
          },
          "secondaryNetworks": {
            "description": "The secondary networks that the external account can be used with, grouped by operation.",
            "type": "object",
            "properties": {
              "deposit": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "withdraw": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "address",
          "routingNumber",
          "accountNumber",
          "accountType"
        ]
      },
      "external-account-details-bank-fps": {
        "type": "object",
        "properties": {
          "accountNumber": {
            "description": "The account number of the bank account.",
            "type": "string"
          },
          "sortCode": {
            "description": "The sort code of the bank account.",
            "type": "string"
          }
        },
        "required": [
          "accountNumber",
          "sortCode"
        ]
      },
      "external-account-details-bank-sepa": {
        "type": "object",
        "properties": {
          "bic": {
            "description": "The BIC of the bank account.",
            "type": "string"
          },
          "iban": {
            "description": "The IBAN of the bank account.",
            "type": "string"
          }
        },
        "required": [
          "bic",
          "iban"
        ]
      },
      "external-account": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the external account.",
            "type": "string",
            "format": "uuid"
          },
          "ownerId": {
            "description": "The unique identifier of the user that owns the account.",
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "description": "The type of the external account.",
            "type": "string",
            "enum": [
              "card",
              "bank"
            ]
          },
          "status": {
            "description": "The status of the external account.",
            "type": "string",
            "enum": [
              "processing",
              "ok",
              "expired",
              "failed",
              "restricted",
              "blocked"
            ]
          },
          "statusDetails": {
            "description": "The details of the status of the external account.",
            "type": "object",
            "properties": {
              "reason": {
                "$ref": "#/components/schemas/external-account-status-reason"
              }
            },
            "required": [
              "reason"
            ]
          },
          "label": {
            "description": "The label of the external account.",
            "type": "string"
          },
          "asset": {
            "description": "The asset in which the external account is denominated.",
            "type": "string"
          },
          "network": {
            "description": "The network that the external account corresponds to.",
            "type": "string"
          },
          "features": {
            "description": "The features of the external account.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "withdraw",
                "deposit"
              ]
            }
          },
          "details": {
            "description": "The details of the external account based on the type and network.",
            "oneOf": [
              {
                "title": "Card",
                "$ref": "#/components/schemas/external-account-details-card"
              },
              {
                "title": "Bank (ACH)",
                "$ref": "#/components/schemas/external-account-details-bank-ach"
              },
              {
                "title": "Bank (FPS)",
                "$ref": "#/components/schemas/external-account-details-bank-fps"
              },
              {
                "title": "Bank (SEPA)",
                "$ref": "#/components/schemas/external-account-details-bank-sepa"
              }
            ]
          },
          "createdAt": {
            "description": "The time at which the external account was created.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "The last time at which the external account was updated.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "ownerId",
          "type",
          "status",
          "label",
          "asset",
          "features",
          "details",
          "createdAt",
          "updatedAt"
        ]
      },
      "external-account-label-for-request": {
        "allOf": [
          {
            "$ref": "#/components/schemas/string-no-edge-spaces"
          },
          {
            "type": "string",
            "description": "The label of the external account.",
            "maxLength": 140
          }
        ]
      },
      "create-external-account-card": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the external account.",
            "enum": [
              "card"
            ]
          },
          "label": {
            "$ref": "#/components/schemas/external-account-label-for-request"
          },
          "number": {
            "type": "string",
            "description": "The number of the card.",
            "pattern": "^[0-9]{12,19}$"
          },
          "securityCode": {
            "type": "string",
            "description": "The security code of the card.",
            "pattern": "^[0-9]{3,3}$"
          },
          "expiryDate": {
            "type": "object",
            "properties": {
              "month": {
                "type": "integer",
                "description": "The expiry month of the card.",
                "minimum": 1,
                "maximum": 12
              },
              "year": {
                "type": "integer",
                "description": "The expiry year of the card.",
                "minimum": 2000
              }
            },
            "required": [
              "month",
              "year"
            ]
          },
          "metadata": {
            "description": "Additional data for the external account.",
            "$ref": "#/components/schemas/metadata"
          }
        },
        "required": [
          "type",
          "label",
          "number",
          "securityCode",
          "expiryDate"
        ]
      },
      "create-external-account-bank-ach": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the external account.",
            "enum": [
              "bank"
            ]
          },
          "asset": {
            "description": "The asset in which the external account is denominated.",
            "type": "string",
            "enum": [
              "USD"
            ]
          },
          "network": {
            "type": "string",
            "description": "The default network of the external account.",
            "enum": [
              "ach"
            ]
          },
          "label": {
            "$ref": "#/components/schemas/external-account-label-for-request"
          },
          "address": {
            "allOf": [
              {
                "description": "The beneficiary address."
              },
              {
                "$ref": "#/components/schemas/address-for-request"
              },
              {
                "type": "object",
                "required": [
                  "country",
                  "subdivision",
                  "city",
                  "line1",
                  "postalCode"
                ]
              }
            ]
          },
          "routingNumber": {
            "description": "The routing number of the bank account (ABA).",
            "type": "string",
            "pattern": "^[0-9]{9}$"
          },
          "accountNumber": {
            "description": "The account number of the bank account.",
            "type": "string",
            "pattern": "^[0-9]{4,17}$"
          },
          "accountType": {
            "description": "The type of the bank account.",
            "type": "string",
            "enum": [
              "checking",
              "savings"
            ]
          },
          "metadata": {
            "description": "Additional data for the external account.",
            "$ref": "#/components/schemas/metadata"
          }
        },
        "required": [
          "type",
          "asset",
          "network",
          "label",
          "address",
          "routingNumber",
          "accountNumber",
          "accountType"
        ]
      },
      "create-quote-node-account": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the node.",
            "type": "string",
            "enum": [
              "account"
            ]
          },
          "id": {
            "description": "The account id.",
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "create-quote-node-external-account": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the node.",
            "type": "string",
            "enum": [
              "external-account"
            ]
          },
          "id": {
            "description": "The external account id.",
            "type": "string",
            "format": "uuid"
          },
          "network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The network used for the transaction with the external account."
              }
            ]
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "create-quote-origin-node": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "account": "#/components/schemas/create-quote-node-account",
            "external-account": "#/components/schemas/create-quote-node-external-account"
          }
        },
        "oneOf": [
          {
            "title": "Account",
            "$ref": "#/components/schemas/create-quote-node-account"
          },
          {
            "title": "External account",
            "$ref": "#/components/schemas/create-quote-node-external-account"
          }
        ]
      },
      "create-quote-node-crypto-address": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the node.",
            "type": "string",
            "enum": [
              "crypto-address"
            ]
          },
          "asset": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The asset to be used in the operation."
              }
            ]
          },
          "network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The network that the crypto address is on."
              }
            ]
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The crypto address."
              }
            ]
          },
          "reference": {
            "allOf": [
              {
                "$ref": "#/components/schemas/string-no-edge-spaces"
              },
              {
                "description": "The additional identifier (e.g., destination tag, memo, or message) required for some networks such as XRP (Ripple), XLM (Stellar), EOS, and others. If the network does not require a tag, this field can be omitted."
              }
            ]
          }
        },
        "required": [
          "type",
          "asset",
          "network",
          "address"
        ]
      },
      "create-quote-destination-node": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "account": "#/components/schemas/create-quote-node-account",
            "external-account": "#/components/schemas/create-quote-node-external-account",
            "crypto-address": "#/components/schemas/create-quote-node-crypto-address"
          }
        },
        "oneOf": [
          {
            "title": "Account",
            "$ref": "#/components/schemas/create-quote-node-account"
          },
          {
            "title": "External account",
            "$ref": "#/components/schemas/create-quote-node-external-account"
          },
          {
            "title": "Crypto address",
            "$ref": "#/components/schemas/create-quote-node-crypto-address"
          }
        ]
      },
      "transaction-node-account": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the node.",
            "type": "string",
            "enum": [
              "account"
            ]
          },
          "id": {
            "description": "The account id.",
            "type": "string",
            "format": "uuid"
          },
          "ownerId": {
            "description": "The id of the user that owns the account.",
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "type",
          "id",
          "ownerId"
        ]
      },
      "transaction-node-external-account": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the node.",
            "type": "string",
            "enum": [
              "external-account"
            ]
          },
          "id": {
            "description": "The external account id.",
            "type": "string",
            "format": "uuid"
          },
          "confirmationUrl": {
            "description": "The URL to confirm the authorization using the external account (e.g., 3DS).",
            "type": "string",
            "format": "uri"
          },
          "ownerId": {
            "description": "The id of the user that owns the external account.",
            "type": "string",
            "format": "uuid"
          },
          "network": {
            "description": "The network used for the transaction with the external account.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "id",
          "ownerId"
        ]
      },
      "transaction-node-bank-address": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the node.",
            "type": "string",
            "enum": [
              "bank-address"
            ]
          },
          "network": {
            "description": "The network of the bank transfer.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "network"
        ]
      },
      "transaction-node-crypto-address-execution-onchain": {
        "type": "object",
        "properties": {
          "mode": {
            "description": "The mode of execution.",
            "type": "string",
            "enum": [
              "onchain"
            ]
          },
          "transactionHash": {
            "description": "The hash of the transaction in the blockchain.",
            "$ref": "#/components/schemas/string-no-edge-spaces"
          }
        },
        "required": [
          "mode"
        ]
      },
      "transaction-node-crypto-address-execution-offchain": {
        "type": "object",
        "properties": {
          "mode": {
            "description": "The mode of execution.",
            "type": "string",
            "enum": [
              "offchain"
            ]
          },
          "accountId": {
            "description": "The account id to which the off-chain transaction was made.",
            "type": "string",
            "format": "uuid"
          },
          "accountOwnerId": {
            "description": "The id of the user that owns the account to which the off-chain transaction was made.",
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "mode"
        ]
      },
      "transaction-node-crypto-address-execution-simulated": {
        "type": "object",
        "properties": {
          "mode": {
            "description": "The mode of execution.",
            "type": "string",
            "enum": [
              "simulated"
            ]
          },
          "transactionHash": {
            "description": "The simulated transaction hash.",
            "$ref": "#/components/schemas/string-no-edge-spaces"
          }
        },
        "required": [
          "mode"
        ]
      },
      "transaction-node-crypto-address-execution": {
        "type": "object",
        "discriminator": {
          "propertyName": "mode",
          "mapping": {
            "onchain": "#/components/schemas/transaction-node-crypto-address-execution-onchain",
            "offchain": "#/components/schemas/transaction-node-crypto-address-execution-offchain",
            "simulated": "#/components/schemas/transaction-node-crypto-address-execution-simulated"
          }
        },
        "oneOf": [
          {
            "title": "On-chain",
            "$ref": "#/components/schemas/transaction-node-crypto-address-execution-onchain"
          },
          {
            "title": "Off-chain",
            "$ref": "#/components/schemas/transaction-node-crypto-address-execution-offchain"
          },
          {
            "title": "Simulated",
            "$ref": "#/components/schemas/transaction-node-crypto-address-execution-simulated"
          }
        ]
      },
      "transaction-node-crypto-address": {
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of the node.",
            "type": "string",
            "enum": [
              "crypto-address"
            ]
          },
          "network": {
            "description": "The network that the crypto address is on.",
            "$ref": "#/components/schemas/string-no-edge-spaces"
          },
          "address": {
            "description": "The crypto address (may not be available for deposits).",
            "$ref": "#/components/schemas/string-no-edge-spaces"
          },
          "reference": {
            "description": "The additional identifier (e.g., destination tag, memo, or message) for the crypto address.",
            "type": "string"
          },
          "execution": {
            "description": "The execution details for the transaction.",
            "$ref": "#/components/schemas/transaction-node-crypto-address-execution"
          }
        },
        "required": [
          "type",
          "network"
        ]
      },
      "quote-origin-node": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "account": "#/components/schemas/transaction-node-account",
            "external-account": "#/components/schemas/transaction-node-external-account",
            "bank-address": "#/components/schemas/transaction-node-bank-address",
            "crypto-address": "#/components/schemas/transaction-node-crypto-address"
          }
        },
        "oneOf": [
          {
            "title": "Account",
            "$ref": "#/components/schemas/transaction-node-account"
          },
          {
            "title": "External account",
            "$ref": "#/components/schemas/transaction-node-external-account"
          }
        ]
      },
      "quote-origin-endpoint": {
        "type": "object",
        "properties": {
          "asset": {
            "description": "The asset of the endpoint.",
            "type": "string"
          },
          "amount": {
            "description": "The amount of the endpoint.",
            "type": "string"
          },
          "rate": {
            "description": "The rate of the endpoint against its counter-part (origin to destination and vice-versa).",
            "type": "string"
          },
          "node": {
            "description": "The node of the endpoint.",
            "$ref": "#/components/schemas/quote-origin-node"
          }
        },
        "required": [
          "asset",
          "amount",
          "rate",
          "node"
        ]
      },
      "quote-destination-node": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "account": "#/components/schemas/transaction-node-account",
            "external-account": "#/components/schemas/transaction-node-external-account",
            "crypto-address": "#/components/schemas/transaction-node-crypto-address"
          }
        },
        "oneOf": [
          {
            "title": "Account",
            "$ref": "#/components/schemas/transaction-node-account"
          },
          {
            "title": "External account",
            "$ref": "#/components/schemas/transaction-node-external-account"
          },
          {
            "title": "Crypto address",
            "$ref": "#/components/schemas/transaction-node-crypto-address"
          }
        ]
      },
      "quote-destination-endpoint": {
        "type": "object",
        "properties": {
          "asset": {
            "description": "The asset of the endpoint.",
            "type": "string"
          },
          "amount": {
            "description": "The amount of the endpoint.",
            "type": "string"
          },
          "rate": {
            "description": "The rate of the endpoint against its counter-part (origin to destination and vice-versa).",
            "type": "string"
          },
          "node": {
            "description": "The node of the endpoint.",
            "$ref": "#/components/schemas/quote-destination-node"
          }
        },
        "required": [
          "asset",
          "amount",
          "rate",
          "node"
        ]
      },
      "transaction-denomination": {
        "type": "object",
        "properties": {
          "asset": {
            "description": "The asset in which the transaction is denominated.",
            "type": "string"
          },
          "amount": {
            "description": "The amount of the transaction.",
            "type": "string"
          },
          "rate": {
            "description": "The rate against the specified target (origin or destination).",
            "type": "string"
          },
          "target": {
            "description": "Whether this exact amount should be paid by the origin or received by the destination.",
            "type": "string",
            "enum": [
              "origin",
              "destination"
            ]
          }
        },
        "required": [
          "asset",
          "amount",
          "rate",
          "target"
        ]
      },
      "transaction-fees": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "description": "The type of the fee.",
              "type": "string",
              "enum": [
                "deposit",
                "exchange",
                "network",
                "withdrawal"
              ]
            },
            "code": {
              "description": "The code of the fee.",
              "type": "string"
            },
            "asset": {
              "description": "The asset in which the fee is denominated.",
              "type": "string"
            },
            "amount": {
              "description": "The amount of the fee.",
              "type": "string"
            },
            "percentage": {
              "description": "The percentage of the fee, if the amount was calculated from a percentage.",
              "type": "string"
            }
          },
          "required": [
            "type",
            "code",
            "asset",
            "amount"
          ]
        }
      },
      "quote-requirements": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "travel-rule"
          ]
        }
      },
      "quote": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the quote.",
            "type": "string",
            "format": "uuid"
          },
          "origin": {
            "description": "The origin of the quote.",
            "$ref": "#/components/schemas/quote-origin-endpoint"
          },
          "destination": {
            "description": "The destination of the quote.",
            "$ref": "#/components/schemas/quote-destination-endpoint"
          },
          "denomination": {
            "description": "The denomination of the quote.",
            "$ref": "#/components/schemas/transaction-denomination"
          },
          "fees": {
            "description": "The fees of the quote.",
            "$ref": "#/components/schemas/transaction-fees"
          },
          "requirements": {
            "description": "The requirements the user must address when attempting to create the transaction with this quote.",
            "$ref": "#/components/schemas/quote-requirements"
          },
          "expiresAt": {
            "description": "The time at which the quote expires.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "origin",
          "destination",
          "denomination",
          "fees",
          "requirements",
          "expiresAt"
        ]
      },
      "transaction-origin-node": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "account": "#/components/schemas/transaction-node-account",
            "external-account": "#/components/schemas/transaction-node-external-account",
            "bank-address": "#/components/schemas/transaction-node-bank-address",
            "crypto-address": "#/components/schemas/transaction-node-crypto-address"
          }
        },
        "oneOf": [
          {
            "title": "Account",
            "$ref": "#/components/schemas/transaction-node-account"
          },
          {
            "title": "External account",
            "$ref": "#/components/schemas/transaction-node-external-account"
          },
          {
            "title": "Bank address",
            "$ref": "#/components/schemas/transaction-node-bank-address"
          },
          {
            "title": "Crypto address",
            "$ref": "#/components/schemas/transaction-node-crypto-address"
          }
        ]
      },
      "transaction-origin-endpoint": {
        "type": "object",
        "properties": {
          "asset": {
            "description": "The asset of the endpoint.",
            "type": "string"
          },
          "amount": {
            "description": "The amount of the endpoint.",
            "type": "string"
          },
          "rate": {
            "description": "The rate of the endpoint against its counter-part (origin to destination and vice-versa).",
            "type": "string"
          },
          "node": {
            "description": "The node of the endpoint.",
            "$ref": "#/components/schemas/transaction-origin-node"
          }
        },
        "required": [
          "asset",
          "amount",
          "rate",
          "node"
        ]
      },
      "transaction-destination-node": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "account": "#/components/schemas/transaction-node-account",
            "external-account": "#/components/schemas/transaction-node-external-account",
            "crypto-address": "#/components/schemas/transaction-node-crypto-address"
          }
        },
        "oneOf": [
          {
            "title": "Account",
            "$ref": "#/components/schemas/transaction-node-account"
          },
          {
            "title": "External account",
            "$ref": "#/components/schemas/transaction-node-external-account"
          },
          {
            "title": "Crypto address",
            "$ref": "#/components/schemas/transaction-node-crypto-address"
          }
        ]
      },
      "transaction-destination-endpoint": {
        "type": "object",
        "properties": {
          "asset": {
            "description": "The asset of the endpoint.",
            "type": "string"
          },
          "amount": {
            "description": "The amount of the endpoint.",
            "type": "string"
          },
          "rate": {
            "description": "The rate of the endpoint against its counter-part (origin to destination and vice-versa).",
            "type": "string"
          },
          "node": {
            "description": "The node of the endpoint.",
            "$ref": "#/components/schemas/transaction-destination-node"
          }
        },
        "required": [
          "asset",
          "amount",
          "rate",
          "node"
        ]
      },
      "transaction-status-reason": {
        "description": "The reason why the transaction failed.",
        "type": "string",
        "enum": [
          "bank-account-holder-name-mismatch",
          "beneficiary-country-restricted",
          "card-declined-by-bank",
          "card-expired",
          "card-permanently-declined-by-bank",
          "card-unauthorized",
          "card-unsupported",
          "insufficient-funds",
          "pending-requests-for-information",
          "provider-maximum-limit-exceeded",
          "screening-verification-failed",
          "travel-rule-verification-failed",
          "velocity",
          "unspecified-error"
        ]
      },
      "transaction": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the transaction.",
            "type": "string",
            "format": "uuid"
          },
          "origin": {
            "description": "The origin of the transaction.",
            "$ref": "#/components/schemas/transaction-origin-endpoint"
          },
          "destination": {
            "description": "The destination of the transaction.",
            "$ref": "#/components/schemas/transaction-destination-endpoint"
          },
          "denomination": {
            "description": "The denomination of the transaction.",
            "$ref": "#/components/schemas/transaction-denomination"
          },
          "fees": {
            "description": "The fees of the transaction.",
            "$ref": "#/components/schemas/transaction-fees"
          },
          "status": {
            "description": "Status of the transaction.",
            "type": "string",
            "enum": [
              "processing",
              "on-hold",
              "completed",
              "failed"
            ]
          },
          "statusDetails": {
            "description": "The details of the status of the transaction.",
            "type": "object",
            "properties": {
              "reason": {
                "$ref": "#/components/schemas/transaction-status-reason"
              }
            }
          },
          "quotedAt": {
            "description": "The time at which the quote was created.",
            "type": "string",
            "format": "date-time"
          },
          "createdAt": {
            "description": "The time at which the transaction was created.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "The last time at which the transaction was updated.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "origin",
          "destination",
          "fees",
          "status",
          "createdAt",
          "updatedAt",
          "quotedAt"
        ]
      },
      "request-for-information": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the RFI."
          },
          "type": {
            "description": "The type of the RFI.",
            "type": "string",
            "enum": [
              "travel-rule"
            ]
          },
          "status": {
            "description": "The status of the RFI.",
            "type": "string",
            "enum": [
              "ok",
              "pending",
              "expired",
              "failed"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          },
          "createdAt": {
            "description": "The time at which the RFI was created.",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "The date and time when the RFI was updated.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "type",
          "status",
          "createdAt",
          "updatedAt"
        ]
      },
      "portfolio-holding": {
        "type": "object",
        "properties": {
          "asset": {
            "type": "string",
            "description": "Asset code."
          },
          "total": {
            "type": "string",
            "description": "Total amount of the asset."
          },
          "available": {
            "type": "string",
            "description": "Available amount of the asset."
          },
          "baseTotal": {
            "type": "string",
            "description": "Base asset total amount."
          },
          "baseAvailable": {
            "type": "string",
            "description": "Base asset available amount."
          }
        },
        "required": [
          "asset",
          "total",
          "available"
        ]
      },
      "portfolio-overview": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "object",
            "properties": {
              "total": {
                "type": "string",
                "description": "Total portfolio value."
              },
              "available": {
                "type": "string",
                "description": "Available portfolio value."
              }
            },
            "required": [
              "total",
              "available"
            ]
          },
          "holdings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/portfolio-holding"
            }
          }
        },
        "required": [
          "summary",
          "holdings"
        ]
      },
      "portfolio-performance-overview": {
        "type": "object",
        "properties": {
          "totalInvested": {
            "type": "string",
            "format": "decimal",
            "description": "The total amount invested in the portfolio."
          },
          "unrealizedGains": {
            "type": "string",
            "format": "decimal",
            "description": "The unrealized gains or losses of the portfolio."
          }
        },
        "required": [
          "totalInvested",
          "unrealizedGains"
        ]
      },
      "portfolio-historical-balance-overview": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp for the balance entry."
          },
          "balance": {
            "type": "object",
            "properties": {
              "total": {
                "type": "string",
                "description": "The total balance at the given timestamp."
              },
              "available": {
                "type": "string",
                "description": "The available balance at the given timestamp."
              }
            },
            "required": [
              "total",
              "available"
            ]
          }
        },
        "required": [
          "timestamp"
        ]
      },
      "portfolio-performance": {
        "type": "object",
        "properties": {
          "averagePricePaid": {
            "type": "string",
            "description": "The average cost of the portfolio."
          },
          "totalInvested": {
            "type": "string",
            "description": "The total amount invested in the portfolio."
          },
          "unrealizedGains": {
            "type": "string",
            "description": "The unrealized gains or losses of the portfolio."
          }
        },
        "required": [
          "averagePricePaid",
          "totalInvested",
          "unrealizedGains"
        ]
      },
      "portfolio-historical-balance": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp for the balance entry."
          },
          "balance": {
            "type": "object",
            "properties": {
              "total": {
                "type": "string",
                "description": "The total balance at the given timestamp."
              },
              "available": {
                "type": "string",
                "description": "The available balance at the given timestamp."
              },
              "baseTotal": {
                "type": "string",
                "description": "Base asset total amount."
              },
              "baseAvailable": {
                "type": "string",
                "description": "Base asset available amount."
              }
            },
            "required": [
              "total",
              "available"
            ]
          }
        },
        "required": [
          "timestamp"
        ]
      },
      "json-patch-with-value": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "op": {
            "type": "string",
            "enum": [
              "add",
              "replace",
              "test"
            ]
          },
          "path": {
            "type": "string"
          },
          "value": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "object"
              },
              {
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "op",
          "path",
          "value"
        ]
      },
      "json-patch-with-from": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "op": {
            "type": "string",
            "enum": [
              "move",
              "copy"
            ]
          },
          "path": {
            "type": "string"
          },
          "from": {
            "type": "string"
          }
        },
        "required": [
          "op",
          "path",
          "from"
        ]
      },
      "json-patch-remove": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "op": {
            "type": "string",
            "const": "remove"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "op",
          "path"
        ]
      },
      "json-patch-operations": {
        "description": "An array of RFC 6902 JSON Patch operations.",
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "object",
          "discriminator": {
            "propertyName": "op",
            "mapping": {
              "add": "#/components/schemas/json-patch-with-value",
              "copy": "#/components/schemas/json-patch-with-from",
              "move": "#/components/schemas/json-patch-with-from",
              "remove": "#/components/schemas/json-patch-remove",
              "replace": "#/components/schemas/json-patch-with-value",
              "test": "#/components/schemas/json-patch-with-value"
            }
          },
          "oneOf": [
            {
              "title": "Add/Replace/Test",
              "$ref": "#/components/schemas/json-patch-with-value"
            },
            {
              "title": "Move/Copy",
              "$ref": "#/components/schemas/json-patch-with-from"
            },
            {
              "title": "Remove",
              "$ref": "#/components/schemas/json-patch-remove"
            }
          ]
        }
      },
      "webhook-management-link": {
        "description": "Webhook management link.",
        "type": "object",
        "properties": {
          "url": {
            "description": "The one-time URL to manage webhooks.",
            "type": "string",
            "format": "uri"
          },
          "expiresAt": {
            "description": "The expiration date and time for the management link.",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "url",
          "expiresAt"
        ]
      },
      "webhook-event": {
        "description": "The webhook event information.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the event.",
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "description": "The type of event.",
            "type": "string"
          },
          "createdAt": {
            "description": "The date and time when the event was created.",
            "type": "string",
            "format": "date-time"
          },
          "data": {
            "description": "The event payload.",
            "type": "object"
          }
        },
        "required": [
          "id",
          "type",
          "createdAt",
          "data"
        ]
      },
      "user-webhook-event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/webhook-event"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "user": {
                    "$ref": "#/components/schemas/user"
                  }
                },
                "required": [
                  "user"
                ]
              }
            }
          }
        ]
      },
      "kyc-webhook-event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/webhook-event"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "status": {
                    "$ref": "#/components/schemas/kyc-process-status"
                  },
                  "userId": {
                    "type": "string",
                    "description": "The id of the user.",
                    "format": "uuid"
                  }
                },
                "required": [
                  "status",
                  "userId"
                ]
              }
            }
          }
        ]
      },
      "assets-cooldown-webhook-event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/webhook-event"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "userId": {
                    "description": "The id of the user.",
                    "type": "string",
                    "format": "uuid"
                  },
                  "assets": {
                    "description": "The list of asset codes affected by the cooldown ending.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "cooldown": {
                    "type": "object",
                    "properties": {
                      "rule": {
                        "description": "The cooldown rule.",
                        "type": "string",
                        "enum": [
                          "financial-promotions"
                        ]
                      },
                      "features": {
                        "description": "The features affected by the cooldown.",
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "buy",
                            "deposit"
                          ]
                        }
                      },
                      "endsAt": {
                        "description": "The date and time when the cooldown ended.",
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "rule",
                      "features",
                      "endsAt"
                    ]
                  }
                },
                "required": [
                  "userId",
                  "assets",
                  "cooldown"
                ]
              }
            }
          }
        ]
      },
      "account-webhook-event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/webhook-event"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "account": {
                    "$ref": "#/components/schemas/account"
                  }
                },
                "required": [
                  "account"
                ]
              }
            }
          }
        ]
      },
      "external-account-webhook-event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/webhook-event"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "externalAccount": {
                    "$ref": "#/components/schemas/external-account"
                  }
                },
                "required": [
                  "externalAccount"
                ]
              }
            }
          }
        ]
      },
      "transaction-webhook-event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/webhook-event"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "transaction": {
                    "$ref": "#/components/schemas/transaction"
                  }
                },
                "required": [
                  "transaction"
                ]
              }
            }
          }
        ]
      }
    },
    "requestBodies": {
      "create-oauth2-token-request-body": {
        "content": {
          "application/x-www-form-urlencoded": {
            "schema": {
              "type": "object",
              "discriminator": {
                "propertyName": "grant_type",
                "mapping": {
                  "client_credentials": "#/components/schemas/create-oauth2-token-client-credentials",
                  "refresh_token": "#/components/schemas/create-oauth2-token-refresh-token"
                }
              },
              "oneOf": [
                {
                  "title": "Client credentials",
                  "$ref": "#/components/schemas/create-oauth2-token-client-credentials"
                },
                {
                  "title": "Refresh token",
                  "$ref": "#/components/schemas/create-oauth2-token-refresh-token"
                }
              ]
            },
            "examples": {
              "Client Credentials": {
                "value": {
                  "grant_type": "client_credentials",
                  "scope": "users:* users.kyc:read"
                }
              }
            }
          }
        }
      },
      "create-user-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "description": "The type of the user.",
                  "type": "string",
                  "default": "individual"
                }
              },
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "individual": "#/components/schemas/create-user-type-individual",
                  "business": "#/components/schemas/create-user-type-business"
                }
              },
              "oneOf": [
                {
                  "title": "Individual",
                  "$ref": "#/components/schemas/create-user-type-individual"
                },
                {
                  "title": "Business",
                  "$ref": "#/components/schemas/create-user-type-business"
                }
              ]
            },
            "examples": {
              "Create Individual User": {
                "value": {
                  "type": "individual",
                  "email": "john.doe@uphold.com",
                  "termsOfService": "general-gb-fca",
                  "country": "GB",
                  "subdivision": "GB-MAN",
                  "citizenshipCountry": "GB",
                  "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                  "metadata": {
                    "externalId": 123
                  }
                }
              },
              "Create Business User": {
                "value": {
                  "type": "business",
                  "email": "acme-corp@uphold.com",
                  "termsOfService": "general-gb-fca",
                  "country": "GB",
                  "subdivision": "GB-MAN",
                  "legalEntityType": "private-limited-company",
                  "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "delete-user-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/delete-user-review"
            },
            "examples": {
              "Delete User": {
                "value": {
                  "review": {
                    "reason": "closure-per-user-request",
                    "note": "User requested account closure"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-profile-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "title": "Dynamic Form",
                  "description": "Dynamic form input following the [JSON Forms](https://jsonforms.io/) specification, enabling progressive disclosure of properties and anytime submissions to keep profile details up to date.",
                  "type": "object",
                  "properties": {
                    "input": {
                      "type": "object",
                      "additionalProperties": true,
                      "minProperties": 1,
                      "maxProperties": 1,
                      "propertyNames": {
                        "not": {
                          "enum": [
                            "fullName",
                            "birthdate",
                            "citizenshipCountry"
                          ]
                        }
                      }
                    }
                  },
                  "required": [
                    "input"
                  ]
                },
                {
                  "title": "Legacy Input (deprecated)",
                  "description": "Deprecated flat structure with direct top-level fields.",
                  "type": "object",
                  "properties": {
                    "input": {
                      "type": "object",
                      "additionalProperties": false,
                      "minProperties": 1,
                      "properties": {
                        "fullName": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/string-at-least-two-words-no-edge-spaces"
                            },
                            {
                              "description": "The full legal name.",
                              "type": "string",
                              "minLength": 2,
                              "maxLength": 255
                            }
                          ]
                        },
                        "birthdate": {
                          "description": "The date of birth.",
                          "type": "string",
                          "format": "date"
                        },
                        "citizenshipCountry": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/country-code-for-request"
                            },
                            {
                              "description": "The citizenship country."
                            }
                          ]
                        }
                      }
                    }
                  },
                  "required": [
                    "input"
                  ]
                }
              ]
            },
            "examples": {
              "Update Process": {
                "value": {
                  "input": {
                    "details": {
                      "fullName": "John Doe",
                      "primaryCitizenship": "GB",
                      "birthdate": "1987-01-01"
                    }
                  }
                }
              },
              "Update Process (Deprecated)": {
                "value": {
                  "input": {
                    "fullName": "John Doe",
                    "birthdate": "1987-01-01",
                    "citizenshipCountry": "GB"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-address-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "input": {
                  "description": "Input of the KYC process.",
                  "type": "object",
                  "properties": {
                    "address": {
                      "description": "The address information.",
                      "type": "object",
                      "additionalProperties": false,
                      "minProperties": 1,
                      "properties": {
                        "subdivision": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/subdivision-code-for-request"
                            },
                            {
                              "description": "The subdivision of the address."
                            }
                          ]
                        },
                        "city": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/string-no-edge-spaces"
                            },
                            {
                              "description": "The city of the address."
                            }
                          ]
                        },
                        "line1": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/string-no-edge-spaces"
                            },
                            {
                              "description": "The first line of the address."
                            }
                          ]
                        },
                        "line2": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/string-no-edge-spaces"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The second line of the address."
                        },
                        "postalCode": {
                          "allOf": [
                            {
                              "$ref": "#/components/schemas/string-no-edge-spaces"
                            },
                            {
                              "description": "The postal code of the address."
                            }
                          ]
                        }
                      }
                    }
                  },
                  "required": [
                    "address"
                  ]
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process": {
                "value": {
                  "input": {
                    "address": {
                      "subdivision": "GB-MAN",
                      "city": "Manchester",
                      "line1": "1 High Street",
                      "line2": "Northern Quarter",
                      "postalCode": "M4 1AA"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-email-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "input": {
                  "description": "Input of the KYC process.",
                  "type": "object",
                  "properties": {
                    "email": {
                      "description": "The email address to be verified.",
                      "type": "string",
                      "format": "email",
                      "maxLength": 255
                    }
                  },
                  "required": [
                    "email"
                  ]
                },
                "output": {
                  "description": "Output of the KYC process.",
                  "type": "object",
                  "properties": {
                    "verifiedAt": {
                      "description": "The date and time of the verification.",
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "verifiedAt"
                  ]
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process Authoritatively": {
                "value": {
                  "input": {
                    "email": "john.doe@uphold.com"
                  },
                  "output": {
                    "verifiedAt": "2020-01-01T00:00:00.000Z"
                  }
                }
              },
              "Update Process Non-Authoritatively": {
                "value": {
                  "input": {
                    "email": "john.doe@uphold.com"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-phone-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "input": {
                  "description": "Input of the KYC process.",
                  "type": "object",
                  "properties": {
                    "phone": {
                      "description": "The E.164 formatted phone number to be verified.",
                      "type": "string",
                      "pattern": "^\\+[0-9]{1,15}$"
                    },
                    "country": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/country-code-for-request"
                        },
                        {
                          "description": "The country code of the phone number.\n\nIt must be a ISO alpha-2 code that is used to disambiguate phone numbers with the same dialing code."
                        }
                      ]
                    }
                  },
                  "required": [
                    "phone",
                    "country"
                  ]
                },
                "output": {
                  "description": "Output of the KYC process.",
                  "type": "object",
                  "properties": {
                    "verifiedAt": {
                      "description": "The date and time of the verification.",
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "verifiedAt"
                  ]
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process Authoritatively": {
                "value": {
                  "input": {
                    "phone": "+447400123456",
                    "country": "GB"
                  },
                  "output": {
                    "verifiedAt": "2020-01-01T00:00:00.000Z"
                  }
                }
              },
              "Update Process Non-Authoritatively": {
                "value": {
                  "input": {
                    "phone": "+447400123456",
                    "country": "GB"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-identity-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "document-submission": "#/components/schemas/update-kyc-identity-document-submission",
                  "electronic-verification": "#/components/schemas/update-kyc-identity-electronic-verification"
                }
              },
              "oneOf": [
                {
                  "title": "Document submission",
                  "$ref": "#/components/schemas/update-kyc-identity-document-submission"
                },
                {
                  "title": "Electronic verification",
                  "$ref": "#/components/schemas/update-kyc-identity-electronic-verification"
                }
              ]
            },
            "examples": {
              "Update Process Authoritatively via Document Submission": {
                "value": {
                  "type": "document-submission",
                  "input": {
                    "media": [
                      {
                        "context": "photo-selfie",
                        "fileId": "470b2192-893f-4ce6-9daa-816d4c319a84"
                      }
                    ]
                  },
                  "output": {
                    "provider": "veriff",
                    "document": {
                      "type": "passport",
                      "number": "7700225VH",
                      "country": "GB",
                      "expiresAt": "2026-03-13"
                    },
                    "person": {
                      "givenName": "John",
                      "familyName": "Doe",
                      "birthdate": "1987-01-01",
                      "gender": "male"
                    },
                    "verifiedAt": "2020-01-01T00:00:00.000Z"
                  }
                }
              },
              "Update Process Authoritatively via Electronic Verification": {
                "value": {
                  "type": "electronic-verification",
                  "input": {
                    "data": {
                      "givenName": "John",
                      "familyName": "Doe",
                      "birthdate": "1987-01-01",
                      "citizenshipCountry": "GB",
                      "address": {
                        "country": "GB",
                        "city": "Manchester",
                        "line1": "1 High Street",
                        "postalCode": "M4 1AA"
                      }
                    }
                  },
                  "output": {
                    "provider": "onfido",
                    "verifiedAt": "2020-01-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-proof-of-address-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "electronic-verification": "#/components/schemas/update-kyc-proof-of-address-electronic-verification",
                  "document-submission": "#/components/schemas/update-kyc-proof-of-address-document-submission"
                }
              },
              "oneOf": [
                {
                  "title": "Document submission",
                  "$ref": "#/components/schemas/update-kyc-proof-of-address-document-submission"
                },
                {
                  "title": "Electronic verification",
                  "$ref": "#/components/schemas/update-kyc-proof-of-address-electronic-verification"
                }
              ]
            },
            "examples": {
              "Update Process Authoritatively via Document Submission": {
                "value": {
                  "type": "document-submission",
                  "input": {
                    "media": [
                      {
                        "context": "address-proof",
                        "fileId": "459c0447-8916-4bad-bb67-f2354fcfb10b"
                      }
                    ]
                  },
                  "output": {
                    "provider": "sumsub",
                    "person": {
                      "givenName": "John",
                      "familyName": "Doe",
                      "address": {
                        "country": "GB",
                        "subdivision": "GB-MAN",
                        "city": "Manchester",
                        "line1": "1 High Street",
                        "line2": "Northern Quarter",
                        "postalCode": "M4 1AA"
                      }
                    },
                    "verifiedAt": "2020-01-01T00:00:00.000Z"
                  }
                }
              },
              "Update Process Authoritatively via Electronic Verification": {
                "value": {
                  "type": "electronic-verification",
                  "input": {
                    "data": {
                      "givenName": "John",
                      "familyName": "Doe",
                      "address": {
                        "country": "GB",
                        "subdivision": "GB-MAN",
                        "city": "Manchester",
                        "line1": "1 High Street",
                        "line2": "Northern Quarter",
                        "postalCode": "M4 1AA"
                      }
                    }
                  },
                  "output": {
                    "provider": "sumsub",
                    "verifiedAt": "2020-01-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-customer-due-diligence-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "input": {
                  "$ref": "#/components/schemas/kyc-process-input-form-for-request"
                },
                "output": {
                  "description": "Output of the KYC process.",
                  "type": "object",
                  "properties": {
                    "score": {
                      "description": "The score of the verification.",
                      "type": "string",
                      "enum": [
                        "low",
                        "medium",
                        "high"
                      ]
                    },
                    "expiresAt": {
                      "description": "The date and time when the verification expires.",
                      "type": "string",
                      "format": "date-time"
                    },
                    "verifiedAt": {
                      "description": "The date and time of the verification.",
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "score",
                    "expiresAt",
                    "verifiedAt"
                  ]
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process Non-Authoritatively": {
                "value": {
                  "input": {
                    "formId": "ae80271a-a3f0-453b-8dc6-36b777817217",
                    "answers": {
                      "intent": {
                        "expected-activities": [
                          "cryptocurrency_investing",
                          "deposit_withdraw_crypto"
                        ]
                      }
                    }
                  }
                }
              },
              "Update Process Authoritatively": {
                "value": {
                  "input": {
                    "answers": {
                      "financial-profile": {
                        "expected-activities": [
                          "cryptocurrency_investing"
                        ],
                        "source-of-funds": "salary",
                        "annual-income-range": "40000-60000-GBP",
                        "savings-and-investments-range": "0-5000-GBP",
                        "employment-status": "employed",
                        "employment-industry": "Engineering",
                        "employment-occupation": "Galactic Vibe Curator"
                      }
                    }
                  },
                  "output": {
                    "score": "low",
                    "expiresAt": "2026-01-01T00:00:00.000Z",
                    "verifiedAt": "2023-01-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-enhanced-due-diligence-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "input": {
                  "description": "Input of the KYC process.",
                  "type": "object",
                  "properties": {
                    "media": {
                      "type": "array",
                      "minItems": 1,
                      "maxItems": 1,
                      "items": {
                        "type": "object",
                        "properties": {
                          "context": {
                            "description": "The context of the file.",
                            "type": "string",
                            "enum": [
                              "source-of-funds-proof"
                            ]
                          },
                          "fileId": {
                            "description": "The id of the file.",
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "context",
                          "fileId"
                        ]
                      }
                    }
                  },
                  "required": [
                    "media"
                  ]
                },
                "output": {
                  "description": "Output of the KYC process.",
                  "type": "object",
                  "properties": {
                    "verifiedAt": {
                      "description": "The date and time of the verification.",
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "verifiedAt"
                  ]
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process Authoritatively": {
                "value": {
                  "input": {
                    "media": [
                      {
                        "context": "source-of-funds-proof",
                        "fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
                      }
                    ]
                  },
                  "output": {
                    "verifiedAt": "2020-01-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-crypto-risk-assessment-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "input": {
                  "$ref": "#/components/schemas/kyc-process-input-form-for-request"
                },
                "output": {
                  "description": "Output of the KYC process.",
                  "type": "object",
                  "properties": {
                    "result": {
                      "description": "The result of the verification.",
                      "type": "string",
                      "enum": [
                        "approved",
                        "rejected"
                      ]
                    },
                    "attempts": {
                      "description": "The attempts state of the verification.",
                      "type": "object",
                      "properties": {
                        "used": {
                          "description": "The number of attempts used. Default is 1.",
                          "type": "integer",
                          "minimum": 1
                        },
                        "maximum": {
                          "description": "The maximum number of attempts allowed. Default is 5.",
                          "type": "integer",
                          "minimum": 1
                        }
                      },
                      "default": {
                        "used": 1,
                        "maximum": 5
                      },
                      "required": [
                        "used",
                        "maximum"
                      ]
                    },
                    "verifiedAt": {
                      "description": "The date and time of the verification.",
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "result",
                    "attempts",
                    "verifiedAt"
                  ]
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process Non-Authoritatively": {
                "value": {
                  "input": {
                    "formId": "7a0f4229-e3de-4dfd-8f91-9b1308b2dc33",
                    "answers": {
                      "financial-information": {
                        "annual-income-range": "20000-30000"
                      }
                    }
                  }
                }
              },
              "Update Process Authoritatively": {
                "value": {
                  "input": {
                    "answers": {
                      "crypto-quiz": {
                        "attitude-towards-risk": "agree",
                        "risks-and-returns": "guarantee_returns_and_precisely_predict_risk",
                        "total-loss-potential": "just_my_profit",
                        "capital-at-risk": "capital_will_always_appreciate",
                        "risk-similarity": "similar_to_savings_in_a_bank_account_or_investing_in_regulated_shares",
                        "liquidity-understanding": "a_lack_of_market_liquidity",
                        "losses-protection": "yes_they_cover_all_my_losses",
                        "risk-allocation-of-assets": "over_50"
                      }
                    }
                  },
                  "output": {
                    "result": "approved",
                    "attempts": {
                      "used": 1,
                      "maximum": 5
                    },
                    "verifiedAt": "2023-01-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-self-categorization-statement-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "input": {
                  "$ref": "#/components/schemas/kyc-process-input-form-for-request"
                },
                "output": {
                  "description": "Output of the KYC process.",
                  "type": "object",
                  "properties": {
                    "result": {
                      "description": "The result of the verification.",
                      "type": "string",
                      "enum": [
                        "approved",
                        "rejected"
                      ]
                    },
                    "attempts": {
                      "description": "The attempts state of the verification.",
                      "type": "object",
                      "properties": {
                        "used": {
                          "description": "The number of attempts used. Default is 1.",
                          "type": "integer",
                          "minimum": 1
                        },
                        "maximum": {
                          "description": "The maximum number of attempts allowed. Default is 30.",
                          "type": "integer",
                          "minimum": 1
                        }
                      },
                      "default": {
                        "used": 1,
                        "maximum": 30
                      },
                      "required": [
                        "used",
                        "maximum"
                      ]
                    },
                    "expiresAt": {
                      "description": "The date and time when the verification expires.",
                      "type": "string",
                      "format": "date-time"
                    },
                    "verifiedAt": {
                      "description": "The date and time of the verification.",
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "result",
                    "attempts",
                    "expiresAt",
                    "verifiedAt"
                  ]
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process Non-Authoritatively": {
                "value": {
                  "input": {
                    "formId": "ac33651f-f2d3-47c4-8e8d-06fb87361f5c",
                    "answers": {
                      "investor": {
                        "type": "restricted_investor"
                      }
                    }
                  }
                }
              },
              "Update Process Authoritatively": {
                "value": {
                  "input": {
                    "answers": {
                      "investor-category": {
                        "type": "high_net_worth_investor",
                        "annual-income-above-100000": "yes",
                        "annual-income": 120000,
                        "net-assets-above-250000": "yes",
                        "net-assets": 255000
                      }
                    }
                  },
                  "output": {
                    "result": "approved",
                    "attempts": {
                      "used": 1,
                      "maximum": 30
                    },
                    "expiresAt": "2026-01-01T00:00:00.000Z",
                    "verifiedAt": "2023-01-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        }
      },
      "update-kyc-tax-details-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "title": "Dynamic Form",
              "description": "Dynamic form input following the [JSON Forms](https://jsonforms.io/) specification, enabling progressive disclosure of properties and anytime submissions to keep tax details up to date.",
              "type": "object",
              "properties": {
                "input": {
                  "type": "object",
                  "additionalProperties": true,
                  "minProperties": 1,
                  "maxProperties": 1
                },
                "output": {
                  "$ref": "#/components/schemas/update-kyc-tax-details-request-body-output"
                }
              },
              "required": [
                "input"
              ]
            },
            "examples": {
              "Update Process Non-Authoritatively": {
                "value": {
                  "input": {
                    "taxResidency": {
                      "countries": [
                        "GB"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      },
      "create-file-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "category": {
                  "description": "The category of the file.",
                  "type": "string",
                  "enum": [
                    "document",
                    "image",
                    "video"
                  ]
                },
                "contentType": {
                  "description": "The content type of the file.",
                  "type": "string"
                },
                "metadata": {
                  "description": "Additional data for the file.",
                  "$ref": "#/components/schemas/metadata"
                }
              },
              "required": [
                "category",
                "contentType"
              ]
            },
            "examples": {
              "Create File": {
                "value": {
                  "category": "image",
                  "contentType": "image/png",
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "get-many-assets-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "description": "The asset codes to retrieve.",
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 100,
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              },
              "required": [
                "codes"
              ]
            },
            "examples": {
              "Get Many Assets": {
                "value": {
                  "codes": [
                    "BTC",
                    "ETH"
                  ]
                }
              }
            }
          }
        }
      },
      "validate-network-address-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "address": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/string-no-edge-spaces"
                    },
                    {
                      "description": "The crypto address to validate."
                    }
                  ]
                },
                "reference": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/string-no-edge-spaces"
                    },
                    {
                      "description": "The destination reference (for networks that support it, e.g., XRP destination tag)."
                    }
                  ]
                }
              },
              "required": [
                "address"
              ]
            },
            "examples": {
              "Validate Bitcoin Address": {
                "value": {
                  "address": "tb1qgu0gacn9pqpnvlqclvdwyz4gfgxz8pptfz4emt"
                }
              },
              "Validate XRP Address With Reference": {
                "value": {
                  "address": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
                  "reference": "12345"
                }
              }
            }
          }
        }
      },
      "create-account-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "label": {
                  "$ref": "#/components/schemas/account-label-for-request"
                },
                "asset": {
                  "description": "The asset in which the account will be denominated.",
                  "type": "string"
                },
                "metadata": {
                  "description": "Additional data for the account.",
                  "$ref": "#/components/schemas/metadata"
                }
              },
              "required": [
                "label",
                "asset"
              ]
            },
            "examples": {
              "Create Account": {
                "value": {
                  "label": "My BTC account",
                  "asset": "BTC",
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "update-account-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "minProperties": 1,
              "properties": {
                "label": {
                  "$ref": "#/components/schemas/account-label-for-request"
                }
              }
            },
            "examples": {
              "Update Account": {
                "value": {
                  "label": "My BTC long-term"
                }
              }
            }
          }
        }
      },
      "simulate-bank-deposit-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "discriminator": {
                "propertyName": "network",
                "mapping": {
                  "fps": "#/components/schemas/simulate-bank-deposit-fps-for-request",
                  "sepa": "#/components/schemas/simulate-bank-deposit-sepa-for-request"
                }
              },
              "oneOf": [
                {
                  "title": "FPS",
                  "$ref": "#/components/schemas/simulate-bank-deposit-fps-for-request"
                },
                {
                  "title": "SEPA",
                  "$ref": "#/components/schemas/simulate-bank-deposit-sepa-for-request"
                }
              ]
            },
            "examples": {
              "Simulate FPS Bank Deposit": {
                "value": {
                  "network": "fps",
                  "sortCode": "123456",
                  "accountNumber": "12345678",
                  "reference": "UH12345678",
                  "asset": "GBP",
                  "amount": "100",
                  "remitter": {
                    "name": "John Doe",
                    "sortCode": "654321",
                    "accountNumber": "87654321"
                  }
                }
              },
              "Simulate SEPA Bank Deposit": {
                "value": {
                  "network": "sepa",
                  "iban": "AT487954841229809844",
                  "reference": "UH12345678",
                  "asset": "EUR",
                  "amount": "100",
                  "remitter": {
                    "name": "John Doe",
                    "bic": "LHVBEE22",
                    "iban": "DE89370400440532013000"
                  }
                }
              }
            }
          }
        }
      },
      "create-external-account-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "card": "#/components/schemas/create-external-account-card",
                  "bank": "#/components/schemas/create-external-account-bank-ach"
                }
              },
              "oneOf": [
                {
                  "title": "Card",
                  "$ref": "#/components/schemas/create-external-account-card"
                },
                {
                  "title": "Bank (ACH)",
                  "$ref": "#/components/schemas/create-external-account-bank-ach"
                }
              ]
            },
            "examples": {
              "Create ACH Bank Account": {
                "value": {
                  "type": "bank",
                  "asset": "USD",
                  "network": "ach",
                  "label": "My ACH Bank Account",
                  "address": {
                    "country": "US",
                    "subdivision": "US-CA",
                    "city": "San Francisco",
                    "line1": "123 Main Street",
                    "line2": "Apt 4B",
                    "postalCode": "94102"
                  },
                  "routingNumber": "121000248",
                  "accountNumber": "9876543210",
                  "accountType": "checking"
                }
              },
              "Create Card": {
                "value": {
                  "type": "card",
                  "label": "My Visa Card",
                  "number": "4111111111111111",
                  "securityCode": "123",
                  "expiryDate": {
                    "month": 12,
                    "year": 2030
                  },
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "update-external-account-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "minProperties": 1,
              "properties": {
                "label": {
                  "$ref": "#/components/schemas/external-account-label-for-request"
                }
              }
            },
            "examples": {
              "Update Account": {
                "value": {
                  "label": "My new VISA card"
                }
              }
            }
          }
        }
      },
      "create-quote-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "origin": {
                  "$ref": "#/components/schemas/create-quote-origin-node"
                },
                "destination": {
                  "$ref": "#/components/schemas/create-quote-destination-node"
                },
                "denomination": {
                  "type": "object",
                  "properties": {
                    "asset": {
                      "description": "The asset in which the transaction is denominated.",
                      "type": "string"
                    },
                    "amount": {
                      "description": "The amount of the transaction.",
                      "type": "string",
                      "pattern": "^\\d+(\\.\\d+)?$"
                    },
                    "target": {
                      "description": "Whether this exact amount should be paid by the origin or received by the destination.",
                      "type": "string",
                      "enum": [
                        "origin",
                        "destination"
                      ],
                      "default": "origin"
                    }
                  },
                  "required": [
                    "asset",
                    "amount"
                  ]
                },
                "ttl": {
                  "description": "The time-to-live for the quote in milliseconds.",
                  "type": "integer",
                  "minimum": 1
                }
              },
              "required": [
                "origin",
                "destination",
                "denomination"
              ]
            },
            "examples": {
              "Trade - Buy 100£ of BTC using GBP": {
                "value": {
                  "origin": {
                    "type": "account",
                    "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9"
                  },
                  "destination": {
                    "type": "account",
                    "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc"
                  },
                  "denomination": {
                    "asset": "GBP",
                    "amount": "100.00",
                    "target": "origin"
                  }
                }
              },
              "Trade - Buy 100£ worth of ETH using BTC": {
                "value": {
                  "origin": {
                    "type": "account",
                    "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc"
                  },
                  "destination": {
                    "type": "account",
                    "id": "38778db4-7ad5-4353-88b8-07e93eb1e02e"
                  },
                  "denomination": {
                    "asset": "GBP",
                    "amount": "100.00",
                    "target": "origin"
                  }
                }
              },
              "Trade - Sell ETH to buy exactly 0.001 BTC": {
                "value": {
                  "origin": {
                    "type": "account",
                    "id": "38778db4-7ad5-4353-88b8-07e93eb1e02e"
                  },
                  "destination": {
                    "type": "account",
                    "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc"
                  },
                  "denomination": {
                    "asset": "BTC",
                    "amount": "0.001",
                    "target": "destination"
                  }
                }
              },
              "Deposit - 50£ from an external account": {
                "value": {
                  "origin": {
                    "type": "external-account",
                    "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc"
                  },
                  "destination": {
                    "type": "account",
                    "id": "38778db4-7ad5-4353-88b8-07e93eb1e02e"
                  },
                  "denomination": {
                    "asset": "GBP",
                    "amount": "50.00",
                    "target": "origin"
                  }
                }
              },
              "Withdraw - 50£ to an external account": {
                "value": {
                  "origin": {
                    "type": "account",
                    "id": "38778db4-7ad5-4353-88b8-07e93eb1e02e"
                  },
                  "destination": {
                    "type": "external-account",
                    "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc"
                  },
                  "denomination": {
                    "asset": "GBP",
                    "amount": "50.00",
                    "target": "origin"
                  }
                }
              },
              "Withdraw - 100£ to a crypto address": {
                "value": {
                  "origin": {
                    "type": "account",
                    "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc"
                  },
                  "destination": {
                    "type": "crypto-address",
                    "asset": "BTC",
                    "network": "bitcoin",
                    "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
                  },
                  "denomination": {
                    "asset": "GBP",
                    "amount": "100.00",
                    "target": "origin"
                  }
                }
              }
            }
          }
        }
      },
      "create-transaction-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "quoteId": {
                  "description": "The quote ID to commit.",
                  "type": "string",
                  "format": "uuid"
                },
                "params": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "Additional parameters required to create the transaction.",
                      "properties": {
                        "travelRule": {
                          "description": "The travel rule data needed to create the transaction.",
                          "type": "object"
                        },
                        "returnUrl": {
                          "description": "The URL to redirect after the 3DS authorization flow.",
                          "type": "string",
                          "format": "uri",
                          "pattern": "^[a-zA-Z][a-zA-Z0-9+\\-.]*:\\/\\/[^\\s]+$"
                        }
                      }
                    }
                  ]
                },
                "metadata": {
                  "description": "Additional data for the transaction.",
                  "$ref": "#/components/schemas/metadata"
                }
              },
              "required": [
                "quoteId"
              ]
            },
            "examples": {
              "Create Transaction": {
                "value": {
                  "quoteId": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                  "metadata": {
                    "externalId": 123
                  }
                }
              },
              "Create Card Deposit Transaction": {
                "value": {
                  "quoteId": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                  "params": {
                    "returnUrl": "https://example.com/redirect"
                  },
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "update-transaction-request-for-information-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "title": "Travel Rule",
                  "description": "The Travel Rule data needed to resolve the RFI.",
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "additionalProperties": true,
                      "minProperties": 1
                    }
                  },
                  "required": [
                    "data"
                  ]
                }
              ]
            },
            "examples": {
              "Update Travel Rule Request for Information": {
                "value": {
                  "data": {
                    "proof": {
                      "type": "self-declaration",
                      "did": "did:pkh:xrpl:0:rExampleAddress123456789",
                      "address": "xrpl:0:rExampleAddress123456789",
                      "attestation": "I hereby declare that the blockchain address rExampleAddress123456789 is under my own control and ownership.",
                      "confirmed": true,
                      "status": "verified",
                      "txUpdate": {
                        "originatorProof": {
                          "type": "self-declaration",
                          "did": "did:pkh:xrpl:0:rExampleAddress123456789",
                          "address": "xrpl:0:rExampleAddress123456789",
                          "attestation": "I hereby declare that the blockchain address rExampleAddress123456789 is under my own control and ownership.",
                          "confirmed": true,
                          "status": "verified"
                        },
                        "transactionAsset": {
                          "caip19": "xrpl:0/slip44:144"
                        },
                        "transactionAmount": "4000000",
                        "originatorEqualsBeneficiary": true,
                        "beneficiaryVASPdid": "did:ethr:0xExampleVASPAddress000000000000000000000000",
                        "originatorVASPdid": "did:pkh:xrpl:0:rExampleAddress123456789",
                        "beneficiary": {},
                        "originator": {
                          "originatorPersons": [
                            {
                              "naturalPerson": {
                                "name": {
                                  "nameIdentifier": [
                                    {
                                      "primaryIdentifier": "Doe",
                                      "secondaryIdentifier": "John",
                                      "nameIdentifierType": "LEGL"
                                    }
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      }
                    },
                    "errors": [],
                    "status": "pending",
                    "valid": true,
                    "value": {
                      "amountDecimal": 4,
                      "asset": "XRP-XRP",
                      "customer": {
                        "name": "John Doe",
                        "type": "natural"
                      },
                      "source": [
                        "rExampleAddress123456789"
                      ],
                      "agent": {
                        "type": "WALLET",
                        "verified": true,
                        "did": "did:pkh:xrpl:0:rExampleAddress123456789"
                      },
                      "counterparty": {
                        "name": "John Doe",
                        "type": "self",
                        "did": "did:key:zExampleKeyDid123456789",
                        "verified": true
                      },
                      "assetPrice": {
                        "price": 1.23,
                        "currency": "USD"
                      }
                    },
                    "ivms101": {
                      "originator": {
                        "originatorPersons": [
                          {
                            "naturalPerson": {
                              "name": {
                                "nameIdentifier": [
                                  {
                                    "primaryIdentifier": "Doe",
                                    "secondaryIdentifier": "John",
                                    "nameIdentifierType": "LEGL"
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "get-portfolio-many-assets-performance-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "description": "The asset codes to retrieve.",
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 100,
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                }
              },
              "required": [
                "codes"
              ]
            },
            "examples": {
              "Get Many Assets": {
                "value": {
                  "codes": [
                    "BTC",
                    "ETH"
                  ]
                }
              }
            }
          }
        }
      },
      "get-many-accounts-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "ids": {
                  "description": "The account IDs to retrieve.",
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 100,
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              },
              "required": [
                "ids"
              ]
            },
            "examples": {
              "Get Many Accounts": {
                "value": {
                  "ids": [
                    "e4c1cbff-28a7-4602-9661-169e42040c22",
                    "a9ef84a1-45c3-4796-8002-297dc57ac85d"
                  ]
                }
              }
            }
          }
        }
      },
      "set-metadata-request-body": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/metadata"
            },
            "examples": {
              "Set Metadata": {
                "value": {
                  "externalId": 123
                }
              }
            }
          }
        }
      },
      "update-metadata-request-body": {
        "content": {
          "application/json-patch+json": {
            "schema": {
              "$ref": "#/components/schemas/json-patch-operations"
            },
            "examples": {
              "Add Property": {
                "value": [
                  {
                    "op": "add",
                    "path": "/status",
                    "value": "active"
                  }
                ]
              },
              "Update Property": {
                "value": [
                  {
                    "op": "replace",
                    "path": "/tier",
                    "value": "gold"
                  }
                ]
              },
              "Remove Property": {
                "value": [
                  {
                    "op": "remove",
                    "path": "/region"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "responses": {
      "create-oauth2-token-response": {
        "description": "Token created successfully.",
        "headers": {
          "x-uphold-organization-id": {
            "description": "The organization id of the associated token.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          "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"
              }
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/oauth2-token"
            },
            "examples": {
              "OK": {
                "value": {
                  "access_token": "eyJhbGciOiJIUzI1NiIsI...",
                  "expires_in": 600,
                  "scope": "users:* users.kyc:read",
                  "token_type": "Bearer"
                }
              }
            }
          }
        }
      },
      "create-oauth2-token-bad-request-response": {
        "description": "Bad Request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/oauth2-error"
            },
            "examples": {
              "Invalid Request": {
                "value": {
                  "error": "invalid_request",
                  "error_description": "Body tag grant_type must be string"
                }
              },
              "Unsupported Grant Type": {
                "value": {
                  "error": "unsupported_grant_type",
                  "error_description": "Grant type not supported"
                }
              },
              "Invalid Grant": {
                "value": {
                  "error": "invalid_grant",
                  "error_description": "Token expired"
                }
              },
              "Invalid Scope": {
                "value": {
                  "error": "invalid_scope",
                  "error_description": "Requested scopes must be equal or narrower"
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-oauth2-token-unauthorized-response": {
        "description": "Unauthorized.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/oauth2-error"
            },
            "examples": {
              "Invalid Authorization Header": {
                "value": {
                  "error": "invalid_client",
                  "error_description": "Client id and secret could not be extracted from Authorization header"
                }
              },
              "Invalid Client": {
                "value": {
                  "error": "invalid_client",
                  "error_description": "Client does not exist or secret is incorrect"
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "too-many-requests": {
        "description": "Too Many Requests.",
        "headers": {
          "Retry-After": {
            "description": "The number of seconds to wait before making a new request.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "examples": {
              "Retry After": {
                "value": 60
              }
            }
          },
          "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"
              }
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Too Many Requests": {
                "value": {
                  "code": "too_many_requests",
                  "message": "Try again later"
                }
              }
            }
          }
        }
      },
      "list-countries-response": {
        "description": "Countries list retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "countries": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/country"
                  }
                }
              },
              "required": [
                "countries"
              ]
            },
            "examples": {
              "Countries List Retrieved": {
                "value": {
                  "countries": [
                    {
                      "code": "GB",
                      "name": "United Kingdom",
                      "asset": "GBP",
                      "restrictions": [],
                      "subdivisions": [
                        {
                          "code": "GB-BAS",
                          "name": "Bath and North East Somerset",
                          "restrictions": []
                        },
                        {
                          "code": "GB-LND",
                          "name": "London, City of",
                          "restrictions": []
                        }
                      ]
                    },
                    {
                      "code": "US",
                      "name": "United States of America",
                      "asset": "USD",
                      "restrictions": [],
                      "subdivisions": [
                        {
                          "code": "US-CA",
                          "name": "California",
                          "restrictions": []
                        },
                        {
                          "code": "US-NY",
                          "name": "New York",
                          "restrictions": [
                            {
                              "scope": "residence"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "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-country-response": {
        "description": "Country retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "country": {
                  "$ref": "#/components/schemas/country"
                }
              }
            },
            "examples": {
              "Country Retrieved": {
                "value": {
                  "country": {
                    "code": "GB",
                    "name": "United Kingdom",
                    "asset": "GBP",
                    "restrictions": [],
                    "subdivisions": [
                      {
                        "code": "GB-BAS",
                        "name": "Bath and North East Somerset",
                        "restrictions": []
                      },
                      {
                        "code": "GB-LND",
                        "name": "London, City of",
                        "restrictions": []
                      }
                    ]
                  }
                }
              },
              "Restricted Country Retrieved": {
                "value": {
                  "country": {
                    "code": "VE",
                    "name": "Venezuela",
                    "asset": "VEF",
                    "restrictions": [
                      {
                        "scope": "citizenship"
                      },
                      {
                        "scope": "residence"
                      },
                      {
                        "scope": "phone"
                      },
                      {
                        "scope": "geolocation"
                      }
                    ],
                    "subdivisions": [
                      {
                        "code": "VE-A",
                        "name": "Distrito Capital",
                        "restrictions": [
                          {
                            "scope": "residence"
                          }
                        ]
                      },
                      {
                        "code": "VE-P",
                        "name": "Portuguesa",
                        "restrictions": [
                          {
                            "scope": "residence"
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              "Country With Restricted Subdivisions Retrieved": {
                "value": {
                  "country": {
                    "code": "US",
                    "name": "United States of America",
                    "asset": "USD",
                    "restrictions": [],
                    "subdivisions": [
                      {
                        "code": "US-CA",
                        "name": "California",
                        "restrictions": []
                      },
                      {
                        "code": "US-NY",
                        "name": "New York",
                        "restrictions": [
                          {
                            "scope": "residence"
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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-country-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Country Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The country cannot be found",
                  "details": {
                    "entity": "country"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-user-response": {
        "description": "User created.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/user"
                },
                "errors": {
                  "description": "Additional contextual errors that occurred while processing the request.",
                  "type": "object",
                  "properties": {
                    "metadata": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/error"
                        },
                        {
                          "description": "Error related to metadata processing."
                        }
                      ]
                    }
                  }
                }
              },
              "required": [
                "user"
              ]
            },
            "examples": {
              "Individual User Created": {
                "value": {
                  "user": {
                    "id": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
                    "type": "individual",
                    "email": "john.doe@uphold.com",
                    "citizenshipCountry": "GB",
                    "address": {
                      "country": "GB",
                      "subdivision": "GB-MAN"
                    },
                    "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                    "createdAt": "2024-03-13T20:20:39.000Z",
                    "updatedAt": "2024-03-13T20:20:39.000Z"
                  }
                }
              },
              "Business User Created": {
                "value": {
                  "user": {
                    "id": "4237b7f2-4658-4183-ab56-b2fc4ecd7b7f",
                    "type": "business",
                    "email": "acme-corp@uphold.com",
                    "address": {
                      "country": "GB",
                      "subdivision": "GB-MAN"
                    },
                    "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                    "createdAt": "2024-03-13T20:20:39.000Z",
                    "updatedAt": "2024-03-13T20:20:39.000Z"
                  }
                }
              },
              "User Created With Metadata Error": {
                "value": {
                  "user": {
                    "id": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
                    "type": "individual",
                    "email": "john.doe@uphold.com",
                    "citizenshipCountry": "GB",
                    "address": {
                      "country": "GB",
                      "subdivision": "GB-MAN"
                    },
                    "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                    "createdAt": "2024-03-13T20:20:39.000Z",
                    "updatedAt": "2024-03-13T20:20:39.000Z"
                  },
                  "errors": {
                    "metadata": {
                      "code": "content_too_large",
                      "message": "The entity metadata size is greater than maximum size limit",
                      "details": {
                        "threshold": {
                          "unit": "characters",
                          "limit": 1024
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "bad-request": {
        "description": "Bad Request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Invalid Request": {
                "value": {
                  "code": "request_invalid",
                  "message": "The request has missing or invalid parameters",
                  "details": {
                    "context": "<context>",
                    "violations": [
                      {
                        "property": "<property>",
                        "rule": "required"
                      },
                      {
                        "property": "<property>",
                        "rule": "type",
                        "ruleParams": {
                          "type": "string"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-user-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Citizenship Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "citizenshipCountry"
                  }
                }
              },
              "Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "country"
                  }
                }
              },
              "Email Incorrect or Disallowed": {
                "value": {
                  "code": "email_incorrect_or_disallowed",
                  "message": "The email is incorrect or disallowed"
                }
              },
              "Email Already Exists": {
                "value": {
                  "code": "email_already_exists",
                  "message": "The provided email is already in use by another user"
                }
              },
              "Invalid Partner Onboarded At": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "context": "body",
                    "property": "partnerOnboardedAt",
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0
                    }
                  }
                }
              },
              "Missing User Context": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Request not allowed due to missing user context",
                  "details": {
                    "reasons": [
                      "missing-user-ip-header"
                    ]
                  }
                }
              },
              "Subdivision Not Supported": {
                "value": {
                  "code": "subdivision_not_supported",
                  "message": "The subdivision is not supported",
                  "details": {
                    "context": "body",
                    "property": "subdivision"
                  }
                }
              },
              "Subdivision Required For Country": {
                "value": {
                  "code": "subdivision_required",
                  "message": "The subdivision is required for the selected country",
                  "details": {
                    "context": "body",
                    "property": "subdivision"
                  }
                }
              },
              "Terms Of Service Mismatch": {
                "value": {
                  "code": "terms_of_service_mismatch",
                  "message": "The terms of service passed in the request does not match the one that should have been accepted"
                }
              }
            }
          }
        },
        "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-user-response": {
        "description": "User retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/user"
                }
              },
              "required": [
                "user"
              ]
            },
            "examples": {
              "Individual User Retrieved": {
                "value": {
                  "user": {
                    "id": "cd21b26d-35d2-408a-9201-b8fdbef7a604",
                    "type": "individual",
                    "email": "john.doe@uphold.com",
                    "fullName": "John Doe",
                    "birthdate": "1987-01-01",
                    "citizenshipCountry": "GB",
                    "address": {
                      "country": "GB",
                      "subdivision": "GB-MAN",
                      "city": "Manchester",
                      "line1": "1 High Street",
                      "line2": "Northern Quarter",
                      "postalCode": "M4 1AA"
                    },
                    "partnerOnboardedAt": "2024-02-01T00:00:00.000Z",
                    "createdAt": "2024-03-13T20:20:39.000Z",
                    "updatedAt": "2024-03-13T20:20:39.000Z"
                  }
                }
              },
              "Business User Retrieved": {
                "value": {
                  "user": {
                    "id": "ab34c56d-78e9-0123-4567-89abcdef0123",
                    "type": "business",
                    "email": "acme-corp@uphold.com",
                    "name": "ACME Corporation",
                    "address": {
                      "country": "US",
                      "subdivision": "US-FL",
                      "city": "Miami",
                      "line1": "1234 Palm Tree Blvd",
                      "postalCode": "33125"
                    },
                    "createdAt": "2024-03-13T20:20:39.000Z",
                    "updatedAt": "2024-03-13T20:20:39.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "delete-user-response": {
        "description": "User deleted.",
        "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"
              }
            }
          }
        }
      },
      "delete-user-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "User Has Balance": {
                "value": {
                  "code": "user_has_balance",
                  "message": "The user has balance and cannot be deleted"
                }
              },
              "User Has Pending Transactions": {
                "value": {
                  "code": "user_has_pending_transactions",
                  "message": "The user has pending transactions and cannot be deleted"
                }
              }
            }
          }
        },
        "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-kyc-overview-response": {
        "description": "KYC overview retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/kyc-overview"
            },
            "examples": {
              "KYC Overview OK": {
                "value": {
                  "summary": {
                    "reason": "none",
                    "status": "ok"
                  },
                  "processes": {
                    "profile": {
                      "status": "ok"
                    },
                    "address": {
                      "status": "ok"
                    },
                    "email": {
                      "status": "ok"
                    },
                    "phone": {
                      "status": "ok"
                    },
                    "identity": {
                      "status": "ok",
                      "type": "document-submission"
                    },
                    "proofOfAddress": {
                      "status": "ok",
                      "type": "electronic-verification"
                    },
                    "customerDueDiligence": {
                      "status": "ok"
                    },
                    "enhancedDueDiligence": {
                      "status": "ok"
                    },
                    "cryptoRiskAssessment": {
                      "status": "ok"
                    },
                    "selfCategorizationStatement": {
                      "status": "ok"
                    },
                    "screening": {
                      "status": "ok"
                    },
                    "risk": {
                      "status": "ok"
                    },
                    "taxDetails": {
                      "status": "ok"
                    }
                  }
                }
              },
              "KYC Overview OK Fully Detailed": {
                "value": {
                  "summary": {
                    "reason": "none",
                    "status": "ok"
                  },
                  "processes": {
                    "profile": {
                      "status": "ok",
                      "input": {
                        "details": {
                          "fullName": "John Doe",
                          "primaryCitizenship": "GB",
                          "birthdate": "1987-01-01"
                        }
                      },
                      "hint": {
                        "type": "form",
                        "schema": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "details": {
                              "title": "Details",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "fullName": {
                                  "title": "What is your full name?",
                                  "type": "string",
                                  "pattern": "^\\S+\\s+\\S+(\\s+\\S+)*$",
                                  "minLength": 2,
                                  "maxLength": 255
                                },
                                "primaryCitizenship": {
                                  "title": "What is your primary citizenship?",
                                  "type": "string",
                                  "pattern": "^[A-Z]{2}$"
                                },
                                "birthdate": {
                                  "title": "What is your date of birth?",
                                  "type": "string",
                                  "format": "date"
                                }
                              }
                            }
                          }
                        },
                        "uiSchema": {
                          "type": "Categorization",
                          "elements": [
                            {
                              "label": "Details",
                              "type": "Category",
                              "elements": [
                                {
                                  "label": "Full name",
                                  "type": "Control",
                                  "scope": "#/properties/details/properties/fullName"
                                },
                                {
                                  "label": "Primary citizenship",
                                  "type": "Control",
                                  "scope": "#/properties/details/properties/primaryCitizenship",
                                  "options": {
                                    "dataSource": "countries",
                                    "exclude": {
                                      "restrictions": [
                                        {
                                          "scope": "citizenship"
                                        }
                                      ]
                                    }
                                  }
                                },
                                {
                                  "label": "Date of birth",
                                  "type": "Control",
                                  "scope": "#/properties/details/properties/birthdate"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    },
                    "address": {
                      "status": "ok",
                      "input": {
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN",
                          "city": "Manchester",
                          "line1": "1 High Street",
                          "line2": "Northern Quarter",
                          "postalCode": "M4 1AA"
                        }
                      }
                    },
                    "email": {
                      "status": "ok",
                      "input": {
                        "email": "john.doe@uphold.com"
                      },
                      "output": {
                        "verifiedAt": "2020-01-01T00:00:00.000Z"
                      }
                    },
                    "phone": {
                      "status": "ok",
                      "input": {
                        "phone": "+1234567890",
                        "country": "GB"
                      },
                      "output": {
                        "verifiedAt": "2020-01-01T00:00:00.000Z"
                      }
                    },
                    "identity": {
                      "status": "ok",
                      "type": "document-submission",
                      "input": {
                        "media": [
                          {
                            "context": "photo-selfie",
                            "fileId": "470b2192-893f-4ce6-9daa-816d4c319a84"
                          }
                        ]
                      },
                      "output": {
                        "provider": "veriff",
                        "document": {
                          "type": "passport",
                          "number": "7700225VH",
                          "country": "GB",
                          "expiresAt": "2026-03-13"
                        },
                        "person": {
                          "givenName": "John",
                          "familyName": "Doe",
                          "birthdate": "1987-01-01",
                          "gender": "male",
                          "address": {
                            "country": "GB",
                            "subdivision": "GB-MAN",
                            "city": "Manchester",
                            "line1": "1 High Street",
                            "line2": "Northern Quarter",
                            "postalCode": "M4 1AA"
                          }
                        },
                        "verifiedAt": "2020-01-01T00:00:00.000Z"
                      }
                    },
                    "proofOfAddress": {
                      "status": "ok",
                      "type": "document-submission",
                      "input": {
                        "media": [
                          {
                            "context": "address-proof",
                            "fileId": "459c0447-8916-4bad-bb67-f2354fcfb10b"
                          }
                        ]
                      },
                      "output": {
                        "provider": "sumsub",
                        "person": {
                          "givenName": "John",
                          "familyName": "Doe",
                          "address": {
                            "country": "GB",
                            "subdivision": "GB-MAN",
                            "city": "Manchester",
                            "line1": "1 High Street",
                            "line2": "Northern Quarter",
                            "postalCode": "M4 1AA"
                          }
                        },
                        "verifiedAt": "2020-01-01T00:00:00.000Z"
                      }
                    },
                    "customerDueDiligence": {
                      "status": "ok",
                      "input": {
                        "formId": "ae80271a-a3f0-453b-8dc6-36b777817217",
                        "answers": {
                          "intent": {
                            "expected-activities": [
                              "cryptocurrency_investing",
                              "deposit_withdraw_crypto"
                            ]
                          },
                          "financial-information": {
                            "source-of-funds": "salary",
                            "annual-income-range": "40000-60000-GBP",
                            "expected-annual-deposits-range": "0-5000-GBP"
                          },
                          "employment": {
                            "status": "employed"
                          },
                          "employment-details": {
                            "industry": "engineering"
                          }
                        }
                      },
                      "output": {
                        "score": "low",
                        "expiresAt": "2025-01-01T00:00:00.000Z",
                        "verifiedAt": "2022-01-01T00:00:00.000Z"
                      }
                    },
                    "enhancedDueDiligence": {
                      "status": "ok",
                      "input": {
                        "media": [
                          {
                            "context": "source-of-funds-proof",
                            "fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
                          }
                        ]
                      },
                      "output": {
                        "verifiedAt": "2020-01-01T00:00:00.000Z"
                      }
                    },
                    "cryptoRiskAssessment": {
                      "status": "ok",
                      "input": {
                        "formId": "7a0f4229-e3de-4dfd-8f91-9b1308b2dc33",
                        "answers": {
                          "financial-information": {
                            "annual-income-range": "20000_to_30000"
                          },
                          "attitude-towards-risk": {
                            "willingness-to-fluctuations": "strongly_agree"
                          },
                          "risks-and-returns": {
                            "business-scope": "cannot_precisely_predict_risk_or_guarantee_returns"
                          },
                          "losses": {
                            "loss-potential": "half_of_my_initial_investment"
                          },
                          "complexity-understanding": {
                            "risk-similarity": "riskier_than_either_bank_deposits_or_share_trading"
                          },
                          "liquidity-understanding": {
                            "difficulty-reason": "a_lack_of_market_liquidity"
                          },
                          "losses-protection": {
                            "assets-coverage": "no_unlike_money_held_in_a_bank_crypto_assets_are_not_protected"
                          },
                          "risk-allocation": {
                            "assets-percentage": "not_more_than_10"
                          }
                        }
                      },
                      "output": {
                        "result": "approved",
                        "attempts": {
                          "used": 1,
                          "maximum": 5
                        },
                        "verifiedAt": "2022-01-01T00:00:00.000Z"
                      }
                    },
                    "selfCategorizationStatement": {
                      "status": "ok",
                      "input": {
                        "formId": "ac33651f-f2d3-47c4-8e8d-06fb87361f5c",
                        "answers": {
                          "investor": {
                            "type": "restricted_investor"
                          },
                          "investor-profile": {
                            "invested-less-than-10-percent": "yes",
                            "invested-percentage": "5",
                            "invest-less-than-10-percent": "yes",
                            "invest-percentage": "5",
                            "investor-type-confirmation": "yes"
                          }
                        }
                      },
                      "output": {
                        "result": "approved",
                        "attempts": {
                          "used": 1,
                          "maximum": 30
                        },
                        "expiresAt": "2025-01-01T00:00:00.000Z",
                        "verifiedAt": "2022-01-01T00:00:00.000Z"
                      }
                    },
                    "screening": {
                      "status": "ok",
                      "output": {
                        "result": "approved"
                      }
                    },
                    "risk": {
                      "status": "ok",
                      "output": {
                        "result": "approved"
                      }
                    },
                    "taxDetails": {
                      "status": "ok",
                      "input": {
                        "taxResidency": {
                          "countries": [
                            "GB"
                          ]
                        },
                        "taxIdentification": {
                          "documents": [
                            {
                              "type": "tin",
                              "country": "GB",
                              "number": "6405444702"
                            }
                          ],
                          "certify": true
                        }
                      },
                      "output": {
                        "result": "approved",
                        "verifiedAt": "2022-01-01T00:00:00.000Z"
                      },
                      "hint": {
                        "type": "form",
                        "schema": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "taxResidency": {
                              "title": "Tax Residency Declaration",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "countries": {
                                  "title": "In which countries are you a tax resident?",
                                  "type": "array",
                                  "uniqueItems": true,
                                  "minItems": 1,
                                  "items": {
                                    "type": "string",
                                    "pattern": "^[A-Z]{2}$"
                                  }
                                }
                              },
                              "required": [
                                "countries"
                              ]
                            },
                            "taxIdentification": {
                              "title": "Tax Identification and Certification",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "documents": {
                                  "title": "Tax Identification Documents",
                                  "type": "array",
                                  "uniqueItems": true,
                                  "items": {
                                    "allOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "country": {
                                            "title": "Country",
                                            "type": "string",
                                            "enum": [
                                              "GB"
                                            ]
                                          },
                                          "type": {
                                            "title": "Document type",
                                            "type": "string",
                                            "enum": [
                                              "tin"
                                            ]
                                          },
                                          "number": {
                                            "title": "Document number",
                                            "type": "string",
                                            "pattern": "^\\S.*\\S$|^\\S$"
                                          },
                                          "reason": {
                                            "title": "If you don't have a TIN, please select a reason",
                                            "type": "string",
                                            "oneOf": [
                                              {
                                                "const": "country-does-not-issue-document",
                                                "title": "My country does not issue TINs or equivalent to its residents."
                                              },
                                              {
                                                "const": "user-unable-to-obtain-document",
                                                "title": "I am unable to obtain a TIN."
                                              },
                                              {
                                                "const": "law-does-not-require-document",
                                                "title": "The local law does not require me to have a TIN."
                                              }
                                            ]
                                          },
                                          "justification": {
                                            "title": "I am unable to obtain a TIN because",
                                            "type": "string",
                                            "pattern": "^\\S.*\\S$|^\\S$",
                                            "maxLength": 1000
                                          }
                                        },
                                        "required": [
                                          "country",
                                          "type"
                                        ]
                                      },
                                      {
                                        "if": {
                                          "type": "object",
                                          "properties": {
                                            "reason": {
                                              "const": "user-unable-to-obtain-document"
                                            }
                                          },
                                          "required": [
                                            "reason"
                                          ]
                                        },
                                        "then": {
                                          "type": "object",
                                          "required": [
                                            "justification"
                                          ]
                                        }
                                      },
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "required": [
                                              "number"
                                            ]
                                          },
                                          {
                                            "type": "object",
                                            "required": [
                                              "reason"
                                            ]
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                },
                                "certify": {
                                  "title": "I confirm that the information provided is accurate.",
                                  "type": "boolean",
                                  "const": true
                                }
                              },
                              "required": [
                                "documents",
                                "certify"
                              ]
                            }
                          }
                        },
                        "uiSchema": {
                          "type": "Categorization",
                          "elements": [
                            {
                              "label": "Tax Residency Declaration",
                              "type": "Category",
                              "elements": [
                                {
                                  "label": "In which countries are you a tax resident?",
                                  "type": "Control",
                                  "scope": "#/properties/taxResidency/properties/countries",
                                  "options": {
                                    "dataSource": "countries",
                                    "exclude": {
                                      "restrictions": [
                                        {
                                          "scope": "citizenship"
                                        }
                                      ]
                                    }
                                  }
                                }
                              ]
                            },
                            {
                              "label": "Tax Identification and Certification",
                              "type": "Category",
                              "elements": [
                                {
                                  "label": "Tax Identification Documents",
                                  "type": "Control",
                                  "scope": "#/properties/taxIdentification/properties/documents",
                                  "options": {
                                    "elementLabelProp": "country",
                                    "disableAdd": true,
                                    "disableRemove": true,
                                    "showSortButtons": false,
                                    "detail": {
                                      "type": "ListWithDetail",
                                      "elements": [
                                        {
                                          "type": "Group",
                                          "elements": [
                                            {
                                              "label": "Document type",
                                              "type": "Control",
                                              "scope": "#/properties/type",
                                              "options": {
                                                "readonly": true
                                              }
                                            },
                                            {
                                              "label": "Country",
                                              "type": "Control",
                                              "scope": "#/properties/country",
                                              "options": {
                                                "readonly": true
                                              }
                                            },
                                            {
                                              "label": "Document number",
                                              "type": "Control",
                                              "scope": "#/properties/number"
                                            },
                                            {
                                              "label": "If you don't have a TIN, please select a reason",
                                              "type": "Control",
                                              "scope": "#/properties/reason"
                                            },
                                            {
                                              "label": "I am unable to obtain a TIN because",
                                              "type": "Control",
                                              "scope": "#/properties/justification"
                                            }
                                          ]
                                        }
                                      ]
                                    }
                                  }
                                },
                                {
                                  "label": "I confirm that the information provided is accurate.",
                                  "type": "Control",
                                  "scope": "#/properties/taxIdentification/properties/certify"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "KYC Overview Pending Fully Detailed": {
                "value": {
                  "summary": {
                    "reason": "none",
                    "status": "pending"
                  },
                  "processes": {
                    "profile": {
                      "status": "pending",
                      "input": {
                        "details": {
                          "primaryCitizenship": "GB"
                        }
                      },
                      "hint": {
                        "type": "form",
                        "schema": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "details": {
                              "title": "Details",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "fullName": {
                                  "title": "What is your full name?",
                                  "type": "string",
                                  "pattern": "^\\S+\\s+\\S+(\\s+\\S+)*$",
                                  "minLength": 2,
                                  "maxLength": 255
                                },
                                "primaryCitizenship": {
                                  "title": "What is your primary citizenship?",
                                  "type": "string",
                                  "pattern": "^[A-Z]{2}$"
                                },
                                "birthdate": {
                                  "title": "What is your date of birth?",
                                  "type": "string",
                                  "format": "date"
                                }
                              },
                              "required": [
                                "fullName",
                                "primaryCitizenship",
                                "birthdate"
                              ]
                            }
                          }
                        },
                        "uiSchema": {
                          "type": "Categorization",
                          "elements": [
                            {
                              "label": "Details",
                              "type": "Category",
                              "elements": [
                                {
                                  "label": "Full name",
                                  "type": "Control",
                                  "scope": "#/properties/details/properties/fullName"
                                },
                                {
                                  "label": "Primary citizenship",
                                  "type": "Control",
                                  "scope": "#/properties/details/properties/primaryCitizenship",
                                  "options": {
                                    "dataSource": "countries",
                                    "exclude": {
                                      "restrictions": [
                                        {
                                          "scope": "citizenship"
                                        }
                                      ]
                                    }
                                  }
                                },
                                {
                                  "label": "Date of birth",
                                  "type": "Control",
                                  "scope": "#/properties/details/properties/birthdate"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    },
                    "address": {
                      "status": "pending",
                      "input": {
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN"
                        }
                      }
                    },
                    "email": {
                      "status": "pending",
                      "input": {
                        "email": "john.doe@uphold.com"
                      }
                    },
                    "phone": {
                      "status": "pending"
                    },
                    "identity": {
                      "status": "pending",
                      "type": "none"
                    },
                    "proofOfAddress": {
                      "status": "pending",
                      "type": "none"
                    },
                    "customerDueDiligence": {
                      "status": "pending",
                      "hint": {
                        "type": "form",
                        "formId": "ae80271a-a3f0-453b-8dc6-36b777817217",
                        "schema": {
                          "type": "object",
                          "properties": {
                            "intent": {
                              "type": "object",
                              "title": "How will you use Uphold?",
                              "description": "Please be careful with your selection to avoid unnecessary account opening delays",
                              "unevaluatedProperties": false,
                              "properties": {
                                "expected-activities": {
                                  "type": "array",
                                  "uniqueItems": true,
                                  "minItems": 1,
                                  "maxItems": 4,
                                  "items": {
                                    "type": "string",
                                    "oneOf": [
                                      {
                                        "const": "cryptocurrency_investing",
                                        "title": "Trade cryptocurrencies"
                                      },
                                      {
                                        "const": "foreign_exchange_trading",
                                        "title": "Currency conversion"
                                      },
                                      {
                                        "const": "deposit_withdraw_crypto",
                                        "title": "Deposit or withdraw cryptocurrencies"
                                      },
                                      {
                                        "const": "international_payments_transfers",
                                        "title": "Transfers between users"
                                      }
                                    ]
                                  }
                                }
                              },
                              "required": [
                                "expected-activities"
                              ]
                            }
                          }
                        },
                        "uiSchema": {
                          "type": "Categorization",
                          "elements": [
                            {
                              "type": "Category",
                              "label": "How will you use Uphold?",
                              "elements": [
                                {
                                  "type": "Control",
                                  "scope": "#/properties/intent/properties/expected-activities"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    },
                    "enhancedDueDiligence": {
                      "status": "exempt"
                    },
                    "cryptoRiskAssessment": {
                      "status": "pending",
                      "hint": {
                        "type": "form",
                        "formId": "7a0f4229-e3de-4dfd-8f91-9b1308b2dc33",
                        "schema": {
                          "type": "object",
                          "properties": {
                            "financial-information": {
                              "type": "object",
                              "title": "Level of income",
                              "description": "Please select your income level.",
                              "properties": {
                                "annual-income-range": {
                                  "type": "string",
                                  "oneOf": [
                                    {
                                      "const": "0-20000",
                                      "title": "< $ 20,000"
                                    },
                                    {
                                      "const": "20000_to_30000",
                                      "title": "$ 20,000 - $ 30,000"
                                    },
                                    {
                                      "const": "30000_to_40000",
                                      "title": "$ 30,000 - $ 40,000"
                                    },
                                    {
                                      "const": "40000_to_60000",
                                      "title": "$ 40,000 - $ 60,000"
                                    },
                                    {
                                      "const": "60000_to_80000",
                                      "title": "$ 60,000 - $ 80,000"
                                    },
                                    {
                                      "const": "80000_to_130000",
                                      "title": "$ 80,000 - $ 130,000"
                                    },
                                    {
                                      "const": "130000_to_210000",
                                      "title": "$ 130,000 - $ 210,000"
                                    },
                                    {
                                      "const": "210000_or_more",
                                      "title": "$ 210,000 or more"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "annual-income-range"
                              ]
                            }
                          }
                        },
                        "uiSchema": {
                          "type": "Categorization",
                          "elements": [
                            {
                              "type": "Category",
                              "label": "Level of income",
                              "elements": [
                                {
                                  "type": "Control",
                                  "scope": "#/properties/financial-information/properties/annual-income-range"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    },
                    "selfCategorizationStatement": {
                      "status": "pending",
                      "hint": {
                        "type": "form",
                        "formId": "ac33651f-f2d3-47c4-8e8d-06fb87361f5c",
                        "schema": {
                          "type": "object",
                          "properties": {
                            "investor": {
                              "type": "object",
                              "title": "Which type of investor are you?",
                              "description": "The FCA divides investors into 3 types. Choose the best fit for you.",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "oneOf": [
                                    {
                                      "const": "restricted_investor",
                                      "title": "Everyday investor"
                                    },
                                    {
                                      "const": "high_net_worth_investor",
                                      "title": "High-Net-Worth Investor"
                                    },
                                    {
                                      "const": "sophisticated_investor",
                                      "title": "Certified Sophisticated Investor"
                                    },
                                    {
                                      "const": "none_of_above",
                                      "title": "None of the above"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "type"
                              ]
                            }
                          }
                        },
                        "uiSchema": {
                          "type": "Categorization",
                          "elements": [
                            {
                              "type": "Category",
                              "label": "Which type of investor are you?",
                              "elements": [
                                {
                                  "type": "Control",
                                  "scope": "#/properties/investor/properties/type"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    },
                    "screening": {
                      "status": "pending"
                    },
                    "risk": {
                      "status": "pending"
                    },
                    "taxDetails": {
                      "status": "pending",
                      "hint": {
                        "type": "form",
                        "schema": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "taxResidency": {
                              "title": "Tax Residency Declaration",
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "countries": {
                                  "title": "In which countries are you a tax resident?",
                                  "type": "array",
                                  "uniqueItems": true,
                                  "minItems": 1,
                                  "items": {
                                    "type": "string",
                                    "pattern": "^[A-Z]{2}$"
                                  }
                                }
                              },
                              "required": [
                                "countries"
                              ]
                            }
                          }
                        },
                        "uiSchema": {
                          "type": "Categorization",
                          "elements": [
                            {
                              "label": "Tax Residency Declaration",
                              "type": "Category",
                              "elements": [
                                {
                                  "label": "In which countries are you a tax resident?",
                                  "type": "Control",
                                  "scope": "#/properties/taxResidency/properties/countries",
                                  "options": {
                                    "dataSource": "countries",
                                    "exclude": {
                                      "restrictions": [
                                        {
                                          "scope": "citizenship"
                                        }
                                      ]
                                    }
                                  }
                                }
                              ]
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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-kyc-overview-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Invalid Locale": {
                "value": {
                  "code": "locale_invalid",
                  "message": "The locale is invalid",
                  "details": {
                    "context": "headers",
                    "property": "accept-language"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-profile-response": {
        "description": "KYC profile process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "profile": {
                  "$ref": "#/components/schemas/kyc-profile"
                }
              },
              "required": [
                "profile"
              ]
            },
            "examples": {
              "Process Updated": {
                "value": {
                  "profile": {
                    "status": "ok",
                    "input": {
                      "details": {
                        "fullName": "John Doe",
                        "primaryCitizenship": "GB",
                        "birthdate": "1987-01-01"
                      }
                    },
                    "hint": {
                      "type": "form",
                      "schema": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "details": {
                            "title": "Details",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "fullName": {
                                "title": "What is your full name?",
                                "type": "string",
                                "pattern": "^\\S+\\s+\\S+(\\s+\\S+)*$",
                                "minLength": 2,
                                "maxLength": 255
                              },
                              "primaryCitizenship": {
                                "title": "What is your primary citizenship?",
                                "type": "string",
                                "pattern": "^[A-Z]{2}$"
                              },
                              "birthdate": {
                                "title": "What is your date of birth?",
                                "type": "string",
                                "format": "date"
                              }
                            },
                            "required": [
                              "fullName",
                              "primaryCitizenship",
                              "birthdate"
                            ]
                          }
                        }
                      },
                      "uiSchema": {
                        "type": "Categorization",
                        "elements": [
                          {
                            "label": "Details",
                            "type": "Category",
                            "elements": [
                              {
                                "label": "Full name",
                                "type": "Control",
                                "scope": "#/properties/details/properties/fullName"
                              },
                              {
                                "label": "Primary citizenship",
                                "type": "Control",
                                "scope": "#/properties/details/properties/primaryCitizenship",
                                "options": {
                                  "dataSource": "countries",
                                  "exclude": {
                                    "restrictions": [
                                      {
                                        "scope": "citizenship"
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                "label": "Date of birth",
                                "type": "Control",
                                "scope": "#/properties/details/properties/birthdate"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-profile-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Full Name Contains Invalid Characters": {
                "value": {
                  "code": "invalid_characters",
                  "message": "The request has invalid characters",
                  "details": {
                    "context": "body",
                    "property": "input.details.fullName"
                  }
                }
              },
              "User Underage": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be older than or equal to 18 years ago",
                  "details": {
                    "rule": "difference-greater-than-or-equal-to-threshold",
                    "threshold": {
                      "limit": 18,
                      "unit": "years"
                    },
                    "context": "body",
                    "property": "input.details.birthdate"
                  }
                }
              },
              "User Overage": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be newer than or equal to 120 years from now",
                  "details": {
                    "rule": "difference-less-than-or-equal-to-threshold",
                    "threshold": {
                      "limit": 120,
                      "unit": "years"
                    },
                    "context": "body",
                    "property": "input.details.birthdate"
                  }
                }
              },
              "Primary Citizenship Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.details.primaryCitizenship"
                  }
                }
              },
              "Other Citizenships Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.details.otherCitizenships[0]"
                  }
                }
              },
              "Place of Birth Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.details.birthplace.country"
                  }
                }
              },
              "Non-Authoritative Identity (Deprecated)": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "User cannot submit citizenship country due to non-authoritative 'identity' KYC process",
                  "details": {
                    "reasons": [
                      "citizenship-country-update-non-authoritative-identity"
                    ]
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-address-response": {
        "description": "KYC address process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "address": {
                  "$ref": "#/components/schemas/kyc-address"
                }
              },
              "required": [
                "address"
              ]
            },
            "examples": {
              "Process Updated": {
                "value": {
                  "address": {
                    "status": "ok",
                    "input": {
                      "address": {
                        "country": "GB",
                        "subdivision": "GB-MAN",
                        "city": "Manchester",
                        "line1": "1 High Street",
                        "line2": "Northern Quarter",
                        "postalCode": "M4 1AA"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-address-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Subdivision Not Supported": {
                "value": {
                  "code": "subdivision_not_supported",
                  "message": "The subdivision is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.address.subdivision"
                  }
                }
              },
              "PO Boxes Not Allowed": {
                "value": {
                  "code": "po_boxes_not_allowed",
                  "message": "PO boxes are not allowed"
                }
              },
              "Postal Code Invalid": {
                "value": {
                  "code": "postal_code_invalid",
                  "message": "The postal code is invalid",
                  "details": {
                    "context": "body",
                    "property": "input.address.postalCode"
                  }
                }
              },
              "Non-Authoritative Proof-of-address": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "User cannot submit subdivision due to non-authoritative 'proofOfAddress' KYC process",
                  "details": {
                    "reasons": [
                      "subdivision-update-non-authoritative-proof-of-address"
                    ]
                  }
                }
              },
              "Subdivision Update Restricted by Residence Country": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "User cannot submit subdivision due to restrictions based on residence country",
                  "details": {
                    "reasons": [
                      "subdivision-update-restricted-by-residence-country"
                    ]
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-email-response": {
        "description": "KYC email process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "email": {
                  "$ref": "#/components/schemas/kyc-email"
                }
              },
              "required": [
                "email"
              ]
            },
            "examples": {
              "Process Updated Authoritatively": {
                "value": {
                  "email": {
                    "status": "ok",
                    "input": {
                      "email": "john.doe@uphold.com"
                    },
                    "output": {
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              },
              "Process Updated Non-Authoritatively": {
                "value": {
                  "email": {
                    "status": "pending",
                    "input": {
                      "email": "john.doe@uphold.com"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-email-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Email Already Exists": {
                "value": {
                  "code": "email_already_exists",
                  "message": "The provided email is already in use by another user"
                }
              },
              "Email Already Verified": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Email already verified",
                  "details": {
                    "reasons": [
                      "email-already-verified"
                    ]
                  }
                }
              },
              "Email Incorrect or Disallowed": {
                "value": {
                  "code": "email_incorrect_or_disallowed",
                  "message": "The email is incorrect or disallowed"
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-phone-response": {
        "description": "KYC phone process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "phone": {
                  "$ref": "#/components/schemas/kyc-phone"
                }
              },
              "required": [
                "phone"
              ]
            },
            "examples": {
              "Process Updated Authoritatively": {
                "value": {
                  "phone": {
                    "status": "ok",
                    "input": {
                      "phone": "+447400123456",
                      "country": "GB"
                    },
                    "output": {
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              },
              "Process Updated Non-Authoritatively": {
                "value": {
                  "phone": {
                    "status": "pending",
                    "input": {
                      "phone": "+447400123456",
                      "country": "GB"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-phone-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Phone Already Exists": {
                "value": {
                  "code": "phone_already_exists",
                  "message": "The provided phone is already in use by another user"
                }
              },
              "Phone Already Verified": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Phone already verified",
                  "details": {
                    "reasons": [
                      "phone-already-verified"
                    ]
                  }
                }
              },
              "Phone Invalid": {
                "value": {
                  "code": "phone_invalid",
                  "message": "The phone number is invalid"
                }
              },
              "Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.country"
                  }
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-identity-response": {
        "description": "KYC identity process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "identity": {
                  "$ref": "#/components/schemas/kyc-identity"
                }
              },
              "required": [
                "identity"
              ]
            },
            "examples": {
              "Process Updated via Document Submission": {
                "value": {
                  "identity": {
                    "status": "ok",
                    "type": "document-submission",
                    "input": {
                      "media": [
                        {
                          "context": "photo-document-front",
                          "fileId": "75e5be00-4264-4cec-ace6-598bff79932c"
                        },
                        {
                          "context": "photo-document-back",
                          "fileId": "402587f2-6299-4a40-b465-eb49d739998c"
                        },
                        {
                          "context": "photo-selfie",
                          "fileId": "470b2192-893f-4ce6-9daa-816d4c319a84"
                        }
                      ]
                    },
                    "output": {
                      "provider": "veriff",
                      "document": {
                        "type": "passport",
                        "number": "7700225VH",
                        "country": "GB",
                        "expiresAt": "2026-03-13"
                      },
                      "person": {
                        "givenName": "John",
                        "familyName": "Doe",
                        "birthdate": "1987-01-01",
                        "gender": "male",
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN",
                          "city": "Manchester",
                          "line1": "1 High Street",
                          "line2": "Northern Quarter",
                          "postalCode": "M4 1AA"
                        }
                      },
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              },
              "Process Updated via Electronic Verification": {
                "value": {
                  "identity": {
                    "status": "ok",
                    "type": "electronic-verification",
                    "input": {
                      "data": {
                        "givenName": "John",
                        "familyName": "Doe",
                        "birthdate": "1987-01-01",
                        "citizenshipCountry": "GB",
                        "address": {
                          "country": "GB",
                          "city": "Manchester",
                          "line1": "1 High Street",
                          "postalCode": "M4 1AA"
                        }
                      }
                    },
                    "output": {
                      "provider": "onfido",
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-identity-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "File Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "A file specified in the media array cannot be found",
                  "details": {
                    "entity": "file"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-identity-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Document Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "output.document.country"
                  }
                }
              },
              "Document Expiration Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the future",
                  "details": {
                    "rule": "difference-less-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.document.expiresAt"
                  }
                }
              },
              "Given Name Contains Invalid Characters": {
                "value": {
                  "code": "invalid_characters",
                  "message": "The request has invalid characters",
                  "details": {
                    "context": "body",
                    "property": "output.person.givenName"
                  }
                }
              },
              "Family Name Contains Invalid Characters": {
                "value": {
                  "code": "invalid_characters",
                  "message": "The request has invalid characters",
                  "details": {
                    "context": "body",
                    "property": "output.person.familyName"
                  }
                }
              },
              "Birthdate Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              },
              "Address Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "output.person.address.country"
                  }
                }
              },
              "Address Subdivision Not Supported": {
                "value": {
                  "code": "subdivision_not_supported",
                  "message": "The subdivision is not supported",
                  "details": {
                    "context": "body",
                    "property": "output.person.address.subdivision"
                  }
                }
              },
              "File Invalid": {
                "value": {
                  "code": "file_invalid",
                  "message": "A file specified in the media array has not been uploaded"
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              },
              "Missing Declared Information": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "User cannot submit identity due to incomplete declared information",
                  "details": {
                    "reasons": [
                      "missing-name",
                      "missing-birthdate"
                    ]
                  }
                }
              },
              "Process Updates Not Allowed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The current status of the process does not allow updates",
                  "details": {
                    "reasons": [
                      "kyc-process-update-not-allowed"
                    ]
                  }
                }
              },
              "Submission Type Not Allowed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The submission type 'electronic-verification' is not allowed for your organization",
                  "details": {
                    "reasons": [
                      "permission-denied"
                    ]
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-proof-of-address-response": {
        "description": "KYC proof-of-address process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "proofOfAddress": {
                  "$ref": "#/components/schemas/kyc-proof-of-address"
                }
              },
              "required": [
                "proofOfAddress"
              ]
            },
            "examples": {
              "Process Updated via Document Submission": {
                "value": {
                  "proofOfAddress": {
                    "status": "ok",
                    "type": "document-submission",
                    "input": {
                      "media": [
                        {
                          "context": "address-proof",
                          "fileId": "459c0447-8916-4bad-bb67-f2354fcfb10b"
                        }
                      ]
                    },
                    "output": {
                      "provider": "sumsub",
                      "person": {
                        "givenName": "John",
                        "familyName": "Doe",
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN",
                          "city": "Manchester",
                          "line1": "1 High Street",
                          "line2": "Northern Quarter",
                          "postalCode": "M4 1AA"
                        }
                      },
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              },
              "Process Updated via Electronic Verification": {
                "value": {
                  "proofOfAddress": {
                    "status": "ok",
                    "type": "electronic-verification",
                    "input": {
                      "data": {
                        "givenName": "John",
                        "familyName": "Doe",
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN",
                          "city": "Manchester",
                          "line1": "1 High Street",
                          "line2": "Northern Quarter",
                          "postalCode": "M4 1AA"
                        }
                      }
                    },
                    "output": {
                      "provider": "sumsub",
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              },
              "Process Updated from Identity": {
                "value": {
                  "proofOfAddress": {
                    "status": "ok",
                    "type": "from-identity",
                    "output": {
                      "provider": "veriff",
                      "person": {
                        "givenName": "John",
                        "familyName": "Doe",
                        "address": {
                          "country": "GB",
                          "subdivision": "GB-MAN",
                          "city": "Manchester",
                          "line1": "1 High Street",
                          "line2": "Northern Quarter",
                          "postalCode": "M4 1AA"
                        }
                      },
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-proof-of-address-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "File Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "A file specified in the media array cannot be found",
                  "details": {
                    "entity": "file"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-proof-of-address-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Given Name Contains Invalid Characters": {
                "value": {
                  "code": "invalid_characters",
                  "message": "The request has invalid characters",
                  "details": {
                    "context": "body",
                    "property": "output.person.givenName"
                  }
                }
              },
              "Family Name Contains Invalid Characters": {
                "value": {
                  "code": "invalid_characters",
                  "message": "The request has invalid characters",
                  "details": {
                    "context": "body",
                    "property": "output.person.familyName"
                  }
                }
              },
              "Address Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "output.person.address.country"
                  }
                }
              },
              "Address Subdivision Not Supported": {
                "value": {
                  "code": "subdivision_not_supported",
                  "message": "The subdivision is not supported",
                  "details": {
                    "context": "body",
                    "property": "output.person.address.subdivision"
                  }
                }
              },
              "File Invalid": {
                "value": {
                  "code": "file_invalid",
                  "message": "A file specified in the media array has not been uploaded"
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              },
              "Missing Declared Information": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "User cannot submit proof-of-address due to incomplete declared information",
                  "details": {
                    "reasons": [
                      "missing-name",
                      "incomplete-address"
                    ]
                  }
                }
              },
              "Process Updates Not Allowed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The current status of the process does not allow updates",
                  "details": {
                    "reasons": [
                      "kyc-process-update-not-allowed"
                    ]
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-customer-due-diligence-response": {
        "description": "KYC customer due diligence process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "customerDueDiligence": {
                  "$ref": "#/components/schemas/kyc-customer-due-diligence"
                }
              },
              "required": [
                "customerDueDiligence"
              ]
            },
            "examples": {
              "Process Updated Non-Authoritatively": {
                "value": {
                  "customerDueDiligence": {
                    "status": "pending",
                    "input": {
                      "formId": "ae80271a-a3f0-453b-8dc6-36b777817217",
                      "answers": {
                        "intent": {
                          "expected-activities": [
                            "cryptocurrency_investing",
                            "deposit_withdraw_crypto"
                          ]
                        }
                      }
                    },
                    "hint": {
                      "type": "form",
                      "formId": "ae80271a-a3f0-453b-8dc6-36b777817217",
                      "schema": {
                        "type": "object",
                        "properties": {
                          "intent": {
                            "type": "object",
                            "title": "How will you use Uphold?",
                            "description": "Please be careful with your selection to avoid unnecessary account opening delays",
                            "unevaluatedProperties": false,
                            "properties": {
                              "expected-activities": {
                                "type": "array",
                                "uniqueItems": true,
                                "minItems": 1,
                                "maxItems": 4,
                                "items": {
                                  "type": "string",
                                  "oneOf": [
                                    {
                                      "const": "cryptocurrency_investing",
                                      "title": "Trade cryptocurrencies"
                                    },
                                    {
                                      "const": "foreign_exchange_trading",
                                      "title": "Currency conversion"
                                    },
                                    {
                                      "const": "deposit_withdraw_crypto",
                                      "title": "Deposit or withdraw cryptocurrencies"
                                    },
                                    {
                                      "const": "international_payments_transfers",
                                      "title": "Transfers between users"
                                    }
                                  ]
                                }
                              }
                            },
                            "required": [
                              "expected-activities"
                            ]
                          },
                          "financial-information": {
                            "type": "object",
                            "title": "Financial Information",
                            "unevaluatedProperties": false,
                            "properties": {
                              "source-of-funds": {
                                "title": "Main source of income",
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "salary",
                                    "title": "Salary"
                                  },
                                  {
                                    "const": "profits_own_business",
                                    "title": "Profits from owned business"
                                  },
                                  {
                                    "const": "inheritance",
                                    "title": "Inheritance"
                                  },
                                  {
                                    "const": "other",
                                    "title": "Other"
                                  }
                                ]
                              },
                              "annual-income-range": {
                                "title": "Annual income",
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "0-20000-GBP",
                                    "title": "< £ 20,000"
                                  },
                                  {
                                    "const": "20000-30000-GBP",
                                    "title": "£ 20,000 to £ 30,000"
                                  },
                                  {
                                    "const": "30000-40000-GBP",
                                    "title": "£ 30,000 to £ 40,000"
                                  },
                                  {
                                    "const": "40000-60000-GBP",
                                    "title": "£ 40,000 to £ 60,000"
                                  },
                                  {
                                    "const": "60000-80000-GBP",
                                    "title": "£ 60,000 to £ 80,000"
                                  },
                                  {
                                    "const": "80000-130000-GBP",
                                    "title": "£ 80,000 to £ 130,000"
                                  },
                                  {
                                    "const": "130000-210000-GBP",
                                    "title": "£ 130,000 to £ 210,000"
                                  },
                                  {
                                    "const": "210000-7636308099580000-GBP",
                                    "title": "£ 210,000 or more"
                                  }
                                ]
                              },
                              "expected-annual-deposits-range": {
                                "title": "Expected annual deposits",
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "0-5000-GBP",
                                    "title": "< £ 5,000"
                                  },
                                  {
                                    "const": "5000-15000-GBP",
                                    "title": "£ 5,000 to £ 15,000"
                                  },
                                  {
                                    "const": "15000-20000-GBP",
                                    "title": "£ 15,000 to £ 20,000"
                                  },
                                  {
                                    "const": "20000-40000-GBP",
                                    "title": "£ 20,000 to £ 40,000"
                                  },
                                  {
                                    "const": "40000-80000-GBP",
                                    "title": "£ 40,000 to £ 80,000"
                                  },
                                  {
                                    "const": "80000-95000-GBP",
                                    "title": "£ 80,000 to £ 95,000"
                                  },
                                  {
                                    "const": "95000-7636308099578000-GBP",
                                    "title": "£ 95,000 or more"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "source-of-funds",
                              "annual-income-range",
                              "expected-annual-deposits-range"
                            ],
                            "allOf": [
                              {
                                "if": {
                                  "properties": {
                                    "source-of-funds": {
                                      "const": "other"
                                    }
                                  },
                                  "required": [
                                    "source-of-funds"
                                  ]
                                },
                                "then": {
                                  "properties": {
                                    "other-source-of-funds": {
                                      "type": "string",
                                      "title": "Enter your other source of income",
                                      "pattern": "^\\\\S.*\\\\S$|^\\\\S$",
                                      "minLength": 1,
                                      "maxLength": 50
                                    }
                                  },
                                  "required": [
                                    "other-source-of-funds"
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      },
                      "uiSchema": {
                        "type": "Categorization",
                        "elements": [
                          {
                            "type": "Category",
                            "label": "How will you use Uphold?",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/intent/properties/expected-activities"
                              }
                            ]
                          },
                          {
                            "type": "Category",
                            "label": "Financial Information",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/financial-information/properties/source-of-funds"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/financial-information/properties/other-source-of-funds",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/financial-information/properties/source-of-funds",
                                    "schema": {
                                      "const": "other"
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/financial-information/properties/annual-income-range"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/financial-information/properties/expected-annual-deposits-range"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                }
              },
              "Process Updated Authoritatively": {
                "value": {
                  "customerDueDiligence": {
                    "status": "ok",
                    "input": {
                      "formId": "ae80271a-a3f0-453b-8dc6-36b777817217",
                      "answers": {
                        "financial-profile": {
                          "expected-activities": [
                            "cryptocurrency_investing"
                          ],
                          "source-of-funds": "salary",
                          "annual-income-range": "40000-60000-GBP",
                          "savings-and-investments-range": "0-5000-GBP",
                          "employment-status": "employed",
                          "employment-industry": "Engineering",
                          "employment-occupation": "Galactic Vibe Curator"
                        }
                      }
                    },
                    "output": {
                      "score": "low",
                      "expiresAt": "2026-01-01T00:00:00.000Z",
                      "verifiedAt": "2023-01-01T00:00:00.000Z"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-customer-due-diligence-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Form Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The form cannot be found or has already been completed",
                  "details": {
                    "entity": "form"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-customer-due-diligence-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Form Already Completed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The form has already been completed",
                  "details": {
                    "reasons": [
                      "form-already-completed"
                    ]
                  }
                }
              },
              "Invalid Locale": {
                "value": {
                  "code": "locale_invalid",
                  "message": "The locale is invalid",
                  "details": {
                    "context": "headers",
                    "property": "accept-language"
                  }
                }
              },
              "Expiration Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the future",
                  "details": {
                    "rule": "difference-less-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.expiresAt"
                  }
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-enhanced-due-diligence-response": {
        "description": "KYC enhanced due diligence process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "enhancedDueDiligence": {
                  "$ref": "#/components/schemas/kyc-enhanced-due-diligence"
                }
              },
              "required": [
                "enhancedDueDiligence"
              ]
            },
            "examples": {
              "Process Updated": {
                "value": {
                  "enhancedDueDiligence": {
                    "status": "ok",
                    "input": {
                      "media": [
                        {
                          "context": "source-of-funds-proof",
                          "fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
                        }
                      ]
                    },
                    "output": {
                      "verifiedAt": "2020-01-01T00:00:00.000Z"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-enhanced-due-diligence-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "File Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "A file specified in the media array cannot be found",
                  "details": {
                    "entity": "file"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-enhanced-due-diligence-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "File Invalid": {
                "value": {
                  "code": "file_invalid",
                  "message": "A file specified in the media array has not been uploaded"
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              },
              "Process Updates Not Allowed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The current status of the process does not allow updates",
                  "details": {
                    "reasons": [
                      "kyc-process-update-not-allowed"
                    ]
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-crypto-risk-assessment-response": {
        "description": "KYC crypto risk assessment process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cryptoRiskAssessment": {
                  "$ref": "#/components/schemas/kyc-crypto-risk-assessment"
                }
              },
              "required": [
                "cryptoRiskAssessment"
              ]
            },
            "examples": {
              "Process Updated Non-Authoritatively": {
                "value": {
                  "cryptoRiskAssessment": {
                    "status": "pending",
                    "input": {
                      "formId": "7a0f4229-e3de-4dfd-8f91-9b1308b2dc33",
                      "answers": {
                        "financial-information": {
                          "annual-income-range": "20000-30000"
                        }
                      }
                    },
                    "hint": {
                      "type": "form",
                      "formId": "7a0f4229-e3de-4dfd-8f91-9b1308b2dc33",
                      "schema": {
                        "type": "object",
                        "properties": {
                          "financial-information": {
                            "type": "object",
                            "title": "Level of income",
                            "description": "Please select your income level.",
                            "properties": {
                              "annual-income-range": {
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "0-20000",
                                    "title": "< $ 20,000"
                                  },
                                  {
                                    "const": "20000-30000",
                                    "title": "$ 20,000 - $ 30,000"
                                  },
                                  {
                                    "const": "30000-40000",
                                    "title": "$ 30,000 - $ 40,000"
                                  },
                                  {
                                    "const": "40000-60000",
                                    "title": "$ 40,000 - $ 60,000"
                                  },
                                  {
                                    "const": "60000-80000",
                                    "title": "$ 60,000 - $ 80,000"
                                  },
                                  {
                                    "const": "80000-130000",
                                    "title": "$ 80,000 - $ 130,000"
                                  },
                                  {
                                    "const": "130000-210000",
                                    "title": "$ 130,000 - $ 210,000"
                                  },
                                  {
                                    "const": "210000-or-more",
                                    "title": "$ 210,000 or more"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "annual-income-range"
                            ]
                          },
                          "attitude-towards-risk": {
                            "type": "object",
                            "title": "Attitude to risk",
                            "description": "I am okay with the risk of my crypto investments having significant value fluctuations.",
                            "properties": {
                              "willingness-to-fluctuations": {
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "strongly_agree",
                                    "title": "Strongly agree"
                                  },
                                  {
                                    "const": "agree",
                                    "title": "Agree"
                                  },
                                  {
                                    "const": "neither_agree_or_disagree",
                                    "title": "Neither agree nor disagree"
                                  },
                                  {
                                    "const": "disagree",
                                    "title": "Disagree"
                                  },
                                  {
                                    "const": "strongly_disagree",
                                    "title": "Strongly disagree"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "willingness-to-fluctuations"
                            ]
                          }
                        }
                      },
                      "uiSchema": {
                        "type": "Categorization",
                        "elements": [
                          {
                            "type": "Category",
                            "label": "Level of income",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/financial-information/properties/annual-income-range"
                              }
                            ]
                          },
                          {
                            "type": "Category",
                            "label": "Attitude to risk",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/attitude-towards-risk/properties/willingness-to-fluctuations"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                }
              },
              "Process Updated Authoritatively": {
                "value": {
                  "cryptoRiskAssessment": {
                    "status": "ok",
                    "input": {
                      "formId": "7a0f4229-e3de-4dfd-8f91-9b1308b2dc33",
                      "answers": {
                        "crypto-quiz": {
                          "attitude-towards-risk": "agree",
                          "risks-and-returns": "guarantee_returns_and_precisely_predict_risk",
                          "total-loss-potential": "just_my_profit",
                          "capital-at-risk": "capital_will_always_appreciate",
                          "risk-similarity": "similar_to_savings_in_a_bank_account_or_investing_in_regulated_shares",
                          "liquidity-understanding": "a_lack_of_market_liquidity",
                          "losses-protection": "yes_they_cover_all_my_losses",
                          "risk-allocation-of-assets": "over_50"
                        }
                      }
                    },
                    "output": {
                      "result": "approved",
                      "attempts": {
                        "used": 1,
                        "maximum": 5
                      },
                      "verifiedAt": "2023-01-01T00:00:00.000Z"
                    }
                  }
                }
              },
              "Process Rejected": {
                "value": {
                  "cryptoRiskAssessment": {
                    "status": "pending",
                    "output": {
                      "result": "rejected",
                      "attempts": {
                        "used": 1,
                        "maximum": 5
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-crypto-risk-assessment-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Form Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The form cannot be found or has already been completed",
                  "details": {
                    "entity": "form"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-crypto-risk-assessment-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Form Already Completed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The form has already been completed",
                  "details": {
                    "reasons": [
                      "form-already-completed"
                    ]
                  }
                }
              },
              "Invalid Locale": {
                "value": {
                  "code": "locale_invalid",
                  "message": "The locale is invalid",
                  "details": {
                    "context": "headers",
                    "property": "accept-language"
                  }
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-self-categorization-statement-response": {
        "description": "KYC self-categorization statement process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "selfCategorizationStatement": {
                  "$ref": "#/components/schemas/kyc-self-categorization-statement"
                }
              },
              "required": [
                "selfCategorizationStatement"
              ]
            },
            "examples": {
              "Process Updated Non-Authoritatively": {
                "value": {
                  "selfCategorizationStatement": {
                    "status": "pending",
                    "input": {
                      "formId": "ac33651f-f2d3-47c4-8e8d-06fb87361f5c",
                      "answers": {
                        "investor": {
                          "type": "restricted_investor"
                        }
                      }
                    },
                    "hint": {
                      "type": "form",
                      "formId": "ac33651f-f2d3-47c4-8e8d-06fb87361f5c",
                      "schema": {
                        "type": "object",
                        "properties": {
                          "investor": {
                            "type": "object",
                            "title": "Which type of investor are you?",
                            "description": "The FCA divides investors into 3 types. Choose the best fit for you.",
                            "properties": {
                              "type": {
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "restricted_investor",
                                    "title": "Everyday investor"
                                  },
                                  {
                                    "const": "high_net_worth_investor",
                                    "title": "High-Net-Worth Investor"
                                  },
                                  {
                                    "const": "sophisticated_investor",
                                    "title": "Certified Sophisticated Investor"
                                  },
                                  {
                                    "const": "none_of_above",
                                    "title": "None of the above"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "type"
                            ]
                          },
                          "investor-profile": {
                            "type": "object",
                            "title": "Everyday Investor",
                            "description": "Please confirm whether you qualify as a Everyday Investor.",
                            "properties": {
                              "invested-less-than-10-percent": {
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "yes",
                                    "title": "Yes, I have invested less than 10% of my net assets"
                                  },
                                  {
                                    "const": "no",
                                    "title": "No, I have invested more than 10% of my net assets"
                                  }
                                ]
                              },
                              "invest-less-than-10-percent": {
                                "description": "In the next 12 months do you intend to limit your investment in high-risk investments to less than 10% of your net assets?",
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "yes",
                                    "title": "Yes, I intend to invest less than 10% of my net assets"
                                  },
                                  {
                                    "const": "no",
                                    "title": "No, I intend to invest more than 10% of my net assets"
                                  }
                                ]
                              },
                              "investor-type-confirmation": {
                                "title": "I accept that being a Everyday Investor will expose me to promotions for investment where there is a significant risk of losing all the money I invest.",
                                "type": "string",
                                "oneOf": [
                                  {
                                    "const": "yes",
                                    "title": "Yes"
                                  },
                                  {
                                    "const": "no",
                                    "title": "No"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "invested-less-than-10-percent",
                              "invest-less-than-10-percent",
                              "investor-type-confirmation"
                            ],
                            "allOf": [
                              {
                                "if": {
                                  "properties": {
                                    "invested-less-than-10-percent": {
                                      "const": "yes"
                                    }
                                  },
                                  "required": [
                                    "invested-less-than-10-percent"
                                  ]
                                },
                                "then": {
                                  "properties": {
                                    "invested-percentage": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 100
                                    }
                                  },
                                  "required": [
                                    "invested-percentage"
                                  ]
                                }
                              },
                              {
                                "if": {
                                  "properties": {
                                    "invest-less-than-10-percent": {
                                      "const": "yes"
                                    }
                                  },
                                  "required": [
                                    "invest-less-than-10-percent"
                                  ]
                                },
                                "then": {
                                  "properties": {
                                    "invest-percentage": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 100
                                    }
                                  },
                                  "required": [
                                    "invest-percentage"
                                  ]
                                }
                              }
                            ]
                          }
                        }
                      },
                      "uiSchema": {
                        "type": "Categorization",
                        "elements": [
                          {
                            "type": "Category",
                            "label": "Which type of investor are you?",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/investor/properties/type"
                              }
                            ]
                          },
                          {
                            "type": "Category",
                            "label": "Everyday Investor",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/investor-profile/properties/invested-less-than-10-percent"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/investor-profile/properties/invested-percentage",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/investor-profile/properties/invested-less-than-10-percent",
                                    "schema": {
                                      "const": "yes"
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/investor-profile/properties/invest-less-than-10-percent"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/investor-profile/properties/invest-percentage",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/investor-profile/properties/invest-less-than-10-percent",
                                    "schema": {
                                      "const": "yes"
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/investor-profile/properties/investor-type-confirmation"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                }
              },
              "Process Updated Authoritatively": {
                "value": {
                  "selfCategorizationStatement": {
                    "status": "ok",
                    "input": {
                      "formId": "ac33651f-f2d3-47c4-8e8d-06fb87361f5c",
                      "answers": {
                        "investor-category": {
                          "type": "high_net_worth_investor",
                          "annual-income-above-100000": "yes",
                          "annual-income": 120000,
                          "net-assets-above-250000": "yes",
                          "net-assets": 255000
                        }
                      }
                    },
                    "output": {
                      "result": "approved",
                      "attempts": {
                        "used": 1,
                        "maximum": 30
                      },
                      "expiresAt": "2026-01-01T00:00:00.000Z",
                      "verifiedAt": "2023-01-01T00:00:00.000Z"
                    }
                  }
                }
              },
              "Process Rejected": {
                "value": {
                  "selfCategorizationStatement": {
                    "status": "pending",
                    "output": {
                      "result": "rejected",
                      "attempts": {
                        "used": 1,
                        "maximum": 30
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-self-categorization-statement-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Form Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The form cannot be found or has already been completed",
                  "details": {
                    "entity": "form"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-self-categorization-statement-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Form Already Completed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The form has already been completed",
                  "details": {
                    "reasons": [
                      "form-already-completed"
                    ]
                  }
                }
              },
              "Invalid Locale": {
                "value": {
                  "code": "locale_invalid",
                  "message": "The locale is invalid",
                  "details": {
                    "context": "headers",
                    "property": "accept-language"
                  }
                }
              },
              "Expiration Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the future",
                  "details": {
                    "rule": "difference-less-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.expiresAt"
                  }
                }
              },
              "Verified Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be in the past",
                  "details": {
                    "rule": "difference-greater-than-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    },
                    "context": "body",
                    "property": "output.verifiedAt"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-tax-details-response": {
        "description": "KYC tax details process updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "taxDetails": {
                  "$ref": "#/components/schemas/kyc-tax-details"
                }
              },
              "required": [
                "taxDetails"
              ]
            },
            "examples": {
              "Process Updated Non-Authoritatively": {
                "value": {
                  "taxDetails": {
                    "status": "pending",
                    "input": {
                      "taxResidency": {
                        "countries": [
                          "GB"
                        ]
                      },
                      "taxIdentification": {
                        "documents": [
                          {
                            "type": "tin",
                            "country": "GB"
                          }
                        ]
                      }
                    },
                    "hint": {
                      "type": "form",
                      "schema": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "taxResidency": {
                            "title": "Tax Residency Declaration",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "countries": {
                                "title": "In which countries are you a tax resident?",
                                "type": "array",
                                "uniqueItems": true,
                                "minItems": 1,
                                "items": {
                                  "type": "string",
                                  "pattern": "^[A-Z]{2}$"
                                }
                              }
                            },
                            "required": [
                              "countries"
                            ]
                          },
                          "taxIdentification": {
                            "title": "Tax Identification and Certification",
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "documents": {
                                "title": "Tax Identification Documents",
                                "type": "array",
                                "uniqueItems": true,
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "country": {
                                      "title": "Country",
                                      "type": "string"
                                    },
                                    "type": {
                                      "title": "Document type",
                                      "type": "string"
                                    },
                                    "number": {
                                      "title": "Document number",
                                      "type": "string",
                                      "pattern": "^\\S.*\\S$|^\\S$"
                                    },
                                    "reason": {
                                      "title": "If you don't have a TIN, please select a reason",
                                      "type": "string",
                                      "oneOf": [
                                        {
                                          "const": "country-does-not-issue-document",
                                          "title": "My country does not issue TINs or equivalent to its residents."
                                        },
                                        {
                                          "const": "user-unable-to-obtain-document",
                                          "title": "I am unable to obtain a TIN."
                                        },
                                        {
                                          "const": "law-does-not-require-document",
                                          "title": "The local law does not require me to have a TIN."
                                        }
                                      ]
                                    },
                                    "justification": {
                                      "title": "I am unable to obtain a TIN because",
                                      "type": "string",
                                      "pattern": "^\\S.*\\S$|^\\S$",
                                      "maxLength": 1000
                                    }
                                  },
                                  "required": [
                                    "country",
                                    "type"
                                  ],
                                  "allOf": [
                                    {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "country": {
                                              "const": "GB"
                                            },
                                            "type": {
                                              "const": "tin"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "country"
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "if": {
                                        "type": "object",
                                        "properties": {
                                          "reason": {
                                            "const": "user-unable-to-obtain-document"
                                          }
                                        },
                                        "required": [
                                          "reason"
                                        ]
                                      },
                                      "then": {
                                        "type": "object",
                                        "properties": {
                                          "justification": true
                                        },
                                        "required": [
                                          "justification"
                                        ]
                                      }
                                    },
                                    {
                                      "oneOf": [
                                        {
                                          "type": "object",
                                          "properties": {
                                            "number": true
                                          },
                                          "required": [
                                            "number"
                                          ]
                                        },
                                        {
                                          "type": "object",
                                          "properties": {
                                            "reason": true
                                          },
                                          "required": [
                                            "reason"
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "allOf": [
                                  {
                                    "contains": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "const": "tin"
                                        },
                                        "country": {
                                          "const": "GB"
                                        }
                                      },
                                      "required": [
                                        "type",
                                        "country"
                                      ]
                                    },
                                    "minContains": 1,
                                    "maxContains": 1
                                  }
                                ]
                              },
                              "certify": {
                                "title": "I confirm that the information provided is accurate.",
                                "type": "boolean",
                                "const": true
                              }
                            },
                            "required": [
                              "documents",
                              "certify"
                            ]
                          }
                        }
                      },
                      "uiSchema": {
                        "type": "Categorization",
                        "elements": [
                          {
                            "label": "Tax Residency Declaration",
                            "type": "Category",
                            "elements": [
                              {
                                "label": "In which countries are you a tax resident?",
                                "type": "Control",
                                "scope": "#/properties/taxResidency/properties/countries",
                                "options": {
                                  "dataSource": "countries",
                                  "exclude": {
                                    "restrictions": [
                                      {
                                        "scope": "citizenship"
                                      }
                                    ]
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "label": "Tax Identification and Certification",
                            "type": "Category",
                            "elements": [
                              {
                                "label": "Tax Identification Documents",
                                "type": "ListWithDetail",
                                "scope": "#/properties/taxIdentification/properties/documents",
                                "options": {
                                  "elementLabelProp": "country",
                                  "disableAdd": true,
                                  "disableRemove": true,
                                  "showSortButtons": false,
                                  "detail": {
                                    "type": "ListWithDetail",
                                    "elements": [
                                      {
                                        "type": "Group",
                                        "elements": [
                                          {
                                            "label": "Document type",
                                            "type": "Control",
                                            "scope": "#/properties/type",
                                            "options": {
                                              "readonly": true
                                            }
                                          },
                                          {
                                            "label": "Country",
                                            "type": "Control",
                                            "scope": "#/properties/country",
                                            "options": {
                                              "readonly": true
                                            }
                                          },
                                          {
                                            "label": "Document number",
                                            "type": "Control",
                                            "scope": "#/properties/number"
                                          },
                                          {
                                            "label": "If you don't have a TIN, please select a reason",
                                            "type": "Control",
                                            "scope": "#/properties/reason"
                                          },
                                          {
                                            "label": "I am unable to obtain a TIN because",
                                            "type": "Control",
                                            "scope": "#/properties/justification"
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                "label": "I confirm that the information provided is accurate.",
                                "type": "Control",
                                "scope": "#/properties/taxIdentification/properties/certify"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-kyc-tax-details-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Address Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.taxResidency.address.country"
                  }
                }
              },
              "Address Subdivision Not Supported": {
                "value": {
                  "code": "subdivision_not_supported",
                  "message": "The subdivision is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.taxResidency.address.subdivision"
                  }
                }
              },
              "Address Postal Code Invalid": {
                "value": {
                  "code": "postal_code_invalid",
                  "message": "The postal code is invalid",
                  "details": {
                    "context": "body",
                    "property": "input.taxResidency.address.postalCode"
                  }
                }
              },
              "Countries Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.taxResidency.countries[0]"
                  }
                }
              },
              "Document Number Invalid": {
                "value": {
                  "code": "document_number_invalid",
                  "message": "The provided document number is invalid",
                  "details": {
                    "context": "body",
                    "property": "input.taxIdentification.documents[0].number"
                  }
                }
              },
              "Document Reason Not Supported": {
                "value": {
                  "code": "document_reason_not_supported",
                  "message": "The provided document reason is not supported",
                  "details": {
                    "context": "body",
                    "property": "input.taxIdentification.documents[0].reason"
                  }
                }
              },
              "Certification Signature Mismatch": {
                "value": {
                  "code": "certification_signature_mismatch",
                  "message": "The signature does not match the user's full name",
                  "details": {
                    "context": "body",
                    "property": "input.taxIdentification.signature"
                  }
                }
              },
              "Incomplete Declared Information": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "User cannot submit tax details due to incomplete declared information",
                  "details": {
                    "reasons": [
                      "incomplete-profile",
                      "incomplete-address"
                    ]
                  }
                }
              },
              "Process Updates Not Allowed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The process is not required for this user",
                  "details": {
                    "reasons": [
                      "kyc-process-status-exempt"
                    ]
                  }
                }
              }
            }
          }
        },
        "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-capabilities-response": {
        "description": "Capabilities retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "capabilities": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/capability"
                  }
                }
              },
              "required": [
                "capabilities"
              ]
            },
            "examples": {
              "Capabilities Retrieved": {
                "value": {
                  "capabilities": [
                    {
                      "code": "bank-deposits",
                      "name": "Deposit from bank",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "crypto-deposits",
                      "name": "Deposit from crypto networks",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "deposits",
                      "name": "Deposit from other methods",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "receives",
                      "name": "Receives",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "sends",
                      "name": "Sends",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "trades",
                      "name": "Trades",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "bank-withdrawals",
                      "name": "Withdraw to bank",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "card-withdrawals",
                      "name": "Withdraw to credit card",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "crypto-withdrawals",
                      "name": "Withdraw to crypto networks",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-submit-customer-due-diligence",
                        "user-must-submit-proof-of-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "cards",
                      "name": "Cards",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-delete-card",
                        "user-must-submit-residential-address"
                      ],
                      "restrictions": []
                    },
                    {
                      "code": "unique-account-number-viban",
                      "name": "Unique Account Number (Virtual IBAN)",
                      "enabled": true,
                      "requirements": [
                        "user-must-submit-identity",
                        "user-must-accept-unique-account-number-viban-terms-of-service",
                        "user-must-submit-residential-address"
                      ],
                      "restrictions": []
                    }
                  ]
                }
              }
            }
          }
        },
        "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-capability-response": {
        "description": "Capability retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "capability": {
                  "$ref": "#/components/schemas/capability"
                }
              },
              "required": [
                "capability"
              ]
            },
            "examples": {
              "Capability Retrieved": {
                "value": {
                  "capability": {
                    "code": "trades",
                    "name": "Trades",
                    "enabled": true,
                    "requirements": [
                      "user-must-submit-identity",
                      "user-must-submit-proof-of-address"
                    ],
                    "restrictions": []
                  }
                }
              }
            }
          }
        },
        "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-terms-of-service-response": {
        "description": "Terms of service retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "termsOfService": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/terms-of-service"
                  }
                }
              },
              "required": [
                "termsOfService"
              ]
            },
            "examples": {
              "Terms of Service Retrieved": {
                "value": {
                  "termsOfService": [
                    {
                      "code": "general-gb-fca",
                      "type": "general",
                      "countries": [
                        "GB"
                      ],
                      "modifiedAt": "2025-02-01T00:00:00.000Z",
                      "acceptedAt": "2025-03-01T00:00:00.000Z"
                    },
                    {
                      "code": "unique-account-number-viban",
                      "type": "unique-account-number",
                      "userTypes": [
                        "individual"
                      ],
                      "countries": [
                        "GB",
                        "PT"
                      ],
                      "modifiedAt": "2024-12-01T00:00:00.000Z"
                    }
                  ]
                }
              }
            }
          }
        },
        "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-terms-of-service-response": {
        "description": "Terms of service retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "termsOfService": {
                  "$ref": "#/components/schemas/terms-of-service"
                }
              },
              "required": [
                "termsOfService"
              ]
            },
            "examples": {
              "Terms of Service Retrieved": {
                "value": {
                  "termsOfService": {
                    "code": "general-gb-fca",
                    "type": "general",
                    "countries": [
                      "GB"
                    ],
                    "modifiedAt": "2025-02-01T00:00:00.000Z",
                    "acceptedAt": "2025-03-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "accept-terms-of-service-response": {
        "description": "Terms of service acceptance added.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "termsOfService": {
                  "$ref": "#/components/schemas/terms-of-service"
                }
              },
              "required": [
                "termsOfService"
              ]
            },
            "examples": {
              "Terms of Service Accepted": {
                "value": {
                  "termsOfService": {
                    "code": "unique-account-number-viban",
                    "type": "unique-account-number",
                    "countries": [
                      "GB",
                      "PT"
                    ],
                    "userTypes": [
                      "individual"
                    ],
                    "modifiedAt": "2025-02-01T00:00:00.000Z",
                    "acceptedAt": "2025-03-01T00:00:00.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "accept-terms-of-service-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Missing User Context": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Request not allowed due to missing user context",
                  "details": {
                    "reasons": [
                      "missing-user-ip-header"
                    ]
                  }
                }
              },
              "Terms of Service Not Applicable Due to User Type Mismatch": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The terms of service cannot be accepted by users of type 'business'",
                  "details": {
                    "reasons": [
                      "terms-of-service-not-applicable"
                    ]
                  }
                }
              },
              "Terms of Service Not Applicable Due to Country Mismatch": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The terms of service cannot be accepted because they do not apply to the user country of residence",
                  "details": {
                    "reasons": [
                      "terms-of-service-not-applicable"
                    ]
                  }
                }
              },
              "Terms of Service Already Accepted": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The terms of service have already been accepted",
                  "details": {
                    "reasons": [
                      "terms-of-service-already-accepted"
                    ]
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-file-response": {
        "description": "File created.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "file": {
                  "$ref": "#/components/schemas/file-for-upload"
                },
                "errors": {
                  "description": "Additional contextual errors that occurred while processing the request.",
                  "type": "object",
                  "properties": {
                    "metadata": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/error"
                        },
                        {
                          "description": "Error related to metadata processing."
                        }
                      ]
                    }
                  }
                }
              },
              "required": [
                "file"
              ]
            },
            "examples": {
              "File Created": {
                "value": {
                  "file": {
                    "id": "38cce774-b225-41ed-a9fd-f9c9777a13de",
                    "status": "pending",
                    "category": "image",
                    "contentType": "image/png",
                    "upload": {
                      "url": "https://example.com/upload",
                      "formData": {
                        "X-Amz-Algorithm": "AWS4-HMAC-SHA256",
                        "X-Amz-Credential": "ASIE4FQORBNQHNQD5CG6/20240801/us-east-1/s3/aws4_request",
                        "X-Amz-Date": "20240801T102500Z",
                        "X-Amz-Security-Token": "IQoJb3JpZ2luX2VjEIv//////////...JBr6h2HkzH/aFSArQcs=",
                        "X-Amz-Signature": "b4da8cf1a59327988a8108c965a4789fc8ba2d20f5bffda076106b2b254def29",
                        "Key": "4c13b6f5-987e-43df-bc12-042b58307a80",
                        "Policy": "eyJjb25kaXRpb25zIjpbeyJidWN...TA6MjU6MDAuMjAyWiJ9"
                      },
                      "expiresAt": "2024-03-13T20:20:39.000Z"
                    }
                  }
                }
              },
              "File Created With Metadata Error": {
                "value": {
                  "file": {
                    "id": "38cce774-b225-41ed-a9fd-f9c9777a13de",
                    "status": "pending",
                    "category": "image",
                    "contentType": "image/png",
                    "upload": {
                      "url": "https://example.com/upload",
                      "formData": {
                        "X-Amz-Algorithm": "AWS4-HMAC-SHA256",
                        "X-Amz-Credential": "ASIE4FQORBNQHNQD5CG6/20240801/us-east-1/s3/aws4_request",
                        "X-Amz-Date": "20240801T102500Z",
                        "X-Amz-Security-Token": "IQoJb3JpZ2luX2VjEIv//////////...JBr6h2HkzH/aFSArQcs=",
                        "X-Amz-Signature": "b4da8cf1a59327988a8108c965a4789fc8ba2d20f5bffda076106b2b254def29",
                        "Key": "4c13b6f5-987e-43df-bc12-042b58307a80",
                        "Policy": "eyJjb25kaXRpb25zIjpbeyJidWN...TA6MjU6MDAuMjAyWiJ9"
                      },
                      "expiresAt": "2024-03-13T20:20:39.000Z"
                    }
                  },
                  "errors": {
                    "metadata": {
                      "code": "content_too_large",
                      "message": "The entity metadata size is greater than maximum size limit",
                      "details": {
                        "threshold": {
                          "unit": "characters",
                          "limit": 1024
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-file-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "File Content Type Not Allowed": {
                "value": {
                  "code": "file_content_type_not_allowed",
                  "message": "The file content type is not allowed for the specified category"
                }
              },
              "Max Files Limit Exceeded": {
                "value": {
                  "code": "max_files_limit_exceeded",
                  "message": "The maximum number of allowed files has been exceeded"
                }
              }
            }
          }
        },
        "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-file-response": {
        "description": "File retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "file": {
                  "$ref": "#/components/schemas/file"
                }
              },
              "required": [
                "file"
              ]
            },
            "examples": {
              "File Retrieved": {
                "value": {
                  "file": {
                    "id": "38cce774-b225-41ed-a9fd-f9c9777a13de",
                    "status": "uploaded",
                    "category": "image",
                    "contentType": "image/png",
                    "download": {
                      "url": "https://example.com/download",
                      "expiresAt": "2024-03-13T20:20:39.000Z"
                    }
                  }
                }
              },
              "Pending File Retrieved": {
                "value": {
                  "file": {
                    "id": "a4e71e7d-83f3-493e-ac0e-d84618ad394a",
                    "status": "pending",
                    "category": "image",
                    "contentType": "image/png"
                  }
                }
              }
            }
          }
        },
        "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-file-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "File Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The file cannot be found",
                  "details": {
                    "entity": "file"
                  }
                }
              }
            }
          }
        },
        "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-files-settings-response": {
        "description": "File settings retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "settings": {
                  "$ref": "#/components/schemas/files-settings"
                }
              },
              "required": [
                "settings"
              ]
            },
            "examples": {
              "Settings List Retrieved": {
                "value": {
                  "settings": {
                    "document": {
                      "allowedContentTypes": [
                        "application/pdf",
                        "image/jpeg",
                        "image/png"
                      ],
                      "maxFileSize": 25000000,
                      "minFileSize": 1,
                      "expiresIn": 900
                    },
                    "image": {
                      "allowedContentTypes": [
                        "image/jpeg",
                        "image/png"
                      ],
                      "maxFileSize": 15000000,
                      "minFileSize": 1,
                      "expiresIn": 900
                    },
                    "video": {
                      "allowedContentTypes": [
                        "video/mp4",
                        "video/mpeg"
                      ],
                      "maxFileSize": 100000000,
                      "minFileSize": 1,
                      "expiresIn": 900
                    }
                  }
                }
              },
              "Image Settings Retrieved": {
                "value": {
                  "settings": {
                    "image": {
                      "allowedContentTypes": [
                        "image/jpeg",
                        "image/png"
                      ],
                      "maxFileSize": 15000000,
                      "minFileSize": 1,
                      "expiresIn": 900
                    }
                  }
                }
              }
            }
          }
        },
        "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-assets-response": {
        "description": "Assets list retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "assets": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/asset"
                  }
                }
              },
              "required": [
                "assets"
              ]
            },
            "examples": {
              "Assets Retrieved": {
                "value": {
                  "assets": [
                    {
                      "code": "GBP",
                      "name": "British Pound",
                      "type": "fiat",
                      "symbol": "£",
                      "decimals": 2,
                      "logo": "https://cdn.uphold.com/assets/GBP.svg",
                      "features": [
                        "buy",
                        "deposit",
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": []
                    },
                    {
                      "code": "BTC",
                      "name": "Bitcoin",
                      "type": "crypto",
                      "symbol": "₿",
                      "decimals": 8,
                      "logo": "https://cdn.uphold.com/assets/BTC.svg",
                      "features": [
                        "buy",
                        "deposit",
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": []
                    },
                    {
                      "code": "ETH",
                      "name": "Ether",
                      "type": "crypto",
                      "symbol": "Ξ",
                      "decimals": 18,
                      "logo": "https://cdn.uphold.com/assets/ETH.svg",
                      "features": [
                        "buy",
                        "deposit",
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": []
                    },
                    {
                      "code": "USDC",
                      "name": "USDC",
                      "type": "crypto",
                      "symbol": "$",
                      "decimals": 6,
                      "logo": "https://cdn.uphold.com/assets/USDC.svg",
                      "features": [
                        "buy",
                        "sell",
                        "transfer"
                      ],
                      "cooldowns": []
                    },
                    {
                      "code": "BAT",
                      "name": "BAT",
                      "type": "crypto",
                      "decimals": 18,
                      "logo": "https://cdn.uphold.com/assets/BAT.svg",
                      "features": [
                        "buy",
                        "deposit",
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": []
                    }
                  ]
                }
              },
              "Assets With Cooldowns Retrieved": {
                "value": {
                  "assets": [
                    {
                      "code": "GBP",
                      "name": "British Pound",
                      "type": "fiat",
                      "symbol": "£",
                      "decimals": 2,
                      "logo": "https://cdn.uphold.com/assets/GBP.svg",
                      "features": [
                        "buy",
                        "deposit",
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": []
                    },
                    {
                      "code": "BTC",
                      "name": "Bitcoin",
                      "type": "crypto",
                      "symbol": "₿",
                      "decimals": 8,
                      "logo": "https://cdn.uphold.com/assets/BTC.svg",
                      "features": [
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": [
                        {
                          "rule": "financial-promotions",
                          "features": [
                            "buy",
                            "deposit"
                          ],
                          "endsAt": "2020-01-01T00:00:00.000Z"
                        }
                      ]
                    },
                    {
                      "code": "ETH",
                      "name": "Ether",
                      "type": "crypto",
                      "symbol": "Ξ",
                      "decimals": 18,
                      "logo": "https://cdn.uphold.com/assets/ETH.svg",
                      "features": [
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": [
                        {
                          "rule": "financial-promotions",
                          "features": [
                            "buy",
                            "deposit"
                          ],
                          "endsAt": "2020-01-01T00:00:00.000Z"
                        }
                      ]
                    },
                    {
                      "code": "USDC",
                      "name": "USDC",
                      "type": "crypto",
                      "symbol": "$",
                      "decimals": 6,
                      "logo": "https://cdn.uphold.com/assets/USDC.svg",
                      "features": [
                        "sell",
                        "transfer"
                      ],
                      "cooldowns": [
                        {
                          "rule": "financial-promotions",
                          "features": [
                            "buy"
                          ],
                          "endsAt": "2024-12-31T23:59:59.000Z"
                        }
                      ]
                    },
                    {
                      "code": "BAT",
                      "name": "BAT",
                      "type": "crypto",
                      "decimals": 18,
                      "logo": "https://cdn.uphold.com/assets/BAT.svg",
                      "features": [
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": [
                        {
                          "rule": "financial-promotions",
                          "features": [
                            "buy",
                            "deposit"
                          ],
                          "endsAt": "2024-12-31T23:59:59.000Z"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "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-many-assets-response": {
        "description": "Assets retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "assets": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/asset"
                  }
                }
              },
              "required": [
                "assets"
              ]
            },
            "examples": {
              "Assets Retrieved": {
                "value": {
                  "assets": {
                    "BTC": {
                      "code": "BTC",
                      "name": "Bitcoin",
                      "type": "crypto",
                      "symbol": "₿",
                      "decimals": 8,
                      "logo": "https://cdn.uphold.com/assets/BTC.svg",
                      "features": [
                        "buy",
                        "deposit",
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": []
                    },
                    "ETH": {
                      "code": "ETH",
                      "name": "Ethereum",
                      "type": "crypto",
                      "symbol": "Ξ",
                      "decimals": 18,
                      "logo": "https://cdn.uphold.com/assets/ETH.svg",
                      "features": [
                        "buy",
                        "deposit",
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": []
                    }
                  }
                }
              },
              "Assets With Cooldowns Retrieved": {
                "value": {
                  "assets": {
                    "BTC": {
                      "code": "BTC",
                      "name": "Bitcoin",
                      "type": "crypto",
                      "symbol": "₿",
                      "decimals": 8,
                      "logo": "https://cdn.uphold.com/assets/BTC.svg",
                      "features": [
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": [
                        {
                          "rule": "financial-promotions",
                          "features": [
                            "buy",
                            "deposit"
                          ],
                          "endsAt": "2024-12-31T23:59:59.000Z"
                        }
                      ]
                    },
                    "ETH": {
                      "code": "ETH",
                      "name": "Ethereum",
                      "type": "crypto",
                      "symbol": "Ξ",
                      "decimals": 18,
                      "logo": "https://cdn.uphold.com/assets/ETH.svg",
                      "features": [
                        "sell",
                        "transfer",
                        "withdraw"
                      ],
                      "cooldowns": [
                        {
                          "rule": "financial-promotions",
                          "features": [
                            "buy",
                            "deposit"
                          ],
                          "endsAt": "2024-12-31T23:59:59.000Z"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "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-asset-response": {
        "description": "Asset retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "asset": {
                  "$ref": "#/components/schemas/asset"
                }
              },
              "required": [
                "asset"
              ]
            },
            "examples": {
              "Asset Retrieved": {
                "value": {
                  "asset": {
                    "code": "BTC",
                    "name": "Bitcoin",
                    "type": "crypto",
                    "symbol": "₿",
                    "decimals": 8,
                    "logo": "https://cdn.uphold.com/assets/BTC.svg",
                    "features": [
                      "buy",
                      "deposit",
                      "sell",
                      "transfer",
                      "withdraw"
                    ],
                    "cooldowns": []
                  }
                }
              },
              "Asset With Cooldowns Retrieved": {
                "value": {
                  "asset": {
                    "code": "BTC",
                    "name": "Bitcoin",
                    "type": "crypto",
                    "symbol": "₿",
                    "decimals": 8,
                    "logo": "https://cdn.uphold.com/assets/BTC.svg",
                    "features": [
                      "sell",
                      "transfer",
                      "withdraw"
                    ],
                    "cooldowns": [
                      {
                        "rule": "financial-promotions",
                        "features": [
                          "buy",
                          "deposit"
                        ],
                        "endsAt": "2024-12-31T23:59:59.000Z"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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-asset-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The asset cannot be found",
                  "details": {
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-asset-rates-response": {
        "description": "Asset rates retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "rates": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/asset-rate"
                  }
                }
              }
            },
            "examples": {
              "Asset Rates Retrieved": {
                "value": {
                  "rates": {
                    "ETH": {
                      "ask": "22.910619213684715739",
                      "bid": "22.85842248147463121064",
                      "mid": "22.88452084757967347482"
                    },
                    "GBP": {
                      "ask": "47027.64159916551332431855",
                      "bid": "46908.53407930127413227339",
                      "mid": "46968.08783923339372829597"
                    },
                    "USD": {
                      "ask": "61023.8527432818",
                      "bid": "60946.4628910217",
                      "mid": "60985.15781715175"
                    }
                  }
                }
              }
            }
          }
        },
        "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-asset-rates-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The asset cannot be found",
                  "details": {
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-asset-rates-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Pair Not Supported": {
                "value": {
                  "code": "asset_pair_not_supported",
                  "message": "Rates are not available for the requested asset pair"
                }
              }
            }
          }
        },
        "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-asset-historical-rate-response": {
        "description": "Historical rates retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "historicalRates": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/asset-historical-rate"
                    }
                  },
                  "minProperties": 1
                }
              }
            },
            "examples": {
              "Historical Rates Retrieved": {
                "value": {
                  "historicalRates": {
                    "BTC": [
                      {
                        "rate": {
                          "mid": "27649.1865680048064515576"
                        },
                        "timestamp": "2021-07-01T00:00:00.000Z"
                      },
                      {
                        "rate": {
                          "mid": "28000.1234567890123456789"
                        },
                        "timestamp": "2021-07-02T00:00:00.000Z"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "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-asset-historical-rate-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "From Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The asset cannot be found",
                  "details": {
                    "context": "path",
                    "entity": "asset"
                  }
                }
              },
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-asset-historical-rate-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-networks-response": {
        "description": "Networks retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "networks": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/network"
                  }
                }
              },
              "required": [
                "networks"
              ]
            },
            "examples": {
              "Networks Retrieved": {
                "value": {
                  "networks": [
                    {
                      "code": "bitcoin",
                      "name": "Bitcoin",
                      "type": "crypto",
                      "logo": "https://cdn.uphold.com/assets/BTC.svg",
                      "exampleAddress": "tb1qgu0gacn9pqpnvlqclvdwyz4gfgxz8pptfz4emt",
                      "explorer": {
                        "addressUrl": "https://mempool.space/testnet/tx/<hash>",
                        "txUrl": "https://mempool.space/testnet/address/<hash>"
                      }
                    },
                    {
                      "code": "xrp-ledger",
                      "name": "XRP Ledger",
                      "type": "crypto",
                      "logo": "https://cdn.uphold.com/assets/XRP.svg",
                      "exampleAddress": "rPjTZfLP3Qxwwd2xvXSALJzEFmmf7bEYgh",
                      "reference": {
                        "type": "destination-tag"
                      },
                      "explorer": {
                        "addressUrl": "https://testnet.xrpl.org/accounts/<hash>,",
                        "txUrl": "https://testnet.xrpl.org/transactions/<hash>"
                      }
                    },
                    {
                      "code": "visa",
                      "name": "VISA",
                      "type": "card"
                    },
                    {
                      "code": "mastercard",
                      "name": "Mastercard",
                      "type": "card"
                    },
                    {
                      "code": "ach",
                      "name": "Automated Clearing House",
                      "type": "bank"
                    },
                    {
                      "code": "fps",
                      "name": "Faster Payment System",
                      "reference": {
                        "type": "payment-reference"
                      },
                      "type": "bank"
                    }
                  ]
                }
              }
            }
          }
        },
        "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-network-response": {
        "description": "Network retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "network": {
                  "$ref": "#/components/schemas/network"
                }
              },
              "required": [
                "network"
              ]
            },
            "examples": {
              "Network Retrieved": {
                "value": {
                  "network": {
                    "code": "bitcoin",
                    "name": "Bitcoin",
                    "type": "crypto",
                    "exampleAddress": "tb1qgu0gacn9pqpnvlqclvdwyz4gfgxz8pptfz4emt",
                    "explorer": {
                      "addressUrl": "https://mempool.space/testnet/tx/<hash>",
                      "txUrl": "https://mempool.space/testnet/address/<hash>"
                    }
                  }
                }
              }
            }
          }
        },
        "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-network-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Network Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The network cannot be found",
                  "details": {
                    "entity": "network"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "validate-network-address-response": {
        "description": "Address validation result.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "isValid": {
                  "description": "Whether the address is valid for the specified network.",
                  "type": "boolean"
                },
                "error": {
                  "description": "The error details if the address is invalid.",
                  "type": "object",
                  "properties": {
                    "code": {
                      "description": "The error code.",
                      "type": "string",
                      "enum": [
                        "address_invalid",
                        "reference_invalid",
                        "reference_missing"
                      ]
                    },
                    "message": {
                      "description": "A human-readable error message.",
                      "type": "string"
                    },
                    "details": {
                      "description": "Additional details about the error.",
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "code",
                    "message"
                  ]
                }
              },
              "required": [
                "isValid"
              ]
            },
            "examples": {
              "Valid Address": {
                "value": {
                  "isValid": true
                }
              },
              "Invalid Address": {
                "value": {
                  "isValid": false,
                  "error": {
                    "code": "address_invalid",
                    "message": "The address is invalid"
                  }
                }
              },
              "Invalid Stellar Memo": {
                "value": {
                  "isValid": false,
                  "error": {
                    "code": "reference_invalid",
                    "message": "Stellar memo must be 28 bytes long",
                    "details": {
                      "rule": "byteLength",
                      "expected": 28,
                      "actual": 10
                    }
                  }
                }
              },
              "Invalid XRP Destination Tag": {
                "value": {
                  "isValid": false,
                  "error": {
                    "code": "reference_invalid",
                    "message": "XRP destination tag must be an integer between 0 and 4294967295",
                    "details": {
                      "rule": "range",
                      "min": 0,
                      "max": 4294967295
                    }
                  }
                }
              },
              "Missing Reference": {
                "value": {
                  "isValid": false,
                  "error": {
                    "code": "reference_missing",
                    "message": "A reference is required for this address",
                    "details": {
                      "rule": "required"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "validate-network-address-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Network Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The network cannot be found",
                  "details": {
                    "entity": "network"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "validate-network-address-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Network Must Be Crypto": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Network must be a crypto network"
                }
              }
            }
          }
        },
        "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-rails-response": {
        "description": "Rails retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "rails": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/rail"
                  }
                }
              }
            },
            "examples": {
              "Rails Retrieved": {
                "value": {
                  "rails": [
                    {
                      "type": "crypto",
                      "network": "bitcoin",
                      "method": "crypto-transaction",
                      "asset": "BTC",
                      "decimals": 8,
                      "features": [
                        "deposit",
                        "withdraw"
                      ]
                    },
                    {
                      "type": "crypto",
                      "network": "ethereum",
                      "method": "crypto-transaction",
                      "asset": "USDC",
                      "decimals": 6,
                      "features": [
                        "deposit",
                        "withdraw"
                      ],
                      "contractAddress": "0xd6d663b601D63a0d1A651D61847Ec8134Eb3a3CF"
                    },
                    {
                      "type": "card",
                      "network": "visa",
                      "method": "debit-card",
                      "asset": "USD",
                      "decimals": 2,
                      "features": [
                        "deposit",
                        "withdraw"
                      ]
                    },
                    {
                      "type": "bank",
                      "network": "ach",
                      "method": "bank-transfer",
                      "asset": "USD",
                      "decimals": 2,
                      "features": [
                        "deposit",
                        "withdraw"
                      ],
                      "constraints": [
                        {
                          "rule": "allowed-deposit-accounts",
                          "allowed": "default-only"
                        }
                      ]
                    },
                    {
                      "type": "bank",
                      "network": "fps",
                      "method": "bank-transfer",
                      "asset": "GBP",
                      "decimals": 2,
                      "features": [
                        "deposit",
                        "withdraw"
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "skip-assets-cooldowns-response": {
        "description": "Assets cooldowns skipped successfully.",
        "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-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"
              }
            }
          }
        }
      },
      "create-account-response": {
        "description": "Account created.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "account": {
                  "$ref": "#/components/schemas/account"
                },
                "errors": {
                  "description": "Additional contextual errors that occurred while processing the request.",
                  "type": "object",
                  "properties": {
                    "metadata": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/error"
                        },
                        {
                          "description": "Error related to metadata processing."
                        }
                      ]
                    }
                  }
                }
              },
              "required": [
                "account"
              ]
            },
            "examples": {
              "Account Created": {
                "value": {
                  "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"
                  }
                }
              },
              "Account Created With Metadata Error": {
                "value": {
                  "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"
                  },
                  "errors": {
                    "metadata": {
                      "code": "content_too_large",
                      "message": "The entity metadata size is greater than maximum size limit",
                      "details": {
                        "threshold": {
                          "unit": "characters",
                          "limit": 1024
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "asset-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The asset cannot be found",
                  "details": {
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-account-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The asset is not supported"
                }
              }
            }
          }
        },
        "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-response": {
        "description": "Account retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "account": {
                  "$ref": "#/components/schemas/account"
                }
              },
              "required": [
                "account"
              ]
            },
            "examples": {
              "Account Retrieved": {
                "value": {
                  "account": {
                    "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"
                  }
                }
              }
            }
          }
        },
        "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-response": {
        "description": "Account archived.",
        "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"
              }
            }
          }
        }
      },
      "archive-account-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Account Has Balance": {
                "value": {
                  "code": "account_has_balance",
                  "message": "The account has balance and cannot be archived"
                }
              },
              "Account Has Pending Transactions": {
                "value": {
                  "code": "account_has_pending_transactions",
                  "message": "The account has pending transactions and cannot be archived"
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-account-response": {
        "description": "Account updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "account": {
                  "$ref": "#/components/schemas/account"
                }
              },
              "required": [
                "account"
              ]
            },
            "examples": {
              "Account Updated": {
                "value": {
                  "account": {
                    "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                    "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                    "label": "My BTC long-term",
                    "asset": "BTC",
                    "balance": {
                      "total": "0.0015",
                      "available": "0.0015"
                    },
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "updatedAt": "2024-07-15T00:00:00.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-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"
              }
            }
          }
        }
      },
      "get-account-deposit-method-response": {
        "description": "Deposit method retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "depositMethod": {
                  "$ref": "#/components/schemas/account-deposit-method"
                }
              },
              "required": [
                "depositMethod"
              ]
            },
            "examples": {
              "Bitcoin Crypto Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "crypto",
                    "status": "ok",
                    "details": {
                      "asset": "BTC",
                      "network": "bitcoin",
                      "address": "tb1qktapuxvq6u39n7tc4sfkp9q8vwecrqza7xeqhn",
                      "addressFormats": [
                        {
                          "format": "native-segwit",
                          "value": "tb1qktapuxvq6u39n7tc4sfkp9q8vwecrqza7xeqhn"
                        },
                        {
                          "format": "wrapped-segwit",
                          "value": "2MzJXEZeyJV4jMHxkeGY7x88DPpF15p78ks"
                        }
                      ]
                    }
                  }
                }
              },
              "Stellar Crypto Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "crypto",
                    "status": "ok",
                    "details": {
                      "asset": "XLM",
                      "network": "stellar",
                      "address": "GC3ZSJ3K2HKSN7MKK2SXNFBELR5Y5WE5HMVDO7UG6SQE55DEJY55BYWK",
                      "addressFormats": [
                        {
                          "format": "pubkey-hash",
                          "value": "GC3ZSJ3K2HKSN7MKK2SXNFBELR5Y5WE5HMVDO7UG6SQE55DEJY55BYWK"
                        }
                      ],
                      "reference": "0123456789"
                    }
                  }
                }
              },
              "ACH Bank Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "bank",
                    "status": "ok",
                    "details": {
                      "network": "ach",
                      "asset": "USD",
                      "beneficiary": "John Doe",
                      "bankName": "Cross River Bank",
                      "bankAddress": {
                        "line1": "2 Riverview Dr",
                        "line2": "Fort Lee, NJ 07024"
                      },
                      "routingNumber": "021000021",
                      "accountNumber": "123456789",
                      "accountType": "checking",
                      "secondaryNetworks": [
                        "fednow",
                        "wire"
                      ]
                    }
                  }
                }
              },
              "FPS Bank Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "bank",
                    "status": "ok",
                    "details": {
                      "network": "fps",
                      "asset": "GBP",
                      "beneficiary": "John Doe",
                      "bankName": "Example Bank",
                      "bankAddress": {
                        "line1": "123 Bank Street",
                        "line2": "London, United Kingdom"
                      },
                      "sortCode": "123456",
                      "accountNumber": "12345678",
                      "reference": "UH12345678"
                    }
                  }
                }
              },
              "SEPA Bank Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "bank",
                    "status": "ok",
                    "details": {
                      "network": "sepa",
                      "asset": "EUR",
                      "beneficiary": "John Doe",
                      "bankName": "Example Bank",
                      "bankAddress": {
                        "line1": "123 Bank Street",
                        "line2": "Vienna, Austria"
                      },
                      "bic": "EXAAAT2K",
                      "iban": "AT487954841229809844",
                      "reference": "UH12345678"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "get-account-deposit-method-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Rail Missing Deposit Feature": {
                "value": {
                  "code": "rail_feature_not_available",
                  "message": "The 'deposit' feature is not available for the rail",
                  "details": {
                    "feature": "deposit"
                  }
                }
              },
              "Account Asset Missing Buy Feature": {
                "value": {
                  "code": "asset_feature_not_available",
                  "message": "The 'buy' feature is not available for the account asset",
                  "details": {
                    "context": "path",
                    "property": "accountId",
                    "feature": "buy"
                  }
                }
              },
              "Account Asset Missing Transfer Feature": {
                "value": {
                  "code": "asset_feature_not_available",
                  "message": "The 'transfer' feature is not available for the account asset",
                  "details": {
                    "context": "path",
                    "property": "accountId",
                    "feature": "transfer"
                  }
                }
              },
              "Deposits Available Only To Default Account": {
                "value": {
                  "code": "rail_constraint_violated",
                  "message": "Deposits for this rail are only available to the default account",
                  "details": {
                    "rule": "allowed-deposit-accounts"
                  }
                }
              },
              "User Capability Failure": {
                "value": {
                  "code": "user_capability_failure",
                  "message": "The user has capability constraints",
                  "details": {
                    "capability": {
                      "code": "deposits",
                      "requirements": [],
                      "restrictions": [
                        "user-status-not-valid"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "setup-account-deposit-method-response": {
        "description": "Deposit method set up.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "depositMethod": {
                  "$ref": "#/components/schemas/account-deposit-method"
                }
              },
              "required": [
                "depositMethod"
              ]
            },
            "examples": {
              "Bitcoin Crypto Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "crypto",
                    "status": "ok",
                    "details": {
                      "asset": "BTC",
                      "network": "bitcoin",
                      "address": "tb1qktapuxvq6u39n7tc4sfkp9q8vwecrqza7xeqhn",
                      "addressFormats": [
                        {
                          "format": "native-segwit",
                          "value": "tb1qktapuxvq6u39n7tc4sfkp9q8vwecrqza7xeqhn"
                        },
                        {
                          "format": "wrapped-segwit",
                          "value": "2MzJXEZeyJV4jMHxkeGY7x88DPpF15p78ks"
                        }
                      ]
                    }
                  }
                }
              },
              "Stellar Crypto Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "crypto",
                    "status": "ok",
                    "details": {
                      "asset": "XLM",
                      "network": "stellar",
                      "address": "GC3ZSJ3K2HKSN7MKK2SXNFBELR5Y5WE5HMVDO7UG6SQE55DEJY55BYWK",
                      "addressFormats": [
                        {
                          "format": "pubkey-hash",
                          "value": "GC3ZSJ3K2HKSN7MKK2SXNFBELR5Y5WE5HMVDO7UG6SQE55DEJY55BYWK"
                        }
                      ],
                      "reference": "0123456789"
                    }
                  }
                }
              },
              "ACH Bank Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "bank",
                    "status": "ok",
                    "details": {
                      "network": "ach",
                      "asset": "USD",
                      "beneficiary": "John Doe",
                      "bankName": "Cross River Bank",
                      "bankAddress": {
                        "line1": "2 Riverview Dr",
                        "line2": "Fort Lee, NJ 07024"
                      },
                      "routingNumber": "021000021",
                      "accountNumber": "123456789",
                      "accountType": "checking",
                      "secondaryNetworks": [
                        "fednow",
                        "wire"
                      ]
                    }
                  }
                }
              },
              "FPS Bank Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "bank",
                    "status": "ok",
                    "details": {
                      "network": "fps",
                      "asset": "GBP",
                      "beneficiary": "John Doe",
                      "bankName": "Example Bank",
                      "bankAddress": {
                        "line1": "123 Bank Street",
                        "line2": "London, United Kingdom"
                      },
                      "sortCode": "123456",
                      "accountNumber": "12345678",
                      "reference": "UH12345678"
                    }
                  }
                }
              },
              "SEPA Bank Deposit Method": {
                "value": {
                  "depositMethod": {
                    "type": "bank",
                    "status": "ok",
                    "details": {
                      "network": "sepa",
                      "asset": "EUR",
                      "beneficiary": "John Doe",
                      "bankName": "Example Bank",
                      "bankAddress": {
                        "line1": "Rua Augusta 100",
                        "line2": "Lisbon, Portugal"
                      },
                      "bic": "EXAAAT2K",
                      "iban": "AT487954841229809844",
                      "reference": "UH12345678"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "setup-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"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "setup-account-deposit-method-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Rail Missing Deposit Feature": {
                "value": {
                  "code": "rail_feature_not_available",
                  "message": "The 'deposit' feature is not available for the rail",
                  "details": {
                    "feature": "deposit"
                  }
                }
              },
              "Account Asset Missing Buy Feature": {
                "value": {
                  "code": "asset_feature_not_available",
                  "message": "The 'buy' feature is not available for the account asset",
                  "details": {
                    "context": "path",
                    "property": "accountId",
                    "feature": "buy"
                  }
                }
              },
              "Account Asset Missing Transfer Feature": {
                "value": {
                  "code": "asset_feature_not_available",
                  "message": "The 'transfer' feature is not available for the account asset",
                  "details": {
                    "context": "path",
                    "property": "accountId",
                    "feature": "transfer"
                  }
                }
              },
              "Deposits Available Only To Default Account": {
                "value": {
                  "code": "rail_constraint_violated",
                  "message": "Deposits for this rail are only available to the default account",
                  "details": {
                    "rule": "allowed-deposit-accounts"
                  }
                }
              },
              "User Capability Failure": {
                "value": {
                  "code": "user_capability_failure",
                  "message": "The user has capability constraints",
                  "details": {
                    "capability": {
                      "code": "deposits",
                      "requirements": [],
                      "restrictions": [
                        "user-status-not-valid"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "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-response": {
        "description": "Bank deposit simulated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "bankDeposit": {
                  "type": "object",
                  "discriminator": {
                    "propertyName": "network",
                    "mapping": {
                      "fps": "#/components/schemas/simulate-bank-deposit-fps",
                      "sepa": "#/components/schemas/simulate-bank-deposit-sepa"
                    }
                  },
                  "oneOf": [
                    {
                      "title": "FPS",
                      "$ref": "#/components/schemas/simulate-bank-deposit-fps"
                    },
                    {
                      "title": "SEPA",
                      "$ref": "#/components/schemas/simulate-bank-deposit-sepa"
                    }
                  ]
                }
              },
              "required": [
                "bankDeposit"
              ]
            },
            "examples": {
              "FPS Bank Deposit Accepted": {
                "value": {
                  "bankDeposit": {
                    "network": "fps",
                    "sortCode": "123456",
                    "accountNumber": "12345678",
                    "reference": "UH12345678",
                    "asset": "GBP",
                    "amount": "100",
                    "remitter": {
                      "name": "John Doe",
                      "sortCode": "654321",
                      "accountNumber": "87654321"
                    }
                  }
                }
              },
              "SEPA Bank Deposit Accepted": {
                "value": {
                  "bankDeposit": {
                    "network": "sepa",
                    "iban": "AT487954841229809844",
                    "reference": "UH12345678",
                    "asset": "EUR",
                    "amount": "100",
                    "remitter": {
                      "name": "John Doe",
                      "bic": "LHVBEE22",
                      "iban": "DE89370400440532013000"
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "simulate-bank-deposit-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The asset is not supported",
                  "details": {
                    "context": "body",
                    "property": "asset"
                  }
                }
              },
              "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": 0
                    }
                  }
                }
              },
              "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"
              }
            }
          }
        }
      },
      "list-external-accounts-response": {
        "description": "External accounts retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "externalAccounts": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/external-account"
                  }
                }
              },
              "required": [
                "externalAccounts"
              ]
            },
            "examples": {
              "External Accounts Retrieved": {
                "value": {
                  "externalAccounts": [
                    {
                      "id": "550e8400-e29b-41d4-a716-446655440000",
                      "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                      "type": "bank",
                      "status": "ok",
                      "label": "My ACH Bank Account",
                      "asset": "USD",
                      "network": "ach",
                      "features": [
                        "withdraw"
                      ],
                      "details": {
                        "address": {
                          "country": "US",
                          "subdivision": "US-CA",
                          "city": "Los Angeles",
                          "line1": "456 Oak Avenue",
                          "postalCode": "90001"
                        },
                        "routingNumber": "021000021",
                        "accountNumber": "987654321",
                        "accountType": "checking",
                        "secondaryNetworks": {
                          "withdraw": [
                            "fednow"
                          ]
                        }
                      },
                      "createdAt": "2024-06-01T00:00:00.000Z",
                      "updatedAt": "2024-07-15T00:00:00.000Z"
                    },
                    {
                      "id": "8357a0d4-f3c4-43d9-aecc-bcfd32ca9333",
                      "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                      "type": "bank",
                      "status": "ok",
                      "label": "My FPS Bank Account",
                      "asset": "GBP",
                      "network": "fps",
                      "features": [
                        "withdraw"
                      ],
                      "details": {
                        "accountNumber": "12345678",
                        "sortCode": "123456"
                      },
                      "createdAt": "2024-06-01T00:00:00.000Z",
                      "updatedAt": "2024-07-15T00:00:00.000Z"
                    },
                    {
                      "id": "c4a2e8b1-5d6f-4a3b-9e7c-8f1d2a3b4c5d",
                      "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                      "type": "bank",
                      "status": "ok",
                      "label": "My SEPA Bank Account",
                      "asset": "EUR",
                      "network": "sepa",
                      "features": [
                        "withdraw"
                      ],
                      "details": {
                        "bic": "EXAAAT2K",
                        "iban": "AT487954841229809844"
                      },
                      "createdAt": "2024-06-01T00:00:00.000Z",
                      "updatedAt": "2024-07-15T00:00:00.000Z"
                    },
                    {
                      "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                      "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                      "type": "card",
                      "status": "ok",
                      "label": "My Visa Card",
                      "asset": "GBP",
                      "network": "visa",
                      "features": [
                        "deposit",
                        "withdraw"
                      ],
                      "details": {
                        "type": "debit",
                        "last4Digits": "1519",
                        "expiryDate": {
                          "month": 12,
                          "year": 2030
                        },
                        "octSupport": "supported"
                      },
                      "createdAt": "2024-06-02T00:00:00.000Z",
                      "updatedAt": "2024-07-15T00:00:00.000Z"
                    },
                    {
                      "id": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                      "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                      "type": "card",
                      "status": "ok",
                      "label": "My Mastercard Card",
                      "asset": "GBP",
                      "network": "mastercard",
                      "features": [
                        "deposit"
                      ],
                      "details": {
                        "type": "credit",
                        "last4Digits": "2311",
                        "expiryDate": {
                          "month": 3,
                          "year": 2035
                        },
                        "octSupport": "unsupported"
                      },
                      "createdAt": "2024-06-01T00:00:00.000Z",
                      "updatedAt": "2024-07-15T00:00:00.000Z"
                    }
                  ]
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-external-account-response": {
        "description": "External account created.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "externalAccount": {
                  "$ref": "#/components/schemas/external-account"
                },
                "errors": {
                  "description": "Additional contextual errors that occurred while processing the request.",
                  "type": "object",
                  "properties": {
                    "metadata": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/error"
                        },
                        {
                          "description": "Error related to metadata processing."
                        }
                      ]
                    }
                  }
                }
              },
              "required": [
                "externalAccount"
              ]
            },
            "examples": {
              "ACH Bank Account Created": {
                "value": {
                  "externalAccount": {
                    "id": "550e8400-e29b-41d4-a716-446655440000",
                    "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                    "type": "bank",
                    "status": "ok",
                    "label": "My ACH Bank Account",
                    "asset": "USD",
                    "network": "ach",
                    "features": [
                      "withdraw"
                    ],
                    "details": {
                      "address": {
                        "country": "US",
                        "subdivision": "US-CA",
                        "city": "San Francisco",
                        "line1": "123 Main Street",
                        "line2": "Apt 4B",
                        "postalCode": "94102"
                      },
                      "routingNumber": "121000248",
                      "accountNumber": "9876543210",
                      "accountType": "checking",
                      "secondaryNetworks": {
                        "withdraw": [
                          "fednow"
                        ]
                      }
                    },
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "updatedAt": "2024-07-15T00:00:00.000Z"
                  }
                }
              },
              "Card Created": {
                "value": {
                  "externalAccount": {
                    "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                    "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                    "type": "card",
                    "status": "processing",
                    "label": "My Visa Card",
                    "asset": "GBP",
                    "network": "visa",
                    "features": [],
                    "details": {
                      "last4Digits": "1519",
                      "expiryDate": {
                        "month": 12,
                        "year": 2030
                      },
                      "octSupport": "unknown"
                    },
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "updatedAt": "2024-07-15T00:00:00.000Z"
                  }
                }
              },
              "Card Created With Metadata Error": {
                "value": {
                  "externalAccount": {
                    "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                    "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                    "type": "card",
                    "status": "processing",
                    "label": "My Visa Card",
                    "asset": "GBP",
                    "network": "visa",
                    "features": [],
                    "details": {
                      "last4Digits": "1519",
                      "expiryDate": {
                        "month": 12,
                        "year": 2030
                      },
                      "octSupport": "unknown"
                    },
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "updatedAt": "2024-07-15T00:00:00.000Z"
                  },
                  "errors": {
                    "metadata": {
                      "code": "content_too_large",
                      "message": "The entity metadata size is greater than maximum size limit",
                      "details": {
                        "threshold": {
                          "unit": "characters",
                          "limit": 1024
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-external-account-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Rail Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "A rail for the specified type, asset and network cannot be found",
                  "details": {
                    "entity": "rail"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-external-account-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Bank Account Already Registered": {
                "value": {
                  "code": "duplicate",
                  "message": "The bank account is already registered",
                  "details": {
                    "context": "body",
                    "property": "accountNumber"
                  }
                }
              },
              "Bank Routing Number Invalid": {
                "value": {
                  "code": "number_invalid",
                  "message": "The routing number is invalid",
                  "details": {
                    "context": "body",
                    "property": "routingNumber"
                  }
                }
              },
              "Bank Address Country Not Supported": {
                "value": {
                  "code": "country_not_supported",
                  "message": "The country is not supported",
                  "details": {
                    "context": "body",
                    "property": "address.country"
                  }
                }
              },
              "Bank Address Subdivision Not Supported": {
                "value": {
                  "code": "subdivision_not_supported",
                  "message": "The subdivision is not supported",
                  "details": {
                    "context": "body",
                    "property": "address.subdivision"
                  }
                }
              },
              "Bank Address Postal Code Invalid": {
                "value": {
                  "code": "postal_code_invalid",
                  "message": "The postal code is invalid",
                  "details": {
                    "context": "body",
                    "property": "address.postalCode"
                  }
                }
              },
              "Card Already Registered": {
                "value": {
                  "code": "duplicate",
                  "message": "The card is already registered",
                  "details": {
                    "context": "body",
                    "property": "number"
                  }
                }
              },
              "Card Number Invalid": {
                "value": {
                  "code": "number_invalid",
                  "message": "The card number is invalid",
                  "details": {
                    "context": "body",
                    "property": "number"
                  }
                }
              },
              "Card Expiry Date Invalid": {
                "value": {
                  "code": "date_invalid",
                  "message": "The date must be at least now",
                  "details": {
                    "context": "body",
                    "property": "expiryDate",
                    "rule": "difference-less-than-or-equal-to-threshold",
                    "threshold": {
                      "limit": 0,
                      "unit": "milliseconds"
                    }
                  }
                }
              },
              "Card Type Not Allowed": {
                "value": {
                  "code": "card_type_not_allowed",
                  "message": "The card type is not allowed",
                  "details": {
                    "type": "credit"
                  }
                }
              },
              "Card Issuer Country Mismatch": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The card issuer country does not match the user country of residence",
                  "details": {
                    "reasons": [
                      "card-issuer-country-mismatch"
                    ]
                  }
                }
              },
              "Card Max Active Limit Exceeded": {
                "value": {
                  "code": "user_capability_failure",
                  "message": "The user has capability constraints",
                  "details": {
                    "capability": {
                      "code": "cards",
                      "requirements": [
                        "user-must-delete-card"
                      ],
                      "restrictions": []
                    }
                  }
                }
              },
              "Card Max Limit Exceeded": {
                "value": {
                  "code": "user_capability_failure",
                  "message": "The user has capability constraints",
                  "details": {
                    "capability": {
                      "code": "cards",
                      "requirements": [],
                      "restrictions": [
                        "user-unique-card-limit-reached"
                      ]
                    }
                  }
                }
              },
              "Card Declined": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The card was declined",
                  "details": {
                    "reasons": [
                      "card-declined"
                    ]
                  }
                }
              },
              "Card Permanently Declined": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The card was permanently declined",
                  "details": {
                    "reasons": [
                      "card-permanently-declined"
                    ]
                  }
                }
              },
              "User Capability Failure": {
                "value": {
                  "code": "user_capability_failure",
                  "message": "The user has capability constraints",
                  "details": {
                    "capability": {
                      "code": "cards",
                      "requirements": [
                        "user-must-submit-identity"
                      ],
                      "restrictions": []
                    }
                  }
                }
              },
              "Organization Not Configured": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "External account type 'card' is not configured for your organization",
                  "details": {
                    "reasons": [
                      "permission-denied"
                    ]
                  }
                }
              }
            }
          }
        },
        "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-external-account-response": {
        "description": "External account retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "externalAccount": {
                  "$ref": "#/components/schemas/external-account"
                }
              },
              "required": [
                "externalAccount"
              ]
            },
            "examples": {
              "External Account Retrieved": {
                "value": {
                  "externalAccount": {
                    "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                    "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                    "type": "card",
                    "status": "ok",
                    "label": "My Visa Card",
                    "asset": "GBP",
                    "network": "visa",
                    "features": [
                      "deposit",
                      "withdraw"
                    ],
                    "details": {
                      "type": "debit",
                      "last4Digits": "1519",
                      "expiryDate": {
                        "month": 12,
                        "year": 2030
                      },
                      "octSupport": "supported"
                    },
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "updatedAt": "2024-07-15T00:00:00.000Z"
                  }
                }
              },
              "Failed External Account Retrieved": {
                "value": {
                  "externalAccount": {
                    "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                    "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                    "type": "card",
                    "status": "failed",
                    "statusDetails": {
                      "reason": "card-expired"
                    },
                    "label": "My Visa Card",
                    "asset": "GBP",
                    "features": [],
                    "network": "visa",
                    "details": {
                      "type": "credit",
                      "last4Digits": "1519",
                      "expiryDate": {
                        "month": 12,
                        "year": 2030
                      },
                      "octSupport": "supported"
                    },
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "updatedAt": "2024-07-15T00:00:00.000Z"
                  }
                }
              }
            }
          }
        },
        "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-external-account-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "External Account Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The external account cannot be found",
                  "details": {
                    "entity": "external-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"
              }
            }
          }
        }
      },
      "delete-external-account-response": {
        "description": "External account deleted.",
        "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"
              }
            }
          }
        }
      },
      "delete-external-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 external account cannot be found",
                  "details": {
                    "entity": "external-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"
              }
            }
          }
        }
      },
      "update-external-account-response": {
        "description": "External account updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "externalAccount": {
                  "$ref": "#/components/schemas/external-account"
                }
              },
              "required": [
                "externalAccount"
              ]
            },
            "examples": {
              "External Account Updated": {
                "value": {
                  "externalAccount": {
                    "id": "aa6e6efa-8d73-497c-8278-0347f459bd68",
                    "ownerId": "1e32fca3-23f7-40ed-bc1b-de10c790182d",
                    "type": "card",
                    "status": "ok",
                    "label": "My new VISA card",
                    "asset": "GBP",
                    "network": "visa",
                    "features": [
                      "deposit",
                      "withdraw"
                    ],
                    "details": {
                      "type": "debit",
                      "last4Digits": "1519",
                      "expiryDate": {
                        "month": 12,
                        "year": 2030
                      },
                      "octSupport": "supported"
                    },
                    "createdAt": "2024-06-01T00:00:00.000Z",
                    "updatedAt": "2024-07-15T00:00:00.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-external-account-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "External Account Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The external account cannot be found",
                  "details": {
                    "entity": "external-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"
              }
            }
          }
        }
      },
      "create-quote-response": {
        "description": "Quote created.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "quote": {
                  "$ref": "#/components/schemas/quote"
                }
              },
              "required": [
                "quote"
              ]
            },
            "examples": {
              "Trade Quote Created": {
                "value": {
                  "quote": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "requirements": [],
                    "expiresAt": "2024-07-24T15:22:39.000Z"
                  }
                }
              },
              "Deposit To External Account Quote Created": {
                "value": {
                  "quote": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "external-account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "requirements": [],
                    "expiresAt": "2024-07-24T15:22:39.000Z"
                  }
                }
              },
              "Withdrawal To External Account Quote Created": {
                "value": {
                  "quote": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "external-account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "requirements": [],
                    "expiresAt": "2024-07-24T15:22:39.000Z"
                  }
                }
              },
              "Withdrawal to Crypto Address Quote Created (On-chain)": {
                "value": {
                  "quote": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "0.00002629253259492961",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "1",
                      "node": {
                        "type": "crypto-address",
                        "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "network": "bitcoin",
                        "execution": {
                          "mode": "onchain"
                        }
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "0.00001210225938333485"
                    },
                    "fees": [],
                    "requirements": [],
                    "expiresAt": "2024-07-24T15:22:39.000Z"
                  }
                }
              },
              "Withdrawal to Crypto Address Quote Created (Off-chain)": {
                "value": {
                  "quote": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "0.00002629253259492961",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "1",
                      "node": {
                        "type": "crypto-address",
                        "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "network": "bitcoin",
                        "execution": {
                          "mode": "offchain",
                          "accountId": "d4c0dabb-79f1-4aec-9850-8bd6981275d5",
                          "accountOwnerId": "459762a5-fab0-43d1-9b55-1c92135779f9"
                        }
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "0.00001210225938333485"
                    },
                    "fees": [],
                    "requirements": [],
                    "expiresAt": "2024-07-24T15:22:39.000Z"
                  }
                }
              },
              "Withdrawal to Crypto Address Quote Created (Simulated)": {
                "value": {
                  "quote": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "0.00002629253259492961",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "1",
                      "node": {
                        "type": "crypto-address",
                        "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "network": "bitcoin",
                        "execution": {
                          "mode": "simulated"
                        }
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "0.00001210225938333485"
                    },
                    "fees": [],
                    "requirements": [],
                    "expiresAt": "2024-07-24T15:22:39.000Z"
                  }
                }
              },
              "Withdrawal Quote with Travel Rule": {
                "value": {
                  "quote": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "0.00002629253259492961",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "1",
                      "node": {
                        "type": "crypto-address",
                        "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "network": "bitcoin"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "0.00001210225938333485"
                    },
                    "fees": [],
                    "requirements": [
                      "travel-rule"
                    ],
                    "expiresAt": "2024-07-24T15:22:39.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-quote-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "entity": "asset",
                    "context": "body",
                    "property": "denomination.asset"
                  }
                }
              },
              "Origin Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The origin cannot be found",
                  "details": {
                    "entity": "account",
                    "context": "body",
                    "property": "origin"
                  }
                }
              },
              "Destination Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The destination cannot be found",
                  "details": {
                    "entity": "account",
                    "context": "body",
                    "property": "destination"
                  }
                }
              },
              "Rail For Destination Asset And Network Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "A rail for the specified destination asset and network cannot be found",
                  "details": {
                    "entity": "rail",
                    "context": "body",
                    "property": "destination"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-quote-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Origin Asset Missing Sell Feature": {
                "value": {
                  "code": "asset_feature_not_available",
                  "message": "The 'sell' feature is not available for the origin asset",
                  "details": {
                    "context": "body",
                    "property": "origin",
                    "feature": "sell"
                  }
                }
              },
              "Destination Asset Missing Buy Feature": {
                "value": {
                  "code": "asset_feature_not_available",
                  "message": "The 'buy' feature is not available for the destination asset",
                  "details": {
                    "context": "body",
                    "property": "destination",
                    "feature": "buy"
                  }
                }
              },
              "Transaction Node Invalid": {
                "value": {
                  "code": "transaction_node_invalid",
                  "message": "The origin node is invalid"
                }
              },
              "Destination External Account Missing Withdraw Feature": {
                "value": {
                  "code": "transaction_node_invalid",
                  "message": "The destination external account lacks 'withdraw' feature"
                }
              },
              "Destination External Account Network Not Supported": {
                "value": {
                  "code": "transaction_node_invalid",
                  "message": "The destination external account does not support the specified network"
                }
              },
              "Crypto Address Invalid": {
                "value": {
                  "code": "crypto_address_invalid",
                  "message": "The crypto address is invalid",
                  "details": {
                    "context": "body",
                    "property": "destination.address"
                  }
                }
              },
              "Crypto Address Reference Missing": {
                "value": {
                  "code": "crypto_address_invalid",
                  "message": "The crypto address reference is missing",
                  "details": {
                    "context": "body",
                    "property": "destination.reference"
                  }
                }
              },
              "Crypto Address Reference Invalid": {
                "value": {
                  "code": "crypto_address_invalid",
                  "message": "The crypto address reference is invalid",
                  "details": {
                    "context": "body",
                    "property": "destination.reference"
                  }
                }
              },
              "Amount Maximum Limit Exceeded": {
                "value": {
                  "code": "transaction_amount_invalid",
                  "message": "The amount maximum limit was exceeded",
                  "details": {
                    "context": "body",
                    "property": "denomination",
                    "rule": "maximum-limit-exceeded",
                    "threshold": {
                      "value": 100000
                    }
                  }
                }
              },
              "Amount Minimum Limit Not Met": {
                "value": {
                  "code": "transaction_amount_invalid",
                  "message": "The amount minimum limit was not met",
                  "details": {
                    "context": "body",
                    "property": "denomination",
                    "rule": "minimum-limit-not-met",
                    "threshold": {
                      "value": 0.85
                    }
                  }
                }
              },
              "Amount Not Available Due To Unsettled Funds": {
                "value": {
                  "code": "transaction_amount_invalid",
                  "message": "The amount is invalid due to unsettled funds",
                  "details": {
                    "context": "body",
                    "property": "denomination",
                    "rule": "transacting-unsettled-funds",
                    "unsettledFunds": {
                      "settlementAt": "2024-07-26T13:00:00.000Z",
                      "shortfallAmount": "0.95",
                      "reasons": [
                        "pending-ach-deposit-settlement"
                      ]
                    }
                  }
                }
              },
              "User Capability Failure": {
                "value": {
                  "code": "user_capability_failure",
                  "message": "The user has capability constraints",
                  "details": {
                    "capability": {
                      "code": "trades",
                      "requirements": [
                        "user-must-submit-identity"
                      ],
                      "restrictions": []
                    }
                  }
                }
              },
              "Node Type Not Configured For Organization": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Destination node type 'crypto-address' is not configured for your organization",
                  "details": {
                    "reasons": [
                      "permission-denied"
                    ]
                  }
                }
              },
              "Changing TTL Not Allowed For Organization": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Changing the ttl is not allowed for your organization",
                  "details": {
                    "reasons": [
                      "permission-denied"
                    ]
                  }
                }
              },
              "TTL Not Within Allowed Range": {
                "value": {
                  "code": "number_invalid",
                  "message": "The number must be greater than or equal to 18000",
                  "details": {
                    "context": "body",
                    "property": "ttl",
                    "rule": "greater-than-or-equal-to-threshold",
                    "threshold": {
                      "limit": 18000
                    }
                  }
                }
              },
              "Unspecified Error": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Transaction not allowed due to an unspecified error",
                  "details": {
                    "reasons": [
                      "unspecified-error"
                    ]
                  }
                }
              }
            }
          }
        },
        "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-account-transactions-response": {
        "description": "Transactions retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "transactions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/transaction"
                  }
                },
                "pagination": {
                  "$ref": "#/components/schemas/pagination"
                }
              },
              "required": [
                "transactions",
                "pagination"
              ]
            },
            "examples": {
              "Transactions Retrieved": {
                "value": {
                  "transactions": [
                    {
                      "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                      "origin": {
                        "amount": "100.00",
                        "asset": "GBP",
                        "rate": "47619.04761904762",
                        "node": {
                          "type": "account",
                          "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                          "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                        }
                      },
                      "destination": {
                        "amount": "0.0021",
                        "asset": "BTC",
                        "rate": "0.000021",
                        "node": {
                          "type": "account",
                          "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                          "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                        }
                      },
                      "denomination": {
                        "amount": "100.00",
                        "asset": "GBP",
                        "target": "origin",
                        "rate": "1"
                      },
                      "fees": [],
                      "status": "completed",
                      "quotedAt": "2024-07-24T15:02:39.000Z",
                      "createdAt": "2024-07-24T15:22:39.000Z",
                      "updatedAt": "2024-07-24T15:33:08.000Z"
                    }
                  ],
                  "pagination": {
                    "first": "https://api.enterprise.uphold.com/core/accounts/555a99a1-620d-4431-a0ac-b43e1aad2bdc/transactions?page=1&perPage=1",
                    "next": "https://api.enterprise.uphold.com/core/accounts/555a99a1-620d-4431-a0ac-b43e1aad2bdc/transactions?page=2&perPage=1"
                  }
                }
              }
            }
          }
        },
        "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-account-transactions-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"
              }
            }
          }
        }
      },
      "list-transactions-response": {
        "description": "Transactions retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "transactions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/transaction"
                  }
                },
                "pagination": {
                  "$ref": "#/components/schemas/pagination"
                }
              },
              "required": [
                "transactions",
                "pagination"
              ]
            },
            "examples": {
              "Transactions Retrieved": {
                "value": {
                  "transactions": [
                    {
                      "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                      "origin": {
                        "amount": "100.00",
                        "asset": "GBP",
                        "rate": "47619.04761904762",
                        "node": {
                          "type": "account",
                          "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                          "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                        }
                      },
                      "destination": {
                        "amount": "0.0021",
                        "asset": "BTC",
                        "rate": "0.000021",
                        "node": {
                          "type": "account",
                          "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                          "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                        }
                      },
                      "denomination": {
                        "amount": "100.00",
                        "asset": "GBP",
                        "target": "origin",
                        "rate": "1"
                      },
                      "fees": [],
                      "status": "completed",
                      "quotedAt": "2024-07-24T15:02:39.000Z",
                      "createdAt": "2024-07-24T15:22:39.000Z",
                      "updatedAt": "2024-07-24T15:33:08.000Z"
                    }
                  ],
                  "pagination": {
                    "first": "https://api.enterprise.uphold.com/core/transactions?page=1&perPage=1",
                    "next": "https://api.enterprise.uphold.com/core/transactions?page=2&perPage=1"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-transaction-response": {
        "description": "Transaction created.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "transaction": {
                  "$ref": "#/components/schemas/transaction"
                },
                "errors": {
                  "description": "Additional contextual errors that occurred while processing the request.",
                  "type": "object",
                  "properties": {
                    "metadata": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/error"
                        },
                        {
                          "description": "Error related to metadata processing."
                        }
                      ]
                    }
                  }
                }
              },
              "required": [
                "transaction"
              ]
            },
            "examples": {
              "Trade Transaction Created": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "status": "processing",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:32:39.000Z"
                  }
                }
              },
              "Transaction Created With Metadata Error": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "status": "processing",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:32:39.000Z"
                  },
                  "errors": {
                    "metadata": {
                      "code": "content_too_large",
                      "message": "The entity metadata size is greater than maximum size limit",
                      "details": {
                        "threshold": {
                          "unit": "characters",
                          "limit": 1024
                        }
                      }
                    }
                  }
                }
              },
              "Deposit From External Account Created (Card)": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "external-account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "confirmationUrl": "https://authentication-devices.sandbox.checkout.com/sessions-interceptor/sid_zrih63pnk6ietkpuerqiyd5zga",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "status": "processing",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:32:39.000Z"
                  }
                }
              },
              "Withdrawal To External Account Created": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "external-account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "status": "processing",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:32:39.000Z"
                  }
                }
              },
              "Withdrawal to Crypto Address Created (On-chain)": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "0.00002629253259492961",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "1",
                      "node": {
                        "type": "crypto-address",
                        "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "network": "bitcoin",
                        "execution": {
                          "mode": "onchain",
                          "transactionHash": "c555dc3f57478014298929b95639b9e5d9b75d4d91e16620c839b47cfefe0c76"
                        }
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "0.00001210225938333485"
                    },
                    "fees": [],
                    "status": "processing",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:32:39.000Z"
                  }
                }
              },
              "Withdrawal to Crypto Address Created (Off-chain)": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "0.00002629253259492961",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "1",
                      "node": {
                        "type": "crypto-address",
                        "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "network": "bitcoin",
                        "execution": {
                          "mode": "offchain",
                          "accountId": "d4c0dabb-79f1-4aec-9850-8bd6981275d5",
                          "accountOwnerId": "459762a5-fab0-43d1-9b55-1c92135779f9"
                        }
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "0.00001210225938333485"
                    },
                    "fees": [],
                    "status": "processing",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:32:39.000Z"
                  }
                }
              },
              "Withdrawal to Crypto Address Created (Simulated)": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "0.00002629253259492961",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.00121023",
                      "asset": "BTC",
                      "rate": "1",
                      "node": {
                        "type": "crypto-address",
                        "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "network": "bitcoin",
                        "execution": {
                          "mode": "simulated",
                          "transactionHash": "c555dc3f57478014298929b95639b9e5d9b75d4d91e16620c839b47cfefe0c76"
                        }
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "0.00001210225938333485"
                    },
                    "fees": [],
                    "status": "processing",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:32:39.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-transaction-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Quote Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The quote cannot be found",
                  "details": {
                    "entity": "quote"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-transaction-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Insufficient Balance": {
                "value": {
                  "code": "insufficient_balance",
                  "message": "The origin does not have enough balance to perform the transaction",
                  "details": {
                    "context": "body",
                    "property": "origin"
                  }
                }
              },
              "Missing User Context": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Request not allowed due to missing user context",
                  "details": {
                    "reasons": [
                      "missing-user-ip-header",
                      "missing-user-agent-header"
                    ]
                  }
                }
              },
              "Missing Return URL": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Transaction not allowed due to a missing return URL",
                  "details": {
                    "reasons": [
                      "missing-return-url"
                    ]
                  }
                }
              },
              "Duplicate Withdrawal": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Transaction not allowed due to a duplicate withdrawal",
                  "details": {
                    "reasons": [
                      "duplicate-withdrawal"
                    ]
                  }
                }
              },
              "Processing Failure": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Transaction not allowed due to a processing failure",
                  "details": {
                    "reasons": [
                      "card-unauthorized"
                    ]
                  }
                }
              },
              "User Capability Failure": {
                "value": {
                  "code": "user_capability_failure",
                  "message": "The user has capability constraints",
                  "details": {
                    "capability": {
                      "code": "trades",
                      "requirements": [
                        "user-must-submit-identity"
                      ],
                      "restrictions": []
                    }
                  }
                },
                "summary": "User capability failure test"
              },
              "Unspecified Error": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "Transaction not allowed due to an unspecified error",
                  "details": {
                    "reasons": [
                      "unspecified-error"
                    ]
                  }
                }
              }
            }
          }
        },
        "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-transaction-response": {
        "description": "Transaction retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "transaction": {
                  "$ref": "#/components/schemas/transaction"
                }
              },
              "required": [
                "transaction"
              ]
            },
            "examples": {
              "Transaction Retrieved": {
                "value": {
                  "transaction": {
                    "id": "623000c8-9bdf-4a2b-aa3d-6a6b44a7f6a0",
                    "origin": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "rate": "47619.04761904762",
                      "node": {
                        "type": "account",
                        "id": "b98e4f0d-a67d-4126-a99d-666f7e0315d9",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "destination": {
                      "amount": "0.0021",
                      "asset": "BTC",
                      "rate": "0.000021",
                      "node": {
                        "type": "account",
                        "id": "555a99a1-620d-4431-a0ac-b43e1aad2bdc",
                        "ownerId": "e4ce04dc-67b7-4e9f-af91-482cb6f9fc4a"
                      }
                    },
                    "denomination": {
                      "amount": "100.00",
                      "asset": "GBP",
                      "target": "origin",
                      "rate": "1"
                    },
                    "fees": [],
                    "status": "completed",
                    "quotedAt": "2024-07-24T15:02:39.000Z",
                    "createdAt": "2024-07-24T15:22:39.000Z",
                    "updatedAt": "2024-07-24T15:33:08.000Z"
                  }
                }
              }
            }
          }
        },
        "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-transaction-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Transaction Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The transaction cannot be found",
                  "details": {
                    "entity": "transaction"
                  }
                }
              }
            }
          }
        },
        "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-transaction-requests-for-information-response": {
        "description": "Requests for information retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "requestsForInformation": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/request-for-information"
                  }
                }
              },
              "required": [
                "requestsForInformation"
              ]
            },
            "examples": {
              "Requests for Information Retrieved": {
                "value": {
                  "requestsForInformation": [
                    {
                      "id": "3f6d0c1e-a1bf-4b25-9802-2a3ee492d3c8",
                      "type": "travel-rule",
                      "status": "pending",
                      "createdAt": "2024-07-25T10:00:00.000Z",
                      "updatedAt": "2024-07-30T10:00:00.000Z"
                    }
                  ]
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "transaction-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Transaction Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The transaction cannot be found",
                  "details": {
                    "entity": "transaction"
                  }
                }
              }
            }
          }
        },
        "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-transaction-request-for-information-response": {
        "description": "Request for information retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "requestForInformation": {
                  "$ref": "#/components/schemas/request-for-information"
                }
              },
              "required": [
                "requestForInformation"
              ]
            },
            "examples": {
              "Request for Information Retrieved": {
                "value": {
                  "requestForInformation": {
                    "id": "3f6d0c1e-a1bf-4b25-9802-2a3ee492d3c8",
                    "type": "travel-rule",
                    "status": "pending",
                    "createdAt": "2024-07-25T10:00:00.000Z",
                    "updatedAt": "2024-07-30T10:00:00.000Z"
                  }
                }
              }
            }
          }
        },
        "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-transaction-request-for-information-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Request for Information Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The request for information cannot be found",
                  "details": {
                    "entity": "request-for-information"
                  }
                }
              },
              "Transaction Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The transaction cannot be found",
                  "details": {
                    "entity": "transaction"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-transaction-request-for-information-response": {
        "description": "Request for information updated.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "requestForInformation": {
                  "$ref": "#/components/schemas/request-for-information"
                }
              },
              "required": [
                "requestForInformation"
              ]
            },
            "examples": {
              "Request for Information Updated": {
                "value": {
                  "requestForInformation": {
                    "id": "3f6d0c1e-a1bf-4b25-9802-2a3ee492d3c8",
                    "type": "travel-rule",
                    "status": "ok",
                    "data": {
                      "originatorProof": {
                        "type": "self-declaration",
                        "did": "did:pkh:xrpl:0:rExampleAddress123456789",
                        "address": "xrpl:0:rExampleAddress123456789",
                        "attestation": "I hereby declare that the blockchain address rExampleAddress123456789 is under my own control and ownership.",
                        "confirmed": true,
                        "status": "verified"
                      },
                      "transactionAsset": {
                        "caip19": "xrpl:0/slip44:144"
                      },
                      "transactionAmount": "4000000",
                      "originatorEqualsBeneficiary": true,
                      "beneficiaryVASPdid": "did:ethr:0xExampleVASPAddress000000000000000000000000",
                      "originatorVASPdid": "did:pkh:xrpl:0:rExampleAddress123456789",
                      "beneficiary": {},
                      "originator": {
                        "originatorPersons": [
                          {
                            "naturalPerson": {
                              "name": {
                                "nameIdentifier": [
                                  {
                                    "primaryIdentifier": "Doe",
                                    "secondaryIdentifier": "John",
                                    "nameIdentifierType": "LEGL"
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    },
                    "createdAt": "2024-07-25T10:00:00.000Z",
                    "updatedAt": "2024-07-30T10:00:00.000Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-transaction-request-for-information-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Request for Information Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The request for information cannot be found",
                  "details": {
                    "entity": "request-for-information"
                  }
                }
              },
              "Transaction Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The transaction cannot be found",
                  "details": {
                    "entity": "transaction"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "update-transaction-request-for-information-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Updates Not Allowed": {
                "value": {
                  "code": "operation_not_allowed",
                  "message": "The current status of the request for information does not allow updates",
                  "details": {
                    "reasons": "request-for-information-update-not-allowed"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-overview-response": {
        "description": "Portfolio overview retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/portfolio-overview"
            },
            "examples": {
              "Portfolio Overview Retrieved": {
                "value": {
                  "summary": {
                    "total": "68312.82",
                    "available": "68312.82"
                  },
                  "holdings": [
                    {
                      "asset": "BTC",
                      "total": "33.52",
                      "available": "33.52"
                    },
                    {
                      "asset": "ETH",
                      "total": "1231.44",
                      "available": "1231.44"
                    },
                    {
                      "asset": "GBP",
                      "total": "67047.86",
                      "available": "67047.86"
                    }
                  ]
                }
              },
              "Portfolio Overview With Base Asset Amounts Retrieved": {
                "value": {
                  "summary": {
                    "total": "68312.82",
                    "available": "68312.82"
                  },
                  "holdings": [
                    {
                      "asset": "BTC",
                      "total": "33.52",
                      "available": "33.52",
                      "baseTotal": "0.00031445",
                      "baseAvailable": "0.00031445"
                    },
                    {
                      "asset": "ETH",
                      "total": "1231.44",
                      "available": "1231.44",
                      "baseTotal": "0.508289140560961235",
                      "baseAvailable": "0.508289140560961235"
                    },
                    {
                      "asset": "GBP",
                      "total": "67047.86",
                      "available": "67047.86",
                      "baseTotal": "48909.02",
                      "baseAvailable": "48909.02"
                    }
                  ]
                }
              }
            }
          }
        },
        "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-portfolio-overview-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-overview-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-performance-response": {
        "description": "Portfolio performance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "performance": {
                  "$ref": "#/components/schemas/portfolio-performance-overview"
                }
              },
              "required": [
                "performance"
              ]
            },
            "examples": {
              "Portfolio Performance Retrieved": {
                "value": {
                  "performance": {
                    "totalInvested": "1276.64",
                    "unrealizedGains": "14.25"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-performance-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-performance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-historical-balance-response": {
        "description": "Portfolio historical balance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "historicalBalance": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/portfolio-historical-balance-overview"
                  },
                  "minItems": 1
                }
              },
              "required": [
                "historicalBalance"
              ]
            },
            "examples": {
              "Portfolio Account Historical Balance Retrieved": {
                "value": {
                  "historicalBalance": [
                    {
                      "timestamp": "2025-06-25T09:50:00.000Z",
                      "balance": {
                        "total": "67785.67",
                        "available": "67785.67"
                      }
                    },
                    {
                      "timestamp": "2025-06-25T10:00:00.000Z",
                      "balance": {
                        "total": "67801.77",
                        "available": "67801.77"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "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-portfolio-historical-balance-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-historical-balance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-asset-performance-response": {
        "description": "Portfolio asset performance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "performance": {
                  "$ref": "#/components/schemas/portfolio-performance"
                }
              },
              "required": [
                "performance"
              ]
            },
            "examples": {
              "Portfolio Performance Retrieved": {
                "value": {
                  "performance": {
                    "averagePricePaid": "105072.09875643805",
                    "totalInvested": "33.0399214539619448225",
                    "unrealizedGains": "0.6314908505483631995"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-asset-performance-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The asset cannot be found",
                  "details": {
                    "entity": "asset"
                  }
                }
              },
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-asset-performance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-many-assets-performance-response": {
        "description": "Portfolio assets performance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "performance": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/portfolio-performance"
                  }
                }
              },
              "required": [
                "performance"
              ]
            },
            "examples": {
              "Portfolio Many Assets Performance Retrieved": {
                "value": {
                  "performance": {
                    "BTC": {
                      "averagePricePaid": "105072.09875643805",
                      "totalInvested": "33.0399214539619448225",
                      "unrealizedGains": "0.6314908505483631995"
                    },
                    "ETH": {
                      "averagePricePaid": "2669.976380967428798325",
                      "totalInvested": "1357.120000000000000000167043982957931375",
                      "unrealizedGains": "-22.963157915861059182307399536837431375"
                    }
                  }
                }
              }
            }
          }
        },
        "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-portfolio-many-assets-performance-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-many-assets-performance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-asset-historical-balance-response": {
        "description": "Portfolio asset historical balance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "historicalBalance": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/portfolio-historical-balance"
                  },
                  "minItems": 1
                }
              },
              "required": [
                "historicalBalance"
              ]
            },
            "examples": {
              "Portfolio Account Historical Balance Retrieved": {
                "value": {
                  "historicalBalance": [
                    {
                      "timestamp": "2020-01-01T00:00:00.000Z",
                      "balance": {
                        "total": "1000.00",
                        "available": "950.00"
                      }
                    },
                    {
                      "timestamp": "2020-01-02T00:00:00.000Z",
                      "balance": {
                        "total": "1200.00",
                        "available": "1150.00"
                      }
                    }
                  ]
                }
              },
              "Portfolio Account Historical Balance With Base Asset Amounts Retrieved": {
                "value": {
                  "historicalBalance": [
                    {
                      "timestamp": "2020-01-01T00:00:00.000Z",
                      "balance": {
                        "total": "1600.83",
                        "available": "1500.83",
                        "baseTotal": "0.01493",
                        "baseAvailable": "0.01399"
                      }
                    },
                    {
                      "timestamp": "2020-01-02T00:00:00.000Z",
                      "balance": {
                        "total": "1800.50",
                        "available": "1750.00",
                        "baseTotal": "0.01679",
                        "baseAvailable": "0.01632"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "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-portfolio-asset-historical-balance-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The asset cannot be found",
                  "details": {
                    "entity": "asset"
                  }
                }
              },
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-asset-historical-balance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-account-performance-response": {
        "description": "Portfolio account performance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "performance": {
                  "$ref": "#/components/schemas/portfolio-performance"
                }
              },
              "required": [
                "performance"
              ]
            },
            "examples": {
              "Portfolio Performance Retrieved": {
                "value": {
                  "performance": {
                    "averagePricePaid": "2445.52",
                    "totalInvested": "1243.02",
                    "unrealizedGains": "14.66"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-account-performance-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"
                  }
                }
              },
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-account-performance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-many-accounts-performance-response": {
        "description": "Portfolio accounts performance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "performance": {
                  "type": "object",
                  "additionalProperties": {
                    "$ref": "#/components/schemas/portfolio-performance"
                  }
                }
              },
              "required": [
                "performance"
              ]
            },
            "examples": {
              "Portfolio Many Accounts Performance Retrieved": {
                "value": {
                  "performance": {
                    "e4c1cbff-28a7-4602-9661-169e42040c22": {
                      "averagePricePaid": "2491.73",
                      "totalInvested": "1266.51",
                      "unrealizedGains": "-21.55"
                    },
                    "a9ef84a1-45c3-4796-8002-297dc57ac85d": {
                      "averagePricePaid": "107929.90",
                      "totalInvested": "33.93",
                      "unrealizedGains": "-0.33"
                    }
                  }
                }
              }
            }
          }
        },
        "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-portfolio-many-accounts-performance-not-found-response": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-many-accounts-performance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-account-historical-balance-response": {
        "description": "Portfolio account historical balance retrieved.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "historicalBalance": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/portfolio-historical-balance"
                  },
                  "minItems": 1
                }
              },
              "required": [
                "historicalBalance"
              ]
            },
            "examples": {
              "Portfolio Account Historical Balance Retrieved": {
                "value": {
                  "historicalBalance": [
                    {
                      "timestamp": "2020-01-01T00:00:00.000Z",
                      "balance": {
                        "total": "1000.00",
                        "available": "950.00"
                      }
                    },
                    {
                      "timestamp": "2020-01-02T00:00:00.000Z",
                      "balance": {
                        "total": "1200.00",
                        "available": "1150.00"
                      }
                    }
                  ]
                }
              },
              "Portfolio Account Historical Balance With Base Asset Amounts Retrieved": {
                "value": {
                  "historicalBalance": [
                    {
                      "timestamp": "2020-01-01T00:00:00.000Z",
                      "balance": {
                        "total": "1600.83",
                        "available": "1500.83",
                        "baseTotal": "0.01493",
                        "baseAvailable": "0.01399"
                      }
                    },
                    {
                      "timestamp": "2020-01-02T00:00:00.000Z",
                      "balance": {
                        "total": "1800.50",
                        "available": "1750.00",
                        "baseTotal": "0.01679",
                        "baseAvailable": "0.01632"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "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-portfolio-account-historical-balance-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"
                  }
                }
              },
              "Denomination Asset Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The denomination asset cannot be found",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-portfolio-account-historical-balance-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Denomination Asset Not Supported": {
                "value": {
                  "code": "asset_not_supported",
                  "message": "The denomination asset is not supported",
                  "details": {
                    "context": "query",
                    "property": "denomination",
                    "entity": "asset"
                  }
                }
              }
            }
          }
        },
        "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-metadata-response": {
        "description": "Metadata retrieved.",
        "headers": {
          "ETag": {
            "$ref": "#/components/headers/metadata-etag"
          },
          "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"
              }
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "metadata": {
                  "$ref": "#/components/schemas/metadata"
                }
              },
              "required": [
                "metadata"
              ]
            },
            "examples": {
              "Metadata Retrieved": {
                "value": {
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "get-metadata-not-modified-response": {
        "description": "Metadata not modified.",
        "headers": {
          "ETag": {
            "$ref": "#/components/headers/metadata-etag"
          },
          "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"
              }
            }
          }
        }
      },
      "metadata-not-found": {
        "description": "Resource not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Metadata Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The entity metadata cannot be found",
                  "details": {
                    "entity": "metadata"
                  }
                }
              },
              "Entity Not Found": {
                "value": {
                  "code": "entity_not_found",
                  "message": "The <entity> cannot be found",
                  "details": {
                    "entity": "<entity>"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "set-metadata-replaced-response": {
        "description": "Metadata replaced.",
        "headers": {
          "ETag": {
            "$ref": "#/components/headers/metadata-etag"
          },
          "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"
              }
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "metadata": {
                  "$ref": "#/components/schemas/metadata"
                }
              },
              "required": [
                "metadata"
              ]
            },
            "examples": {
              "Metadata Replaced": {
                "value": {
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "set-metadata-created-response": {
        "description": "Metadata created.",
        "headers": {
          "ETag": {
            "$ref": "#/components/headers/metadata-etag"
          },
          "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"
              }
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "metadata": {
                  "$ref": "#/components/schemas/metadata"
                }
              },
              "required": [
                "metadata"
              ]
            },
            "examples": {
              "Metadata Created": {
                "value": {
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "set-metadata-conflict-response": {
        "description": "Business logic error.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Metadata Already Exists": {
                "value": {
                  "code": "duplicate",
                  "message": "The entity metadata already exists"
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "metadata-precondition-failed": {
        "description": "Precondition failed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Metadata Precondition Failed": {
                "value": {
                  "code": "precondition_failed",
                  "message": "The If-Match header value does not match the current metadata"
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "metadata-payload-too-large": {
        "description": "Payload too large.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Metadata Payload Too Large": {
                "value": {
                  "code": "content_too_large",
                  "message": "The entity metadata size is greater than maximum size limit",
                  "details": {
                    "threshold": {
                      "unit": "characters",
                      "limit": 1024
                    }
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "delete-metadata-response": {
        "description": "Metadata deleted.",
        "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"
              }
            }
          }
        }
      },
      "update-metadata-response": {
        "description": "Metadata updated.",
        "headers": {
          "ETag": {
            "$ref": "#/components/headers/metadata-etag"
          },
          "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"
              }
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "metadata": {
                  "$ref": "#/components/schemas/metadata"
                }
              },
              "required": [
                "metadata"
              ]
            },
            "examples": {
              "Metadata Patched": {
                "value": {
                  "metadata": {
                    "externalId": 123
                  }
                }
              }
            }
          }
        }
      },
      "update-metadata-unprocessable-entity-response": {
        "description": "Unprocessable entity.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Replace Operation Path Not Found": {
                "value": {
                  "code": "json_patch_failed",
                  "message": "The entity metadata patch operation failed to apply",
                  "details": {
                    "operation": {
                      "index": 0,
                      "op": "replace",
                      "path": "/items/10"
                    },
                    "reason": "replace operation does not apply: doc is missing path: /items/10: missing value"
                  }
                }
              },
              "Remove Operation Path Not Found": {
                "value": {
                  "code": "json_patch_failed",
                  "message": "The entity metadata patch operation failed to apply",
                  "details": {
                    "operation": {
                      "index": 0,
                      "op": "remove",
                      "path": "/region"
                    },
                    "reason": "remove operation does not apply: doc is missing path: /region: missing value"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      },
      "create-webhook-management-link-response": {
        "description": "Webhook management link created.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "managementLink": {
                  "$ref": "#/components/schemas/webhook-management-link"
                }
              }
            },
            "examples": {
              "Webhook Management Link Created": {
                "value": {
                  "managementLink": {
                    "url": "https://app.svix.com/login#key=eyJhcHBJZCI...",
                    "expiresAt": "2025-03-01T17:40:28.707594166Z"
                  }
                }
              }
            }
          }
        },
        "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"
              }
            }
          }
        }
      }
    },
    "headers": {
      "metadata-etag": {
        "description": "The entity metadata revision.",
        "schema": {
          "type": "string",
          "pattern": "^\"[A-Fa-f0-9]{64}\"$"
        },
        "examples": {
          "ETag": {
            "value": "\"9ff2666faa58fabfc282eb90016e7182fe785d37dcdb861c6469cccaec13c876\""
          }
        }
      }
    }
  }
}