Introducción

API REST para la integración con Viainfo para facturación electrónica. Todos los endpoints requieren autenticación.

Codificación

Los documentos pueden enviarse en formato XML o JSON. Explicamos en JSON que es más recurrente, la cual requiere codificación ISO-8859-1 (ISO LATIN1). Los nombres de los nodos son case sensitive.

Carácter Reemplazo
<&lt;
>&gt;
&&amp;
"&quot;
'&apos;

Autenticación

POST /api/login Obtener token de acceso

Request Body:

JSON
{
  "rut": "29282726-1",
  "usuario": "demo",
  "password": "demo123"
}

Response:

JSON
{
  "sistema": "webbasico",
  "usuario": "demo",
  "token": "webbasico_LB621d9j889b6a23afic7f9c8f9u97w40buahd7f9a9f93f211dbnpvcea413685e35g1243e90ap2ccc4zc31c7f29057"
}

Encabezado del Documento

POST /api/documento Emitir documento
Ejemplo JSON completo
JSON
{
  "Sistema": {
    "nombre": "webbasico",
    "rut": "29282726-1",
    "usuario": "integrado_webbasico",
    "clave": "d2ViYmFzaWNvMjAyMQ=="
  },
  "Documento": {
    "Encabezado": {
      "IdDoc": {
        "TipoDTE": "33",
        "Folio": "0",
        "FchEmis": "2024-01-20",
        "FchVenc": "2024-01-26"
      },
      "Emisor": {
        "RUTEmisor": "29282726-1",
        "RznSocEmisor": "EMPRESA DE PRUEBA",
        "GiroEmisor": "DESARROLLO DE SISTEMAS",
        "DirOrigen": "Avenida del Software #11001101",
        "CmnaOrigen": "PROVIDENCIA",
        "CiudadOrigen": "SANTIAGO"
      },
      "Receptor": {
        "RUTRecep": "76399744-8",
        "RznSocRecep": "CLIENTE DE PRUEBA",
        "CorreoRecep": "prueba@viainfo.cl",
        "DirRecep": "CALLE A 50",
        "CmnaRecep": "SANTIAGO",
        "CiudadRecep": "SANTIAGO"
      },
      "Totales": {
        "MntNeto": "10000",
        "MntExe": "0",
        "IVA": "1900",
        "MntTotal": "11900"
      }
    },
    "Detalle": [
      {
        "NroLinDet": "1",
        "NmbItem": "Producto de ejemplo",
        "QtyItem": "1",
        "PrcItem": "11900",
        "MontoItem": "11900"
      }
    ]
  }
}

Parámetros del Encabezado

Campo Tipo Descripción
TipoDTE requerido 33: Factura, 39: Boleta, 52: Guía, 56: ND, 61: NC
Folio opcional 0 para autoasignación
FchEmis requerido Formato: YYYY-MM-DD
RUTEmisor requerido RUT con guión y dígito verificador

Detalle de Líneas

POST /api/documento Estructura del detalle
Campo Tipo Descripción
NroLinDet requerido Número de línea (1-60)
NmbItem requerido Descripción del producto
QtyItem requerido Cantidad (hasta 12 dígitos)
PrcItem requerido Precio unitario
MontoItem requerido QtyItem * PrcItem
IndExe opcional 1: Exento, 2: No facturable

Referencias

POST /api/documento Documentos referenciados
JSON
"Referencia": [
  {
    "NroLinRef": "1",
    "TpoDocRef": "33",
    "FolioRef": "123",
    "FchRef": "2024-01-15",
    "CodRef": "3",
    "RazonRef": "Corrige Montos"
  }
]

Códigos de Referencia

Código Descripción
1Anula Documento
2Corrige Texto
3Corrige Montos
4Anulación Masiva

API Emisión

POST /api/documento Emitir DTE

Endpoint:

.../Api/Documento

Headers:

Content-Type: application/json

Ejemplo con CURL:

BASH
curl -X POST '.../Api/Documento' \
-H 'Content-Type: application/json' \
-d '{
  "Sistema": {
    "nombre": "webbasico",
    "rut": "29282726-1",
    "usuario": "integrado_webbasico",
    "clave": "d2ViYmFzaWNvMjAyMQ=="
  },
  "Documento": {
    "Encabezado": {
      "IdDoc": {
        "TipoDTE": "33",
        "Folio": "0",
        "FchEmis": "2024-01-20"
      },
      "Emisor": {
        "RUTEmisor": "29282726-1",
        "RznSocEmisor": "EMPRESA DE PRUEBA"
      },
      "Receptor": {
        "RUTRecep": "76399744-8",
        "RznSocRecep": "CLIENTE DE PRUEBA"
      },
      "Totales": {
        "MntNeto": "10000",
        "IVA": "1900",
        "MntTotal": "11900"
      }
    },
    "Detalle": [
      {
        "NroLinDet": "1",
        "NmbItem": "Producto de prueba",
        "QtyItem": "1",
        "PrcItem": "11900",
        "MontoItem": "11900"
      }
    ]
  }
}'

Boletas de Honorarios

POST /api/librohonorarios/emision Emitir BHE
Requiere token Bearer
JSON
{
  "sistema": {
    "nombre": "webbasico",
    "rut": "29282726-1",
    "usuario": "demo",
    "clave": "demo123"
  },
  "info": {
    "emision": "03-07-2025",
    "agente_retenedor": "1"
  },
  "cliente": {
    "rut": "20297815-0",
    "razon": "José Robles",
    "email": "jose.robles@prueba.cl"
  },
  "totales": {
    "honorarios": "100000",
    "impuesto": "14500",
    "total": "85500"
  }
}

Aceptación/Rechazo

POST /api/librodecompras/aceptacion Aceptar o rechazar documento
Tipo Código Descripción
Aceptación ACD Aceptar documento
Rechazo Parcial RFP Rechazo de mercadería parcial
Rechazo Total RFT Rechazo de mercadería total
{
  "rut": "77143385-5",
  "folio": "9560",
  "tipodoc": "33",
  "acepta_rechaza": "ACD"
}

Anulación Guías

DELETE /api/librodespachos/{folio} Anular guía de despacho
DELETE .../api/librodespachos/14
Authorization: Bearer {token}
{
  "code": 200,
  "mensaje": "Registro anulado con éxito"
}

Diccionario RCV

GET /api/rcv Campos de respuesta
Campo Tipo Descripción
detTipoDocBigIntTipo de documento
detRutDocBigIntRUT sin DV
detRznSocVarcharRazón social
detNroDocBigIntNúmero de documento
detFchDocVarcharFecha del documento
detMntNetoBigIntMonto neto
detMntExeBigIntMonto exento
detMntIVABigIntMonto IVA
detMntTotalBigIntMonto total

Diccionario Ctas Ctes

GET /api/conciliacion/cuentas Objeto de pago
Campo Tipo Descripción
idstringID de sesión
amountintegerMonto del pago
currencystringCLP o MXN
statusstringEstado del pago
customer_emailstringEmail del cliente

Preguntas Frecuentes

FAQ /faq/emision ¿Cómo emitir un documento?

Debes enviar un POST al endpoint de emisión con la estructura JSON completa incluyendo Sistema y Documento. Las credenciales van en Base64.

FAQ /faq/bhe ¿Cómo obtener el token para BHE?

Primero debes hacer login en /api/login con tus credenciales. El token recibido debe enviarse en el header Authorization: Bearer {token}.

FAQ /faq/referencias ¿Cómo referenciar una orden de compra?

Usa TpoDocRef: "801" para orden de compra y CodRef: "0". Ejemplo:

"Referencia": [{
  "NroLinRef": "1",
  "TpoDocRef": "801",
  "FolioRef": "4505421654",
  "FchRef": "2024-01-15",
  "CodRef": "0",
  "RazonRef": "ORDEN DE COMPRA"
}]