> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fexco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Android app overview

> How the Fexco DCC Android app works and how it communicates with your payment application.

The Fexco DCC Android app runs as a standalone application on the
terminal alongside your payment application. It handles the connection
to the Fexco rate service, renders the cardholder choice screen, and
logs analytics. Your payment application communicates with it through
a local API to check DCC eligibility, trigger the choice screen, and
record transaction results.

If your company distributes or manufactures Android POS terminals and
you want to offer [Dynamic Currency Conversion
(DCC)](https://docs.fexco.com/dcc/guides/getting-started/what-is-dcc.md) to cardholders at the
point of sale, this guide explains how the app works. To set up your
Android project, see
[Set up the DCC library](https://docs.fexco.com/dcc/guides/android-app/integrate-library.md).

## Architecture overview

The DCC Android app uses an [Android Interface Definition Language (AIDL)](https://developer.android.com/develop/background-work/services/aidl)
interface to communicate between your payment application and the DCC
Container App.

The following diagram shows how the pieces fit together.

Click each part of the diagram to learn more

## 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.

Understanding these flows shows where the DCC app fits into your payment
application's checkout process and what information passes between each
component at each stage.

### 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.

Click each step to walk through the sale transaction

### 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.

Click each step to walk through the top-up sequence

## 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](https://docs.fexco.com/dcc/guides/android-app/integrate-library.md):
  add the DCC API library to your Android project and connect it to the
  DCC Container App.
* [DCC service methods](https://docs.fexco.com/dcc/developer-resources/android-app/iremotedccservice.md):
  reference for all methods available through the `IRemoteDCCService`
  interface.
* [Error messages](https://docs.fexco.com/dcc/developer-resources/android-app/error-messages.md):
  a reference of all error reasons the DCC app can return, what causes
  them, and how to interpret them.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.