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.
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/companylo lista encapabilities.support_documents.numbering, con elnextde 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.
POST /v1/support_documents
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"
]
}'{
"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).
POST /v1/support_document_adjustments
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"
}
]
}'Lo que hay que saber
- Las respuestas son las de toda la API:
201,422 dian_rejectedcondocument,422 validation_errorantes de numerar,402sin saldo, y202/503con la DIAN sin contestar.Idempotency-Keyes obligatoria. - El
external_ides ú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
dataes un resumen: nunca el vendedor ni las líneas. Tipos:support_document.*ysupport_document_adjustment.*(eventos).
Referencia: Documento soporte y su nota de ajuste.