Connections

The Connection Object

The Connections endpoints are used to manage Connections, which are the individual storefronts, payment processors, or accounting systems that businesses have shared with you. You can use these endpoints to create a new connection manually and send an authentication link directly to a merchant, or get access to the raw credentials for a specific platform (Shopify, WooCommerce, Quickbooks Online, etc.).

To understand the lifecycle of a Connection and the important events that occur when a merchant connects/disconnects their platform, see Connection Lifecycle.

Properties

idstring

The UUID of the connection. Generated by Rutter.

orgIdstring

Your organization id.

platformenum

The underlying platform.

One ofAMAZONEBAYETSYFNACWALMARTSHOPEELAZADAMERCADOLIBREALIBABASHOPLINEPRESTASHOPSHOPIFYMAGENTOWOO_COMMERCESQUARESPACEWIXSHOPERSHOPLAZZABIG_COMMERCESHOPWARECOMMERCELAYERWEBFLOWGUMROADECWIDPAYPALSQUARESTRIPECLOVERMOLLIEPAYNLAUTHORIZENETRECHARGECHARGIFYCHARGEBEERECURLYKASHFLOWSAGE_INTACCTDYNAMICS365ZOHOBOOKSEXACTONLINEFREEAGENTQUICKBOOKSQUICKBOOKS_DESKTOPFRESHBOOKSXEROSAGE_BUSINESS_CLOUDSAGE_50NETSUITEWAVEMONEYBIRDSAGE200CLOUDPLAIDODOOTALLYGOOGLEFACEBOOKTIKTOKINTUIT_BANK_FEEDS, or SAGE.
Endpoints
GET
/connections
GET
/connections/access_token
GET
/connections/status
POST
/connections/create
PATCH
/connections/:id
DELETE
/connections/:id
POST
/connections/incremental_sync
POST
/connections/access_token/invalidate
POST
/connections/backfill

List Connections

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

Request Parameters

    statusenumqueryOptional

    Filter results by connection status. If omitted, will return all active, not_ready, and unhealthy connections.

    One ofactiveunhealthynot_readyneeds_reauthdisabled, or any.

Response Body

Support by integration
All platforms

Fetch a Connection

GEThttps://production.rutterapi.com/versioned/connections/access_token

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

Response Body

Support by integration
  • Shopify
    Shopify
  • QuickBooks
    QuickBooks
  • WooCommerce
    WooCommerce
  • Amazon
    Amazon

Fetch a Connection Status

GEThttps://production.rutterapi.com/versioned/connections/status

The Connection Status endpoint allows you to retrieve information about a connection's historical and recent data syncs.

Not every platform has detailed support for sync information about each data object, e.g. fields within the total property. If a platform does not support a metadata field, the value will be null.

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

Response Body

Support by integration
All platforms

Create a Connection

POSThttps://production.rutterapi.com/versioned/connections/create

Create connections programmatically using the Create a Connection API. There are two ways to use this API:

  • Create a connection that allows the merchant to select which platform they want to connect. This is done by leaving the request body empty.
  • Create a connection with existing credentials. This is done by specifying the platform and including the associated credentials (OAuth, Basic Auth, etc.) for the connection. Rutter will use these fields to make the authenticated API requests to the platform. To see what values are required for each platform, see the Platform Specific Required Body Params table below or contact support@rutterapi.com for more support.

Connection URL

One of the returned fields in the connection object from the Create a Connection endpoint is the link_url, which is a unique, stable link that you can send to a business for Business Authentication.

The link_url points to the Rutter Link web app, which handles the authentication flow for each Ecommerce platform. Once the merchant completes the Link authentication flow, a CONNECTION_UPDATED event will be fired to your Webhook URL, and you will be able to fetch data for their store through this Connection.

There are a few query parameters that you can specify to a connection URL to customize the authentication experience. Here are some examples:

Loads the authentication flow directly to the Wix-specific step: https://link.rutterapi.com/connection/123?platform=wix

Loads the authentication flow directly to the Wix-specific step and on completion the merchant will be redirected to Google: https://link.rutterapi.com/connection/123?platform=wix&redirect_url=https%3A%2F%2Fwww.google.com

Query ParamExample ValueDescription
platformSHOPIFYIf platform is specified, the Rutter Link flow will start directly at the authentication process for the specified platform, skipping the screen for choosing the platform. See Supported Platforms for the respective ENUM values.
redirect_urlhttps://www.google.com?q=customparameterIf redirect_url is specified, the merchant will be redirected to the URL specified, and a public_token query parameter for the connection will be added to this url. If the value is https://www.google.com?q=customparameter, the final URL will be https://www.google.com?q=customparameter&public_token=PUBLIC_TOKEN
shopifystoreexampleif shopifyStore is specified, the Shopify authentication screen will be pre-filled with the store URL. If the value is example, Rutter Link will show example.myshopify.com

Request Body

    ALL OF:
    platformenum

    The underlying platform.

    One ofBIG_COMMERCEAMAZONSHOPIFYPRESTASHOPSHOPERWOO_COMMERCEMAGENTOEBAYLAZADAFNACSQUARESTRIPEQUICKBOOKSNETSUITEWALMARTXERO, or INTUIT_BANK_FEEDS.
    scopestringOptional
    ANY OF:

    Credentials for BigCommerce

    oauth_client_idstringOptional

    BigCommerce App Client ID

    oauth_access_tokenstring

    BigCommerce Store Access Token

    store_urlstring

    BigCommerce merchant .mybigcommerce.com domain URL

    oauth_client_secretstringOptional

    BigCommerce App Client Secret

    Credentials for Amazon

    amazon_access_key_idstring

    AWS User Access Key ID

    oauth_client_idstring

    SP-API App Client ID

    amazon_secret_access_keystring

    AWS User Secret Access Key

    amazon_seller_regionenum

    Region of Amazon seller - must be one of na (North America), eu (Europe), or fe (Far East).

    One ofnaeu, or fe.
    amazon_selling_partner_rolestring

    AWS Role ARN used in SP-API app

    oauth_client_secretstring

    SP-API App Client Secret

    oauth_refresh_tokenstring

    SP-API Refresh Token

    ANY OF:

    Credentials for Shopify Private App

    basic_passwordstring

    Private Shopify App Password

    basic_usernamestring

    Private Shopify App API Key

    store_urlstring

    Shopify merchant .myshopify.com domain URL

    Credentials for Shopify Public App

    oauth_client_idstring

    Shopify Public App Client ID

    oauth_access_tokenstring

    Shopify Merchant Access Token

    oauth_client_secretstring

    Shopify Public App Client Secret

    store_urlstring

    Shopify merchant .myshopify.com domain URL

    Credentials for PrestaShop

    api_keystring

    PrestaShop API Key

    store_urlstring

    PrestaShop merchant domain URL

    Credentials for Shoper

    oauth_access_tokenstring

    Shoper merchant OAuth Access Token

    oauth_refresh_tokenstring

    Shoper merchant OAuth Refresh Token

    store_urlstring

    Shoper merchant domain URL

    Credentials for WooCommerce

    basic_passwordstring

    WooCommerce Rest API Consumer Secret

    basic_usernamestring

    WooCommerce Rest API Consumer Key

    store_urlstring

    WooCommerce merchant website URL

    Credentials for Magento

    basic_passwordstring

    Magento Admin User Password

    basic_usernamestring

    Magento Admin User Username

    store_urlstring

    Magento merchant website URL

    Credentials for eBay

    oauth_client_idstring

    Ebay Developer OAuth Client ID

    oauth_client_secretstring

    Ebay Developer OAuth Client Secret

    oauth_refresh_tokenstring

    Ebay OAuth Refresh Token

    Credentials for Lazada

    oauth_client_idstring

    OAuth Client ID

    countrystring

    Country Code for Merchant (e.g. id, sg, th)

    oauth_access_tokenstring

    OAuth Access Token

    oauth_client_secretstring

    OAuth Client Secret

    oauth_refresh_tokenstring

    OAuth Refresh Token

    Credentials for Fnac

    partner_idstring

    Partner ID

    shop_idstring

    Shop ID

    keystring

    Key

    Credentials for Square

    oauth_client_idstring

    Square Developer OAuth Client ID

    oauth_client_secretstring

    Square Developer OAuth Client Secret

    oauth_refresh_tokenstring

    Square OAuth Refresh Token

    Credentials for Stripe

    account_idstring

    Stripe Account ID

    oauth_access_tokenstring

    Stripe OAuth Access Token

    Credentials for Quickbooks

    oauth_client_idstring

    OAuth Client ID

    realm_idstring

    Realm ID

    oauth_client_secretstring

    OAuth Client Secret

    oauth_refresh_tokenstring

    OAuth Refresh Token

    environmentstringOptional

    Environment (e.g. sandbox)

    Credentials for Netsuite

    token_idstring

    Token ID

    consumer_keystring

    Consumer Key

    consumer_secretstring

    Consumer Secret

    store_namestring

    Store Name (for sandbox you should put it in the form '1000000_SB1')

    token_secretstring

    Token Secret

    Credentials for Walmart

    oauth_client_idstring

    Walmart Developer OAuth Client ID

    oauth_client_secretstring

    Walmart Developer OAuth Client Secret

    Credentials for Xero

    oauth_client_idstring

    OAuth Client ID

    tenant_idstring

    The Xero Tenant ID

    user_idstring

    The Xero User ID

    oauth_client_secretstring

    OAuth Client Secret

    oauth_refresh_tokenstring

    OAuth Refresh Token

Response Body

Support by integration
All platforms
Example Request Body
JSON
1
{
2
"platform": "SHOPIFY",
3
"oauth_client_id": "CLIENT_ID",
4
"oauth_access_token": "ACCESS_TOKEN",
5
"store_url": "shopifystore.myshopify.com",
6
"oauth_client_secret": "CLIENT_SECRET"
7
}
200
Example Response Body
JSON
1
{
2
"connection": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"access_token": "00000000-0000-0000-0000-000000000000",
5
"link_url": "https://link.rutterapi.com/connection/00000000-0000-0000-0000-000000000000",
6
"name": "Example Connection"
7
}
8
}

Update a Connection

PATCHhttps://production.rutterapi.com/versioned/connections/:id

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the object.

Request Body

    namestring

    Customer-supplied unique name of the connection. Must be unique across all connections. Must be at most 30 characters.

Response Body

Support by integration
All platforms
Example Request Body
JSON
1
{
2
"name": "Example Connection"
3
}
200
Example Response Body
JSON
1
{
2
"connection": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"access_token": "00000000-0000-0000-0000-000000000000",
5
"link_url": "https://link.rutterapi.com/connection/00000000-0000-0000-0000-000000000000",
6
"name": "Example Connection"
7
}
8
}

Delete a Connection

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

Request Parameters

    idstringpathRequired

    The Rutter connection ID to delete.

Response Body

Support by integration
All platforms
200
Example Response Body
JSON
1
{
2
"success": true
3
}

Schedule Incremental Sync

POSThttps://production.rutterapi.com/versioned/connections/incremental_sync

The Schedule Incremental Sync API endpoint allows you to manually trigger an Incremental Sync for a given connection. This will sync all objects that have been updated or created since the last sync. An example of when you may want to trigger an Incremental Sync is if you know new objects have been created in a platform, and you want to sync these new objects as soon as possible (rather than wait for Rutter's scheduled Incremental Sync to run).

NOTE: This functionality should only be used on a one-off basis. Rutter automatically schedules Incremental Syncs periodically and one doesn't typically need to make this API call except in rare cases. For each Incremental Sync triggered, Rutter may skip that many scheduled Incremental Syncs.

After receiving a success response, a sync will be queued and started shortly. You will begin to receive webhooks for updated/created objects if you are subscribed to them.

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

Response Body

Support by integration
All platforms
200
Example Response Body
JSON
1
{
2
"success": true
3
}

Invalidate Access Token

POSThttps://production.rutterapi.com/versioned/connections/access_token/invalidate

A connection's access_token is unique and does not expire. To rotate the access_token for a connection, you can use the /connections/access_token/invalidate endpoint. This endpoint generates a new access_token while invalidating the old one.

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

Response Body

Support by integration
All platforms
200
Example Response Body
JSON
1
{
2
"new_access_token": "00000000-0000-0000-0000-000000000000"
3
}

Schedule Backfill

POSThttps://production.rutterapi.com/versioned/connections/backfill

The Schedule Backfill API endpoint allows you to manually trigger a data backfill for a given connection. This will sync all data from the start date until now for the Rutter object provided. An example is if you make an update to an existing connection's Data Fetch Configuration, and you want to sync all historical data for the new objects you've added into the Data Fetch Configuration.

NOTE: This functionality should only be used on a one-off basis. If you trigger a Backfill, this will pause the scheduled Incremental Syncs that Rutter automatically performs for the connection until the Backfill is complete.

After receiving a success response, a sync will be queued and started shortly.

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

Request Body

    start_datestring

    The start date of the backfill (e.g. 2023-02-07), up to 5 years ago.

    end_datestringOptional

    The end date of the backfill (e.g. 2023-03-14). If none provided, defaults to today.

    include_webhooksbooleanOptional

    You can receive webhooks for updated/created objects found during the backfill if you are subscribed to them by including true here. Defaults to false.

    object_typesarray

    The Rutter object types for which you would like to create a backfill. Note that linked objects will not be backfilled unless you specify them explicitly. For example, if you backfill invoice, this will not backfill invoice_payment for the same time period unless you also specify it.

    One or more ofaccountaccounting_customerbalance_sheetbank_depositbank_transferbillbill_credit_memobill_paymentcash_flowclasscommerce_customercompany_infocurrenciescustomer_groupdepartmentexpenseincome_statementinvoiceinvoice_credit_memoinvoice_paymentitemsjournal_entrylocationorderpayment_methodpayment_termpayoutproductprojectpurchase_ordersales_orderstoresubscriptionsubsidiarytasktax_ratestransaction, or vendor.
    remarksstringOptional

    Remarks for why you are creating this backfill.

Response Body

Support by integration
All platforms
200
Example Response Body
JSON
1
{
2
"success": true
3
}

Have questions?

Contact support for personalized guidance.

Contact support
Next
Tokens