{"openapi":"3.0.0","paths":{"/taxpayers":{"get":{"operationId":"TaxpayersController_findAll","parameters":[{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Empresas emisoras y total"}},"security":[{"bearer":[]}],"summary":"Listar las empresas emisoras de la cuenta","tags":["Empresas emisoras"]}},"/taxpayers/{rut}":{"get":{"operationId":"TaxpayersController_findOne","parameters":[{"name":"rut","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaxpayerDto"}}}},"404":{"description":"La empresa no está en la cuenta"}},"security":[{"bearer":[]}],"summary":"Una empresa emisora por su RUT","tags":["Empresas emisoras"]}},"/taxpayers/{rut}/logo":{"get":{"operationId":"TaxpayersController_getLogo","parameters":[{"name":"rut","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Imagen PNG o JPG"},"404":{"description":"La empresa no tiene logo"}},"security":[{"bearer":[]}],"summary":"Logo que se imprime en los documentos de la empresa","tags":["Empresas emisoras"]}},"/caf":{"get":{"description":"Con taxpayerRut, solo los de esa empresa. Cada CAF trae su ambiente (CERT o PROD) y los folios disponibles.","operationId":"CafController_findAll","parameters":[{"name":"taxpayerRut","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CafDto"}}}}}},"security":[{"bearer":[]}],"summary":"Folios autorizados (CAF) de las empresas de la cuenta","tags":["Folios (CAF)"]}},"/caf/availability/{taxpayerRut}":{"get":{"operationId":"CafController_getAvailability","parameters":[{"name":"taxpayerRut","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Disponibilidad de folios por tipo"}},"security":[{"bearer":[]}],"summary":"Folios disponibles por tipo de documento","tags":["Folios (CAF)"]}},"/dte":{"post":{"description":"Valida el documento, toma el siguiente folio del CAF vigente, lo firma con el certificado de la empresa y lo envía al SII del ambiente de la empresa (certificación o producción). Si el SII no recibe el envío, el documento queda firmado (status SIGNED) con su folio y se reenvía con POST /dte/:id/enviar sin gastar otro folio. Las boletas (39 y 41) van por la API REST de boletas del SII, con los precios con IVA incluido; sin receptor quedan a consumidor final (66666666-6).","operationId":"DteController_issue","parameters":[{"name":"idempotency-key","required":true,"in":"header","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Clave única por documento: si se repite, devuelve el documento ya emitido en vez de emitir otro","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueDteDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DteDto"}}}},"400":{"description":"Datos inválidos, faltan datos del emisor o no hay folios"},"403":{"description":"Se agotó el cupo del plan Gratis del mes"}},"security":[{"bearer":[]}],"summary":"Emitir un documento","tags":["Documentos (DTE)"]},"get":{"operationId":"DteController_findAll","parameters":[{"name":"rutEmisor","required":false,"in":"query","description":"RUT de la empresa emisora","schema":{"type":"string"}},{"name":"tipoDte","required":false,"in":"query","schema":{"enum":[33,34,39,41,46,52,56,61],"type":"number"}},{"name":"status","required":false,"in":"query","schema":{"enum":["DRAFT","SIGNED","SENT","ACCEPTED","REJECTED","CANCELLED"],"type":"string"}},{"name":"receptorRut","required":false,"in":"query","description":"RUT del receptor","schema":{"type":"string"}},{"name":"desde","required":false,"in":"query","schema":{"example":"2026-10-01","type":"string"}},{"name":"hasta","required":false,"in":"query","schema":{"example":"2026-10-31","type":"string"}},{"name":"page","required":false,"in":"query","schema":{"default":1,"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"maximum":100,"default":20,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DteListDto"}}}}},"security":[{"bearer":[]}],"summary":"Listar documentos emitidos, del más reciente al más antiguo","tags":["Documentos (DTE)"]}},"/dte/{id}":{"get":{"operationId":"DteController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DteDto"}}}}},"security":[{"bearer":[]}],"summary":"Obtener un documento","tags":["Documentos (DTE)"]}},"/dte/{id}/enviar":{"post":{"operationId":"DteController_enviar","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DteDto"}}}}},"security":[{"bearer":[]}],"summary":"Reenviar al SII un documento firmado que no se pudo enviar","tags":["Documentos (DTE)"]}},"/dte/{id}/estado":{"post":{"operationId":"DteController_refreshStatus","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DteDto"}}}}},"security":[{"bearer":[]}],"summary":"Consultar en el SII el estado del envío y actualizar el documento","tags":["Documentos (DTE)"]}},"/dte/{id}/pdf":{"get":{"operationId":"DteController_pdf","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"cedible","required":false,"in":"query","description":"Copia cedible","schema":{"type":"boolean"}}],"responses":{"200":{"description":"PDF de una página"}},"security":[{"bearer":[]}],"summary":"Representación impresa (PDF) con el timbre del SII","tags":["Documentos (DTE)"]}},"/dte/{id}/xml":{"get":{"operationId":"DteController_xml","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Documento DTE firmado"}},"security":[{"bearer":[]}],"summary":"XML firmado del documento (ISO-8859-1)","tags":["Documentos (DTE)"]}},"/publico/boletas/verificar":{"get":{"description":"Público, sin autenticación: lo usa quien recibió la boleta. Responde solo si coinciden el RUT del emisor, el tipo, el folio, la fecha y el monto total.","operationId":"BoletaPublicaController_verificar","parameters":[{"name":"rutEmisor","required":true,"in":"query","description":"RUT del emisor impreso en la boleta","schema":{"example":"76111111-1","type":"string"}},{"name":"tipo","required":true,"in":"query","schema":{"example":39,"enum":[39,41],"type":"number"}},{"name":"folio","required":true,"in":"query","schema":{"example":1520,"type":"number"}},{"name":"fecha","required":true,"in":"query","schema":{"example":"2026-10-25","type":"string"}},{"name":"monto","required":true,"in":"query","description":"Monto total de la boleta, en pesos","schema":{"example":25970,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoletaVerificadaDto"}}}},"404":{"description":"Ninguna boleta coincide con esos datos"}},"summary":"Verificar una boleta con los datos impresos","tags":["Verificación de boletas"]}},"/publico/boletas/pdf":{"get":{"operationId":"BoletaPublicaController_pdf","parameters":[{"name":"rutEmisor","required":true,"in":"query","description":"RUT del emisor impreso en la boleta","schema":{"example":"76111111-1","type":"string"}},{"name":"tipo","required":true,"in":"query","schema":{"example":39,"enum":[39,41],"type":"number"}},{"name":"folio","required":true,"in":"query","schema":{"example":1520,"type":"number"}},{"name":"fecha","required":true,"in":"query","schema":{"example":"2026-10-25","type":"string"}},{"name":"monto","required":true,"in":"query","description":"Monto total de la boleta, en pesos","schema":{"example":25970,"type":"number"}}],"responses":{"200":{"description":"PDF de la boleta"}},"summary":"PDF de una boleta verificada, con los mismos datos","tags":["Verificación de boletas"]}},"/health":{"get":{"operationId":"HealthController_check","parameters":[],"responses":{"200":{"description":"En línea"}},"summary":"La API responde","tags":["Estado del servicio"]}},"/health/ready":{"get":{"operationId":"HealthController_readiness","parameters":[],"responses":{"200":{"description":"Lista para recibir solicitudes"}},"summary":"La API y su base de datos están listas","tags":["Estado del servicio"]}},"/billing":{"get":{"operationId":"BillingController_resumen","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingDto"}}}}},"security":[{"bearer":[]}],"summary":"Plan vigente, uso del mes y planes disponibles","tags":["Plan y cobro"]}}},"info":{"title":"API de Pro DTE","description":"API REST para emitir documentos tributarios electrónicos ante el SII de Chile: facturas, boletas, notas de crédito y débito, guías de despacho y facturas de compra.\n\n## Autenticación\nCrea una clave en el portal (Configuración → Claves de API) y envíala en cada solicitud, como `Authorization: Bearer pdte_…` o `X-API-Key: pdte_…`. Cada clave pertenece a tu cuenta y tiene un rol: **OPERATOR** emite y consulta, **CASHIER** solo emite boletas y **AUDITOR** solo consulta.\n\n## Ambientes del SII\nCada empresa emite en el ambiente en que está: certificación mientras se certifica y producción cuando el SII la autoriza. El campo `env` de cada documento lo indica.\n\n## Emitir sin duplicar\nEnvía el encabezado `Idempotency-Key` con un valor único por documento: si repites la solicitud, por ejemplo tras un corte de red, recibes el mismo documento en vez de emitir otro.\n\n## Estados de un documento\n**SIGNED**: firmado, pero el SII no lo recibió; reenvíalo con `POST /dte/{id}/enviar` sin gastar otro folio. **SENT**: en revisión del SII. **ACCEPTED** y **REJECTED**: resultado del SII, que se consulta con `POST /dte/{id}/estado`.\n\n## Errores\nLas respuestas de error traen `message` en español, listo para mostrar a quien usa tu sistema.\n\n## Límites\nCon credenciales: 25 solicitudes por segundo, 600 por minuto y 20.000 por hora por IP. Al pasarlos la API responde 429.","version":"1.0","contact":{}},"tags":[],"servers":[{"url":"https://api.prodte.com","description":"Producción"}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","description":"Clave de API (pdte_…) o sesión del portal"},"api-key":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"RegisterDto":{"type":"object","properties":{"firstName":{"type":"string","example":"María"},"lastName":{"type":"string","example":"González"},"email":{"type":"string","example":"maria@empresa.cl"},"password":{"type":"string","description":"Al menos 10 caracteres"},"rutEmpresa":{"type":"string","example":"76111111-1","description":"RUT de la empresa que va a facturar"},"razonSocial":{"type":"string","example":"Mi Empresa SpA"}},"required":["firstName","lastName","email","password","rutEmpresa","razonSocial"]},"UserDto":{"type":"object","properties":{"id":{"type":"string","description":"ID del usuario"},"tenantId":{"type":"string","description":"ID del tenant"},"email":{"type":"string","description":"Email del usuario"},"firstName":{"type":"string","description":"Nombre"},"lastName":{"type":"string","description":"Apellido"},"role":{"type":"string","description":"Rol del usuario"}},"required":["id","tenantId","email","role"]},"TokenResponseDto":{"type":"object","properties":{"accessToken":{"type":"string","description":"JWT access token"},"refreshToken":{"type":"string","description":"Token de refresco"},"expiresIn":{"type":"number","description":"Tiempo de expiración en segundos"},"user":{"description":"Datos del usuario","allOf":[{"$ref":"#/components/schemas/UserDto"}]}},"required":["accessToken","refreshToken","expiresIn","user"]},"LoginDto":{"type":"object","properties":{"email":{"type":"string","example":"admin@demo.cl","description":"Email del usuario"},"password":{"type":"string","example":"password123","description":"Contraseña"}},"required":["email","password"]},"TenantDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"rut":{"type":"string"},"plan":{"type":"string","enum":["FREE","STARTER","PRO","ENTERPRISE"]},"status":{"type":"string","enum":["ACTIVE","SUSPENDED","CANCELLED"]},"usersCount":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","rut","plan","status","createdAt","updatedAt"]},"CreateTenantDto":{"type":"object","properties":{"name":{"type":"string","example":"Mi Empresa SpA","description":"Nombre del tenant"},"rut":{"type":"string","example":"76111111-1","description":"RUT del tenant"},"plan":{"type":"string","enum":["FREE","STARTER","PRO","ENTERPRISE"],"default":"FREE"}},"required":["name"]},"UpdatePlanDto":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","STARTER","PRO","ENTERPRISE"],"description":"Nuevo plan"}},"required":["plan"]},"UpdateStatusDto":{"type":"object","properties":{"status":{"type":"string","enum":["ACTIVE","SUSPENDED","CANCELLED"],"description":"Nuevo estado"}},"required":["status"]},"TenantUsageDto":{"type":"object","properties":{"tenantId":{"type":"string"},"period":{"type":"string"},"items":{"type":"array","items":{"type":"string"}}},"required":["tenantId","period","items"]},"UpdateTenantDto":{"type":"object","properties":{"name":{"type":"string","example":"Mi Empresa SpA","description":"Nombre del tenant"},"rut":{"type":"string","example":"76111111-1","description":"RUT del tenant"}}},"CreateUserDto":{"type":"object","properties":{"tenantId":{"type":"string","description":"ID del tenant (requerido para admin)"},"email":{"type":"string","description":"Email del usuario"},"password":{"type":"string","description":"Contraseña"},"firstName":{"type":"string","description":"Nombre"},"lastName":{"type":"string","description":"Apellido"},"role":{"type":"string","description":"Rol del usuario","enum":["TENANT_ADMIN","OPERATOR","CASHIER","AUDITOR"]}},"required":["email","password","role"]},"UpdateUserDto":{"type":"object","properties":{"firstName":{"type":"string","description":"Nombre"},"lastName":{"type":"string","description":"Apellido"},"role":{"type":"string","description":"Rol del usuario","enum":["TENANT_ADMIN","OPERATOR","CASHIER","AUDITOR"]},"isActive":{"type":"boolean","description":"Estado activo"}}},"AsignarClaveDto":{"type":"object","properties":{"password":{"type":"string","description":"Contraseña nueva, de al menos 10 caracteres"}},"required":["password"]},"UserStatusDto":{"type":"object","properties":{"isActive":{"type":"boolean","description":"false quita el acceso al portal y a la API"}},"required":["isActive"]},"UserRoleDto":{"type":"object","properties":{"role":{"type":"string","enum":["TENANT_ADMIN","OPERATOR","CASHIER","AUDITOR"]}},"required":["role"]},"UpdateProfileDto":{"type":"object","properties":{"firstName":{"type":"string","description":"Nombre"},"lastName":{"type":"string","description":"Apellido"}}},"ChangePasswordDto":{"type":"object","properties":{"currentPassword":{"type":"string","description":"Contraseña actual"},"newPassword":{"type":"string","description":"Nueva contraseña"}},"required":["currentPassword","newPassword"]},"TaxpayerDto":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"rut":{"type":"string"},"razonSocial":{"type":"string"},"giro":{"type":"string"},"direccion":{"type":"string"},"comuna":{"type":"string"},"ciudad":{"type":"string"},"acteco":{"type":"array","items":{"type":"string"}},"telefono":{"type":"string"},"email":{"type":"string"},"resolucion":{"type":"number"},"fechaResol":{"type":"string"},"unidadSii":{"type":"string","example":"SAN CARLOS"},"siiEnv":{"type":"string","enum":["CERT","PROD"],"description":"Ambiente del SII donde emite la empresa"},"isActive":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","tenantId","rut","razonSocial","giro","direccion","comuna","ciudad","acteco","siiEnv","isActive","createdAt","updatedAt"]},"CafDto":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"taxpayerId":{"type":"string"},"tipoDte":{"type":"number"},"folioDesde":{"type":"number"},"folioHasta":{"type":"number"},"folioActual":{"type":"number"},"foliosDisponibles":{"type":"number"},"fechaAutorizacion":{"type":"string"},"fechaVencimiento":{"type":"string"},"env":{"type":"string","enum":["CERT","PROD"]},"active":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","tenantId","taxpayerId","tipoDte","folioDesde","folioHasta","folioActual","foliosDisponibles","fechaAutorizacion","env","active","createdAt"]},"ReceptorDto":{"type":"object","properties":{"rut":{"type":"string","example":"76222222-2","description":"RUT sin puntos, con guion"},"razonSocial":{"type":"string","example":"Cliente SpA"},"giro":{"type":"string","example":"Comercio al por menor","description":"Se imprime y se envía hasta 40 caracteres"},"direccion":{"type":"string","example":"Av. Las Condes 9999"},"comuna":{"type":"string","example":"Las Condes"},"ciudad":{"type":"string","example":"Santiago"}},"required":["rut","razonSocial","giro","direccion","comuna"]},"DteItemDto":{"type":"object","properties":{"nombre":{"type":"string","example":"Servicio de consultoría","description":"Glosa del ítem (NmbItem)"},"descripcion":{"type":"string","description":"Descripción adicional (DscItem)"},"cantidad":{"type":"number","example":2},"unidad":{"type":"string","example":"Hora"},"precioUnitario":{"type":"number","example":50000,"description":"Precio unitario en pesos: neto (sin IVA) en facturas y notas, con IVA incluido en boletas"},"descuentoPct":{"type":"number","example":10,"description":"Descuento del ítem en porcentaje"},"exento":{"type":"boolean","description":"Ítem exento de IVA (en la factura exenta todos lo son)"}},"required":["nombre","cantidad","precioUnitario"]},"DteReferenceDto":{"type":"object","properties":{"tipoDocumento":{"type":"number","example":33,"description":"Tipo del documento referenciado (33, 801 orden de compra, etc.)"},"folio":{"type":"string","example":"125","description":"Folio del documento referenciado"},"fecha":{"type":"string","example":"2026-10-20"},"codigo":{"type":"number","example":1,"description":"1 anula el documento, 2 corrige texto, 3 corrige montos (obligatorio en notas de crédito y débito)"},"razon":{"type":"string","example":"Anula factura"}},"required":["tipoDocumento","folio","fecha"]},"IssueDteDto":{"type":"object","properties":{"rutEmisor":{"type":"string","example":"76111111-1","description":"RUT de la empresa emisora (una de las registradas en la cuenta)"},"tipoDte":{"type":"number","enum":[33,34,39,41,46,52,56,61],"example":33,"description":"33 factura, 34 factura exenta, 39 boleta, 41 boleta exenta, 46 factura de compra, 52 guía de despacho, 56 nota de débito, 61 nota de crédito"},"fechaEmision":{"type":"string","example":"2026-10-25","description":"Fecha de emisión; por omisión, hoy en Santiago"},"receptor":{"description":"Obligatorio salvo en guías de traslado interno y en boletas. En boletas es opcional y basta el RUT (más el nombre si se quiere): sin receptor van a consumidor final","allOf":[{"$ref":"#/components/schemas/ReceptorDto"}]},"items":{"type":"array","items":{"$ref":"#/components/schemas/DteItemDto"}},"referencias":{"type":"array","items":{"$ref":"#/components/schemas/DteReferenceDto"}},"descuentoGlobalPct":{"type":"number","example":5,"description":"Descuento global sobre los ítems afectos, en porcentaje"},"indTraslado":{"type":"number","example":1,"description":"Guías: 1 venta, 2 venta por efectuar, 3 consignación, 4 entrega gratuita, 5 traslado interno, 6 otros, 7 devolución, 8 y 9 exportación"},"tipoDespacho":{"type":"number","example":2,"description":"Guías: 1 por cuenta del receptor, 2 del emisor a sus instalaciones, 3 del emisor a otras instalaciones"},"retencionIva":{"type":"boolean","example":true,"description":"Factura de compra: el comprador retiene el IVA total (por omisión sí)"}},"required":["rutEmisor","tipoDte","items"]},"DteItemResultDto":{"type":"object","properties":{"numero":{"type":"number"},"nombre":{"type":"string"},"descripcion":{"type":"string"},"cantidad":{"type":"number"},"unidad":{"type":"string"},"precioUnitario":{"type":"number"},"descuento":{"type":"number","description":"Descuento del ítem en pesos"},"monto":{"type":"number","description":"Monto del ítem en pesos"},"exento":{"type":"boolean"}},"required":["numero","nombre","cantidad","precioUnitario","descuento","monto","exento"]},"DteReferenceResultDto":{"type":"object","properties":{"tipoDocumento":{"type":"number"},"folio":{"type":"string"},"fecha":{"type":"string"},"codigo":{"type":"number"},"razon":{"type":"string"}},"required":["tipoDocumento","folio","fecha"]},"DteDto":{"type":"object","properties":{"id":{"type":"string"},"rutEmisor":{"type":"string","example":"76111111-1"},"tipoDte":{"type":"number","enum":[33,34,46,52,56,61]},"folio":{"type":"number"},"fechaEmision":{"type":"string","example":"2026-10-25"},"status":{"type":"string","enum":["DRAFT","SIGNED","SENT","ACCEPTED","REJECTED","CANCELLED"]},"env":{"type":"string","enum":["CERT","PROD"],"description":"CERT: ambiente de certificación del SII; PROD: con validez tributaria"},"receptorRut":{"type":"string"},"receptorRazon":{"type":"string"},"montoNeto":{"type":"number"},"montoExento":{"type":"number"},"montoIva":{"type":"number"},"montoTotal":{"type":"number"},"trackId":{"type":"string","description":"Track ID del envío al SII"},"siiStatus":{"type":"string","example":"EPR"},"siiGlosa":{"type":"string"},"cedible":{"type":"boolean","description":"Además del ejemplar tributario se puede imprimir la copia cedible"},"createdAt":{"type":"string"},"sentAt":{"type":"string"},"items":{"type":"array","items":{"$ref":"#/components/schemas/DteItemResultDto"}},"referencias":{"type":"array","items":{"$ref":"#/components/schemas/DteReferenceResultDto"}}},"required":["id","rutEmisor","tipoDte","folio","fechaEmision","status","env","receptorRut","receptorRazon","montoNeto","montoExento","montoIva","montoTotal","cedible","createdAt","items","referencias"]},"DteListDto":{"type":"object","properties":{"dtes":{"type":"array","items":{"$ref":"#/components/schemas/DteDto"}},"total":{"type":"number"},"page":{"type":"number"},"limit":{"type":"number"}},"required":["dtes","total","page","limit"]},"BoletaVerificadaItemDto":{"type":"object","properties":{"nombre":{"type":"string"},"cantidad":{"type":"number"},"monto":{"type":"number"}},"required":["nombre","cantidad","monto"]},"BoletaVerificadaDto":{"type":"object","properties":{"emisor":{"type":"string"},"rutEmisor":{"type":"string"},"tipo":{"type":"number","enum":[39,41]},"folio":{"type":"number"},"fecha":{"type":"string"},"montoTotal":{"type":"number"},"estado":{"type":"string","enum":["SENT","ACCEPTED","REJECTED","SIGNED"]},"items":{"type":"array","items":{"$ref":"#/components/schemas/BoletaVerificadaItemDto"}}},"required":["emisor","rutEmisor","tipo","folio","fecha","montoTotal","estado","items"]},"CertificationOverviewDto":{"type":"object","properties":{"tenantId":{"type":"string"},"tenantName":{"type":"string"},"taxpayerId":{"type":"string"},"rut":{"type":"string"},"razonSocial":{"type":"string"},"status":{"type":"string","enum":["NOT_STARTED","IN_PROGRESS","BASIC_SET_COMPLETED","SIMULATION_COMPLETED","EXCHANGE_COMPLETED","SAMPLES_COMPLETED","DECLARATION_PENDING","COMPLETED","PRODUCTION_ENABLED"]},"sets":{"type":"number","description":"Sets y libros del set de pruebas cargado"},"accepted":{"type":"number","description":"Sets y libros aceptados por el SII (con o sin reparos)"},"rejected":{"type":"number","description":"Sets y libros rechazados en su último envío"},"lastSentAt":{"format":"date-time","type":"string"}},"required":["tenantId","tenantName","taxpayerId","rut","razonSocial","status","sets","accepted","rejected"]},"CertificationCaseDto":{"type":"object","properties":{"caseId":{"type":"string","example":"5148926-1"},"document":{"type":"string","example":"FACTURA ELECTRONICA"},"documentType":{"type":"number","example":33},"folio":{"type":"number"},"total":{"type":"number"},"receptorRut":{"type":"string"},"pdf":{"type":"boolean","description":"El documento ya se emitió: tiene representación impresa"},"cedible":{"type":"boolean","description":"Además del ejemplar tributario lleva copia cedible"}},"required":["caseId","document","documentType","pdf","cedible"]},"CertificationSetDto":{"type":"object","properties":{"set":{"type":"string","example":"basico"},"name":{"type":"string","example":"BASICO"},"attention":{"type":"string","example":"5148926"},"isBook":{"type":"boolean"},"state":{"type":"string","enum":["PENDING","SENT","ACCEPTED","REPAIRED","REJECTED"]},"trackId":{"type":"string"},"siiState":{"type":"string","example":"EPR"},"glosa":{"type":"string"},"accepted":{"type":"number"},"repaired":{"type":"number"},"rejected":{"type":"number"},"sentAt":{"format":"date-time","type":"string"},"error":{"type":"string"},"cases":{"type":"array","items":{"$ref":"#/components/schemas/CertificationCaseDto"}}},"required":["set","name","isBook","state","cases"]},"SiiProgressDto":{"type":"object","properties":{"paso":{"type":"string","example":"DOCUMENTOS IMPRESOS","description":"Paso de certificación según el SII"},"texto":{"type":"string","description":"Texto que muestra el SII para la etapa actual"},"porDeclarar":{"description":"Códigos del SII de los sets y libros por declarar","type":"array","items":{"type":"string"}},"puedeAvanzar":{"type":"boolean","description":"El SII ofrece avanzar al siguiente paso"},"respuesta":{"type":"string","description":"Respuesta del SII al último trámite (declarar o avanzar)"},"revisiones":{"description":"Revisiones de muestras impresas tal como las lista el SII","type":"array","items":{"type":"string"}},"fecha":{"type":"string"}},"required":["texto","porDeclarar","puedeAvanzar","fecha"]},"ExchangeUploadDto":{"type":"object","properties":{"archivo":{"type":"string"},"ok":{"type":"boolean"},"respuesta":{"type":"string","description":"Respuesta del SII al validar el archivo"}},"required":["archivo","ok","respuesta"]},"ExchangeStageDto":{"type":"object","properties":{"numero":{"type":"string","description":"Número del set de intercambio que entregó el SII"},"subidas":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeUploadDto"}},"ok":{"type":"boolean","description":"Las tres respuestas quedaron validadas"},"fecha":{"type":"string"}},"required":["numero","subidas","ok","fecha"]},"SamplesStageDto":{"type":"object","properties":{"revision":{"type":"string","description":"Número de la revisión que abrió el SII"},"documentos":{"type":"number","description":"PDF subidos"},"enviado":{"type":"boolean","description":"Se pidió la revisión del SII"},"mensaje":{"type":"string"},"filas":{"description":"Validación en línea de cada PDF según el SII","type":"array","items":{"type":"string"}},"fecha":{"type":"string"}},"required":["documentos","enviado","filas","fecha"]},"CertificationStagesDto":{"type":"object","properties":{"sii":{"$ref":"#/components/schemas/SiiProgressDto"},"intercambio":{"$ref":"#/components/schemas/ExchangeStageDto"},"muestras":{"$ref":"#/components/schemas/SamplesStageDto"}}},"CertificationStatusDto":{"type":"object","properties":{"id":{"type":"string"},"taxpayerId":{"type":"string"},"status":{"type":"string","enum":["NOT_STARTED","IN_PROGRESS","BASIC_SET_COMPLETED","SIMULATION_COMPLETED","EXCHANGE_COMPLETED","SAMPLES_COMPLETED","DECLARATION_PENDING","COMPLETED","PRODUCTION_ENABLED"]},"testSetLoaded":{"type":"boolean"},"receptores":{"type":"array","items":{"$ref":"#/components/schemas/ReceptorDto"}},"sets":{"type":"array","items":{"$ref":"#/components/schemas/CertificationSetDto"}},"missing":{"description":"Lo que falta antes de poder enviar los sets al SII","type":"array","items":{"type":"string"}},"startedAt":{"format":"date-time","type":"string"},"etapas":{"description":"Último resultado de cada trámite automatizado en el SII","allOf":[{"$ref":"#/components/schemas/CertificationStagesDto"}]}},"required":["id","taxpayerId","status","testSetLoaded","receptores","sets","missing"]},"SetReceptoresDto":{"type":"object","properties":{"receptores":{"description":"Clientes reales del contribuyente; el SII pide un RUT distinto en cada factura del set","type":"array","items":{"$ref":"#/components/schemas/ReceptorDto"}}},"required":["receptores"]},"SimulacionItemDto":{"type":"object","properties":{"name":{"type":"string","example":"TELEFONO CELULAR"},"description":{"type":"string","example":"GALAXY A73"},"quantity":{"type":"number","example":1},"unit":{"type":"string","example":"UN"},"unitPrice":{"type":"number","example":546390,"description":"Precio neto unitario"}},"required":["name"]},"OperacionDto":{"type":"object","properties":{"receptor":{"$ref":"#/components/schemas/ReceptorDto"},"items":{"type":"array","items":{"$ref":"#/components/schemas/SimulacionItemDto"}}},"required":["receptor","items"]},"GuiaSimulacionDto":{"type":"object","properties":{"receptor":{"$ref":"#/components/schemas/ReceptorDto"},"items":{"type":"array","items":{"$ref":"#/components/schemas/SimulacionItemDto"}},"indTraslado":{"type":"number","example":1,"description":"1 venta, 5 traslado interno, 6 otros traslados no venta…"},"tipoDespacho":{"type":"number","example":2,"description":"1 por cuenta del cliente, 2 del emisor a su local, 3 a otro lugar"}},"required":["receptor","items","indTraslado"]},"SimulacionDto":{"type":"object","properties":{"facturas":{"description":"Ventas reales, al menos 2: la primera recibe una nota de crédito y una de débito, la segunda se anula","type":"array","items":{"$ref":"#/components/schemas/OperacionDto"}},"exentas":{"description":"Ventas exentas reales","type":"array","items":{"$ref":"#/components/schemas/OperacionDto"}},"compras":{"description":"Compras a quien no factura (el receptor es el vendedor)","type":"array","items":{"$ref":"#/components/schemas/OperacionDto"}},"guias":{"description":"Despachos; con las 4 notas que se agregan, el total debe llegar a 20 documentos","type":"array","items":{"$ref":"#/components/schemas/GuiaSimulacionDto"}}},"required":["facturas","exentas","compras","guias"]},"CertificateInfoDto":{"type":"object","properties":{"id":{"type":"string"},"serialNumber":{"type":"string"},"subject":{"type":"string"},"issuer":{"type":"string"},"validFrom":{"format":"date-time","type":"string"},"validTo":{"format":"date-time","type":"string"},"isActive":{"type":"boolean"},"isValid":{"type":"boolean"},"daysUntilExpiration":{"type":"number"}},"required":["id","serialNumber","subject","issuer","validFrom","validTo","isActive","isValid","daysUntilExpiration"]},"PlanDto":{"type":"object","properties":{"id":{"type":"string","enum":["FREE","STARTER","PRO","ENTERPRISE"]},"nombre":{"type":"string","example":"Emprende"},"precioNeto":{"type":"number","description":"Precio mensual sin IVA, en pesos"},"precioTotal":{"type":"number","description":"Precio mensual con IVA, en pesos"},"documentos":{"type":"number","description":"Documentos incluidos al mes; cada boleta cuenta como un cuarto de documento"},"excedenteNeto":{"type":"number","description":"Precio sin IVA de cada documento sobre el cupo. Si no viene, el cupo es un tope"},"empresas":{"type":"number","description":"Empresas emisoras incluidas"},"empresaAdicionalNeto":{"type":"number","description":"Precio mensual sin IVA de cada empresa adicional"},"usuarios":{"type":"number","description":"Usuarios incluidos. Si no viene, son ilimitados"},"certificacionNeto":{"type":"number","description":"Costo único sin IVA de la certificación ante el SII (0 = incluida)"}},"required":["id","nombre","precioNeto","precioTotal","documentos","empresas","certificacionNeto"]},"UsoDto":{"type":"object","properties":{"periodo":{"type":"string","example":"2026-10"},"dtes":{"type":"number","description":"Documentos tributarios emitidos en producción este mes (sin boletas)"},"boletas":{"type":"number","description":"Boletas emitidas en producción este mes"},"documentos":{"type":"number","description":"Documentos que cuentan para el cupo, con las boletas a un cuarto"},"incluidos":{"type":"number","description":"Documentos incluidos en el plan"},"excedente":{"type":"number","description":"Documentos sobre el cupo que se cobran como excedente"}},"required":["periodo","dtes","boletas","documentos","incluidos","excedente"]},"SuscripcionDto":{"type":"object","properties":{"plan":{"type":"string","enum":["FREE","STARTER","PRO","ENTERPRISE"],"description":"Plan que cobra la suscripción"},"estado":{"type":"string","enum":["pending","authorized","paused","cancelled"],"description":"Estado en Mercado Pago: pending espera la autorización del pago"}},"required":["plan","estado"]},"BillingDto":{"type":"object","properties":{"plan":{"$ref":"#/components/schemas/PlanDto"},"uso":{"$ref":"#/components/schemas/UsoDto"},"suscripcion":{"$ref":"#/components/schemas/SuscripcionDto"},"cobroHabilitado":{"type":"boolean","description":"Si se puede contratar o cambiar de plan con pago en línea"},"planes":{"type":"array","items":{"$ref":"#/components/schemas/PlanDto"}}},"required":["plan","uso","cobroHabilitado","planes"]},"ApiKeyDto":{"type":"object","properties":{"id":{"type":"string"},"nombre":{"type":"string"},"prefijo":{"type":"string","example":"pdte_3f9a1c2b","description":"Comienzo de la clave, para reconocerla"},"role":{"type":"string","enum":["OPERATOR","CASHIER","AUDITOR"]},"lastUsedAt":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","nombre","prefijo","role","createdAt"]},"CrearApiKeyDto":{"type":"object","properties":{"nombre":{"type":"string","example":"Sistema de ventas","description":"Para reconocer la clave en la lista"},"role":{"type":"string","enum":["OPERATOR","CASHIER","AUDITOR"],"description":"OPERATOR emite y consulta, CASHIER solo emite boletas, AUDITOR solo consulta"}},"required":["nombre","role"]},"ApiKeyCreadaDto":{"type":"object","properties":{"id":{"type":"string"},"nombre":{"type":"string"},"prefijo":{"type":"string","example":"pdte_3f9a1c2b","description":"Comienzo de la clave, para reconocerla"},"role":{"type":"string","enum":["OPERATOR","CASHIER","AUDITOR"]},"lastUsedAt":{"type":"string"},"createdAt":{"type":"string"},"clave":{"type":"string","description":"La clave completa. Se muestra solo esta vez: guárdala en tu gestor de secretos"}},"required":["id","nombre","prefijo","role","createdAt","clave"]}}}}