An unofficial Alexa Skill for interacting with the Monzo API.
Monzo OAuth Client
- Create a Monzo OAuth Client and make a note of the
- The client must be set to confidential and NOT public.
- Clone repository to your local machine and run the
make venvcommand to configure your environment.
- Once you have a working
virtualenv, run the
make zipcommand to create the
- Sign in to your AWS account and create a Lambda function for a custom Alexa Skill.
- Python 3.6
- Upload the
lambda.zipfile created in step one (use
make update-lambdaif you have the AWS CLI configured).
- Create an
ACCOUNT_IDenvironment variable and set it to the Owner ID value provided in your Monzo OAuth Client.
- Create an
APP_IDenvironment variable - leave this blank, we'll come back to it later.
- Configure any other application properties (role, description, etc) to your liking.
- Make a note of the
- Sign in to your Amazon Developer account and create a new Alexa Skills Kit.
- Configure the name and invocation name to your liking.
- Copy the Intent Schema, Custom Slot Types and Utterances from the
- Under Configuration, set the following properties as outlined below:
- Service Endpoint Type: AWS Lambda ARN (insert your Lambda ARN as noted earlier).
- Account Linking: Yes
- Authorization URL: https://auth.getmondo.co.uk/
- Client Id: Your Monzo OAuth Client ID
- Authorization Grant Type: Auth Code Grant
- Access Token URI: https://api.monzo.com/oauth2/token
- Client Secret: Your Monzo OAuth Client Secret.
- Configure any other required properties and enable your Alexa skill for testing.
- Once you have successfully created your Alexa Application, note the Application ID and update the
APP_IDenvironment variable in your Lambda.
Enable Alexa Skill
- Sign in to the Alexa web interface, enable your new skill and link your Monzo account - note: this will NOT work in the mobile application, only the web interface.
Once the above steps are completed, you should be good to go!
To see all accepted phrases, visit the
Alexa, ask Monzo what my balance is.
Alexa, ask Monzo how much I've spent today.
Alexa, ask Monzo how much I've spent in the last 7 days.
Alexa, ask Monzo how much I've spent on transport in the last month.
Alexa, ask Monzo what my card status is.
Alexa, ask Monzo to block my card.
Alexa, ask Monzo to unblock my card.