Skip to content

Fees

Quote fee, tax and total before submitting an operation

POST/api/v1/tenant/fees/quote

Scope wallets:read

Read-only: nothing is charged and no operation is created. The quoteId is valid for five minutes; pass it as feeQuoteId on POST /tenant/payouts to pin the charges. A wallet outside your account is a 404, identical to a nonexistent one.

Request body

FieldTypeRequiredDescription
operationTypeenumyesThe operation you are about to submit. Only wallet_credit, wallet_debit, payout_b2c and topup_c2b can be quoted. One of wallet_credit, wallet_debit, payout_b2c, topup_c2b, hold, safeguarding_fund, client_funding_deposit, settlement_sweep, wallet_closure, closed_balance_refund, ledger_adjustment, wallet_transfer.
walletUidstringyesThe wallet the operation will move money on, as returned by POST /tenant/customers.
amountMinornumberyesPositive integer minor units (e.g. 250000 = ETB 2,500.00); the operation amount before charges. Min 1.
currencystringyesISO-4217; must equal the wallet's currency.
railCodestring | nullnoThe payment provider's code the operation will use, when it has one (payout, top-up). At most 64 characters.
Example (generated from the schema)
json
{
  "operationType": "wallet_credit",
  "walletUid": "01J9Z3K5X8QW2R4T6V8Y0B1C3D",
  "amountMinor": 1,
  "currency": "ETB"
}

Response · 200

FieldTypeDescription
quoteIdstringPass as feeQuoteId on POST /tenant/payouts to pin these charges while the quote is valid.
operationTypeenumOne of wallet_credit, wallet_debit, payout_b2c, topup_c2b, hold, safeguarding_fund, client_funding_deposit, settlement_sweep, wallet_closure, closed_balance_refund, ledger_adjustment, wallet_transfer.
walletUidstring
currencystring
amountMinornumberMinor units — the amount quoted, as sent.
feeMinornumberMinor units — the flat / percentage components.
taxMinornumberMinor units — the vat components.
totalMinornumberMinor units — amountMinor + feeMinor + taxMinor, what the wallet is debited.
breakdownobject[]
breakdown[].labelstringThe component's label in the fee rule.
breakdown[].typeenumOne of flat, percentage, vat.
breakdown[].amountMinornumberMinor units; a component that rounds to zero is listed at 0.
breakdown[].refundablebooleanWhether a failed payout refunds this component.
breakdown[].appliesToLabelstring | nullFor vat, the label of the component it applies to.
ruleVersionobject | nullThe fee rule version the quote was priced under; null for a zero-fee operation.
ruleVersion.uidstring
ruleVersion.ruleCodestring
ruleVersion.versionNonumber
railCodestring | nullThe payment provider's code, as sent; null when none was sent.
validUntilstringInstant the quote stops being honoured — five minutes from issue.
Example (generated from the schema)
json
{
  "quoteId": "string",
  "operationType": "wallet_credit",
  "walletUid": "01J9Z3K5X8QW2R4T6V8Y0B1C3D",
  "currency": "ETB",
  "amountMinor": 0,
  "feeMinor": 0,
  "taxMinor": 0,
  "totalMinor": 0,
  "breakdown": [
    {
      "label": "string",
      "type": "flat",
      "amountMinor": 0,
      "refundable": true,
      "appliesToLabel": "string"
    }
  ],
  "ruleVersion": {
    "uid": "01J9Z3K5X8QW2R4T6V8Y0B1C3D",
    "ruleCode": "string",
    "versionNo": 0
  },
  "railCode": "string",
  "validUntil": "string"
}

Errors

400 401 403 404 429 500 503 — one body shape for all of them, see Errors.