{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/rutter/json-schema/rutter-create-connection-backfill-body-schema.json",
  "title": "CreateConnectionBackfillBody",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/rutter-connections-api-openapi.yml#/components/schemas/CreateConnectionBackfillBody",
  "type": "object",
  "properties": {
    "start_date": {
      "type": "string",
      "description": "The start date of the backfill (e.g. 2023-02-07), up to 5 years ago. Required unless the request only sets `refresh_custom_fields`."
    },
    "end_date": {
      "type": "string",
      "description": "The end date of the backfill (e.g. 2023-03-14). If none provided, defaults to today."
    },
    "include_webhooks": {
      "type": "boolean",
      "description": "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. Please be careful that depending on the order of the Rutter object types synced, webhooks sent in this way may be incomplete."
    },
    "refresh_custom_fields": {
      "type": "boolean",
      "description": "Refresh the custom field schema for this connection — the field definitions and select-option values returned by `GET /accounting/{object_type}/custom_fields`. Use this after creating a custom field, changing which record types it applies to, or adding values to a custom segment, when the change has not appeared yet. This is independent of `object_types`, and does not require `start_date`, because a field schema is not bound to a date range. Supported for NetSuite."
    },
    "remarks": {
      "type": "string",
      "description": "Remarks for why you are creating this backfill."
    },
    "skip_dependencies": {
      "type": "boolean",
      "description": "If `true`, only the specified `object_types` are backfilled — their prerequisite/linked entities (for example, the accounts, customers, and currencies that an invoice references) are NOT re-fetched. Use this when those prerequisites are already synced and you only need to recover the specified objects: it is much faster and avoids re-syncing the whole dependency graph. If a prerequisite is genuinely missing, some links on the backfilled objects may not resolve until the next full/incremental sync. Defaults to false (all dependencies are included). Supported for Acumatica, Alibaba, Amazon, Anfix, Authorizenet, Bamboo Hr, Campfire, Clover, Deel, Dualentry, Dynamics 365 Business Central, Dynamics 365 Fo, Exactonline, Facebook, Fortnox, FreeAgent, FreshBooks, Fulfil, Google, Gusto, Holded, Intuit Bank Feeds, Kashflow, Lexware, Mollie, Moneybird, Mx, Myobbusiness, NetSuite, Noon, Odoo, Oraclefusion, Paynl, Plaid, Plaid Bank Feeds, QuickBooks, QuickBooks Desktop, Quickbooks Hris, Ramp, Recharge, Rillet, Rippling, Sage 200 Cloud, Sage 50, Sage Bank Feeds, Sage Business Cloud, Sage Intacct v2, Salla, Sapbusinessone, Saps 4 Hana, Shein, Shopify, Shopline, Softledger, Spiris, Stripe, Teller, Tiktok, Tiktokshop, Visma, Vista, Walmart, Wayfair, Workday, Xero, Yodlee Bank Feeds, Zid, and Zoho Books."
    },
    "object_types": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "account",
          "accounting_customer",
          "accounting_customer_refund",
          "accounting_transaction",
          "balance_sheet",
          "bank_account",
          "bank_account_balance",
          "bank_account_details",
          "bank_deposit",
          "bank_feed_contact",
          "bank_feed_payment_network",
          "bank_statement",
          "bank_transaction",
          "bank_transfer",
          "bill",
          "bill_credit_memo",
          "bill_payment",
          "cash_flow",
          "class",
          "collection",
          "commerce_customer",
          "company_info",
          "currencies",
          "customer_group",
          "department",
          "exchange_rate",
          "expense",
          "fulfillment",
          "income_statement",
          "inventory_events",
          "invoice",
          "invoice_credit_memo",
          "invoice_payment",
          "items",
          "journal_entry",
          "location",
          "order",
          "payment_method",
          "payment_term",
          "payout",
          "product",
          "product_variant",
          "project",
          "purchase_order",
          "sales_order",
          "sales_receipt",
          "store",
          "subscription",
          "subsidiary",
          "task",
          "tax_agency",
          "tax_area",
          "tax_detail",
          "tax_rates",
          "transaction",
          "updated_transaction",
          "vendor"
        ]
      },
      "description": "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. Optional only when `refresh_custom_fields` is `true`; otherwise at least one object type is required."
    }
  }
}