Gnosis Pay User Movements API

The User Movements API from Gnosis Pay — 5 operation(s) for user movements.

Operations 5

GET /user/balances/v2 Get Account Balances (v2) #
GET /user/deposits Get User Deposits #
GET /user/statement Get Account Statement #
POST /user/withdrawal Create Withdrawal #
GET /user/withdrawals Get User Withdrawals #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gnosis-pay:gnosis-pay-user-movements-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

gnosis-pay-user-movements-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: User Service User Movements API
  version: 0.0.0
servers:
- url: https://core.prod.gnosispay.com/user-api
  description: Production
  variables: {}
- url: https://core.sandbox.gnosispay.in/user-api
  description: Sandbox
  variables: {}
tags:
- name: User Movements
paths:
  /user/balances/v2:
    get:
      operationId: User_getUserBalancesV2
      summary: Get Account Balances (v2)
      description: 'Returns the authenticated user''s account balances. Spendable excludes dust

        and processingWithdrawals is exposed at the currency level. Each currency

        row includes a per-token breakdown.'
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBalancesV2Response'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '502':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserBalancesV2BadGateway'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - User Movements
      security:
      - BearerAuth: []
      x-ogen-operation-group: User
  /user/deposits:
    get:
      operationId: User_getUserDeposits
      summary: Get User Deposits
      description: 'Returns the authenticated user''s deposit history, including amount,

        currency, status, and creation date.'
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserDepositsResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserDepositsNotFound'
        '502':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserDepositsBadGateway'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - User Movements
      security:
      - BearerAuth: []
      x-ogen-operation-group: User
  /user/statement:
    get:
      operationId: User_getUserStatement
      summary: Get Account Statement
      description: 'Returns a chronological list of all financial movements for the authenticated

        user''s account, including card transactions (both pending and settled),

        deposits, and withdrawals.'
      parameters:
      - name: limit
        in: query
        required: false
        description: Maximum number of items to return (1-100).
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 100
        explode: false
      - name: cursor
        in: query
        required: false
        description: Cursor for pagination. Use the value from the previous response.
        schema:
          type: string
        explode: false
      - name: startDate
        in: query
        required: false
        description: Filter by start date (inclusive).
        schema:
          type: string
          format: date-time
        explode: false
      - name: endDate
        in: query
        required: false
        description: Filter by end date (inclusive).
        schema:
          type: string
          format: date-time
        explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserStatementResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserStatementBadRequestBody'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserStatementNotFound'
        '502':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserStatementBadGateway'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - User Movements
      security:
      - BearerAuth: []
      x-ogen-operation-group: User
  /user/withdrawal:
    post:
      operationId: User_createUserWithdrawal
      summary: Create Withdrawal
      description: 'Create a withdrawal request for the authenticated user. Requires an

        existing account.'
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWithdrawalSuccess'
        '400':
          description: 'Validation or business failure for a withdrawal request. Decoder failures use

            `kind: validation`. Partner rejections use `kind: business`, with `error` one of:

            - `UNSUPPORTED_TOKEN`: the token is not withdrawable on this account''s chain

            - `INVALID_REQUEST`: any other rejected request'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthBadRequest'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: 'Conflict - the withdrawal cannot be created in the current state. `error` is one of:

            - `WITHDRAWAL_ALREADY_IN_PROGRESS`: another instant withdrawal for this account is still in progress

            - `CONFLICT`: any other state conflict'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWithdrawalConflict'
        '502':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWithdrawalBadGateway'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - User Movements
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWithdrawalRequest'
      security:
      - BearerAuth: []
      x-ogen-operation-group: User
  /user/withdrawals:
    get:
      operationId: User_getUserWithdrawals
      summary: Get User Withdrawals
      description: 'Returns the authenticated user''s withdrawal history, including amount,

        currency, status, and creation date.'
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserWithdrawalsResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '502':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserWithdrawalsBadGateway'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - User Movements
      security:
      - BearerAuth: []
      x-ogen-operation-group: User
components:
  schemas:
    UserDeposit:
      type: object
      required:
      - txHash
      - amount
      - currency
      - status
      - createdAt
      - kytBreakdown
      properties:
        txHash:
          type: string
        amount:
          type: string
        currency:
          type: string
        status:
          $ref: '#/components/schemas/UserDepositStatus'
        createdAt:
          type: string
          format: date-time
        kytBreakdown:
          anyOf:
          - $ref: '#/components/schemas/UserDepositKytBreakdown'
          - type: 'null'
    UserStatementCardTransaction:
      type: object
      required:
      - type
      - id
      - status
      - amount
      - currency
      - decimals
      - originalAmount
      - originalCurrency
      - originalDecimals
      - isCredit
      - createdAt
      - updatedAt
      - description
      - authorizationId
      - mcc
      - authorizationCode
      - merchant
      - entryMode
      - billing
      - transactionCurrency
      - cardId
      - cardToken
      - clearedAt
      - isPending
      - kind
      - transactions
      - declineReason
      - wallet
      properties:
        type:
          type: string
          enum:
          - card_transaction
        id:
          type: string
        status:
          $ref: '#/components/schemas/UserStatementCardTransactionStatus'
        amount:
          type: string
        currency:
          type: string
        decimals:
          type: integer
          format: int32
        originalAmount:
          type: string
        originalCurrency:
          type: string
        originalDecimals:
          type: integer
          format: int32
        isCredit:
          type: boolean
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        description:
          type: string
        authorizationId:
          type: integer
          format: int64
        mcc:
          type: string
        authorizationCode:
          type: string
        merchant:
          $ref: '#/components/schemas/UserStatementMerchantDetails'
        entryMode:
          type: string
        billing:
          $ref: '#/components/schemas/UserStatementBillingDetails'
        transactionCurrency:
          $ref: '#/components/schemas/UserStatementCurrencyMetadata'
        cardId:
          $ref: '#/components/schemas/uuid'
        cardToken:
          anyOf:
          - type: string
          - type: 'null'
        clearedAt:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
        isPending:
          type: boolean
        kind:
          $ref: '#/components/schemas/UserStatementTransactionKind'
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/UserStatementTransactionExecutionDetail'
        declineReason:
          anyOf:
          - $ref: '#/components/schemas/UserStatementDeclineReason'
          - type: 'null'
        wallet:
          anyOf:
          - $ref: '#/components/schemas/UserStatementWallet'
          - type: 'null'
        enrichment:
          anyOf:
          - $ref: '#/components/schemas/UserTransactionEnrichment'
          - type: 'null'
    CreateWithdrawalSuccess:
      type: object
      required:
      - withdrawalId
      properties:
        withdrawalId:
          $ref: '#/components/schemas/uuid'
    UserStatementItem:
      type: object
      oneOf:
      - $ref: '#/components/schemas/UserStatementCardTransaction'
      - $ref: '#/components/schemas/UserStatementDeposit'
      - $ref: '#/components/schemas/UserStatementWithdrawal'
      discriminator:
        propertyName: type
        mapping:
          card_transaction: '#/components/schemas/UserStatementCardTransaction'
          deposit: '#/components/schemas/UserStatementDeposit'
          withdrawal: '#/components/schemas/UserStatementWithdrawal'
    GetUserWithdrawalsResponse:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/UserWithdrawal'
    UserTransactionEnrichmentCategory:
      type: object
      required:
      - name
      - logoUrl
      properties:
        name:
          type: string
        logoUrl:
          anyOf:
          - type: string
          - type: 'null'
    UserStatementWalletProvider:
      type: string
      enum:
      - apple_pay
      - google_pay
      - samsung_pay
      - other
    GetUserBalancesV2BadGateway:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    UserTransactionEnrichmentMerchant:
      type: object
      required:
      - id
      - name
      - logoUrl
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        name:
          type: string
        logoUrl:
          anyOf:
          - type: string
          - type: 'null'
    GetUserDepositsNotFound:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    UserTransactionEnrichmentAddress:
      type: object
      required:
      - street
      - city
      - zip
      - country
      - areas
      properties:
        street:
          type: string
        city:
          type: string
        zip:
          type: string
        country:
          type: string
        areas:
          type: array
          items:
            $ref: '#/components/schemas/UserTransactionEnrichmentArea'
    UserTransactionEnrichmentStatus:
      type: string
      enum:
      - matched
      - unmatched
      - pending
      - unavailable
    GetUserWithdrawalsBadGateway:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    UserStatementDeposit:
      type: object
      required:
      - type
      - id
      - status
      - amount
      - currency
      - decimals
      - fiatCurrency
      - isCredit
      - createdAt
      - description
      - txHash
      - fromAddress
      - chainId
      properties:
        type:
          type: string
          enum:
          - deposit
        id:
          type: string
        status:
          $ref: '#/components/schemas/UserStatementDepositStatus'
        amount:
          type: string
        currency:
          type: string
        decimals:
          type: integer
          format: int32
        fiatCurrency:
          type: string
        isCredit:
          type: boolean
        createdAt:
          type: string
          format: date-time
        description:
          type: string
        txHash:
          type: string
        fromAddress:
          type: string
        chainId:
          type: integer
          format: int32
    UserStatementPagination:
      type: object
      required:
      - nextCursor
      - hasNext
      properties:
        nextCursor:
          anyOf:
          - type: string
          - type: 'null'
        hasNext:
          type: boolean
    UserTransactionEnrichment:
      type: object
      required:
      - status
      - merchant
      - shop
      properties:
        status:
          $ref: '#/components/schemas/UserTransactionEnrichmentStatus'
        merchant:
          anyOf:
          - $ref: '#/components/schemas/UserTransactionEnrichmentMerchant'
          - type: 'null'
        shop:
          anyOf:
          - $ref: '#/components/schemas/UserTransactionEnrichmentShop'
          - type: 'null'
    UserStatementCurrencyMetadata:
      type: object
      required:
      - symbol
      - code
      - decimals
      - name
      properties:
        symbol:
          anyOf:
          - type: string
          - type: 'null'
        code:
          type: string
        decimals:
          type: integer
          format: int32
        name:
          anyOf:
          - type: string
          - type: 'null'
    UserStatementMerchantDetails:
      type: object
      required:
      - name
      - city
      - country
      - categoryCode
      properties:
        name:
          type: string
        city:
          anyOf:
          - type: string
          - type: 'null'
        country:
          type: string
        categoryCode:
          type: string
    CreateWithdrawalConflict:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
      description: 'Conflict - the withdrawal cannot be created in the current state. `error` is one of:

        - `WITHDRAWAL_ALREADY_IN_PROGRESS`: another instant withdrawal for this account is still in progress

        - `CONFLICT`: any other state conflict'
    GetUserStatementBadGateway:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    GetUserDepositsResponse:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/UserDeposit'
    UserTransactionEnrichmentCoordinates:
      type: object
      required:
      - latitude
      - longitude
      - accuracy
      - zoom
      properties:
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
        accuracy:
          type: string
        zoom:
          type: integer
          format: int32
    Unauthorized:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    UserWithdrawalStatus:
      type: string
      enum:
      - pending
      - completed
      - failed
    UserStatementBillingDetails:
      type: object
      required:
      - billingAmount
      - billingCurrency
      properties:
        billingAmount:
          type: string
        billingCurrency:
          $ref: '#/components/schemas/UserStatementCurrencyMetadata'
    AccountBalancesV2Response:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountBalanceV2'
          description: List of balances per currency.
    GetUserStatementNotFound:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    ValidationErrorDetail:
      type: object
      required:
      - name
      - message
      properties:
        name:
          type: string
          enum:
          - ValidationError
        message:
          type: string
    GetUserStatementResponse:
      type: object
      required:
      - data
      - pagination
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/UserStatementItem'
        pagination:
          $ref: '#/components/schemas/UserStatementPagination'
    CreateWithdrawalBadGateway:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    GetUserDepositsBadGateway:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    UserTransactionEnrichmentShop:
      type: object
      required:
      - id
      - type
      - category
      - tags
      - address
      - coordinates
      - url
      - googlePlaceId
      - phoneNumber
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        type:
          type: string
        category:
          anyOf:
          - $ref: '#/components/schemas/UserTransactionEnrichmentCategory'
          - type: 'null'
        tags:
          type: array
          items:
            type: string
        address:
          anyOf:
          - $ref: '#/components/schemas/UserTransactionEnrichmentAddress'
          - type: 'null'
        coordinates:
          anyOf:
          - $ref: '#/components/schemas/UserTransactionEnrichmentCoordinates'
          - type: 'null'
        url:
          anyOf:
          - type: string
          - type: 'null'
        googlePlaceId:
          anyOf:
          - type: string
          - type: 'null'
        phoneNumber:
          anyOf:
          - type: string
          - type: 'null'
    UserStatementBadRequestBody:
      type: object
      oneOf:
      - $ref: '#/components/schemas/UserStatementValidationError'
      - $ref: '#/components/schemas/UserStatementBusinessError'
      discriminator:
        propertyName: kind
        mapping:
          validation: '#/components/schemas/UserStatementValidationError'
          business: '#/components/schemas/UserStatementBusinessError'
    UserStatementTransactionKind:
      type: string
      enum:
      - Payment
      - Refund
      - Reversal
    Error:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    uuid:
      type: string
      format: uuid
    UserTransactionEnrichmentArea:
      type: object
      required:
      - name
      - value
      properties:
        name:
          type: string
        value:
          type: string
    UserDepositStatus:
      type: string
      enum:
      - pending
      - approved
      - rejected
    AccountBalanceV2:
      type: object
      required:
      - currency
      - decimals
      - spendable
      - nonSpendable
      - processingDeposits
      - processingWithdrawals
      - tokens
      properties:
        currency:
          type: string
          description: Currency code.
        decimals:
          type: integer
          format: int32
          description: Number of decimal places for this currency's raw amounts.
        spendable:
          type: string
          description: Spendable balance. Raw bigint string in the currency's smallest unit.
        nonSpendable:
          type: string
          description: Non-spendable balance. Raw bigint string.
        processingDeposits:
          type: string
          description: Incoming deposits being processed. Raw bigint string.
        processingWithdrawals:
          type: string
          description: Outgoing withdrawals being processed. Raw bigint string.
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/TokenBalance'
          description: Per-token breakdown of balances.
    AuthBusinessError:
      type: object
      required:
      - kind
      - success
      - error
      properties:
        kind:
          type: string
          enum:
          - business
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
      description: Domain/business failure on auth routes (returned by handlers).
    AuthValidationError:
      type: object
      required:
      - kind
      - success
      - error
      properties:
        kind:
          type: string
          enum:
          - validation
        success:
          type: boolean
          enum:
          - false
        error:
          $ref: '#/components/schemas/ValidationErrorDetail'
      description: Validation failure on auth routes (decoder / request constraints).
    UserStatementCardTransactionStatus:
      type: string
      enum:
      - pending
      - settled
      - cancelled
      - declined
    UserWithdrawal:
      type: object
      required:
      - txHash
      - amount
      - currency
      - status
      - createdAt
      properties:
        txHash:
          type: string
        amount:
          type: string
        currency:
          type: string
        status:
          $ref: '#/components/schemas/UserWithdrawalStatus'
        createdAt:
          type: string
          format: date-time
    UserStatementTransactionExecutionDetail:
      type: object
      required:
      - status
      - to
      - value
      - data
      - hash
      properties:
        status:
          anyOf:
          - type: string
          - type: 'null'
        to:
          anyOf:
          - type: string
          - type: 'null'
        value:
          anyOf:
          - type: string
          - type: 'null'
        data:
          anyOf:
          - type: string
          - type: 'null'
        hash:
          anyOf:
          - type: string
          - type: 'null'
    NotFound:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    UserStatementValidationError:
      type: object
      required:
      - kind
      - success
      - error
      properties:
        kind:
          type: string
          enum:
          - validation
        success:
          type: boolean
          enum:
          - false
        error:
          $ref: '#/components/schemas/ValidationErrorDetail'
    UserStatementWallet:
      type: object
      required:
      - provider
      - deviceBrand
      - deviceModel
      - deviceType
      - deviceName
      properties:
        provider:
          $ref: '#/components/schemas/UserStatementWalletProvider'
        deviceBrand:
          anyOf:
          - type: string
          - type: 'null'
        deviceModel:
          anyOf:
          - type: string
          - type: 'null'
        deviceType:
          anyOf:
          - type: string
          - type: 'null'
        deviceName:
          anyOf:
          - type: string
          - type: 'null'
    TokenBalance:
      type: object
      required:
      - token
      - decimals
      - spendable
      - nonSpendable
      - processingDeposits
      - maxInstantWithdraw
      properties:
        token:
          type: string
          description: Token symbol.
        decimals:
          type: integer
          format: int32
          description: Number of decimal places for this token.
        spendable:
          type: string
          description: Spendable balance for this token. Raw bigint string.
        nonSpendable:
          type: string
          description: Non-spendable balance for this token. Raw bigint string.
        processingDeposits:
          type: string
          description: Incoming deposits for this token being processed. Raw bigint string.
        maxInstantWithdraw:
          type: string
          description: 'Maximum amount of this token that an instant withdrawal would accept right

            now, in token base units. Already accounts for pending card authorization

            holds and available on-chain backing.'
    UserStatementDepositStatus:
      type: string
      enum:
      - pending
      - approved
      - rejected
    CreateWithdrawalRequest:
      type: object
      required:
      - tokenAddress
      - amount
      properties:
        tokenAddress:
          type: string
          pattern: ^0x[a-fA-F0-9]{40}$
        amount:
          type: string
          pattern: ^[0-9]+$
    UserStatementWithdrawal:
      type: object
      required:
      - type
      - id
      - status
      - amount
      - currency
      - decimals
      - fiatCurrency
      - isCredit
      - createdAt
      - description
      - txHash
      - toAddress
      - chainId
      properties:
        type:
          type: string
          enum:
          - withdrawal
        id:
          type: string
        status:
          $ref: '#/components/schemas/UserStatementWithdrawalStatus'
        amount:
          type: string
        currency:
          type: string
        decimals:
          type: integer
          format: int32
        fiatCurrency:
          type: string
        isCredit:
          type: boolean
        createdAt:
          type: string
          format: date-time
        description:
          type: string
        txHash:
          anyOf:
          - type: string
          - type: 'null'
        toAddress:
          type: string
        chainId:
          type: integer
          format: int32
    AuthBadRequest:
      type: object
      oneOf:
      - $ref: '#/components/schemas/AuthValidationError'
      - $ref: '#/components/schemas/AuthBusinessError'
      discriminator:
        propertyName: kind
        mapping:
          validation: '#/components/schemas/AuthValidationError'
          business: '#/components/schemas/AuthBusinessError'
      description: 'Discriminated 400 body for auth POST routes. The `kind` field is additive

        and not a breaking change. Clients can keep reading `success` and `error`.'
    UserStatementDeclineReason:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
        message:
          type: string
    UserStatementBusinessError:
      type: object
      required:
      - kind
      - success
      - error
      properties:
        kind:
          type: string
          enum:
          - business
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    UserStatementWithdrawalStatus:
      type: string
      enum:
      - pending
      - processing
      - completed
      - failed
    UserDepositKytBreakdown:
      type: object
      required:
      - result
      - riskScore
      - riskTier
      properties:
        result:
          type: string
        riskScore:
          anyOf:
          - type: number
            format: double
          - type: 'null'
        riskTier:
          anyOf:
          - type: string
          - type: 'null'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: Bearer