> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quote the fees on a transfer

> What a transfer would cost, before you make it. Priced from fee schedule, so the same transfer is always quoted the same amount for you, so this is the figure to check against rather than a percentage from the docs. It is not a commitment and reserves nothing.

The four fee lines always sum to `total_fee`. Fee amounts are exact decimal strings at two decimal places (kwacha fees are not whole kwacha) — parse them with a decimal library, never a float. A payout returns `total_debit` (the amount plus the fee: your beneficiary still receives the full amount) and a collection returns `amount_received` (the amount less the fee, which may be negative on a transfer smaller than its own fee).



## OpenAPI

````yaml /openapi.json post /fees/quote
openapi: 3.1.0
info:
  title: Jenzy Hermes Client API
  version: 1.0.0
  description: >-
    Draw down your prefunded MWK balance as payouts to Malawian banks and mobile
    money. Authenticate with your `jz_live_…` API key as a bearer token.
servers:
  - url: https://api.jenzy.com/v1
    description: Production
security: []
paths:
  /fees/quote:
    post:
      summary: Quote the fees on a transfer
      description: >-
        What a transfer would cost, before you make it. Priced from fee
        schedule, so the same transfer is always quoted the same amount for you,
        so this is the figure to check against rather than a percentage from the
        docs. It is not a commitment and reserves nothing.


        The four fee lines always sum to `total_fee`. Fee amounts are exact
        decimal strings at two decimal places (kwacha fees are not whole kwacha)
        — parse them with a decimal library, never a float. A payout returns
        `total_debit` (the amount plus the fee: your beneficiary still receives
        the full amount) and a collection returns `amount_received` (the amount
        less the fee, which may be negative on a transfer smaller than its own
        fee).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeeQuoteCreate'
      responses:
        '200':
          description: The quote.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeQuote'
              examples:
                momo_payout:
                  summary: A 10,000 MWK payout to mobile money
                  value:
                    currency: MWK
                    amount_mwk: '10000.00'
                    direction: payout
                    rail: momo
                    fees:
                      convenience_fee: '200.00'
                      transaction_fee: '80.00'
                      levy: '0.00'
                      vat: '49.00'
                    total_fee: '329.00'
                    total_debit: '10329.00'
                    amount_received: null
                bank_payout:
                  summary: >-
                    A 10,000 MWK payout to a bank account — the flat convenience
                    fee is larger (500 vs 200) and VAT is charged on it too, so
                    the total fee is more than double the momo example at the
                    same amount
                  value:
                    currency: MWK
                    amount_mwk: '10000.00'
                    direction: payout
                    rail: bank
                    fees:
                      convenience_fee: '500.00'
                      transaction_fee: '80.00'
                      levy: '0.00'
                      vat: '101.50'
                    total_fee: '681.50'
                    total_debit: '10681.50'
                    amount_received: null
        '400':
          description: The body is malformed, or the amount is not a positive whole number.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Missing, malformed, or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    FeeQuoteCreate:
      type: object
      properties:
        direction:
          type: string
          enum:
            - payout
            - collection
          description: >-
            Which way the money moves: `payout` to pay a beneficiary,
            `collection` to take money in. The two are priced differently.
          example: payout
        rail:
          type: string
          enum:
            - momo
            - bank
          description: >-
            The path the transfer takes. Pricing depends only on this, never on
            the institution — every bank costs the same, as does every
            mobile-money operator.
          example: momo
        amount_mwk:
          anyOf:
            - type: number
            - type: string
          description: >-
            What the transfer would move. Either a JSON integer of whole kwacha,
            or an exact decimal string with up to 2 decimal places
            (`"1000.55"`). Fees are quoted on top of it. Must be positive and no
            greater than 1000000000000 MWK.
          example: 50000
      required:
        - direction
        - rail
        - amount_mwk
    FeeQuote:
      type: object
      properties:
        currency:
          type: string
          enum:
            - MWK
        amount_mwk:
          type: string
          description: The amount quoted against, echoed back — exact decimal string.
          example: '10000.00'
        direction:
          type: string
          enum:
            - payout
            - collection
        rail:
          type: string
          enum:
            - bank
            - momo
        fees:
          $ref: '#/components/schemas/FeeQuoteLines'
        total_fee:
          type: string
          description: Every line above, summed. Always equal to their sum.
          example: '329.00'
        total_debit:
          type:
            - string
            - 'null'
          description: >-
            Payouts only: the amount plus the total fee — the full cost of the
            transfer. Your beneficiary still receives the full amount. Null on a
            collection.
          example: '10329.00'
        amount_received:
          type:
            - string
            - 'null'
          description: >-
            Collections only: the amount less the total fee — what you are
            credited. Negative if the fee exceeds the transfer. Null on a
            payout. (Shown here for a 10,000 collection, whose fee is 150.00 — a
            collection carries no flat fee, no VAT and no levy.)
          example: '9850.00'
      required:
        - currency
        - amount_mwk
        - direction
        - rail
        - fees
        - total_fee
        - total_debit
        - amount_received
    ErrorEnvelope:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_error
                - unauthorized
                - forbidden
                - not_found
                - conflict
                - rate_limited
                - internal_error
                - unknown_institution
                - invalid_mobile_number
                - invalid_account_number
                - mobile_number_institution_mismatch
                - service_unavailable
                - sandbox_only
                - insufficient_funds
                - rail_disabled
                - amount_limit_exceeded
                - org_limit_exceeded
                - service_incident
                - service_maintenance
              description: >-
                Stable identifier a client may branch on — never renamed or
                removed.
            message:
              type: string
          required:
            - code
            - message
      required:
        - error
    FeeQuoteLines:
      type: object
      properties:
        convenience_fee:
          type: string
          description: >-
            Flat per-transfer charge, by rail. Charged on every payout whatever
            its size, and never charged on a collection.
          example: '200.00'
        transaction_fee:
          type: string
          description: >-
            The percentage-based charge on this transfer. A single combined
            figure — do not expect it to match any one component of an
            underlying tariff.
          example: '80.00'
        levy:
          type: string
          description: Government levy, charged on larger transfers only.
          example: '0.00'
        vat:
          type: string
          description: >-
            Charged on the convenience and transaction fees; the levy is outside
            it.
          example: '49.00'
      required:
        - convenience_fee
        - transaction_fee
        - levy
        - vat
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: 'Your Jenzy API key: `Authorization: Bearer jz_live_…`'

````