> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fire.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# stores.sync

> Fired when Fire needs to propagate a large batch of store configurations at once.

`stores.sync` is the batch counterpart to [`store.updated`](/en/webhook-reference/store-updated). Fire emits it when multiple stores need to be propagated in bulk — for example, during initial onboarding or a mass configuration change.

Fire splits large batches automatically and emits multiple `stores.sync` events with up to 50 stores each. Your system should handle each event independently.

## Payload

```json theme={null}
{
  "event": {
    "id": "evt_abc125",
    "type": "stores.sync",
    "createdAt": "2025-01-15T15:05:00Z",
    "timezone": "America/Guayaquil"
  },
  "data": {
    "account": "1",
    "country": "6",
    "batchIndex": 1,
    "batchTotal": 3,
    "stores": [
      {
        "name": "New store 805",
        "active": true,
        "storeId": 805,
        "vendorId": 16,
        "storeCode": "T005",
        "schedulesByChannel": [
          {
            "channelId": "0F049503-85CF-E511-80C6-000D3A3261F3",
            "schedules": [
              {
                "day": "FRIDAY",
                "endTime": "22:30",
                "startTime": "10:00"
              }
            ]
          }
        ],
        "taxesInfo": {
          "taxRate": 0,
          "vatRatePercentage": 12
        },
        "contactInfo": {
          "phone": "23955400",
          "address": "PICHINCHA / QUITO / INAQUITO / AV. AMERICA N37-288 Y VILLALENGUA"
        },
        "deliveryInfo": {
          "cookTime": "10",
          "deliveryId": 46356,
          "minimumOrder": "0.00",
          "shippingCost": 1.99
        },
        "locationInfo": {
          "city": "QUITO",
          "latitude": "-0.17250869436401206",
          "longitude": "-78.49125266075134"
        },
        "storeChannels": [
          "0F049503-85CF-E511-80C6-000D3A3261F3"
        ]
      }
    ],
    "channels": [
      {
        "active": true,
        "channel": "Llevar",
        "vendorId": 16,
        "channelId": "0E049503-85CF-E511-80C6-000D3A3261F3",
        "channelReferenceName": "Llevar PICKUP",
        "services": [
          {
            "code": "DELIVERY",
            "serviceId": "3",
            "referenceName": "Domicilios Llevar"
          },
          {
            "code": "TAKEAWAY",
            "serviceId": "1",
            "referenceName": "Retiro en tienda"
          }
        ]
      }
    ]
  }
}
```

## Fields

### `data`

| Field        | Type      | Description                                                                                       |
| ------------ | --------- | ------------------------------------------------------------------------------------------------- |
| `account`    | string    | Account identifier — required by downstream systems                                               |
| `country`    | string    | Country identifier — required by downstream systems                                               |
| `batchIndex` | integer   | Position of this batch (1-based)                                                                  |
| `batchTotal` | integer   | Total number of batches in this sync                                                              |
| `stores`     | object\[] | Store configurations — same structure as [`store.updated`](/en/webhook-reference/store-updated)   |
| `channels`   | object\[] | Channel configurations — same structure as [`store.updated`](/en/webhook-reference/store-updated) |

## Processing

Process each `stores.sync` event independently. Use `batchIndex` and `batchTotal` to track progress if your system needs to know when a full sync is complete.

<Note>
  Each batch event is delivered and retried independently. If one batch fails, only that batch is retried — not the entire sync.
</Note>

## When does Fire emit this event?

* During initial client onboarding
* After a mass configuration change affecting many stores
* On explicit sync requests triggered from the Fire dashboard

For individual store changes in normal operation, Fire emits [`store.updated`](/en/webhook-reference/store-updated) instead.
