Skip to main content

Overview

The electronic invoice system uses a structured JSON format called DocumentoElectronico (Electronic Document). This schema encompasses all necessary data for Venezuelan tax-compliant invoicing, including buyer/seller information, line items, totals, and multi-currency support.

Root Structure

Every invoice JSON file contains a single root object:
{
  "DocumentoElectronico": {
    "Encabezado": { ... },
    "DetallesItems": [ ... ],
    "InfoAdicional": [ ... ],
    "EsLote": true,
    "EsMinimo": null
  }
}
DocumentoElectronico
object
required
Root container for all invoice data

Encabezado (Header Section)

The header contains five main subsections: document identification, buyer information, seller information (optional), totals in primary currency (BSD), and totals in secondary currency (USD).

IdentificacionDocumento

IdentificacionDocumento
object
required
Document identification and metadata

Comprador (Buyer Information)

Comprador
object
required
Customer/buyer information

Totales (Primary Currency Totals)

Totales
object
required
Totals in primary currency (BSD - Bolívares)

TotalesOtraMoneda (Secondary Currency Totals)

TotalesOtraMoneda
object
Totals in secondary currency (USD - US Dollars)

DetallesItems (Line Items)

The DetallesItems array contains one or more line items representing the products or services being invoiced.
DetallesItems
array
required
Array of invoice line items

Example Line Item

{
  "NumeroLinea": "1",
  "CodigoPLU": "005",
  "IndicadorBienoServicio": "2",
  "Descripcion": "PLAN OPTIMO 300 MBPS",
  "Cantidad": "1",
  "UnidadMedida": "4L",
  "PrecioUnitario": "3874.56",
  "PrecioItem": "3874.56",
  "CodigoImpuesto": "G",
  "TasaIVA": "16",
  "ValorIVA": "619.93",
  "ValorTotalItem": "3874.56"
}

InfoAdicional (Additional Information)

The InfoAdicional array contains custom key-value pairs for business-specific metadata. In this system, it’s used to track service contracts and usage data.
InfoAdicional
array
Array of additional metadata fields

Standard Fields Used

{
  "Campo": "Contrato",
  "Valor": "2802"
}
The system tracks:
  • Contrato: Service contract ID
  • Mes1-Mes6: Month names (Spanish abbreviations)
  • Cmes1-Cmes6: Consumption/usage data per month (in MB or similar units)
  • Promedio: Average usage across all months

Complete Example

Here’s a complete invoice structure from the system:
{
  "DocumentoElectronico": {
    "Encabezado": {
      "IdentificacionDocumento": {
        "TipoDocumento": "01",
        "NumeroDocumento": "6746",
        "FechaEmision": "09/09/2025",
        "FechaVencimiento": "09/09/2025",
        "HoraEmision": "10:00:00 am",
        "Anulado": false,
        "TipoDePago": "Inmediato",
        "Moneda": "BSD",
        "TransaccionId": "FA6746"
      },
      "Comprador": {
        "TipoIdentificacion": "V",
        "NumeroIdentificacion": "14965208",
        "RazonSocial": "CARLOS ALBERTO SOLANO",
        "Direccion": "ALI PRIMERA TORRE 15F APTO 1-2 BARQUISIMETO EDO. LARA",
        "Pais": "VE",
        "Telefono": ["4245665757"],
        "Correo": ["[email protected]"]
      },
      "Totales": {
        "NroItems": "1",
        "MontoGravadoTotal": "4494.49",
        "Subtotal": "3874.56",
        "TotalIVA": "619.93",
        "TotalAPagar": "4494.49",
        "MontoEnLetras": "cuatro mil cuatrocientos noventa y cuatro punto cuatro nueve"
      },
      "TotalesOtraMoneda": {
        "Moneda": "USD",
        "TipoCambio": "154.9825",
        "Subtotal": "25.0",
        "TotalIVA": "4.0",
        "TotalAPagar": "29.0"
      }
    },
    "DetallesItems": [
      {
        "NumeroLinea": "1",
        "Descripcion": "PLAN OPTIMO 300 MBPS",
        "Cantidad": "1",
        "PrecioUnitario": "3874.56",
        "TasaIVA": "16",
        "ValorIVA": "619.93"
      }
    ],
    "InfoAdicional": [
      { "Campo": "Contrato", "Valor": "2802" },
      { "Campo": "Mes1", "Valor": "JUL" },
      { "Campo": "Promedio", "Valor": "1371" }
    ],
    "EsLote": true
  }
}

Build docs developers (and LLMs) love