Weavr Fees API

The Fees API from Weavr — 4 operation(s) for fees.

Operations 4

POST /fees/charge Charge identity a pre-defined custom fee #
POST /corporates/fees/charge Charge fee to a corporate #
GET /fees (NEW) Get all fees #
POST /consumers/fees/charge Charge fee to a consumer #

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/weavr-fees-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

weavr-fees-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Weavr Fees API
  contact:
    name: Weavr
    url: https://weavr.io
  x-logo:
    url: https://storage.googleapis.com/weavr-cdn/weavr_logo-new.png
    backgroundColor: '#FFFFFF'
    altText: Weavr
  version: '1.0'
  description: 'Operations tagged Fees across 3 of this provider''s published API definitions: weavr-multi-backoffice-openapi-original.yml, weavr-multi-openapi-original.yml, weavr-webhooks-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Weavr Sandbox Environment
  url: https://sandbox.weavr.io/multi/backoffice
- description: Weavr Sandbox Environment
  url: https://sandbox.weavr.io/multi
- url: '""'
tags:
- name: Fees
paths:
  /fees/charge:
    post:
      tags:
      - Fees
      description: 'Charge a fee to the identity identified by the auth token, based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.


        The fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.

        '
      summary: 'Charge identity a pre-defined custom fee '
      operationId: chargeFee
      parameters:
      - $ref: '#/components/parameters/idempotency-ref'
      requestBody:
        $ref: '#/components/requestBodies/ChargeFeeRequest'
      responses:
        '200':
          $ref: '#/components/responses/ChargeFeeResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/ChargeFeeConflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api_key: []
    servers:
    - description: Weavr Sandbox Environment
      url: https://sandbox.weavr.io/multi/backoffice
  /corporates/fees/charge:
    post:
      tags:
      - Fees
      description: 'Charge a fee to the corporate identified by the auth token, based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.


        The fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.

        '
      summary: Charge fee to a corporate
      operationId: corporateChargeFee
      x-permissions:
      - i:corporates:charge_fee
      parameters:
      - $ref: '#/components/parameters/idempotency-ref'
      requestBody:
        $ref: '#/components/requestBodies/ChargeFeeRequest'
      responses:
        '200':
          $ref: '#/components/responses/ChargeFeeResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/ChargeFeeConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
    servers:
    - description: Weavr Sandbox Environment
      url: https://sandbox.weavr.io/multi
  /fees:
    get:
      tags:
      - Fees
      description: 'Returns the fee transactions accrued by the logged-in identity — every `FeeTransaction` posted against any of the identity''s instruments, filterable by time window.


        For surfaces that need fees inline with their parent activity, the same `FeeTransaction` records are also exposed via the Transaction Activity API and on Statements V2.

        '
      summary: (NEW) Get all fees
      operationId: feesGet
      x-permissions:
      - i:fees:get
      parameters:
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/creationTimestampFrom'
      - $ref: '#/components/parameters/creationTimestampTo'
      - $ref: '#/components/parameters/sortOrder'
      responses:
        '200':
          $ref: '#/components/responses/FeeTransactionListResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
    servers:
    - description: Weavr Sandbox Environment
      url: https://sandbox.weavr.io/multi
  /consumers/fees/charge:
    post:
      tags:
      - Fees
      description: 'Charge a fee to the logged-in consumer based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.


        The fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.

        '
      summary: Charge fee to a consumer
      operationId: consumerChargeFee
      x-permissions:
      - i:consumers:charge_fee
      parameters:
      - $ref: '#/components/parameters/idempotency-ref'
      requestBody:
        $ref: '#/components/requestBodies/ChargeFeeRequest'
      responses:
        '200':
          $ref: '#/components/responses/ChargeFeeResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/ChargeFeeConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
    servers:
    - description: Weavr Sandbox Environment
      url: https://sandbox.weavr.io/multi
webhooks:
  /fees/watch:
    post:
      tags:
      - Fees
      summary: FeeWatch
      description: Notification that a fee has been charged.
      operationId: fees_watch
      parameters:
      - $ref: '#/components/parameters/call-ref'
      - $ref: '#/components/parameters/published-timestamp'
      - $ref: '#/components/parameters/signature'
      - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeFeeEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
    servers:
    - url: '""'
components:
  responses:
    InternalServerError:
      description: Internal Server Error - There is a problem with the server. Please try again later.
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
    Unauthorized:
      description: Unauthorized - Your credentials or access token are invalid.
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
    Forbidden:
      description: Forbidden - Access to the requested resource or action is forbidden.
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
      content:
        application/json:
          schema:
            type: object
            properties:
              errorCode:
                type: string
                enum:
                - INSUFFICIENT_PERMISSIONS
    NotFound:
      description: Not found - The requested resource couldn't be found.
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ChargeFeeResponse:
      description: Success
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ChargeFee'
    BadRequestError:
      description: Bad Request Error - Your request is invalid.
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                maxLength: 255
                type: string
                description: When present helps to identify and fix the problem.
              syntaxErrors:
                $ref: '#/components/schemas/SyntaxError'
    Error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ChargeFeeConflict:
      description: Conflict
      content:
        application/json:
          schema:
            type: object
            properties:
              errorCode:
                type: string
                enum:
                - UNRESOLVED_FEE_TYPE
                - UNRESOLVED_CURRENCY
                - UNRESOLVED_INSTRUMENT
                - FUNDS_INSUFFICIENT
                - IDENTITY_NOT_OWNER_OF_INSTRUMENT
                - FEE_AMOUNT_NOT_SET
    ServiceUnavailable:
      description: Service Unavailable - The requested service is temporarily unavailable. Please try again later.
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
    TooManyRequests:
      description: Too many requests.
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
        x-ratelimit-limit:
          $ref: '#/components/headers/x-ratelimit-limit'
        x-ratelimit-reset:
          $ref: '#/components/headers/x-ratelimit-reset'
    FeeTransactionListResponse:
      description: Success
      headers:
        request-ref:
          $ref: '#/components/headers/request-ref'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FeeTransactionList'
  schemas:
    Id:
      type: string
      pattern: ^[0-9]+$
    Fee:
      required:
      - feeType
      - source
      type: object
      properties:
        feeType:
          type: string
          description: The fee type as defined in the Multi Portal.
        source:
          description: The instrument from where the fee should be deducted.
          $ref: '#/components/schemas/InstrumentId'
    CurrencyAmount:
      required:
      - currency
      - amount
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        amount:
          type: integer
          format: int64
          description: 'The monetary amount, scaled to the lowest denomination of the currency.


            Example, an amount of 1000 for a EUR currency is actually 1000 Euro cents or EUR 10.00.

            '
      description: The object representing a monetary amount in a particular currency.
    TransactionId:
      required:
      - type
      - id
      type: object
      properties:
        type:
          enum:
          - AUTHORISATION
          - SETTLEMENT
          - MANUAL_TRANSACTION
          - TRANSFER
          - SEND
          - DEPOSIT
          - AUTHORISATION_REVERSAL
          - AUTHORISATION_EXPIRY
          - AUTHORISATION_DECLINE
          - AUTHORISATION_MANUAL_CLOSE
          - MERCHANT_REFUND
          - MERCHANT_REFUND_REVERSAL
          - ORIGINAL_CREDIT_TRANSACTION
          - SETTLEMENT_REVERSAL
          - ADJUSTMENT
          - CHARGE_FEE
          - WITHDRAWAL_RESERVE
          - WITHDRAWAL_RELEASE
          - FEE_REVERSAL
          - OUTGOING_WIRE_TRANSFER
          - AUTHORISATION_CANCELLATION
          - SYSTEM_TRANSACTION
          - OUTGOING_DIRECT_DEBIT_COLLECTION
          - OUTGOING_DIRECT_DEBIT_REFUND
          - LINKED_ACCOUNT_VERIFICATION_TRANSFER
          - INCOMING_WIRE_TRANSFER
          - FUNDING
          - TEST_FUNDING
          - CORRESPONDENT_BANK_TRANSFER
          type: string
          x-enumDescriptions:
            AUTHORISATION: ''
            SETTLEMENT: ''
            MANUAL_TRANSACTION: 'For a manual transaction, the `additionalFields`: `note` will contain a description with the reason for the transaction. This will start with one of the following prefixes:


              - Account Closure

              - Chargebacks - Represented

              - Chargebacks - Won

              - Deleted Card - Transfer from

              - Deleted Card - Transfer to

              - Duplicate Authorisation Issue

              - Duplicate Settlement Issue

              - Expired Card - Transfer from

              - Expired Card - Transfer to

              - Forex Padding Release Issue

              - Funds Redemption & Account Closure

              - Manual Auth Expiry

              - Missing Settlement Issue

              - Negative Card Balance

              - Reversal - Duplicate Transaction

              - Reversal - Manual Auth Expiry

              - Reversal - Manual Transaction

              - Amend Balance - Auth Expiry

              - Balance Adjustment

              - Completing Deposit

              - Duplicate Deposit

              '
            TRANSFER: ''
            SEND: ''
            DEPOSIT: ''
            AUTHORISATION_REVERSAL: ''
            AUTHORISATION_EXPIRY: ''
            AUTHORISATION_DECLINE: ''
            AUTHORISATION_MANUAL_CLOSE: ''
            MERCHANT_REFUND: ''
            MERCHANT_REFUND_REVERSAL: ''
            ORIGINAL_CREDIT_TRANSACTION: ''
            SETTLEMENT_REVERSAL: ''
            ADJUSTMENT: ''
            CHARGE_FEE: ''
            WITHDRAWAL_RESERVE: ''
            WITHDRAWAL_RELEASE: ''
            FEE_REVERSAL: ''
            OUTGOING_WIRE_TRANSFER: ''
            AUTHORISATION_CANCELLATION: ''
            SYSTEM_TRANSACTION: ''
            OUTGOING_DIRECT_DEBIT_COLLECTION: ''
            OUTGOING_DIRECT_DEBIT_REFUND: ''
        id:
          type: string
          pattern: ^[0-9]+$
    SyntaxError:
      type: object
      description: Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.
      properties:
        invalidFields:
          type: array
          items:
            type: object
            properties:
              params:
                type: array
                items:
                  type: string
              fieldName:
                type: string
              error:
                type: string
                enum:
                - REQUIRED
                - HAS_TEXT
                - REQUIRES
                - SIZE
                - RANGE
                - IN
                - NOT_IN
                - REGEX
                - EXACTLY
                - AT_LEAST
                - AT_MOST
                - ALL_OR_NONE
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    ChargeFee:
      required:
      - transactionId
      - profileId
      - feeType
      - source
      - destination
      - availableBalanceAdjustment
      - state
      - creationTimestamp
      type: object
      properties:
        transactionId:
          $ref: '#/components/schemas/TransactionId'
          description: The unique identifier of the transaction.
        profileId:
          type: string
          description: The profile Id which a specific identity, instrument or transaction type is linked to.
        feeType:
          type: string
          description: The fee type as defined in the Multi Portal, and as sent in the request.
        source:
          $ref: '#/components/schemas/InstrumentId'
        availableBalanceAdjustment:
          $ref: '#/components/schemas/CurrencyAmount'
          description: The object representing a monetary amount in a particular currency.
        state:
          $ref: '#/components/schemas/TransactionState'
          description: The transaction entry state.
        creationTimestamp:
          type: integer
          format: int64
    InstrumentType:
      type: string
      enum:
      - managed_cards
      - managed_accounts
    TransactionState:
      type: string
      description: Status of the transaction.
      enum:
      - INITIALISED
      - COMPLETED
      - REJECTED
      - FAILED
      - PENDING
      - SCHEDULED
      - CANCELLED
    Currency:
      type: string
      description: 'The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.'
      maxLength: 3
      minLength: 3
      pattern: ^[A-Z]*$
    InstrumentId:
      required:
      - id
      - type
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        type:
          $ref: '#/components/schemas/InstrumentType'
    FeeTransaction:
      type: object
      required:
      - id
      - feeType
      - amount
      - instrument
      - status
      - creationTimestamp
      description: 'A fee charged or reversed on an instrument. Surfaced through `GET /fees`,

        `GET /transactions` (Transaction Activity), and as line items on statements.

        '
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
          description: The unique identifier of the fee transaction.
        feeType:
          $ref: '#/components/schemas/FeeSubtype'
        amount:
          description: The fee amount in the instrument's currency.
          $ref: '#/components/schemas/CurrencyAmount'
        instrument:
          description: The instrument the fee was charged against.
          $ref: '#/components/schemas/InstrumentId'
        status:
          $ref: '#/components/schemas/FeeTransactionStatus'
        description:
          type: string
          maxLength: 255
        relatedTransactionId:
          type: string
          pattern: ^[0-9]+$
          description: The parent transaction this fee relates to, if any.
        creationTimestamp:
          type: integer
          format: int64
        lastUpdatedTimestamp:
          type: integer
          format: int64
    FeeSubtype:
      type: string
      description: The category of fee — indicates the activity or instrument-lifecycle event the fee relates to.
      enum:
      - fee_reversals
      - incoming_wire_fees
      - withdrawal_fees
      - purchase_fees
      - refund_fees
      - atm_withdrawal_fees
      - chargeback_fees
      - transfer_fees
      - send_fees
      - outgoing_wire_transfer_fees
      - custom_fees
      - other_fees
      - instrument_delete_fees
      - funds_redemption_fees
      - system_transaction_fees
    FeeTransactionStatus:
      type: string
      description: "Lifecycle status of a fee transaction:\n  - PENDING: Fee accompanies a transaction that is still processing; it may still be cancelled.\n  - COMPLETED: Fee was charged and posted to the instrument balance.\n  - CANCELLED: Fee was cancelled before being charged.\n  - REVERSED: Fee was previously charged and has been reversed.\n"
      enum:
      - PENDING
      - COMPLETED
      - CANCELLED
      - REVERSED
    FeeTransactionList:
      type: object
      description: A paginated list of fee transactions.
      properties:
        fees:
          type: array
          items:
            $ref: '#/components/schemas/FeeTransaction'
        count:
          type: integer
          format: int64
          description: The total number of records matching the filter criteria.
        responseCount:
          type: integer
          format: int64
    StringWrappedTypeId:
      required:
      - type
      - id
      type: object
      properties:
        type:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        id:
          type: string
          pattern: ^[0-9]+$
    ChargeFeeEventType:
      type: string
      enum:
      - UNDEFINED
      - COMPLETED
    ReplacementType:
      type: string
      enum:
      - DAMAGED
      - LOST_STOLEN
      - RENEW
      - COMPROMISED
    LegacyTransactionBatchInstrumentRemaining:
      type: object
      properties:
        availableRemaining:
          type: string
          pattern: ^[0-9]+$
        reservedRemaining:
          type: string
          pattern: ^[0-9]+$
        pendingRemaining:
          type: string
          pattern: ^[0-9]+$
        feeRemaining:
          type: object
          additionalProperties:
            type: string
            pattern: ^[0-9]+$
    TransactionBatchErrorType:
      type: string
      enum:
      - REVERSAL_EXCEEDS_REMAINING
      - DENIED_BY_INTERCEPTOR
      - DENIED_BY_INSTRUMENT
      - DENIED_BY_FOREX_TRADE
      - FI_PROVIDER_TREASURY_UNSUPPORTED
      - DENIED_BY_SUSPENSE
      - DENIED_BY_STATE_CHANGE
    BlockedDetailsSubType:
      type: string
      enum:
      - FREEZE
      - LOST
      - SINGLE_SPEND
      - PENDING_APPROVAL
    InstrumentParticipantErrorType:
      type: string
      enum:
      - NO_INSTRUMENT_ERROR
      - BALANCE_LIMIT_EXCEEDED
      - INSTRUMENT_ALREADY_EXISTS
      - INSTRUMENT_ALREADY_DESTROYED
      - STATE_DOES_NOT_PERMIT_ACTION
      - UNSUPPORTED_CURRENCY
      - INSTRUMENT_ALREADY_RESTRICTED
      - INSTRUMENT_ALREADY_ACTIVE
      - INSTRUMENT_EXPIRED
      - PROVIDER_REJECTED
      - INSTRUMENT_ALREADY_BLOCKED
      - INSTRUMENT_NOT_BLOCKED
    LegacyInstrumentBalances:
      type: object
      properties:
        availableBalance:
          type: string
          pattern: ^[0-9]+$
        reservedBalance:
          type: string
          pattern: ^[0-9]+$
        deltaBalance:
          type: string
          pattern: ^[0-9]+$
        pendingBalance:
          type: string
          pattern: ^[0-9]+$
        limitBalance:
          type: string
          pattern: ^[0-9]+$
    BlockedDetailsType:
      type: string
      enum:
      - VELOCITY
      - USER
      - ACCOUNT
      - ADMIN
    LegacyTransactionBatchInstrument:
      required:
      - id
      - instrument
      - instrumentId
      - state
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        instrumentId:
          $ref: '#/components/schemas/InstrumentId'
        instrument:
          $ref: '#/components/schemas/LegacyInstrumentParticipant'
        state:
          $ref: '#/components/schemas/TransactionBatchParticipantState'
        conflict:
          $ref: '#/components/schemas/InstrumentParticipantErrorType'
        after:
          $ref: '#/components/schemas/LegacyInstrumentBalances'
        executedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        remaining:
          $ref: '#/components/schemas/LegacyTransactionBatchInstrumentRemaining'
        afterCompensation:
          $ref: '#/components/schemas/LegacyInstrumentBalances'
        compensatedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        treasuryPending:
          type: boolean
    LegacyScaledAmount:
      type: object
      properties:
        value:
          type: string
          pattern: ^[0-9]+$
        scale:
          maximum: 127
          minimum: -128
          type: integer
          format: int32
      description: 'A floating point number, represented as a value and its scale. Its actual value can be obtained using the equation: value * pow(10, -scale).'
    LegacyInstrumentParticipant:
      required:
      - channelProvider
      - currency
      - fiProvider
      - owner
      type: object
      properties:
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        fiProvider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        channelProvider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        originalAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
        currency:
          maxLength: 3
          minLength: 3
          pattern: ^[A-Z]*$
          type: string
        availableAdjustment:
          type: string
          pattern: ^[0-9]+$
        reservedAdjustment:
          type: string
          pattern: ^[0-9]+$
        pendingAdjustment:
          type: string
          pattern: ^[0-9]+$
        availableSync:
          type: string
          pattern: ^[0-9]+$
        deltaAdjustment:
          type: string
          pattern: ^[0-9]+$
        limitAdjustment:
          type: string
          pattern: ^[0-9]+$
        fee:
          type: object
          additionalProperties:
            type: object
            properties:
              amount:
                type: string
                pattern: ^[0-9]+$
              feeSpecificType:
                type: string
        system:
          type: object
          additionalProperties:
            type: string
            pattern: ^[0-9]+$
        create:
          type: boolean
          description: If set, expects runtime_info to contain creation payload
        upgrade:
          type: boolean
        activate:
          type: boolean
        blockType:
          $ref: '#/components/schemas/BlockedDetailsType'
        blockSubType:
          $ref: '#/components/schemas/BlockedDetailsSubType'
        unblockType:
          $ref: '#/components/schemas/BlockedDetailsType'
        unblockSubType:
          $ref: '#/components/schemas/BlockedDetailsSubType'
        destroyType:
          $ref: '#/components/schemas/DestroyType'
        replacementType:
          $ref: '#/components/schemas/ReplacementType'
        related:
          type: boolean
        forceState:
          type: boolean
          description: If set, force the action bypassing system blocks
        forceBalance:
          type: boolean
          description: If set, force the action bypassing balance limits
    DestroyType:
      type: string
      enum:
      - USER
      - ADMIN
      - SYSTEM
      - LOST
      - STOLEN
      - SINGLE_SPEND
      - ACCOUNT_REJECTED
      - EXPIRED
      - COMPROMISED
    LegacyCurrencyAmount:
      required:
      - currency
      - amount
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        amount:
          type: string
          pattern: ^[0-9]+$
          description: The monetary amount, scaled to the lowest denomination of the currency.
      description: The object representing a monetary amount in a particular currency.
    TransactionBatchParticipantState:
      type: string
      enum:
      - EXECUTION_PENDING
      - EXECUTED
      - COMMITTED
      - REJECTED
      - FAILED
      - COMPENSATION_PENDING
      - COMPENSATED
      - OBSOLETE
      - EXECUTION_SUSPENDED
      - COMPENSATION_SUSPENDED
    ForexTradeParticipantErrorType:
      type: string
      enum:
      - NO_FOREX_TRADE_ERROR
      - RATE_EXPIRED
    LegacyForexTradeParticipant:
      required:
      - provider
      - rate
      - rateId
      - sourceCurrency
      - targetCurrency
      type: object
      properties:
        rateId:
          type: string
          pattern: ^[0-9]+$
        provider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        sourceCurrency:
          maxLength: 3
          minLength: 3
          pattern: ^[A-Z]*$
          type: string
        sourceAmount:
          type: string
          pattern: ^[0-9]+$
        sourceSystem:
          type: string
          pattern: ^[0-9]+$
          description: The rounding error when aggregating multiple conversions. Always positive
        targetCurrency:
          maxLength: 3
          minLength: 3
          pattern: ^[A-Z]*$
          type: string
        targetAmount:
          type: string
          pattern: ^[0-9]+$
        rate:
          $ref: '#/components/schemas/LegacyScaledAmount'
          description: The forex rate between unscaled amount of given currencies
    FeeSpecType:
      type: string
      enum:
      - FLAT
      - PERCENTAGE
      - PLUS
      - MAX
      - MIN
    TransactionBatchInterceptState:
      type: string
      enum:
      - PENDING
      - ALLOWED
      - DENIED
      - FAILED
      - SUSPENDED
    LegacyTransactionBatchForexTrade:
      required:
      - forexTrade
      - id
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        forexTrade:
          $ref: '#/components/schemas/LegacyForexTradeParticipant'
        state:
          $ref: '#/components/schemas/TransactionBatchParticipantState'
        conflict:
          $ref: '#/components/schemas/ForexTradeParticipantErrorType'
        executedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        compensatedRateId:
          type: string
          pattern: ^[0-9]+$
        sourceSystemCompensation:
          type: string
          pattern: ^[0-9]+$
          description: The difference between the source and the actual compensation amount, may be positive (profit) or negative (loss)
        compensatedRate:
          $ref: '#/components/schemas/LegacyScaledAmount'
          description: The compensation forex rate between unscaled amount of given currencies
        compensatedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    FeeType:
      type: string
      enum:
      - DEPOSIT
      - WITHDRAWAL
      - PURCHASE
      - REFUND
      - ATM_WITHDRAWAL
      - CHARGEBACK
      - TRANSFER
      - SEND
      - OWT
      - CUSTOM
      - OTHER
    TransactionBatchIntercept:
      required:
      - provider
      type: object
      properties:
        provider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        state:
          $ref: '#/components/schemas/TransactionBatchInterceptState'
        denialReason:
          maxLength: 50
          type: string
        suspendedReason:
          maxLength: 255
          type: string
    LegacyTransactionBatch:
      required:
      - id
      - instrument
      - state
      - transaction
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        transaction:
          $ref: '#/components/schemas/StringWrappedTypeId'
        relatedBatchId:
          type: string
          pattern: ^[0-9]+$
        intercept:
          type: array
          items:
            $ref: '#/components/schemas/TransactionBatchIntercept'
        instrument:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/LegacyTransactionBatchInstrument'
          description: The id of the map should be the instrument id
        forexTrade:
          type: array
          items:
            $ref: '#/components/schemas/LegacyTransactionBatchForexTrade'
        completedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        state:
          $ref: '#/components/schemas/TransactionBatchState'
        conflict:
          $ref: '#/components/schemas/TransactionBatchErrorType'
        authSessionId:
          type: string
          pattern: ^[0-9]+$
        note:
          type: string
    ChargeFeeEvent:
      required:
      - chargeFee
      - publishedTimestamp
      - type
      type: object
      properties:
        chargeFee:
          type: object
          required:
          - feeSpec
          - feeType
          - id
          - source
          properties:
            id:
              type: string
              pattern: ^[0-9]+$
            feeType:
              $ref: '#/components/schemas/FeeType'
            feeSubType:
              maxLength: 50
              type: stri

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/weavr/refs/heads/main/openapi/weavr-fees-api-openapi.yml