Presentment Currency

Velocity Android Software Development Kit Integration Guide

This is a subscription-based feature. You can show the price of your product or services on your website or app-in presentment currencies. However, you cannot make settlement in that currency. Velocity enables you to make the settlement in the configured currency.

When making payments, customers select a currency in which they want to make payment. On the payment page, Velocity converts this currency into the settlement currency and facilitates the payment in the configured settlement currency

This feature is enabled for APM and wallet. It utilizes the FX flow in Velocity. In the initialize payment response, in the card node, if FX and presentment flags are true, call the FX API to fetch available currencies. To call the FX API, refer to the following code sample

var cardInfo : mPointCardInfo
    if(cardInfo.isDcc && cardInfo.isPresentmentCurrency){
// Fetch settlement currencies from initialize response and send it in Fx Service api request
        val settlementCurrencies = cardInfo.settlementCurrencies
        if(settlementCurrencies != null && settlementCurrencies.size > 0){
  
Call Fx API for Presentment Currency to fetch available currencies
        val amount : Long  
val currency : Int 
     val saleAmount: mPointAmountInfo = mPointAmountInfo().setCurrency(currency).setPrice(amount)


        val offerCriteria: mPointExchangeOfferCriteria =
                mPointExchangeOfferCriteria().setOrderNumber(orderID)
                        .setCardType(cardInfo.type)
                        .setCountry(CountryConfig.COUNTRY_CODES.getValues().get(countryCode)).country)
                        .setSaleAmount(saleAmount)
                        .setTransactionId(mPoint.txnInfo.id)
                        .setClientId(clientId)
                        .setClientInfo(clientInfo)
                        .setSettlementCurrencies(settlementCurrencies)
         
  _mPoint.delegate = context        _mPoint.getForeignExchangeOffer(offerCriteria)   


}

After receiving the FX API response, create mPointForeignExchangeInfo object. Display the available currency and exchange amount to the customer. For details, refer to Dynamic Currency Conversion in the Integration for Stored Card section of this guide.
Refer to the following code sample:

override fun displayForeignExchangeOffers(offer: mPointExchangeOffer?, mpoint: mPoint?) {
var fxInfo : mPointForeignExchangeInfo = mPointForeignExchangeInfo()
.setId(offer?.foreignExchangeOfferId!!)
.setExchangeAmount(offer.paymentCurrencyOffers[0].exchangeAmount.price)
        .setExchangeCurrencyId(offer.paymentCurrencyOffers[0].exchangeCurrency.isoNumericCode)
.setSaleCurrencyId(offer.paymentCurrencyOffers[0].saleCurrency.isoNumericCode)
        .setSaleAmount(offer.paymentCurrencyOffers[0].saleAmount.price)
.setConversionRate(offer.paymentCurrencyOffers[0].offeredExchangeRate)
.setHmac(offer.paymentCurrencyOffers[0].validationHmac)


fxInfo.isDccOpted = true
fxInfo?.serviceTypeId = mPointForeignExchangeInfo.SERVICE_TYPE_ID.PCC_OPT_IN
}

🚧

Note: Consider the following items:

  • The mPointForeignExchangeInfo object might be required for the subsequent API calls.
  • When creating mPointForeignexchangeinfo object, set isDccOpted as true for presentment currencies.
  • Set the value service type ID for the mPointForeignexchangeinfo object, as PCC_OPT_IN as mentioned in the previous code sample. The process is similar to FX opt-in.