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
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:
- Mobile device is tapped to make a purchase
- Automation on mobile device is triggered
- POST request containing transaction information (merchant, amount, and card) is sent to Actual Tap
- Actual Tap creates the transaction in Actual Budget
Notes: This is in active / heavy development, issues, pull requests, feature requests etc. are welcome.
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
- Import these 2 shortcuts:
- Open Shortcuts app
- Edit the Wallet to ActualTap - Shared shorcut
- Under the Dictionary block, modify the following values
Key Text Example ActualTap URL
The URL of your ActualTap instance followed by /transactions/
https://actualtap-api.com/transactions/ API Key
The api_key
defined in your configuration file527D6AAA-B22A-4D48-9DC8-C203139E5531
- Under the Dictionary block, modify the following values
- Import these two automations:
- Select Automations
- Create new Automation to Run Immediately
- When:
- I tap any of x Wallet passes or payment cards
- 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
-
TBC