Fees
When processing payments, fees and foreign exchange (FX) margins get applied to client transactions (customer transactions for platform clients), including payouts and account openings.
Nium’s pricing engine supports a wide range of customizable pricing options through fees and FX margins, including, but not limited to:
- Pricing based on payout or payin method
- Tiered pricing structures
Fees and FX margins are typically applied in the following scenarios:
-
Real-time fee: Charged at the time of the transaction.
- For example, when a payout is processed, the corresponding fee (and any FX margin) is debited from the customer's wallet along with the transaction amount.
-
One-time fee: Charged when a one-off event occurs.
- For example, a customer may be charged after completeing onboarding.
-
Custom fee: Charged for events outside the standard pricing model.
- For example, a client may charge a monthly subscription fee or a fee based on the inbound payment method. Use the Charge Fee request to apply a custom fee to a customer’s wallet in any supported currency. Custom fees follow the same processing and accounting logic as predefined fees and can be included in the client’s regular invoicing.
For the above events, pricing is configured in the client's account once mutually agreed upon with Nium during onboarding.
- FI clients – Fees are charged to the FI client for real-time and one-time transactions.
- Direct clients – Fees are charged to the client for real-time and one-time transactions.
- Platform clients – Fees are charged to the platform client's customers. Clients can define customer segments during onboarding and configure pricing by segment. For example, high-volume customers may have different rates than low-volume customers.
Use the Fee Details request to review the real-time transaction pricing.
For additional details, see Pricing details.
- Before charging any customer fees, you must obtain approval from Nium’s legal and compliance teams.
- Do not use the Charge Fee request without explicit approval.
- For more information, reach out to your Nium account manager or Nium Support.
Pricing details
The following table describes the fields returned in the Fee Details response.
Field | Description | Available values |
---|---|---|
fee | Object containing the fee name, pricing rules, FX margin, and price configuration. | See Predefined Fees |
isDefault | Indicates if this plan is the default pricing configuration. Only one plan can be marked as default. | true , false |
planName | An array containing all the pricing information for that segment. The planName contains all the following fields. | Client-defined segment |
price | Specifies the fee to be charged. The fee can be a flat amount or percentage-based. Includes the following fields:
| |
products | Array of products for which fees and FX margins are configured. Products can include payouts, payins, FX, cards, accounts, and Verify. Each product contains its name and the related fee configuration. | payout , payins , fx , cards , accounts , verify |
rules | Defines the conditions under which a fee is charged. Rules can be based on transaction volume, transaction amount, or quantity. | |
rules.condition | Criteria for applying the rule, joined using an and operator. | destinationCurrency , sourceCurrency |
rules.tier | Specifies the configured tier. Details provided include:
| |
rules.type | Type of rule used to determine pricing logic. Tiered rules can be based on total volume, individual transaction amount, or quantity of transactions. | tier , nontier |
Example response
{
"feePlans": [
{
"planName": "GOLD",
"isDefault": true,
"products": [
{
"name": "payout",
"fees": [
{
"fee": "remit_bank_fee",
"rules": [
{
"type": "nontier",
"condition": {
"operator": "and",
"operands": [
{
"destinationCurrency": "SGD"
},
{
"sourceCurrency": "USD"
}
]
},
"price": {
"type": "flat",
"value": "2",
"currency": "USD"
}
}
{
"type": "tier",
"condition": {
"operator": "and",
"operands": [
{
"destinationCurrency": "USD"
},
{
"sourceCurrency": "SGD"
}
]
},
"tier": {
"on": {
"parameter": "source_amount",
"currency": "USD"
},
"ranges": [
{
"start": "0",
"end": "1000",
"price": {
"type": "flat",
"value": "2",
"currency": "SGD"
}
},
{
"start": "1000",
"end": "10000",
"price": {
"type": "flat",
"value": "1.5",
"currency": "SGD"
}
},
{
"start": "10000",
"end": "100000000",
"price": {
"type": "percentage",
"value": "0.1",
"currency": "SGD",
"percentageOf": "source_amount" }
}
]
}
}
]
}
]
}
]
Pricing components
Nium’s pricing engine consists of the following key components:
- Plan name: Defines the pricing configuration for a customer segment, assigned during onboarding.
- Product name: Specifies the product the fee applies to. Supported products include payouts, payins, accounts, FX, cards, and verify.
- Fee name: Predefined fee that is automatically applied when specific transaction events occur.
- Rules: Conditions that determine when a fee is applied. Rules can be based on transaction volume, amount, or quantity. For example, a rule might apply a fee only if the transaction’s source currency is
USD
. - Fees: The amount charged for a given event, defined as either a flat fee or a percentage-based fee. For example, a transaction with
USD
as the source currency might be charged a flat fee of 1 USD.
Pre-defined fees
The following table lists the available pre-defined fees and FX margin types, along with their descriptions and when they are charged.
Payouts
The following fees are charged on a per-transaction basis.
Fee name | Description | Real-time or One-time |
---|---|---|
REMIT_BANK_FEE | Charged on remittance transactions when payoutMethod is LOCAL. | Real-time |
REMIT_BANK_FEE_FEDWIRE | Charged on remittance transactions when payoutMethod is FEDWIRE. | Real-time |
REMIT_BANK_FEE_SWIFT | Charged on remittance transactions when payoutType is SWIFT and swiftFeeType is SHA. | Real-time |
REMIT_BANK_FEE_SWIFT_BEN | Charged on remittance transactions when payoutType is SWIFT and swiftFeeType is BEN. | Real-time |
REMIT_BANK_FEE_SWIFT_OUR | Charged on remittance transactions when payoutType is SWIFT and swiftFeeType is OUR. | Real-time |
REMIT_CARD_FEE | Charged on remittance transactions when payoutType is CARD. | Real-time |
REMIT_CASH_FEE | Charged on remittance transactions when payoutType is CASH. | Real-time |
REMIT_CHECK_FEE | Charged on remittance transactions when payoutType is CHECK. | Real-time |
REMIT_PROXY_FEE | Charged on remittance transactions when payoutType is PROXY. | Real-time |
REMIT_RETURN_FEE | Charged when a remittance transaction is returned. | Real-time |
REMIT_WALLET_FEE | Charged on remittance transactions when payoutType is WALLET. | Real-time |
WALLET_REFUND_FEE | Charged when funds are refunded to a customer’s wallet. | Real-time |
AUTO_SWEEP_FEE_EOD | Charged when an automatic wallet sweep is triggered at end-of-day. | Real-time |
Foreign exchange (FX)
The following foreign exchange (FX) markup fees are applied to the exchange rate used in various types of transactions.
Fee name | Description | Real-time or One-time |
---|---|---|
TRANSACTION_MARKUP | Nium applies a markup fee if the transaction currency and authorization currency differ. | Real-time |
FX_MARKUP | Applied to the exchange rate for:
| Real-time |
FX_MARKUP_AUTO_SWEEP | Applied to the exchange rate used for automatic wallet sweep transactions. | Real-time |
FX_MARKUP_AUTO_SWEEP_EOD | Applied to the exchange rate used for end-of-day automatic wallet sweep transactions. | Real-time |
FX_MARKUP_SETTLE_IMMEDIATE | Applied to conversions settled immediately (when conversionSchedule is immediate). | Real-time |
FX_MARKUP_SETTLE_ENDOFDAY | Applied to conversions settled by 5:00 PM UTC on the same day (when conversionSchedule is end_of_day). | Real-time |
FX_MARKUP_SETTLE_NEXTDAY | Applied to conversions settled by 5:00 PM UTC on the next business day (when conversionSchedule is next_day). | Real-time |
FX_MARKUP_SETTLE_2DAYS | Applied to conversions settled by 5:00 PM UTC two business days after initiation (when conversionSchedule is 2_days). | Real-time |
FX_MARKUP_LOCK_5MINS | Applied to lock the exchange rate for 5 minutes (lockPeriod is 5_mins). | Real-time |
FX_MARKUP_LOCK_15MINS | Applied to lock the exchange rate for 15 minutes (lockPeriod is 15_mins). | Real-time |
FX_MARKUP_LOCK_1HOUR | Applied to lock the exchange rate for 1 hour (lockPeriod is 1_hour). | Real-time |
FX_MARKUP_LOCK_4HOURS | Applied to lock the exchange rate for 4 hours (lockPeriod is 4_hours). | Real-time |
FX_MARKUP_LOCK_8HOURS | Applied to lock the exchange rate for 8 hours (lockPeriod is 8_hours). | Real-time |
FX_MARKUP_LOCK_24HOURS | Applied to lock the exchange rate for 24 hours (lockPeriod is 24_hours). | Real-time |
FX_MARKUP_CANCELLATION | Applied when an FX quote is cancelled before use. | Real-time |
Payins
The following fees are charged per payin transaction.
Fee name | Description | Real-time or One-time |
---|---|---|
WALLET_CREDIT_THIRD_PARTY_FEE | Charged per payin transaction when the sender (remitter) is not the account holder. | Real-time |
WALLET_CREDIT_OFFLINE_FEE | Charged per payin transaction when the sender (remitter) is the account holder. | Real-time |
WALLET_CREDIT_CARD_FEE | Charged when crediting funds to the wallet using a card. | Real-time |
PREFUND_PROCESSING_FEE | Charged when prefunding a client wallet. | Real-time |
WALLET_CREDIT_DIRECT_DEBIT_FEE | Charged when crediting funds to the wallet using direct debit. | Real-time |
Accounts
The following fees are charged during onboarding.
Fee name | Description | Real-time or One-time |
---|---|---|
ACCOUNT_OPENING_FEE | One-time account opening fee that's charged when the customer is created. | One-time |
ACCOUNT_MAINTENANCE_FEE | Monthly fee that's charged for account maintenance at the start of the month for the present month. | One-time |
ACCOUNT_INACTIVE_FEE | A fee charged for inactive accounts. | One-time |
P2P_FEE | Charged per fund transfer between two customers under the same or different client program. | Real-time |
Cards
The following fees are charged while issuing or managing cards.
Fee Name | Description | Real-time or One-time |
---|---|---|
PLASTIC_FEE | One-time fee for issuing a physical card. | One-time |
REPLACEMENT_FEE | One-time fee for replacing a physical card. | One-time |
VIR_CARD_FEE | One-time fee for issuing a virtual card. | One-time |
ADDON_CARD_FEE | One-time fee charged for each issued ADD_ON card. | One-time |
ATM_FEE | Fee charged per ATM withdrawal. | Real-time |
INTERNATIONAL_ATM_FEE | Fee charged per ATM withdrawal made outside the card’s home country. | Real-time |
ATM_DECLINE_FEE | Fee charged when an ATM transaction is declined. | Real-time |
NON_ATM_DECLINE_FEE | Fee charged when a non-ATM transaction is declined (e.g., when the merchant category code is not 6011). | Real-time |
ECOM_FEE | Fee charged per e-commerce or online transaction. | Real-time |
POS_FEE | Fee charged per point-of-sale (POS) transaction. | Real-time |
Real-time transactions
When a fee or FX margin is charged during a real-time transaction, a separate transaction type called Fee_Debit is created.
If the transaction is later reversed, a second transaction type, Fee_Reversal, is created. The Fee_Reversal object includes the following details:
- feeFixedOrPercentage: Indicates if the fee is a flat amount or a percentage.
- feeTransactionCurrency: Currency in which the fee was charged.
- exchangeRate: If the fee was charged in a different currency than configured, this shows the FX rate used to calculate the converted fee.
- feeAuthCurrency: Currency used during the transaction’s authorization process.
- feeName: Name of the fee applied.
- feeValueCurrency: Currency in which the fee is defined (before conversion).
- feeSlab: For tiered pricing, identifies the pricing tier applied to the transaction.
- feeValue: Amount charged as the fee.