BanQu Asset Transactions API

Asset exchange/buy/sell transactions that consist of multiple asset transfers

Operations 11

GET /transactions
POST /transactions
POST /transactions/{transactionId}/finalize
GET /transactions/{transactionId}
DELETE /transactions/{transactionId}
GET /transactions/{transactionId}/operations
GET /transactions/{transactionId}/operations/{operationId}/history
GET /transactions/{transactionId}/operations/{operationId}/history/schema
GET /transactions/{transactionId}/history
GET /transactions/{transactionId}/history/schema
POST /transactions/batch

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

banqu-asset-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: BanQu Asset Transactions API
  version: 3.3.4
  description: The BanQu API is organized around [REST](http://en.wikipedia.org/wiki/Representational_State_Transfer). Our API is designed to have predictable, resource-oriented URLs and to use HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP verbs, which can be understood by off-the-shelf HTTP clients, and [JSON](http://www.json.org) for input and output.
servers:
- url: https://banqu.app:443/api/v1
security:
- Bearer: []
tags:
- name: Asset Transactions
  description: Asset exchange/buy/sell transactions that consist of multiple asset transfers
paths:
  /transactions:
    get:
      description: List own transactions
      tags:
      - Asset Transactions
      parameters:
      - $ref: '#/components/parameters/AssetCodes'
      - $ref: '#/components/parameters/TransactionKind'
      - name: owner
        in: query
        schema:
          type: string
          enum:
          - own
          - sub
          - any
        description: Filter transactions by owner. One of [me, sub] for own and sub account transactions. If omitted, not filtered by owner
      - name: accountIds
        in: query
        schema:
          type: string
        description: Filter transactions by other party accountId. Comma-separated list
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortBy'
      responses:
        '200':
          description: List of transactions
          content:
            application/json:
              schema:
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transaction'
                  codes:
                    type: array
                    items:
                      type: string
                  totalCount:
                    type: number
          headers:
            X-Total-Count:
              schema:
                type: number
              description: Total number of records available for paging purposes
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
    post:
      description: Initiate transaction
      tags:
      - Asset Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransactionRequest'
      responses:
        '201':
          $ref: '#/components/responses/201'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /transactions/{transactionId}/finalize:
    post:
      description: Process draft payments
      tags:
      - Asset Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinalizeDraftTransactionRequest'
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /transactions/{transactionId}:
    get:
      description: Get transaction details
      tags:
      - Asset Transactions
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Transaction details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeTransaction'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
    delete:
      description: Revert transaction
      tags:
      - Asset Transactions
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevertTransaction'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /transactions/{transactionId}/operations:
    get:
      description: List transaction operations.
      tags:
      - Asset Transactions
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      responses:
        '200':
          description: 'List of asset operations: transfers, deposits, transformations and transformation results'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AnyAssetOperation'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /transactions/{transactionId}/operations/{operationId}/history:
    get:
      description: Get visible chain of custody for the requested transaction
      tags:
      - Asset Transactions
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      - in: path
        name: operationId
        schema:
          type: string
        required: true
      - in: query
        name: timeout
        schema:
          type: number
          minimum: 1
          maximum: 3600000
      - in: query
        name: format
        schema:
          type: string
          enum:
          - xlsx
      - in: query
        name: theme
        schema:
          $ref: '#/components/schemas/ExcelTableTheme'
      responses:
        '200':
          description: 'List of asset operations: transfers, deposits, transformations and transformation results'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChainedOperation'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /transactions/{transactionId}/operations/{operationId}/history/schema:
    get:
      description: Get JSON schema for operations from chain of custody for the requested transaction
      tags:
      - Asset Transactions
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      - in: path
        name: operationId
        schema:
          type: string
        required: true
      - in: query
        name: format
        schema:
          type: string
          enum:
          - xlsx
      responses:
        '200':
          description: JSON schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonSchema'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /transactions/{transactionId}/history:
    get:
      description: Get visible chain of custody for the requested transaction
      tags:
      - Asset Transactions
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      - in: query
        name: timeout
        schema:
          type: number
          minimum: 1
          maximum: 3600000
      - in: query
        name: format
        schema:
          type: string
          enum:
          - xlsx
      responses:
        '200':
          description: 'List of asset operations: transfers, deposits, transformations and transformation results'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChainedOperation'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /transactions/{transactionId}/history/schema:
    get:
      description: Get JSON schema for operations of chain of custody for the requested transaction
      tags:
      - Asset Transactions
      parameters:
      - in: path
        name: transactionId
        schema:
          type: string
        required: true
      - in: query
        name: format
        schema:
          type: string
          enum:
          - xlsx
      responses:
        '200':
          description: JSON schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonSchema'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
  /transactions/batch:
    post:
      description: Initiate batch transaction
      tags:
      - Asset Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBatchTransactionRequest'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
components:
  schemas:
    PaymentDestinationType:
      title: Destination Type
      description: mobile for payments by phone number; payCode for 6DOT50 partner transfer
      enum:
      - mobile
      - new-mobile
      - payCode
    GeoCoordinates:
      type: object
      properties:
        lat:
          type: number
          format: double
          minimum: -90
          maximum: 90
        lon:
          type: number
          format: double
          minimum: -180
          maximum: 180
      additionalProperties: false
      required:
      - lat
      - lon
      example:
        lat: 37.7749
        lon: -122.4194
    FinalizeDraftTransactionRequest:
      type: array
      minItems: 1
      items:
        anyOf:
        - $ref: '#/components/schemas/PaymentAdjustmentOperation'
        - title: Persisted payment adjustment operation
          description: Persisted payment adjustment operation with changed quantity
          type: object
          properties:
            id:
              $ref: '#/components/schemas/Id'
            quantity:
              type: number
          additionalProperties: false
          required:
          - id
          - quantity
        - title: Persisted asset operation
          type: object
          properties:
            id:
              $ref: '#/components/schemas/Id'
            quantity:
              type: number
              minimum: 0
            price:
              type: number
              minimum: 0
            priceCurrency:
              type: string
              minLength: 3
              maxLength: 3
              example: USD
            properties:
              type: object
              additionalProperties: true
          additionalProperties: false
          required:
          - id
          - quantity
        - $ref: '#/components/schemas/PaymentOperation'
        - title: Persisted payment operation
          description: Persisted payment operation with changed quantity or/and destination provider
          type: object
          properties:
            id:
              $ref: '#/components/schemas/Id'
            quantity:
              type: number
              minimum: 0
            destinationProvider:
              $ref: '#/components/schemas/PaymentDestinationProvider'
            destinationId:
              $ref: '#/components/schemas/PaymentDestinationId'
            destinationType:
              $ref: '#/components/schemas/PaymentDestinationType'
          additionalProperties: false
          required:
          - quantity
          - id
        - $ref: '#/components/schemas/AssetTransferOperation'
    TransformingAsset:
      type: object
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/Id'
        code:
          $ref: '#/components/schemas/AssetCode'
        description:
          $ref: '#/components/schemas/AssetDescription'
        uom:
          $ref: '#/components/schemas/AssetUom'
      required:
      - id
      - code
      - uom
    ExchangeTransaction:
      type: object
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/ImmutableId'
        allCodes:
          type: array
          items:
            type: string
        assetIds:
          type: array
          items:
            type: string
        receiverId:
          $ref: '#/components/schemas/Id'
        type:
          type: string
          enum:
          - batch
          - trade
          - exchange
          - transfer
        unconfirmedAssetIds:
          type: array
          items:
            $ref: '#/components/schemas/Id'
        destinationProvider:
          $ref: '#/components/schemas/PaymentDestinationProvider'
        destinationId:
          $ref: '#/components/schemas/PaymentDestinationId'
        destinationType:
          $ref: '#/components/schemas/PaymentDestinationType'
        initiatedBy:
          $ref: '#/components/schemas/TransactionParty'
        initiatedByUser:
          allOf:
          - $ref: '#/components/schemas/TransactionParty'
          - readOnly: true
        sender:
          $ref: '#/components/schemas/TransactionParty'
        receiver:
          $ref: '#/components/schemas/TransactionParty'
        agency:
          $ref: '#/components/schemas/TransactionParty'
        agent:
          $ref: '#/components/schemas/TransactionParty'
        qty:
          type: number
          exclusiveMinimum: 0
        price:
          type: number
          minimum: 0
        priceCurrency:
          type: string
          minLength: 3
          maxLength: 3
          example: USD
        sent:
          type: number
          readOnly: true
        claimed:
          type: number
          readOnly: true
        received:
          type: number
          readOnly: true
        properties:
          type: object
        message:
          type: string
        transactionId:
          type: string
        direction:
          type: string
        code:
          type: string
        uom:
          $ref: '#/components/schemas/AssetUom'
        description:
          type: string
        initiatedByUserId:
          type: string
        assetAttachments:
          $ref: '#/components/schemas/Attachments'
        participants:
          type: array
          items:
            type: string
      required:
      - receiverId
      - qty
    AssetDepositTransaction:
      type: object
      properties:
        description:
          type: string
        holderId:
          type: string
        holder:
          $ref: '#/components/schemas/TransactionParty'
        type:
          type: string
          enum:
          - deposit
        id:
          $ref: '#/components/schemas/Id'
        transactionId:
          $ref: '#/components/schemas/Id'
        sent:
          type: number
        qty:
          type: number
        creatorId:
          $ref: '#/components/schemas/Id'
        creator:
          $ref: '#/components/schemas/TransactionParty'
        code:
          type: string
        assetIds:
          type: array
          items:
            $ref: '#/components/schemas/Id'
        allCodes:
          type: array
          items:
            type: string
        transfers:
          type: array
          items:
            type: string
        participants:
          type: array
          items:
            $ref: '#/components/schemas/Id'
        location:
          $ref: '#/components/schemas/GeoCoordinates'
      readOnly: true
      required:
      - holderId
      - holder
      - type
      - id
      - transactionId
      - sent
      - qty
      - creatorId
      - creator
      - code
      - assetIds
      - allCodes
      - transfers
      - participants
    PaymentAdjustmentOperation:
      title: Payment Adjustment
      description: Change transaction amount using global or asset related adjustments
      type: object
      additionalProperties: false
      properties:
        paymentAdjustmentId:
          type: string
          minLength: 1
        appliedToAssetId:
          $ref: '#/components/schemas/Id'
        quantity:
          type: number
          minimum: 0
      required:
      - paymentAdjustmentId
      - quantity
    Attachments:
      type: array
      items:
        $ref: '#/components/schemas/Attachment'
    PaymentDestination:
      oneOf:
      - $ref: '#/components/schemas/AssetMobileDestination'
      - $ref: '#/components/schemas/AssetAgencyDestination'
    AssetDescription:
      type: string
      minLength: 0
      maxLength: 200
    ImmutableTimestamp:
      type: number
      readOnly: true
      description: Number of milliseconds elapsed since January 1, 1970 00:00:00 UTC
      example: 1568894551000
    ExcelTableTheme:
      type: string
      enum:
      - TableStyleLight1
      - TableStyleLight2
      - TableStyleLight3
      - TableStyleLight4
      - TableStyleLight5
      - TableStyleLight6
      - TableStyleLight7
      - TableStyleLight8
      - TableStyleLight9
      - TableStyleLight10
      - TableStyleLight11
      - TableStyleLight12
      - TableStyleLight13
      - TableStyleLight14
      - TableStyleLight15
      - TableStyleLight16
      - TableStyleLight17
      - TableStyleLight18
      - TableStyleLight19
      - TableStyleLight20
      - TableStyleLight21
      - TableStyleMedium1
      - TableStyleMedium2
      - TableStyleMedium3
      - TableStyleMedium4
      - TableStyleMedium5
      - TableStyleMedium6
      - TableStyleMedium7
      - TableStyleMedium8
      - TableStyleMedium9
      - TableStyleMedium10
      - TableStyleMedium11
      - TableStyleMedium12
      - TableStyleMedium13
      - TableStyleMedium14
      - TableStyleMedium15
      - TableStyleMedium16
      - TableStyleMedium17
      - TableStyleMedium18
      - TableStyleMedium19
      - TableStyleMedium20
      - TableStyleMedium21
      - TableStyleMedium22
      - TableStyleMedium23
      - TableStyleMedium24
      - TableStyleMedium25
      - TableStyleMedium26
      - TableStyleMedium27
      - TableStyleMedium28
      - TableStyleDark1
      - TableStyleDark2
      - TableStyleDark3
      - TableStyleDark4
      - TableStyleDark5
      - TableStyleDark6
      - TableStyleDark7
      - TableStyleDark8
      - TableStyleDark9
      - TableStyleDark10
      - TableStyleDark11
    AssetUom:
      title: Asset Unit of Measurement
      type: string
      enum:
      - BR
      - BO
      - BX
      - BU
      - CN
      - CA
      - CH
      - DO
      - EA
      - FO
      - FT
      - GA
      - GR
      - HR
      - JA
      - KG
      - KK
      - LT
      - Q3
      - MR
      - MG
      - M4
      - OZ
      - PK
      - PR
      - PC
      - LB
      - SJ
      - VS
      - YD
      example: KG
    PaymentOperation:
      title: Payment
      type: object
      additionalProperties: false
      properties:
        isDraft:
          type: boolean
          enum:
          - false
          writeOnly: true
        assetId:
          $ref: '#/components/schemas/Id'
        quantity:
          title: Payment Amount
          type: number
          minimum: 0
        senderId:
          $ref: '#/components/schemas/Id'
        receiverId:
          $ref: '#/components/schemas/Id'
        destinationProvider:
          $ref: '#/components/schemas/PaymentDestinationProvider'
        destinationId:
          $ref: '#/components/schemas/PaymentDestinationId'
        destinationType:
          $ref: '#/components/schemas/PaymentDestinationType'
      required:
      - senderId
      - receiverId
      - assetId
      - quantity
      - destinationProvider
    PaymentDestinationProvider:
      title: Payment Destination Provider
      description: Payment provider where the payment should be delivered to
      type: string
      enum:
      - banqu-agency
      - mtn-zambia
      - 6dot50pay-zaf
      - mtn-uganda
      - tigo-tanzania
      - celbux-zaf
      - airtel
      - zamtel
      - vodacom
    TransactionParty:
      type: object
      readOnly: true
      properties:
        id:
          $ref: '#/components/schemas/ImmutableId'
        name:
          type: string
          readOnly: true
        photoUrl:
          type: string
          format: url
          readOnly: true
        photoEtag:
          type: string
          readOnly: true
        isOrg:
          type: boolean
    AssetTransferOperation:
      type: object
      title: Asset Transfer
      description: Movement of some asset amount between two accounts, denoted `sender` and `receiver`
      properties:
        isDraft:
          type: boolean
          enum:
          - false
          writeOnly: true
        id:
          $ref: '#/components/schemas/ImmutableId'
        transactionId:
          $ref: '#/components/schemas/ImmutableId'
        direction:
          title: Transfer Direction
          type: string
          enum:
          - in
          - out
          readOnly: true
        assetId:
          $ref: '#/components/schemas/Id'
        exchangingAssetId:
          allOf:
          - $ref: '#/components/schemas/Id'
          - description: ID of the asset being used as a payment for the current transfer
        code:
          allOf:
          - $ref: '#/components/schemas/AssetCode'
          - readOnly: true
        description:
          allOf:
          - $ref: '#/components/schemas/AssetDescription'
          - readOnly: true
        uom:
          allOf:
          - $ref: '#/components/schemas/AssetUom'
          - readOnly: true
        qty:
          title: Quantity
          type: number
          example: 1
          readOnly: true
        quantity:
          title: Amount to be transferred
          type: number
          minimum: 0
          writeOnly: true
        isCredit:
          title: Is Credit Asset
          type: boolean
          description: Indicates if "Credit" type of asset was transferred
          readOnly: true
        sent:
          $ref: '#/components/schemas/ImmutableTimestamp'
        claimToken:
          type: string
          readOnly: true
        hasClaimToken:
          type: boolean
          readOnly: true
        claimed:
          $ref: '#/components/schemas/ImmutableTimestamp'
        received:
          $ref: '#/components/schemas/ImmutableTimestamp'
        message:
          title: Message to Receiver
          type: string
          description: Optional message for transfer receiver
          maxLength: 1024
        price:
          title: Asset Price
          type: number
          minimum: 0
        priceCurrency:
          title: Asset Price Currency
          type: string
          minLength: 3
          maxLength: 3
          example: USD
        sender:
          title: Sender
          type: object
          properties:
            id:
              title: Sender ID
              type: string
              minLength: 32
              maxLength: 32
              example: '00000000000000000000000000000000'
            name:
              title: Sender Name
              type: string
            isOrg:
              title: Sender is Org
              type: boolean
            externalId:
              title: External Id
              type: string
          readOnly: true
        senderId:
          allOf:
          - $ref: '#/components/schemas/Id'
          - writeOnly: true
        receiver:
          type: object
          title: Receiver
          properties:
            id:
              title: Receiver ID
              type: string
              minLength: 32
              maxLength: 32
              example: '00000000000000000000000000000000'
            name:
              title: Receiver Name
              type: string
            isOrg:
              title: Receiver is Org
              type: boolean
            photoUrl:
              title: Receiver Photo
              type: string
              format: url
            photoEtag:
              title: Receiver Photo ETag
              type: string
            externalId:
              title: External Id
              type: string
          readOnly: true
        receiverId:
          allOf:
          - $ref: '#/components/schemas/Id'
          - writeOnly: true
        destination:
          $ref: '#/components/schemas/PaymentDestination'
        initiatedBy:
          type: object
          title: Initiated By
          description: Account that initiated the transfer
          properties:
            id:
              $ref: '#/components/schemas/ImmutableId'
            name:
              title: Initiated By
              type: string
          readOnly: true
        initiatedByUser:
          type: object
          title: Initiated By User
          description: User that initiated the transfer
          properties:
            id:
              title: Initiated By User ID
              type: string
              minLength: 32
              maxLength: 32
              example: '00000000000000000000000000000000'
            name:
              title: Initiated By User
              type: string
          readOnly: true
        agency:
          type: object
          title: Agency
          description: For transfers sent to a BanQu Agency, the field contains Agency account that made the cash out
          properties:
            id:
              title: Agency ID
              type: string
              minLength: 32
              maxLength: 32
              example: '00000000000000000000000000000000'
            name:
              type: string
            address:
              type: string
          readOnly: true
        agent:
          type: object
          title: Agent
          description: For transfers sent to a BanQu Agency, the field contains Agent that made the cash out
          properties:
            id:
              title: Agent ID
              type: string
              minLength: 32
              maxLength: 32
              example: '00000000000000000000000000000000'
            name:
              title: Agent Name
              type: string
          readOnly: true
        properties:
          type: object
          title: Transfer Properties
          description: Key-value pairs with custom transfer properties
          additionalProperties: true
          example:
            poNumber: '000001'
            stockCode: 7b35e21b717844
        assetAttachments:
          allOf:
          - $ref: '#/components/schemas/Attachments'
          - readOnly: true
        draft:
          type: boolean
          description: Flag that indicates the transfer is not completed. Usually until it is confirmed by a receiver
          readOnly: true
        sourceOperations:
          $ref: '#/components/schemas/SourceOperations'
        explicitAvailableQty:
          type: number
          description: Amount that wasn't yet used as an explicit source for another operation over same asset in receiver's account. Confirmation with a changed quantity affects this number too
          readOnly: true
        availableQty:
          type: number
          description: Amount that wasn't yet used as an explicit and/or implicit source for another operation over same asset in receiver's account
          readOnly: true
        receivedQty:
          type: number
          description: Amount that was confirmed by receiver. Undefined until confirmation
          readOnly: true
        receiverComment:
          type: string
          description: Optional text message from the user who confirmed transfer
          readOnly: true
        partiallyConfirmedQty:
          type: number
          description: Defines absolute confirmed quantity of a partially confirmed transfer. Example, initial transfer has amount 10kg. It was split into 3kg and 7 kg transfers upstream. The last transfer was confirmed at 90%. partiallyConfirmedQty will equal 6.3kg (90% of 7kg). partiallyConfirmedShare will equal 0.9
          readOnly: true
        partiallyConfirmedShare:
          type: number
          description: A transfer amount can be explicitly sourced into different batches (upstream). When cascade confirmation is ON this can result in partial confirmation of initial transfer quantity. This property defines what fraction of this transfer was confirmed
          readOnly: true
        sourcesCount:
          allOf:
          - $ref: '#/components/schemas/SourcesCount'
          - readOnly: true
        effectiveDate:
          $ref: '#/components/schemas/EffectiveDate'
        effectiveLocation:
          $ref: '#/components/schemas/EffectiveLocation'
      additionalProperties: false
      required:
      - senderId
      - receiverId
      - assetId
      - quantity
    Id:
      title: Id
      type: string
      minLength: 32
      maxLength: 32
      example: '00000000000000000000000000000000'
    CreateTransactionRequest:
      type: array
      minItems: 1
      items:
        oneOf:
        - $ref: '#/components/schemas/AssetTransferOperation'
        - $ref: '#/components/schemas/PaymentOperation'
        - $ref: '#/components/schemas/DraftPaymentOperation'
        - $ref: '#/components/schemas/PaymentAdjustmentOperation'
      example:
      - assetId: 0d903320a0c5494d85c325fc4936dcad
        exchangingAssetId: 2992356a55b242f2a97b140d46930ffa
        quantity: 2000
        senderId: 247521e4ce06472ebaf5bdf08d3c4a3e
        receiverId: 8f4f517528464f428afddce6880128b6
        properties:
          distance: 150
        price: 1.4
        priceCurrency: USD
      - isDraft: false
        assetId: 2992356a55b242f2a97b140d46930ffa
        quantity: 2800
        senderId: 8f4f517528464f428afddce6880128b6
        receiverId: 247521e4ce06472ebaf5bdf08d3c4a3e
    EffectiveLocation:
      allOf:
      - $ref: '#/components/schemas/GeoCoordinates'
      - title: Effective Transfer Geo Location
        description: The effective location coordinates of a transfer instead of an automatically determined
    RevertTransaction:
      type: object
      properties:
        reason:
          type: string
          minLength: 1
        effectiveDate:
          $ref: '#/components/schemas/EffectiveDate'
        effectiveLocation:
          $ref: '#/components/schemas/EffectiveLocation'
      required:
      - reason
      additionalProperties: false
    AssetMobileDestination:
      type: object
      title: Mobile Payment Destination
      description: Mobile wallet where the monetary transfer was sent to
      properties:
        provider:
          $ref: '#/components/schemas/PaymentDestinationProvider'
        id:
          $ref: '#/components/schemas/PaymentDestinationId'
        type:
          $ref: '#/components/schemas/PaymentDestinationType'
      required:
      - id
      - provider
      readOnly: true
    DateTime:
      type: string
      format: date-time
    ChainedOperation:
      type: object
      properties:
        qty:
          title: Quantity
          description: The transaction amount or the amount of an existing transaction selected as a source
          type: number
        asset:
          type: object
          properties:
            uom:
              title: Unit of Measure
              type: string
            name:
              title: Asset Name
              type: string
            code:
              title: Asset Code
              type: string
            id:
              title: Asset ID
              type: string
        sent:
          title: Date
          type: number
          format: date-time
        type:
          title: Type
          description: 'transfer - an asset moving from one connection to another

            transformation - the inputs of a transformation (one or more assets turned into another asset)

            transformation-result - the output of a transformation'
          type: string
     

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/banqu/refs/heads/main/openapi/banqu-asset-transactions-api-openapi.yml