On this page:


The fee generally refers to a stream of revenue generating from your customers. Which means that when the cardholder performs a transaction an associated fee with the card product will be charged.

At nCore platform you can link different fees on the card product based on transaction types (e.g. purchase, withdrawal, and etc.). The transaction will be authorized only if there are sufficient funds available in the account which means it is real time fee evaluation. Real time fee evaluation requires that the account has sufficient funds available to cover both the transaction amount and the fee to authorize the transaction.

What does it mean to have sufficient funds?

There are typically three types of amounts involved in an authorization, which are:

  • Transaction amount (TA) is the amount requested in the authorization

  • Acquirer fee (AF) is the fee that is charged by the acquirer (optional)

  • Issuer fee (IF) issuer fee is the fee that you configure and link to the card product (optional)

In order to authorize the transaction the account should have sufficient funds to cover the three amounts, otherwise the authorization will be declined. That is funds in account ≥ TA + AF + IF.

Following are the fee types offered in nCore.

S No.

Fee Type

Fee Description


Flat fee

A fixed amount that the cardholder pays regardless of the transaction amount


Percentage fee

A percentage applied on the transaction amount that the cardholder pays


Range fee

Transaction amount based fee slabs where each slab has a flat fee or a percentage fee

Fee APIs

Create a fee

You can create a fee as required by sending a POST request to /fees endpoint as given below.

POST /fees

{ "description": "Withdrawal Fee", "type": "FLAT", "currency": “USD”, "amount": 2.5, "transaction_type": "WITHDRAWALS", "transaction_origin": "DOMESTIC" }

Retrieve a fee

nCore offers two retrieval options for fees.

Retrieve all fees

You can retrieve all existing fees by sending a GET request to /fees endpoint as shown below.

GET /fees

Retrieve a specific fee

You can retrieve a specific fee by sending a GET request to /fees/{fee_id} endpoint as shown below.

GET /fees/{fee_id}

Update a fee

You can update a specific fee as required. Send a PUT request to /fees/{fee_id} endpoint.

PUT /fees/{fee_id}

{ "description": "Withdrawal Fee", "active": true, "type": "RANGE", "currency": "USD", "range": [ { "greater_than": 0, "less_than_equal_to": 1000, "percentage": 3 },

{ "greater_than": 1000, "less_than_equal_to": 2000, "percentage": 2 }

] }

You can link a fee with a card product by sending a POST request to /cardproducts/{id}/fees:link endpoint as given below.

POST /cardproducts/{id}fees:link

You can unlink a fee from a card product as per your requirement by sending a POST request to /cardproducts/{id}/fees:unlink endpoint. Noted that fee will not charge for a specific card product after unlinking it.

POST /cardproducts/{id}/fees:unlink

Retrieve linked fees

You can retrieve all fees which are linked with your card product. Send a GET request to /cardproducts/{id}/fees endpoint as shown below.

GET /cardproducts/{id}/fees

Fee configuration for individual channel

We introduce new ‘source_channel’ parameter , which is added to the Fees APIs. Possible values are ‘MPGS’, ‘DAPI’ or ‘ANY’ (default). It gives an opportunity to choose an appropriate channel, so that fee for every channel can be applied accordingly. This parameter is currently applicable for ‘transaction_type’ = ‘TRANSFERS’ only.

Also we implemented ability to post fee on recipient account instead of sender account, so you can charge the transfer funds fee to recipient instead of sender.

If there is a fee plan (with ‘source_channel’ = ‘DAPI’, ‘MPGS’ or ‘ANY’) linked to the recipient card product and ‘source_channel’ in the transfer request received is either ‘MPGS’ or ‘DAPI’, then fee is being deducted from the recipient account. Below you can find a table which describes different scenarios:

Advanced fees

We have added ability for system to allow fees configuration along with the dynamic conditions so that fees can be applied based on the configured conditions.

Following new endpoints are implemented to maintain advanced fees:

Besides, we have added new parameter “is_forex_fee" in advanced fees. This parameter works in combination with transaction type same as PURCHASE_FOREIGN_CURRENCY in fees.

Last updated