📃 Hack Cambridge: Monzo Receipts API
Monzo is a new kind of bank, trying to make money work for everyone.

From the beginning we’ve made it easier to see where your money is going. So you can see more than just how much you’ve spent, we’ve been working to add receipts to your Monzo transactions. Soon for selected merchants you’ll see receipts on the transaction screen in your Monzo app.

You get early access to the receipts API

Today we’re adding a new experimental Transaction Receipts to our existing developer API just for you. We’re not quite ready to make this API public yet, so this page is the only place you’ll find documentation! Try it out and let us know what you think 😊

May the best receipts integration win

We’re challenging you to add useful receipt information to your own Monzo transactions.

We’ve made the API to add the receipts, and we’ll help you get connected with it. But it’s up to you where you get the receipt information from! Here are some ideas:

  • Parse your emails to get product information from your Amazon orders
  • Screen-scrape a travel website to get journey information
  • Use machine learning or OCR to extract information from a photo of a paper bill
  • Find a company with an API for order information (Perhaps Uber or Deliveroo?)
 
We’re running a product prize, with four Lego kits to be won. Talk to our mentors for help getting started!

🏃‍♀️ Getting Started

You’ll need to be a Monzo customer to get started. If you’re not already a customer, you can sign up and start spending immediately with Apple Pay and Google Pay. 🍏

  1. 📝️ Register for our developer API
  1. 🔍 List transactions on your Monzo account
  1. 📃 Add receipt data from somewhere
  1. 🌐 (optional) Respond to our webhook, to add receipt data in real-time

We’ve written a reference Python client to help you get started, along with more details about how to register for our API 🎉

🔍 Listing Transactions

Our public developer documentation explains how to list the transactions on your Monzo account using our API. (Make sure you use the standard /transactions API, and not the AISP one!)

You’ll want to look for card payments by checking that the transaction scheme is "mastercard". You can further filter things down using the merchant ID; and then you can compare the time and amount of the transaction with receipt data from an external provider. Whatever works for you!

📃 Adding a Receipt

🤫 This API isn’t public yet, so don’t share it with anyone else!

Once you’ve found a transaction to add a receipt to, make a PUT request to https://api.monzo.com/transaction-receipts. Your request should include a JSON-encoded body with information about the receipt.

Receipts can only be added to card transactions right now (other kinds will work, but you can’t see them in the app.) 

Here’s the simplest possible receipt:

PUT https://api.monzo.com/transaction-receipts/

{