openapi: 3.1.0
info:
  title: Rialto API
  description: The Rialto API allows you to follow your transactions and execute new ones on the Rialto platform.
  version: 1.0.0
servers:
  - url: https://api.rialtobridge.xyz/api/client/v1
    description: Main (production) server for the Rialto Client API
  - url: https://staging.api.rialtobridge.xyz/api/client/v1
    description: Test (staging) server for the Rialto Client API
  - url: http://localhost:3002/api/client/v1
    description: Development server for the Rialto Client API
externalDocs:
  description: Check the full documentation for more information.
  url: https://docs.rialtobridge.xyz/
paths:
  /transactions:
    get:
      summary: Returns the list of transactions
      description: |
        The transactions are sorted by creation date, in descending order. The most recently created transactions appear first.<br /> The transactions can be filtered by date using the `from` and `to` parameters. <br /> If the `from` and `to` parameters are not provided, the transactions are fetched from the beginning until now.<br /> The transactions can be paginated using the `limit` parameter. <br /> If there are more transactions to fetch with the provided parameters, the response will contain a `hasNextPage` field set to `true`.<br /> In order to fetch the next page, the `to` parameter must be set to the `createdAt` field of the last transaction of the current page.
      operationId: getTransactions
      security:
        - api_key: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/filterTransactionFrom'
        - $ref: '#/components/parameters/filterTransactionTo'
        - $ref: '#/components/parameters/filterTransactionLimit'
      responses:
        '200':
          description: A JSON array of transactions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transaction'
                  hasNextPage:
                    type: boolean
                    description: Whether there are more transactions to fetch with the provided parameters.
                    examples:
                      - false
              examples:
                transactionListResponse:
                  $ref: '#/components/examples/transactionListResponse'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - Invalid query parameters
                  parameterErrors:
                    type:
                      - object
                      - 'null'
                    description: |
                      The errors related to the parameters of the request.<br /> The object is null if there is no error related to the parameters.
                    examples:
                      - null
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
    post:
      summary: Creates a transaction
      description: |
        Creates a new transaction on the Rialto platform.<br /> The transaction can be either an on-ramp (fiat to blockchain asset) or off-ramp (blockchain asset to fiat) transaction.<br /> The transaction is created in status **IDLE** and is waiting for the initial funds transfer to be initiated.
      operationId: createTransaction
      security:
        - api_key: []
      tags:
        - Transactions
      parameters:
        - in: header
          name: Idempotency-Key
          required: true
          description: |
            A unique identifier for the request.<br /> It is used to ensure that the request is idempotent.<br /> The same request with the same idempotency key will return a 409 status.
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/CreateTransactionBody'
      responses:
        '201':
          description: The transaction has been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
              examples:
                createdTransaction:
                  $ref: '#/components/examples/createdTransaction'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - No matching blockchain wallet
                  parameterErrors:
                    type:
                      - object
                      - 'null'
                    description: |
                      The errors related to the parameters of the request.<br /> The object is null if there is no error related to the parameters.
                    examples:
                      - null
        '401':
          description: Invalid API key
        '409':
          description: The request has already been processed.
        '500':
          description: An unexpected error occurred.
  /transactions/{transactionId}:
    get:
      summary: Get a transaction
      description: Get a transaction by unique identifier.
      operationId: getTransaction
      security:
        - api_key: []
      tags:
        - Transactions
      parameters:
        - name: transactionId
          in: path
          description: The transaction ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
              examples:
                createdTransaction:
                  $ref: '#/components/examples/createdTransaction'
        '401':
          description: Invalid API key
        '404':
          description: The transaction is not found.
        '500':
          description: An unexpected error occurred.
  /transactions/{transactionId}/cancel:
    post:
      summary: Cancel a transaction
      description: Cancel a transaction by unique identifier.
      operationId: cancelTransaction
      security:
        - api_key: []
      tags:
        - Transactions
      parameters:
        - name: transactionId
          in: path
          description: The transaction ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The transaction has been cancelled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
              examples:
                cancelledTransaction:
                  $ref: '#/components/examples/cancelledTransaction'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - Transaction already cancelled
        '401':
          description: Invalid API key
        '404':
          description: The transaction is not found.
        '500':
          description: An unexpected error occurred.
  /transactions/{transactionId}/request-invoice:
    post:
      summary: Generates a pre-signed URL for downloading the invoice of a completed transaction
      description: |
        Generates a pre-signed URL for downloading the invoice of a completed transaction.<br /> The invoice is a PDF file containing the details of the transaction.<br /> The invoice is generated only for completed transactions. <br /> Each pre-signed URL is valid for 5 minutes.<br /> See the [S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html) for more information on S3 pre-signed URLs.
      operationId: requestTransactionInvoice
      security:
        - api_key: []
      tags:
        - Transactions
      parameters:
        - name: transactionId
          in: path
          description: The transaction ID
          required: true
          schema:
            type: string
      responses:
        '201':
          description: The pre-signed URL for downloading the invoice.
          content:
            application/json:
              schema:
                type: object
                properties:
                  preSignedUrl:
                    type: string
                    description: The pre-signed URL for downloading the invoice.
                    examples:
                      - https://rialtobridge-invoices.s3.amazonaws.com/transaction-invoice.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ2ZJZ6JZJZJZJZJZ%2F20220301%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220301T000000Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - Transaction not completed
        '401':
          description: Invalid API key
        '404':
          description: The transaction is not found.
        '500':
          description: An unexpected error occurred.
  /transactions/quote:
    get:
      summary: Returns a quote for a new transaction
      description: |
        Returns a quote for a new transaction on the Rialto platform The quote is an estimation of the amount that the user will receive in the completion of the transaction.<br /> The quote is based on the current exchange rate and the user's preset fees.
      operationId: getTransactionQuote
      security:
        - api_key: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/quoteTransactionType'
        - $ref: '#/components/parameters/quoteTransactionAmount'
        - $ref: '#/components/parameters/quoteBankAccountId'
        - $ref: '#/components/parameters/quoteBlockchainWalletId'
        - $ref: '#/components/parameters/quoteBlockchainAsset'
      responses:
        '200':
          description: The quote for the transaction.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionQuote'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - No matching blockchain wallet
                  parameterErrors:
                    type:
                      - object
                      - 'null'
                    description: |
                      The errors related to the parameters of the request.<br /> The object is null if there is no error related to the parameters.
                    examples:
                      - null
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /transactions/volume:
    get:
      summary: Returns the transactions volume breakdown
      description: |
        Returns the volume breakdown of the transactions.<br /> The summary is returned for the current month.<br /> The breakdown for each transaction path is returned for the current month and the current day.<br /> The volume is in US dollars. Two decimal places are allowed.<br /> The volume is divided according to the status of the transactions:
          - **IDLE**: transaction has been created and is waiting for initiation,
          - **INITIATED**: transaction has been initiated, it is in progress of resolution by Rialto,
          - **COMPLETED**: transaction has been completed.
      operationId: getTransactionsVolumeBreakdown
      security:
        - api_key: []
      tags:
        - Transactions
      responses:
        '200':
          description: The transactions volume breakdown.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionVolumeBreakdown'
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /preset-fees:
    get:
      summary: Returns the list of preset fees.
      description: The preset fees are sorted by creation date, with the most recent preset fee appearing first.
      operationId: getPresetFees
      security:
        - api_key: []
      tags:
        - Preset fees
      responses:
        '200':
          $ref: '#/components/responses/PresetFees'
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /preset-fees/{presetFeeId}:
    get:
      summary: Returns a preset fee by ID.
      description: Returns a preset fee by its unique identifier.
      operationId: getPresetFeeById
      security:
        - api_key: []
      parameters:
        - name: presetFeeId
          in: path
          required: true
          description: The unique identifier of the preset fee.
          schema:
            type: string
            format: uuid
      tags:
        - Preset fees
      responses:
        '200':
          $ref: '#/components/responses/PresetFeeById'
        '401':
          description: Invalid API key
        '404':
          description: Preset fee not found.
        '500':
          description: An unexpected error occurred.
  /deposit-instructions:
    get:
      summary: Returns the list of the fiat and blockchain deposit instructions.
      description: Returns the list of the fiat and blockchain deposit instructions.
      operationId: getDepositInstructions
      security:
        - api_key: []
      tags:
        - Deposit instructions
      responses:
        '200':
          description: A list of the fiat and blockchain deposit instructions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  fiat:
                    type: array
                    items:
                      $ref: '#/components/schemas/FiatDepositInstruction'
                  blockchain:
                    type: array
                    items:
                      $ref: '#/components/schemas/BlockchainDepositInstruction'
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /bank-accounts:
    get:
      summary: Returns the list of bank accounts.
      description: The bank accounts are sorted by creation date, with the most recent bank accounts appearing first.
      operationId: getBankAccounts
      security:
        - api_key: []
      tags:
        - Bank accounts
      responses:
        '200':
          description: A JSON array of bank accounts.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BankAccount'
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
    post:
      summary: Request the creation of a bank account.
      description: |
        Creates a bank account with the specified parameters.<br /> The bank account is created in a pending state and must be approved by an administrator before it can be used in transactions.<br /> This route is **only available for verified clients**. Unverified clients will receive a 400 error.
      operationId: createBankAccount
      security:
        - api_key: []
      tags:
        - Bank accounts
      requestBody:
        $ref: '#/components/requestBodies/CreateBankAccount'
      responses:
        '201':
          description: The bank account has been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccount'
                examples:
                  - id: 4be0fab5-d71c-4498-96bb-41c47080430e
                    label: Main
                    fiatCurrency: eur
                    countryCode: FR
                    type: PERSONAL
                    identifiers:
                      format: IBAN
                      iban: FR1420041010050500013M02606
                      bic: BDFEFRPPXXX
                    thirdPartyBankAccountOwnerName: null
                    thirdPartyBankAccountOwnerAddress: null
                    thirdPartyBankAccountOwnerCity: null
                    thirdPartyBankAccountOwnerPostalCode: null
                    thirdPartyBankAccountOwnerCountryCode: null
                    thirdPartyBankAccountOwnerDocuments: null
                    createdAt: '2024-12-01T09:07:54.940Z'
                    approvedAt: null
                    deletedAt: null
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - Invalid bank account type
                  parameterErrors:
                    type:
                      - object
                      - 'null'
                    description: |
                      The errors related to the parameters of the request.<br /> The object is null if there is no error related to the parameters.
                    examples:
                      - null
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /bank-accounts/{bankAccountId}:
    get:
      summary: Returns a bank account by ID.
      description: Returns a bank account by its unique identifier.
      operationId: getBankAccountById
      security:
        - api_key: []
      parameters:
        - name: bankAccountId
          in: path
          required: true
          description: The unique identifier of the bank account.
          schema:
            type: string
            format: uuid
      tags:
        - Bank accounts
      responses:
        '200':
          description: A bank account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccount'
        '401':
          description: Invalid API key
        '404':
          description: Bank account not found.
        '500':
          description: An unexpected error occurred.
    delete:
      summary: Deletes a bank account by ID.
      description: |
        Deletes a bank account by its unique identifier.<br /> A deleted bank account will still be returned in the list of bank accounts of the client or queriable by ID, but it will have a non null `deletedAt` field.<br /> A deleted bank account can not be used in transactions.<br /> This route is **only available for verified clients**. Unverified clients will receive a 400 error.
      operationId: deleteBankAccountById
      security:
        - api_key: []
      parameters:
        - name: bankAccountId
          in: path
          required: true
          description: The unique identifier of the bank account.
          schema:
            type: string
            format: uuid
      tags:
        - Bank accounts
      responses:
        '200':
          description: The bank account has been deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccount'
                examples:
                  - id: 4be0fab5-d71c-4498-96bb-41c47080430e
                    label: Main
                    fiatCurrency: eur
                    countryCode: FR
                    type: PERSONAL
                    identifiers:
                      format: IBAN
                      iban: FR1420041010050500013M02606
                      bic: BDFEFRPPXXX
                    thirdPartyBankAccountOwnerName: null
                    thirdPartyBankAccountOwnerAddress: null
                    thirdPartyBankAccountOwnerCity: null
                    thirdPartyBankAccountOwnerPostalCode: null
                    thirdPartyBankAccountOwnerCountryCode: null
                    thirdPartyBankAccountOwnerDocuments: null
                    createdAt: '2024-12-01T09:07:54.940Z'
                    approvedAt: '2024-12-01T14:42:12.045Z'
                    deletedAt: '2024-12-25T00:07:54.940Z'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - Account not verified
        '401':
          description: Invalid API key
        '404':
          description: Bank account not found.
        '500':
          description: An unexpected error occurred.
  /blockchain-wallets:
    get:
      summary: Returns the list of blockchain wallets.
      description: The blockchain wallets are sorted by creation date, with the most recent blockchain wallet appearing first.
      operationId: getBlockchainWallets
      security:
        - api_key: []
      tags:
        - Blockchain wallets
      responses:
        '200':
          description: A JSON array of blockchain wallets.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BlockchainWallet'
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
    post:
      summary: Request the creation of a blockchain wallet.
      description: |
        Creates a blockchain wallet with the specified parameters.<br /> The blockchain wallet is created in a pending state and must be approved by an administrator before it can be used in transactions.<br /> This route is **only available for verified clients**. Unverified clients will receive a 400 error.
      operationId: createBlockchainWallet
      security:
        - api_key: []
      tags:
        - Blockchain wallets
      requestBody:
        $ref: '#/components/requestBodies/CreateBlockchainWallet'
      responses:
        '201':
          description: The blockchain wallet has been created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockchainWallet'
                examples:
                  - id: 3c42718a-5b6c-4858-a6b1-2e231deff900
                    label: Main Ethereum Mainnet
                    blockchainNetwork: ethereum
                    address: '0x9b7E335088762aD8061C04D08C37902ABC8ACb87'
                    createdAt: '2024-12-01T09:07:54.940Z'
                    approvedAt: null
                    deletedAt: null
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - Invalid blockchain network
                  parameterErrors:
                    type:
                      - object
                      - 'null'
                    description: |
                      The errors related to the parameters of the request.<br /> The object is null if there is no error related to the parameters.
                    examples:
                      - null
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /blockchain-wallets/{blockchainWalletId}:
    get:
      summary: Returns a blockchain wallet by ID.
      description: Returns a blockchain wallet by its unique identifier.
      operationId: getBlockchainWalletById
      security:
        - api_key: []
      parameters:
        - name: blockchainWalletId
          in: path
          required: true
          description: The unique identifier of the blockchain wallet.
          schema:
            type: string
            format: uuid
      tags:
        - Blockchain wallets
      responses:
        '200':
          description: A blockchain wallet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockchainWallet'
        '401':
          description: Invalid API key
        '404':
          description: Blockchain wallet not found.
        '500':
          description: An unexpected error occurred.
    delete:
      summary: Deletes a blockchain wallet by ID.
      description: |
        Deletes a blockchain wallet by its unique identifier.<br /> A deleted blockchain wallet will still be returned in the list of blockchain wallets of the user or queriable by ID, but it will have a non null `deletedAt` field.<br /> A deleted blockchain wallet can not be used in transactions.<br /> This route is **only available for verified clients**. Unverified clients will receive a 400 error.
      operationId: deleteBlockchainWalletById
      security:
        - api_key: []
      parameters:
        - name: blockchainWalletId
          in: path
          required: true
          description: The unique identifier of the blockchain wallet.
          schema:
            type: string
            format: uuid
      tags:
        - Blockchain wallets
      responses:
        '200':
          description: The blockchain wallet has been deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockchainWallet'
                examples:
                  - id: 3c42718a-5b6c-4858-a6b1-2e231deff900
                    label: Main Ethereum Mainnet
                    blockchainNetwork: ethereum
                    address: '0x9b7E335088762aD8061C04D08C37902ABC8ACb87'
                    createdAt: '2024-12-01T09:07:54.940Z'
                    approvedAt: '2024-12-01T12:00:12.125Z'
                    deletedAt: '2024-12-25T00:07:54.940Z'
        '400':
          description: The request is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the request is invalid.
                    examples:
                      - Client not verified
        '401':
          description: Invalid API key
        '404':
          description: Blockchain wallet not found.
        '500':
          description: An unexpected error occurred.
  /user:
    get:
      summary: Returns a user's information.
      description: |
        Returns the user's information.<br /> Response schema is polymorphic, it can be either a CompanyUser or an IndividualClient depending of the underlying user type.
      operationId: getUser
      security:
        - api_key: []
      tags:
        - User
      responses:
        '200':
          description: The user's information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Client'
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /uploads:
    get:
      summary: Lists the uploaded documents
      description: |
        Lists the uploaded documents.<br /> The documents are kept for 24 hours.<br /> The list includes the filenames of the documents.<br /> The filenames can be used to reference the documents in request payloads.<br /> When a document is referenced, Rialto will copy the document to a permanent storage.<br /> During the copy operation, a key referencing the document in the final destination will be generated.<br /> See the [S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html) for more information on S3 pre-signed URLs.
      operationId: listDocuments
      security:
        - api_key: []
      tags:
        - Uploads (temporary storage)
      responses:
        '200':
          description: The list of uploaded documents.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    filename:
                      description: The filename of the uploaded document.
                      type: string
                    updatedAt:
                      description: The last modified date of the uploaded document.
                      type: string
                      format: date-time
                examples:
                  - - filename: file1.pdf
                      updatedAt: '2023-03-01T00:00:00Z'
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /uploads/request-batch-upload:
    post:
      summary: Generates pre-signed URLs for uploading documents.
      description: |
        Generates pre-signed URLs for uploading documents.<br /> The uploaded documents are kept for 24 hours.<br /> For each file, a pre-signed URL is generated.<br /> Each pre-signed URL is valid for 5 minutes.<br /> The filenames can be used to reference the documents in request payloads.<br /> When a document is referenced, Rialto will copy the document to a permanent storage.<br /> During the copy operation, a key referencing the document in the final destination will be generated.<br /> See the [S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html) for more information on S3 pre-signed URLs.
      operationId: requestUploads
      security:
        - api_key: []
      tags:
        - Uploads (temporary storage)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filenames:
                  description: The list of filenames for which to generate pre-signed URLs.
                  type: array
                  items:
                    type: string
              examples:
                - filenames:
                    - file1.pdf
      responses:
        '201':
          description: Pre-signed URLs for uploading documents.
          content:
            application/json:
              schema:
                type: object
                properties:
                  preSignedUrls:
                    description: The list of pre-signed URLs for uploading documents.
                    type: array
                    items:
                      type: object
                      properties:
                        filename:
                          description: The filename for which the pre-signed URL was generated.
                          type: string
                        preSignedUrl:
                          description: The pre-signed URL for uploading the document.
                          type: string
                examples:
                  - - filename: file1.pdf
                      preSignedUrl: https://rialto-bridge.s3.amazonaws.com/91e5bd3c-0e13-4e6e-a673-3c0842b7f370_abc/file1.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJZ6Z6Z6Z6Z6Z6Z6Z%2F20220301%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220301T000000Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
        '400':
          description: Invalid request payload
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /documents/request-batch-download:
    post:
      summary: Generates pre-signed URLs for downloading documents.
      description: |
        Generates pre-signed URLs for downloading documents.<br /> Only documents in permanent storage can be downloaded.<br /> Each pre-signed URL is valid for 5 minutes.<br /> See the [S3 documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html) for more information on S3 pre-signed URLs.
      operationId: generatePreSignedUrlForDownload
      security:
        - api_key: []
      tags:
        - Documents (permanent storage)
      requestBody:
        $ref: '#/components/requestBodies/PreSignedDownloadUrls'
      responses:
        '201':
          description: Pre-signed URLs for downloading documents.
          content:
            application/json:
              schema:
                type: object
                properties:
                  preSignedUrls:
                    description: The list of pre-signed URLs for downloading documents.
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          description: The key for the document in the permanent storage.
                          type: string
                        filename:
                          description: The filename of the document.
                          type: string
                        preSignedUrl:
                          description: The pre-signed URL for downloading the document.
                          type: string
                examples:
                  - - key: rialto-clients/entities/d61b6b30-0bf6-4fe7-9110-905b78f938df/26f7380a-dbf7-46a4-9568-7881cc8bfce7_file1.pdf
                      filename: file1.pdf
                      preSignedUrl: https://rialto-bridge.s3.amazonaws.com/91e5bd3c-0e13-4e6e-a673-3c0842b7f370_abc/26f7380a-dbf7-46a4-9568-7881cc8bfce7_file1.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJZ6Z6Z6Z6Z6Z6Z6Z%2F20220301%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220301T000000Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
        '400':
          description: Invalid request payload
        '401':
          description: Invalid API key
        '404':
          description: Document not found
        '500':
          description: An unexpected error occurred.
  /constants:
    get:
      summary: Get a list of all constants
      description: |
        This endpoint returns a list of all constants. <br /> It includes:
              - fiat currencies,
              - blockchain networks,
              - blockchain assets,
              - blockchain fee groups,
              - fiat fee groups,
              - onboarding related constants. <br />
        See the [associated documentation](https://docs.rialtobridge.xyz/concepts) for more information.
      operationId: getAllConstants
      tags:
        - Constants
      security:
        - api_key: []
      responses:
        '200':
          description: The list of all constants.
          content:
            application/json:
              schema:
                type: object
                properties:
                  fiatCurrencies:
                    description: The list of supported fiat currencies
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: A supported fiat currency code. This is the code that is used in the API.
                        isoCode:
                          type: string
                          description: A supported fiat currency ISO code
                        label:
                          type: string
                          description: A supported fiat currency name
                        digits:
                          type: integer
                          description: The number of digits after the decimal point for this fiat currency
                        feeGroup:
                          type: string
                          description: The fee group for this fiat currency
                  blockchainNetworks:
                    description: The list of supported blockchain networks
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: A supported blockchain network code. This is the code that is used in the API.
                        label:
                          type: string
                          description: A supported blockchain network name
                        supportedAssets:
                          type: array
                          items:
                            type: object
                            properties:
                              code:
                                type: string
                                description: A supported asset code for this blockchain network
                              address:
                                type:
                                  - string
                                  - 'null'
                                description: |
                                  The address for this asset on this blockchain network.<br /> Null if the asset is native to the blockchain network.
                  blockchainAssets:
                    description: The list of supported blockchain assets
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: A supported blockchain asset code. This is the code that is used in the API.
                        label:
                          type: string
                          description: A supported blockchain asset name
                        decimals:
                          type: integer
                          description: The number of decimals for this blockchain asset. Maximum 6 decimals will be supported in the API even if the blockchain asset supports more decimals.
                        feeGroup:
                          type: string
                          description: The fee group for this blockchain asset.
                        blockchainNetworks:
                          type: array
                          description: A list of blockchain networks that support this asset
                          items:
                            type: object
                            properties:
                              code:
                                type: string
                                description: A supported blockchain network code for this asset
                              address:
                                type:
                                  - string
                                  - 'null'
                                description: |
                                  The address for this asset on this blockchain network.<br /> Null if the asset is native to the blockchain network.
                  blockchainFeeGroups:
                    description: The list of supported blockchain fee groups
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: A supported blockchain fee group code. This is the code that is used in the API.
                        label:
                          type: string
                          description: A supported blockchain fee group name
                        blockchainAssets:
                          type: array
                          description: The list of blockchain assets that belong to this fee group
                          items:
                            type: string
                            description: A supported blockchain asset code
                  fiatFeeGroups:
                    description: The list of supported fiat fee groups
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: A supported fiat fee group code. This is the code that is used in the API.
                        label:
                          type: string
                          description: A supported fiat fee group name
                        fiatCurrencies:
                          type: array
                          description: The list of fiat currencies that belong to this fee group
                          items:
                            type: string
                            description: A supported fiat currency code
                  onboarding:
                    type: object
                    description: Miscellaneous onboarding-related constants
                    properties:
                      countryCodes:
                        description: The list of supported country codes
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported country code. This is the code that is used in the API.
                            label:
                              type: string
                              description: A supported country name
                      individualOccupations:
                        type: array
                        description: The list of supported individual occupations
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported individual occupation code
                            label:
                              type: string
                              description: A supported individual occupation name
                      jobBusinessSectors:
                        type: array
                        description: The list of supported job business sectors
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported job business sector code
                            label:
                              type: string
                              description: A supported job business sector name
                      annualRevenueRanges:
                        type: array
                        description: The list of supported annual revenue ranges
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported annual revenue range code
                            label:
                              type: string
                              description: A supported annual revenue range name
                      globalWealthRanges:
                        type: array
                        description: The list of supported global wealth ranges
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported global wealth range code
                            label:
                              type: string
                              description: A supported global wealth range name
                      individualPurposesOfOnboarding:
                        type: array
                        description: The list of supported individual purposes of onboarding
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported individual purpose of onboarding code
                            label:
                              type: string
                              description: A supported individual purpose of onboarding name
                      entityPurposesOfOnboarding:
                        type: array
                        description: The list of supported entity purposes of onboarding
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported entity purpose of onboarding code
                            label:
                              type: string
                              description: A supported entity purpose of onboarding name
                      sourceOfFunds:
                        type: array
                        description: The list of supported sources of funds
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: A supported source of funds code
                            label:
                              type: string
                              description: A supported source of funds name
              example:
                fiatCurrencies:
                  - code: usd
                    isoCode: USD
                    label: US Dollar
                    digits: 2
                    feeGroup: USD
                  - code: eur
                    isoCode: EUR
                    label: Euro
                    digits: 2
                    feeGroup: G10
                blockchainNetworks:
                  - code: ethereum
                    label: Ethereum
                    supportedAssets:
                      - code: eth
                        address: null
                      - code: usdt
                        address: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
                      - code: usdc
                        address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
                      - code: dai
                        address: '0x6B175474E89094C44Da98b954EedeAC495271d0F'
                      - code: eurc
                        address: '0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c'
                blockchainAssets:
                  - code: usdc
                    label: USD Coin
                    decimals: 6
                    feeGroup: USD_STABLECOIN
                    blockchainNetworks:
                      - code: ethereum
                        address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
                      - code: polygon
                        address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
                      - code: solana
                        address: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                blockchainFeeGroups:
                  - code: USD_STABLECOIM
                    label: USD stablecoins
                    blockchainAssets:
                      - usdc
                      - usdt
                      - dai
                fiatFeeGroups:
                  - code: USD
                    label: USD
                    fiatCurrencies:
                      - usd
                onboarding:
                  countryCodes:
                    - code: FR
                      label: France
                  individualOccupations:
                    - code: partTimeEmployee
                      label: Employee (Part-Time)
                  jobBusinessSectors:
                    - code: agriculture
                      label: Agriculture
                  annualRevenueRanges:
                    - code: lessThan50K
                      label: Inferior to 50,000$
                  globalWealthRanges:
                    - code: lessThan50K
                      label: Inferior to 50,000$
                  individualPurposesOfOnboarding:
                    - code: personalOnOffRamp
                      label: Personal On/Off Ramp
                  entityPurposesOfOnboarding:
                    - code: tradingActivities
                      label: Trading activities
                  sourceOfFunds:
                    - code: salary
                      label: Salary
        '401':
          description: Invalid API key
        '500':
          description: Internal server error
  /simulate/limit/updated:
    post:
      summary: Simulate the update of the limit.
      description: Simulate the update of the limit for a client. <br /> Only available on staging environment.
      operationId: simulateLimitUpdate
      security:
        - api_key: []
      tags:
        - Simulate
      requestBody:
        required: true
        description: The parameters to update the limit for a client.
        content:
          application/json:
            schema:
              type: object
              properties:
                limit:
                  type: number
                  description: The new limit for the client, in USD with two decimal places.
              examples:
                - limit: 10000
              required:
                - limit
      responses:
        '200':
          description: The limit has been updated.
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /simulate/preset-fees/created:
    post:
      summary: Simulate the creation of a preset fee.
      description: Simulate the creation of a preset fee for a client. <br /> Only available on staging environment.
      operationId: simulatePresetFeeCreate
      security:
        - api_key: []
      tags:
        - Simulate
      requestBody:
        $ref: '#/components/requestBodies/SimulatePresetFeeCreate'
      responses:
        '201':
          description: The limit has been updated.
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /simulate/preset-fees/{presetFeeId}/deleted:
    post:
      summary: Simulate the deletion of a preset fee.
      description: Simulate the deleteion of a preset fee for a client. <br /> Only available on staging environment.
      operationId: simulatePresetFeeDelete
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: presetFeeId
          in: path
          description: The ID of the preset fee to delete
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The fee has been deleted.
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /simulate/transactions/{transactionId}/initiated:
    post:
      summary: Simulate the initiation of a transaction.
      description: Simulate the initiation of a transaction for a client. <br /> This route is a helper for clients to autonomously test and integrate with the Rialto APIs. <br /> In production, transaction advancement is done by Rialto's back-office. <br /> The transaction must be in IDLE status. <br /> This route is only available on staging environment.
      operationId: simulateTransactionInitiation
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: transactionId
          in: path
          description: The ID of the transaction to initiate
          required: true
          schema:
            type: string
      requestBody:
        required: true
        description: The parameters to initiate the transaction.
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionHashOrWireTransferReference:
                  type: string
                  description: The transaction hash or wire transfer reference.
                initiationAmount:
                  type: number
                  description: The amount received in the transaction.
              examples:
                - transactionHashOrWireTransferReference: ABC123
                - initiationAmount: 10123
              required:
                - transactionHashOrWireTransferReference
                - initiationAmount
  /simulate/transactions/{transactionId}/completed:
    post:
      summary: Simulate the completion of a transaction.
      description: Simulate the completion of a transaction for a client. <br /> This route is a helper for clients to autonomously test and integrate with the Rialto APIs. <br /> In production, transaction advancement is done by Rialto's back-office. <br /> The transaction must be in INITIATED status. <br /> This route is only available on staging environment.
      operationId: simulateTransactionCompletion
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: transactionId
          in: path
          description: The ID of the transaction to complete
          required: true
          schema:
            type: string
      requestBody:
        required: true
        description: The parameters to complete the transaction.
        content:
          application/json:
            schema:
              type: object
              properties:
                conversionRate:
                  type: number
                  description: The conversion rate used to calculate the amount of the transaction.
              examples:
                - conversionRate: 1.123456
              required:
                - conversionRate
  /simulate/transactions/{transactionId}/dismissed:
    post:
      summary: Simulate the dismissal of a transaction.
      description: Simulate the dismissal of a test transaction. <br /> This route is a helper for clients to autonomously test and integrate with the Rialto APIs. <br /> In production, transactions are dismissed by Rialto admins. <br /> The transaction must be in IDLE or INITIATED status. <br /> This route is only available on staging environment.
      operationId: simulateTransactionDismissal
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: transactionId
          in: path
          description: The ID of the transaction to dismiss
          required: true
          schema:
            type: string
      requestBody:
        required: true
        description: The parameters to simulate a transaction dismissal.
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: number
                  description: The reason to dismiss the transaction.
              examples:
                - reason: a very good reason
              required:
                - reason
      responses:
        '201':
          description: The transaction has been dismissed.
        '401':
          description: Invalid API key
        '500':
          description: An unexpected error occurred.
  /simulate/bank-accounts/{bankAccountId}/approved:
    post:
      summary: Simulate the approval of a bank account.
      description: Simulate the approval of a bank account for a client. <br /> Only available on staging environment.
      operationId: simulateBankAccountApproval
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: bankAccountId
          in: path
          description: The ID of the bank account to approve
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The bank account has been approved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The ID of the bank account that has been approved
                examples:
                  - id: 644ea36b-dd03-420f-add2-71b3f78fde8f
        '400':
          description: The request is invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the bank account has been rejected
                    examples:
                      - Invalid query parameters
        '401':
          description: Invalid API key
        '404':
          description: Bank account not found
        '500':
          description: An unexpected error occurred.
  /simulate/bank-accounts/{bankAccountId}/rejected:
    post:
      summary: Simulate the rejection of a bank account.
      description: Simulate the rejection of a bank account for a client. <br /> Only available on staging environment.
      operationId: simulateBankAccountRejection
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: bankAccountId
          in: path
          description: The ID of the bank account to reject
          required: true
          schema:
            type: string
      responses:
        '204':
          description: The bank account has been rejected.
        '400':
          description: The request is invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the bank account has been rejected
                    examples:
                      - Invalid query parameters
                  parameterErrors:
                    type:
                      - 'null'
                    description: The errors in the request body
                    examples:
                      - 'null'
        '401':
          description: Invalid API key
        '404':
          description: Bank account not found
        '500':
          description: An unexpected error occurred.
  /simulate/blockchain-wallets/{blockchainWalletId}/approved:
    post:
      summary: Simulate the approval of a blockchain wallet.
      description: Simulate the approval of a blockchain wallet for a client. <br /> Only available on staging environment.
      operationId: simulateBlockchainWalletApprovalByClient
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: blockchainWalletId
          in: path
          description: The ID of the blockchain wallet to approve
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The blockchain wallet has been approved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The ID of the blockchain wallet that has been approved
                    examples:
                      - id: 644ea36b-dd03-420f-add2-71b3f78fde8f
        '400':
          description: The request is invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the blockchain wallet has been rejected
                    examples:
                      - Invalid query parameters
        '401':
          description: Invalid API key
        '404':
          description: Blockchain wallet not found
        '500':
          description: An unexpected error occurred.
  /simulate/blockchain-wallets/{blockchainWalletId}/rejected:
    post:
      summary: Simulate the rejection of a blockchain wallet.
      description: Simulate the rejection of a blockchain wallet for a client. <br /> Only available on staging environment.
      operationId: simulateBlockchainWalletRejectionByClient
      security:
        - api_key: []
      tags:
        - Simulate
      parameters:
        - name: blockchainWalletId
          in: path
          description: The ID of the blockchain wallet to reject
          required: true
          schema:
            type: string
      responses:
        '204':
          description: The blockchain wallet has been rejected.
        '400':
          description: The request is invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    description: The reason why the blockchain wallet has been rejected
                    examples:
                      - Invalid query parameters
                  parameterErrors:
                    type:
                      - object
                      - 'null'
                    description: The errors in the request body
                    examples:
                      - 'null'
        '401':
          description: Invalid API key
        '404':
          description: Blockchain wallet not found
        '500':
          description: An unexpected error occurred.
components:
  schemas:
    Client:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the client.
        clientType:
          type: string
          enum:
            - INDIVIDUAL
            - ENTITY
          description: |
            The type of the client. <br />
              - INDIVIDUAL: The client is an individual client. <br />
              - ENTITY: The client is an entity client.
        company:
          type:
            - object
            - 'null'
          description: |
            The company information of the client.<br /> This field is only present for entity clients, i.e. when the `clientType` is **ENTITY**.
          properties:
            name:
              type: string
              description: The name of the company.
            registrationNumber:
              type:
                - string
                - 'null'
              description: |
                The registration number of the company.<br /> Can be null during the onboarding process.
            registeredAddress:
              type:
                - string
                - 'null'
              description: |
                The registered address of the company.<br /> Can be null during the onboarding process.
            registeredAddressCity:
              type:
                - string
                - 'null'
              description: |
                The registered address city of the company.<br /> Can be null during the onboarding process.
            registeredAddressPostalCode:
              type:
                - string
                - 'null'
              description: |
                The registered address postal code of the company.<br /> Can be null during the onboarding process.
            registeredAddressCountryCode:
              type:
                - string
                - 'null'
              description: |
                The registered address country code of the company.<br /> Can be null during the onboarding process.<br /> See the [list of supported country codes](https://docs.rialtobridge.xyz/concepts).
            placeOfEffectiveBusiness:
              type:
                - string
                - 'null'
              description: |
                The place of effective business of the company.<br /> Can be null during the onboarding process.
            businessSector:
              type:
                - string
                - 'null'
              description: |
                The business sector of the company.<br /> Can be null during the onboarding process.<br /> See the [list of supported business sectors](https://docs.rialtobridge.xyz/concepts).
            businessSectorDescription:
              type:
                - string
                - 'null'
              description: The business sector description of the company if not in the list of business sectors.
            turnover:
              type:
                - string
                - 'null'
              description: |
                The turnover of the company.<br /> Can be null during the onboarding process.
            turnoverDocuments:
              type:
                - array
              description: |
                The keys of the documents related to the turnover of the company.<br /> Each key can be used in order to download the document.
              items:
                type: string
            lastTaxNoticeDocuments:
              type:
                - array
              description: |
                The keys of the documents related to the last tax notice of the company.<br /> Each key can be used in order to download the document.
              items:
                type: string
            purposeOfOnboarding:
              type:
                - string
                - 'null'
              description: |
                The purpose of onboarding of the company.<br /> Can be null during the onboarding process.<br /> See the [list of supported purposes of onboarding](https://docs.rialtobridge.xyz/concepts).
        companyRepresentatives:
          type:
            - array
            - 'null'
          description: |
            The entity representatives of the client.<br /> This field is only present for entity clients, i.e. when the `clientType` is **ENTITY**.
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: The unique identifier of the representative.
              firstName:
                type: string
                description: The first name of the representative.
              lastName:
                type: string
                description: The last name of the representative.
              email:
                type: string
                format: email
                description: The email of the representative.
              phone:
                type:
                  - string
                  - 'null'
                description: |
                  The phone number of the representative.<br /> Can be null during the onboarding process.
              jobTitle:
                type:
                  - string
                  - 'null'
                description: |
                  The job title of the representative.<br /> Can be null during the onboarding process.
              supportingDocuments:
                type: array
                items:
                  type: string
                description: |
                  The keys of the documents related to the representative.<br /> Each key can be used in order to download the document.
              role:
                type: string
                enum:
                  - AUTHORIZED_SIGNATORY
                  - OPERATOR
                description: |
                  The role of the representative.<br />
                    - AUTHORIZED_SIGNATORY: The representative is an authorized signatory of the company,
                    - OPERATOR: The representative is an operator of the company.
              createdAt:
                type: string
                format: date-time
                description: The creation date of the representative.
              updatedAt:
                type: string
                format: date-time
                description: The last update date of the representative.
              deletedAt:
                type:
                  - string
                  - 'null'
                format: date-time
                description: The deletion date of the representative.
        individualProfile:
          type:
            - object
            - 'null'
          description: |
            The individual profile of the client.<br /> This field is only present for individual clients, i.e. when the `clientType` is **INDIVIDUAL**.
          properties:
            firstName:
              type: string
              description: The first name of the individual.
            lastName:
              type: string
              description: The last name of the individual.
            email:
              type:
                - string
                - 'null'
              format: email
              description: |
                The email of the individual.<br /> Can be null during the onboarding process.
            phone:
              type:
                - string
                - 'null'
              description: |
                The phone of the individual.<br /> Can be null during the onboarding process.
            address:
              type:
                - string
                - 'null'
              description: |
                The address of the individual.<br /> Can be null during the onboarding process.
            city:
              type:
                - string
                - 'null'
              description: |
                The city of the individual.<br /> Can be null during the onboarding process.
            postalCode:
              type:
                - string
                - 'null'
              description: |
                The postal code of the individual.<br /> Can be null during the onboarding process.
            countryCode:
              type:
                - string
                - 'null'
              description: |
                The country code of the individual.<br /> Can be null during the onboarding process.
            occupation:
              type:
                - string
                - 'null'
              description: |
                The occupation of the individual.<br /> Can be null during the onboarding process.<br /> See the [list of supported occupations](https://docs.rialtobridge.xyz/concepts).
            occupationDescription:
              type:
                - string
                - 'null'
              description: The occupation description of the individual if not in the list of occupations.
            companyName:
              type:
                - string
                - 'null'
              description: |
                The company name of the individual.<br /> Can be null during the onboarding process.
            jobBusinessSector:
              type:
                - string
                - 'null'
              description: |
                The job business sector of the individual.<br /> Can be null during the onboarding process.<br /> See the [list of supported business sectors](https://docs.rialtobridge.xyz/concepts).
            jobBusinessSectorDescription:
              type:
                - string
                - 'null'
              description: The job business sector description of the individual if not in the list of business sectors.
            purposeOfOnboarding:
              type:
                - string
                - 'null'
              description: |
                The purpose of onboarding of the individual.<br /> Can be null during the onboarding process.<br /> See the [list of supported purposes of onboarding](https://docs.rialtobridge.xyz/concepts).
        individualSourceOfFunds:
          type:
            - object
            - 'null'
          description: |
            The source of funds of the individual.<br /> This field is only present for individual clients, i.e. when the `clientType` is **INDIVIDUAL**.
          properties:
            sourceOfFunds:
              type:
                - string
                - 'null'
              description: |
                The source of funds of the user.<br /> Can be null during the onboarding process.<br /> See the [list of supported sources of funds](https://docs.rialtobridge.xyz/concepts).
            sourceOfFundsDescription:
              type:
                - string
                - 'null'
              description: The source of funds description of the user if not in the list of sources of funds.
            annualRevenueRange:
              type:
                - string
                - 'null'
              description: |
                The annual revenue range of the user.<br /> Can be null during the onboarding process.<br /> See the [list of supported annual revenue ranges](https://docs.rialtobridge.xyz/concepts).
            globalWealthRange:
              type:
                - string
                - 'null'
              description: |
                The global wealth range of the user.<br /> Can be null during the onboarding process. <br /> See the [list of supported global wealth ranges](https://docs.rialtobridge.xyz/concepts).
            sourceOfFundsDocuments:
              type: array
              items:
                type: string
                description: |
                  The keys of the documents related to the source of funds of the individual.<br /> Each key can be used in order to download the document.
            proofOfTaxResidencyDocuments:
              type: array
              items:
                type: string
                description: |
                  The keys of the documents related to the proof of tax residency of the individual.<br /> Each key can be used in order to download the document.
            taxNoticeDocuments:
              type: array
              items:
                type: string
                description: |
                  The keys of the documents related to the tax notice of the individual.<br /> Each key can be used in order to download the document.
            supportingOccupationDocuments:
              type: array
              items:
                type: string
                description: |
                  The keys of the documents related to the occupation of the individual.<br /> Each key can be used in order to download the document.
        createdAt:
          type: string
          format: date-time
          description: The creation date of the client.
      examples:
        - id: 9c0306d5-e18e-4689-93da-997e2cdc16e7
          clientType: INDIVIDUAL
          individualProfile:
            firstName: Jack
            lastName: Dowie
            email: jack.dowie@def.com
            phone: +33 1 23 45 67 89
            address: 1, rue de la Paix
            city: Paris
            postalCode: '75002'
            countryCode: FR
            occupation: entrepreneur
            occupationDescription: null
            companyName: DEF
            jobBusinessSector: agriculture
            jobBusinessSectorDescription: null
            purposeOfOnboarding: treasuryManagement
          individualSourceOfFunds:
            sourceOfFunds: salary
            sourceOfFundsDescription: null
            annualRevenueRange: 50kTo80k
            globalWealthRange: 100kTo200k
            sourceOfFundsDocuments:
              - rialto-clients/individuals/9c0306d5-e18e-4689-93da-997e2cdc16e7/26f7380a-dbf7-46a4-9568-7881cc8bfce7_file1.pdf
            proofOfTaxResidencyDocuments:
              - rialto-clients/individuals/9c0306d5-e18e-4689-93da-997e2cdc16e7/5989c311-33e4-4553-912b-245716fb87a4_file2.pdf
            taxNoticeDocuments:
              - rialto-clients/individuals/9c0306d5-e18e-4689-93da-997e2cdc16e7/adf069db-85d5-4c8e-9652-559754eaf5e2_file3.pdf
            supportingOccupationDocuments:
              - rialto-clients/individuals/9c0306d5-e18e-4689-93da-997e2cdc16e7/707aa599-9cf3-42f6-91b1-cca2a4fe75d3_file4.pdf
          company: null
          companyRepresentatives: null
          createdAt: '2024-12-03T10:07:54.940Z'
        - id: e5b47b67-7ef9-45c3-abd3-79eac5551cc4
          clientType: ENTITY
          individualProfile: null
          individualSourceOfFunds: null
          company:
            name: ABC
            registrationNumber: '123456789'
            registeredAddress: 1, rue de la Paix
            registeredAddressCity: Paris
            registeredAddressPostalCode: '75002'
            registeredAddressCountryCode: FR
            placeOfEffectiveBusiness: 1, rue de la Paix
            businessSector: agriculture
            businessSectorDescription: null
            turnover: '140'
            turnoverDocuments:
              - rialto-clients/entities/e5b47b67-7ef9-45c3-abd3-79eac5551cc4/52b01849-c96d-4808-9c96-b1e207426393_file_10.pdf
            lastTaxNoticeDocuments:
              - rialto-clients/entities/e5b47b67-7ef9-45c3-abd3-79eac5551cc4/c30bf422-1154-430f-8825-fa06a4ec3387_file_11.pdf
            purposeOfOnboarding: treasuryManagement
          companyRepresentatives:
            - id: 667fee7e-a467-495a-8084-b476eee9aba2
              firstName: John
              lastName: Doe
              email: john.doe@abc.com
              phone: +33 1 23 45 67 89
              jobTitle: CEO
              supportingDocuments:
                - 66d083a7-a196-49f8-a41f-2a52bafa5a41_file23.pdf
              role: AUTHORIZED_SIGNATORY
              createdAt: '2024-12-25T12:30:00.940Z'
            - id: 37398962-9408-4027-989b-22f2ddb6de20
              firstName: Jane
              lastName: Doe
              email: jane.doe@abc.com
              phone: +33 1 87 32 99
              jobTitle: CFO
              supportingDocuments: []
              role: OPERATOR
              createdAt: '2024-12-25T12:45:00.940Z'
          createdAt: '2024-12-03T10:07:54.940Z'
    Transaction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the transaction.
        transactionType:
          type: string
          description: |
            The type of the transaction. Possible values are:
              - OFFRAMP: The transaction is an off-ramping of blockchain asset to fiat currency,
              - ONRAMP: The transaction is an on-ramping of fiat currency to blockchain asset.
          enum:
            - OFFRAMP
            - ONRAMP
        status:
          type: string
          description: |
            The status of the transaction. Possible values are:
              - IDLE: The transaction has been created and is waiting for the initial funds transfer to be initiated,
              - INITIATED: transaction has been initiated, it is in progress of resolution by Rialto,
              - COMPLETED: The transaction has been completed,
              - CANCELLED: The transaction has been cancelled,
              - DISMISSED: The transaction has been dismissed by Rialto.
          enum:
            - IDLE
            - INITIATED
            - COMPLETED
            - CANCELLED
            - DISMISSED
        idempotencyKey:
          type:
            - string
            - 'null'
          description: |
            The idempotency key input at the transaction creation.<br /> It is only defined for transactions created by the API
        originalAmount:
          type: number
          format: float
          description: |
            The original amount of the transaction.<br /> The value is always positive.
        fiatCurrency:
          type: string
          description: The fiat currency of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat currencies.
        blockchainAsset:
          type: string
          description: The blockchain asset of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain assets.
        blockchainNetwork:
          type: string
          description: The blockchain network of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchains.
        blockchainWalletId:
          type: string
          format: uuid
          description: The blockchain wallet identifier of transaction.
        bankAccountId:
          type: string
          format: uuid
          description: |
            The bank account identifier of transaction.<br /> The fiat currency of the transaction is the one of the bank account.
        additionalDetails:
          type: object
          description: |
            The additional details of the transaction.<br /> It can be used to store additional information about the transaction.
          properties:
            sourceOfFundsDocuments:
              type: array
              items:
                type: string
              description: |
                The keys of the documents uploaded by the user as the source of funds.<br /> Each key can be used in order to download the document.
            businessJustificationDocuments:
              type: array
              items:
                type: string
              description: |
                The keys of the documents uploaded by the user as the business justification.<br /> Each key can be used in order to download the document.
            comments:
              type: string
              description: Comments added by the user at the creation of the transaction.
        initiationInstruction:
          type: object
          description: |
            The initiation instruction of the transaction.<br /> It changes depending on the transaction type.<br />
          properties:
            blockchainWallet:
              type:
                - object
                - 'null'
              description: |
                The Rialto blockchain wallet to which the initiation transfer must be done.<br /> Only present if the transaction is an off-ramp transaction, i.e. transaction type **OFFRAMP**.
              properties:
                address:
                  type: string
                  description: The blockchain wallet address.
                blockchainNetwork:
                  type: string
                  description: The blockchain network of the wallet.
            bankAccount:
              type:
                - object
                - 'null'
              description: |
                The Rialto bank account to which the initiation transfer must be done.<br /> Only present if the transaction is an on-ramp transaction, i.e. transaction type **ONRAMP**.
              properties:
                countryCode:
                  type: string
                  description: The country code of the bank account.
                iban:
                  type: string
                  description: The IBAN of the bank account.
                bic:
                  type: string
                  description: The BIC of the bank account.
                intermediaryBic:
                  type:
                    - string
                    - 'null'
                  description: The intermediary BIC of the bank account.
                beneficiary:
                  type: object
                  description: The beneficiary of the bank account.
                  properties:
                    name:
                      type: string
                      description: The name of the beneficiary.
                    address:
                      type:
                        - string
                        - 'null'
                      description: The address of the beneficiary.
                    city:
                      type:
                        - string
                        - 'null'
                      description: The city of the beneficiary.
                    postcode:
                      type: string
                      description: The postcode of the beneficiary.
                    countryCode:
                      type: string
                      description: The country code of the beneficiary.
            wireReference:
              type:
                - string
                - 'null'
              description: |
                The wire reference to include in the initiation transfer to Rialto bank account.<br /> Only present if the transaction is an on-ramp transaction, i.e. transaction type **ONRAMP**.
        createdAt:
          type: string
          format: date-time
          description: The creation date of the transaction.
        initiation:
          type:
            - object
            - 'null'
          description: |
            The initiation object of the transaction.<br /> Only present if the transaction has been initiated, i.e. in statuses **INITIATED** or **COMPLETED**.<br /> Object will also be present if the transaction has been dismissed by Rialto after initiation, i.e. in status **DISMISSED**.
          properties:
            amount:
              type: number
              format: float
              description: |
                The amount of the initial funds transfer to Rialto.<br /> A margin of 1% with respect to the original amount is allowed.<br /> The value is always positive.
            bpsFee:
              type: number
              format: uint32
              description: |
                The fee of the transaction in BPS (basis points).<br /> The fee amount can be derived by applying the BPS fee to the amount of the initial funds transfer.<br /> The value is always positive.
            timestamp:
              type: string
              format: date-time
              description: The date when the funds were received by Rialto, activating the transaction
        completion:
          type:
            - object
            - 'null'
          description: |
            The completion object of the transaction.<br /> Only present if the transaction is completed, i.e. in status **COMPLETED**.
          properties:
            amount:
              type: number
              format: float
              description: |
                The amount of the transfer to the user.<br /> The value is always positive.
            conversionRate:
              type: number
              format: float
              description: |
                The conversion rate of the transaction.<br /> For off-ramp transactions, it is the rate of the blockchain asset to fiat currency.<br /> For on-ramp transactions, it is the rate of the fiat currency to blockchain asset.<br/> The value is always positive.
            volumeConsumption:
              type: number
              format: float
              description: |
                The consumption of the monthly volume of the transaction. <br /> The value is in US dollars. It is computed based on the amount of the transaction, the blockchain asset, the fiat currency, the execution conversion rate and possibly the conversion rate to USD at the time of completion of the transaction.<br /> The value is always positive. Only two decimal places are allowed.
            transactionHash:
              type:
                - string
                - 'null'
              description: |
                The transaction hash of the completion of the transaction.<br /> Only present for on-ramps, i.e. transaction type **ONRAMP**.
            wireReference:
              type:
                - string
                - 'null'
              description: |
                The wire reference of the completion of the transaction.<br /> Only present for off-ramps, i.e. transaction type **OFFRAMP**.
            timestamp:
              type: string
              format: date-time
              description: The date when the transaction was completed
        cancelledAt:
          type:
            - string
            - 'null'
          format: date-time
          description: |
            The date when the transaction was cancelled.<br /> Only present if the transaction was cancelled, i.e. in status **CANCELLED**.
        dismissal:
          type:
            - object
            - 'null'
          description: |
            The dismissal object of the transaction.<br /> A transaction can be dismissed by Rialto at any time in case of a problem.<br /> Only present if the transaction was dismissed by Rialto, i.e. in status **DISMISSED**.
          properties:
            reason:
              type: string
              description: The reason why the transaction was dismissed.
            timestamp:
              type: string
              format: date-time
              description: The date when the transaction was dismissed
        clientId:
          type: string
          format: uuid
          description: The unique identifier of the client.
        clientType:
          type: string
          enum:
            - INDIVIDUAL
            - ENTITY
          description: |
            The type of the client. <br />
              - INDIVIDUAL: The client is an individual. <br />
              - ENTITY: The client is an entity.
      examples:
        - id: 1e33e76d-3f80-4dc3-94ba-21980059fc13
          transactionType: OFFRAMP
          status: COMPLETED
          idempotencyKey: d55b2408-5688-4b44-bafa-b15bb2d548ba
          originalAmount: 1000.12
          fiatCurrency: usd
          blockchainAsset: usdc
          blockchainNetwork: ethereum
          blockchainWalletId: 3c42718a-5b6c-4858-a6b1-2e231deff900
          bankAccountId: 4be0fab5-d71c-4498-96bb-41c47080430e
          additionalDetails:
            sourceOfFundsDocuments: []
            businessJustificationDocuments: []
            comments: This is a comment
          initiationInstruction:
            blockchainWallet:
              address: '0x9b7E335088762aD8061C04D08C37902ABC8ACb87'
              blockchainNetwork: ethereum
            bankAccount: null
            wireReference: null
          createdAt: '2025-01-01T13:30:12.640Z'
          initiation:
            amount: 1000.12
            bpsFee: 125
            timestamp: '2025-01-01T14:10:56.110Z'
          completion:
            amount: 987.61
            conversionRate: 1
            volumeConsumption: 1000.12
            transactionHash: null
            wireReference: R/OF/C96bjPYxIIJOo3fqz79u
            timestamp: '2025-01-01T15:25:08.310Z'
          cancelledAt: null
          dismissal: null
          clientId: 569fd88c-20a4-46c4-b8c3-328806cc12a4
          clientType: INDIVIDUAL
        - id: f7e35a91-53ae-4b8b-b629-9ae047777e06
          transactionType: ONRAMP
          status: IDLE
          idempotencyKey: 77d78db6-cb4f-4e8d-8bb4-56bd67198af2
          originalAmount: 2398
          fiatCurrency: eur
          blockchainAsset: eurc
          blockchainNetwork: ethereum
          blockchainWalletId: 0a5c25ab-2a92-4810-93cf-ab92bbf2240d
          bankAccountId: d2b9dd72-14e7-4b6e-b0d7-f6afe4beb750
          additionalDetails:
            sourceOfFundsDocuments: []
            businessJustificationDocuments: []
            comments: This is a comment
          initiationInstruction:
            blockchainWallet: null
            bankAccount:
              countryCode: DE
              iban: DE89370400440532013000
              bic: COBADEFFXXX
              intermediaryBic: COBADEFF
              beneficiary:
                name: John Doe
                address: 123 Main Street
                city: Berlin
                postcode: '10115'
                countryCode: DE
            wireReference: R/ON/C96bjPYxIIJOo3fqz79u
          createdAt: '2024-12-08T08:07:12.640Z'
          initiation: null
          completion: null
          cancelledAt: null
          dismissal: null
          clientId: 569fd88c-20a4-46c4-b8c3-328806cc12a4
          clientType: INDIVIDUAL
        - id: d4cc6e0e-0045-4d54-befa-0defbaf15e2a
          transactionType: ONRAMP
          status: CANCELLED
          idempotencyKey: 8d1d2f07-f458-41d2-8adc-3987c522498f
          originalAmount: 1230
          fiatCurrency: eur
          blockchainAsset: eurc
          blockchainNetwork: ethereum
          blockchainWalletId: 0a5c25ab-2a92-4810-93cf-ab92bbf2240d
          bankAccountId: d2b9dd72-14e7-4b6e-b0d7-f6afe4beb750
          additionalDetails:
            sourceOfFundsDocuments: []
            businessJustificationDocuments: []
            comments: This is a comment
          initiationInstruction:
            blockchainWallet: null
            bankAccount:
              countryCode: DE
              iban: DE89370400440532013000
              bic: COBADEFFXXX
              intermediaryBic: COBADEFF
              beneficiary:
                name: John Doe
                address: 123 Main Street
                city: Berlin
                postcode: '10115'
                countryCode: DE
            wireReference: R/ON/Xsyq6Pi6j29q8bbAU2H6
          createdAt: '2024-12-01T09:07:54.940Z'
          initiation: null
          completion: null
          cancelledAt: '2024-12-01T11:00:38.040Z'
          dismissal: null
          clientId: 569fd88c-20a4-46c4-b8c3-328806cc12a4
          clientType: INDIVIDUAL
    TransactionQuote:
      type: object
      properties:
        initiationAmount:
          type: number
          format: float
          description: |
            The input amount of the transaction.<br /> It will be the amount of the initial funds transfer to Rialto.<br /> The value is always positive.
        completionAmount:
          type: number
          format: float
          description: |
            The estimated amount of the transferred amount to the user.<br /> The value is always positive.
        bpsFee:
          type: number
          format: uint32
          description: |
            The previsionnal fee of the transaction in BPS (basis points).<br /> The fee amount can be derived by applying the BPS fee to the amount of the initial funds transfer.<br /> The value is always positive.
        conversionRate:
          type: number
          format: float
          description: |
            The conversion rate of the transaction.<br /> For off-ramp transactions, it is the rate of the blockchain asset to fiat currency.<br /> For on-ramp transactions, it is the rate of the fiat currency to blockchain asset.<br/> The value is always positive.
        volumeConsumption:
          type: number
          format: float
          description: |
            The estimated consumption of the monthly volume of the transaction. <br /> The value is in US dollars. It is computed based on the amount of the transaction, the blockchain asset, the fiat currency, the execution conversion rate and possibly the conversion rate to USD at the time of completion of the transaction.<br /> The value is always positive. Only two decimal places are allowed.
        remainingPrevisionalVolume:
          type: number
          format: float
          description: |
            The remaining previsional volume of the user for the current month.<br /> It takes into account the volume consumed by the transaction and the volume consumed by the other transactions of the user.<br /> The value is in US dollars. It is computed based on the amount of the transaction, the blockchain asset, the fiat currency, the execution conversion rate and possibly the conversion rate to USD at the time of completion of the transaction.<br /> The value is always positive. Only two decimal places are allowed.
        presetFeeId:
          type: string
          format: uuid
          description: |
            The unique identifier of the preset fee applied to the transaction.<br /> The value is null if no preset fee is applicable.
        fiatCurrency:
          type: string
          description: |
            The fiat currency of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat currencies.<br /> The value is the one of the bank account.
        blockchainAsset:
          type: string
          description: The blockchain asset of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain assets.
        blockchainNetwork:
          type: string
          description: |
            The blockchain network of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchains.<br /> The value is the one of the blockchain wallet.
      examples:
        - initiationAmount: 1000.12
          completionAmount: 990.12
          bpsFee: 100
          conversionRate: 1
          volumeConsumption: 1051.36
          remainingPrevisionalVolume: 12345.76
          presetFeeId: e5b47b67-7ef9-45c3-abd3-79eac5551cc4
          fiatCurrency: eur
          blockchainAsset: eurc
          blockchainNetwork: ethereum
    TransactionVolumeBreakdown:
      type: object
      properties:
        currentMonth:
          type: object
          properties:
            limit:
              type: number
              format: float
              description: |
                The monthly volume limit of the user.<br /> The value is in US dollars. Only two decimal places are allowed.
            remaining:
              type: number
              format: float
              description: |
                The remaining volume of the user for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
            idle:
              type: number
              format: float
              description: |
                The volume consumed by the user in **IDLE** transactions for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
            initiated:
              type: number
              format: float
              description: |
                The volume consumed by the user in **INITIATED** transactions for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
            completed:
              type: number
              format: float
              description: |
                The volume consumed by the user in **COMPLETED** transactions for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
            total:
              type: number
              format: float
              description: |
                The total volume consumed by the user for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
        paths:
          type: array
          items:
            type: object
            properties:
              transactionType:
                type: string
                description: |
                  The type of the transaction path. Possible values are:
                    - OFFRAMP: The transaction is an off-ramping of blockchain asset to fiat currency,
                    - ONRAMP: The transaction is an on-ramping of fiat currency to blockchain asset.
                enum:
                  - OFFRAMP
                  - ONRAMP
              fiatFeGroup:
                type: string
                description: The fiat fee group of the transaction path. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat fee groups.
              blockchainFeeGroup:
                type: string
                description: The blockchain fee group of the transaction path. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain fee groups.
              currentMonth:
                type: object
                properties:
                  idle:
                    type: number
                    format: float
                    description: |
                      The volume consumed by the user in **IDLE** transactions for this path for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
                  initiated:
                    type: number
                    format: float
                    description: |
                      The volume consumed by the user in **INITIATED** transactions for this path for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
                  completed:
                    type: number
                    format: float
                    description: |
                      The volume consumed by the user in **COMPLETED** transactions for this path for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
                  total:
                    type: number
                    format: float
                    description: |
                      The total volume consumed by the user for this path for the current month.<br /> The value is in US dollars. Only two decimal places are allowed.
              currentDay:
                type: object
                properties:
                  idle:
                    type: number
                    format: float
                    description: |
                      The volume consumed by the user in **IDLE** transactions for this path for the current day.<br /> The value is in US dollars. Only two decimal places are allowed.
                  initiated:
                    type: number
                    format: float
                    description: |
                      The volume consumed by the user in **INITIATED** transactions for this path for the current day.<br /> The value is in US dollars. Only two decimal places are allowed.
                  completed:
                    type: number
                    format: float
                    description: |
                      The volume consumed by the user in **COMPLETED** transactions for this path for the current day.<br /> The value is in US dollars. Only two decimal places are allowed.
                  total:
                    type: number
                    format: float
                    description: |
                      The total volume consumed by the user for this path for the current day.<br />
                      The value is in US dollars. Only two decimal places are allowed.
                examples:
                  - currentMonth:
                      limit: 100000
                      remaining: 12345.76
                      idle: 3310.21
                      initiated: 2000
                      completed: 11925.81
                      total: 17236.01
                    paths:
                      - transactionType: OFFRAMP
                        fiatFeeGroup: USD
                        blockchainFeeGroup: USD_STABLECOIN
                        currentMonth:
                          idle: 1000
                          initiated: 2000
                          completed: 3000
                          total: 6000
                        currentDay:
                          idle: 100
                          initiated: 200
                          completed: 300
                          total: 600
                      - transactionType: ONRAMP
                        fiatFeeGroup: G10
                        blockchainFeeGroup: EUR_STABLECOIN
                        currentMonth:
                          idle: 2200
                          initiated: 0
                          completed: 8500
                          total: 10700
                        currentDay:
                          idle: 220
                          initiated: 0
                          completed: 850
                          total: 1070
      examples:
        - currentMonth:
            limit: 100000
            remaining: 12345.76
            idle: 3310.21
            initiated: 2000
            completed: 11925.81
            total: 17236.01
          paths:
            - transactionType: OFFRAMP
              fiatFeeGroup: USD
              blockchainFeeGroup: USD_STABLECOIN
              currentMonth:
                idle: 1000
                initiated: 2000
                completed: 3000
                total: 6000
              currentDay:
                idle: 100
                initiated: 200
                completed: 300
                total: 600
            - transactionType: ONRAMP
              fiatFeeGroup: G10
              blockchainFeeGroup: EUR_STABLECOIN
              currentMonth:
                idle: 2200
                initiated: 0
                completed: 8500
                total: 10700
              currentDay:
                idle: 220
                initiated: 0
                completed: 850
                total: 1070
    PresetFee:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the preset fee.
        feeDirection:
          type: string
          description: |
            The type of the fee. Possible values are:
              - OFFRAMP: The fee only concerns off-ramping of blockchain asset to fiat currency,
              - ONRAMP: The fee only concerns on-ramping of fiat currency to blockchain asset.
              - ONOFFRAMP: The fee concerns both on-ramping and off-ramping.
          enum:
            - OFFRAMP
            - ONRAMP
            - ONOFFRAMP
        fiatFeeGroup:
          type: string
          description: The fiat fee group of the preset fee. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat fee groups.
        blockchainFeeGroup:
          type: string
          description: The blockchain fee group of the preset fee. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain fee groups.
        configuration:
          type: object
          description: The configuration of the preset fee.
          oneOf:
            - type: object
              description: The same fee is applied to all transactions.
              properties:
                type:
                  type: string
                  enum:
                    - FLAT
                fee:
                  type: number
                  format: uint32
                  description: |
                    The fee in BPS (basis points) applied to any transaction for this path.<br />. The value is always positive.
            - type: object
              description: The fee is computed based on the monthly volume of the transactions for this path. The reference date is using the UTC timezone.
              properties:
                type:
                  type: string
                  enum:
                    - MONTHLY_VOLUME
                intermediaryLimits:
                  type: array
                  items:
                    type: object
                    properties:
                      to:
                        type: number
                        format: float
                        description: |
                          The upper limit for this range of monthly volume.<br /> The value is always positive. Only two decimal places are allowed.
                      fee:
                        type: number
                        format: uint32
                        description: |
                          The fee in BPS (basis points) applied in this range.<br /> The value is always positive.
                upperLimitFee:
                  type: number
                  format: uint32
                  description: |
                    The fee in BPS (basis points) applied to any transaction for this path above the last range.<br /> The value is always positive.
            - type: object
              description: The fee is computed based on the daily volume of the transactions for this path. The reference date is using the UTC timezone.
              properties:
                type:
                  type: string
                  enum:
                    - DAILY_VOLUME
                intermediaryLimits:
                  type: array
                  items:
                    type: object
                    properties:
                      to:
                        type: number
                        format: float
                        description: |
                          The upper limit for this range of monthly volume.<br /> The value is always positive. Only two decimal places are allowed.
                      fee:
                        type: number
                        format: uint32
                        description: |
                          The fee in BPS (basis points) applied in this range.<br /> The value is always positive.
                upperLimitFee:
                  type: number
                  format: uint32
                  description: |
                    The fee in BPS (basis points) applied to any transaction for this path above the last range.<br /> The value is always positive.
        createdAt:
          type: string
          format: date-time
          description: The creation date of the preset fee.
      examples:
        - id: e5b47b67-7ef9-45c3-abd3-79eac5551cc4
          transactionType: OFFRAMP
          fiatFeeGroup: USD
          blockchainFeeGroup: USD_STABLECOIN
          configuration:
            type: FLAT
            fee: 125
          createdAt: '2024-12-03T10:07:54.940Z'
        - id: 031d263c-8d19-4578-8701-8d2ed5035949
          transactionType: ONRAMP
          fiatFeeGroup: G10
          blockchainFeeGroup: EUR_STABLECOIN
          configuration:
            intermediaryLimits:
              - to: 10000
                fee: 125
              - to: 20000
                fee: 100
              - to: 50000
                fee: 75
            upperLimitFee: 50
          createdAt: '2024-12-01T15:07:54.940Z'
    FiatDepositInstruction:
      type: object
      properties:
        label:
          type: string
          description: The label of the deposit instruction.
        fiatCurrency:
          type: string
          description: The fiat currency of the bank account. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat currencies.
        bankName:
          type: string
          description: The name of the bank.
        countryCode:
          type: string
          description: The country code of the bank account. See [the list of supported](https://docs.rialtobridge.xyz/concepts) country codes.
        identifiers:
          type: object
          description: The identifiers of the bank account.
          properties:
            iban:
              type: string
              description: The IBAN of the bank account.
            bic:
              type: string
              description: The BIC of the bank account.
            intermediaryBic:
              type:
                - string
                - 'null'
              description: The intermediary BIC of the bank account.
        beneficiary:
          type: object
          description: The beneficiary of the bank account.
          properties:
            name:
              type: string
              description: The name of the beneficiary.
            address:
              type:
                - string
                - 'null'
              description: The address of the beneficiary.
            city:
              type:
                - string
                - 'null'
              description: The city of the beneficiary.
            postalCode:
              type: string
              description: The postal code of the beneficiary.
            countryCode:
              type: string
              description: The country code of the beneficiary. See [the list of supported](https://docs.rialtobridge.xyz/concepts) country codes.
        isSegregated:
          type: boolean
          description: The flag indicating if the bank account is segregated for the client.
      examples:
        - label: Rialto
          fiatCurrency: eur
          bankName: Commerzbank
          countryCode: DE
          identifiers:
            iban: DE89370400440532013000
            bic: COBADEFFXXX
            intermediaryBic: COBADEFFXXX
          beneficiary:
            name: Rialto
            address: Kaiserstraße 69
            city: Frankfurt am Main
            postalCode: '60329'
            countryCode: DE
          isSegregated: true
    BlockchainDepositInstruction:
      type: object
      properties:
        label:
          type: string
          description: The label of the deposit instruction.
        blockchainNetwork:
          type: string
          description: The blockchain network of the deposit instruction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchains.
        walletAddress:
          type: string
          description: The wallet address of the deposit instruction.
      examples:
        - label: Rialto
          blockchainNetwork: ethereum
          walletAddress: '0x9b7E335088762aD8061C04D08C37902ABC8ACb87'
    BankAccountIdentifiers:
      type: object
      description: The identifiers of the bank account.
      oneOf:
        - type: object
          properties:
            format:
              type: string
              enum:
                - IBAN
            iban:
              type: string
              description: The IBAN of the bank account.
            bic:
              type: string
              description: The BIC of the bank account.
        - type: object
          properties:
            format:
              type: string
              enum:
                - SWIFT
            accountNumber:
              type: string
              description: The account number of the bank account.
            swift:
              type: string
              description: The SWIFT of the bank account.
        - type: object
          properties:
            format:
              type: string
              enum:
                - SWIFT_MX
            clabe:
              type: string
              description: The CLABE of the bank account.
            bic:
              type: string
              description: The BIC of the bank account.
        - type: object
          properties:
            format:
              type: string
              enum:
                - ROUTING_NUMBER
            accountNumber:
              type: string
              description: The account number of the bank account.
            routingNumber:
              type: string
              description: The routing number of the bank account.
        - type: object
          properties:
            format:
              type: string
              enum:
                - SORT_CODE
            accountNumber:
              type: string
              description: The account number of the bank account.
            sortCode:
              type: string
              description: The sort code of the bank account.
        - type: object
          properties:
            format:
              type: string
              enum:
                - IN_INR
            accountNumber:
              type: string
              description: The account number of the bank account.
            ifsc:
              type: string
              description: The IFSC of the bank account.
        - type: object
          properties:
            format:
              type: string
              enum:
                - AU
            accountNumber:
              type: string
              description: The account number of the bank account.
            bsb:
              type: string
              description: The BSB of the bank account.
    BankAccount:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the bank account.
        label:
          type:
            - string
            - 'null'
          description: The label of the bank account.
        fiatCurrency:
          type: string
          description: The fiat currency of the bank account. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat currencies.
        countryCode:
          type: string
          description: The country code of the bank account. See [the list of supported](https://docs.rialtobridge.xyz/concepts) country codes.
        type:
          type: string
          description: |
            The type of the bank account. Possible values are:
              - PERSONAL: The bank account is owned by the user,
              - THIRD_PARTY: The bank account is owned by a third party, other than the user.
          enum:
            - PERSONAL
            - THIRD_PARTY
        identifiers:
          $ref: '#/components/schemas/BankAccountIdentifiers'
        thirdPartyBankAccountOwnerName:
          type:
            - string
            - 'null'
          description: |
            The name of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerAddress:
          type:
            - string
            - 'null'
          description: |
            The address of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerCity:
          type:
            - string
            - 'null'
          description: |
            The city of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerPostalCode:
          type:
            - string
            - 'null'
          description: |
            The postal code of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerCountryCode:
          type:
            - string
            - 'null'
          description: |
            The country code of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerDocuments:
          type:
            - array
            - 'null'
          description: |
            The keys of the documents of the owner of the bank account.<br /> Each key can be used in order to download the document.<br /> Only present if the bank account is of type **THIRD_PARTY**.
          items:
            type: string
        createdAt:
          type: string
          format: date-time
          description: The creation date of the bank account.
        approvedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: |
            The date when the bank account was approved.<br /> Only present if the bank account was approved.
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: |
            The date when the bank account was deleted.<br /> Only present if the bank account was deleted.
      examples:
        - id: 4be0fab5-d71c-4498-96bb-41c47080430e
          label: Main
          fiatCurrency: eur
          countryCode: FR
          type: PERSONAL
          identifiers:
            type: IBAN
            iban: FR1420041010050500013M02606
            bic: BDFEFRPPXXX
          thirdPartyBankAccountOwnerName: null
          thirdPartyBankAccountOwnerAddress: null
          thirdPartyBankAccountOwnerCity: null
          thirdPartyBankAccountOwnerPostalCode: null
          thirdPartyBankAccountOwnerCountryCode: null
          thirdPartyBankAccountOwnerDocuments: null
          createdAt: '2024-12-01T09:07:54.940Z'
          approvedAt: '2024-12-01T14:42:12.045Z'
          deletedAt: null
    CreateBankAccountPayload:
      type: object
      properties:
        label:
          type:
            - string
            - 'null'
          description: The label of the bank account.
        fiatCurrency:
          type: string
          description: The fiat currency of the bank account. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat currencies.
        countryCode:
          type: string
          description: The country code of the bank account.
        type:
          type: string
          description: |
            The type of the bank account. Possible values are:
              - PERSONAL: The bank account is owned by the user,
              - THIRD_PARTY: The bank account is owned by a third party, other than the user.
          enum:
            - PERSONAL
            - THIRD_PARTY
        identifiers:
          $ref: '#/components/schemas/BankAccountIdentifiers'
        thirdPartyBankAccountOwnerName:
          type:
            - string
            - 'null'
          description: |
            The name of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerAddress:
          type:
            - string
            - 'null'
          description: |
            The address of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerCity:
          type:
            - string
            - 'null'
          description: |
            The city of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerPostalCode:
          type:
            - string
            - 'null'
          description: |
            The postal code of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerCountryCode:
          type:
            - string
            - 'null'
          description: |
            The country code of the owner of the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
        thirdPartyBankAccountOwnerDocuments:
          type:
            - array
            - 'null'
          description: |
            The filenames of the documents of the owner of the bank account.<br /> The documents must be uploaded before creating the bank account.<br /> Only present if the bank account is of type **THIRD_PARTY**.
          items:
            type: string
      examples:
        - label: Main
          fiatCurrency: eur
          countryCode: FR
          type: PERSONAL
          identifiers:
            format: IBAN
            iban: FR1420041010050500013M02606
            bic: BDFEFRPPXXX
          thirdPartyBankAccountOwnerName: null
          thirdPartyBankAccountOwnerAddress: null
          thirdPartyBankAccountOwnerCity: null
          thirdPartyBankAccountOwnerPostalCode: null
          thirdPartyBankAccountOwnerCountryCode: null
          thirdPartyBankAccountOwnerDocuments: null
    BlockchainWallet:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the blockchain wallet.
        label:
          type:
            - string
            - 'null'
          description: The label of the blockchain wallet.
        blockchainNetwork:
          type: string
          description: The blockchain network of the wallet. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchains.
        address:
          type: string
          description: The address of the blockchain wallet.
        createdAt:
          type: string
          format: date-time
          description: The creation date of the blockchain wallet.
        approvedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: |
            The date when the blockchain wallet was approved.<br /> Only present if the blockchain wallet aws approved.
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: |
            The date when the blockchain wallet was deleted.<br /> Only present if the blockchain wallet was deleted.
      examples:
        - id: 3c42718a-5b6c-4858-a6b1-2e231deff900
          label: Main Ethereum Mainnet
          blockchainNetwork: ethereum
          address: '0x9b7E335088762aD8061C04D08C37902ABC8ACb87'
          createdAt: '2024-12-01T09:07:54.940Z'
          approvedAt: '2024-12-01T12:00:12.125Z'
          deletedAt: null
    CreateBlockchainWalletPayload:
      type: object
      properties:
        label:
          type:
            - string
            - 'null'
          description: The label of the blockchain wallet.
        blockchainNetwork:
          type: string
          description: The blockchain network of the wallet. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchains.
        address:
          type: string
          description: The address of the blockchain wallet.
      examples:
        - label: Main Ethereum Mainnet
          blockchainNetwork: ethereum
          address: '0x9b7E335088762aD8061C04D08C37902ABC8ACb87'
    SimulateFlatPresetFeeCreate:
      type: object
      properties:
        feeDirection:
          type: string
          description: |
            The type of the fee. Possible values are:
              - OFFRAMP: The fee only concerns off-ramping of blockchain asset to fiat currency,
              - ONRAMP: The fee only concerns on-ramping of fiat currency to blockchain asset.
              - ONOFFRAMP: The fee concerns both on-ramping and off-ramping.
          enum:
            - OFFRAMP
            - ONRAMP
            - ONOFFRAMP]
        type:
          type: string
          description: |
            The type of the fee. Possible values are:
              - FLAT: Flat fee % for each trade.
          enum:
            - FLAT
        fiatFeeGroup:
          type: string
          description: The fiat fee group of the preset fee. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat fee groups.
        blockchainFeeGroup:
          type: string
          description: The blockchain fee group of the preset fee. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain fee groups.
        fee:
          type: number
          format: uint32
          description: |
            The fee in BPS (basis points) applied in this range.<br /> The value is always positive.
      examples:
        - transactionType: OFFRAMP
          fiatFeeGroup: USD
          blockchainFeeGroup: USD_STABLECOIN
          type: FLAT
          fee: 125
    SimulateVolumePresetFeeCreate:
      type: object
      properties:
        transactionType:
          type: string
          description: |
            The type of the transaction. Possible values are:
              - OFFRAMP: The transaction is an off-ramping of blockchain asset to fiat currency,
              - ONRAMP: The transaction is an on-ramping of fiat currency to blockchain asset.
          enum:
            - OFFRAMP
            - ONRAMP
        type:
          type: string
          description: |
            The type of the fee. Possible values are:
              - DAILY_VOLUME: Volume fee based on the daily volume of the client,
              - MONTHLY_VOLUME: Volume fee based on the monthly volume of the client.
          enum:
            - DAILY_VOLUME
            - MONTHLY_VOLUME
        fiatFeeGroup:
          type: string
          description: The fiat fee group of the preset fee. See [the list of supported](https://docs.rialtobridge.xyz/concepts) fiat fee groups.
        blockchainFeeGroup:
          type: string
          description: The blockchain fee group of the preset fee. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain fee groups.
        limits:
          type: array
          items:
            type: object
            properties:
              to:
                type: number
                format: float
                description: |
                  The upper limit for this range of daily or monthly volume.<br /> The value is always positive. Only two decimal places are allowed.
              fee:
                type: number
                format: uint32
                description: |
                  The fee in BPS (basis points) applied in this range.<br /> The value is always positive.
        upperLimitFee:
          type: number
          format: uint32
          description: |
            The fee in BPS (basis points) applied to any transaction for this path above the last range.<br /> The value is always positive.
      examples:
        - transactionType: ONRAMP
          fiatFeeGroup: G10
          blockchainFeeGroup: EUR_STABLECOIN
          type: MONTHLY_VOLUME
          limits:
            - to: 10000
              fee: 125
            - to: 20000
              fee: 100
            - to: 50000
              fee: 75
          upperLimitFee: 50
  securitySchemes:
    api_key:
      type: apiKey
      name: RIALTO_API_KEY
      in: header
  parameters:
    filterTransactionFrom:
      name: from
      in: query
      required: false
      description: |
        The date from which the transactions are fetched.<br /> The comparison is made using the `createdAt` field of the transactions.<br /> The comparison is **inclusive**, meaning that the transactions created at the provided date are **included** in the result.<br /> The value is in ISO 8601 format.<br /> If the value is not provided, the transactions are fetched from the beginning.
      schema:
        type: string
        format: date-time
      example: '2024-12-01T09:07:54.940Z'
    filterTransactionTo:
      name: to
      in: query
      required: false
      description: |
        The date to which the transactions are fetched.<br /> The comparison is made using the `createdAt` field of the transactions.<br /> The comparison is **exlusive**, meaning that the transactions created at the provided date are **not included** in the result.<br /> The value is in ISO 8601 format.<br /> If the value is not provided, the transactions are fetched until now.
      schema:
        type: string
        format: date-time
      example: '2024-12-03T10:07:54.940Z'
    filterTransactionLimit:
      name: limit
      in: query
      required: false
      description: |
        The maximum number of transactions to fetch.<br /> The value must be a positive integer.<br /> If the value is not provided, the default value is 10.<br/> The maximum value is 100.
      schema:
        type: integer
        format: int32
      example: 10
    quoteTransactionType:
      name: transactionType
      in: query
      required: true
      description: |
        The type of the transaction. Possible values are:
          - OFFRAMP: The transaction is an off-ramping of blockchain asset to fiat currency,
          - ONRAMP: The transaction is an on-ramping of fiat currency to blockchain asset.
      schema:
        type: string
        enum:
          - OFFRAMP
          - ONRAMP
      example: OFFRAMP
    quoteTransactionAmount:
      name: transactionAmount
      in: query
      required: true
      description: |
        The amount of the transaction.<br /> The value is always positive.
      schema:
        type: number
        format: float
      example: 1000.12
    quoteBankAccountId:
      name: bankAccountId
      in: query
      required: true
      description: The identifier of the selected bank account for the transaction.
      schema:
        type: string
        format: uuid
      example: f086ab63-c037-4726-9292-18760de385b0
    quoteBlockchainWalletId:
      name: blockchainWalletId
      in: query
      required: true
      description: The identifier of the selected blockchain wallet for the transaction.
      schema:
        type: string
        format: uuid
      example: c05ae486-44bf-4672-99e1-bc45febf66a4
    quoteBlockchainAsset:
      name: blockchainAsset
      in: query
      required: true
      description: The blockchain asset of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain assets.
      schema:
        type: string
      example: eurc
  examples:
    transactionListResponse:
      value:
        items:
          - id: 1e33e76d-3f80-4dc3-94ba-21980059fc13
            transactionType: OFFRAMP
            status: COMPLETED
            idempotencyKey: d55b2408-5688-4b44-bafa-b15bb2d548ba
            originalAmount: 1000.12
            fiatCurrency: usd
            blockchainAsset: usdc
            blockchainNetwork: ethereum
            blockchainWalletId: 3c42718a-5b6c-4858-a6b1-2e231deff900
            bankAccountId: 4be0fab5-d71c-4498-96bb-41c47080430e
            additionalDetails:
              sourceOfFundsDocuments: []
              businessJustificationDocuments: []
              comments: This is a comment
            initiationInstruction:
              blockchainWallet:
                address: '0x9b7E335088762aD8061C04D08C37902ABC8ACb87'
                blockchainNetwork: ethereum
              bankAccount: null
              wireReference: null
            createdAt: '2025-01-01T13:30:12.640Z'
            initiation:
              amount: 1000.12
              bpsFee: 125
              timestamp: '2025-01-01T14:10:56.110Z'
            completion:
              amount: 987.61
              conversionRate: 1
              volumeConsumption: 1000.12
              transactionHash: null
              wireReference: R/OF/C96bjPYxIIJOo3fqz79u
              timestamp: '2025-01-01T15:25:08.310Z'
            cancelledAt: null
            dismissal: null
            clientId: 569fd88c-20a4-46c4-b8c3-328806cc12a4
            clientType: INDIVIDUAL
          - id: f7e35a91-53ae-4b8b-b629-9ae047777e06
            transactionType: ONRAMP
            status: IDLE
            idempotencyKey: 77d78db6-cb4f-4e8d-8bb4-56bd67198af2
            originalAmount: 2398
            fiatCurrency: eur
            blockchainAsset: eurc
            blockchainNetwork: ethereum
            blockchainWalletId: 0a5c25ab-2a92-4810-93cf-ab92bbf2240d
            bankAccountId: d2b9dd72-14e7-4b6e-b0d7-f6afe4beb750
            additionalDetails:
              sourceOfFundsDocuments: []
              businessJustificationDocuments: []
              comments: This is a comment
            initiationInstruction:
              blockchainWallet: null
              bankAccount:
                countryCode: DE
                iban: DE89370400440532013000
                bic: COBADEFFXXX
                intermediaryBic: COBADEFF
                beneficiary:
                  name: John Doe
                  address: 123 Main Street
                  city: Berlin
                  postcode: '10115'
                  countryCode: DE
              wireReference: R/ON/C96bjPYxIIJOo3fqz79u
            createdAt: '2024-12-08T08:07:12.640Z'
            initiation: null
            completion: null
            cancelledAt: null
            dismissal: null
            clientId: 569fd88c-20a4-46c4-b8c3-328806cc12a4
            clientType: INDIVIDUAL
        hasNextPage: false
    createdTransaction:
      value:
        id: f7e35a91-53ae-4b8b-b629-9ae047777e06
        transactionType: ONRAMP
        status: IDLE
        idempotencyKey: 77d78db6-cb4f-4e8d-8bb4-56bd67198af2
        originalAmount: 2398
        fiatCurrency: eur
        blockchainAsset: eurc
        blockchainNetwork: ethereum
        blockchainWalletId: 0a5c25ab-2a92-4810-93cf-ab92bbf2240d
        bankAccountId: d2b9dd72-14e7-4b6e-b0d7-f6afe4beb750
        additionalDetails:
          sourceOfFundsDocuments: []
          businessJustificationDocuments: []
          comments: This is a comment
        initiationInstruction:
          blockchainWallet: null
          bankAccount:
            countryCode: DE
            iban: DE89370400440532013000
            bic: COBADEFFXXX
            intermediaryBic: COBADEFF
            beneficiary:
              name: John Doe
              address: 123 Main Street
              city: Berlin
              postcode: '10115'
              countryCode: DE
          wireReference: R/ON/C96bjPYxIIJOo3fqz79u
        createdAt: '2024-12-08T08:07:12.640Z'
        initiation: null
        completion: null
        cancelledAt: null
        dismissal: null
        clientId: 569fd88c-20a4-46c4-b8c3-328806cc12a4
        clientType: INDIVIDUAL
    cancelledTransaction:
      value:
        id: d4cc6e0e-0045-4d54-befa-0defbaf15e2a
        transactionType: ONRAMP
        status: CANCELLED
        idempotencyKey: 8d1d2f07-f458-41d2-8adc-3987c522498f
        originalAmount: 1230
        fiatCurrency: eur
        blockchainAsset: eurc
        blockchainNetwork: ethereum
        blockchainWalletId: 0a5c25ab-2a92-4810-93cf-ab92bbf2240d
        bankAccountId: d2b9dd72-14e7-4b6e-b0d7-f6afe4beb750
        additionalDetails:
          sourceOfFundsDocuments: []
          businessJustificationDocuments: []
          comments: This is a comment
        initiationInstruction:
          blockchainWallet: null
          bankAccount:
            countryCode: DE
            iban: DE89370400440532013000
            bic: COBADEFFXXX
            intermediaryBic: COBADEFF
            beneficiary:
              name: John Doe
              address: 123 Main Street
              city: Berlin
              postcode: '10115'
              countryCode: DE
          wireReference: R/ON/Xsyq6Pi6j29q8bbAU2H6
        createdAt: '2024-12-01T09:07:54.940Z'
        initiation: null
        completion: null
        cancelledAt: '2024-12-01T11:00:38.040Z'
        dismissal: null
        clientId: 569fd88c-20a4-46c4-b8c3-328806cc12a4
        clientType: INDIVIDUAL
  requestBodies:
    CreateTransactionBody:
      description: A JSON object containing the transaction parameters
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              transactionType:
                type: string
                description: |
                  The type of the transaction. Possible values are:
                    - OFFRAMP: The transaction is an off-ramping of blockchain asset to fiat currency,
                    - ONRAMP: The transaction is an on-ramping of fiat currency to blockchain asset.
                enum:
                  - OFFRAMP
                  - ONRAMP
              amount:
                type: number
                format: float
                description: |
                  The amount of the transaction.<br /> The value is always positive.
              blockchainAsset:
                type: string
                description: The blockchain asset of the transaction. See [the list of supported](https://docs.rialtobridge.xyz/concepts) blockchain assets.
              bankAccountId:
                type: string
                format: uuid
                description: The identifier of the selected bank account for the transaction.
              blockchainWalletId:
                type: string
                format: uuid
                description: The identifier of the selected blockchain wallet for the transaction
              sourceOfFundsDocuments:
                type: array
                items:
                  type: string
                description: |
                  The filenames of the documents related to the source of funds of the transaction.<br /> The documents must be uploaded before submitting the onboarding.<br /> Field is optional.
              businessJustificationDocuments:
                type: array
                items:
                  type: string
                description: |
                  The filenames of the documents related to the business justification of the transaction.<br /> The documents must be uploaded before submitting the onboarding.<br /> Field is optional.
              comments:
                type: string
                description: |
                  Comments added by the user at the creation of the transaction.<br /> Field is optional.
            required:
              - transactionType
              - amount
              - blockchainAsset
              - bankAccountId
              - blockchainWalletId
            examples:
              - transactionType: ONRAMP
                amount: 2398
                blockchainAsset: eurc
                bankAccountId: d2b9dd72-14e7-4b6e-b0d7-f6afe4beb750
                blockchainWalletId: 0a5c25ab-2a92-4810-93cf-ab92bbf2240d
                sourceOfFundsDocuments: []
                businessJustificationDocuments: []
                comments: This is a comment
    CreateBankAccount:
      description: The payload to create a bank account.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateBankAccountPayload'
            required:
              - fiatCurrency
              - countryCode
              - type
              - identifiers
    CreateBlockchainWallet:
      required: true
      description: The parameters to create a blockchain wallet.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateBlockchainWalletPayload'
            required:
              - blockchainNetwork
              - address
    PreSignedDownloadUrls:
      description: The request body for generating pre-signed URLs for downloading documents.
      required: true
      content:
        application/json:
          schema:
            type: object
            properties:
              keys:
                type: array
                description: The list of keys for which to generate pre-signed URLs.
                items:
                  type: string
            examples:
              - keys:
                  - rialto-clients/entities/d61b6b30-0bf6-4fe7-9110-905b78f938df/26f7380a-dbf7-46a4-9568-7881cc8bfce7_file1.pdf
    SimulatePresetFeeCreate:
      description: A JSON object containing the preset fee parameters
      required: true
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/SimulateFlatPresetFeeCreate'
              - $ref: '#/components/schemas/SimulateVolumePresetFeeCreate'
  responses:
    PresetFees:
      description: A JSON array of preset fees.
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/PresetFee'
            examples:
              - - id: e5b47b67-7ef9-45c3-abd3-79eac5551cc4
                  feeDirection: OFFRAMP
                  fiatFeeGroup: USD
                  blockchainFeeGroup: USD_STABLECOIN
                  configuration:
                    type: FLAT
                    fee: 125
                  createdAt: '2024-12-03T10:07:54.940Z'
                - id: 031d263c-8d19-4578-8701-8d2ed5035949
                  feeDirection: ONRAMP
                  fiatFeeGroup: G10
                  blockchainFeeGroup: EUR_STABLECOIN
                  configuration:
                    type: MONTHLY_VOLUME
                    intermediaryLimits:
                      - to: 10000
                        fee: 125
                      - to: 20000
                        fee: 100
                      - to: 50000
                        fee: 75
                    upperLimitFee: 50
                  createdAt: '2024-12-01T15:07:54.940Z'
    PresetFeeById:
      description: A preset fee.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PresetFee'
