{"openapi":"3.0.3","info":{"title":"Ruxi API de facturaci\u00f3n","version":"1.0.0","description":"Emite comprobantes electr\u00f3nicos, consulta su estado y descarga XML y RIDE. Crea tu clave API en https:\/\/ruxi.ec\/cuenta\/claves; cada clave est\u00e1 asociada a una empresa, un ambiente y permisos. Administra los datos de tu empresa, logo y firma electr\u00f3nica desde https:\/\/ruxi.ec\/cuenta."},"servers":[{"url":"https:\/\/api.ruxi.ec\/v1"}],"security":[{"bearerAuth":[]}],"paths":{"\/comprobantes\/factura":{"post":{"operationId":"emitir_factura","summary":"Emitir una factura completa","description":"Requiere documents:write. La emisi\u00f3n es as\u00edncrona: consulta el estado con el id recibido hasta obtener el resultado. En producci\u00f3n necesitas cupo de suscripci\u00f3n o saldo prepago autorizado. Solo los comprobantes AUTORIZADO consumen documentos; los reintentos con la misma Idempotency-Key no generan cargos adicionales.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateFacturaDto"}}}},"responses":{"202":{"description":"Solicitud admitida o repetida sin crear otro expediente.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/factura\/simple":{"post":{"operationId":"emitir_factura_simple","summary":"Emitir una factura calculada por la API","description":"Requiere documents:write. La emisi\u00f3n es as\u00edncrona: consulta el estado con el id recibido hasta obtener el resultado. En producci\u00f3n necesitas cupo de suscripci\u00f3n o saldo prepago autorizado. Solo los comprobantes AUTORIZADO consumen documentos; los reintentos con la misma Idempotency-Key no generan cargos adicionales.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateFacturaSimpleDto"}}}},"responses":{"202":{"description":"Solicitud admitida o repetida sin crear otro expediente.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/liquidacion":{"post":{"operationId":"emitir_liquidacion","summary":"Emitir una liquidaci\u00f3n de compra 1.1.0","description":"Requiere documents:write. La emisi\u00f3n es as\u00edncrona: consulta el estado con el id recibido hasta obtener el resultado. En producci\u00f3n necesitas cupo de suscripci\u00f3n o saldo prepago autorizado. Solo los comprobantes AUTORIZADO consumen documentos; los reintentos con la misma Idempotency-Key no generan cargos adicionales.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateLiquidacionDto"}}}},"responses":{"202":{"description":"Solicitud admitida o repetida sin crear otro expediente.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/nota-credito":{"post":{"operationId":"emitir_nota_credito","summary":"Emitir una nota de cr\u00e9dito 1.1.0","description":"Requiere documents:write. La emisi\u00f3n es as\u00edncrona: consulta el estado con el id recibido hasta obtener el resultado. En producci\u00f3n necesitas cupo de suscripci\u00f3n o saldo prepago autorizado. Solo los comprobantes AUTORIZADO consumen documentos; los reintentos con la misma Idempotency-Key no generan cargos adicionales.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateNotaCreditoDto"}}}},"responses":{"202":{"description":"Solicitud admitida o repetida sin crear otro expediente.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/nota-debito":{"post":{"operationId":"emitir_nota_debito","summary":"Emitir una nota de d\u00e9bito 1.0.0","description":"Requiere documents:write. La emisi\u00f3n es as\u00edncrona: consulta el estado con el id recibido hasta obtener el resultado. En producci\u00f3n necesitas cupo de suscripci\u00f3n o saldo prepago autorizado. Solo los comprobantes AUTORIZADO consumen documentos; los reintentos con la misma Idempotency-Key no generan cargos adicionales.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateNotaDebitoDto"}}}},"responses":{"202":{"description":"Solicitud admitida o repetida sin crear otro expediente.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/guia-remision":{"post":{"operationId":"emitir_guia_remision","summary":"Emitir una gu\u00eda de remisi\u00f3n 1.1.0","description":"Requiere documents:write. La emisi\u00f3n es as\u00edncrona: consulta el estado con el id recibido hasta obtener el resultado. En producci\u00f3n necesitas cupo de suscripci\u00f3n o saldo prepago autorizado. Solo los comprobantes AUTORIZADO consumen documentos; los reintentos con la misma Idempotency-Key no generan cargos adicionales.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateGuiaRemisionDto"}}}},"responses":{"202":{"description":"Solicitud admitida o repetida sin crear otro expediente.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/retencion":{"post":{"operationId":"emitir_retencion","summary":"Emitir una retenci\u00f3n ATS 2.0.0","description":"Requiere documents:write. La emisi\u00f3n es as\u00edncrona: consulta el estado con el id recibido hasta obtener el resultado. En producci\u00f3n necesitas cupo de suscripci\u00f3n o saldo prepago autorizado. Solo los comprobantes AUTORIZADO consumen documentos; los reintentos con la misma Idempotency-Key no generan cargos adicionales.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/CreateRetencionDto"}}}},"responses":{"202":{"description":"Solicitud admitida o repetida sin crear otro expediente.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes":{"get":{"operationId":"listarComprobantes","summary":"Listar comprobantes","description":"Requiere documents:read. Devuelve los comprobantes de la empresa y el ambiente asociados a tu clave. Puedes consultarlos aunque tu suscripci\u00f3n haya vencido.","parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1,"minimum":1}},{"name":"perPage","in":"query","schema":{"type":"integer","default":25,"minimum":1,"maximum":100}},{"name":"estado","in":"query","schema":{"type":"string"}},{"name":"tipo","in":"query","schema":{"type":"string","enum":["factura","factura\/simple","liquidacion","nota-credito","nota-debito","guia-remision","retencion"]}}],"responses":{"200":{"description":"P\u00e1gina ordenada por creaci\u00f3n descendente e identificador.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/RuxiDocument"}},"meta":{"$ref":"#\/components\/schemas\/RuxiPage"}}}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/{reference}":{"get":{"operationId":"consultarComprobante","summary":"Consultar un comprobante","description":"Requiere documents:read. Devuelve su estado y datos fiscales. Disponible aunque tu suscripci\u00f3n haya vencido.","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string"},"description":"UUID devuelto por Ruxi o clave de acceso de 49 d\u00edgitos de un documento propio."}],"responses":{"200":{"description":"Estado y detalle del comprobante.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#\/components\/schemas\/RuxiDocument"},{"type":"object","properties":{"detalle":{"$ref":"#\/components\/schemas\/RuxiDetail"}}}]}}}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/{reference}\/corregir":{"put":{"operationId":"corregirComprobante","summary":"Corregir un comprobante rechazado","description":"Requiere documents:correct y cupo o saldo disponible. Env\u00eda los datos completos del tipo de comprobante original dentro de payload. Para una factura simple, usa el formato de factura completa. Usa una nueva Idempotency-Key por correcci\u00f3n y conserva esa misma clave al reintentar. No cambies el emisor, ambiente ni numeraci\u00f3n. La correcci\u00f3n utiliza cupo del per\u00edodo vigente o saldo al precio vigente; sus reintentos no generan cargos adicionales.","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string"},"description":"UUID devuelto por Ruxi o clave de acceso de 49 d\u00edgitos de un documento propio."},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","required":["payload"],"properties":{"payload":{"anyOf":[{"$ref":"#\/components\/schemas\/CreateFacturaDto"},{"$ref":"#\/components\/schemas\/CreateLiquidacionDto"},{"$ref":"#\/components\/schemas\/CreateNotaCreditoDto"},{"$ref":"#\/components\/schemas\/CreateNotaDebitoDto"},{"$ref":"#\/components\/schemas\/CreateGuiaRemisionDto"},{"$ref":"#\/components\/schemas\/CreateRetencionDto"}]}}}}}},"responses":{"202":{"description":"Correcci\u00f3n admitida o repetida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/{reference}\/reenviar":{"post":{"operationId":"reenviarComprobante","summary":"Reenviar un comprobante pendiente o en revisi\u00f3n","description":"Requiere documents:resend. Reenv\u00eda el mismo comprobante, sin cambiar su clave de acceso ni generar un consumo adicional.","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string"},"description":"UUID devuelto por Ruxi o clave de acceso de 49 d\u00edgitos de un documento propio."},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Identidad estable de la operaci\u00f3n, independiente de la clave API. Reutiliza exactamente el mismo contenido al reintentar."}],"responses":{"202":{"description":"Reenv\u00edo aceptado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiDocumentEnvelope"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/{reference}\/xml":{"get":{"operationId":"descargar_xml","summary":"Descargar XML autorizado","description":"documents:read. Exclusivamente AUTORIZADO; disponible tras vencer la suscripci\u00f3n.","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string"},"description":"UUID devuelto por Ruxi o clave de acceso de 49 d\u00edgitos de un documento propio."}],"responses":{"200":{"description":"Archivo fiscal autorizado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/xml":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}},"\/comprobantes\/{reference}\/ride":{"get":{"operationId":"descargar_ride","summary":"Descargar RIDE autorizado","description":"documents:read. Exclusivamente AUTORIZADO; disponible tras vencer la suscripci\u00f3n.","parameters":[{"name":"reference","in":"path","required":true,"schema":{"type":"string"},"description":"UUID devuelto por Ruxi o clave de acceso de 49 d\u00edgitos de un documento propio."}],"responses":{"200":{"description":"Archivo fiscal autorizado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Solicitud inv\u00e1lida.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"401":{"description":"Clave API ausente, inv\u00e1lida o revocada.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"402":{"description":"No hay cupo o saldo disponible para esta operaci\u00f3n.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"403":{"description":"La clave no tiene el permiso requerido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"404":{"description":"Recurso no encontrado.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"409":{"description":"La solicitud entra en conflicto con el estado del comprobante o con una operaci\u00f3n anterior.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"413":{"description":"El contenido excede el tama\u00f1o permitido.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"415":{"description":"Tipo de contenido no admitido. Usa application\/json.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"422":{"description":"Los datos del comprobante no son v\u00e1lidos.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"429":{"description":"L\u00edmite de solicitudes alcanzado. Reintenta despu\u00e9s del tiempo indicado en Retry-After.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"502":{"description":"No se pudo completar la operaci\u00f3n. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}},"503":{"description":"Servicio temporalmente no disponible. Reintenta con la misma Idempotency-Key.","headers":{"X-Request-ID":{"schema":{"type":"string","format":"uuid"},"description":"Identificador de la solicitud. Incl\u00fayelo al contactar con soporte."}},"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/RuxiError"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Env\u00eda tu clave API en la cabecera Authorization: Bearer <clave>."}},"schemas":{"CreateFacturaDto":{"type":"object","properties":{"emisorRuc":{"type":"string","example":"1790012345001","description":"Opcional. Si se env\u00eda, debe coincidir con el RUC asociado a la clave API."},"estab":{"type":"string","example":"001"},"ptoEmi":{"type":"string","example":"001"},"fechaEmision":{"type":"string","example":"25\/03\/2026","description":"Si se omite o viene vac\u00edo, se usa la fecha de hoy (America\/Guayaquil)."},"infoAdicional":{"type":"array","items":{"$ref":"#\/components\/schemas\/CampoAdicionalDto"}},"comprador":{"$ref":"#\/components\/schemas\/ReceptorDto"},"infoFactura":{"$ref":"#\/components\/schemas\/FacturaInfoDto"},"detalles":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaDetalleDto"}},"reembolsos":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaReembolsoDetalleDto"}},"retenciones":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaRetencionDto"}},"infoSustitutivaGuiaRemision":{"$ref":"#\/components\/schemas\/FacturaInfoSustitutivaGuiaDto"},"otrosRubrosTerceros":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaRubroTerceroDto"}},"tipoNegociable":{"$ref":"#\/components\/schemas\/FacturaNegociableDto"},"maquinaFiscal":{"$ref":"#\/components\/schemas\/MaquinaFiscalDto"}},"required":["estab","ptoEmi","comprador","infoFactura","detalles"]},"CampoAdicionalDto":{"type":"object","properties":{"nombre":{"type":"string"},"valor":{"type":"string"}},"required":["nombre","valor"]},"ReceptorDto":{"type":"object","properties":{"tipoIdentificacion":{"type":"string","enum":["04","05","06","07","08"]},"identificacion":{"type":"string","example":"0912345678"},"razonSocial":{"type":"string","example":"Cliente Demo"},"direccion":{"type":"string"},"email":{"type":"string","example":"cliente@ejemplo.com","description":"Obligatorio salvo para consumidor final (tipoIdentificacion 07). Si se env\u00eda, debe ser un correo v\u00e1lido."}},"required":["tipoIdentificacion","identificacion","razonSocial"]},"FacturaInfoDto":{"type":"object","properties":{"dirEstablecimiento":{"type":"string"},"contribuyenteEspecial":{"type":"string"},"obligadoContabilidad":{"type":"string"},"comercioExterior":{"type":"string","example":"EXPORTADOR"},"incoTermFactura":{"type":"string"},"lugarIncoTerm":{"type":"string"},"paisOrigen":{"type":"string"},"puertoEmbarque":{"type":"string"},"puertoDestino":{"type":"string"},"paisDestino":{"type":"string"},"paisAdquisicion":{"type":"string"},"guiaRemision":{"type":"string","description":"Formato establecimiento-punto-secuencial gu\u00eda (ej. 001-001-000000001)."},"totalSinImpuestos":{"type":"number"},"totalSubsidio":{"type":"number"},"incoTermTotalSinImpuestos":{"type":"string"},"totalDescuento":{"type":"number","default":0},"codDocReembolso":{"type":"string"},"totalComprobantesReembolso":{"type":"number"},"totalBaseImponibleReembolso":{"type":"number"},"totalImpuestoReembolso":{"type":"number"},"totalConImpuestos":{"$ref":"#\/components\/schemas\/TotalConImpuestosFacturaDto"},"compensaciones":{"type":"array","items":{"$ref":"#\/components\/schemas\/CompensacionDto"}},"propina":{"type":"number","default":0},"fleteInternacional":{"type":"number"},"seguroInternacional":{"type":"number"},"gastosAduaneros":{"type":"number"},"gastosTransporteOtros":{"type":"number"},"importeTotal":{"type":"number"},"moneda":{"type":"string","default":"DOLAR"},"placa":{"type":"string","example":"ABC0123","description":"Identificador de placa en may\u00fasculas y sin espacios (m\u00e1ximo 20 caracteres). Para H492001 debe usar el formato ABC0123 cuando la obligaci\u00f3n est\u00e9 vigente."},"pagos":{"type":"array","items":{"$ref":"#\/components\/schemas\/PagoDto"}},"valorRetIva":{"type":"number"},"valorRetRenta":{"type":"number"}},"required":["totalSinImpuestos","totalConImpuestos","importeTotal","pagos"]},"TotalConImpuestosFacturaDto":{"type":"object","properties":{"totalImpuesto":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaTotalImpuestoDto"}}},"required":["totalImpuesto"]},"FacturaTotalImpuestoDto":{"type":"object","properties":{"codigo":{"type":"string","example":"2"},"codigoPorcentaje":{"type":"string","example":"2"},"baseImponible":{"type":"number","example":100},"valor":{"type":"number","example":12},"descuentoAdicional":{"type":"number","description":"Opcional cuando corresponda (p. ej. c\u00f3digo impuesto 2)."},"tarifa":{"type":"number"},"valorDevolucionIva":{"type":"number","description":"Valor autorizado previamente por los servicios DIG."}},"required":["codigo","codigoPorcentaje","baseImponible","valor"]},"CompensacionDto":{"type":"object","properties":{"codigo":{"type":"string","example":"1"},"tarifa":{"type":"number"},"valor":{"type":"number"}},"required":["codigo","tarifa","valor"]},"PagoDto":{"type":"object","properties":{"formaPago":{"type":"string","example":"01"},"total":{"type":"number","example":112},"plazo":{"type":"number","example":30},"unidadTiempo":{"type":"string","example":"dias"}},"required":["formaPago","total"]},"FacturaDetalleDto":{"type":"object","properties":{"codigoPrincipal":{"type":"string","example":"SKU-001"},"codigoAuxiliar":{"type":"string"},"descripcion":{"type":"string"},"cantidad":{"type":"number"},"precioUnitario":{"type":"number"},"precioSinSubsidio":{"type":"number","description":"Precio sin subsidio, cuando corresponda."},"descuento":{"type":"number","default":0},"precioTotalSinImpuesto":{"type":"number"},"unidadMedida":{"type":"string"},"impuestos":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaImpuestoDetalleDto"}},"detallesAdicionales":{"type":"array","items":{"$ref":"#\/components\/schemas\/DetalleAdicionalDto"}}},"required":["codigoPrincipal","descripcion","cantidad","precioUnitario","precioTotalSinImpuesto","impuestos"]},"FacturaImpuestoDetalleDto":{"type":"object","properties":{"codigo":{"type":"string","example":"2"},"codigoPorcentaje":{"type":"string","example":"2"},"tarifa":{"type":"number","example":12},"baseImponible":{"type":"number","example":100},"valor":{"type":"number","example":12}},"required":["codigo","codigoPorcentaje","tarifa","baseImponible","valor"]},"DetalleAdicionalDto":{"type":"object","properties":{"nombre":{"type":"string"},"valor":{"type":"string"}},"required":["nombre","valor"]},"FacturaReembolsoDetalleDto":{"type":"object","properties":{"tipoIdentificacionProveedorReembolso":{"type":"string"},"identificacionProveedorReembolso":{"type":"string"},"codPaisPagoProveedorReembolso":{"type":"string"},"tipoProveedorReembolso":{"type":"string"},"codDocReembolso":{"type":"string"},"estabDocReembolso":{"type":"string"},"ptoEmiDocReembolso":{"type":"string"},"secuencialDocReembolso":{"type":"string"},"fechaEmisionDocReembolso":{"type":"string"},"numeroautorizacionDocReemb":{"type":"string"},"detalleImpuestos":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaDetalleImpuestoReembolsoDto"}},"compensacionesReembolso":{"type":"array","items":{"$ref":"#\/components\/schemas\/CompensacionDto"}}},"required":["tipoIdentificacionProveedorReembolso","identificacionProveedorReembolso","tipoProveedorReembolso","codDocReembolso","estabDocReembolso","ptoEmiDocReembolso","secuencialDocReembolso","fechaEmisionDocReembolso","numeroautorizacionDocReemb","detalleImpuestos"]},"FacturaDetalleImpuestoReembolsoDto":{"type":"object","properties":{"codigo":{"type":"string"},"codigoPorcentaje":{"type":"string"},"tarifa":{"type":"number"},"baseImponibleReembolso":{"type":"number"},"impuestoReembolso":{"type":"number"}},"required":["codigo","codigoPorcentaje","tarifa","baseImponibleReembolso","impuestoReembolso"]},"FacturaRetencionDto":{"type":"object","properties":{"codigo":{"type":"string","example":"4"},"codigoPorcentaje":{"type":"string"},"tarifa":{"type":"number"},"valor":{"type":"number"}},"required":["codigo","codigoPorcentaje","tarifa","valor"]},"FacturaInfoSustitutivaGuiaDto":{"type":"object","properties":{"dirPartida":{"type":"string"},"dirDestinatario":{"type":"string"},"fechaIniTransporte":{"type":"string"},"fechaFinTransporte":{"type":"string"},"razonSocialTransportista":{"type":"string"},"tipoIdentificacionTransportista":{"type":"string"},"rucTransportista":{"type":"string"},"placa":{"type":"string"},"destinos":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaDestinoDto"}}},"required":["dirPartida","dirDestinatario","fechaIniTransporte","fechaFinTransporte","razonSocialTransportista","tipoIdentificacionTransportista","rucTransportista","placa","destinos"]},"FacturaDestinoDto":{"type":"object","properties":{"motivoTraslado":{"type":"string"},"docAduaneroUnico":{"type":"string"},"codEstabDestino":{"type":"string"},"ruta":{"type":"string"}},"required":["motivoTraslado"]},"FacturaRubroTerceroDto":{"type":"object","properties":{"concepto":{"type":"string"},"total":{"type":"number"}},"required":["concepto","total"]},"FacturaNegociableDto":{"type":"object","properties":{"correo":{"type":"string","example":"cliente@ejemplo.com"}},"required":["correo"]},"MaquinaFiscalDto":{"type":"object","properties":{"marca":{"type":"string"},"modelo":{"type":"string"},"serie":{"type":"string"}},"required":["marca","modelo","serie"]},"CreateFacturaSimpleDto":{"type":"object","properties":{"emisorRuc":{"type":"string","example":"1790012345001","description":"Opcional. Si se env\u00eda, debe coincidir con el RUC asociado a la clave API."},"estab":{"type":"string","example":"001"},"ptoEmi":{"type":"string","example":"001"},"fechaEmision":{"type":"string","example":"25\/03\/2026","description":"Si se omite o viene vac\u00edo, se usa la fecha de hoy (America\/Guayaquil)."},"infoAdicional":{"type":"array","items":{"$ref":"#\/components\/schemas\/CampoAdicionalDto"}},"comprador":{"$ref":"#\/components\/schemas\/ReceptorDto"},"detalles":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaDetalleSimpleDto"}},"formaPago":{"type":"string","example":"01","description":"Forma de pago (un solo pago por el importe total)."},"moneda":{"type":"string","default":"DOLAR"},"placa":{"type":"string","example":"ABC0123","description":"Identificador de placa en may\u00fasculas y sin espacios (m\u00e1ximo 20 caracteres). Para H492001 debe usar el formato ABC0123 cuando la obligaci\u00f3n est\u00e9 vigente."},"dirEstablecimiento":{"type":"string"},"contribuyenteEspecial":{"type":"string"},"obligadoContabilidad":{"type":"string"},"guiaRemision":{"type":"string","description":"Formato establecimiento-punto-secuencial gu\u00eda (ej. 001-001-000000001)."},"propina":{"type":"number","default":0},"valorRetIva":{"type":"number"},"valorRetRenta":{"type":"number"},"tipoNegociable":{"type":"string"}},"required":["estab","ptoEmi","comprador","detalles"]},"FacturaDetalleSimpleDto":{"type":"object","properties":{"codigoPrincipal":{"type":"string","description":"Si se omite, se asigna 001, 002, \u2026 por orden de l\u00ednea.","maxLength":25},"codigoAuxiliar":{"type":"string"},"descripcion":{"type":"string"},"cantidad":{"type":"number"},"precioUnitario":{"type":"number","description":"Precio unitario sin IVA."},"descuento":{"type":"number","default":0},"unidadMedida":{"type":"string"},"detallesAdicionales":{"type":"array","items":{"$ref":"#\/components\/schemas\/DetalleAdicionalDto"}},"impuestoCodigo":{"type":"string","default":"2","description":"C\u00f3digo impuesto SRI (IVA = 2)."},"impuestoCodigoPorcentaje":{"type":"string","default":"4","description":"C\u00f3digo porcentaje IVA SRI (15% = 4)."},"impuestoTarifa":{"type":"number","default":15,"description":"Tarifa IVA (%)."}},"required":["descripcion","cantidad","precioUnitario"]},"CreateLiquidacionDto":{"type":"object","properties":{"emisorRuc":{"type":"string","example":"1790012345001","description":"Opcional. Si se env\u00eda, debe coincidir con el RUC asociado a la clave API."},"estab":{"type":"string","example":"001"},"ptoEmi":{"type":"string","example":"001"},"fechaEmision":{"type":"string","example":"25\/03\/2026","description":"Si se omite o viene vac\u00edo, se usa la fecha de hoy (America\/Guayaquil)."},"infoAdicional":{"type":"array","items":{"$ref":"#\/components\/schemas\/CampoAdicionalDto"}},"proveedor":{"$ref":"#\/components\/schemas\/ReceptorDto"},"infoLiquidacionCompra":{"$ref":"#\/components\/schemas\/LiquidacionInfoDto"},"detalles":{"type":"array","items":{"$ref":"#\/components\/schemas\/DetalleDto"}},"reembolsos":{"type":"array","items":{"$ref":"#\/components\/schemas\/LiquidacionReembolsoDetalleDto"}},"tipoNegociable":{"type":"string","example":"proveedor@ejemplo.com"},"maquinaFiscal":{"$ref":"#\/components\/schemas\/MaquinaFiscalDto"}},"required":["estab","ptoEmi","proveedor","infoLiquidacionCompra","detalles"]},"LiquidacionInfoDto":{"type":"object","properties":{"dirEstablecimiento":{"type":"string"},"totalSinImpuestos":{"type":"number"},"totalDescuento":{"type":"number","default":0},"codDocReembolso":{"type":"string"},"totalComprobantesReembolso":{"type":"number"},"totalBaseImponibleReembolso":{"type":"number"},"totalImpuestoReembolso":{"type":"number"},"totalConImpuestos":{"$ref":"#\/components\/schemas\/LiquidacionTotalConImpuestosDto"},"importeTotal":{"type":"number"},"moneda":{"type":"string","default":"DOLAR"},"pagos":{"type":"array","items":{"$ref":"#\/components\/schemas\/PagoDto"}}},"required":["totalSinImpuestos","totalConImpuestos","importeTotal"]},"LiquidacionTotalConImpuestosDto":{"type":"object","properties":{"totalImpuesto":{"type":"array","items":{"$ref":"#\/components\/schemas\/LiquidacionTotalImpuestoDto"}}},"required":["totalImpuesto"]},"LiquidacionTotalImpuestoDto":{"type":"object","properties":{"codigo":{"type":"string"},"codigoPorcentaje":{"type":"string"},"descuentoAdicional":{"type":"number"},"baseImponible":{"type":"number"},"tarifa":{"type":"number"},"valor":{"type":"number"}},"required":["codigo","codigoPorcentaje","baseImponible","valor"]},"DetalleDto":{"type":"object","properties":{"codigoPrincipal":{"type":"string"},"codigoAuxiliar":{"type":"string"},"descripcion":{"type":"string"},"cantidad":{"type":"number"},"precioUnitario":{"type":"number"},"precioSinSubsidio":{"type":"number","description":"Precio sin subsidio, cuando corresponda."},"descuento":{"type":"number","default":0},"precioTotalSinImpuesto":{"type":"number"},"unidadMedida":{"type":"string"},"impuestos":{"type":"array","items":{"$ref":"#\/components\/schemas\/ImpuestoDto"}},"detallesAdicionales":{"type":"array","items":{"$ref":"#\/components\/schemas\/DetalleAdicionalDto"}}},"required":["descripcion","cantidad","precioUnitario","precioTotalSinImpuesto","impuestos"]},"ImpuestoDto":{"type":"object","properties":{"codigo":{"type":"string","example":"2"},"codigoPorcentaje":{"type":"string","example":"2"},"tarifa":{"type":"number","example":12},"baseImponible":{"type":"number","example":100},"valor":{"type":"number","example":12}},"required":["codigo","codigoPorcentaje","tarifa","baseImponible","valor"]},"LiquidacionReembolsoDetalleDto":{"type":"object","properties":{"tipoIdentificacionProveedorReembolso":{"type":"string"},"identificacionProveedorReembolso":{"type":"string"},"codPaisPagoProveedorReembolso":{"type":"string"},"tipoProveedorReembolso":{"type":"string"},"codDocReembolso":{"type":"string"},"estabDocReembolso":{"type":"string"},"ptoEmiDocReembolso":{"type":"string"},"secuencialDocReembolso":{"type":"string"},"fechaEmisionDocReembolso":{"type":"string"},"numeroautorizacionDocReemb":{"type":"string"},"detalleImpuestos":{"type":"array","items":{"$ref":"#\/components\/schemas\/FacturaDetalleImpuestoReembolsoDto"}}},"required":["tipoIdentificacionProveedorReembolso","identificacionProveedorReembolso","tipoProveedorReembolso","codDocReembolso","estabDocReembolso","ptoEmiDocReembolso","secuencialDocReembolso","fechaEmisionDocReembolso","numeroautorizacionDocReemb","detalleImpuestos"]},"CreateNotaCreditoDto":{"type":"object","properties":{"emisorRuc":{"type":"string","example":"1790012345001","description":"Opcional. Si se env\u00eda, debe coincidir con el RUC asociado a la clave API."},"estab":{"type":"string","example":"001"},"ptoEmi":{"type":"string","example":"001"},"fechaEmision":{"type":"string","example":"25\/03\/2026","description":"Si se omite o viene vac\u00edo, se usa la fecha de hoy (America\/Guayaquil)."},"infoAdicional":{"type":"array","items":{"$ref":"#\/components\/schemas\/CampoAdicionalDto"}},"comprador":{"$ref":"#\/components\/schemas\/ReceptorDto"},"infoNotaCredito":{"$ref":"#\/components\/schemas\/NotaCreditoInfoDto"},"detalles":{"type":"array","items":{"$ref":"#\/components\/schemas\/NotaCreditoDetalleDto"}},"maquinaFiscal":{"$ref":"#\/components\/schemas\/MaquinaFiscalDto"}},"required":["estab","ptoEmi","comprador","infoNotaCredito","detalles"]},"NotaCreditoInfoDto":{"type":"object","properties":{"dirEstablecimiento":{"type":"string"},"codDocModificado":{"type":"string","example":"01"},"numDocModificado":{"type":"string","example":"001-001-000000123"},"fechaEmisionDocSustento":{"type":"string","example":"25\/03\/2026"},"totalSinImpuestos":{"type":"number"},"compensaciones":{"type":"array","items":{"$ref":"#\/components\/schemas\/CompensacionDto"}},"totalConImpuestos":{"$ref":"#\/components\/schemas\/NotaCreditoTotalConImpuestosDto"},"valorModificacion":{"type":"number"},"moneda":{"type":"string","default":"DOLAR"},"motivo":{"type":"string"}},"required":["codDocModificado","numDocModificado","fechaEmisionDocSustento","totalSinImpuestos","totalConImpuestos","valorModificacion","motivo"]},"NotaCreditoTotalConImpuestosDto":{"type":"object","properties":{"totalImpuesto":{"type":"array","items":{"$ref":"#\/components\/schemas\/NotaCreditoTotalImpuestoDto"}}},"required":["totalImpuesto"]},"NotaCreditoTotalImpuestoDto":{"type":"object","properties":{"codigo":{"type":"string","example":"2"},"codigoPorcentaje":{"type":"string","example":"2"},"baseImponible":{"type":"number","example":100},"valor":{"type":"number","example":12},"valorDevolucionIva":{"type":"number","description":"Aplica solo cuando corresponde devoluci\u00f3n autom\u00e1tica del IVA."}},"required":["codigo","codigoPorcentaje","baseImponible","valor"]},"NotaCreditoDetalleDto":{"type":"object","properties":{"codigoInterno":{"type":"string","example":"SKU-001"},"codigoAdicional":{"type":"string"},"descripcion":{"type":"string"},"cantidad":{"type":"number"},"precioUnitario":{"type":"number"},"descuento":{"type":"number","default":0},"precioTotalSinImpuesto":{"type":"number"},"impuestos":{"type":"array","items":{"$ref":"#\/components\/schemas\/NotaCreditoImpuestoDetalleDto"}},"detallesAdicionales":{"type":"array","items":{"$ref":"#\/components\/schemas\/DetalleAdicionalDto"}}},"required":["descripcion","cantidad","precioUnitario","precioTotalSinImpuesto","impuestos"]},"NotaCreditoImpuestoDetalleDto":{"type":"object","properties":{"codigo":{"type":"string","example":"2"},"codigoPorcentaje":{"type":"string","example":"2"},"tarifa":{"type":"number","example":12},"baseImponible":{"type":"number","example":100},"valor":{"type":"number","example":12}},"required":["codigo","codigoPorcentaje","tarifa","baseImponible","valor"]},"CreateNotaDebitoDto":{"type":"object","properties":{"emisorRuc":{"type":"string","example":"1790012345001","description":"Opcional. Si se env\u00eda, debe coincidir con el RUC asociado a la clave API."},"estab":{"type":"string","example":"001"},"ptoEmi":{"type":"string","example":"001"},"fechaEmision":{"type":"string","example":"25\/03\/2026","description":"Si se omite o viene vac\u00edo, se usa la fecha de hoy (America\/Guayaquil)."},"infoAdicional":{"type":"array","items":{"$ref":"#\/components\/schemas\/CampoAdicionalDto"}},"comprador":{"$ref":"#\/components\/schemas\/ReceptorDto"},"infoNotaDebito":{"$ref":"#\/components\/schemas\/NotaDebitoInfoDto"},"motivos":{"type":"array","items":{"$ref":"#\/components\/schemas\/MotivoNotaDebitoDto"}},"maquinaFiscal":{"$ref":"#\/components\/schemas\/MaquinaFiscalDto"}},"required":["estab","ptoEmi","comprador","infoNotaDebito","motivos"]},"NotaDebitoInfoDto":{"type":"object","properties":{"dirEstablecimiento":{"type":"string"},"codDocModificado":{"type":"string","example":"01"},"numDocModificado":{"type":"string","example":"001-001-000000123"},"fechaEmisionDocSustento":{"type":"string","example":"25\/03\/2026"},"totalSinImpuestos":{"type":"number"},"impuestos":{"type":"array","items":{"$ref":"#\/components\/schemas\/NotaDebitoImpuestoDto"}},"compensaciones":{"type":"array","items":{"$ref":"#\/components\/schemas\/CompensacionDto"}},"valorTotal":{"type":"number"},"pagos":{"type":"array","items":{"$ref":"#\/components\/schemas\/PagoDto"}}},"required":["codDocModificado","numDocModificado","fechaEmisionDocSustento","totalSinImpuestos","impuestos","valorTotal","pagos"]},"NotaDebitoImpuestoDto":{"type":"object","properties":{"codigo":{"type":"string","example":"2"},"codigoPorcentaje":{"type":"string","example":"2"},"tarifa":{"type":"number","example":12},"baseImponible":{"type":"number","example":100},"valor":{"type":"number","example":12},"valorDevolucionIva":{"type":"number","description":"Aplica solo cuando corresponde devoluci\u00f3n autom\u00e1tica del IVA."}},"required":["codigo","codigoPorcentaje","tarifa","baseImponible","valor"]},"MotivoNotaDebitoDto":{"type":"object","properties":{"razon":{"type":"string"},"valor":{"type":"number"}},"required":["razon","valor"]},"CreateGuiaRemisionDto":{"type":"object","properties":{"emisorRuc":{"type":"string","example":"1790012345001","description":"Opcional. Si se env\u00eda, debe coincidir con el RUC asociado a la clave API."},"estab":{"type":"string","example":"001"},"ptoEmi":{"type":"string","example":"001"},"fechaEmision":{"type":"string","example":"25\/03\/2026","description":"Si se omite o viene vac\u00edo, se usa la fecha de hoy (America\/Guayaquil)."},"infoAdicional":{"type":"array","items":{"$ref":"#\/components\/schemas\/CampoAdicionalDto"}},"infoGuiaRemision":{"$ref":"#\/components\/schemas\/GuiaRemisionInfoDto"},"destinatarios":{"type":"array","items":{"$ref":"#\/components\/schemas\/DestinatarioDto"}},"maquinaFiscal":{"$ref":"#\/components\/schemas\/MaquinaFiscalDto"}},"required":["estab","ptoEmi","infoGuiaRemision","destinatarios"]},"GuiaRemisionInfoDto":{"type":"object","properties":{"dirEstablecimiento":{"type":"string"},"dirPartida":{"type":"string"},"razonSocialTransportista":{"type":"string"},"tipoIdentificacionTransportista":{"type":"string"},"rucTransportista":{"type":"string"},"fechaIniTransporte":{"type":"string","example":"25\/03\/2026"},"fechaFinTransporte":{"type":"string","example":"26\/03\/2026"},"placa":{"type":"string"}},"required":["dirPartida","razonSocialTransportista","tipoIdentificacionTransportista","rucTransportista","fechaIniTransporte","fechaFinTransporte","placa"]},"DestinatarioDto":{"type":"object","properties":{"identificacionDestinatario":{"type":"string"},"razonSocialDestinatario":{"type":"string"},"dirDestinatario":{"type":"string"},"motivoTraslado":{"type":"string"},"docAduaneroUnico":{"type":"string"},"codEstabDestino":{"type":"string"},"ruta":{"type":"string"},"codDocSustento":{"type":"string","example":"01"},"numDocSustento":{"type":"string","example":"001-001-000000123"},"numAutDocSustento":{"type":"string","example":"1234567890"},"fechaEmisionDocSustento":{"type":"string","example":"25\/03\/2026"},"detalles":{"type":"array","items":{"$ref":"#\/components\/schemas\/DestinatarioDetalleDto"}}},"required":["identificacionDestinatario","razonSocialDestinatario","dirDestinatario","motivoTraslado","detalles"]},"DestinatarioDetalleDto":{"type":"object","properties":{"codigoInterno":{"type":"string"},"descripcion":{"type":"string"},"codigoAdicional":{"type":"string"},"cantidad":{"type":"string"},"detallesAdicionales":{"type":"array","items":{"$ref":"#\/components\/schemas\/DetalleAdicionalDto"}}},"required":["descripcion","cantidad"]},"CreateRetencionDto":{"type":"object","properties":{"emisorRuc":{"type":"string","example":"1790012345001","description":"Opcional. Si se env\u00eda, debe coincidir con el RUC asociado a la clave API."},"estab":{"type":"string","example":"001"},"ptoEmi":{"type":"string","example":"001"},"fechaEmision":{"type":"string","example":"25\/03\/2026","description":"Si se omite o viene vac\u00edo, se usa la fecha de hoy (America\/Guayaquil)."},"infoAdicional":{"type":"array","items":{"$ref":"#\/components\/schemas\/CampoAdicionalDto"}},"sujetoRetenido":{"$ref":"#\/components\/schemas\/ReceptorDto"},"infoCompRetencion":{"$ref":"#\/components\/schemas\/RetencionInfoDto"},"docsSustento":{"type":"array","items":{"$ref":"#\/components\/schemas\/RetencionDocSustentoDto"}},"maquinaFiscal":{"$ref":"#\/components\/schemas\/MaquinaFiscalDto"}},"required":["estab","ptoEmi","sujetoRetenido","infoCompRetencion","docsSustento"]},"RetencionInfoDto":{"type":"object","properties":{"dirEstablecimiento":{"type":"string"},"tipoSujetoRetenido":{"type":"string","example":"01"},"parteRel":{"type":"string","enum":["SI","NO"],"example":"NO"},"periodoFiscal":{"type":"string","example":"03\/2026"}},"required":["parteRel","periodoFiscal"]},"RetencionDocSustentoDto":{"type":"object","properties":{"codSustento":{"type":"string","example":"01"},"codDocSustento":{"type":"string","example":"01"},"numDocSustento":{"type":"string","example":"001001000000123"},"fechaEmisionDocSustento":{"type":"string","example":"25\/03\/2026"},"fechaRegistroContable":{"type":"string"},"numAutDocSustento":{"type":"string"},"pagoLocExt":{"type":"string","example":"01","description":"01: pago local; 02: pago al exterior."},"tipoRegi":{"type":"string"},"paisEfecPago":{"type":"string"},"aplicConvDobTrib":{"type":"string","enum":["SI","NO"]},"pagExtSujRetNorLeg":{"type":"string","enum":["SI","NO"]},"pagoRegFis":{"type":"string","enum":["SI","NO"]},"totalComprobantesReembolso":{"type":"number"},"totalBaseImponibleReembolso":{"type":"number"},"totalImpuestoReembolso":{"type":"number"},"totalSinImpuestos":{"type":"number","example":100},"importeTotal":{"type":"number","example":115},"impuestosDocSustento":{"type":"array","items":{"$ref":"#\/components\/schemas\/RetencionImpuestoDocSustentoDto"}},"retenciones":{"type":"array","items":{"$ref":"#\/components\/schemas\/RetencionDetalleDto"}},"reembolsos":{"type":"array","items":{"$ref":"#\/components\/schemas\/RetencionReembolsoDetalleDto"}},"pagos":{"type":"array","items":{"$ref":"#\/components\/schemas\/RetencionPagoDto"}}},"required":["codSustento","codDocSustento","numDocSustento","fechaEmisionDocSustento","pagoLocExt","totalSinImpuestos","importeTotal","impuestosDocSustento","retenciones","pagos"]},"RetencionImpuestoDocSustentoDto":{"type":"object","properties":{"codImpuestoDocSustento":{"type":"string","example":"2","description":"2: IVA, 3: ICE, 5: IRBPNR."},"codigoPorcentaje":{"type":"string","example":"4"},"baseImponible":{"type":"number","example":100},"tarifa":{"type":"number","example":15},"valorImpuesto":{"type":"number","example":15}},"required":["codImpuestoDocSustento","codigoPorcentaje","baseImponible","tarifa","valorImpuesto"]},"RetencionDetalleDto":{"type":"object","properties":{"codigo":{"type":"string","example":"1","description":"1: renta, 2: IVA, 6: ISD."},"codigoRetencion":{"type":"string","example":"303"},"baseImponible":{"type":"number","example":100},"porcentajeRetener":{"type":"number","example":10},"valorRetenido":{"type":"number","example":10},"dividendos":{"$ref":"#\/components\/schemas\/RetencionDividendosDto"},"compraCajBanano":{"$ref":"#\/components\/schemas\/RetencionCompraCajaBananoDto"}},"required":["codigo","codigoRetencion","baseImponible","porcentajeRetener","valorRetenido"]},"RetencionDividendosDto":{"type":"object","properties":{"fechaPagoDiv":{"type":"string"},"imRentaSoc":{"type":"number"},"ejerFisUtDiv":{"type":"number"}},"required":["fechaPagoDiv","imRentaSoc","ejerFisUtDiv"]},"RetencionCompraCajaBananoDto":{"type":"object","properties":{"numCajBan":{"type":"number"},"precCajBan":{"type":"number"}},"required":["numCajBan","precCajBan"]},"RetencionReembolsoDetalleDto":{"type":"object","properties":{"tipoIdentificacionProveedorReembolso":{"type":"string"},"identificacionProveedorReembolso":{"type":"string"},"codPaisPagoProveedorReembolso":{"type":"string"},"tipoProveedorReembolso":{"type":"string"},"codDocReembolso":{"type":"string"},"estabDocReembolso":{"type":"string"},"ptoEmiDocReembolso":{"type":"string"},"secuencialDocReembolso":{"type":"string"},"fechaEmisionDocReembolso":{"type":"string"},"numeroAutorizacionDocReemb":{"type":"string"},"detalleImpuestos":{"type":"array","items":{"$ref":"#\/components\/schemas\/RetencionDetalleImpuestoReembolsoDto"}}},"required":["tipoIdentificacionProveedorReembolso","identificacionProveedorReembolso","tipoProveedorReembolso","codDocReembolso","estabDocReembolso","ptoEmiDocReembolso","secuencialDocReembolso","fechaEmisionDocReembolso","numeroAutorizacionDocReemb","detalleImpuestos"]},"RetencionDetalleImpuestoReembolsoDto":{"type":"object","properties":{"codigo":{"type":"string"},"codigoPorcentaje":{"type":"string"},"tarifa":{"type":"number"},"baseImponibleReembolso":{"type":"number"},"impuestoReembolso":{"type":"number"}},"required":["codigo","codigoPorcentaje","tarifa","baseImponibleReembolso","impuestoReembolso"]},"RetencionPagoDto":{"type":"object","properties":{"formaPago":{"type":"string","example":"01"},"total":{"type":"number","example":115}},"required":["formaPago","total"]},"RuxiDocument":{"type":"object","required":["id","tipo","environment","estado","cuota"],"properties":{"id":{"type":"string","format":"uuid"},"tipo":{"type":"string","enum":["factura","factura\/simple","liquidacion","nota-credito","nota-debito","guia-remision","retencion"]},"claveAcceso":{"type":"string","nullable":true,"pattern":"^\\d{49}$"},"environment":{"type":"string","enum":["PRUEBAS","PRODUCCION"]},"estado":{"type":"string","enum":["PENDIENTE_ENVIO","PENDIENTE_CORRECCION","ERROR_VALIDACION","PENDIENTE_RECEPCION","RECEPCION_INCIERTA","EN_PROCESAMIENTO","AUTORIZADO","DEVUELTA_CORREGIBLE","NO_AUTORIZADO","REVISION_MANUAL"]},"cuota":{"type":"string","enum":["reserved","consumed","released"]},"error":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"}}},"RuxiDocumentEnvelope":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#\/components\/schemas\/RuxiDocument"}}},"RuxiError":{"type":"object","required":["error","requestId"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"requestId":{"type":"string","format":"uuid"}}},"RuxiPage":{"type":"object","required":["page","perPage","total","lastPage"],"properties":{"page":{"type":"integer","minimum":1},"perPage":{"type":"integer","minimum":1},"total":{"type":"integer","minimum":0},"lastPage":{"type":"integer","minimum":1}}},"RuxiDetail":{"type":"object","properties":{"tipo":{"type":"string","nullable":true},"codigoDocumento":{"type":"string","nullable":true},"serie":{"type":"string","nullable":true},"secuencial":{"type":"string","nullable":true},"claveAcceso":{"type":"string","nullable":true},"fechaEmision":{"type":"string","nullable":true},"environment":{"type":"string","nullable":true},"estado":{"type":"string","nullable":true},"fechaAutorizacion":{"type":"string","nullable":true},"emisor":{"type":"object","properties":{"ruc":{"type":"string","nullable":true},"razonSocial":{"type":"string","nullable":true},"nombreComercial":{"type":"string","nullable":true}}},"receptor":{"type":"object","properties":{"tipoIdentificacion":{"type":"string","nullable":true},"identificacion":{"type":"string","nullable":true},"razonSocial":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}},"establecimiento":{"type":"object","properties":{"codigo":{"type":"string","nullable":true},"puntoEmision":{"type":"string","nullable":true},"direccion":{"type":"string","nullable":true}}},"mensajes":{"type":"array","maxItems":50,"items":{"type":"object","properties":{"identificador":{"type":"string","maxLength":1000},"tipo":{"type":"string","maxLength":1000},"mensaje":{"type":"string","maxLength":1000},"informacionAdicional":{"type":"string","maxLength":1000}}}}}}}}}