DiFACTDocumentación API
Ir al panel

Recurso

Facturas electrónicas

Creá, consultá, anulá y descargá facturas electrónicas con SIFEN. Todos los endpoints requieren autenticación vía API Key.

Endpoints

POST/v1/facturasCrear factura

Body — campos principales

tipo_documentoreqinteger Tipo de documento SIFEN. 1 = Factura electrónica.
receptorreqobject Datos del receptor. Ver objeto Receptor abajo.
itemsreqarray Lista de ítems de la factura. Mínimo 1.
condicion_pagoopcinteger 1 = Contado (por defecto), 2 = Crédito.
observacionopcstring Texto libre, máx. 500 caracteres.
JSONEjemplo de petición
{
  "tipo_documento": 1,
  "receptor": {
    "ruc": "80012345-6",
    "razon_social": "Empresa Ejemplo SRL",
    "email": "pagos@empresa.com"
  },
  "items": [
    {
      "descripcion": "Servicio de software mensual",
      "cantidad": 1,
      "precio_unitario": 500000,
      "iva": 10
    }
  ],
  "condicion_pago": 1
}
GET/v1/facturasListar facturas

Query params

pageopcinteger Número de página. Por defecto 1.
per_pageopcinteger Resultados por página (máx. 100). Por defecto 20.
statusopcstring Filtrar por estado: approved, pending, rejected, cancelled.
desdeopcdate Fecha de inicio (ISO 8601). Ej.: 2024-07-01.
GET/v1/facturas/:idObtener factura

Retorna el objeto completo de la factura incluyendo su estado SIFEN actual. Si el documento aún está en procesamiento, el campo sifen_status refleja el último evento recibido.

JSONRespuesta
{
  "ok": true,
  "data": {
    "id": "fact_01J3KZZXXYYY",
    "cdc": "01800695631001001000101001000007942024060111111111",
    "numero": "001-001-0000001",
    "status": "approved",
    "sifen_status": "aprobado",
    "total": 550000,
    "total_iva": 50000,
    "created_at": "2024-07-01T10:30:00",
    "kude_url": "https://api.difact.co/v1/facturas/fact_01J3KZZXXYYY/kude",
    "xml_url": "https://api.difact.co/v1/facturas/fact_01J3KZZXXYYY/xml"
  }
}
POST/v1/facturas/:id/anularAnular factura

La anulación solo es posible mientras el receptor no haya aceptado el documento en SIFEN. Una vez aceptado, debés emitir una nota de crédito.

Body

motivoreqstring Motivo de anulación. Máx. 250 caracteres.
GET/v1/facturas/:id/kudeDescargar KuDE (PDF)

Retorna el PDF del KuDE directamente (Content-Type: application/pdf). Solo disponible para facturas en estado approved.

GET/v1/facturas/:id/xmlDescargar XML firmado

Retorna el XML del documento electrónico firmado digitalmente (Content-Type: application/xml).

Notas de crédito

Una nota de crédito revierte total o parcialmente una factura ya aprobada. Referenciá la factura original con factura_origen_id.

POST/v1/notas-creditoCrear nota de crédito
JSON
{
  "factura_origen_id": "fact_01J3KZZXXYYY",
  "motivo": "Devolución parcial de mercadería",
  "items": [
    {
      "descripcion": "Servicio de software mensual",
      "cantidad": 1,
      "precio_unitario": 500000,
      "iva": 10
    }
  ]
}
Sofía, asistente de DiFACT
Chat en línea¿Dudas con la API?