API Reference
Zentto Digital Print exposes its contract under the /v1/imprenta base (vertical domain)
and a public API for third parties under /api/* (integrators). The full reference, with
all schemas, is available as PDF:
Servers: https://imprenta.zentto.net (production), https://imprentadev.zentto.net
(development), http://localhost:4900 (local).
Authentication
Section titled “Authentication”| Scope | Mechanism |
|---|---|
Domain /v1/imprenta/* | zentto-auth JWT (HttpOnly cookie in browser or Authorization: Bearer server-to-server). companyId resolved from the token; optional X-Company-Id override. |
Gateway /v1/fiscal/* | X-API-Key header (internal channel between the ERP and the microservice). |
Integrator API /api/* | POST /api/Autenticacion with tokenUsuario + secret → short JWT; sent as Authorization: Bearer. companyId comes from the token (anti-IDOR). |
SENIAT lookup /seniat/* | X-Seniat-Key header (read-only). |
Integrator authentication — POST /api/Autenticacion
Section titled “Integrator authentication — POST /api/Autenticacion”{ "tokenUsuario": "ZEN-INT-0001", "secret": "<secret delivered once>" }Response:
{ "ok": true, "token": "<short jwt>", "tokenType": "Bearer", "expiresIn": 3600, "integrador": { "id": 12, "nombre": "My POS", "ambiente": "production" }}Domain endpoints /v1/imprenta
Section titled “Domain endpoints /v1/imprenta”| Method | Path | Purpose |
|---|---|---|
GET | /dashboard | Company KPIs. |
GET/POST/PUT/DELETE | /sucursales[/{id}] | Branches. |
GET/POST/PUT/DELETE | /puntos-facturacion[/{id}] | Billing points (counters per type). |
GET | /numeraciones, /numeraciones/export | Numberings (with CSV export). |
GET/POST | /asignaciones | Numbering range assignment. |
GET/POST | /documentos | List / issue documents. |
GET | /documentos/{id} | Document detail. |
POST | /documentos/{id}/anular | Void document. |
GET | /documentos/{id}/estado | Document status. |
GET | /documentos/{id}/pdf | PDF in base64. |
GET/POST | /reservaciones | Numbering reservations. |
GET/POST/PUT | /usuarios[/{id}] | Vertical users. |
GET | /auditoria | Audit events. |
GET | /reportes/{documentos,ventas,asignaciones,retencion-mensual,cuentas-pagar,cuentas-cobrar} | Reports. |
GET/POST | /configuracion/credenciales | Print configuration. |
Integrator API /api/*
Section titled “Integrator API /api/*”| Method | Path | Purpose |
|---|---|---|
POST | /api/Autenticacion | Authenticate with tokenUsuario+secret → short JWT. |
POST | /api/emit | Issue a document against the integrator’s own series. |
GET | /api/documentos/{id}/status | Document status. |
GET | /api/documentos/{id}/pdf | PDF (base64). |
POST | /api/documentos/{id}/annul | Void a document. |
GET | /api/numeraciones | Integrator numbering ranges (own series). |
Issuance — POST /v1/imprenta/documentos or POST /api/emit
Section titled “Issuance — POST /v1/imprenta/documentos or POST /api/emit”EmitDocumentRequest body:
{ "environment": "production", "document": { "...canonical document (CanonicalDocument)..." }}Response (success):
{ "ok": true, "documentoId": 4821, "result": { "ok": true, "controlNumber": "00-00012345", "documentNumber": "50371", "serie": "A", "transactionId": "TX-9f8a...", "code": "200", "message": "Issued by own digital printer" }}Canonical document (CanonicalDocument)
Section titled “Canonical document (CanonicalDocument)”| Field | Type | Description |
|---|---|---|
documentType | 01..06 | Document type (07 ARCV is local). |
documentNumber | string | Document number (issuer counter). |
serie | string | Series. |
currency | string | Currency (default BSD). |
issueDate | string | Issue date dd/MM/yyyy. |
buyer | CanonicalParty | Buyer (idType, idNumber, name, address, country). |
withheldSubject | CanonicalParty | Withheld subject (withholdings 05/06). |
items | array | Document lines. |
totals | object | Totals, tax subtotals, IGTF and payment methods. |
reference | object | Affected document (credit/debit notes). |
Document types
Section titled “Document types”| Code | Document |
|---|---|
01 | Invoice |
02 | Credit note |
03 | Debit note |
04 | Dispatch guide |
05 | VAT withholding voucher |
06 | ISLR withholding voucher |
07 | ARCV (accumulated withholding voucher — local only) |
Tax rates, taxes and IGTF
Section titled “Tax rates, taxes and IGTF”| Code | Rate | Typical |
|---|---|---|
G | General | 16% |
R | Reduced | 8% |
A | Additional / luxury | variable |
E | Exempt | 0% |
IGTF | Tax on Large Financial Transactions | 3% on foreign-currency payments |
The IGTF (3%) applies to foreign-currency payments, declared as a tax subtotal
(ImpuestosSubtotal with CodigoTotalImp: "IGTF") and added to the total to pay. See
Document examples for complete cases.
Numbering (own series)
Section titled “Numbering (own series)”| Method | Path | Purpose |
|---|---|---|
POST | /v1/imprenta/asignaciones | Assigns a range { TipoDocumento, Serie, Desde, Hasta }. |
GET | /v1/imprenta/numeraciones | Lists series and current counter. |
The control number is formed as Prefijo + LPAD(counter, 8, "0"), assigned atomically. See
Numbering & control.
Response codes
Section titled “Response codes”| HTTP | Meaning |
|---|---|
200 / 201 | Operation accepted. |
400 | Schema validation error (Zod). Returns issues. |
401 | Unauthenticated (JWT / token / X-API-Key missing or invalid). |
403 | Missing required role (backoffice). |
404 | Not found (or out of portfolio, anti-IDOR). |
412 | Company has no configured credentials/series. |
422 | Business rejection (see validations, e.g. serie_agotada_o_inexistente). |
Electronic document model — field by field
Section titled “Electronic document model — field by field”This section documents each of the 30 structures of the DocumentoElectronico (245 fields). Columns are: Field · Type · Length/Pattern · Required · Description.
DocumentoElectronico (9 fields)
Section titled “DocumentoElectronico (9 fields)”Root node. Holds every field required to build the fiscal document; every request must contain this identification.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
encabezado | object (Encabezado) | - | Yes | Parent node: document identification, parties and totals. |
detallesItems | array<Detalles> | array de Detalles | No | Document line items (not applicable to withholding vouchers). |
detallesRetencion | array<DetallesRetencion> | array de DetallesRetencion | No | List of withheld documents (required for withholding vouchers). |
viajes | object (Viajes) | - | No | Travel agency data, where applicable. |
infoAdicional | array<InfoAdicional> | array de InfoAdicional | No | Additional document information. |
guiaDespacho | object (GuiaDespacho) | - | No | Dispatch guide or delivery order data. |
transporte | object (Transporte) | - | No | Transport information. |
esLote | boolean | - | No | true if part of a batch issuance. |
esMinimo | boolean | - | No | true to enable the minimal-validation schema. |
Encabezado (10 fields)
Section titled “Encabezado (10 fields)”Parent node spanning from document identification through to totals.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
identificacionDocumento | object (IdentificacionDocumento) | - | Yes | Document identification data. |
facturaGuia | array<FacturaGuiaItem> | array de FacturaGuiaItem | No | Invoice<->guide references. |
vendedor | object (Vendedor) | - | No | Seller/cashier data. |
comprador | object (Comprador) | - | No | Buyer/acquirer data. |
sujetoRetenido | object (SujetoRetenido) | - | No | Withheld subject data (withholding vouchers only). |
tercero | object (Tercero) | - | No | Third-party data (billing on behalf of third parties). |
totales | object (Totales) | - | No | Document totals. |
totalesRetencion | object (TotalesRetencion) | - | No | Withholding totals (withholding voucher). |
totalesOtraMoneda | object (TotalesOtraMoneda) | - | No | Totals expressed in another currency. |
orden | object (Orden) | - | No | Grouping/order data. |
IdentificacionDocumento (23 fields)
Section titled “IdentificacionDocumento (23 fields)”Sub-node with invoice data: from document type through to the currency used.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipoDocumento | string | patron ^(01|02|03|04|05|06)$ | Yes | Fiscal document type. See Catalog 1 (01 invoice, 02 credit note, 03 debit note, 04 dispatch guide/delivery note, 05 VAT withholding, 06 ISLR withholding). |
numeroDocumento | string | patron ^([0-9]{1,19})$ | No | Internal document number. Max value 9223372036854775807. |
tipoProveedor | string | patron ^(SR|NR|ND)$ | No | Supplier type code (may be empty). See Catalog 2 (SR non-resident, NR non-domiciled, ND registry). |
tipoTransaccion | string | patron ^(01|02|03|04|98|99)$ | No | Executed-operation code. See Catalog 3 (01 complement, 02 void, 03 adjustment, 04 IGTF debit note, 98 third-party invoice only, 99 special economic zones). |
numeroPlanillaImportacion | string | max 20 | No | For imports, the form number. |
numeroExpedienteImportacion | string | max 20 | No | For imports, the file number. |
serieFacturaAfectada | string | max 20 | No | Series of the invoice affected by a credit/debit note, as applicable. |
numeroFacturaAfectada | string | patron ^([0-9]{1,19})$ | No | Number of the invoice affected by a credit or debit note. |
fechaFacturaAfectada | string | patron DD/MM/AAAA | No | Issue date of the affected invoice (DD/MM/YYYY). |
montoFacturaAfectada | string | patron 8.2 decimales | No | Total amount of the affected invoice (8.2 format). |
comentarioFacturaAfectada | string | max 255 | No | Additional comment on the affected document. |
regimenEspTributacion | string | max 55 | No | Special taxation regime, where applicable. See Catalog 4. |
fechaEmision | string | patron DD/MM/AAAA | No | Document issue date (DD/MM/YYYY). |
fechaVencimiento | string | patron DD/MM/AAAA | No | Document due date (DD/MM/YYYY). |
horaEmision | string | patron hh:mm:ss am/pm | No | Issue time in 12-hour format hh:mm:ss am/pm. |
anulado | boolean | - | No | true or false (false or null is acceptable). |
tipoDePago | string | max 20 | No | Payment condition: immediate (cash) or credit. |
serie | string | max 20 | Yes | Series number. If series are not used, send empty (empty series). |
sucursal | string | max 6 | No | Branch code. |
tipoDeVenta | string | max 20 | No | Sale type. See Catalog 5 (domestic, export with INCOTERM). |
moneda | string | max 3 | No | International currency code (ISO 4217). See Catalog 7. |
transaccionId | string | max 50 | No | Transaction identifier. Only present in automatic-assignment mode. |
urlPdf | string | max 250 | No | Associated PDF URL, where applicable. |
FacturaGuiaItem (3 fields)
Section titled “FacturaGuiaItem (3 fields)”Cross reference between invoice and dispatch guide.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipoDocumento | string | patron ^(01|04)$ | Yes | If it is an invoice, the guide document type is reported and vice versa (01 or 04). |
serie | string | max 20 | No | Series number if used. If series are not used, send empty. |
numeroDocumento | string | patron ^([0-9]{1,19})$ | Yes | Number of the referenced document. |
Vendedor (3 fields)
Section titled “Vendedor (3 fields)”Seller or cashier data.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
codigo | string | max 20 | No | Seller code. |
nombre | string | max 255 | Yes | Seller name. |
numCajero | string | max 20 | No | Cashier number. |
Comprador (10 fields)
Section titled “Comprador (10 fields)”Buyer/acquirer data for the document.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipoIdentificacion | string | patron ^([VGCJEP]|.{2,4})$ | Yes | Acquirer identification type. See Catalog 8 (V, E, J, G, C, P, or NIT/RUT of 2 to 4 characters). |
numeroIdentificacion | string | max 45 | Yes | ID number or Tax Information Registry (RIF). |
razonSocial | string | max 255; solo letras/numeros/signos | Yes | Acquirer full name or company name (uppercase). |
direccion | string | max 255 | Yes | Full and detailed address. |
ubigeo | string | patron NN-NN o NN-NN-NN | No | Municipality code (format NN-NN or NN-NN-NN). |
pais | string | max 2 | Yes | Transaction country code. See Catalog 9 (ISO 3166-1). |
notificar | string | patron ^(Si|No)$ | No | Send document by email (Yes/No). |
telefono | array<string> | array de string | No | List of phone numbers. |
correo | array<string> | array de string | No | List of email addresses. |
otrosEnvios | array<OtrosEnvios> | array de OtrosEnvios | No | Alternative delivery services (SMS/WhatsApp). May require additional contracting. |
OtrosEnvios (2 fields)
Section titled “OtrosEnvios (2 fields)”Alternative document delivery services.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipo | string | patron ^(sms|SMS|whatsapp|WhatsApp)$ | No | Alternative delivery service type (sms, SMS, whatsapp, WhatsApp). |
destino | string | max 20 | No | Destination phone number. |
SujetoRetenido (11 fields)
Section titled “SujetoRetenido (11 fields)”Withheld subject data. Applies to withholding vouchers only.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipoIdentificacion | string | patron ^([VGCJEP]|.{2,4})$ | Yes | Withheld subject identification type. See Catalog 8. |
numeroIdentificacion | string | max 45 | Yes | ID number or RIF of the withheld subject. |
razonSocial | string | max 255; solo letras/numeros/signos | Yes | Withheld subject full name or company name (uppercase). |
direccion | string | max 255 | Yes | Full and detailed address. |
ubigeo | string | patron NN-NN o NN-NN-NN | No | Municipality code (format NN-NN or NN-NN-NN). |
pais | string | max 2 | Yes | Transaction country code. See Catalog 9. |
notificar | string | patron ^(Si|No)$ | No | Send email notification (Yes/No). |
telefono | array<string> | array de string | No | List of phone numbers. |
correo | array<string> | array de string | No | List of email addresses. |
otrosEnvios | array<OtrosEnvios> | array de OtrosEnvios | No | Alternative delivery services. |
tipoPerceptor | string | patron ^(\d{2})$ | No | Recipient type (two digits). |
Tercero (6 fields)
Section titled “Tercero (6 fields)”Third-party data, for billing on behalf of third parties.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipoIdentificacion | string | max 3 | Yes | Third-party identification type. See Catalog 8. |
numeroIdentificacion | string | max 45 | Yes | Third-party ID number or RIF. |
razonSocial | string | max 255; solo letras/numeros/signos | Yes | Third-party full name or company name if a business. |
direccion | string | max 255 | Yes | Full and detailed address. |
tipo | string | max 100 | Yes | Third-party commercial sector. |
correo | array<string> | array de string | No | List of email addresses. |
Totales (21 fields)
Section titled “Totales (21 fields)”Document totals: taxable bases, VAT, IGTF, discounts, surcharges and payment methods.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
nroItems | string | max 4 | Yes | Number of items or services in the item list. |
montoGravadoTotal | string | patron 16.2 decimales | Yes | Total taxable base of items subject to non-zero taxes (VAT G, R, A), excluding taxes. |
montoExentoTotal | string | patron 16.2 decimales | No | Total taxable base of exempt items (E). |
montoPercibidoTotal | string | patron 16.2 decimales | No | Total taxable base of items with collected tax (P). |
subtotalAntesDescuento | string | patron 16.2 decimales | No | Sum of all PrecioItem before discounts/surcharges. Required if a total discount or surcharge is declared. |
totalDescuento | string | patron 16.2 decimales | No | Total discounts applied to the document. |
totalRecargos | string | patron 16.2 decimales | No | Sum of all surcharges. |
subtotal | string | patron 16.2 decimales | Yes | VAT taxable bases plus exempt and collected amounts (excl. taxes) minus total discount. = montoGravadoTotal + montoExentoTotal. |
totalIVA | string | patron 16.2 decimales | Yes | Sum of taxes computed at non-zero rates. = SUM(valorIVA). |
montoTotalConIVA | string | patron 16.2 decimales | Yes | subtotal + totalIVA (does NOT include IGTF or other taxes). |
totalAPagar | string | patron 16.2 decimales | Yes | montoTotalConIVA + IGTF. If no IGTF, totalAPagar = montoTotalConIVA. |
montoEnLetras | string | max 255 | No | montoTotalConIVA spelled out in words. |
listaRecargo | array<ListaRecargo> | array de ListaRecargo | No | List of surcharges (description + amount). |
listaDescBonificacion | array<ListaDescBonificacion> | array de ListaDescBonificacion | No | List of discounts/bonuses (description + amount). |
impuestosSubtotal | array<ImpuestosSubtotal> | array de ImpuestosSubtotal | No | VAT totalization by rate type. |
otrosImpuestosSubtotal | array<OtrosImpuestosSubtotal> | array de OtrosImpuestosSubtotal | No | Totalization of other taxes (municipal/OTI). |
formasPago | array<FormasPago> | array de FormasPago | No | Document payment methods. |
totalIGTF | string | patron 16.2 decimales | No | IGTF taxable base in USD for an IGTF-adjustment debit note. |
totalIGTF_VES | string | patron 16.2 decimales | No | IGTF taxable base in Bolivars for an IGTF-adjustment debit note. |
montoTotalOTI | string | patron 16.2 decimales | No | Total summed taxable base of declared OTI. |
montoTotalIVAyOTI | string | patron 16.2 decimales | No | subtotal + totalIVA + montoTotalOTI. |
ListaDescBonificacion (2 fields)
Section titled “ListaDescBonificacion (2 fields)”List of document-level discounts or bonuses.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
descDescuento | string | max 255 | No | Discount or bonus description. |
montoDescuento | string | patron 16.2 decimales | No | Discount or bonus amount. |
ListaRecargo (2 fields)
Section titled “ListaRecargo (2 fields)”List of document-level surcharges.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
descRecargo | string | max 255 | No | Surcharge description. |
montoRecargo | string | patron 16.2 decimales | No | Surcharge amount. |
ImpuestosSubtotal (4 fields)
Section titled “ImpuestosSubtotal (4 fields)”VAT totalization by rate type.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
codigoTotalImp | string | patron ^(R|G|A|E|P|X|IGTF)$ | Yes | Rate type code to totalize. See Catalog 10 (R,G,A,E,P,X,IGTF). |
alicuotaImp | string | patron 16.2 decimales | No | Percentage of this rate. |
baseImponibleImp | string | patron 16.2 decimales | No | Total taxable base of items subject to the current rate. |
valorTotalImp | string | patron 16.2 decimales | No | Totalized amount for the current rate (e.g. total VAT of type-G items). |
OtrosImpuestosSubtotal (4 fields)
Section titled “OtrosImpuestosSubtotal (4 fields)”Totalization of other taxes (OTI / municipal).
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
codigoOTI | string | - | Yes | Code of the other tax to totalize (e.g. IAP). |
porcentajeOTI | string | patron 16.2 decimales | No | Percentage of this rate. |
baseImponibleOTI | string | patron 16.2 decimales | No | Total taxable base of items subject to the tax. |
montoOTI | string | patron 16.2 decimales | No | Totalized tax amount. |
FormasPago (6 fields)
Section titled “FormasPago (6 fields)”Document payment methods.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
descripcion | string | max 100 | No | Friendly name of the payment method (e.g. paypal, Zinli). |
fecha | string | patron DD/MM/AAAA | No | Payment date (DD/MM/YYYY). |
forma | string | patron ^(01..18|99)$ | Yes | Payment-method code. See Catalog 11 (01..18, 99). |
monto | string | patron 16.2 decimales | Yes | Amount paid with this payment method. |
moneda | string | max 3 | Yes | Currency of this payment method. See Catalog 7. |
tipoCambio | string | patron 16.8 decimales | No | If the currency is not Venezuela’s legal tender, the day’s exchange rate. Required for foreign-currency payments. |
TotalesRetencion (9 fields)
Section titled “TotalesRetencion (9 fields)”Withholding totals of the voucher (VAT / ISLR).
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
totalBaseImponible | string | patron 20.2 decimales | Yes | Total taxable base of all documents in the withholding. |
numeroCompRetencion | string | max 50; alfanumerico | Yes | Withholding voucher number received for the document. |
fechaEmisionCR | string | patron DD/MM/AAAA | Yes | Withholding voucher issue date (DD/MM/YYYY). |
totalIVA | string | patron 20.2 decimales | No | Totalized VAT of all documents (payable without withholding). Send null for ISLR. |
totalRetenido | string | patron 20.2 decimales | No | Totalized withholdings of all documents. Send null for ISLR. |
totalISRL | string | patron 20.2 decimales | No | Totalized ISLR of all documents (payable without withholding). Send null for VAT. |
totalIGTF | string | patron 20.2 decimales | No | Totalized IGTF of all documents. |
tipoComprobante | string | patron ^[1-9]\d?$ | No | Identifies the withholding voucher type. For VAT send empty or null. |
esNegativo | boolean | - | No | true if the withholding is negative. |
TotalRetencion (5 fields)
Section titled “TotalRetencion (5 fields)”Withholding totals used by the AplicarRetencion method.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
totalBaseImponible | string | patron 20.2 decimales | Yes | Total taxable base of the withholding documents. |
numeroCompRetencion | string | max 50; alfanumerico | Yes | Withholding voucher number. |
fechaEmisionCR | string | patron DD/MM/AAAA | Yes | Withholding voucher issue date (DD/MM/YYYY). |
totalIVA | string | patron 20.2 decimales | No | Totalized VAT amount. |
totalRetenido | string | patron 20.2 decimales | No | Totalized withheld amount. |
TotalesOtraMoneda (19 fields)
Section titled “TotalesOtraMoneda (19 fields)”Document totals expressed in another currency.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
moneda | string | max 100 | Yes | International currency code referenced by this node. See Catalog 7. |
tipoCambio | string | patron 16.8 decimales | Yes | Day’s exchange rate against legal tender. |
montoGravadoTotal | string | patron 16.2 decimales | Yes | Total taxed items (non-zero tax) excl. taxes, in the other currency. |
montoPercibidoTotal | string | patron 16.2 decimales | No | Total taxable base of collected-tax items, in the other currency. |
montoExentoTotal | string | patron 16.2 decimales | No | Total taxable base of 0%-tax items, in the other currency. |
subtotal | string | patron 16.2 decimales | Yes | Sum of taxed + exempt + collected bases (excl. taxes) minus discount, in the other currency. |
totalAPagar | string | patron 16.2 decimales | Yes | Total to pay in the other currency (includes IGTF and other taxes). |
totalIVA | string | patron 16.2 decimales | Yes | Total taxes at non-zero rates, in the other currency. |
montoTotalConIVA | string | patron 16.2 decimales | Yes | subtotal + totalIVA (excl. IGTF/other taxes), in the other currency. |
montoEnLetras | string | max 255 | No | Total-with-VAT amount spelled out, in the other currency. |
subtotalAntesDescuento | string | patron 16.2 decimales | No | Sum of PrecioItem before discounts, in the other currency. |
totalDescuento | string | patron 16.2 decimales | No | Total discounts, in the other currency. |
totalRecargos | string | patron 16.2 decimales | No | Sum of surcharges, in the other currency. |
listaRecargo | array<ListaRecargo> | array de ListaRecargo | No | List of surcharges in the other currency. |
listaDescBonificacion | array<ListaDescBonificacion> | array de ListaDescBonificacion | No | List of discounts in the other currency. |
impuestosSubtotal | array<ImpuestosSubtotal> | array de ImpuestosSubtotal | No | VAT totalization by rate type, in the other currency. Required if another currency is reported. |
otrosImpuestosSubtotal | array<OtrosImpuestosSubtotal> | array de OtrosImpuestosSubtotal | No | Totalization of other taxes, in the other currency. |
montoTotalOTI | string | patron 16.2 decimales | No | Total declared OTI, in the other currency. |
montoTotalIVAyOTI | string | patron 16.2 decimales | No | subtotal + totalIVA + montoTotalOTI, in the other currency. |
Orden (2 fields)
Section titled “Orden (2 fields)”Document grouping data for consolidated delivery.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
numero | string | max 20 | Yes | Groups similar documents to email them consolidated to the customer. |
correo | array<string> | array de string | No | List of email addresses. |
Detalles (21 fields)
Section titled “Detalles (21 fields)”Document detail line (item).
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
numeroLinea | string | max 4 | Yes | Ordinal identifier of each item (1st, 2nd, 3rd…). |
codigoCIIU | string | max 6 | No | Economic Activity Code (CIIU) covering this item. |
codigoPLU | string | max 20 | No | Product or service code (may be an EAN13 barcode). |
indicadorBienoServicio | string | patron ^(1|2)$ | No | 1 = Good, 2 = Service. |
descripcion | string | max 1000 | No | Item name. |
cantidad | string | patron 16.4 decimales | Yes | Quantity acquired by unit of measure (may be decimal). |
unidadMedida | string | max 3 | No | Unit of measure per international codes. See Catalog 12. |
precioUnitario | string | patron 16.4 decimales | No | Price per unit of measure. |
precioUnitarioDescuento | string | patron 16.2 decimales | No | Net unit price (discount applied). |
montoBonificacion | string | patron 16.2 decimales | No | Item bonus amount, if any. |
descripcionBonificacion | string | max 255 | No | Reason for the item bonus (e.g. Anniversary promo). |
descuentoMonto | string | patron 16.2 decimales | No | Unit discount times quantity acquired (includes bonuses). |
recargoMonto | string | patron 16.2 decimales | No | Surcharge on the item amount. |
precioItem | string | patron 16.2 decimales | No | (precioUnitario * cantidad) - descuentoMonto, still excl. tax. |
precioAntesDescuento | string | patron 16.2 decimales | No | Original product value before any discounts or promotions. |
codigoImpuesto | string | patron ^(R|G|A|E|P|X|IGTF)$ | No | VAT rate identifier of the item. See Catalog 10 (R,G,A,E,P,X,IGTF). |
tasaIVA | string | patron 16.2 decimales | No | VAT rate applicable to the item per the VAT code (Catalog 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 | Additional item information (field/value pairs). |
listaItemOTI | array<ListaItemOTI> | array de ListaItemOTI | No | Other item-level taxes. |
InfoAdicionalItem (2 fields)
Section titled “InfoAdicionalItem (2 fields)”Item-level additional information (field/value pairs).
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
campo | string | max 255 | No | Name of the item additional information. |
valor | string | max 1000 | No | Value of the item additional information. |
ListaItemOTI (3 fields)
Section titled “ListaItemOTI (3 fields)”Other taxes (OTI) at item level.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tasaOTI | string | patron porcentaje | No | Percentage of the additional item-level tax. |
codigoOTI | string | max 4 | No | Additional tax code (e.g. I.M.O.). |
valorOTI | string | patron 16.2 decimales | No | PrecioItem * tasaOTI. |
DetallesRetencion (19 fields)
Section titled “DetallesRetencion (19 fields)”Detail of each withheld document (withholding voucher).
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
numeroLinea | string | max 4 | Yes | Ordinal identifier of each item (1st, 2nd, 3rd…). |
fechaDocumento | string | patron DD/MM/AAAA | Yes | Date of the document the withholding is issued on (DD/MM/YYYY). |
serieDocumento | string | max 20 | No | Document series, if any. |
tipoDocumento | string | patron ^(01|02|03|04|05|06)$ | Yes | Type of the document the withholding is issued on. See Catalog 1. |
numeroDocumento | string | patron ^([0-9]{1,19})$ | No | Document number. |
numeroControl | string | max 15 | No | Control number of the document. |
tipoTransaccion | string | patron ^(01|02|03|04|98|99)$ | No | Transaction-type code. See Catalog 3. |
montoTotal | string | patron 16.2 decimales | No | Total amount of the referenced document (taxable base + tax). |
montoExento | string | patron 16.4 decimales | No | Exempt amount of the document, if any. |
baseImponible | string | patron 16.2 decimales | No | Total taxable base of the document (amount excl. taxes). |
porcentaje | string | patron 16.4 decimales | No | Tax percentage (sum rates if multiple). |
porcentajeRetencion | string | patron 16.4 decimales | No | Applied withholding percentage. |
sustraendo | string | patron 16.2 decimales | No | Subtrahend applied in the withholding calculation (ISLR). |
montoIVA | string | patron 16.2 decimales | No | Computed total VAT amount of the document. |
retenido | string | patron 16.2 decimales | Yes | Amount to withhold (usually 75% or 100%); enter the amount, not the percentage. |
percibido | string | patron 16.2 decimales | No | Amount actually paid. |
codigoConcepto | string | patron ^(\d{3,4})$ | No | Activity code from the regulation table. Applies to document type 06 only. See Catalog 6. |
moneda | string | max 3 | Yes | Currency code. See Catalog 7. |
infoAdicionalItem | array<InfoAdicionalItem> | array de InfoAdicionalItem | No | Additional information of the referenced document. |
GuiaDespacho (10 fields)
Section titled “GuiaDespacho (10 fields)”Dispatch guide or delivery note data.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
esGuiaDespacho | string | patron ^(0|1)$ | Yes | 1 = Dispatch Guide, 0 = Delivery Note. |
motivoTraslado | string | max 55 | No | Reason for transfer. See Catalog 14. |
descripcionServicio | string | max 255 | No | Service description (if repair or processing is selected). |
tipoProducto | string | max 55 | No | Product type. See Catalog 15. |
origenProducto | string | max 255 | No | Product origin. See Catalog 16. |
pesoOVolumenTotal | string | max 55 | No | Total weight or volume (e.g. 30.000 kg). |
destinoProducto | string | max 255 | No | Product destination. See Catalog 17. |
conductor | object (Conductor) | - | No | Driver data. |
vehiculo | object (Vehiculo) | - | No | Vehicle data. |
transportista | object (Transportista) | - | No | Carrier data. |
Conductor (5 fields)
Section titled “Conductor (5 fields)”Driver data of the dispatch guide.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
nombreCompleto | string | max 100 | No | Driver full name. |
tipoIdentificacion | string | patron ^([VGCJEP]|.{2,4})$ | No | Identification type. See Catalog 8. |
numeroIdentificacion | string | max 45 | No | ID number or RIF. |
tipoLicencia | string | max 55 | No | License type (e.g. 5th-grade license). |
infoContacto | string | max 255 | No | Driver’s emails and/or phone numbers. |
Vehiculo (3 fields)
Section titled “Vehiculo (3 fields)”Vehicle data of the dispatch guide.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipoVehiculo | string | max 255 | No | Descriptive text of the vehicle type (e.g. Double cab 6 axles). |
numeroTransporte | string | max 55 | No | Internal truck number or transport serial. |
numeroPlaca | string | max 12 | No | Vehicle plate. |
Transportista (3 fields)
Section titled “Transportista (3 fields)”Carrier company data.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
razonSocial | string | max 255 | No | Carrier company name. |
numeroIdentificacion | string | max 45 | No | Tax Information Registry number (RIF). |
domicilioFiscal | string | max 255 | No | Fiscal address shown on the carrier company RIF. |
Transporte (10 fields)
Section titled “Transporte (10 fields)”Document transport information.
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
tipo | string | max 100 | No | Transport method used (e.g. Plane). |
descripcion | string | max 255 | No | Transport name or description. |
codigo | string | max 100 | No | Descriptive itinerary value. |
origen | string | max 100 | No | Transfer origin point. |
destino | string | max 100 | No | Transfer destination point. |
fechaEntrada | string | patron DD/MM/AAAA | No | Scheduled transfer arrival date (DD/MM/YYYY). |
fechaSalida | string | patron DD/MM/AAAA | No | Scheduled transfer departure date (DD/MM/YYYY). |
lugarEntrega | string | max 100 | No | Location where the risk of loss or damage of the goods transfers. |
lugarRecepcion | string | max 100 | No | Ownership transfer point between supplier and customer. |
placa | string | max 100 | No | Serial, registration or service-contract code of the transport. |
Viajes (16 fields)
Section titled “Viajes (16 fields)”Travel agency data (passenger, ticket, itinerary).
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
nombreApellidoPasajero | string | max 100 | No | Passenger full name (travel-agency fields). |
tipoIdentificacion | string | max 4 | No | Passenger identification type. |
numeroIdentificacion | string | max 45 | No | Passenger identification number. |
domicilioFiscalPasajero | string | max 255 | No | Passenger fiscal address. |
numeroTelePasajero | string | max 255 | No | Passenger phone number. |
razonSocialServTransporte | string | max 100 | No | Transport service company name. |
numeroBoleto | string | max 14 | No | Ticket number. |
fechaSalida | string | max 10 | No | Departure date. |
horaSalida | string | max 10 | No | Departure time (hh:mm:ss am). |
fechaLlegada | string | max 10 | No | Arrival date. |
horaLlegada | string | max 10 | No | Arrival time (hh:mm:ss am). |
unidadVolumen | string | max 3 | No | Volume unit. |
nombrePuertoEmbarque | string | max 255 | No | Port of embarkation name. |
condicionesEntrega | string | max 255 | No | Delivery terms. |
puntoSalida | string | max 255 | No | Departure point. |
puntoDestino | string | max 255 | No | Destination point. |
InfoAdicional (2 fields)
Section titled “InfoAdicional (2 fields)”Document-level additional information (field/value pairs).
| Field | Type | Length/Pattern | Required | Description |
|---|---|---|---|---|
campo | string | max 255 | No | Name or identifier of the special additional-information field of the document. |
valor | string | max 1000 | No | Value of the special additional-information field. |