> ## 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.

# Sincronizar unidades (bulk upsert)

> Inserta o actualiza unidades de medida y grupos de unidades en una sola llamada. La reconciliación se hace por `external_unit_id`.

<ParamField header="x-api-key" type="string" required>
  API key de BOH con scope `catalog:write`.
</ParamField>

<ParamField path="vendorId" type="string" required>UUID del vendor.</ParamField>

<ParamField body="units" type="object[]" required>
  Array de unidades a sincronizar.

  <Expandable title="campos de unidad">
    <ParamField body="external_unit_id" type="string" required>Clave de reconciliación.</ParamField>
    <ParamField body="name" type="string" required>Nombre de la unidad (ej. `kg`, `litro`).</ParamField>
    <ParamField body="abbreviation" type="string" required>Abreviatura (ej. `kg`, `L`).</ParamField>
    <ParamField body="unit_group_external_id" type="string" required>ID del grupo de unidades al que pertenece.</ParamField>
    <ParamField body="conversion_factor" type="number">Factor de conversión relativo a la unidad base del grupo (default 1).</ParamField>
  </Expandable>
</ParamField>

<ParamField body="unit_groups" type="object[]">
  Grupos de unidades a sincronizar/crear antes que las unidades.

  <Expandable title="campos del grupo">
    <ParamField body="external_unit_group_id" type="string" required>ID del grupo.</ParamField>
    <ParamField body="name" type="string" required>Nombre del grupo (ej. `Peso`, `Volumen`).</ParamField>
  </Expandable>
</ParamField>

<RequestExample>
  ```json theme={null}
  {
    "unit_groups": [
      { "external_unit_group_id": "peso", "name": "Peso" }
    ],
    "units": [
      {
        "external_unit_id": "kg",
        "name": "Kilogramo",
        "abbreviation": "kg",
        "unit_group_external_id": "peso",
        "conversion_factor": 1
      },
      {
        "external_unit_id": "gr",
        "name": "Gramo",
        "abbreviation": "g",
        "unit_group_external_id": "peso",
        "conversion_factor": 0.001
      }
    ]
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "synced_units": 2,
    "synced_unit_groups": 1
  }
  ```
</ResponseExample>
