{
  "openapi": "3.1.1",
  "info": {
    "title": "DTEMagic API",
    "description": "API de DTEMagic para emitir y seguir documentos tributarios electrónicos del SII.\n\n**Autenticación.** Cada llamada lleva la clave de la empresa en la cabecera `X-Api-Key`. Sin clave o con una clave inválida responde 401.\n\n**Emisión idempotente.** `claveExterna` identifica la operación en el sistema que llama (por ejemplo, el número de la orden). Repetir una emisión con la misma clave devuelve el documento ya emitido (200) en lugar de emitir otro (201). Es seguro reintentar.\n\n**Límite de uso.** Hay un máximo de llamadas por minuto por empresa. Al excederlo responde 429 con la cabecera `Retry-After` (segundos). Un lote cuenta como una sola llamada.\n\n**Errores.** Todo error trae `{ \"title\": \"explicación en español\", \"status\": 400 }`.\n\n**Avisos (webhooks).** En vez de consultar el estado, se puede configurar una dirección https con `PUT /v1/webhook`. DTEMagic hace `POST` con `{ id, evento, creado, empresa, documento }` cuando un documento se envía (`documento.enviado`), el SII lo acepta (`documento.aceptado`) o lo rechaza (`documento.rechazado`). Cada llamada lleva `X-DTEMagic-Signature: t=<unix>,v1=<hex>`, donde `v1` es el HMAC-SHA256 de `\"<t>.<cuerpo>\"` con el secreto entregado al configurar. Hay que responder 2xx; si no, se reintenta 7 veces en total, con esperas crecientes (1 min, 5 min, 30 min, 2 h, 6 h, 24 h). El mismo aviso puede llegar más de una vez: `id` permite descartar repetidos.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://app.dtemagic.cl/"
    }
  ],
  "paths": {
    "/v1/documentos": {
      "post": {
        "tags": [
          "Documentos"
        ],
        "summary": "Emite un documento (201 nuevo, 200 si la claveExterna ya existía)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudEmision"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/lote": {
      "post": {
        "tags": [
          "Documentos"
        ],
        "summary": "Emite hasta 100 documentos; cada uno termina por separado",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudEmisionLote"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}": {
      "get": {
        "tags": [
          "Documentos"
        ],
        "summary": "Consulta un documento; si el SII aún lo revisa, pregunta su estado",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/xml": {
      "get": {
        "tags": [
          "Documentos"
        ],
        "summary": "XML firmado del documento (DTE)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/contribuyentes/{rut}": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Datos conocidos de un RUT (libreta de la empresa o directorio del SII)",
        "parameters": [
          {
            "name": "rut",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/folios": {
      "get": {
        "tags": [
          "Folios"
        ],
        "summary": "Folios disponibles por tipo y sucursal",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/impresion": {
      "get": {
        "tags": [
          "Impresión y correo"
        ],
        "summary": "Datos de la representación impresa",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "firma",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/pdf": {
      "get": {
        "tags": [
          "Impresión y correo"
        ],
        "summary": "PDF del documento (cedible=true para la copia cedible)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "cedible",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/correo": {
      "post": {
        "tags": [
          "Impresión y correo"
        ],
        "summary": "Envía el PDF y el XML al cliente por correo (1 a 5 direcciones)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudCorreo"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/correos": {
      "get": {
        "tags": [
          "Impresión y correo"
        ],
        "summary": "Historial de envíos por correo del documento",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/respuestas": {
      "get": {
        "tags": [
          "Documentos"
        ],
        "summary": "Respuestas del cliente a un documento: recepción, aceptación o rechazo y recibo de mercaderías",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/timbre.svg": {
      "get": {
        "tags": [
          "Impresión y correo"
        ],
        "summary": "Timbre electrónico (PDF417) en SVG",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "firma",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/libros/guias": {
      "post": {
        "tags": [
          "Libros"
        ],
        "summary": "Libro de guías de despacho",
        "parameters": [
          {
            "name": "enviar",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudLibroGuias"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/libros/ventas": {
      "post": {
        "tags": [
          "Libros"
        ],
        "summary": "Libro de ventas",
        "parameters": [
          {
            "name": "enviar",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudLibroVentas"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/libros/compras/previa": {
      "get": {
        "tags": [
          "Libros"
        ],
        "summary": "Qué documentos y totales tendría el libro de compras de un mes",
        "parameters": [
          {
            "name": "periodo",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/libros/compras": {
      "post": {
        "tags": [
          "Libros"
        ],
        "summary": "Libro de compras (con desdeRecibidos=true se arma con lo recibido en el mes)",
        "parameters": [
          {
            "name": "enviar",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudLibroCompras"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/envio.xml": {
      "get": {
        "tags": [
          "Documentos"
        ],
        "summary": "Sobre EnvioDTE tal como se subiría al SII",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/libros/estado/{trackId}": {
      "get": {
        "tags": [
          "Libros"
        ],
        "summary": "Estado de un libro enviado al SII",
        "parameters": [
          {
            "name": "trackId",
            "in": "path",
            "required": true,
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/compras": {
      "get": {
        "tags": [
          "Documentos recibidos"
        ],
        "summary": "Documentos que los proveedores enviaron a la empresa",
        "parameters": [
          {
            "name": "estado",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tipo",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "desde",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "hasta",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "texto",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagina",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          {
            "name": "tamano",
            "in": "query",
            "schema": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/compras/{id}": {
      "get": {
        "tags": [
          "Documentos recibidos"
        ],
        "summary": "Un documento recibido",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/compras/{id}/xml": {
      "get": {
        "tags": [
          "Documentos recibidos"
        ],
        "summary": "XML de un documento recibido",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/compras/{id}/respuesta": {
      "post": {
        "tags": [
          "Documentos recibidos"
        ],
        "summary": "Acepta o rechaza un documento recibido",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudRespuestaCompra"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/compras/{id}/recibo": {
      "post": {
        "tags": [
          "Documentos recibidos"
        ],
        "summary": "Confirma la recepción de lo que ampara un documento (Ley 19.983)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/compras/{id}/registro-sii": {
      "get": {
        "tags": [
          "Documentos recibidos"
        ],
        "summary": "Lo que el SII tiene registrado de la aceptación, el reclamo o el recibo de un documento recibido",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      },
      "post": {
        "tags": [
          "Documentos recibidos"
        ],
        "summary": "Vuelve a registrar en el SII lo que no alcanzó a quedar registrado",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/envio-lote.xml": {
      "post": {
        "tags": [
          "Envío al SII"
        ],
        "summary": "Sobre firmado de varios documentos como archivo, sin enviarlo (para subirlo a mano al SII)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudLote"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/resumen-ventas/{fecha}": {
      "get": {
        "tags": [
          "Resumen de ventas diarias"
        ],
        "summary": "Lo que dice el resumen diario de boletas de un día y si el SII ya lo tiene",
        "parameters": [
          {
            "name": "fecha",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/resumen-ventas/{fecha}/archivo": {
      "get": {
        "tags": [
          "Resumen de ventas diarias"
        ],
        "summary": "El resumen de un día como archivo firmado, sin enviarlo",
        "parameters": [
          {
            "name": "fecha",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/resumen-ventas/{fecha}/enviar": {
      "post": {
        "tags": [
          "Resumen de ventas diarias"
        ],
        "summary": "Envía al SII el resumen diario de boletas de un día (AAAA-MM-DD); solo si cambió",
        "parameters": [
          {
            "name": "fecha",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/enviar-lote": {
      "post": {
        "tags": [
          "Envío al SII"
        ],
        "summary": "Envía varios documentos en un solo sobre",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudLote"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/documentos/{id}/enviar": {
      "post": {
        "tags": [
          "Envío al SII"
        ],
        "summary": "Envía un documento recién emitido al SII",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/webhook": {
      "get": {
        "tags": [
          "Avisos (webhooks)"
        ],
        "summary": "Dirección de destino configurada",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      },
      "put": {
        "tags": [
          "Avisos (webhooks)"
        ],
        "summary": "Configura la dirección de destino; la primera vez devuelve el secreto, una sola vez",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SolicitudWebhook"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      },
      "delete": {
        "tags": [
          "Avisos (webhooks)"
        ],
        "summary": "Quita la dirección de destino",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/webhook/secreto": {
      "post": {
        "tags": [
          "Avisos (webhooks)"
        ],
        "summary": "Genera un secreto nuevo; el anterior deja de servir",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/webhook/prueba": {
      "post": {
        "tags": [
          "Avisos (webhooks)"
        ],
        "summary": "Encola un aviso de prueba (evento ping)",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    },
    "/v1/webhook/entregas": {
      "get": {
        "tags": [
          "Avisos (webhooks)"
        ],
        "summary": "Últimos 50 avisos con su estado, intentos y error",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Falta la clave de API o no es válida."
          },
          "429": {
            "description": "Demasiadas llamadas; espera los segundos de la cabecera Retry-After."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AjusteGuia": {
        "required": [
          "folio"
        ],
        "type": "object",
        "properties": {
          "folio": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "anulado": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "factura": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/FacturaDeGuia"
              }
            ]
          }
        }
      },
      "DescuentoGlobal": {
        "required": [
          "porcentaje"
        ],
        "type": "object",
        "properties": {
          "porcentaje": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "glosa": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DetalleCv": {
        "required": [
          "tipoDocumento",
          "folio",
          "fecha"
        ],
        "type": "object",
        "properties": {
          "tipoDocumento": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "folio": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "fecha": {
            "type": "string",
            "format": "date"
          },
          "rut": {
            "type": [
              "null",
              "string"
            ]
          },
          "razonSocial": {
            "type": [
              "null",
              "string"
            ]
          },
          "anulado": {
            "type": "boolean",
            "default": false
          },
          "tasaImpuesto": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double",
            "default": 19
          },
          "exento": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64",
            "default": 0
          },
          "neto": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64",
            "default": 0
          },
          "iva": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64",
            "default": 0
          },
          "ivaUsoComun": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64",
            "default": 0
          },
          "ivaNoRecuperable": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/IvaNoRecuperable"
            }
          },
          "ivaRetenidoTotal": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64",
            "default": 0
          },
          "total": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64",
            "default": 0
          },
          "entregaGratuita": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "DocumentoAnulado": {
        "required": [
          "tipo",
          "folio"
        ],
        "type": "object",
        "properties": {
          "tipo": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "folio": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          }
        }
      },
      "FacturaDeGuia": {
        "required": [
          "tipo",
          "folio",
          "fecha"
        ],
        "type": "object",
        "properties": {
          "tipo": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "folio": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "fecha": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "GiroSugerido": {
        "required": [
          "codigo",
          "descripcion"
        ],
        "type": "object",
        "properties": {
          "codigo": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "descripcion": {
            "type": "string"
          }
        }
      },
      "IvaNoRecuperable": {
        "required": [
          "codigo",
          "monto"
        ],
        "type": "object",
        "properties": {
          "codigo": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "monto": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          }
        }
      },
      "LineaDetalle": {
        "required": [
          "nombre",
          "cantidad",
          "precioUnitario"
        ],
        "type": "object",
        "properties": {
          "nombre": {
            "type": "string"
          },
          "cantidad": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "precioUnitario": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "descuentoMonto": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double",
            "default": 0
          },
          "exento": {
            "type": "boolean",
            "default": false
          },
          "descuentoPct": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "unidadMedida": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "Receptor": {
        "required": [
          "rut",
          "razonSocial",
          "giro",
          "direccion",
          "comuna"
        ],
        "type": "object",
        "properties": {
          "rut": {
            "type": "string"
          },
          "razonSocial": {
            "type": "string"
          },
          "giro": {
            "type": "string"
          },
          "direccion": {
            "type": "string"
          },
          "comuna": {
            "type": "string"
          },
          "ciudad": {
            "type": [
              "null",
              "string"
            ]
          },
          "correo": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ReceptorEncontrado": {
        "required": [
          "rut",
          "razonSocial",
          "giro",
          "giros",
          "direccion",
          "comuna",
          "ciudad",
          "fuente",
          "aviso"
        ],
        "type": "object",
        "properties": {
          "rut": {
            "type": "string"
          },
          "razonSocial": {
            "type": "string"
          },
          "giro": {
            "type": "string"
          },
          "giros": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GiroSugerido"
            }
          },
          "direccion": {
            "type": "string"
          },
          "comuna": {
            "type": "string"
          },
          "ciudad": {
            "type": [
              "null",
              "string"
            ]
          },
          "fuente": {
            "type": "string"
          },
          "aviso": {
            "type": [
              "null",
              "string"
            ]
          },
          "correo": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "Referencia": {
        "required": [
          "tipoDocumento",
          "folio",
          "fecha"
        ],
        "type": "object",
        "properties": {
          "tipoDocumento": {
            "type": "string"
          },
          "folio": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "fecha": {
            "type": "string",
            "format": "date"
          },
          "codigo": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "razon": {
            "type": [
              "null",
              "string"
            ]
          },
          "codigoLibre": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudAceptar": {
        "required": [
          "nombre",
          "clave"
        ],
        "type": "object",
        "properties": {
          "nombre": {
            "type": [
              "null",
              "string"
            ]
          },
          "clave": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudActivo": {
        "required": [
          "activo"
        ],
        "type": "object",
        "properties": {
          "activo": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "SolicitudAdministrador": {
        "required": [
          "correo",
          "nombre"
        ],
        "type": "object",
        "properties": {
          "correo": {
            "type": [
              "null",
              "string"
            ]
          },
          "nombre": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudAltaEmpresa": {
        "required": [
          "id",
          "ambiente",
          "rut",
          "razonSocial",
          "giro",
          "codigoActividad",
          "direccion",
          "comuna",
          "ciudad",
          "rutEnvia",
          "fechaResolucion",
          "numeroResolucion",
          "oficinaSii",
          "certificadoPfx",
          "certificadoClave",
          "cafs",
          "adminCorreo",
          "adminNombre"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "null",
              "string"
            ]
          },
          "ambiente": {
            "type": [
              "null",
              "string"
            ]
          },
          "rut": {
            "type": [
              "null",
              "string"
            ]
          },
          "razonSocial": {
            "type": [
              "null",
              "string"
            ]
          },
          "giro": {
            "type": [
              "null",
              "string"
            ]
          },
          "codigoActividad": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "direccion": {
            "type": [
              "null",
              "string"
            ]
          },
          "comuna": {
            "type": [
              "null",
              "string"
            ]
          },
          "ciudad": {
            "type": [
              "null",
              "string"
            ]
          },
          "rutEnvia": {
            "type": [
              "null",
              "string"
            ]
          },
          "fechaResolucion": {
            "type": [
              "null",
              "string"
            ]
          },
          "numeroResolucion": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "oficinaSii": {
            "type": [
              "null",
              "string"
            ]
          },
          "certificadoPfx": {
            "type": [
              "null",
              "string"
            ]
          },
          "certificadoClave": {
            "type": [
              "null",
              "string"
            ]
          },
          "cafs": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "adminCorreo": {
            "type": [
              "null",
              "string"
            ]
          },
          "adminNombre": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudAprobar": {
        "required": [
          "tenantId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudCaf": {
        "required": [
          "xml"
        ],
        "type": "object",
        "properties": {
          "xml": {
            "type": [
              "null",
              "string"
            ]
          },
          "sucursalId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "SolicitudCambioClave": {
        "required": [
          "actual",
          "nueva"
        ],
        "type": "object",
        "properties": {
          "actual": {
            "type": [
              "null",
              "string"
            ]
          },
          "nueva": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudCertificado": {
        "required": [
          "pfx",
          "clave"
        ],
        "type": "object",
        "properties": {
          "pfx": {
            "type": [
              "null",
              "string"
            ]
          },
          "clave": {
            "type": [
              "null",
              "string"
            ]
          },
          "rutEnvia": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudCobro": {
        "required": [
          "planId",
          "modalidad",
          "meses",
          "correo",
          "enlace",
          "rut",
          "razonSocial",
          "nombre"
        ],
        "type": "object",
        "properties": {
          "planId": {
            "type": [
              "null",
              "string"
            ]
          },
          "modalidad": {
            "type": [
              "null",
              "string"
            ]
          },
          "meses": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "correo": {
            "type": [
              "null",
              "string"
            ]
          },
          "enlace": {
            "type": [
              "null",
              "string"
            ]
          },
          "rut": {
            "type": [
              "null",
              "string"
            ]
          },
          "razonSocial": {
            "type": [
              "null",
              "string"
            ]
          },
          "nombre": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudConfigFolios": {
        "required": [
          "activo",
          "diasDeCobertura"
        ],
        "type": "object",
        "properties": {
          "activo": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "diasDeCobertura": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "SolicitudCorreo": {
        "required": [
          "para"
        ],
        "type": "object",
        "properties": {
          "para": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SolicitudDatosEmpresa": {
        "required": [
          "razonSocial",
          "giro",
          "codigoActividad",
          "direccion",
          "comuna",
          "ciudad"
        ],
        "type": "object",
        "properties": {
          "razonSocial": {
            "type": [
              "null",
              "string"
            ]
          },
          "giro": {
            "type": [
              "null",
              "string"
            ]
          },
          "codigoActividad": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "direccion": {
            "type": [
              "null",
              "string"
            ]
          },
          "comuna": {
            "type": [
              "null",
              "string"
            ]
          },
          "ciudad": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudEmision": {
        "required": [
          "claveExterna",
          "tipo",
          "fechaEmision",
          "receptor",
          "lineas"
        ],
        "type": "object",
        "properties": {
          "claveExterna": {
            "type": "string"
          },
          "tipo": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "fechaEmision": {
            "type": [
              "null",
              "string"
            ],
            "format": "date"
          },
          "receptor": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Receptor"
              }
            ]
          },
          "lineas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineaDetalle"
            }
          },
          "referencias": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/Referencia"
            }
          },
          "indServicio": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "traslado": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Traslado"
              }
            ]
          },
          "descuentoGlobal": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/DescuentoGlobal"
              }
            ]
          },
          "sucursalId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        }
      },
      "SolicitudEmisionLote": {
        "required": [
          "documentos"
        ],
        "type": "object",
        "properties": {
          "documentos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SolicitudEmision"
            }
          }
        }
      },
      "SolicitudEmpresa": {
        "required": [
          "tenantId"
        ],
        "type": "object",
        "properties": {
          "tenantId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudInvitacion": {
        "required": [
          "email",
          "rol"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": [
              "null",
              "string"
            ]
          },
          "rol": {
            "type": [
              "null",
              "string"
            ]
          },
          "nombre": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudLibroCompras": {
        "required": [
          "periodo",
          "documentos"
        ],
        "type": "object",
        "properties": {
          "periodo": {
            "type": "string"
          },
          "documentos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DetalleCv"
            }
          },
          "tipoLibro": {
            "type": [
              "null",
              "string"
            ]
          },
          "folioNotificacion": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "tipoEnvio": {
            "type": [
              "null",
              "string"
            ]
          },
          "factorProporcionalidad": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "desdeRecibidos": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "SolicitudLibroGuias": {
        "required": [
          "periodo",
          "folioNotificacion"
        ],
        "type": "object",
        "properties": {
          "periodo": {
            "type": "string"
          },
          "folioNotificacion": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "tipoEnvio": {
            "type": [
              "null",
              "string"
            ]
          },
          "ajustes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/AjusteGuia"
            }
          },
          "foliosAnulados": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int64"
            }
          },
          "documentos": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        }
      },
      "SolicitudLibroVentas": {
        "required": [
          "periodo"
        ],
        "type": "object",
        "properties": {
          "periodo": {
            "type": "string"
          },
          "tipoLibro": {
            "type": [
              "null",
              "string"
            ]
          },
          "folioNotificacion": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "tipoEnvio": {
            "type": [
              "null",
              "string"
            ]
          },
          "foliosAnulados": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/DocumentoAnulado"
            }
          },
          "documentos": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        }
      },
      "SolicitudLogin": {
        "required": [
          "email",
          "clave"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": [
              "null",
              "string"
            ]
          },
          "clave": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudLogo": {
        "required": [
          "imagen"
        ],
        "type": "object",
        "properties": {
          "imagen": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudLote": {
        "required": [
          "documentos"
        ],
        "type": "object",
        "properties": {
          "documentos": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        }
      },
      "SolicitudPedirFolios": {
        "required": [
          "tipo",
          "sucursalId",
          "cantidad"
        ],
        "type": "object",
        "properties": {
          "tipo": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "sucursalId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "cantidad": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "SolicitudPlan": {
        "required": [
          "nombre",
          "para",
          "docsIncluidos",
          "incluye",
          "precioNeto",
          "precioPreferencialNeto",
          "precioDocExtra",
          "descuentoAnualPct",
          "destacado",
          "orden",
          "activo"
        ],
        "type": "object",
        "properties": {
          "nombre": {
            "type": [
              "null",
              "string"
            ]
          },
          "para": {
            "type": [
              "null",
              "string"
            ]
          },
          "docsIncluidos": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "incluye": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "precioNeto": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "precioPreferencialNeto": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "precioDocExtra": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "descuentoAnualPct": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "destacado": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "orden": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "activo": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "SolicitudPuestaEnMarcha": {
        "required": [
          "clave",
          "giro",
          "codigoActividad",
          "direccion",
          "comuna",
          "ciudad",
          "rutEnvia",
          "certificadoPfx",
          "certificadoClave"
        ],
        "type": "object",
        "properties": {
          "clave": {
            "type": [
              "null",
              "string"
            ]
          },
          "giro": {
            "type": [
              "null",
              "string"
            ]
          },
          "codigoActividad": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "direccion": {
            "type": [
              "null",
              "string"
            ]
          },
          "comuna": {
            "type": [
              "null",
              "string"
            ]
          },
          "ciudad": {
            "type": [
              "null",
              "string"
            ]
          },
          "rutEnvia": {
            "type": [
              "null",
              "string"
            ]
          },
          "certificadoPfx": {
            "type": [
              "null",
              "string"
            ]
          },
          "certificadoClave": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudRecuperar": {
        "required": [
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudRespuestaCompra": {
        "required": [
          "decision"
        ],
        "type": "object",
        "properties": {
          "decision": {
            "type": "string"
          }
        }
      },
      "SolicitudRestablecer": {
        "required": [
          "clave"
        ],
        "type": "object",
        "properties": {
          "clave": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudRol": {
        "required": [
          "rol"
        ],
        "type": "object",
        "properties": {
          "rol": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "SolicitudSucursal": {
        "required": [
          "nombre",
          "codigoSii",
          "direccion",
          "comuna",
          "ciudad"
        ],
        "type": "object",
        "properties": {
          "nombre": {
            "type": [
              "null",
              "string"
            ]
          },
          "codigoSii": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "direccion": {
            "type": [
              "null",
              "string"
            ]
          },
          "comuna": {
            "type": [
              "null",
              "string"
            ]
          },
          "ciudad": {
            "type": [
              "null",
              "string"
            ]
          },
          "activa": {
            "type": [
              "null",
              "boolean"
            ]
          }
        }
      },
      "SolicitudVerificacion": {
        "required": [
          "rut",
          "folio",
          "fecha",
          "monto"
        ],
        "type": "object",
        "properties": {
          "rut": {
            "type": [
              "null",
              "string"
            ]
          },
          "folio": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "fecha": {
            "type": [
              "null",
              "string"
            ]
          },
          "monto": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          }
        }
      },
      "SolicitudWebhook": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "Transporte": {
        "type": "object",
        "properties": {
          "patente": {
            "type": [
              "null",
              "string"
            ]
          },
          "rutTransportista": {
            "type": [
              "null",
              "string"
            ]
          },
          "rutChofer": {
            "type": [
              "null",
              "string"
            ]
          },
          "nombreChofer": {
            "type": [
              "null",
              "string"
            ]
          },
          "direccionDestino": {
            "type": [
              "null",
              "string"
            ]
          },
          "comunaDestino": {
            "type": [
              "null",
              "string"
            ]
          },
          "ciudadDestino": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "Traslado": {
        "required": [
          "indicador"
        ],
        "type": "object",
        "properties": {
          "indicador": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tipoDespacho": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "transporte": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Transporte"
              }
            ]
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "La clave de API de la empresa (empieza con dtm_). Se genera y se rota desde el portal.",
        "name": "X-Api-Key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": [ ]
    }
  ],
  "tags": [
    {
      "name": "Documentos"
    },
    {
      "name": "Envío al SII"
    },
    {
      "name": "Resumen de ventas diarias"
    },
    {
      "name": "Impresión y correo"
    },
    {
      "name": "Clientes"
    },
    {
      "name": "Folios"
    },
    {
      "name": "Libros"
    },
    {
      "name": "Documentos recibidos"
    },
    {
      "name": "Avisos (webhooks)"
    }
  ]
}