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

# Sucursales de un cliente

> Registre las sucursales de sus clientes y emita a una de ellas con receptor.idSucursal, en lugar de re-escribir dirección y correo en cada documento.

Un cliente con varias sucursales recibe sus documentos en direcciones distintas, y muchas veces en correos distintos. Como el registro del cliente sólo guarda una dirección y un correo, facturar "a la sucursal de Zona 10" obligaba a re-escribir esos datos en cada documento.

Con las sucursales, se registran una vez y después se emite nombrando la sucursal.

## Se registran a mano — no se derivan

Las sucursales de un **cliente** las registra usted. No se pueden deducir de los documentos que emite, porque el bloque `Receptor` del DTE no tiene ningún concepto de establecimiento: sólo lleva identificación, nombre, correo y dirección del receptor.

<Note>
  Es lo contrario de las [sucursales de un proveedor](/dte/proveedores#sucursales-del-proveedor), que sí vienen en el documento recibido y aparecen automáticamente.
</Note>

## Registrar una sucursal

```bash theme={null}
curl -X POST "https://api.fegora.com/cliente/512/sucursal" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Zona 10",
    "codigo": "Z10",
    "direccionCorreoElectronico": "zona10@cliente.example",
    "direccion": "10 Av 11-66 zona 10",
    "municipio": "Guatemala",
    "departamento": "Guatemala",
    "codigoPostal": "01010",
    "pais": "GT"
  }'
```

| Campo                                                                                             | Requerido | Descripción                                                                                   |
| ------------------------------------------------------------------------------------------------- | --------- | --------------------------------------------------------------------------------------------- |
| `nombre`                                                                                          | Sí        | Cómo llama usted a la sucursal: "Zona 10", "Bodega Central". Es lo que se elige en una lista. |
| `codigo`                                                                                          | No        | Su propio código interno ("Z10", "CEDIS"). Único por cliente cuando se envía.                 |
| `direccionCorreoElectronico`                                                                      | No        | Correo de esa sucursal. La razón principal por la que esto es una entidad aparte.             |
| `nombreComercial`, `telefono`                                                                     | No        |                                                                                               |
| `direccion`, `municipio`, `departamento`, `idMunicipio`, `idDepartamento`, `codigoPostal`, `pais` | No        | Dirección de la sucursal.                                                                     |
| `notas`                                                                                           | No        |                                                                                               |

| Método   | Ruta                             | Qué hace                                                                |
| -------- | -------------------------------- | ----------------------------------------------------------------------- |
| `GET`    | `/cliente/{id}/sucursal`         | Lista las sucursales del cliente. Paginado, con búsqueda por `termino`. |
| `POST`   | `/cliente/{id}/sucursal`         | Registra una sucursal.                                                  |
| `PATCH`  | `/cliente/sucursal/{idSucursal}` | Edita una sucursal. Envíe `activo: false` para retirarla.               |
| `DELETE` | `/cliente/sucursal/{idSucursal}` | Retira la sucursal (retiro lógico).                                     |

## Emitir a una sucursal

Al crear el DTE, indique la sucursal en el receptor:

```json theme={null}
{
  "receptor": { "idSucursal": 12 },
  "items": [
    { "descripcion": "Servicios profesionales", "precioUnitario": 1500 }
  ]
}
```

Eso es suficiente. Fegora arma el bloque receptor así:

* la **identidad** (identificación fiscal y nombre) sale del **cliente** al que pertenece la sucursal — una sucursal no es un contribuyente distinto;
* la **dirección y el correo** salen de la **sucursal**;
* lo que la sucursal no tenga, lo aporta el cliente.

### Lo que usted envía siempre gana

El campo es **aditivo**. Si además de `idSucursal` envía un campo explícito, ese valor se usa; la sucursal sólo rellena lo que faltaba:

```json theme={null}
{
  "receptor": {
    "idSucursal": 12,
    "correoElectronico": "otro@cliente.example"
  }
}
```

Aquí el documento va a `otro@cliente.example`, pero la dirección sigue siendo la de la sucursal 12.

<Note>
  Un valor vacío (`""`) cuenta como ausente, de modo que un formulario que envía cadenas vacías en los campos que no se tocaron se comporta igual que uno que los omite.
</Note>

Los clientes que ya envían el bloque receptor completo **no cambian en nada**: si no manda `idSucursal`, no hay sucursal que resolver y todo se comporta como siempre.

### No es un dato fiscal

La sucursal **no viaja al XML** como establecimiento del receptor — ese nodo no existe en el estándar. Sólo decide *qué valores* llenan la dirección y el correo del receptor. Por eso introducirla no cambia la validación del certificador ni del fisco.

El documento sí queda marcado con la sucursal a la que se emitió, para poder consultar después los documentos de una sucursal en particular.

## Errores

| Código                  | Cuándo                                                           |
| ----------------------- | ---------------------------------------------------------------- |
| `FEG_DTE_CREA_SUC_001`  | La sucursal no existe, está inactiva o no pertenece a su Cuenta. |
| `FEG_CLI_SUC_CREA_INEX` | El cliente no existe o no pertenece a su Cuenta.                 |
| `FEG_CLI_SUC_CREA_001`  | Ya existe una sucursal con ese `codigo` para ese cliente.        |
| `FEG_CLI_SUC_ACTU_INEX` | La sucursal no existe o no pertenece a su Cuenta.                |
| `FEG_CLI_SUC_ACTU_001`  | Otra sucursal del mismo cliente ya usa ese `codigo`.             |

<Warning>
  Un `idSucursal` que no se puede resolver es un **error**, no se ignora en silencio: emitir a la dirección por omisión produciría un documento fiscal dirigido al lugar equivocado.
</Warning>

## Sucursal retirada

Una sucursal retirada (`activo: false`) deja de poder usarse al emitir — deja de alimentar direcciones a documentos nuevos, que es justamente para lo que se retira — pero los documentos que ya la referenciaron la conservan.
