Architecture overview
The DCC Android app uses an Android Interface Definition Language (AIDL) interface to communicate between your payment application and the DCC Container App. The following diagram shows how the pieces fit together.Transaction sequences
The DCC Android app supports two transaction flows depending on the scenario:- Sale transaction: the card is checked for DCC eligibility and, if eligible, the cardholder is presented with a currency choice.
- Top-up and completion transaction: the eligibility check is skipped and the latest exchange rate is retrieved for a currency that is already known.
Sale transaction sequence
A sale transaction is the most common flow. The card is checked for DCC eligibility, and if eligible, the cardholder is offered a choice between paying in the local currency or their home currency. The following diagram shows the full sequence between the payment app, the DCC app, the Fexco DHS, and the authorization host.Top-up and completion sequence
A top-up or completion transaction is used when the foreign currency is already known, for example, when completing a pre-authorization or topping up a prepaid card. There is no eligibility check and no cardholder choice screen. The DCC app retrieves the current exchange rate for the specified currency and the payment app proceeds directly to authorization. The following diagram shows the full sequence for this flow.Next steps
Now that you understand how the DCC Android app works, the following pages cover how to set it up and use it in your payment application.- Set up the DCC library: add the DCC API library to your Android project and connect it to the DCC Container App.
- DCC service methods:
reference for all methods available through the
IRemoteDCCServiceinterface. - Error messages: a reference of all error reasons the DCC app can return, what causes them, and how to interpret them.
