Sandbox APIhttps://sandbox-api.nuvante.io

Organisations & fees

Platform fees

The sender pays, and the fee is added on top. The receiver gets exactly the stated amount, and the sender's debit grows to cover the platform fee. The current rate is 10 bps (0.10%). It comes from an effective-dated FeePolicy record, so it can change over time without a code release.

How the fee is worked out

  1. You state the receive amount. This is exactly what the counterparty gets, or what lands in your RTGS account for a redemption.
  2. The engine calculates platformFeeAmount = ceil(statedAmount × feeBps / 10_000) at the asset's scale, which is 2 decimal places for GBP fiat.
  3. The total debit the sender burns or supplies is statedAmount + platformFeeAmount.
  4. When a house account is active, settlement posts two linked RTGS instructions. The main leg goes to the counterparty or issuer reserve, and a fee sweep goes to Nuvanté's HouseAccount for that currency's central-bank scheme.

Worked example: redemption

A member wants to receive exactly 100,000.00 GBP. The active policy is 10 bps.

Code sample
stated / receiveAmount     = 100,000.00 GBP
platformFeeAmount (10 bps) =     100.00 GBP
debitAmount (total)        = 100,100.00 GBP  (what is burned on-chain)

RTGS legs:
  a. Primary:   100,000.00 GBP → member RTGS account
  b. Fee sweep:     100.00 GBP → Nuvanté HouseAccount (BOE_SYNCHRO)

In the request body, source.amount and target.amount both stay at the stated receive amount. The engine adds the fee to the burn on the server side.

Code sample
{
  "paymentReference": "DVP-REDEEM-FEE-0001",
  "useCase": "redeem",
  "source": {
    "amount": "100000.00",
    "asset": {
      "code": "GBPC",
      "issuer": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUWDA"
    }
  },
  "target": {
    "amount": "100000.00",
    "asset": { "code": "GBP" }
  }
}
Response disclosure (illustrative)
{
  "receiveAmount": "100000.00",
  "platformFeeAmount": "100.00",
  "debitAmount": "100100.00",
  "feeBps": 10,
  "feeStatus": "pending"
}

Worked example: stablecoin-to-stablecoin swap

A member wants to receive exactly 100,000.00 GBPX. The 10 bps arithmetic is the same, and the fee is charged in the currency of the leg it's taken from.

Code sample
stated / receiveAmount     = 100,000.00 GBPX
platformFeeAmount (10 bps) =     100.00 GBPX-equivalent
debitAmount (total)        = 100,100.00 GBPC  (grossed-up source burn)

RTGS legs (issuer-to-issuer backing move):
  a. Primary:   backing for 100,000.00 → target issuer reserve
  b. Fee sweep: backing for     100.00 → Nuvanté HouseAccount
Code sample
{
  "paymentReference": "DVP-SWAP-FEE-0001",
  "useCase": "swap",
  "source": {
    "amount": "100000.00",
    "asset": {
      "code": "GBPC",
      "issuer": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUWDA"
    }
  },
  "target": {
    "amount": "100000.00",
    "asset": {
      "code": "GBPX",
      "issuer": "GAS4V4O2B7DW5T7IQRPEEVCRXMDZESKISR7DVIGKZQYYV3OSQ5SH5LVP"
    }
  }
}

Policy and house accounts

  • FeePolicy records are effective-dated (effectiveFrom and effectiveTo) and set per transaction type, for example REDEMPTION. If no policy is active, initiation fails with a conflict. We never quietly charge a zero fee.
  • HouseAccount records link Nuvanté's fee sweep to a currency and central-bank scheme: BOE_SYNCHRO, ECB_TARGET2, HKMA_CHATS, FED_FEDWIRE, MAS_MEPS, and RBA_RITS once it's live. If there's no active house account, feeStatus may show skipped while the main leg carries on as normal.
  • Multi-currency FX pairs use the same model. See the FX overview.