Skip to content
Switch branches/tags
Go to file


Failed to load latest commit information.

Smart Receipts

Save time tracking expenses and get back to what matters


Build Status

Get it on Google Play

Turn your phone into a receipt scanner and expense report generator with Smart Receipts! With Smart Receipts, you can track your receipts and easily generate beautiful PDF and CSV reports.

Download Smart Receipts on Google Play:

  • Smart Receipts. The free version of the app, but it also supports an in-app purchase subscription.
  • Smart Receipts Plus. A 'paid' app from back before Google supported in-app purchases.

The free and plus versions versions are identical, except the plus version offers the following enhancements:

  • The paid version has no ads
  • The paid version supports automatic backups to Google Drive
  • The paid version automatically processes exchange rate conversions
  • The paid version allows you to automatically break down prices by category/payment method in your reports
  • The paid version allows you to edit/customize the pdf report footer (by default, it is "Report Generated with Smart Receipts")

Table of Contents


Curious about how Smart Receipts works? Check out our usage guide:

Or watch out YouTube video series.


  • Create expense report "folders" to categorize your receipts
  • Take receipt photos with your camera's phone
  • Import existing pictures on your device
  • Import PDF receipts
  • Save receipt price, tax, and currency
  • Tag receipt names, categories, payment method, comments, and other metadata
  • Create/edit/delete all receipt categories
  • Track distance traveled for mileage reimbursement
  • Automatic exchange rate processing
  • Smart prediction based on past receipts
  • Generate PDF, CSV, & ZIP reports
  • Fully customizable report output
  • Automatic backup support via Google Drive
  • OCR support for receipt scans
  • Graphical breakdowns of spending per category
  • Cross-organization setting standardization


Smart Receipts is broken into a few core modules:

  • app. All common application code for both the free and plusFlavor flavors of the application are defined here. In practice, all development work should occur in this module
  • wBMiniLibrary. A few legacy items that haven't been moved into the Library module, but it's otherwise unused.

Please note that that in order to use this project fully, you will need to replace the following place holder files:

  • app/src/main/res/values/secrets.xml. You can copy the secrets.xml.sample file and rename the keys inside to achieve this behavior. This is used for low usage keys
  • app/src/free/res/values/ads.xml. The ads file in smartReceiptsFree. You can add adUnitId and classicAdUnitId to enable support for AdMob Native and Classic Ads, respectively.
  • app/src/free/res/xml/analytics.xml. The analytics file in smartReceiptsFree. You can add a key here if you wish to enable Google Analytics.

When running a build locally, we run the following operations via our gradle script to extract these secrets (if you have a valid GPG key) to allow the app to operate as expected:

  • git update-index --assume-unchanged app/src/free/res/values/ads.xml
  • git update-index --assume-unchanged app/src/free/res/xml/analytics.xml
  • git update-index --assume-unchanged app/src/main/res/values/secrets.xml
  • gpg -d secrets.tar.gpg | tar xv

The last command in this script uses a "SmartReceipts/" GPG key to extract the encrypted secrets from this file. Feel free to replace this key with your own local variant for testing/build purposes.


If you like our project, please consider donating:


Contributions are always welcome! Please open an issue to report a bug or file a feature request to get started.

Continuous Integration

We currently use Travis-CI for our continuous integration in order perform tests against new commits, allowing us to avoid potential regressions. You can monitor the current build status here:

All repository secrets have been replaced with placeholder files, so Travis should be able to build properly for all requests.

Legacy Branch Access

We changed our way of saving secrets files starting with release_4.14.0. If you wish to interact with a release prior to then, you should perform the following:

  1. tar cvf secrets.tar app/src/main/res/values/secrets.xml app/src/free/res/values/ads.xml app/src/free/res/xml/analytics.xml
  2. rm app/src/free/res/values/ads.xml
  3. rm app/src/free/res/xml/analytics.xml
  4. rm app/src/main/res/values/secrets.xml
  5. git checkout YOUR_DESIRED_BRANCH
  6. tar xvf secrets.tar

Which should allow these to build properly with the placeholder files.


The GNU Affero General Public License (AGPL)

Copyright (c) 2012-2018 Smart Receipts LLC (Will Baumann)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <>.


Google Play and the Google Play logo are trademarks of Google LLC.