Workflow Guides

Accounts Payable (AP) Automation

Setting up an accounts payable workflow with Rutter


Rutter API enables you to handle all of the common workflows needed to offer an accounts payable product to your customers.

  1. Connect to a business entity’s accounting system using Rutter Link. See Getting Started for more info on creating your first connection.
  2. Create or link the business entity’s Accounts used for logging Bills and Bill Payments.
  3. Create Bills and link Vendors, expense Accounts, Customers, Items, and Tracking Categories (Classes, Locations, and Departments).
  4. Upload Attachments to your logged Bills.
  5. Create and link Bill Payments and Bill Credit Memos to Vendors and unpaid Bills.

Core Workflows

Create a Connection

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.

See our Getting Started guide for more information on creating your first Connection.

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.

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 API 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 APIs 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 Bill Attachment APIs. 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 /attachments endpoints 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. 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.

Additional Information

Frequently Asked Questions

How do I create a bill that includes line items for both expense accounts and products & services?

Each Rutter line item in a bill represents 1 account or 1 product/service (Item). The account_id field specifies an account and the item field specifies a product/service. You must specify one or the other per line item. For example, a bill referencing 2 accounts and 1 product/service will have 3 line items in total.

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 APIs 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 API 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 /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.