---
title: "Reemplazar una plantilla"
method: PUT
path: "/documents/templates/{templateId}"
tags: ["Plantillas"]
---

# Reemplazar una plantilla

`PUT /documents/templates/{templateId}`

## Request

- Base URL: `https://www.facture.ar/api`
- URL: `https://www.facture.ar/api/documents/templates/{templateId}`
- Auth: API key in header `x-api-key`

Reemplaza la plantilla con el body completo: los campos que no mandás vuelven a su valor por defecto, salvo columnMapping, que se conserva si no lo mandás.

## Path parameters

- `templateId` string, required

## Request body

- TemplateInput
  - `name` string, required
  - `cuitId` string, nullable: CUIT emisor. Obligatorio en modo automático y en las recurrentes
  - `ptoVta` integer, nullable
  - `mode` 'manual' | 'automatic'
  - `concepto` 1 | 2 | 3
  - `ivaRate` 0 | 2.5 | 5 | 10.5 | 21 | 27
  - `pricesIncludeIva` boolean
  - `receiverDocType` 'CUIT' | 'CUIL' | 'DNI' | 'null', nullable: Cliente fijo: todas las facturas de la plantilla van a él
  - `receiverDocNumber` string, nullable
  - `receiverName` string, nullable
  - `receiverCondicionIva` integer, nullable
  - `receiverEmail` string, email, nullable
  - `items` object[], nullable: Líneas fijas, para las facturas recurrentes
    - `description` string, required
    - `quantity` number, required
    - `unitPrice` number, required
  - `priceList` object[], nullable: Precios para documentos que no los traen (remitos)
    - `description` string, required
    - `unitPrice` number, required
  - `instructions` string, nullable: Lo que la IA tiene que saber para leer este tipo de documento
  - `columnMapping` object, nullable: Columnas de la planilla → campos de la factura
    - `headerRow` integer
    - `columns` object: Campo → nombre de la columna. Campos: receiverName, receiverDoc, receiverEmail, receiverCondicionIva, receiverAddress, description, quantity, unitPrice, lineTotal, ivaRate, reference, date, concepto
    - `groupBy` string, nullable
    - `pricesIncludeIva` boolean
  - `paymentTermDays` integer, nullable
  - `sendEmail` boolean: Mandarle la factura al cliente por email
  - `emailCopyTo` string, email, nullable
  - `recurrence` 'monthly' | 'null', nullable: monthly: emite las líneas fijas todos los meses en dayOfMonth
  - `dayOfMonth` integer, nullable
  - `active` boolean

## Response `200`

Plantilla actualizada

- object
  - `template` Template
    - `id` string
    - `userId` string
    - `name` string
    - `cuitId` string, nullable: CUIT emisor. Obligatorio en modo automático y en las recurrentes
    - `ptoVta` integer, nullable
    - `mode` 'manual' | 'automatic'
    - `concepto` 1 | 2 | 3
    - `ivaRate` 0 | 2.5 | 5 | 10.5 | 21 | 27
    - `pricesIncludeIva` boolean
    - `receiverDocType` 'CUIT' | 'CUIL' | 'DNI' | 'null', nullable: Cliente fijo: todas las facturas de la plantilla van a él
    - `receiverDocNumber` string, nullable
    - `receiverName` string, nullable
    - `receiverCondicionIva` integer, nullable
    - `receiverEmail` string, email, nullable
    - `items` object[], nullable: Líneas fijas, para las facturas recurrentes
      - `description` string, required
      - `quantity` number, required
      - `unitPrice` number, required
    - `priceList` object[], nullable: Precios para documentos que no los traen (remitos)
      - `description` string, required
      - `unitPrice` number, required
    - `instructions` string, nullable: Lo que la IA tiene que saber para leer este tipo de documento
    - `columnMapping` object, nullable: Columnas de la planilla → campos de la factura
      - `headerRow` integer
      - `columns` object: Campo → nombre de la columna. Campos: receiverName, receiverDoc, receiverEmail, receiverCondicionIva, receiverAddress, description, quantity, unitPrice, lineTotal, ivaRate, reference, date, concepto
      - `groupBy` string, nullable
      - `pricesIncludeIva` boolean
    - `paymentTermDays` integer, nullable
    - `sendEmail` boolean: Mandarle la factura al cliente por email
    - `emailCopyTo` string, email, nullable
    - `recurrence` 'monthly' | 'null', nullable: monthly: emite las líneas fijas todos los meses en dayOfMonth
    - `dayOfMonth` integer, nullable
    - `active` boolean
    - `nextRunAt` string, date-time, nullable
    - `lastRunAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400`: Datos inválidos o la plantilla no existe

---

[API](https://skmtc.dev/facture/apis/facturear-api.md) · [All operations](https://skmtc.dev/facture/apis/facturear-api/llms.txt) · [OpenAPI document](https://skmtc.dev/facture/apis/facturear-api/revisions/b572c5908978?raw)
