Expense Management

Setting up a credit or prepaid card expense management workflow with Rutter

Introduction

Rutter's API enables you to handle all of the common workflows needed to offer an expense management product to your customers.

  1. Step 1.

    Connect to a business entity’s accounting system using Rutter Link.

  2. Step 2.

    Create or link the business entity’s credit card or bank asset Account.

  3. Step 3.

    Create Expenses and link Vendors, expense Accounts, Customers, Items, and Tracking Categories (Classes, Locations, and Departments).

  4. Step 4.

    Upload Attachments to your logged Expenses.

  5. Step 5.

    Handle employee reimbursements with Vendors, Bills, and Bill Payments.

  6. Step 6.

    Handle bank top ups and withdrawals with Journal Entries (prepaid only).

  7. Step 7.

    Handle credit card statement payments with Journal Entries (credit card only)


Connect to the Business Entity's Accounting System

Embed Rutter Link into your application and walk through an end to end business authentication flow in order to create a new Connection. This Connection represents the business accounting system and contains an access_token used to read and write data for that instance.

Make your first connection in minutes

Follow our guide to get up and running

Explore Quickstart

When logging expenses, every expense must pull from an account as a source of funds that continuously gets credited. This is an Account of category = 'liability' and account_type = 'credit_card' for logging credit card expenses, and an Account of category = 'asset' and account_type = 'bank' for logging prepaid card or bank expenses.

Companies vary in their accounting ledger design - some companies may contain an existing account in their chart of accounts for you to link expenses to, and other companies may require you to create a new account in their chart of accounts. The GET /accounts and POST /accounts endpoints let you link an existing credit card or bank account or create a new one if it doesn’t exist.


Creating a detailed expense

When creating an expense, our API lets you include granular information such as tax rate, location, memo, and more. For details, see the POST /expenses documentation.


Uploading an attachment to a logged expense

Often, businesses using your expense management solution will want to see a proof of expense attached in the form of a receipt or a PDF. The POST /expenses/:id/attachments endpoint lets you upload a file and customize the file name attached to an expense.


Handling employee reimbursement requests and payments

Employee reimbursement requests and reimbursement payments are reflected in the accounting system in the form of Bills and Bill Payments. To log an employee reimbursement request, use POST /bills to create a bill containing the reimbursement amount. Use POST /vendors to create a specific vendor per employee that you can link to the bill. Once the reimbursement is approved and payment is made, use POST /bill_payments to log a reimbursement payment against the requested reimbursement.


Handle credit card statement payments

Use POST /journal_entries to reflect withdrawals and top ups, where the account being credited is their cash account (the account they are using to pay for the credit card, often their core bank account with category = asset and account_type = 'bank'), and the account being debited is their prepaid asset or bank account.


Represent expense refunds

There will be times where an expense is refunded, such as when a vendor is unable to deliver a service and chooses to refund the payment instead of issuing credit. You can use the POST /expenses endpoint with the expense_type parameter to specify an expense refund, and you should keep the debit/credit accounts the same as in the original expense object.


Important Objects

Credit Account

This is the account being credited in the expense. This is an Account of category = 'liability' and account_type = 'credit_card' for logging credit card expenses, and an Account of category = 'asset' and account_type = 'bank' for logging prepaid card or bank expenses.

Vendor

This is the vendor linked to the expense. The GET /vendors and POST /vendors endpoints let you create and link vendors as you log expenses.

Expense Account

Every expense contains multiple line items, each of which debit an Account of account_type = expense. The GET /accounts endpoint lets you fetch all accounts, and you can fetch all expense accounts by adding the account_type: expense query filter.

Customer

You may want to tie an expense to a Customer in order to better understand cost of goods sold. GET /customers lets you fetch all customers.

Item

You may want to tie an expense to an Item in order to better understand cost of goods sold. GET /items lets you fetch all items in the business entity’s catalog.

Tracking Categories

Tracking Categories are a way for a businesses to categorize expenses. The three main dimensions used for categorization are Locations, Classes, and Departments. Use GET /locations, GET /classes, and GET /departments to fetch and attach the relevant categorizations.