Changelog

May 16 - Introducing the platform_url Field [QuickBooks Online, Xero, ZohoBooks]

A challenging part of working with the Rutter API is figuring out where Rutter accounting objects can be found in the external accounting platform. To make this easier and more explicit, we are introducing a new platform_url field to many of our accounting objects. This link will point to the page containing the object in the external platform's accounting application.

This feature will allow developers integrating with new platforms to more quickly verify their changes in the external platform after any operation they perform with the Rutter API.

To view the page, you must already be logged into the application with the correct credentials.

The field is currently supported for three platforms, Quickbooks Online, Xero, and Zohobooks for the following endpoints

  • /accounting/accounts
  • /accounting/bills
  • /accounting/bill_payments
  • /accounting/bill_credit_memos
  • /accounting/customers
  • /accounting/expenses
  • /accounting/invoices
  • /accounting/invoice_payments
  • /accounting/invoice_credit_memos
  • /accounting/journal_entries
  • /accounting/purchase_orders
  • /accounting/vendors

For more information, visit our API Reference.

May 15 - Initial Sync Progress Bars

When a Rutter connection is syncing for the first time, there can be a lot of variability in how long the sync takes depending on the amount of data in the external platform. This can cause uncertainty as to whether there are issues with the sync, or there's simply a lot of data to sync and things are progressing as normal.

We're excited to introduce a feature on our dashboard that gives a granular progress report on how much data has synced. Now, you can see the initial sync progress for each individual entity, and the time period that entities have finished syncing through. This will provide enhanced observability and an easier way to monitor for any errors.

To use this feature, head to the Rutter Dashboard and click on any connection. At the bottom of the page, a granular progress report will be displayed. Hover over each bar to see the dates for the data that was synced. Bars with a ">" can be expanded with a click to view sub-entities and their progress.

Progress bars for Rutter entities showing the progress each of them has made towards syncing.

For more information, visit our documentation:

May 13 - Coverage Updates

  • [All] Rolling out validation rules for field character length.
  • [Dynamics 365 Business Central] GET /invoices/:id/attachments - new endpoint for Dynamics 365 Business Central.
  • [Dynamics 365 Business Central] GET /invoices/:id/attachments/file - new endpoint for Dynamics 365 Business Central.
  • [Dynamics 365 Business Central] GET /invoices/attachments - new endpoint for Dynamics 365 Business Central.
  • [NetSuite] Opt-in feature to allow different users to connect the same store to ensure per-user permissions are retained.
  • [NetSuite] POST /items - new endpoint for NetSuite, for all item types except for discount.
  • [NetSuite] PATCH /items - new endpoint for NetSuite, for all item types except for discount.
  • [NetSuite] PATCH /invoices - added support for the document_number field on the top level, and the discount_amount, discount_item_id, and account_id fields on the line items.
  • [QuickBooks] GET /invoices - added support for the service_date field on the line items.
  • [QuickBooks] POST /invoices - added support for the service_date field on the line items.
  • [QuickBooks] PATCH /invoices - added support for the service_date field on the line items.
  • [QuickBooks] GET /invoices - add support for the class_id field on both top level and the line items, depending on how the client instance is configured.
  • [QuickBooks] POST /invoices - add support for the class_id field on both top level and the line items, depending on how the client instance is configured.
  • [QuickBooks] PATCH /invoices - add support for the class_id field on both top level and the line items, depending on how the client instance is configured.
  • [QuickBooks] PATCH /expenses - added support for prepaid expenses, ie when the account_id is a bank account.
  • [QuickBooks Desktop] GET /invoices - added support for the service_date field on the line items.
  • [QuickBooks Desktop] POST /invoices - added support for the service_date field on the line items.
  • [QuickBooks Desktop] PATCH /invoices - added support for the service_date field on the line items.
  • [QuickBooks Desktop] PATCH /items - new endpoint for QuickBooks Desktop for all item types.
  • [QuickBooks Desktop] GET /invoices - added support for the po_number field under additional_fields.
  • [Zoho Books] POST /expenses - add support for the customer_id field on the line items.
  • [Zoho Books] POST /invoices - new endpoint for Zoho Books.
  • [Zoho Books] POST /invoice_payments - new endpoint for Zoho Books.
  • [Zoho Books] PATCH /invoice_payments - new endpoint for Zoho Books.

For more information, visit our API Reference.


May 9 - Filtering Objects

On many list endpoints, you can now use the filter parameter to only return objects that match a certain criteria. Some examples of filterable endpoints are List Accounts and List Customers. For more details, see Filtering Objects.


May 6 - Coverage Updates

  • [All] GET /currencies - added support for the created_at field.
  • [All] GET /customers - added support for the created_at field.
  • [Dynamics 365 Business Central] GET /bank_deposits - new endpoint for Dynamics 365 Business Central.
  • [Dynamics 365 Business Central] POST /bank_deposits - new endpoint for Dynamics 365 Business Central.
  • [Dynamics 365 Business Central] POST /bank_deposits - new endpoint for Dynamics 365 Business Central.
  • [NetSuite] GET /journal_entries/attachments - new endpoint for NetSuite.
  • [NetSuite] POST /bills - added support for additional_fields.tax_inclusive for line amount to be tax inclusive.
  • [QuickBooks] GET /journal_entries/attachments - new endpoint for QuickBooks.
  • [QuickBooks Desktop] PATCH /invoices - added support for line_items and all associated fields.
  • [QuickBooks Desktop] GET /purchase_orders - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] POST /purchase_orders - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] PATCH /purchase_orders - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] GET /sales_orders - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] PATCH /sales_orders - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] POST /sales_orders - new endpoint for QuickBooks Desktop.
  • [Xero] GET /expense - added support for the customer_id field.
  • [Xero] GET /journal_entries/attachments - new endpoint for Xero.
  • [Zoho Books] GET /customers - new endpoint for Zoho Books.
  • [Zoho Books] POST /customers - new endpoint for Zoho Books.
  • [Zoho Books] GET /invoices/:id/attachments - new endpoint for Zoho Books.
  • [Zoho Books] GET /invoice_payments - new endpoint for Zoho Books.
  • [Zoho Books] POST /invoices - new endpoint for Zoho Books.

For more information, visit our API Reference.


April 30 - New API Version: 2024-04-30

We shipped a new API version. This is now our most-recent and stable API version. Visit our API upgrade guide for more information on the changes and improvements in this version.


April 29 - Coverage Updates

  • [All] GET /invoice_payments - added support for the created_at field.
  • [All] GET /items - added support for the created_at field.
  • [All] GET /tax_rates - added support for the created_at field.
  • [NetSuite] GET /subsidiaries - added support for the created_at field for NetSuite.
  • [NetSuite] POST /bank_deposits/:id/attachments - new endpoint for NetSuite.
  • [NetSuite] PATCH /bills - added support for updating the line_items array field.
  • [QuickBooks] POST /bank_deposits/:id/attachments - new endpoint for QuickBooks.

For more information, visit our API Reference.


April 22 - Coverage Updates

  • [NetSuite] PATCH /invoices - passing in line_items: [] will zero out all existing line items.
  • [QuickBooks] POST /bill_credit_memos - added support for document_number and memo.
  • [QuickBooks] GET /customers - added support for parent_id field.
  • [Xero] POST /journal_entries/:id/attachments - new endpoint for Xero.

For more information, visit our API Reference.


April 15 - Coverage Updates

  • [NetSuite] GET /bills - added support for currency_rate.
  • [NetSuite] POST /bills - added support for currency_rate.
  • [NetSuite] PATCH /bills - added support for updating the line_items.
  • [NetSuite] GET /bill_payments - added support for currency_rate.
  • [NetSuite] POST /bill_payments - added support for currency_rate.
  • [QuickBooks] GET /bills - added support for currency_rate.
  • [QuickBooks] POST /bills - added support for currency_rate.
  • [QuickBooks] POST /customers - added support for parent_id field.
  • [QuickBooks] POST /expenses - added support for customer_id field on the line_items.
  • [QuickBooks] POST /journal_entries/:id/attachments - new endpoint for QuickBooks.

For more information, visit our API Reference.


April 10 - Sync History [QuickBooks Desktop]

We're excited to announce that QuickBooks Desktop connections now have sync history available. To access the sync history, head to the "Connections" tab on your Rutter dashboard, and select a specific connection. Then, click on the "Sync History" tab. Sync history will not appear for the first data sync (the initial sync) on a QBD connection. Sync history will begin appearing for all syncs (incremental syncs) afterwards.

For more information, visit our documentation:


April 8 - Coverage Updates

  • [Dynamics 365 Business Central] GET /bills/:id/attachments - new endpoint for Dynamics 365 Business Central.
  • [NetSuite] GET /bills/:id/attachments - new endpoint for NetSuite.
  • [NetSuite] PATCH /accounts - new endpoint for NetSuite.
  • [NetSuite] PATCH /bills - supports updating of line_items.
  • [NetSuite] POST /expenses - added support for customer_id field on the line_items.
  • [NetSuite] PATCH /invoices - supports updating of line_items.
  • [NetSuite] PATCH /vendors - new endpoint for NetSuite.
  • [QuickBooks] PATCH /customers - new endpoint for QuickBooks.
  • [QuickBooks] GET /sales_orders - new endpoint for QuickBooks.
  • [QuickBooks] POST /sales_orders - new endpoint for QuickBooks.
  • [QuickBooks] GET /vendors - updated status from unknown to archived when vendors are no longer active.
  • [Xero] POST /expenses - added support for additional_fields.tax_inclusive for line amount to be tax inclusive.
  • [Zoho Books] DELETE /expenses - new endpoint for Zoho Books.

For more information, visit our API Reference.


April 4 - Exposing POST Input Validation Rules for Expenses and Bills Endpoint

When using our POST API endpoints, sometimes you may encounter validation errors (HTTP status code 400) that indicate the data submitted is not considered valid. To help you understand why your request is being rejected and show you all the input validation rules that apply to a specific platform, we've added a new section to our documentation (under "Support by integration" for each endpoint) that outlines the input validation rules for a specific endpoint. Currently, we've added this information for the POST /bills and POST /expenses endpoint documentation but we will be adding it to other endpoints in the future.

For more information, visit our documentation:


April 1 - Coverage Updates

  • [QuickBooks] PATCH /invoice_payments - new endpoint for QuickBooks.
  • [QuickBooks] DELETE /invoice_payments - new endpoint for QuickBooks.
  • [QuickBooks] PATCH /items - new endpoint for QuickBooks.
  • [QuickBooks] PATCH /vendors - new endpoint for QuickBooks.
  • [QuickBooks Desktop] POST /invoices - added support for class_id on line_items.
  • [Xero] GET /accounts - added support for balance .
  • Added webhooks support for EXPENSE_CREATED and EXPENSE_UPDATED

For more information, visit our API Reference.


March 24 - Coverage Updates

  • [QuickBooks] POST /expenses - added support for tax_inclusive (via additional_fields). Posted amounts within the line items will now be inclusive of the tax.
  • [QuickBooks] GET /journal_entries - added support for vendor_id, customer_id, and class_id on line_items (via additional_fields).
  • [QuickBooks] POST /journal_entries - added support for class_id on line_items (via additional_fields).

For more information, visit our API Reference.


March 21 - Documentation Redesign

The Rutter Docs website has been redesigned to improve visual consistency and the ability to easily find the content you need to build with Rutter. You can utilize either our navigation system or the search feature to look up any docs you need.

Quickstart

A quick Postman reference to get set up on Rutter.

API Reference

Contains info for all Rutter objects and endpoints. The API reference also includes a Basics section that covers fundamentals of using the Rutter API, including our versioning policy, how to handle errors and rate limiting, webhooks, idempotency, and more.

Platform Guides

Guides for configuring and retrieving data for each platform supported by Rutter.

Features

Learn how to use Rutter functionality, like the Rutter Link component for user authentication, or the Rutter sandbox for platform testing.

Use cases

Guides explaining how to use Rutter for common accounting workflows, such as Expense Management or AR Automation.


March 1 - Duplicate Bank Feed Transaction IDs are Now Accepted [NetSuite]

When using the POST /bank_feeds/transactions API for NetSuite, you are now able to include Bank Feed Transaction transaction_id's within a POST request that have already been synced to Rutter without receiving an input rejection error. You'll see that the post succeeds, and in the response there will be a field duplicate: boolean which indicates whether a transaction has been previously synced or not. If duplicate: true, you'll see the metadata from the already synced transaction. The new transaction input will not override the existing data if it differs.

With this change, you do not need include error handling for the case where an already synced transaction causes an entire list of transactions to be rejected. Previously, you would have had to regenerate a valid input by removing the already synced transactions from the rejected input, and retry the post request to ensure the rest of the transactions would get synced. Rutter now handles deduplication of transactions internally before syncing them to Netsuite, which simplifies your implementation of our integration.

For more information, visit our documentation:


February 27 - Delete Monitoring [QuickBooks, NetSuite]

Rutter will now track when resources are deleted in the QuickBooks Online and NetSuite platforms. When a resource is deleted in the platform (instead of through Rutter's API), Rutter will detect these changes during the incremental sync process. Deleted entities will no longer appear in subsequent API responses. In addition, webhooks will be sent out at the moment deletes are detected, and a log of all deleted entities for each connection will be available through our new /events API.

With this change, QuickBooks Online and NetSuite users can enjoy a more streamlined data management process in Rutter.

For more information, visit our documentation: