Skip to content

Automatically create transactions in Actual Budget when you use Tap-to-Pay on a mobile device

License

Notifications You must be signed in to change notification settings

bobokun/actualtap-py

Repository files navigation

ActualTap-Py


Heavily inspired by Actual Tap but written in python using Actualpy and a added a few enhancements.
Special thanks to @MattFaz for the initial Actual Tap work!
Automatically create transactions in Actual Budget when you use Tap-to-Pay on a mobile device

Contents

Overview

Actual Tap uses FastAPI that utilises the Actualpy to create transactions.

The primary purpose of Actual Tap is receive a POST request from mobile devices (.e.g iOS Shortcuts) when a Tap to Pay transaction is made. Once the POST request is received Actual Tap will POST the Name and Amount to Actual Budget.

In addition, there is a configuration file that allows you to map between the Tap to Pay account and your Actual Account ID.

Ideal flow:

  1. Mobile device is tapped to make a purchase
  2. Automation on mobile device is triggered
  3. POST request containing transaction information (merchant, amount, and card) is sent to Actual Tap
  4. Actual Tap creates the transaction in Actual Budget

Notes: This is in active / heavy development, issues, pull requests, feature requests etc. are welcome.


Running the App

To run Actual Tap locally (i.e. for development or not containerised):

  • $ cp config/config.yml.sample config/config.yml
  • Edit the config.yml file accordingly
  • Run locally using uvicorn main:app --host 0.0.0.0 --port 8000

To run Actual Tap in docker ensure you edit variables in the docker-compose.yml file.

  • Note: You will also need to update the volumes path

The app will be running on port 8000

iOS Setup

  1. Import these 2 shortcuts:
  2. Open Shortcuts app
  3. Edit the Wallet to ActualTap - Shared shorcut
  4. Import these two automations:
  5. Select Automations
  6. Create new Automation to Run Immediately
  7. When:
    • I tap any of x Wallet passes or payment cards
  8. Do:
    • Receive transaction as input

    • Dictionary

      Key Text
      amount (shortcut Input -> Amount)
      card (shortcut Input -> Card or Pass)
      merchant (shortcut Input -> Merchant)
      name (shortcut Input -> Name)
    • Run shortcut -> Wallet Transactions to JSON - Shared

    • Run shortcut -> Wallet to ActualTap - Shared

Android Setup

TBC

About

Automatically create transactions in Actual Budget when you use Tap-to-Pay on a mobile device

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •