Bill Pay Automation

Setting up an Accounts Payable (AP) workflow with Rutter


Rutter's API enables you to handle all of the common workflows needed to offer an Accounts Payable (AP) 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 Accounts used for logging Bills and Bill Payments.

  3. Step 3.

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

  4. Step 4.

    Upload Attachments to your logged Bills.

  5. Step 5.

    Create and link Bill Payments and Bill Credit Memos to Vendors and unpaid Bills.

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

Syncing bills to your app

To facilitate Bills and Bill Payments for your customers, you will need to ingest data about Bills into your platform. You can ingest existing bills from the accounting platform and/or create new bills from your application.

Pulling bills from the accounting platform

We recommend using the GET /bills endpoint to pull in any historical bills from an accounting platform. The Rutter Bill Object also references multiple other objects (such as Accounts, Vendors, Items), so you may also need to fetch all of these related objects to show a Bill in your application.

To receive the latest updates, we recommend polling the GET /bills endpoint and using the Bill webhooks from Rutter.

Rutter syncs the latest data for a connection at a scheduled interval. If you need to sync the latest bills on-demand, please use the POST /connections/incremental-sync endpoint.

Ingesting bills through your own application

If your application ingests bills, then you should use the POST /bills endpoint to create bills in your user's accounting system.

The POST /bills endpoint lets you create a bill. There are a couple of important required and optional components:

Companies vary in their accounting ledger design - some companies may contain an existing account in their chart of accounts for you to link bills and bill payments 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 existing accounts or create new ones if they don’t exist.

Retrieving bill attachments

To retrieve any attachments or files linked to a Bill, you can use the POST /bills/:id/attachments endpoint. This is helpful if the attachments include a PDF representation of the bill and you would like to display this in your application, or verify that the PDF and digital representation of the bill are consistent.

Uploading an attachment to a bill

Typically a bill record has a PDF representation that is helpful to also save to the accounting software. The POST /bills/:id/attachments endpoint lets you upload the bill in PDF or image format and attach it to bills.

Reconciling bill payments

Typically, applications will show bills and facilitate payments for them. The payments must then be synced into the user's accounting software to ensure their financial records are up-to-date.

To create payment records for Bills in the accounting software, use the POST /bill_payments endpoint.

When logging bill payments, every bill payment credits an account that serves as the source of funds for the payment. This is usually an Account that reflects a credit card (category = 'liability' and account_type = 'credit_card') or a bank (category = 'asset' and account_type = 'bank').

Handling Credits

There are situations when a vendor provides credit that can be used for paying future bills.

Creating and applying bill credit memos

To create and link bill credit memos, you can use POST /bill_credit_memos and POST /bill_credit_applications endpoint. A Bill Credit Memo can be created with POST /bill_credit_memos and is attached to a Vendor. After the bill credit memo is created, it can be later applied to a Bill. You can apply the full amount or a partial amount of the bill credit memo.

Important Objects

Credit Account

This is the account being credited in the bill. This is an Account of category = 'liability' and account_type = 'accounts_payable'.


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

Expense Account

Every bill 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.


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


You may want to tie a bill 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 bills. 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.