### Revolut API ```sequence User->Hivello App: Update User's bank account information Hivello App->Hivello App: Run hourly cronjob\nto get earning via local cached file Hivello App->Hivello API: Call API update earning Hivello API->Myst API: Validate earning Hivello API->Hivello API: Save Myst token earnned to DB Art->Hivello API: Call the API to export the user's token earned to CSV file Art->Andrew: Art sent file csv to Andrew Andrew->Hivello Internal Payment App: Andrew upload CSV file Hivello Internal Payment App->Hivello Internal Payment App: Split CSV file into multiple sets with less than 1000 records Hivello Internal Payment App->Revolut API: Request an access token for client Hivello Internal Payment App->Revolut API: Validate CSV files Hivello Internal Payment App->Hivello Internal Payment App: Filter and keep the correct payment destinations Hivello Internal Payment App->Revolut API: Call the API create a file payment consent Hivello Internal Payment App->Revolut API: Call the API Upload CSV files Hivello Internal Payment App->Hivello Internal Payment App: Create an authorization URL with\nthe parameters returned by Revolut Hivello Internal Payment App->Revolut Bussiness UI: Open the authorization URL Andrew->Revolut Bussiness UI: Confirmation of Authorization Revolut Bussiness UI->Hivello Internal Payment App: Callback redirect_uri and return code to authenticate Hivello Internal Payment App->Revolut API: Exchange the authorisation code for an access token Hivello Internal Payment App->Revolut API: Initiate the file payment Hivello Internal Payment App->Revolut API: Check the file payment status Hivello Internal Payment App->Hivello Internal Payment App: Show failed records Revolut API->Hivello API: Call webhook API update record Hivello API->Database: Update transaction status database ``` ### Revolut API ```sequence Admin->Hivello Internal Payment App: Get user's earnings CSV file Hivello Internal Payment App->Hivello API: Get list user earning by datetime Hivello API->Coin Market Cap API: Convert token to USDT Admin->Admin: Review and update CSV file Admin->Hivello Internal Payment App: Upload CSV file Hivello Internal Payment App->Revolut API: Validate CSV files Hivello Internal Payment App->Hivello Internal Payment App: Filter and keep the correct payment destinations Admin->Hivello Internal Payment App: Input configuration number\nand trigger split file function Hivello Internal Payment App->Hivello Internal Payment App: Split CSV file into multiple sets\nbased on configure number Hivello Internal Payment App->Revolut API: Request an access token for client Hivello Internal Payment App->Revolut API: Call the API create a file payment consent Hivello Internal Payment App->Revolut API: Call the API Upload CSV files Hivello Internal Payment App->Hivello Internal Payment App: Create an authorization URL with\nthe parameters returned by Revolut Hivello Internal Payment App->Revolut Bussiness UI: Open the authorization URL Admin->Revolut Bussiness UI: Confirmation of Authorization Revolut Bussiness UI->Hivello Internal Payment App: Callback redirect_uri and return code to authenticate Hivello Internal Payment App->Revolut API: Exchange the authorisation code for an access token Hivello Internal Payment App->Revolut API: Initiate the file payment Hivello Internal Payment App->Revolut API: Check the file payment status Hivello Internal Payment App->Hivello Internal Payment App: Show failed records Revolut API->Hivello API: Call webhook API updates records Hivello API->Database: Update transactions status to database ```