Skip to content

Non-official client for the Revolut Bank

License

Notifications You must be signed in to change notification settings

ksami007/revolut-python

 
 

Repository files navigation

revolut-python

Travis Coveralls github PyPI License

Description

Non-official client for the Revolut Bank

I wrote a French blog post about it here

Requirements

  • Python 3
  • pip3

Installation

pip3 install -U revolut

CLI tool : revolut_cli.py

Usage: revolut_cli.py [OPTIONS]

  Get the account balances on Revolut

Options:
  -d, --device-id TEXT  your Revolut token (or set the env var
                        REVOLUT_DEVICE_ID)

  -t, --token TEXT      your Revolut token (or set the env var REVOLUT_TOKEN)
  -l, --language TEXT   language ("fr" or "en"), for the csv header and
                        separator

  -a, --account TEXT    account name (ex : "EUR CURRENT") to get the balance
                        for the account

  --version             Show the version and exit.
  --help                Show this message and exit

Example output :

Account name,Balance,Currency
EUR CURRENT,100.50,EUR
GBP CURRENT,20.00,GBP
USD CURRENT,0.00,USD
AUD CURRENT,0.00,AUD
BTC CURRENT,0.00123456,BTC
EUR SAVINGS (My vault),10.30,EUR

If you don't have a Revolut token yet, the tool will allow you to obtain one.

⚠️ If you don't receive a SMS when trying to get a token, you need to logout from the app on your Smartphone. ⚠️ You may also receive an authentication email instead of a SMS. Take note of the link on the Authenticate button. It should look like https://revolut.com/app/email-authenticate/<CODE>?scope=login. You can enter this code in the CLI.

Pulling transactions

Usage: revolut_transactions.py [OPTIONS]

  Get the account balances on Revolut

Options:
  -d, --device-id TEXT            your Revolut token (or set the env var
                                  REVOLUT_DEVICE_ID)

  -t, --token TEXT                your Revolut token (or set the env var
                                  REVOLUT_TOKEN)

  -l, --language [en|fr]          language for the csv header and separator
  -t, --from_date [%Y-%m-%d]      transactions lookback date in YYYY-MM-DD
                                  format (ex: "2019-10-26"). Default 30 days
                                  back

  -fmt, --output_format [csv|json]
                                  output format
  -r, --reverse                   reverse the order of the transactions
                                  displayed

  --help                          Show this message and exit.

Example output :

Date-time,Description,Amount,Currency
08/26/2019 21:31:00,Card Delivery Fee,-59.99,SEK
09/14/2019 12:50:07,donkey.bike **pending**,0.0,SEK
09/14/2019 13:03:15,Top-Up by *6458,200.0,SEK
09/30/2019 16:19:19,Reward user for the invite,200.0,SEK
10/12/2019 23:51:02,Tiptapp Reservation,-250.0,SEK

Containerization using Docker

In order to run Revolutbot in a container you should do the following few steps.

Pre-requirements

Install docker and docker-compose by following official documentation Docker and docker-compose.

Setup environmental variables

Create or edit .env file in the root of the project to contain the following settings:

REVOLUT_TOKEN=<YOUR-TOKEN-HERE>

Setup revolutbot configurations

Use revolutbot_config.yml to tune your trading bot the way you like it. Note that you will need to provide valid information regarding your last transaction in the revolutbot_exchange_history.csv file.

Build image

From the project root directory run:

docker-compose up -d

This will build and run the container

Userful commands

You can you the following useful commands from the root directory:

  • Start/Stop/Restart: docker-compose start/stop/restart
  • Status: docker-compose ps
  • Logs: docker-compose logs -f
  • Shell access: docker-compose exec revolutbot bash

TODO

  • Document revolutbot.py
  • RaspberryPi docker image
    • Setup docker image to trade
    • Check if rates grows very often
  • Improve coverage for revolutbot

About

Non-official client for the Revolut Bank

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.5%
  • Dockerfile 0.5%