# Overview The chapter focuses on the description of each of the components involved in the xPay payout process and what each component is responsible for. All mentioned components and their responsibilities are made and managed by Verestro. ## Terminology
**Name** **Description**
Customer/Merchant Institution which uses Verestro products. This institution decides which payment method should be available in the solution and how transaction should be processed.
xPayAn external institution that holds cards in a mobile wallet - Apple Pay and Google Pay wallet.
AcquirerAn external institution that communicates with the card issuer, protects against fraud and taking responsible for executing the transaction and checking the correctness of 3D Secure authentication.
BalanceThe current balance of funds for a given user stored in the Antaca service.
CardA payment instrument issued by the issuer to a given user. You can send and receive funds using the card.
Issuer The Bank/card issuer. It determines whether a given transaction can be performed and whether 3D Secure authentication is needed.
Payout A method that allows you to order a transfer from your balance to provided payment card.
User An end user, e.g. the entity to which the card was issued.
Component An application service that is a part of the entire technical solution, for example Payout API.
## Application components This chapter is describing all components involved in the processes included in the Payout to xPay product. Each of the sections below describes each of the components. Internal services are the key elements of the solution implemented on the Verestro side. Each of them has a separate responsibility in the entire payout to xPay process. Below table describes every internal components in our Payout to xPay application. [xPay Payout](https://developer.verestro.com/books/payout-to-xpay/page/overview#bkmrk-admin-panel-1) is our internal service integrated with Google Pay and Apple Pay, thus enabling getting the card tokens from these wallets, generating pay me link allowing to order payouts and connecting with acquirer to perform ordered transfer and handling 3D Secure process.
**Component** **Description**
[xPay Payout API](https://developer.verestro.com/books/payout-to-xpay/page/overview#bkmrk-admin-panel-1) The backend component of the Payout to xPay application. It is responsible for opening a payment session, generating a payment link and ordering the transaction to an acquiring institution.
[xPay Payout frontend app](https://developer.verestro.com/books/payout-to-xpay/page/overview#bkmrk-admin-panel-1) The frontend component of the Payout to xPay application. It contains a frontend view to which the recipient of the payment link is redirected. In addition, it gets recipient's card from xPay Wallet and passes it to the Payout to xPay API.
[Antaca API](https://developer.verestro.com/books/payout-to-xpay/page/overview#bkmrk-antaca) Backend component which manages balances and allows certain operations related to them. Such operations include creating a new balance, debiting and crediting a balance or deactivating a balance. This component is not part of the Payout to xPay application, but it is crucial to this service as the funds of the payout sender are taken from his balance in Antaca.
@startuml skinparam ParticipantPadding 30 skinparam BoxPadding 30 skinparam noteFontColor #FFFFFF skinparam noteBackgroundColor #1C1E3F skinparam noteBorderColor #1C1E3F skinparam noteBorderThickness 1 skinparam sequence { ArrowColor #1C1E3F ArrowFontColor #1C1E3F ActorBorderColor #1C1E3F ActorBackgroundColor #FFFFFF ActorFontStyle bold ParticipantBorderColor #1C1E3F ParticipantBackgroundColor #1C1E3F ParticipantFontColor #FFFFFF ParticipantFontStyle bold LifeLineBackgroundColor #1C1E3F LifeLineBorderColor #1C1E3F } actor "Sender" as sender participant "Customer App" as customer participant "Payout to xPay App" as verestrobackend participant "Google/Apple Pay" as xpay actor "Money Recipient" as user == Customer's part of the process == sender->customer: Order payout (trx data) customer->verestrobackend: Create payment link(trxData, balanceId) verestrobackend->verestrobackend: Check if the user has sufficient funds customer<-verestrobackend: Return payment link sender<-customer: Return payment link ==== sender-->user: Send payment link note left of user: Clicks on link == Verestro's part of the process == user->verestrobackend: Redirect recipient to payment link webview note right of verestrobackend: Recipient sees that he can claim money from sender note right of verestrobackend: Recipient choosed xPay verestrobackend->xpay: Open recipient xPay wallet note left of xpay: Recipient chooses card verestrobackend<-xpay: Return card verestrobackend<-verestrobackend: Make payout to recipient card customer<-verestrobackend: Notify customer about payout status user<--verestrobackend: Top up card if status success ==== @enduml ### xPay Payout A component that supports all key payout to xpay processes. Each of the processes will be described below, maintaining the sequence of steps that take place from the initiation of the payout by the sender to the recipient of the payment using the xPay card token. The xPay Payout component is responsible for the following actions:
1. **Initialization of the payment shipment**, i.e. the moment when the option to order a transfer to a given recipient was selected and completion of transfer information such as amount or currency was provided by money sender. Payout to xPay API checks whether the sender has sufficient funds in the balance.
2. **Payment link creation and thus opening a payment session in our system** (storing information about the planned transaction, such as amount, currency and recipient data). The generated payment link is returned to the sender so that the sender can send it to the potential recipient as a SMS message or via other communicators.
3. **Opening Payout to xPay frontend view**. This is the view to which the recipient is directed after clicking on the link received from the sender. This view shows what amount the sender is sending and how the recipient can receive the money being sent (select the card from xPay wallet to receive the money).
4. **Communicating with xPay server**. Once the xPay wallet is selected, we communicate with Apple Pay or Google Pay so that the recipient can select the appropriate card from the wallet. The selected recipient's card is returned in the form of an encrypted token to which the declared amount should be transferred.
5. **Processing payment and 3DSecure authentication**. Payout to xPay API will perform the order to top up the recipient's card by contacting the acquiring institution and debiting the sender's balance in Antaca.
### Antaca This is the initial component in the payout process. Antaca is responsible for creating balances for you company and it's users, or allowing to credit/debit your balance depending on the direction of the funds. Antaca also monitors the balance of each entity, ensuring that the requested action on the balance is performed after meeting specific conditions, for example, it is not possible to debit the balance for more funds than are currently in the balance (you cannot send 100 EUR if you have only 99 EUR on your balance). It is also not possible to top up a balance that has been deactivated. The table below shows Antaca's methods for creating, crediting and debiting a balance.

**Tip:** In the Payout to xPay product, Verestro is responsible for appropriately calling the Antaca methods that credit or debit the balance. You, as a Customer, only need to send us information on which balance and of what amount we should call a given operation.