Fees
On this page:
Introduction
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
1
Flat fee
A fixed amount that the cardholder pays regardless of the transaction amount
2
Percentage fee
A percentage applied on the transaction amount that the cardholder pays
3
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.
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.
Retrieve a specific fee
You can retrieve a specific fee by sending a GET request to /fees/{fee_id} endpoint as shown below.
Update a fee
You can update a specific fee as required. Send a PUT request to /fees/{fee_id} endpoint.
Link a fee with a card product
You can link a fee with a card product by sending a POST request to /cardproducts/{id}/fees:link endpoint as given below.
Unlink a fee from a card product
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.
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.
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.
Below you can find possible condition types:
"MCC"
"MERCHANT_ID"
"ACQUIRER_COUNTRY"
"KYC_LEVEL"
"TRANSFER_TYPE"
"IS_FORIEGN_CURRENCY_FEE"
"SCHEME_SCOPE" (has such enums as VISA, MASTERCARD, MERCURY, UNIONPAY)
"PURCHASE_TYPE" (has such enums as PURCHASE and ECOMMERCE)
"API_CHANNEL" (has such enums as API, MPGS, DAPI, LEAN)
"TRANSACTION_ORIGIN" (has such enums as DOMESTIC, FOREIGN and ANY)
Following new endpoints are implemented to maintain advanced fees:
Create advanced fees –
POST v1/advancedfees
Update advanced fees –
PUT v1/advancedfees/{id}
Get all advanced fees –
GET v1/advancedfees
Get specific advanced fee –
GET v1/advancedfees/{id}
Link advanced fee to card product -
POST v1/cardproducts/{id}/advancedfees:link
Unlink advanced fee from card product -
POST v1/cardproducts/{id}/advancedfees:link
Get list of advanced fees related to the card product -
GET v1/cardproducts/{id}/advancedfees
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