Saltar al contenido
Menú
Saltar la navegación de la documentación

Español API 2026-10-22

Documentación · Documentos · API v1 · versión 2026-10-22

Documento soporte

Documento soporte (05) en adquisiciones a no obligados a facturar y su nota de ajuste (95) por la API de Trevol.

Ver como Markdown

Genera el documento soporte (05) de una compra a quien no está obligado a facturar —una persona natural, un campesino, un proveedor del exterior— y su nota de ajuste (95). Trevol valida, numera con tu rango, firma y envía a la DIAN.

Antes de emitir

La empresa necesita, en la app de Trevol:

  • la habilitación ante la DIAN y su software asociado al modo de documento soporte (si falta: 422 company_not_enabled, reason: "missing_software");
  • un rango de documento soporte registrado, vigente y con números libres (si no: 422 numbering_unavailable, reason: "no_resolution"). GET /v1/company lo lista en capabilities.support_documents.numbering, con el next de cada uno;
  • el certificado de firma.

La nota de ajuste no usa rango: tiene su consecutivo propio. Todo esto se comprueba antes de numerar: un pedido que no puede salir no gasta número.

Emitir un documento soporte

POST /v1/support_documents

cURL
curl -X POST "https://api.trevol.si/v1/support_documents" \
  -H "Authorization: Bearer $TREVOL_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "external_id": "OC-991",
  "seller": {
    "resident": true,
    "person_type": "natural",
    "document_type": "31",
    "document_number": "1020304050",
    "name": "PEREZ GOMEZ ANA MARIA",
    "address": "Vereda El Silencio, finca La Esperanza",
    "municipality_code": "25053",
    "postal_code": "252007",
    "tax_responsibilities": [
      "R-99-PN"
    ]
  },
  "items": [
    {
      "description": "Leche cruda",
      "unit": "LTR",
      "quantity": "120",
      "unit_price": "1800"
    }
  ],
  "payment": {
    "form": "cash",
    "methods": [
      {
        "code": "10"
      }
    ]
  },
  "notes": [
    "Compra de la semana 42 de octubre"
  ]
}'

Probar en el Playground

Respuesta201 Created
{
  "id": "sd_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b",
  "object": "support_document",
  "environment": "test",
  "status": "accepted",
  "number": "DS994001",
  "prefix": "DS",
  "external_id": "OC-991",
  "origin": "api",
  "cuds": "abababababababababababababababababababababababababababababababababababababababababababababababab",
  "qr": "https://catalogo-vpfe-hab.dian.gov.co/document/searchqr?documentkey=abababababababababababababababababababababababababababababababababababababababababababababababab",
  "issued_at": "2026-10-23T09:15:02-05:00",
  "seller": {
    "resident": true,
    "person_type": "natural",
    "document_type": "31",
    "document_number": "1020304050",
    "name": "PEREZ GOMEZ ANA MARIA",
    "address": "Vereda El Silencio, finca La Esperanza",
    "municipality_code": "25053",
    "postal_code": "252007",
    "tax_responsibilities": [
      "R-99-PN"
    ]
  },
  "items": [
    {
      "description": "Leche cruda",
      "unit": "LTR",
      "quantity": "120",
      "unit_price": "1800"
    }
  ],
  "payment": {
    "form": "cash",
    "methods": [
      {
        "code": "10"
      }
    ]
  },
  "transmission": "per_operation",
  "adjustment_note": null,
  "totals": {
    "subtotal": "216000.00",
    "discounts": "0.00",
    "line_extension": "216000.00",
    "tax_exclusive": "0.00",
    "taxes": [],
    "allowances": "0.00",
    "charges": "0.00",
    "rounding": "0.00",
    "total": "216000.00",
    "withholdings": [],
    "prepayments": "0.00",
    "net_payable": null,
    "items": [
      {
        "gross": "216000.00",
        "discount": "0.00",
        "line_extension": "216000.00"
      }
    ]
  },
  "dian": {
    "status_code": "00",
    "message": "Procesado Correctamente.",
    "rules": []
  },
  "delivery": {
    "status": null,
    "pdf": false,
    "zip": false,
    "xml": true,
    "email": null
  },
  "created_at": "2026-10-23T09:15:02-05:00",
  "updated_at": "2026-10-23T09:15:03-05:00"
}

Se genera, no se expide: no hay PDF, ZIP ni correo. Se descargan …/xml y …/dian_response (Archivos).

La nota de ajuste

POST /v1/support_document_adjustments

cURL
curl -X POST "https://api.trevol.si/v1/support_document_adjustments" \
  -H "Authorization: Bearer $TREVOL_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "external_id": "OC-991-ANULA",
  "concept": "2",
  "description": "Anulación: la compra de leche se registró dos veces en el ERP",
  "support_document": {
    "id": "sd_3f0c1a2b3f0c1a2b3f0c1a2b3f0c1a2b"
  },
  "items": [
    {
      "description": "Leche cruda",
      "unit": "LTR",
      "quantity": "120",
      "unit_price": "1800"
    }
  ]
}'

Probar en el Playground

Lo que hay que saber

  • Las respuestas son las de toda la API: 201, 422 dian_rejected con document, 422 validation_error antes de numerar, 402 sin saldo, y 202/503 con la DIAN sin contestar. Idempotency-Key es obligatoria.
  • El external_id es único entre facturas, notas, documentos soporte y equivalentes (y sus notas).
  • Cuenta como facturación en el cobro: lo que se cobra al validarse un documento de producción.
  • Los avisos (webhooks) salen por cualquier camino (la API o la app); el data es un resumen: nunca el vendedor ni las líneas. Tipos: support_document.* y support_document_adjustment.* (eventos).

Referencia: Documento soporte y su nota de ajuste.