Changelog

Sign up for updates

Nov 4 - Coverage Updates

  • [All platforms] GET /invoice_credit_memos - added support for filtering by document_number.
  • [Dynamics 365 Business Central] POST /bank_deposits - added support for linking multiple linked_payments and line_items.
  • [NetSuite] GET /customers - added support for payment_terms_id.
  • [QuickBooks] PATCH /invoices - added support for additional_fields.tax_rate_id.
  • [Xero] PATCH /accounts/:id - new endpoint.
  • [Xero] PATCH /customers/:id - new endpoint.
  • [Xero] PATCH /invoice_credit_memos/:id - new endpoint.
  • [Zoho Books] GET /tasks - new endpoint.

For more information, visit our API Reference.


Oct 28 - Coverage Updates

  • [All platforms] GET /bill_credit_memos - support filtering by document_number.
  • [QuickBooks] PATCH /invoice_payments - added support for payment_method_id.
  • [QuickBooks] POST /items - added support for creating inventory items.
  • [Xero] POST /bill_credit_applications - added support for transaction_date.
  • [Xero] POST /expenses - added support for customer_id.
  • [Xero] POST /invoices - added support for status.

For more information, visit our API Reference.


Oct 21 - Coverage Updates

  • GET /connections/status - add health status indicating if connection is healthy or unhealthy.
  • [NetSuite] GET /vendors - added support for payment_terms_id.
  • [NetSuite] GET endpoints with line items (e.g. /invoices, /bills, /purchase_orders, sales_orders) - added support for a platform_id for each line item.
  • [QuickBooks Desktop] PATCH /customers - automatically split contact_name into first and last name.
  • [QuickBooks] GET /payment_methods, GET /payment_methods/:id - new endpoint.
  • [QuickBooks] POST /invoice_payments - added support for payment_method_id.
  • [QuickBooks] POST /invoices, PATCH /invoices - added support for additional_fields.department_id.
  • [QuickBooks] POST /invoices - added support for addresses field.
  • [Zoho Books] GET /projects - new endpoint.

For more information, visit our API Reference.


Oct 14 - Coverage Updates

  • [All platforms] POST /bills/:id/attachments - ensure file format validator is case insensitive.
  • [QuickBooks Desktop] PATCH /bill_credit_memos/:id - new endpoint.
  • [QuickBooks Desktop] POST /invoice_credit_memo - support setting class_id on line items.
  • [QuickBooks] DELETE /purchase_orders/:id - new endpoint.
  • [QuickBooks] GET /items - deactivated items are now returned with { status: archived } instead of { status: unknown }.
  • [QuickBooks] PATCH /invoices - added support for custom_fields.
  • [QuickBooks] POST /invoice_payments - added support for reference field.
  • [QuickBooks] POST /journal_entries - allow setting document_number.
  • [Zoho Books] POST /expenses - support tax_rate_id on refunds.

For more information, visit our API Reference.


Oct 7 - Coverage Updates

  • [NetSuite] GET /balance_sheets - include retained earnings adjustment.
  • [NetSuite] GET /balance_sheets - include year-to-date net_income.
  • [NetSuite] POST /invoices - allow setting location_id.
  • [NetSuite] POST /invoice_credit_memos - allow setting location_id.
  • [Sage Intacct] POST /expenses - allow setting additional_fields.journal_type.
  • [QuickBooks] POST /invoices - allow setting additional_fields.internal_memo.
  • [QuickBooks] POST /invoice_credit_memos - allow setting memo.
  • [QuickBooks Desktop] POST /bill_credit_memos - account_id now optional.

For more information, visit our API Reference.


Sept 30 - Coverage Updates

  • [NetSuite] GET /invoices/:id/pdf - new endpoint for NetSuite.
  • [QuickBooks] GET /invoices/:id/pdf - new endpoint for QuickBooks.
  • [QuickBooks Desktop] DELETE /purchase_orders/:id - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] POST /invoice_credit_memos - allow setting memo field.
  • [QuickBooks Desktop] POST /sales_orders - allow setting payment_terms_id.
  • [Sage Intacct] POST /bills - allow setting department_id and location_id.
  • [Sage Intacct] POST /bill_credit_memos - allow setting department_id and location_id.
  • [Xero] GET /invoices/:id/pdf - new endpoint for Xero.

For more information, visit our API Reference.


Sept 23 - Coverage Updates

  • [Intuit Bank Feeds] GET /bank_feed_accounts/:id - last_synced_at field now reflects when Intuit last pulled data.
  • [NetSuite] PATCH /customers - new endpoint for NetSuite.
  • [Zoho Books] - GET /journal_entries - new endpoint for Zoho Books.
  • [Zoho Books] - POST /journal_entries - new endpoint for Zoho Books.
  • [Zoho Books] - POST /journal_entries - added support for setting custom_fields values on the journal entries object.
  • [All platforms] Allow rotating connection access_tokens - new endpoint.
  • GET /bill_credit_memos, GET /purchase_orders - added support for filtering by vendor_id.

For more information, visit our API Reference.


Sept 23 - Xero Bank Feeds

We're excited to announce that Rutter's Bank Feeds product now offers support for syncing transactions to Xero. Bank Feeds allows fintechs who offer banking or card services to automatically sync their customers' transactions into those customers' ERPs, cutting down on manual data entry and saving them significant time. Along with Xero, Rutter supports syncing bank feed transactions to Intuit QuickBooks, NetSuite, Sage Intacct, and Sage Business Cloud.

For more information, visit our announcement or our Xero Bank Feeds Guide.


Sept 16 - Coverage Updates

  • All Accounts Receivable transactions (GET /invoices, GET /invoice_payments, GET /invoice_credit_memos, GET /sales_orders) - added support for filtering by customer_id.
  • [QuickBooks] GET /invoices/custom_fields - added support for fetching the metadata for all custom fields on the invoice object.
  • [QuickBooks] POST /invoices - added support for setting custom_fields values on the invoice object.
  • [QuickBooks Desktop] DELETE /invoice_credit_memos/:id - new endpoint for Xero.
  • [QuickBooks Desktop] POST /bills - allow due_date to be optional if payment_terms_id is set.
  • [QuickBooks Desktop] POST /bill_payments/:id - added support for the reference field.
  • [QuickBooks Desktop] PATCH /bill_payments - new endpoint for QuickBooks Desktop.
  • [Sage Intacct] POST /bills - allow setting additional_fields.task_id field on line items.
  • [Webhooks] INVOICE_PAYMENT_CREATED and INVOICE_PAYMENT_UPDATED webhooks are now supported.
  • [Xero] DELETE /invoice_payment/:id - new endpoint for Xero.
  • [Zoho Books] GET /bills/custom_fields - added support for fetching the metadata for all custom fields on the bill object.
  • [Zoho Books] POST /bills - added support for setting custom_fields values on the bill object.

For more information, visit our API Reference.


Sept 9 - Coverage Updates

  • [NetSuite] GET /bills - added support for the payment_terms_id field.
  • [QuickBooks] GET /bills/:id - added support for displaying any journal entries associated with the bill under additional_fields.linked_journal_entries.
  • [QuickBooks] GET /bill_payments/:id - added support for displaying any journal entries associated with the bill payment under additional_fields.linked_journal_entries.
  • [QuickBooks] GET /invoices/:id - added support for displaying any journal entries associated with the invoice under additional_fields.linked_journal_entries.
  • [QuickBooks] GET /invoice_payments/:id - added support for displaying any journal entries associated with the invoice payment under additional_fields.linked_journal_entries.
  • [QuickBooks] POST /invoices - added support for additional_fields.allow_online_ach_payment and additional_fields.allow_online_credit_card_payment to set the allowable payment methods for paying invoices.
  • [QuickBooks Desktop] PATCH /invoice_payments/:id - added support for the reference field.
  • [Sage Intacct] GET /tasks - new endpoint for Sage Intacct.
  • [Sage Intacct] POST /bills - added support for the line_items.project_id field.
  • [Sage Intacct] POST /expenses - added support for the line_items.project_id field.
  • [Sage Intacct] POST /expenses - added support for the line_items.task_id field.
  • [Sage Intacct] GET /invoices/:id/attachments - new endpoint for Sage Intacct.

For more information, visit our API Reference.


Sept 2 - Coverage Updates

  • [Sage Intacct] GET /projects - new endpoint for Sage Intacct.
  • [QuickBooks] GET /invoices/:id/pdf - new endpoint for QuickBooks.
  • [QuickBooks Desktop] POST /invoice_payments - added support for the additional_fields.auto_apply field to automatically apply the payment to any outstanding invoices that match the payment amount.
  • [QuickBooks Desktop] POST /invoices - allow due_date to be optional if payment_terms_id is set.
  • [Quickbooks Desktop] POST /sales_orders - added support for setting the class_id on the line_items.
  • [NetSuite] PATCH /bank_feeds/accounts/:id - allowing setting status to active so bank feed accounts can be re-activated.

For more information, visit our API Reference.


August 29 - Async Responses for Accounting Report Endpoints

We are changing our GET /balance_sheets, /cash_flow_statements, and /income_statements endpoints to be asynchronous. This change will enable us to accommodate long-running queries for accounting instances with a significant amount of data. These endpoints will follow our usual async response pattern.

For more information on how to handle asynchronous operations in Rutter's API, visit our API Reference.


August 29 - New API Version: 2024-08-31

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.


August 26 - Coverage Updates

  • [Sage Intacct] POST /bank_deposits - new endpoint for Sage Intacct.
  • [QuickBooks] GET /invoices/:id/pdf - new endpoint for QuickBooks.
  • [QuickBooks Desktop] POST /invoice_payments - added support for the additional_fields.auto_apply field to automatically apply the payment to any outstanding invoices that match the payment amount.
  • [QuickBooks Desktop] POST /invoices - allow due_date to be optional if payment_terms_id is set.
  • [Quickbooks Desktop] POST /sales_orders - added support for setting the class_id on the line_items.
  • [NetSuite] PATCH /bank_feeds/accounts/:id - allowing setting status to active so bank feed accounts can be re-activated.

For more information, visit our API Reference.


August 19 - Coverage Updates

  • [Connections] GET /connections - return all connections (instead of just active ones) and the correct status.
  • [Sage Intacct] GET /bank_deposits - new endpoint for Sage Intacct.
  • [Sage Intacct] GET /bank_deposits/:id - new endpoint for Sage Intacct.
  • [Sage Intacct] GET /journal_entries - returns an expanded set of fields, including customer_id, class_id, location_id and vendor_id if applicable.
  • [Sage Intacct] POST /journal_entries - allow sending an expanded set of fields, including customer_id, class_id, location_id and vendor_id if applicable.

For more information, visit our API Reference.


August 15 - Rate Limit Update

We're implementing a new rate limit of up to 500 requests per 10 seconds. This update is designed to enhance overall system reliability and reduce 5XX errors by mitigating spam-related issues. Less than 3% of customers will be affected by this change, and those impacted have already been notified.

If a rate limit is hit, a 429 error will be returned with headers indicating when to retry the request.

For more information, see Rate Limiting.


August 14 - QuickBooks Desktop Reliability Updates

We've implemented several key updates to improve the reliability and performance of our QuickBooks Desktop (QBD) integration. These enhancements address common pain points and aim to provide a smoother experience for all users.

Better Data Syncing

  • Faster & More Stable Syncs: We've reduced the batch size for data synchronizations. This change reduces the likelihood that a sync will freeze, particularly during the initial sync. With the smaller batch size, you'll notice more consistent successful sync results.
  • Reduced Iterator Corruptions: Previously, iterated entity requests could become corrupted when shuffled with other entity query requests, leading to sync issues. We've improved the process by grouping all iterated requests together, significantly enhancing the sync experience.
  • Better Percentage Progress in Web Connector: We've improved the accuracy of progress tracking in the QBD web connector. We now calculate and display more precise percentages to your customers during the sync process, giving them increased certainty that syncs are moving.

Reduced API Errors

  • Improved Out-of-Date Object Handling: We now perform data synchronization before making POST calls, reducing the occurrence of out-of-date object errors. This ensures that the most current data is used during the sync process.
  • Supporting Error Recovery Routine: We now send an idempotent key to QBD, allowing us to resend POST calls in the event of a QBD crash. This ensures greater reliability and reduces the impact of failed requests.

New Features

  • Delete Monitoring: We now monitor deletions on the QBD side and automatically delete corresponding entities on Rutter's side. Supported entities include Account, Class, Currency, Customer, Items, PaymentMethod, TaxRates, and Vendor.

User Interface Improvements

  • Dashboard Enhancements: The QBD initial sync and side refresh dashboard are now fully operational. Additionally, the last connected time and any connection errors are displayed directly on the dashboard.
  • Improved Rutter Link Flow: We've redesigned the Rutter link flow for both initial connections and reauthorization, providing clearer instructions and a better overall user experience.

We're excited to continue providing a best-in-class experience for QuickBooks Desktop integrations. If you have feedback on these updates, or anything else in our API, reach out to product@rutterapi.com.

For more information, visit our QuickBooks Desktop guide.


August 12 - Bank Feeds Status Unification

We've made improvements to unify our bank feeds logic across all supported platforms, including Intuit QuickBooks, NetSuite, Sage, and coming soon—Xero.

The transaction_ready field will now be returned on bank feed accounts (GET /bank_feeds/accounts) to clearly indicate, in a cross-platform manner, whether a bank feed account is ready to accept transactions. When transaction_ready=true, it signals that you can send a batch of bank feed transactions to that account.

On NetSuite & Intuit QuickBooks, transaction_ready=true is set immediately after you POST /bank_feeds/accounts to Rutter, as these systems allow transactions to be sent right away. On Sage, transaction_ready=true is set once the user completes the linking flow in Sage.

The transaction_ready field was added alongside our existing feed_status field. The feed_status field (which can be set to active/inactive) indicates whether the end-to-end flow of a user setting up a bank feed integration in their accounting system is complete.

On NetSuite, feed_status=active is set after the first batch of transactions is sent via POST /bank_feeds/transactions. For Sage & Intuit, feed_status=active is set once the user finishes the linking flow in Sage or QuickBooks.

By using transaction_ready and feed_status, you can now build unified logic across all systems to determine when to send transactions.

For more information, visit our Bank Feeds Guide.


August 12 - Coverage Updates

  • [QuickBooks] POST /expenses - added support for the additional_fields.billable field to mark an expense line item as billable or non-billable.
  • [QuickBooks Desktop] GET /items/custom_fields - added support for fetching the metadata for all custom fields on the item object.
  • [QuickBooks Desktop] POST /items - added support for setting custom_fields values on the item object.
  • [Sage Intacct] POST /bill_credit_applications - new endpoint for Sage Intacct.

For more information, visit our API Reference.


August 5 - Coverage Updates

  • [QuickBooks] PATCH /customers - added support for deactivating a customer by setting { status: archived }.
  • [QuickBooks] PATCH /vendors - added support for deactivating a vendor by setting { status: archived }.
  • [QuickBooks] POST /invoices - added support for disabling sales tax by setting additional_fields.sales_taxable to false.
  • [QuickBooks] PATCH /invoices - added support for disabling sales tax by setting additional_fields.sales_taxable to false.

For more information, visit our API Reference.


August 1 - Delete Monitoring [QuickBooks Desktop]

Rutter now supports tracking deleted entities in QuickBooks Desktop, in addition to our existing support for QuickBooks Online and NetSuite. When a resource is deleted in QuickBooks Desktop 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.

QuickBooks Desktop supports tracking deletes for the following entities: Account, Class, Currency, Customer, Items, PaymentMethod, TaxRates, and Vendor.

For more information, visit our documentation:


July 30 - Partial String Matching

Added support to the filter parameter for supporting the ~ (partial match) operation. ~ returns all objects that include a word starting with the given value for that field. For example, ~ ru will return "Rutter" and "The Rutter API Company", but not "Truly". ~ is supported for any string field that is not an enum, date, or Rutter id. Matches are case insensitive.

For more details, see Filtering Objects.


July 29 - Coverage Updates

  • [Zoho Books] GET /expenses/custom_fields - added support for fetching the metadata for all custom fields on the expense object.
  • [Zoho Books] POST /expenses - added support for setting custom_fields values on the expense object.

For more information, visit our API Reference.


July 22 - Coverage Updates

  • [All] GET /accounts - added ability to filter by name.
  • [QuickBooks Desktop] GET /invoices/custom_fields - added support for fetching the metadata for all custom fields on the invoice object.
  • [QuickBooks Desktop] POST /invoices - added support for setting custom_fields values on the invoice object.

For more information, visit our API Reference.


July 15 - QuickBooks Bank Feeds

We're excited to announce that Rutter's Bank Feeds product now offers support for syncing transactions to QuickBooks. Bank Feeds allows neo-banks or card issuers to automatically sync their customers' transactions into those customers' ERPs, cutting down on manual data entry and saving them significant time. Along with QuickBooks, Rutter supports syncing bank feed transactions to NetSuite, Sage Business Cloud, and Sage Intacct.

For more information, visit our announcement or our Bank Feeds Guide.


July 15 - Coverage Updates

  • [NetSuite] POST /journal_entries - added support for the additional_fields.tax_account_id field to set the tax account for advanced intercompany journal entries.
  • [QuickBooks] PATCH /accounts - new endpoint for QuickBooks.
  • [QuickBooks] PATCH /journal_entries - new endpoint for QuickBooks.
  • [QuickBooks Desktop] POST /bills - added support for the additional_fields.tax_inclusive field for line amount to be tax inclusive.

For more information, visit our API Reference.


July 1 - Coverage Updates

  • [NetSuite] POST /expenses - added support for creating expenses with a fixed_asset line item account type.
  • [QuickBooks] POST /classes - new endpoint for QuickBooks.
  • [QuickBooks] POST /departments - new endpoint for QuickBooks.
  • [QuickBooks] PATCH /items - added support for updating the code/sku field on QuickBooks using the additional_fields.code field.
  • [Zoho Books] POST /bills/:id/attachments - new endpoint for Zoho Books.
  • [Zoho Books] GET /bill_payments - added support for the reference field.
  • [Zoho Books] POST /bill_payments - added support for the reference field.

For more information, visit our API Reference.


June 28 - Custom Connection Names

We're excited to announce that you can now set custom names for connections using the Rutter Dashboard or our API. This feature helps you and your team easily mark which connections belong to each of your customers, cutting down on the time needed to troubleshoot issues or check request logs. Connection names are private within your organization and not visible to your customers, so you can come up with your perfect naming scheme to help your team quickly and easily find their way around your connections.

To use this feature on our dashboard, click on any connection.

A connection page in the Rutter Dashboard

Then, click "Set display name" and fill out your desired name in the modal.

The Rutter Dashboard modal to set a custom name

Once the name is set, it will appear on the individual connection page, within the list of all connections in the dashboard, and in our API.

The connection page in the Rutter Dashboard, now showing the custom name

If you'd like to set multiple connection names at once, you can use our Update a Connection API endpoint to do so. Just specify a name in the request body, and you'll see that name appear within our dashboard and API shortly after.

For more information, visit our API Reference.


June 24 - Coverage Updates

  • [Dynamics 365 Business Central] POST /expenses - added support for the line_items.custom_fields field for passing in custom posting group values.
  • [NetSuite] POST /bank_feeds/transactions - added support for activating and deactivating bank feed accounts.
  • [QuickBooks] POST /invoices - added support for the additional_fields.billing_email field.
  • [QuickBooks] PATCH /invoices - added support for the additional_fields.billing_email field.
  • [QuickBooks] POST /invoices - added support for the payment_terms_id field.
  • [QuickBooks] POST /purchase_orders - new endpoint for QuickBooks.
  • [QuickBooks] PATCH /purchase_orders - new endpoint for QuickBooks.
  • [QuickBooks Desktop] POST /customers - added support for the additional_fields.parent_id field for creating sub-jobs.
  • [QuickBooks Desktop] POST /bank_deposits - added support for the linked_payments field.
  • [QuickBooks Desktop] POST /invoice_credit_memos - added support for the document_number field.
  • [QuickBooks Desktop] GET /company_info - added support for the additional_fields.closing_date field.

For more information, visit our API Reference.


June 17 - Coverage Updates

  • [NetSuite] All endpoints - added support for the platform_url field.
  • [Sage Intacct] GET /bills/:id/attachments - new endpoint for Sage Intacct.
  • [Sage Intacct] GET /bills/:id/attachments/:id/file - new endpoint for Sage Intacct.
  • [QuickBooks] Now supports ITEM_CREATED and ITEM_UPDATED webhooks.
  • [QuickBooks Desktop] Now supports ITEM_CREATED and ITEM_UPDATED webhooks.
  • [Xero] PATCH /bill_payments - added support for voiding a bill payment.

For more information, visit our API Reference.



June 10 - Coverage Updates

  • [QuickBooks] POST /journal_entries - added support for the currency_rate field.
  • [Xero] POST /bank_deposits/:id/attachments - new endpoint for Xero.

For more information, visit our API Reference.


June 5 - Enhanced Readability of API Error Responses

On POST requests where the external platform returns an error to Rutter, we now return concise messaging for these errors. As an example use case, these new messages may be shown to your users in your UI to allow them to self-troubleshoot.

You can find the following new fields under the error_metadata object:

  • source - Whether the error originated from Rutter ("rutter") or the platform ("platform").
  • human_readable - An easy to read error message for platform-originated errors, e.g. "The account type xxxx is incompatible with this transaction."
  • platform - An object that contains data from the platform, e.g. headers or rate limiting information.

For more information, visit our API Reference.


June 3 - Coverage Updates

  • [Dynamics 365 Business Central] GET /accounts - added support for the currency_code field.
  • [QuickBooks Desktop] `POST /invoice_payments - added support for setting the "Undeposited Funds" account as the deposit account.
  • [QuickBooks Desktop] POST /invoices - added support for class_id field on the top level.
  • [QuickBooks Desktop] GET /customers - added support for the parent_id field, which allows creating jobs (or sub-customers) under a given customer.

For more information, visit our API Reference.


May 30 - API Coverage Explorer

We are excited to introduce our new API coverage explorer!

This page allows you to view all of our API endpoints and which platforms support them in one convenient table. In addition, you can also filter the table by endpoint name, show/hide specific platforms and endpoints, and export the table data to a CSV for sharing internally.

Table showing platform support per Rutter API.

May 27 - Coverage Updates

  • [NetSuite] all endpoints - added support for instances where multi-currency is disabled.
  • [Zoho Books] POST /bank_deposits - new endpoint for Zoho Books.
  • [Xero] POST /expenses - added support for setting the customer_id field on line items.
  • [Xero] GET /tax_rates - added support for setting the status field.
  • [QuickBooks Desktop] GET /bill_payments - added support for reference field.
  • [QuickBooks Desktop] GET /bill_payments - added support for filtering by the reference field.
  • [QuickBooks Desktop] POST /bill_payments - added support for reference field.
  • [QuickBooks Desktop] GET /company_info - added support for additional_fields.closing_date field.
  • [QuickBooks Desktop] POST /expenses - added support for the additional_fields.tax_inclusive field for line amount to be tax inclusive.
  • [QuickBooks Desktop] POST /invoices - added support for the additional_fields.tax_rate_id field to set a tax for the entire invoice.
  • [QuickBooks Desktop] PATCH /invoices - added support for voiding invoices.
  • [QuickBooks Desktop] GET /invoice_payments - added support for reference field.
  • [QuickBooks Desktop] GET /invoice_payments - added support for filtering by the reference field.
  • [QuickBooks Desktop] POST /invoice_payments - added support for reference field.
  • [QuickBooks Desktop] GET /tax_rates - added support for setting the status field.

For more information, visit our API Reference.


May 20 - Coverage Updates

  • [Zoho Books] GET /bank_deposits - new endpoint for Zoho Books.
  • [QuickBooks Desktop] PATCH /bills - added support for updating the line items.
  • [QuickBooks Desktop] GET /tax_rates - added support for syncing ItemSalesTax and ItemSalesTaxGroup objects.
  • [QuickBooks Desktop] POST /expenses - added support for setting an expense line item as billable.
  • [QuickBooks Desktop] POST /invoices - added support for setting the Purchase Order number.
  • [QuickBooks Desktop] POST /items - added support for setting the sku code.
  • [QuickBooks Desktop] PATCH /invoice_credit_memos - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] GET /bank_deposits - new endpoint for QuickBooks Desktop.
  • [QuickBooks Desktop] POST /bank_deposits - new endpoint for QuickBooks Desktop.

For more information, visit our API Reference.


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

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 Zoho Books 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:


Sign up for updates