Sync Configuration

Sync Configuration Overview

Sync configuration allows you to customize how Rutter syncs data from your connected platforms. You can control which entities are synced, how far back in time to fetch historical data, and how frequently to perform incremental syncs.

Platform Support

Sync configuration is currently supported for:

  • QuickBooks (QUICKBOOKS)
  • Xero (XERO)
  • NetSuite (NETSUITE)
  • Zoho Books (ZOHOBOOKS)
  • Sage Business Cloud (SAGE_BUSINESS_CLOUD)
  • FreshBooks (FRESHBOOKS)
  • QuickBooks Desktop (QUICKBOOKS_DESKTOP)
  • Dynamics 365 (DYNAMICS365)
  • Moneybird (MONEYBIRD)
  • Odoo (ODOO)
  • Stripe (STRIPE)

Additional platform support will be added in future releases.

Configuration Levels

Sync configuration can be managed at three levels:

  1. Organization Level - Organization-wide defaults for all platforms, grouped by platform type (e.g. accounting, commerce, etc.). This is configurable in the Rutter Dashboard under the "Data Sync Configuration" page.
  2. Platform Level - Organization-wide defaults for a specific platform (e.g., all QuickBooks connections)
  3. Connection Level - Per-connection overrides

The SyncConfiguration Object

Sync configurations consist of two main components:

Initial Sync

The initial sync configuration defines how historical data is fetched when a connection is first established or when a full refresh is performed.

  • batches: Array of entity batches to sync
    • entities: List of entity types to include in this batch (e.g., ACCOUNTING_TRANSACTION, ACCOUNTING_INVOICE)
    • timeFrameInMonths: How many months of historical data to fetch for these entities

Incremental Sync

The incremental sync configuration defines how frequently data is refreshed after the initial sync.

  • entities: List of entity types to sync incrementally
  • syncPeriodInMinutes: How often to perform incremental syncs (60 - 20,160 minutes)

Entity Batching Strategy

You can organize entities into multiple batches based on:

  • Time sensitivity: Prioritize the most critical entities for your use case
  • Historical requirements: Different entities may need different historical time frames

Properties

initialSyncobject
Show initialSync attributes
incrementalSyncobject
Show incrementalSync attributes
Endpoints
GET
/configs/sync/platforms/:platform
POST
/configs/sync/platforms/:platform
DELETE
/configs/sync/platforms/:platform
GET
/connections/:id/sync_config
DELETE
/connections/:id/sync_config

Get Platform Sync Configuration

GEThttps://production.rutterapi.com/versioned/configs/sync/platforms/:platform

Retrieve the sync configuration for a specific platform

Request Parameters

    platformenumpathRequired

    Platform name (case-insensitive). Accepts values like 'quickbooks', 'QUICKBOOKS', etc.

    One ofQUICKBOOKSXERONETSUITEZOHOBOOKSSAGE_BUSINESS_CLOUDFRESHBOOKSQUICKBOOKS_DESKTOPDYNAMICS365MONEYBIRDODOO, or STRIPE.

Response Body

200
Example Response Body
JSON
1
{
2
"initialSync": {
3
"batches": [
4
{
5
"timeFrameInMonths": 12,
6
"entities": [
7
"ACCOUNTING_TRANSACTION"
8
]
9
}
10
]
11
},
12
"incrementalSync": {
13
"syncPeriodInMinutes": 120,
14
"entities": [
15
"ACCOUNTING_TRANSACTION"
16
]
17
}
18
}

Create or Overwrite Platform Sync Configuration

POSThttps://production.rutterapi.com/versioned/configs/sync/platforms/:platform

Create or overwrite the sync configuration for a specific platform, defining initial sync batches and incremental sync settings.

Request Parameters

    platformenumpathRequired

    Platform name (case-insensitive). Accepts values like 'quickbooks', 'QUICKBOOKS', etc.

    One ofQUICKBOOKSXERONETSUITEZOHOBOOKSSAGE_BUSINESS_CLOUDFRESHBOOKSQUICKBOOKS_DESKTOPDYNAMICS365MONEYBIRDODOO, or STRIPE.

Request Body

    Sync configuration for a specific platform e.g. Quickbooks

    initialSyncobject
    Show initialSync attributes
    incrementalSyncobject
    Show incrementalSync attributes

Response Body

Example Request Body
JSON
1
{
2
"initialSync": {
3
"batches": [
4
{
5
"timeFrameInMonths": 12,
6
"entities": [
7
"ACCOUNTING_TRANSACTION"
8
]
9
}
10
]
11
},
12
"incrementalSync": {
13
"syncPeriodInMinutes": 120,
14
"entities": [
15
"ACCOUNTING_TRANSACTION"
16
]
17
}
18
}
200
Example Response Body
JSON
1
{
2
"initialSync": {
3
"batches": [
4
{
5
"timeFrameInMonths": 12,
6
"entities": [
7
"ACCOUNTING_TRANSACTION"
8
]
9
}
10
]
11
},
12
"incrementalSync": {
13
"syncPeriodInMinutes": 120,
14
"entities": [
15
"ACCOUNTING_TRANSACTION"
16
]
17
}
18
}

Delete Platform Sync Configuration

DELETEhttps://production.rutterapi.com/versioned/configs/sync/platforms/:platform

Delete the sync configuration for a specific platform, removing all custom sync settings and reverting to organization-level defaults.

Request Parameters

    platformenumpathRequired

    Platform name (case-insensitive). Accepts values like 'quickbooks', 'QUICKBOOKS', etc.

    One ofQUICKBOOKSXERONETSUITEZOHOBOOKSSAGE_BUSINESS_CLOUDFRESHBOOKSQUICKBOOKS_DESKTOPDYNAMICS365MONEYBIRDODOO, or STRIPE.

Get Connection Sync Configuration

GEThttps://production.rutterapi.com/versioned/connections/:id/sync_config

Retrieve the sync configuration for a specific connection. If the connection does not have a custom sync configuration, a 404 response will be returned.

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the object.

Response Body

200
Example Response Body
JSON
1
{
2
"initialSync": {
3
"batches": [
4
{
5
"timeFrameInMonths": 12,
6
"entities": [
7
"ACCOUNTING_TRANSACTION"
8
]
9
}
10
]
11
},
12
"incrementalSync": {
13
"syncPeriodInMinutes": 120,
14
"entities": [
15
"ACCOUNTING_TRANSACTION"
16
]
17
}
18
}

Delete Connection Sync Configuration

DELETEhttps://production.rutterapi.com/versioned/connections/:id/sync_config

Delete the sync configuration for a specific connection. This removes any custom sync settings, and the connection will fall back to using the platform-level or organization-level sync configuration.

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the object.

Have questions?

Contact support for personalized guidance.

Contact support