Referencia de API
Zentto Imprenta Digital expone su contrato bajo la base /v1/imprenta (dominio del
vertical) y una API pública para terceros bajo /api/* (integradores). La referencia
completa, con todos los esquemas, está disponible en PDF:
Servidores: https://imprenta.zentto.net (producción), https://imprentadev.zentto.net
(desarrollo), http://localhost:4900 (local).
Autenticación
Sección titulada «Autenticación»| Ámbito | Mecanismo |
|---|---|
Dominio /v1/imprenta/* | JWT de zentto-auth (cookie HttpOnly en navegador o Authorization: Bearer server-to-server). El companyId se resuelve del token; override opcional con X-Company-Id. |
Gateway /v1/fiscal/* | Cabecera X-API-Key (canal interno entre el ERP y el microservicio). |
API de integradores /api/* | POST /api/Autenticacion con tokenUsuario + secret → JWT corto; se envía como Authorization: Bearer. El companyId sale del token (anti-IDOR). |
Consulta SENIAT /seniat/* | Cabecera X-Seniat-Key (solo lectura). |
Autenticación de integrador — POST /api/Autenticacion
Sección titulada «Autenticación de integrador — POST /api/Autenticacion»{ "tokenUsuario": "ZEN-INT-0001", "secret": "<secret entregado una sola vez>" }Respuesta:
{ "ok": true, "token": "<jwt corto>", "tokenType": "Bearer", "expiresIn": 3600, "integrador": { "id": 12, "nombre": "Mi POS", "ambiente": "production" }}Endpoints del dominio /v1/imprenta
Sección titulada «Endpoints del dominio /v1/imprenta»| Método | Ruta | Propósito |
|---|---|---|
GET | /dashboard | KPIs de la empresa. |
GET/POST/PUT/DELETE | /sucursales[/{id}] | Sucursales. |
GET/POST/PUT/DELETE | /puntos-facturacion[/{id}] | Puntos de facturación (correlativos por tipo). |
GET | /numeraciones, /numeraciones/export | Numeraciones (con exportación CSV). |
GET/POST | /asignaciones | Asignación de rangos de numeración. |
GET/POST | /documentos | Listar / emitir documentos. |
GET | /documentos/{id} | Detalle de documento. |
POST | /documentos/{id}/anular | Anular documento. |
GET | /documentos/{id}/estado | Estado del documento. |
GET | /documentos/{id}/pdf | PDF en base64. |
GET/POST | /reservaciones | Reservaciones de numeración. |
GET/POST/PUT | /usuarios[/{id}] | Usuarios del vertical. |
GET | /auditoria | Eventos de auditoría. |
GET | /reportes/{documentos,ventas,asignaciones,retencion-mensual,cuentas-pagar,cuentas-cobrar} | Reportes. |
GET/POST | /configuracion/credenciales | Configuración de la imprenta. |
API de integradores /api/*
Sección titulada «API de integradores /api/*»| Método | Ruta | Propósito |
|---|---|---|
POST | /api/Autenticacion | Autentica con tokenUsuario+secret → JWT corto. |
POST | /api/emit | Emite un documento contra la serie propia del integrador. |
GET | /api/documentos/{id}/status | Estado de un documento. |
GET | /api/documentos/{id}/pdf | PDF (base64). |
POST | /api/documentos/{id}/annul | Anula un documento. |
GET | /api/numeraciones | Rangos de numeración (series propias) del integrador. |
Emisión — POST /v1/imprenta/documentos o POST /api/emit
Sección titulada «Emisión — POST /v1/imprenta/documentos o POST /api/emit»Cuerpo EmitDocumentRequest:
{ "environment": "production", "document": { "...documento canónico (CanonicalDocument)..." }}Respuesta (éxito):
{ "ok": true, "documentoId": 4821, "result": { "ok": true, "controlNumber": "00-00012345", "documentNumber": "50371", "serie": "A", "transactionId": "TX-9f8a...", "code": "200", "message": "Emitido por imprenta propia" }}Documento canónico (CanonicalDocument)
Sección titulada «Documento canónico (CanonicalDocument)»| Campo | Tipo | Descripción |
|---|---|---|
documentType | 01..06 | Tipo de documento (07 ARCV es local). |
documentNumber | string | Número de documento (correlativo del emisor). |
serie | string | Serie. |
currency | string | Moneda (por defecto BSD). |
issueDate | string | Fecha de emisión dd/MM/yyyy. |
buyer | CanonicalParty | Adquiriente (idType, idNumber, name, address, country). |
withheldSubject | CanonicalParty | Sujeto retenido (retenciones 05/06). |
items | array | Líneas del documento. |
totals | object | Totales, subtotales por alícuota, IGTF y formas de pago. |
reference | object | Documento afectado (notas de crédito/débito). |
Tipos de documento
Sección titulada «Tipos de documento»| Código | Documento |
|---|---|
01 | Factura |
02 | Nota de crédito |
03 | Nota de débito |
04 | Guía de despacho |
05 | Comprobante de retención de IVA |
06 | Comprobante de retención de ISLR |
07 | ARCV (comprobante de retención acumulada — solo local) |
Alícuotas, impuestos e IGTF
Sección titulada «Alícuotas, impuestos e IGTF»| Código | Alícuota | Tasa típica |
|---|---|---|
G | General | 16 % |
R | Reducida | 8 % |
A | Adicional / lujo | variable |
E | Exento | 0 % |
IGTF | Impuesto a las Grandes Transacciones Financieras | 3 % sobre pagos en divisa |
El IGTF (3 %) se aplica sobre los pagos en divisa, declarado como subtotal de impuesto
(ImpuestosSubtotal con CodigoTotalImp: "IGTF") y sumado en el total a pagar. Ver
Ejemplos de documentos para casos completos.
Numeración (series propias)
Sección titulada «Numeración (series propias)»| Método | Ruta | Propósito |
|---|---|---|
POST | /v1/imprenta/asignaciones | Asigna un rango { TipoDocumento, Serie, Desde, Hasta }. |
GET | /v1/imprenta/numeraciones | Lista las series y su correlativo actual. |
El número de control se forma como Prefijo + LPAD(correlativo, 8, "0"), asignado de
forma atómica. Ver Numeración y control.
Códigos de respuesta
Sección titulada «Códigos de respuesta»| HTTP | Significado |
|---|---|
200 / 201 | Operación aceptada. |
400 | Error de validación del esquema (Zod). Devuelve issues. |
401 | No autenticado (JWT / token / X-API-Key ausente o inválido). |
403 | Sin el rol requerido (backoffice). |
404 | No encontrado (o fuera de cartera, anti-IDOR). |
412 | La empresa no tiene credenciales/series configuradas. |
422 | Rechazo de negocio (ver validations, p. ej. serie_agotada_o_inexistente). |
Modelo del documento electrónico — campo por campo
Sección titulada «Modelo del documento electrónico — campo por campo»Esta sección documenta cada una de las 30 estructuras del DocumentoElectronico (245 campos). Las columnas son: Campo · Tipo · Long/Patrón · Obligatorio · Descripción.
DocumentoElectronico (9 campos)
Sección titulada «DocumentoElectronico (9 campos)»Nodo principal. Abarca todos los campos para construir el documento fiscal; todas las solicitudes deben contener esta identificación.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
encabezado | object (Encabezado) | - | Sí | Nodo padre: identificacion del documento, partes y totales. |
detallesItems | array<Detalles> | array de Detalles | No | Lista de items del documento (no aplica para comprobante de retencion). |
detallesRetencion | array<DetallesRetencion> | array de DetallesRetencion | No | Lista de documentos retenidos (obligatorio para comprobante de retencion). |
viajes | object (Viajes) | - | No | Datos de agencias de viaje, de aplicar. |
infoAdicional | array<InfoAdicional> | array de InfoAdicional | No | Informaciones adicionales del documento. |
guiaDespacho | object (GuiaDespacho) | - | No | Datos de guia de despacho u orden de entrega. |
transporte | object (Transporte) | - | No | Informacion de transporte. |
esLote | boolean | - | No | true si forma parte de una emision por lotes. |
esMinimo | boolean | - | No | true para habilitar el esquema de validaciones minimas. |
Encabezado (10 campos)
Sección titulada «Encabezado (10 campos)»Nodo padre que abarca la información desde la identificación del documento hasta los totales.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
identificacionDocumento | object (IdentificacionDocumento) | - | Sí | Datos de identificacion del documento. |
facturaGuia | array<FacturaGuiaItem> | array de FacturaGuiaItem | No | Referencias factura<->guia. |
vendedor | object (Vendedor) | - | No | Datos del vendedor/cajero. |
comprador | object (Comprador) | - | No | Datos del comprador/adquiriente. |
sujetoRetenido | object (SujetoRetenido) | - | No | Datos del sujeto retenido (solo comprobante de retencion). |
tercero | object (Tercero) | - | No | Datos del tercero (facturacion a cuenta de terceros). |
totales | object (Totales) | - | No | Totales del documento. |
totalesRetencion | object (TotalesRetencion) | - | No | Totales de retencion (comprobante de retencion). |
totalesOtraMoneda | object (TotalesOtraMoneda) | - | No | Totales expresados en otra moneda. |
orden | object (Orden) | - | No | Datos de agrupacion/orden. |
IdentificacionDocumento (23 campos)
Sección titulada «IdentificacionDocumento (23 campos)»Sub-nodo con los datos de la factura: desde el tipo de documento hasta la moneda a utilizar.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipoDocumento | string | patron ^(01|02|03|04|05|06)$ | Sí | Tipo de documento fiscal. Ver Catalogo 1 (01 factura, 02 nota de credito, 03 nota de debito, 04 guia de despacho/nota de entrega, 05 retencion IVA, 06 retencion ISLR). |
numeroDocumento | string | patron ^([0-9]{1,19})$ | No | Numero interno del documento. Valor maximo 9223372036854775807. |
tipoProveedor | string | patron ^(SR|NR|ND)$ | No | Codigo de tipo de proveedor (puede ir vacio). Ver Catalogo 2 (SR no residenciado, NR no domiciliado, ND registro). |
tipoTransaccion | string | patron ^(01|02|03|04|98|99)$ | No | Codigo de la operacion ejecutada. Ver Catalogo 3 (01 complemento, 02 anulacion, 03 ajuste, 04 ND por IGTF, 98 solo factura a terceros, 99 zonas economicas especiales). |
numeroPlanillaImportacion | string | max 20 | No | En caso de importacion, numero de planilla. |
numeroExpedienteImportacion | string | max 20 | No | En caso de importacion, numero de expediente. |
serieFacturaAfectada | string | max 20 | No | Serie de la factura afectada por Nota de Credito/Debito, segun aplique. |
numeroFacturaAfectada | string | patron ^([0-9]{1,19})$ | No | Numero de la factura afectada por Nota de Credito o Debito. |
fechaFacturaAfectada | string | patron DD/MM/AAAA | No | Fecha de emision de la factura afectada (DD/MM/AAAA). |
montoFacturaAfectada | string | patron 8.2 decimales | No | Monto total de la factura afectada (formato 8.2). |
comentarioFacturaAfectada | string | max 255 | No | Comentario adicional sobre el documento afectado. |
regimenEspTributacion | string | max 55 | No | Regimen especial de tributacion, de aplicar. Ver Catalogo 4. |
fechaEmision | string | patron DD/MM/AAAA | No | Fecha de emision del documento (DD/MM/AAAA). |
fechaVencimiento | string | patron DD/MM/AAAA | No | Fecha de vencimiento del documento (DD/MM/AAAA). |
horaEmision | string | patron hh:mm:ss am/pm | No | Hora de emision en formato 12 horas hh:mm:ss am/pm. |
anulado | boolean | - | No | true o false (false o null es aceptable). |
tipoDePago | string | max 20 | No | Condicion de pago: inmediato (contado) o credito. |
serie | string | max 20 | Sí | Numero de serie. De no trabajar con serie, enviar vacio (serie vacia). |
sucursal | string | max 6 | No | Codigo de sucursal. |
tipoDeVenta | string | max 20 | No | Tipo de venta. Ver Catalogo 5 (interna, exportacion con INCOTERM). |
moneda | string | max 3 | No | Codigo internacional de moneda (ISO 4217). Ver Catalogo 7. |
transaccionId | string | max 50 | No | Identificador de transaccion. Solo existe en modo de asignacion automatica. |
urlPdf | string | max 250 | No | URL del PDF asociado, de aplicar. |
FacturaGuiaItem (3 campos)
Sección titulada «FacturaGuiaItem (3 campos)»Referencia cruzada entre factura y guía de despacho.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipoDocumento | string | patron ^(01|04)$ | Sí | Si es factura se informa el tipo de documento guia y viceversa (01 o 04). |
serie | string | max 20 | No | Numero de serie en caso de ser utilizada. De no trabajar con serie, enviar vacio. |
numeroDocumento | string | patron ^([0-9]{1,19})$ | Sí | Numero de documento al cual hace referencia. |
Vendedor (3 campos)
Sección titulada «Vendedor (3 campos)»Datos del vendedor o cajero.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
codigo | string | max 20 | No | Codigo del vendedor. |
nombre | string | max 255 | Sí | Nombre del vendedor. |
numCajero | string | max 20 | No | Numero de cajero. |
Comprador (10 campos)
Sección titulada «Comprador (10 campos)»Datos del comprador o adquiriente del documento.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipoIdentificacion | string | patron ^([VGCJEP]|.{2,4})$ | Sí | Tipo de identificacion del adquiriente. Ver Catalogo 8 (V, E, J, G, C, P, o NIT/RUT de 2 a 4 caracteres). |
numeroIdentificacion | string | max 45 | Sí | Numero de cedula o Registro de Informacion Fiscal (RIF). |
razonSocial | string | max 255; solo letras/numeros/signos | Sí | Nombres y apellidos o razon social del adquiriente (mayusculas). |
direccion | string | max 255 | Sí | Direccion completa y detallada. |
ubigeo | string | patron NN-NN o NN-NN-NN | No | Codigo de municipalidad (formato NN-NN o NN-NN-NN). |
pais | string | max 2 | Sí | Codigo pais de la transaccion. Ver Catalogo 9 (ISO 3166-1). |
notificar | string | patron ^(Si|No)$ | No | Enviar documento via correo electronico (Si/No). |
telefono | array<string> | array de string | No | Lista de numeros de telefono. |
correo | array<string> | array de string | No | Lista de direcciones de correo electronico. |
otrosEnvios | array<OtrosEnvios> | array de OtrosEnvios | No | Servicios de envio alternativos (SMS/WhatsApp). Puede requerir contratacion adicional. |
OtrosEnvios (2 campos)
Sección titulada «OtrosEnvios (2 campos)»Servicios de envío alternativos del documento.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipo | string | patron ^(sms|SMS|whatsapp|WhatsApp)$ | No | Tipo de servicio de envio alternativo (sms, SMS, whatsapp, WhatsApp). |
destino | string | max 20 | No | Numero de telefono destino. |
SujetoRetenido (11 campos)
Sección titulada «SujetoRetenido (11 campos)»Datos del sujeto retenido. Solo aplica si es comprobante de retención.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipoIdentificacion | string | patron ^([VGCJEP]|.{2,4})$ | Sí | Tipo de identificacion del sujeto retenido. Ver Catalogo 8. |
numeroIdentificacion | string | max 45 | Sí | Numero de cedula o RIF del sujeto retenido. |
razonSocial | string | max 255; solo letras/numeros/signos | Sí | Nombres y apellidos o razon social del sujeto retenido (mayusculas). |
direccion | string | max 255 | Sí | Direccion completa y detallada. |
ubigeo | string | patron NN-NN o NN-NN-NN | No | Codigo de municipalidad (formato NN-NN o NN-NN-NN). |
pais | string | max 2 | Sí | Codigo pais de la transaccion. Ver Catalogo 9. |
notificar | string | patron ^(Si|No)$ | No | Enviar notificacion del correo electronico (Si/No). |
telefono | array<string> | array de string | No | Lista de numeros de telefono. |
correo | array<string> | array de string | No | Lista de direcciones de correo. |
otrosEnvios | array<OtrosEnvios> | array de OtrosEnvios | No | Servicios de envio alternativos. |
tipoPerceptor | string | patron ^(\d{2})$ | No | Tipo de perceptor (dos digitos). |
Tercero (6 campos)
Sección titulada «Tercero (6 campos)»Datos del tercero, para facturación a cuenta de terceros.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipoIdentificacion | string | max 3 | Sí | Tipo de identificacion del tercero. Ver Catalogo 8. |
numeroIdentificacion | string | max 45 | Sí | Numero de cedula o RIF del tercero. |
razonSocial | string | max 255; solo letras/numeros/signos | Sí | Nombre y apellidos del tercero o razon social si es empresa. |
direccion | string | max 255 | Sí | Direccion completa y detallada. |
tipo | string | max 100 | Sí | Sector comercial del tercero. |
correo | array<string> | array de string | No | Lista de direcciones de correo. |
Totales (21 campos)
Sección titulada «Totales (21 campos)»Totales del documento: bases imponibles, IVA, IGTF, descuentos, recargos y formas de pago.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
nroItems | string | max 4 | Sí | Cantidad de items o servicios presentes en la lista de items. |
montoGravadoTotal | string | patron 16.2 decimales | Sí | Monto total de las bases imponibles de los items afectados por impuestos distintos de 0% (IVA G, R, A), sin incluir impuestos. |
montoExentoTotal | string | patron 16.2 decimales | No | Monto total de las bases imponibles de los items con impuesto exento (E). |
montoPercibidoTotal | string | patron 16.2 decimales | No | Monto total de las bases imponibles de los items con impuesto Percibido (P). |
subtotalAntesDescuento | string | patron 16.2 decimales | No | Suma de todos los PrecioItem antes de descuentos/recargos. Obligatorio si se declara total descuento o total recargo. |
totalDescuento | string | patron 16.2 decimales | No | Total de descuentos aplicados al documento. |
totalRecargos | string | patron 16.2 decimales | No | Suma total de los recargos. |
subtotal | string | patron 16.2 decimales | Sí | Bases imponibles de alicuotas del IVA mas montos exentos y percibidos (sin impuestos) menos total descuento. = montoGravadoTotal + montoExentoTotal. |
totalIVA | string | patron 16.2 decimales | Sí | Total de la suma de los impuestos calculados con las alicuotas distintas de 0%. = SUMA(valorIVA). |
montoTotalConIVA | string | patron 16.2 decimales | Sí | subtotal + totalIVA (NO incluye IGTF ni otros impuestos). |
totalAPagar | string | patron 16.2 decimales | Sí | montoTotalConIVA + IGTF. Si no hay IGTF, totalAPagar = montoTotalConIVA. |
montoEnLetras | string | max 255 | No | Transcripcion a letras de montoTotalConIVA. |
listaRecargo | array<ListaRecargo> | array de ListaRecargo | No | Lista de recargos (descripcion + monto). |
listaDescBonificacion | array<ListaDescBonificacion> | array de ListaDescBonificacion | No | Lista de descuentos/bonificaciones (descripcion + monto). |
impuestosSubtotal | array<ImpuestosSubtotal> | array de ImpuestosSubtotal | No | Totalizacion del IVA por tipo de alicuota. |
otrosImpuestosSubtotal | array<OtrosImpuestosSubtotal> | array de OtrosImpuestosSubtotal | No | Totalizacion de otros impuestos (municipales/OTI). |
formasPago | array<FormasPago> | array de FormasPago | No | Formas de pago del documento. |
totalIGTF | string | patron 16.2 decimales | No | Base imponible de IGTF en USD en caso de ser ND por ajuste IGTF. |
totalIGTF_VES | string | patron 16.2 decimales | No | Base imponible de IGTF en Bolivares en caso de ser ND por ajuste IGTF. |
montoTotalOTI | string | patron 16.2 decimales | No | Monto total sumado de las bases imponibles de los OTI declarados. |
montoTotalIVAyOTI | string | patron 16.2 decimales | No | subtotal + totalIVA + montoTotalOTI. |
ListaDescBonificacion (2 campos)
Sección titulada «ListaDescBonificacion (2 campos)»Lista de descuentos o bonificaciones a nivel de documento.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
descDescuento | string | max 255 | No | Descripcion del descuento o bonificacion. |
montoDescuento | string | patron 16.2 decimales | No | Monto del descuento o bonificacion. |
ListaRecargo (2 campos)
Sección titulada «ListaRecargo (2 campos)»Lista de recargos a nivel de documento.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
descRecargo | string | max 255 | No | Descripcion del recargo. |
montoRecargo | string | patron 16.2 decimales | No | Monto del recargo. |
ImpuestosSubtotal (4 campos)
Sección titulada «ImpuestosSubtotal (4 campos)»Totalización del IVA por tipo de alícuota.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
codigoTotalImp | string | patron ^(R|G|A|E|P|X|IGTF)$ | Sí | Codigo del tipo de alicuota a totalizar. Ver Catalogo 10 (R,G,A,E,P,X,IGTF). |
alicuotaImp | string | patron 16.2 decimales | No | Porcentaje de esta alicuota. |
baseImponibleImp | string | patron 16.2 decimales | No | Total de la base imponible de items afectados por la alicuota actual. |
valorTotalImp | string | patron 16.2 decimales | No | Importe totalizado de la alicuota actual (ej. total de IVA de los items tipo G). |
OtrosImpuestosSubtotal (4 campos)
Sección titulada «OtrosImpuestosSubtotal (4 campos)»Totalización de otros impuestos (OTI / municipales).
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
codigoOTI | string | - | Sí | Codigo del otro impuesto a totalizar (ej. IAP). |
porcentajeOTI | string | patron 16.2 decimales | No | Porcentaje de esta alicuota. |
baseImponibleOTI | string | patron 16.2 decimales | No | Total de la base imponible de items afectados por el impuesto. |
montoOTI | string | patron 16.2 decimales | No | Importe totalizado del impuesto. |
FormasPago (6 campos)
Sección titulada «FormasPago (6 campos)»Formas de pago del documento.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
descripcion | string | max 100 | No | Nombre amigable de la forma de pago (ej. paypal, Zinli). |
fecha | string | patron DD/MM/AAAA | No | Fecha del pago (DD/MM/AAAA). |
forma | string | patron ^(01..18|99)$ | Sí | Codigo de la forma de pago. Ver Catalogo 11 (01..18, 99). |
monto | string | patron 16.2 decimales | Sí | Monto de la porcion pagada con esta forma de pago. |
moneda | string | max 3 | Sí | Moneda en que se expresa esta forma de pago. Ver Catalogo 7. |
tipoCambio | string | patron 16.8 decimales | No | Si la moneda no es la de curso legal en Venezuela, tasa de cambio del dia. Obligatorio si el pago es con divisas. |
TotalesRetencion (9 campos)
Sección titulada «TotalesRetencion (9 campos)»Totales de retención del comprobante (IVA / ISLR).
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
totalBaseImponible | string | patron 20.2 decimales | Sí | Total de la base imponible de todos los documentos incluidos en la retencion. |
numeroCompRetencion | string | max 50; alfanumerico | Sí | Numero del comprobante de retencion recibido para el documento. |
fechaEmisionCR | string | patron DD/MM/AAAA | Sí | Fecha de emision del comprobante de retencion (DD/MM/AAAA). |
totalIVA | string | patron 20.2 decimales | No | Importe totalizado del IVA de todos los documentos (el que se pagaria sin retencion). En ISLR enviar null. |
totalRetenido | string | patron 20.2 decimales | No | Importe totalizado de las retenciones de todos los documentos. En ISLR enviar null. |
totalISRL | string | patron 20.2 decimales | No | Importe totalizado del ISLR de todos los documentos (el que se pagaria sin retencion). En IVA enviar null. |
totalIGTF | string | patron 20.2 decimales | No | Importe totalizado del IGTF de todos los documentos. |
tipoComprobante | string | patron ^[1-9]\d?$ | No | Identifica el tipo de comprobante de retencion. Si es de IVA viaja vacio o null. |
esNegativo | boolean | - | No | true si la retencion es negativa. |
TotalRetencion (5 campos)
Sección titulada «TotalRetencion (5 campos)»Totales de retención usados por el método AplicarRetencion.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
totalBaseImponible | string | patron 20.2 decimales | Sí | Total de la base imponible de los documentos de la retencion. |
numeroCompRetencion | string | max 50; alfanumerico | Sí | Numero del comprobante de retencion. |
fechaEmisionCR | string | patron DD/MM/AAAA | Sí | Fecha de emision del comprobante de retencion (DD/MM/AAAA). |
totalIVA | string | patron 20.2 decimales | No | Importe totalizado del IVA. |
totalRetenido | string | patron 20.2 decimales | No | Importe totalizado retenido. |
TotalesOtraMoneda (19 campos)
Sección titulada «TotalesOtraMoneda (19 campos)»Totales del documento expresados en otra moneda (divisa).
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
moneda | string | max 100 | Sí | Codigo internacional de la divisa a la que hacen referencia los montos de este nodo. Ver Catalogo 7. |
tipoCambio | string | patron 16.8 decimales | Sí | Tasa de cambio del dia respecto a la moneda de curso legal. |
montoGravadoTotal | string | patron 16.2 decimales | Sí | Monto total de items gravados (impuesto distinto de 0%) sin impuestos, en la otra moneda. |
montoPercibidoTotal | string | patron 16.2 decimales | No | Monto total de las bases imponibles de los items con impuesto Percibido, en la otra moneda. |
montoExentoTotal | string | patron 16.2 decimales | No | Monto total de las bases imponibles de los items con impuesto 0%, en la otra moneda. |
subtotal | string | patron 16.2 decimales | Sí | Suma de bases imponibles gravadas + exentas + percibidas (sin impuestos) menos descuento, en la otra moneda. |
totalAPagar | string | patron 16.2 decimales | Sí | Total a pagar en la otra moneda (incluye IGTF y otros impuestos). |
totalIVA | string | patron 16.2 decimales | Sí | Total de impuestos calculados con alicuotas distintas de 0%, en la otra moneda. |
montoTotalConIVA | string | patron 16.2 decimales | Sí | subtotal + totalIVA (NO incluye IGTF ni otros impuestos), en la otra moneda. |
montoEnLetras | string | max 255 | No | Transcripcion a letras del monto total con IVA en la otra moneda. |
subtotalAntesDescuento | string | patron 16.2 decimales | No | Suma de PrecioItem antes de descuentos, en la otra moneda. |
totalDescuento | string | patron 16.2 decimales | No | Total de descuentos, en la otra moneda. |
totalRecargos | string | patron 16.2 decimales | No | Suma total de recargos, en la otra moneda. |
listaRecargo | array<ListaRecargo> | array de ListaRecargo | No | Lista de recargos en la otra moneda. |
listaDescBonificacion | array<ListaDescBonificacion> | array de ListaDescBonificacion | No | Lista de descuentos en la otra moneda. |
impuestosSubtotal | array<ImpuestosSubtotal> | array de ImpuestosSubtotal | No | Totalizacion del IVA por tipo de alicuota, en la otra moneda. Obligatorio si se reporta otra moneda. |
otrosImpuestosSubtotal | array<OtrosImpuestosSubtotal> | array de OtrosImpuestosSubtotal | No | Totalizacion de otros impuestos, en la otra moneda. |
montoTotalOTI | string | patron 16.2 decimales | No | Monto total de OTI declarados, en la otra moneda. |
montoTotalIVAyOTI | string | patron 16.2 decimales | No | subtotal + totalIVA + montoTotalOTI, en la otra moneda. |
Orden (2 campos)
Sección titulada «Orden (2 campos)»Datos de agrupación de documentos para envío consolidado.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
numero | string | max 20 | Sí | Permite agrupar documentos similares para enviarlos por correo consolidado al cliente. |
correo | array<string> | array de string | No | Lista de direcciones de correo electronico. |
Detalles (21 campos)
Sección titulada «Detalles (21 campos)»Línea de detalle (ítem) del documento.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
numeroLinea | string | max 4 | Sí | Ordinal identificador de cada item (1ro, 2do, 3ro…). |
codigoCIIU | string | max 6 | No | Codigo de Actividad Economica (CIIU) que incluye este item. |
codigoPLU | string | max 20 | No | Codigo del producto o servicio (puede ser codigo de barra EAN13). |
indicadorBienoServicio | string | patron ^(1|2)$ | No | 1 = Bien, 2 = Servicio. |
descripcion | string | max 1000 | No | Nombre del item. |
cantidad | string | patron 16.4 decimales | Sí | Cantidad del item adquirido segun la unidad de medida (puede ser decimal). |
unidadMedida | string | max 3 | No | Unidad de medida segun siglas internacionales. Ver Catalogo 12. |
precioUnitario | string | patron 16.4 decimales | No | Precio por unidad de medida. |
precioUnitarioDescuento | string | patron 16.2 decimales | No | Precio unitario neto (con descuento aplicado). |
montoBonificacion | string | patron 16.2 decimales | No | Monto de la bonificacion del item, de existir. |
descripcionBonificacion | string | max 255 | No | Causa de la bonificacion del item (ej. Promocion aniversario). |
descuentoMonto | string | patron 16.2 decimales | No | Multiplicacion del descuento unitario por la cantidad adquirida (incluye bonificaciones). |
recargoMonto | string | patron 16.2 decimales | No | Recargo del monto del item. |
precioItem | string | patron 16.2 decimales | No | (precioUnitario * cantidad) - descuentoMonto, aun sin impuesto. |
precioAntesDescuento | string | patron 16.2 decimales | No | Valor original del producto antes de aplicar rebajas o promociones. |
codigoImpuesto | string | patron ^(R|G|A|E|P|X|IGTF)$ | No | Identificador de la alicuota IVA del item. Ver Catalogo 10 (R,G,A,E,P,X,IGTF). |
tasaIVA | string | patron 16.2 decimales | No | Tasa del IVA aplicable al item segun el codigo del IVA (Catalogo 10). |
valorIVA | string | patron 16.2 decimales | No | precioItem * tasaIVA. |
valorTotalItem | string | patron 16.2 decimales | No | precioItem * (1 + tasaIVA/100) + valorOTI. |
infoAdicionalItem | array<InfoAdicionalItem> | array de InfoAdicionalItem | No | Informaciones adicionales del item (pares campo/valor). |
listaItemOTI | array<ListaItemOTI> | array de ListaItemOTI | No | Otros impuestos a nivel de item. |
InfoAdicionalItem (2 campos)
Sección titulada «InfoAdicionalItem (2 campos)»Información adicional a nivel de ítem (pares campo/valor).
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
campo | string | max 255 | No | Nombre de la informacion adicional del item. |
valor | string | max 1000 | No | Valor de la informacion adicional del item. |
ListaItemOTI (3 campos)
Sección titulada «ListaItemOTI (3 campos)»Otros impuestos (OTI) a nivel de ítem.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tasaOTI | string | patron porcentaje | No | Porcentaje del impuesto adicional a nivel de item. |
codigoOTI | string | max 4 | No | Codigo del impuesto adicional (ej. I.M.O.). |
valorOTI | string | patron 16.2 decimales | No | PrecioItem * tasaOTI. |
DetallesRetencion (19 campos)
Sección titulada «DetallesRetencion (19 campos)»Detalle de cada documento retenido (comprobante de retención).
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
numeroLinea | string | max 4 | Sí | Ordinal identificador de cada item (1ro, 2do, 3ro…). |
fechaDocumento | string | patron DD/MM/AAAA | Sí | Fecha del documento sobre el que se emite la retencion (DD/MM/AAAA). |
serieDocumento | string | max 20 | No | Serie del documento, de existir. |
tipoDocumento | string | patron ^(01|02|03|04|05|06)$ | Sí | Tipo del documento sobre el que se emite la retencion. Ver Catalogo 1. |
numeroDocumento | string | patron ^([0-9]{1,19})$ | No | Numero del documento. |
numeroControl | string | max 15 | No | Numero de control que tiene el documento. |
tipoTransaccion | string | patron ^(01|02|03|04|98|99)$ | No | Codigo de tipo de transaccion. Ver Catalogo 3. |
montoTotal | string | patron 16.2 decimales | No | Monto total del documento referenciado (base imponible + impuesto). |
montoExento | string | patron 16.4 decimales | No | Monto exento del documento, de existir. |
baseImponible | string | patron 16.2 decimales | No | Base imponible total del documento (monto sin impuestos). |
porcentaje | string | patron 16.4 decimales | No | Porcentaje de los impuestos (si hay varias alicuotas, sumarlas). |
porcentajeRetencion | string | patron 16.4 decimales | No | Porcentaje de retencion aplicado. |
sustraendo | string | patron 16.2 decimales | No | Sustraendo aplicado al calculo de retencion (ISLR). |
montoIVA | string | patron 16.2 decimales | No | Monto calculado de IVA total del documento. |
retenido | string | patron 16.2 decimales | Sí | Cuanto del monto se va a retener (usualmente 75% o 100%); colocar monto, no porcentaje. |
percibido | string | patron 16.2 decimales | No | Monto efectivamente pagado. |
codigoConcepto | string | patron ^(\d{3,4})$ | No | Codigo de la actividad de la tabla de la norma. Solo aplica para tipo de documento 06. Ver Catalogo 6. |
moneda | string | max 3 | Sí | Codigo de moneda. Ver Catalogo 7. |
infoAdicionalItem | array<InfoAdicionalItem> | array de InfoAdicionalItem | No | Informaciones adicionales del documento referenciado. |
GuiaDespacho (10 campos)
Sección titulada «GuiaDespacho (10 campos)»Datos de la guía de despacho o nota de entrega.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
esGuiaDespacho | string | patron ^(0|1)$ | Sí | 1 = Guia de Despacho, 0 = Nota de Entrega. |
motivoTraslado | string | max 55 | No | Motivo de traslado. Ver Catalogo 14. |
descripcionServicio | string | max 255 | No | Descripcion del servicio (si se selecciona reparacion o perfeccionamiento). |
tipoProducto | string | max 55 | No | Tipo de producto. Ver Catalogo 15. |
origenProducto | string | max 255 | No | Origen del producto. Ver Catalogo 16. |
pesoOVolumenTotal | string | max 55 | No | Peso o volumen total (ej. 30.000 kg). |
destinoProducto | string | max 255 | No | Destino del producto. Ver Catalogo 17. |
conductor | object (Conductor) | - | No | Datos del conductor. |
vehiculo | object (Vehiculo) | - | No | Datos del vehiculo. |
transportista | object (Transportista) | - | No | Datos del transportista. |
Conductor (5 campos)
Sección titulada «Conductor (5 campos)»Datos del conductor de la guía de despacho.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
nombreCompleto | string | max 100 | No | Nombre y apellido del conductor. |
tipoIdentificacion | string | patron ^([VGCJEP]|.{2,4})$ | No | Tipo de identificacion. Ver Catalogo 8. |
numeroIdentificacion | string | max 45 | No | Numero de cedula o RIF. |
tipoLicencia | string | max 55 | No | Tipo de licencia (ej. Licencia de 5ta). |
infoContacto | string | max 255 | No | Correos y/o numeros telefonicos del conductor. |
Vehiculo (3 campos)
Sección titulada «Vehiculo (3 campos)»Datos del vehículo de la guía de despacho.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipoVehiculo | string | max 255 | No | Texto descriptivo del tipo de vehiculo (ej. Doble cabina 6 ejes). |
numeroTransporte | string | max 55 | No | Numero interno del camion o serial del transporte. |
numeroPlaca | string | max 12 | No | Placa del vehiculo. |
Transportista (3 campos)
Sección titulada «Transportista (3 campos)»Datos de la empresa de transporte.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
razonSocial | string | max 255 | No | Nombre o razon social de la empresa de transporte. |
numeroIdentificacion | string | max 45 | No | Numero de Registro de Informacion Fiscal (RIF). |
domicilioFiscal | string | max 255 | No | Direccion del domicilio fiscal que aparece en el RIF de la empresa de transporte. |
Transporte (10 campos)
Sección titulada «Transporte (10 campos)»Información de transporte del documento.
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
tipo | string | max 100 | No | Metodo de transporte utilizado (ej. Avion). |
descripcion | string | max 255 | No | Nombre o descripcion del transporte. |
codigo | string | max 100 | No | Valor descriptivo del itinerario. |
origen | string | max 100 | No | Punto de origen del traslado. |
destino | string | max 100 | No | Punto de destino del traslado. |
fechaEntrada | string | patron DD/MM/AAAA | No | Fecha establecida para la llegada del traslado (DD/MM/AAAA). |
fechaSalida | string | patron DD/MM/AAAA | No | Fecha establecida para la salida del traslado (DD/MM/AAAA). |
lugarEntrega | string | max 100 | No | Ubicacion donde se transfiere el riesgo de perdida o dano de la mercancia. |
lugarRecepcion | string | max 100 | No | Punto de transferencia de propiedad entre proveedor y cliente. |
placa | string | max 100 | No | Serial, matricula o codigo de contrato de servicio del transporte. |
Viajes (16 campos)
Sección titulada «Viajes (16 campos)»Datos de agencias de viaje (pasajero, boleto, itinerario).
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
nombreApellidoPasajero | string | max 100 | No | Nombre y apellido del pasajero (campos de agencias de viaje). |
tipoIdentificacion | string | max 4 | No | Tipo de identificacion del pasajero. |
numeroIdentificacion | string | max 45 | No | Numero de identificacion del pasajero. |
domicilioFiscalPasajero | string | max 255 | No | Domicilio fiscal del pasajero. |
numeroTelePasajero | string | max 255 | No | Numero de telefono del pasajero. |
razonSocialServTransporte | string | max 100 | No | Razon social del servicio de transporte. |
numeroBoleto | string | max 14 | No | Numero de boleto. |
fechaSalida | string | max 10 | No | Fecha de salida. |
horaSalida | string | max 10 | No | Hora de salida (hh:mm:ss am). |
fechaLlegada | string | max 10 | No | Fecha de llegada. |
horaLlegada | string | max 10 | No | Hora de llegada (hh:mm:ss am). |
unidadVolumen | string | max 3 | No | Unidad de volumen. |
nombrePuertoEmbarque | string | max 255 | No | Nombre del puerto de embarque. |
condicionesEntrega | string | max 255 | No | Condiciones de entrega. |
puntoSalida | string | max 255 | No | Punto de salida. |
puntoDestino | string | max 255 | No | Punto de destino. |
InfoAdicional (2 campos)
Sección titulada «InfoAdicional (2 campos)»Información adicional a nivel de documento (pares campo/valor).
| Campo | Tipo | Long/Patrón | Obligatorio | Descripción |
|---|---|---|---|---|
campo | string | max 255 | No | Nombre o identificador del campo especial de informacion adicional del documento. |
valor | string | max 1000 | No | Valor del campo especial de informacion adicional. |