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

Español API 2026-10-22

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

Objetos

Todos los objetos de la API de Trevol con sus campos, tipos y cuáles son obligatorios.

Ver como Markdown

Cada objeto de la API, con sus campos. Los campos obligatorios llevan «sí». Los tipos enlazan a su objeto.

Acquirer

El adquiriente como lo tiene la DIAN (y su correo, si lo conoce).

  • objectacquirer
  • document_typetexto
  • document_numbertexto
  • foundbooleano
  • nametexto (puede ser null)
  • emailtexto (puede ser null)

AirCollection

AirExtension

AllowanceCharge

  • typediscount | chargeobligatorio
  • codetexto
    Código (texto).
  • reasontexto
  • percentdecimal
    Número o texto decimal con punto («150000.50»).
  • amountdecimal
    Número o texto decimal con punto («150000.50»).
  • basedecimal
    Número o texto decimal con punto («150000.50»).

AlternativeCurrency

  • codetextoobligatorio
    Una tercera moneda (ni la de la factura ni COP).
  • exchange_ratedecimalobligatorio
    Unidades de esa moneda por 1 unidad de la moneda de la factura.
  • rate_datefecha (AAAA-MM-DD)obligatorio

Balance

El saldo prepago de Trevol. Es de la cuenta, no de la empresa: todas las empresas de la cuenta lo comparten (shared: true) y cualquier llave de cualquiera de ellas, de lectura o de escritura, test o live, ve el mismo. Solo lo que se emite en producción (llaves live) lo consume; la habilitación (test) no cobra. available es lo que se puede gastar (en pesos); held, lo apartado por documentos que la DIAN todavía valida; overdraft, cuánto puede bajar available de cero al apartar un documento; low_threshold, el umbral del aviso de saldo bajo (el 20 % de la última recarga; null sin recargas). level: empty con available ≤ 0, low por debajo de low_threshold, si no ok. Con available por debajo del precio de un documento, emitir en producción responde 402 insufficient_balance. El evento balance.low avisa por webhook.

  • objectbalanceobligatorio
  • currencyCOPobligatorio
  • availableenteroobligatorio
    Lo que se puede gastar, en pesos (puede ser negativo).
  • heldenteroobligatorio
    Apartado por documentos que la DIAN todavía valida.
  • overdraftenteroobligatorio
    Cuánto puede bajar available de cero al apartar un documento.
  • low_thresholdentero (puede ser null)obligatorio
    El umbral del aviso de saldo bajo; null sin recargas.
  • levelok | low | emptyobligatorio
  • updated_atfecha y hora (puede ser null)obligatorio
    Cuándo cambió el saldo por última vez; null si nunca tuvo.
  • sharedtrueobligatorio
    Siempre true: el saldo es de la cuenta y lo comparten todas sus empresas.

BalanceEventData

balance.low (solo producción): el saldo de la cuenta quedó bajo o se agotó. Lleva solo el nivel: el saldo es de la cuenta y lo comparten todas sus empresas.

  • objectbalance
  • levellow | depleted

BalanceTransaction

Un movimiento del saldo de la cuenta (un documento es una sola fila).

  • idtextoobligatorio
    Úsalo en starting_after para pedir la página siguiente.
  • objectbalance_transactionobligatorio
  • typedocument | top_up | bonus | adjustment | top_up_reversal | license_fee | expiration | otherobligatorio
  • statuscharged | pending | released | completedobligatorio
    De un documento: pending, charged o released. Lo demás: completed.
  • amountenteroobligatorio
    Lo que hizo con el disponible, en pesos y con signo (released: 0).
  • available_afterentero (puede ser null)obligatorio
    El disponible justo después.
  • descriptiontextoobligatorio
    En español, como en la app.
  • documentobjeto (puede ser null)obligatorio
    Solo en type: document.
  • companyobjeto (puede ser null)obligatorio
    La empresa de la cuenta que emitió el documento.
  • referencetexto (puede ser null)
    La referencia TRV-REC-… de una recarga o de su reverso.
  • created_atfecha y horaobligatorio

Carrier

  • document_typetexto
    Tipo de documento del transportador (tabla 13.2.1).
  • document_numbertexto
    Sin DV ni puntos; el DV lo calcula Trevol.
  • nametexto
  • tax_responsibilitieslista de texto
    Tabla 13.2.6.1 (O-13, O-15, O-23, O-47, R-99-PN). Máximo 20.
  • emailtexto
  • phonetexto

CertificateEventData

certificate.expiring (los dos ambientes): el certificado de firma vence en 30, 15, 7 y 1 día.

  • objectcertificate
  • expires_onfecha (AAAA-MM-DD)
  • days_leftentero

CinemaExtension

  • addresstextoobligatorio
  • cinema_roomtexto
  • screeningslista de CinemaScreeningobligatorio
    Máximo 50.

CinemaScreening

  • roomtextoobligatorio
  • seatstextoobligatorio
  • screeningtextoobligatorio
  • locationtexto
  • datefecha (AAAA-MM-DD)
  • timetexto

Company

La empresa de la llave, su ambiente y sus numeraciones activas.

  • objectcompany
  • idtexto
  • nittexto (puede ser null)
  • check_digitentero (puede ser null)
  • nametexto (puede ser null)
    La razón social.
  • trade_nametexto (puede ser null)
  • statusenabled | not_enabled
  • environmenttest | live | null (puede ser null)
  • numberinglista de objeto
    Las numeraciones (resoluciones) activas del ambiente de la llave.
  • keyobjeto
    La llave con que se llamó.
  • capabilitiesobjeto libre
    Lo que ESTA llave puede emitir ahora (documento soporte, equivalente, nómina, eventos RADIAN). Informativo: si una lectura falla, esa clave no aparece.

Consumption

  • unittexto
    Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
  • quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • subtotaldecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • discountslista de ConsumptionAdjustment
    Máximo 50.
  • chargeslista de ConsumptionAdjustment
    Máximo 50.
  • meterMeter

ConsumptionAdjustment

  • reasontextoobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

Contingency

Currency

  • codetextoobligatorio
    Moneda (tabla 13.3.3, ISO 4217), distinta de COP.
  • exchange_ratedecimalobligatorio
    TRM o tasa pactada: pesos por 1 unidad de la moneda (hasta 6 decimales).
  • rate_datefecha (AAAA-MM-DD)obligatorio
    El día de la tasa; no puede ser posterior a la factura.
  • alternativeSupportCurrency

Customer

  • final_consumerbooleano
  • document_typetexto
    Tipo de documento (tabla 13.2.1 de la DIAN): 13 CC, 31 NIT, 22 CE, 41 PA…
  • document_numbertexto
    Sin DV ni puntos; el DV lo calcula Trevol.
  • check_digitentero
    Opcional: si viene, tiene que ser el DV del NIT.
  • nametexto
  • person_typelegal | natural
    Por defecto se deduce del NIT.
  • emailtexto
  • phonetexto
  • addresstexto
  • citytexto
  • municipality_codetexto
    Código DANE del municipio (5 dígitos).
  • department_codetexto
  • tax_responsibilitieslista de texto
    Tabla 13.2.6.1 (O-13, O-15, O-23, O-47, R-99-PN). Máximo 20.
  • tax_schemetexto
    TaxScheme del adquiriente: 01, 04, ZA o ZZ (por defecto ZZ).
  • countrytexto
    País del cliente (tabla 13.4.1, ISO 3166-1 alfa-2). Distinto de "CO": cliente en el exterior, sin municipality_code; con city, region y postal_code. Solo en facturas.
  • regiontexto
    Departamento, estado o provincia del cliente en el exterior. Solo en facturas.
  • region_codetexto
    Código de la región del cliente en el exterior (máximo 6). Solo en facturas.
  • postal_codetexto
    Código postal del cliente en el exterior (máximo 10). Solo en facturas.

DeletedObject

  • idtextoobligatorio
  • objecttextoobligatorio
  • deletedtrueobligatorio

Delivery

Con la versión 2026-10-22, el PDF, el ZIP y el correo se hacen en segundo plano después del 201: casi siempre llegan pending y se completan en segundos (GET o el evento ….delivered). Si pides …/pdf o …/zip antes, se generan al momento. Con la 2026-10-21 se hacen antes del 201, como en la fase 1.

  • statuspending | completed | null (puede ser null)
    null si el documento no está accepted; completed con PDF, ZIP y un correo en estado final (sent, skipped, failed, bounced o complained).
  • pdfbooleano
  • zipbooleano
  • xmlbooleano
  • emailobjeto (puede ser null)

DeliveryTerms

  • incotermtexto
  • conditionstexto

Document

  • idtexto
    inv_… | cn_… | dn_…
  • objectinvoice | credit_note | debit_note
  • environmenttest | live
  • statuspending | sending | accepted | rejected | error | contingency | processing
    processing solo en la versión 2026-10-22: la DIAN no confirmó y Trevol sigue resolviendo el documento (el resultado llega por GET y por webhook; no crees otro documento para la misma venta). En 2026-10-21 ese documento se ve como error.
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app | contapyme
  • cufetexto (puede ser null)
  • cudetexto (puede ser null)
  • qrtexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • customerCustomer
  • itemslista de Item
  • paymentPayment
  • document_typetexto
    Tipo de factura (tabla 13.1.3): 01 venta, 02 exportación.
  • operation_typetexto
    Tipo de operación (tabla 13.1.5.1).
  • currencyCurrency
  • cop_totalsbooleano
  • delivery_termsDeliveryTerms
  • shipmentShipment
  • due_diligencetexto
    Debida diligencia (tabla 18.3).
  • interoperabilityInteroperability
  • totalsobjeto (puede ser null)
    Montos como texto decimal con 2 decimales, siempre en pesos. Con moneda extranjera, currency trae el equivalente.
  • dianobjeto
  • deliveryDelivery
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)

DocumentEventData

Resumen de un documento. Pide el documento completo con GET /v1/{invoices|credit_notes|debit_notes}/{id}.

  • objectinvoice | credit_note | debit_noteobligatorio
  • idtextoobligatorio
    inv_… | cn_… | dn_… (el mismo de la respuesta de la API).
  • statuspending | sending | accepted | rejected | error | contingencyobligatorio
    Nunca processing: ese estado solo existe en las respuestas de la API.
  • environmenttest | liveobligatorio
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
    Tu identificador, solo en los documentos creados por la API.
  • originapi | app | contapyme
  • cufetexto (puede ser null)
    En las facturas.
  • cudetexto (puede ser null)
    En las notas crédito y débito.
  • issued_atfecha y hora (puede ser null)
  • totaltexto (puede ser null)
    Texto decimal con dos decimales.
  • invoiceobjeto (puede ser null)
    En las notas: la factura de Trevol que corrigen.
  • dianobjetoobligatorio
  • deliveryobjetoobligatorio
  • errorobjeto
    Solo en ….error. El texto es fijo por código: nunca el mensaje de la DIAN.

DocumentReference

  • idtexto
  • datefecha (AAAA-MM-DD)

EquivalentAdjustmentItem

  • codetexto
    Código (texto).
  • descriptiontextoobligatorio
  • unittexto
    Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
  • quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • unit_pricedecimalobligatorio
    Precio unitario SIN impuestos.
  • taxeslista de ItemTax
    Impuestos de la línea: {code, rate} porcentual, {code: "01", excluded: true} o nominal {code, unit_amount, unit?, quantity?}. Máximo 12.
  • discountslista de ItemAllowance
    Máximo 10.
  • chargeslista de ItemAllowance
    Máximo 10.
  • free_of_chargeFreeOfCharge
  • standard_codeStandardCode
  • brandtexto
  • modeltexto
  • incomeown | collected | third_party
    Mandatos (tabla 16.16): "own" (por defecto), "collected" o "third_party".
  • mandatorItemMandator

EquivalentDocument

Un documento equivalente electrónico (tiquete POS 20 y los demás tipos de la tabla 16.3). Se expide como la factura: archivos pdf, xml, zip y dian_response.

  • idtexto
    pos_… (todos los tipos de documento equivalente)
  • objectequivalent_document
  • environmenttest | live
  • statuspending | sending | accepted | rejected | error | contingency | processing | validating
    processing solo en la versión 2026-10-22: la DIAN no confirmó y Trevol sigue resolviendo el documento (el resultado llega por GET y por webhook; no crees otro documento para la misma venta). En 2026-10-21 ese documento se ve como error. validating: el set de pruebas de la DIAN (habilitación) recibió el documento y todavía lo valida; no es un error, responde 202 en las dos versiones y Trevol solo consulta (nunca reenvía).
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app | contapyme
  • cudetexto (puede ser null)
    El código único del documento (CUDE, 96 hex).
  • qrtexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • customerCustomer
  • itemslista de EquivalentItem
  • paymentPayment
  • document_type20 | 25 | 27 | 30 | 35 | 40 | 45 | 50 | 55 | 60
    Tipo de documento equivalente (tabla 16.3).
  • operation_typetexto
    Tipo de operación (CustomizationID, tabla 16.4.1).
  • totalsobjeto (puede ser null)
    Montos como texto decimal con 2 decimales, siempre en pesos. Con moneda extranjera, currency trae el equivalente.
  • dianobjeto
  • deliveryDelivery
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)
  • noteslista de texto
  • periodPeriod
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
  • prepaymentslista de Prepayment
  • roundingbooleano o decimal
  • withholdingslista de Withholding
  • posPos
  • extensionExtension
  • origin_noteOriginNote
  • contingencyobjeto (puede ser null)

EquivalentDocumentAdjustment

Una nota de ajuste de un documento equivalente (crédito 94 o débito 93). Se expide como la factura: archivos pdf, xml, zip y dian_response.

  • idtexto
    posa_…
  • objectequivalent_document_adjustment
  • environmenttest | live
  • statuspending | sending | accepted | rejected | error | contingency | processing | validating
    processing solo en la versión 2026-10-22: la DIAN no confirmó y Trevol sigue resolviendo el documento (el resultado llega por GET y por webhook; no crees otro documento para la misma venta). En 2026-10-21 ese documento se ve como error. validating: el set de pruebas de la DIAN (habilitación) recibió el documento y todavía lo valida; no es un error, responde 202 en las dos versiones y Trevol solo consulta (nunca reenvía).
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app | contapyme
  • cudetexto (puede ser null)
    El código único del documento (CUDE, 96 hex).
  • qrtexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • customerCustomer
  • paymentPayment
  • totalsobjeto (puede ser null)
    Montos como texto decimal con 2 decimales, siempre en pesos. Con moneda extranjera, currency trae el equivalente.
  • dianobjeto
  • deliveryDelivery
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)
  • noteslista de texto
  • periodPeriod
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
  • prepaymentslista de Prepayment
  • roundingbooleano o decimal
  • note_typecredit | debit
  • concepttexto
    Concepto de la nota (tabla 16.6): 1 a 5.
  • descriptiontexto
  • equivalent_documentEquivalentDocumentReference

EquivalentDocumentAdjustmentInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente.
  • customerCustomer
    Opcional con equivalent_document.id: se toma el adquirente del documento (si viene, tiene que ser el mismo).
  • itemslista de EquivalentAdjustmentItemobligatorio
    Las líneas (1 a 500). Máximo 500.
  • paymentPayment
  • noteslista de texto
    Máximo 10.
  • periodPeriod
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
    Descuentos y recargos globales (no tocan las bases). Máximo 20.
  • prepaymentslista de Prepayment
    Anticipos (informativos: no restan del total). Máximo 20.
  • roundingbooleano o decimal
    true = redondeo al peso; o un valor entre -2.00 y 2.00.
  • note_typecredit | debitobligatorio
    "credit" (nota de ajuste crédito, 94) o "debit" (débito, 93).
  • concepttextoobligatorio
    Concepto de la nota (tabla 16.6): "1" devolución parcial, "2" anulación del documento (lleva exactamente sus valores), "3" rebaja o descuento, "4" ajuste de precio, "5" otros.
  • descriptiontexto
    Opcional (20 a 5000 caracteres). Sin ella, Trevol pone el texto de la tabla (el EXACTO en la nota débito: NADBF04).
  • equivalent_documentEquivalentDocumentReferenceobligatorio
    El documento que ajusta: {"id": "pos_…"} (de Trevol: validado, de la empresa y el ambiente de la llave) o {number, cude, issue_date, document_type, total?} si es de otra plataforma (total hace falta para anularlo).

EquivalentDocumentEventData

Resumen de un documento equivalente electrónico o de su nota de ajuste (nunca datos del comprador ni líneas). Pide el documento completo con GET /v1/{equivalent_documents|equivalent_document_adjustments}/{id}.

  • statuspending | sending | accepted | rejected | error | contingencyobligatorio
    Nunca processing: ese estado solo existe en las respuestas de la API.
  • environmenttest | liveobligatorio
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
    Tu identificador, solo en los documentos creados por la API.
  • originapi | app | contapyme
  • issued_atfecha y hora (puede ser null)
  • totaltexto (puede ser null)
    Texto decimal con dos decimales.
  • dianobjetoobligatorio
  • errorobjeto
    Solo en ….error. El texto es fijo por código: nunca el mensaje de la DIAN.
  • objectequivalent_document | equivalent_document_adjustmentobligatorio
  • idtextoobligatorio
    pos_… | posa_…
  • cudetexto (puede ser null)
    Código único del documento.
  • document_typetexto
    El tipo de documento equivalente (20 POS, 25, 27, 30…). Solo en equivalent_document.
  • equivalent_documentobjeto
    En la nota de ajuste: el documento equivalente que ajusta.
  • deliveryobjetoobligatorio

EquivalentDocumentInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente.
  • customerCustomer
    El adquirente. Para consumidor final: {"final_consumer": true}. La relación de juegos (30) no lleva customer: el adquirente es la DIAN.
  • itemslista de EquivalentItemobligatorio
    Las líneas (1 a 500). Retenciones solo como autorretenciones del emisor (self_withholding: true). Máximo 500.
  • paymentPayment
  • noteslista de texto
    Máximo 10.
  • periodPeriod
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
    Descuentos y recargos globales (no tocan las bases). Máximo 20.
  • prepaymentslista de Prepayment
    Anticipos (informativos: no restan del total). Máximo 20.
  • withholdingslista de Withholding
    Retenciones (informativas): 05 ReteIVA, 06 ReteRenta, 07 ReteICA. Máximo 10.
  • roundingbooleano o decimal
    true = redondeo al peso; o un valor entre -2.00 y 2.00.
  • document_typetexto
    Tipo de documento equivalente (tabla 16.3): "20" tiquete POS (por defecto), "25" boleta de cine, "27" espectáculos públicos, "30" juegos localizados y no localizados (se acepta "32"), "35" transporte de pasajeros, "40" peajes, "45" extracto, "50" tiquete aéreo, "55" bolsa de valores o "60" servicios públicos.
  • operation_typetexto
    Tipo de operación (CustomizationID, tabla 16.4.1) del tipo de documento. Por defecto, el primero del tipo ("10" en el POS).
  • posPos
    Obligatorio en el tiquete POS (20) y prohibido en los demás: la caja que expide el tiquete y, opcional, los beneficios del comprador.
  • extensionExtension
    La información propia del tipo, con UNA clave, la de su document_type: cinema (25), show (27), games (30), transport (35), air (50), stock_exchange (55) o public_services (60). Prohibida en el POS (20), peajes (40) y extracto (45).
  • prefixtexto
    Solo en los tipos sin resolución (todos menos el POS): el prefijo del consecutivo propio (1 a 4 letras o dígitos). Por defecto, el del tipo (DEC, DEEP, DEJL, DETT, DEP, EXT, DETA, DEBV, SPD).
  • origin_noteOriginNote
    La nota de ajuste que dio origen a este documento (opcional).
  • contingencyContingency
    Solo la contingencia 07 (el emisor transcribe un documento físico): physical_document con number, date y type. La 08 (la DIAN no contestó) no se pide: la decide Trevol y el documento responde 202 con status: contingency.
  • numberingNumbering
    Solo en el POS: el prefijo de la resolución POS que numera (una empresa con varias cajas o establecimientos tiene varias). Sin él, la más nueva vigente. Si no existe, numbering_unavailable (no_resolution).

EquivalentDocumentReference

Uno de: objeto, objeto.

EquivalentItem

  • codetexto
    Código (texto).
  • descriptiontextoobligatorio
  • unittexto
    Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
  • quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • unit_pricedecimalobligatorio
    Precio unitario SIN impuestos.
  • taxeslista de ItemTax
    Impuestos de la línea: {code, rate} porcentual, {code: "01", excluded: true} o nominal {code, unit_amount, unit?, quantity?}. Máximo 12.
  • discountslista de ItemAllowance
    Máximo 10.
  • chargeslista de ItemAllowance
    Máximo 10.
  • withholdingslista de ItemWithholding
    Retenciones (informativas): 05 ReteIVA, 06 ReteRenta, 07 ReteICA. Máximo 10.
  • free_of_chargeFreeOfCharge
  • standard_codeStandardCode
  • brandtexto
  • modeltexto
  • incomeown | collected | third_party
    Mandatos (tabla 16.16): "own" (por defecto), "collected" (ingreso recaudado para terceros) o "third_party" (facturado para terceros); los dos últimos con mandator. En 272 y 274 la línea del mandante va con "collected".
  • mandatorItemMandator
    El mandante de un ingreso para terceros (con NIT en 272 y 274).

Event

Exactamente lo que se manda al endpoint (los bytes firmados) y lo que devuelve GET /v1/events. El mismo id (también en la cabecera webhook-id) llega en cada reintento y en un reenvío manual: úsalo para no procesar dos veces el mismo evento.

  • idtextoobligatorio
  • objecteventobligatorio
  • typeinvoice.accepted | invoice.rejected | invoice.error | invoice.delivered | invoice.email_bounced | invoice.email_failed | credit_note.accepted | credit_note.rejected | credit_note.error | credit_note.delivered | credit_note.email_bounced | credit_note.email_failed | debit_note.accepted | debit_note.rejected | debit_note.error | debit_note.delivered | debit_note.email_bounced | debit_note.email_failed | balance.low | numbering.low | numbering.expiring | certificate.expiring | support_document.accepted | support_document.rejected | support_document.error | support_document_adjustment.accepted | support_document_adjustment.rejected | support_document_adjustment.error | equivalent_document.accepted | equivalent_document.rejected | equivalent_document.error | equivalent_document.delivered | equivalent_document.email_bounced | equivalent_document.email_failed | equivalent_document_adjustment.accepted | equivalent_document_adjustment.rejected | equivalent_document_adjustment.error | equivalent_document_adjustment.delivered | equivalent_document_adjustment.email_bounced | equivalent_document_adjustment.email_failed | payroll.accepted | payroll.rejected | payroll.error | payroll_adjustment.accepted | payroll_adjustment.rejected | payroll_adjustment.error | radian_event.accepted | radian_event.rejected | radian_event.error | webhook.testobligatorio
  • timestampfecha y horaobligatorio
    UTC.
  • environmenttest | liveobligatorio
  • api_versiontextoobligatorio
    La versión vigente más nueva de la API; el resumen del documento no cambia con la versión de la llave.

EventClaim

  • codetexto
    Código (texto).
  • notetexto

Extension

La información propia del tipo de documento equivalente: UNA clave, la de su document_type (cinema 25, show 27, games 30, transport 35, air 50, stock_exchange 55, public_services 60).

ForeignAddress

  • countrytexto
    País (tabla 13.4.1). Sin country: Colombia.
  • citytexto
    Obligatoria fuera de Colombia.
  • regiontexto
  • region_codetexto
  • postal_codetexto
  • municipality_codetexto
    Solo en Colombia (DANE, 5 dígitos).
  • streettexto
    Calle y número.

FreeOfCharge

  • reference_pricedecimal
    Número o texto decimal con punto («150000.50»).
  • price_typetexto

Game

  • typetextoobligatorio
  • totalenteroobligatorio

GameCredit

  • serialtextoobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

GamesExtension

GamesVenue

  • addresstextoobligatorio
  • depositdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

Interoperability

  • grouptextoobligatorio
  • collectionslista de AirCollectionobligatorio
    Máximo 10.

InteroperabilityCollection

InteroperabilityData

  • nametextoobligatorio
  • valuetexto

InvoiceInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente.
  • customerCustomer
  • itemslista de Itemobligatorio
    Las líneas (1 a 500). Máximo 500.
  • paymentPayment
  • noteslista de texto
    Máximo 10.
  • periodPeriod
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
    Descuentos y recargos globales (no tocan las bases). Máximo 20.
  • prepaymentslista de Prepayment
    Anticipos (informativos: no restan del total). Máximo 20.
  • withholdingslista de Withholding
    Retenciones (informativas): 05 ReteIVA, 06 ReteRenta, 07 ReteICA. Máximo 10.
  • roundingbooleano o decimal
    true = redondeo al peso; o un valor entre -2.00 y 2.00.
  • document_typetexto
    Tipo de factura (tabla 13.1.3): "01" venta (por defecto) o "02" exportación. La contingencia (03/04) todavía no está disponible en la API.
  • operation_typetexto
    Tipo de operación (tabla 13.1.5.1): "10" estándar (por defecto), "09" AIU, "11" mandatos, "12" transporte de carga, "14" notarios, "15" compra o "16" venta de divisas, o "SS-CUFE" (sector salud, con interoperability).
  • currencyCurrency
    Moneda extranjera: los valores del pedido van en ESA moneda; la factura y el CUFE van en pesos (× la tasa). Sin currency, la factura es en pesos.
  • cop_totalsbooleano
    Con currency: informa la moneda y la tasa en la interoperabilidad («Exportación» / «Factura de Venta»).
  • delivery_termsDeliveryTerms
    Condiciones de entrega de la exportación (tabla 13.3.7: INCOTERM).
  • shipmentShipment
    El envío físico de la mercancía (fecha, dirección y transportador). No se llama delivery: esa clave de la respuesta es el estado de los archivos y del correo.
  • due_diligencetexto
    Debida diligencia (tabla 18.3: "01"–"04"). Obligatoria en la compra y venta de divisas (15/16) y prohibida en los demás tipos de operación.
  • interoperabilityInteroperability
    Grupo de interoperabilidad (Suplemento H). Obligatorio con operation_type "SS-CUFE".

InvoiceReference

Uno de: objeto, objeto.

Item

  • codetexto
    Código (texto).
  • descriptiontextoobligatorio
  • unittexto
    Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
  • quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • unit_pricedecimalobligatorio
    Precio unitario SIN impuestos.
  • taxeslista de ItemTax
    Impuestos de la línea: {code, rate} porcentual, {code: "01", excluded: true} o nominal {code, unit_amount, unit?, quantity?}. Máximo 12.
  • discountslista de ItemAllowance
    Máximo 10.
  • chargeslista de ItemAllowance
    Máximo 10.
  • withholdingslista de ItemWithholding
    Retenciones (informativas): 05 ReteIVA, 06 ReteRenta, 07 ReteICA. Máximo 10.
  • free_of_chargeFreeOfCharge
  • standard_codeStandardCode
  • brandtexto
  • modeltexto
  • aiutexto
    AIU (solo con operation_type "09"): "A" administración, "I" imprevistos, "U" utilidad. Solo en facturas.
  • aiu_contracttexto
    El objeto del contrato AIU: solo en la línea A, y obligatorio en ella. Solo en facturas.
  • incomeown | third_party
    Mandatos (11): "own" (por defecto) o "third_party" (con mandator). Solo en facturas.
  • mandatorItemMandator
    El mandante de un ingreso para terceros. Solo en facturas.
  • consignmentItemConsignment
    La remesa del RNDC (transporte de carga, 12). Solo en facturas.
  • Matrícula inmobiliaria y valor comercial (notarios, 14). Solo en facturas.
  • propertieslista de ItemProperty
    Propiedades libres de la línea (hasta 20; no en el transporte de carga). Solo en facturas. Máximo 20.

ItemAllowance

  • codetexto
    Código (texto).
  • reasontexto
  • percentdecimal
    Número o texto decimal con punto («150000.50»).
  • amountdecimal
    Número o texto decimal con punto («150000.50»).

ItemConsignment

  • rndc_filingtextoobligatorio
    Número de radicación de la remesa en el RNDC (1 a 100 000 millones).
  • numbertextoobligatorio
    Consecutivo interno de la remesa (alfanumérico, hasta 15 caracteres).
  • freightdecimalobligatorio
    Pesos, sin decimales (la ley los fija en pesos: no se convierte).
  • quantitydecimalobligatorio
    Cantidad transportada, sin decimales.
  • unittextoobligatorio
    "KGM" kilogramos o "GLL" galones.

ItemMandator

  • document_typetextoobligatorio
    Tipo de documento (tabla 13.2.1 de la DIAN): 13 CC, 31 NIT, 22 CE, 41 PA…
  • document_numbertextoobligatorio
    Sin DV ni puntos; el DV lo calcula Trevol.
  • nametextoobligatorio

ItemNotary

  • property_registrationtextoobligatorio
  • commercial_valuedecimalobligatorio
    Pesos: no se convierte.

ItemProperty

  • nametextoobligatorio
  • valuetextoobligatorio
  • quantitydecimal
    Número o texto decimal con punto («150000.50»).
  • unittexto
    Unidad de medida (tabla 13.3.6); solo con quantity (por defecto 94).

ItemTax

  • codetextoobligatorio
    Código (texto).
  • ratedecimal
    Tarifa en % (ICA y ReteICA: por mil).
  • excludedbooleano
  • unit_amountdecimal
    Número o texto decimal con punto («150000.50»).
  • unittexto
    Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
  • quantitydecimal
    Número o texto decimal con punto («150000.50»).
  • volume_ccdecimal
    Número o texto decimal con punto («150000.50»).
  • nametexto

ItemWithholding

  • codetextoobligatorio
    Código (texto).
  • ratedecimalobligatorio
    Tarifa en % (ICA y ReteICA: por mil).
  • self_withholdingbooleano

Meter

  • numbertextoobligatorio
  • previous_datefecha (AAAA-MM-DD)
  • previous_readingdecimal
    Número o texto decimal con punto («150000.50»).
  • current_datefecha (AAAA-MM-DD)
  • current_readingdecimal
    Número o texto decimal con punto («150000.50»).
  • methodtexto
  • daysentero

NoteInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente.
  • customerCustomer
  • itemslista de Itemobligatorio
    Las líneas (1 a 500). Máximo 500.
  • paymentPayment
  • noteslista de texto
    Máximo 10.
  • periodPeriod
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
    Descuentos y recargos globales (no tocan las bases). Máximo 20.
  • prepaymentslista de Prepayment
    Anticipos (informativos: no restan del total). Máximo 20.
  • withholdingslista de Withholding
    Retenciones (informativas): 05 ReteIVA, 06 ReteRenta, 07 ReteICA. Máximo 10.
  • roundingbooleano o decimal
    true = redondeo al peso; o un valor entre -2.00 y 2.00.
  • concepttextoobligatorio
    Concepto de corrección: NC 1–6, ND 1–4.
  • descriptiontexto

Numbering

  • prefixtextoobligatorio
    Prefijo de la resolución POS o de documento soporte que numera (el de GET /v1/company → capabilities.equivalent_documents.pos_numbering o capabilities.support_documents.numbering).

NumberingExpiringEventData

numbering.expiring (solo producción): la resolución vence en 30 y en 7 días.

  • objectnumbering
  • documentinvoice | support_document | equivalent_document
    De qué documento es la numeración (la fase 3 avisa también del documento soporte y del POS).
  • prefixtexto (puede ser null)
  • resolution_numbertexto
  • valid_tofecha (AAAA-MM-DD)
  • days_leftentero

NumberingLowEventData

numbering.low (solo producción): a la resolución le quedan pocos números (10 % del rango, y otra vez con 10 números).

  • objectnumbering
  • documentinvoice | support_document | equivalent_document
    De qué documento es la numeración (la fase 3 avisa también del documento soporte y del POS).
  • prefixtexto (puede ser null)
  • resolution_numbertexto
  • remainingentero
  • toentero

OriginNote

  • numbertextoobligatorio
  • cudetextoobligatorio
    El CUDE de la nota de ajuste (96 hex).
  • issue_datefecha (AAAA-MM-DD)obligatorio

Payment

  • formcash | creditobligatorio
    cash (contado) | credit (crédito: con due_date o term_days).
  • term_daysentero
  • due_datefecha (AAAA-MM-DD)
  • methodslista de PaymentMethod
    Medios de pago (tabla 13.3.4.2): 10 efectivo, 42 consignación, 47 transferencia… Máximo 5.

PaymentMethod

  • codetextoobligatorio
    Código (texto).
  • referencetexto

Payroll

Una nómina electrónica individual (102). Archivos xml, zip y dian_response.

  • idtexto
    pr_…
  • objectpayroll
  • environmenttest | live
  • statuspending | sending | validating | accepted | rejected | error | processing
    validating: el set de pruebas de la DIAN (habilitación) recibió la nómina y todavía la valida; no es un error, responde 202 en las dos versiones y Trevol solo consulta (nunca reenvía). processing: solo en la versión 2026-10-22, la DIAN no contestó y Trevol sigue resolviendo el documento.
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app
  • cunetexto (puede ser null)
    El código único de la nómina (CUNE, 96 hex).
  • qrtexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • submissionsync | test_set | null (puede ser null)
    sync: SendNominaSync; test_set: el set de pruebas de habilitación.
  • pay_periodtexto
  • currencytexto
  • exchange_ratedecimal
    Tasa de cambio a pesos. Obligatoria con una moneda distinta de COP y prohibida con COP.
  • noteslista de texto
    Máximo 20.
  • payment_dateslista de fecha (AAAA-MM-DD)
    Máximo 31.
  • roundingdecimal
    Redondeo hasta 2.00; no suma a los totales.
  • generation_placePayrollPlace
  • totalsobjeto (puede ser null)
    Montos como texto decimal con 2 decimales. Null en un ajuste Eliminar.
  • dianobjeto
  • filesobjeto
    Qué archivos hay (…/xml, …/zip, …/dian_response). No hay PDF.
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)

PayrollAdjustment

Una nota de ajuste de nómina electrónica (103: Reemplazar o Eliminar). Archivos xml, zip y dian_response.

  • idtexto
    pra_…
  • objectpayroll_adjustment
  • environmenttest | live
  • statuspending | sending | validating | accepted | rejected | error | processing
    validating: el set de pruebas de la DIAN (habilitación) recibió la nómina y todavía la valida; no es un error, responde 202 en las dos versiones y Trevol solo consulta (nunca reenvía). processing: solo en la versión 2026-10-22, la DIAN no contestó y Trevol sigue resolviendo el documento.
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app
  • cunetexto (puede ser null)
    El código único de la nómina (CUNE, 96 hex).
  • qrtexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • submissionsync | test_set | null (puede ser null)
    sync: SendNominaSync; test_set: el set de pruebas de habilitación.
  • typereplace | delete | null (puede ser null)
  • predecessorPayrollReference (puede ser null)
  • pay_periodtexto
  • currencytexto
  • exchange_ratedecimal
    Tasa de cambio a pesos. Obligatoria con una moneda distinta de COP y prohibida con COP.
  • noteslista de texto
    Máximo 20.
  • payment_dateslista de fecha (AAAA-MM-DD)
    Máximo 31.
  • roundingdecimal
    Redondeo hasta 2.00; no suma a los totales.
  • generation_placePayrollPlace
  • totalsobjeto (puede ser null)
    Montos como texto decimal con 2 decimales. Null en un ajuste Eliminar.
  • dianobjeto
  • filesobjeto
    Qué archivos hay (…/xml, …/zip, …/dian_response). No hay PDF.
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)

PayrollAdjustmentInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente. En las nóminas es único entre las nóminas y sus ajustes (aparte de las facturas y los eventos).
  • typereplace | deleteobligatorio
    "replace" (Reemplazar: el ajuste lleva todos los datos de la nómina menos novelty) o "delete" (Eliminar: solo predecessor, notes, generation_place y employer).
  • predecessorPayrollReferenceobligatorio
    El documento que se ajusta: {"id": "pr_…"} (una nómina de Trevol) o {"id": "pra_…"} (otro ajuste, el último de la cadena), o sus datos {number, cune, issue_date}.
  • pay_periodtexto
  • currencytexto
  • exchange_ratedecimal
    Número o texto decimal con punto («150000.50»).
  • noteslista de texto
    Máximo 20.
  • payment_dateslista de fecha (AAAA-MM-DD)
    Máximo 31.
  • roundingdecimal
    true = redondeo al peso; o un valor entre -2.00 y 2.00.
  • generation_placePayrollPlace

PayrollBasic

  • daysenteroobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollCompensatedVacation

  • daysenteroobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollCompensation

  • ordinarydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • extraordinarydecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollDeductions

  • healthPayrollPercentAmountobligatorio
    Salud (obligatoria).
  • pensionPayrollPercentAmountobligatorio
    Pensión (obligatoria).
  • solidarity_fundPayrollSolidarityFund
  • unionslista de PayrollPercentAmount
    Máximo 100.
  • sanctionslista de PayrollSanction
    Máximo 100.
  • payroll_loanslista de PayrollLoan
    Máximo 100.
  • third_party_paymentslista de decimal
    Máximo 100.
  • advanceslista de decimal
    Máximo 100.
  • otherlista de decimal
    Máximo 100.
  • voluntary_pensiondecimal
    Número o texto decimal con punto («150000.50»).
  • withholding_taxdecimal
    Número o texto decimal con punto («150000.50»).
  • afcdecimal
    Número o texto decimal con punto («150000.50»).
  • cooperativedecimal
    Número o texto decimal con punto («150000.50»).
  • tax_garnishmentdecimal
    Número o texto decimal con punto («150000.50»).
  • complementary_plandecimal
    Número o texto decimal con punto («150000.50»).
  • educationdecimal
    Número o texto decimal con punto («150000.50»).
  • refunddecimal
    Número o texto decimal con punto («150000.50»).
  • debtdecimal
    Número o texto decimal con punto («150000.50»).

PayrollDisability

  • startfecha (AAAA-MM-DD)
  • endfecha (AAAA-MM-DD)
  • daysenteroobligatorio
  • typetextoobligatorio
    Tabla 5.5.6: "1" común, "2" profesional, "3" laboral.
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollEarnings

PayrollEmployee

  • typetextoobligatorio
    Tipo de trabajador (tabla 5.5.3).
  • subtypetexto
  • high_risk_pensionbooleano
  • document_typetextoobligatorio
    Tipo de documento del trabajador (tabla 5.2.1).
  • document_numbertextoobligatorio
    Solo dígitos, sin puntos ni comas ni espacios.
  • first_surnametextoobligatorio
  • second_surnametextoobligatorio
    Obligatorio (NIE047): la DIAN lo exige aunque la base no.
  • first_nametextoobligatorio
  • other_namestexto
  • workplacePayrollWorkplaceobligatorio
  • integral_salarybooleano
  • contract_typetextoobligatorio
    Tipo de contrato (tabla 5.5.2).
  • salarydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • codetexto
    El código interno del empleado (filtra las listas con employee_code; no es un dato de identificación).

PayrollEmployer

  • first_surnametextoobligatorio
  • second_surnametextoobligatorio
  • first_nametextoobligatorio
  • other_namestexto

PayrollEpctvBonus

  • salary_paymentdecimal
    Número o texto decimal con punto («150000.50»).
  • non_salary_paymentdecimal
    Número o texto decimal con punto («150000.50»).
  • food_salarydecimal
    Número o texto decimal con punto («150000.50»).
  • food_non_salarydecimal
    Número o texto decimal con punto («150000.50»).

PayrollEventData

Resumen de una nómina electrónica (102) o de su nota de ajuste (103): SIN el trabajador (ni su documento, nombre o salario) y SIN montos. Pide el documento completo con GET /v1/{payrolls|payroll_adjustments}/{id}.

  • objectpayroll | payroll_adjustmentobligatorio
  • idtextoobligatorio
    pr_… | pra_…
  • statuspending | sending | validating | accepted | rejected | errorobligatorio
  • environmenttest | liveobligatorio
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app
  • cunetexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • typereplace | delete | null (puede ser null)
    Solo en la nota de ajuste.
  • predecessorobjeto (puede ser null)
  • submissionsync | test_set | null (puede ser null)
  • dianobjetoobligatorio
  • errorobjeto
    Solo en ….error. Texto fijo por código.

PayrollInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente. En las nóminas es único entre las nóminas y sus ajustes (aparte de las facturas y los eventos).
  • periodPayrollPeriodobligatorio
    El periodo que se liquida y el tiempo laborado (time_worked se calcula si no se manda: años de 360 días y meses de 30).
  • pay_periodtextoobligatorio
    Periodo de nómina (tabla 5.5.1): "1" semanal, "2" decenal, "3" catorcenal, "4" quincenal, "5" mensual, "6" otro.
  • currencytexto
    Moneda (ISO 4217). Por defecto COP; con otra va exchange_rate.
  • exchange_ratedecimal
    Tasa de cambio a pesos. Obligatoria con una moneda distinta de COP y prohibida con COP.
  • El CUNE del documento con la novedad contractual, si la hay. Solo en la nómina.
  • noteslista de texto
    Máximo 20.
  • employeePayrollEmployeeobligatorio
    El trabajador. Sus datos solo salen en las respuestas a esta llave (la del empleador): nunca en webhooks, en el registro de peticiones ni en lo que se guarda de la idempotencia.
  • paymentPayrollPaymentobligatorio
  • payment_dateslista de fecha (AAAA-MM-DD)obligatorio
    Las fechas de pago (1 a 31). Máximo 31.
  • earningsPayrollEarningsobligatorio
  • deductionsPayrollDeductionsobligatorio
  • roundingdecimal
    Redondeo hasta 2.00; no suma a los totales.
  • generation_placePayrollPlace
    Dónde se generó el documento. Por defecto, el municipio de la empresa.
  • Solo si la empresa es persona natural: sus apellidos y nombres (si la razón social no se separa bien en «apellido1 apellido2 nombre1»).

PayrollLeaves

PayrollLoan

  • descriptiontextoobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollNovelty

  • cunetextoobligatorio

PayrollOtherConcept

  • descriptiontextoobligatorio
  • salarydecimal
    Número o texto decimal con punto («150000.50»).
  • non_salarydecimal
    Número o texto decimal con punto («150000.50»).

PayrollOvertime

  • typetextoobligatorio
    Tabla 5.5.5: HED, HEN, HRN, HEDDF, HRDDF, HENDF, HRNDF. El porcentaje sale de la tabla.
  • quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • starttexto
    AAAA-MM-DDTHH:MM:SS (NIE074).
  • endtexto
    AAAA-MM-DDTHH:MM:SS (NIE074).
  • percentdecimal
    Número o texto decimal con punto («150000.50»).

PayrollPaidPeriod

  • startfecha (AAAA-MM-DD)
  • endfecha (AAAA-MM-DD)
  • daysenteroobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollPayment

  • formtexto
    Forma de pago (tabla 5.3.3.1); por defecto "1" (contado).
  • methodtextoobligatorio
    Medio de pago (tabla 5.3.3.2).
  • banktexto
  • account_typetexto
  • account_numbertexto

PayrollPercentAmount

  • percentdecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollPeriod

  • hire_datefecha (AAAA-MM-DD)obligatorio
  • startfecha (AAAA-MM-DD)obligatorio
  • endfecha (AAAA-MM-DD)obligatorio
  • termination_datefecha (AAAA-MM-DD)
  • time_workedentero

PayrollPlace

  • countrytexto
  • department_codetexto
  • municipality_codetexto
    Código DANE del municipio (5 dígitos).

PayrollReference

Uno de: objeto, objeto.

PayrollSalaryAmounts

  • salarydecimal
    Número o texto decimal con punto («150000.50»).
  • non_salarydecimal
    Número o texto decimal con punto («150000.50»).

PayrollSanction

  • publicdecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • privatedecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollServiceBonus

  • daysenteroobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • non_salary_amountdecimal
    Número o texto decimal con punto («150000.50»).

PayrollSeverance

  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • percentdecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • interestdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

PayrollSolidarityFund

  • percentdecimal
    Número o texto decimal con punto («150000.50»).
  • amountdecimal
    Número o texto decimal con punto («150000.50»).
  • subsistence_percentdecimal
    Número o texto decimal con punto («150000.50»).
  • subsistence_amountdecimal
    Número o texto decimal con punto («150000.50»).

PayrollTransport

  • allowancedecimal
    Número o texto decimal con punto («150000.50»).
  • salary_per_diemdecimal
    Número o texto decimal con punto («150000.50»).
  • non_salary_per_diemdecimal
    Número o texto decimal con punto («150000.50»).

PayrollUnpaidPeriod

  • startfecha (AAAA-MM-DD)
  • endfecha (AAAA-MM-DD)
  • daysenteroobligatorio

PayrollVacation

PayrollWorkplace

  • countrytexto
  • department_codetexto
  • municipality_codetexto
    Código DANE del municipio (5 dígitos).
  • addresstexto

Period

  • startfecha (AAAA-MM-DD)
  • endfecha (AAAA-MM-DD)

PhysicalDocument

  • numbertexto
  • datefecha (AAAA-MM-DD)
  • typetexto
    Codificación propia del tipo del documento físico (hasta 10 caracteres). Por defecto, FISICO.

Pos

PosBuyer

  • codetexto
    Por defecto, el documento del adquirente.
  • nametexto
    Por defecto, el nombre del adquirente.
  • pointsdecimal
    Puntos del comprador. Por defecto, 0.

PosRegister

  • platetextoobligatorio
    Placa de inventario de la caja (DEPD26).
  • locationtextoobligatorio
    Ubicación de la caja (DEPD28).
  • cashiertextoobligatorio
    Nombre del cajero o vendedor (DEPD30).
  • typetextoobligatorio
    Tipo de caja (DEPD32).
  • sale_codetexto
    Código de la venta. Por defecto, el número del documento (DEPD34).

Prepayment

  • idtextoobligatorio
  • amountdecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • received_datefecha (AAAA-MM-DD)obligatorio
  • paid_datefecha (AAAA-MM-DD)
  • instructionstexto

Preview

El resultado de calcular sin emitir: el documento que se emitiría, con sus totales. No gasta numeración, saldo ni le manda nada a la DIAN. Lleva además los campos del pedido normalizados (cambian de un tipo de documento a otro).

  • objectpreview
  • documenttexto
    El object del documento que se emitiría (invoice, credit_note, payroll…).
  • environmenttest | live | null (puede ser null)
  • totalsobjeto libre
    Los totales calculados: la misma forma que totals del documento (en nómina, devengados, deducciones y total del comprobante).

Problem

  • typetextoobligatorio
  • titletextoobligatorio
  • statusenteroobligatorio
  • codeauthentication_required | certificate_problem | company_not_enabled | dian_rejected | dian_unavailable | duplicate_document | external_id_in_use | file_unavailable | idempotency_key_required | idempotency_key_reused | insufficient_balance | internal_error | invalid_api_key | invalid_json | invalid_request | invalid_state | method_not_allowed | not_found | numbering_unavailable | permission_denied | previous_event_pending | rate_limited | request_in_progress | tacit_acceptance_not_due | top_up_above_maximum | top_up_below_minimum | top_ups_unavailable | unsupported_version | validation_error | webhook_limit_reachedobligatorio
  • detailtexto
  • retryablebooleanoobligatorio
  • retry_afterentero
  • request_idtexto
  • errorslista de objeto
  • documentDocument
  • existing_idtexto
    En external_id_in_use y duplicate_document: el id (con el prefijo de su clase) del recurso que ya existe.
  • reasonmissing_legal_representative | missing_pin | missing_software | missing_technical_key | no_resolution | payroll_not_enabled | prefix_in_use | resolution_exhausted | resolution_expired | resolution_not_yet_valid
    En company_not_enabled (missing_legal_representative, missing_pin, missing_software, payroll_not_enabled) y en numbering_unavailable (missing_technical_key, no_resolution, prefix_in_use, resolution_exhausted, resolution_expired, resolution_not_yet_valid): por qué.
  • previoustexto
    En previous_event_pending: el evento que la DIAN todavía no muestra.
  • minimum_copentero (puede ser null)
    En top_up_below_minimum: la recarga mínima, en pesos.
  • maximum_copentero (puede ser null)
    En top_up_above_maximum: la recarga máxima, en pesos.
  • limittexto
    En rate_limited: qué límite se pasó.
  • available_fromfecha (AAAA-MM-DD) (puede ser null)
    En tacit_acceptance_not_due: desde cuándo procede la aceptación tácita. null si la DIAN todavía no muestra el recibo del bien (032) de la compradora: consulta de nuevo en unos minutos con GET /v1/invoices/{id}/tacit_acceptance.
  • ruleslista de objeto libre
    En tacit_acceptance_not_due: las reglas (LGC…) que la DIAN aplicaría; las locales llevan local: true.

PublicServicesExtension

  • servicetextoobligatorio
  • companytextoobligatorio
  • reasontexto
  • contracttextoobligatorio
  • usetextoobligatorio
  • stratumtextoobligatorio
  • payment_due_datefecha (AAAA-MM-DD)
  • payment_referencetexto
  • due_datefecha (AAAA-MM-DD)
  • periodfecha (AAAA-MM-DD)
  • cycle_daysentero
  • noteslista de texto
    Máximo 10.
  • consumptionslista de Consumptionobligatorio
    Máximo 50.
  • third_partieslista de ThirdPartyCharge
    Máximo 20.

RadianEvent

Un evento RADIAN 030–034 sobre una factura. Solo archivo xml. Un rechazo es final.

  • idtexto
  • objectradian_event
  • environmenttest | live
  • statuspending | sending | validating | accepted | rejected | error | processing
    validating: la DIAN respondió 98 («en proceso de validación»); no es un error, responde 202 en las dos versiones y Trevol solo consulta (el 98 significa «no reenvíes»). processing: solo en la 2026-10-22, un envío en duda o el evento anterior que aún no aparece: Trevol lo sigue resolviendo. error incluye el envío en duda de la 2026-10-21.
  • event_code030 | 031 | 032 | 033 | 034
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app
  • cudetexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • invoiceobjeto
    030–033: la factura recibida (con el emisor). 034: {id, cufe, number} de la factura propia; sin id si no se emitió con Trevol (la trajo la sincronización con la DIAN).
  • claimEventClaim (puede ser null)
  • softwareown | dian_free
  • providerdian | company
  • dianobjeto
  • already_registeredbooleano
    true: GetStatusEvent ya mostraba el CUDE de ESTE evento (un envío en duda que sí llegó); se cerró accepted sin reenviar.
  • already_registered_elsewherebooleano
    true: la DIAN rechazó con LGC01, la factura ya tiene ese evento (quizá de otro software); no hace falta enviarlo.
  • tacitbooleano
    033 rechazada con DC24c: la factura ya quedó aceptada tácitamente.
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)

RadianEventData

Resumen de un evento RADIAN (030–034): sin nombres ni NIT del emisor de la factura. Pide el evento completo con GET /v1/radian_events/{id}.

  • objectradian_eventobligatorio
  • idtextoobligatorio
  • statuspending | sending | validating | accepted | rejected | errorobligatorio
  • environmenttest | liveobligatorio
  • event_code030 | 031 | 032 | 033 | 034obligatorio
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app
  • cudetexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • invoiceobjeto
  • dianobjetoobligatorio
  • errorobjeto
    Solo en ….error. Texto fijo por código.

RadianEventInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente. En los eventos es único entre los eventos (aparte de las facturas y las nóminas).
  • event_codetextoobligatorio
    "030" acuse de recibo, "031" reclamo, "032" recibo del bien o servicio, "033" aceptación expresa (las cuatro sobre una factura RECIBIDA) o "034" aceptación tácita (sobre una factura PROPIA a crédito). Los 035 a 051 necesitan un participante RADIAN y no están disponibles.
  • 030–033: la factura RECIBIDA sobre la que va el evento (CUFE, número y quién la emitió). 034: la factura PROPIA por su CUFE, {cufe, number?} (solo esos dos), en lugar de invoice_id: sirve también para las facturas que no se emitieron con Trevol (las trae la sincronización con la DIAN). Si el CUFE es de una factura de Trevol, es lo mismo que mandar su invoice_id.
  • invoice_idtexto
    034: el id (inv_…) de una factura de Trevol: propia, validada, a crédito y que no sea de consumidor final. Va aparte de invoice para que cada esquema sea plano en los SDK. Para una factura que no se emitió con Trevol, usa invoice: {cufe} (exactamente uno de los dos).
  • Solo en el reclamo (031) y obligatorio en él: {code: "01" a "04", note?}.
  • softwareown | dian_free
    030–033: own (el Software Propio de la empresa, por defecto) o dian_free (el software gratuito de la DIAN). El 034 se firma con el Software Propio.
  • providerdian | company
    030–033: quién es el proveedor tecnológico: dian (por defecto con dian_free) o company (por defecto con own).

ReceivedInvoice

  • cufetexto
    El CUFE de la factura (96 caracteres hexadecimales).
  • numbertexto
    El número de la factura, con su prefijo. En el 034 es opcional: si viene, tiene que ser el de la factura de ese CUFE.
  • typetexto
    Tipo de documento de la factura ("01" a "04"; por defecto "01"). No va en el 034.
  • acquirer_document_typetexto
    El tipo de documento con que el emisor identificó a la empresa en la factura ("31" NIT o "13" cédula). Por defecto, el de la empresa (si no, la regla AAH09).

ReceivedInvoiceIssuer

  • nittexto
  • check_digitentero
    Opcional: si viene, tiene que ser el DV del NIT.
  • document_typetexto
    Tipo de documento (tabla 13.2.1 de la DIAN): 13 CC, 31 NIT, 22 CE, 41 PA…
  • nametexto
    Se guarda (va en el XML) pero no sale en los webhooks.

References

RequestLog

Una petición de la API (sin cuerpo, consulta, IP ni llave). Se guardan 30 días y son las de la empresa y el ambiente de la llave.

  • objectrequestobligatorio
  • idtextoobligatorio
    El Request-Id de la respuesta: compártelo si pides ayuda.
  • methodGET | POST | PUT | PATCH | DELETEobligatorio
  • pathtextoobligatorio
    La plantilla de la ruta, no la ruta real: /v1/invoices/{id}/pdf
  • statusenteroobligatorio
    El estado HTTP que se respondió.
  • codetexto (puede ser null)
    El code del error (validation_error…); null si salió bien.
  • duration_msenteroobligatorio
    Lo que tardó Trevol en responder, en milisegundos.
  • key_idtexto (puede ser null)
    La llave que hizo la petición (key_…, la de GET /v1/company); null si ya se borró.
  • document_idtexto (puede ser null)
    El documento (inv_…, cn_…, dn_…) sobre el que se actuó, si lo hay.
  • idempotent_replayedbooleano
    Se respondió con el resultado guardado de una Idempotency-Key repetida.
  • api_version2026-10-21 | 2026-10-22 | null (puede ser null)
  • created_atfecha y horaobligatorio

Seller

  • residentbooleano
    Residente fiscal en Colombia. Por defecto, country es CO.
  • person_typelegal | natural
    Por defecto se deduce del NIT.
  • document_typetextoobligatorio
    Residente: solo "31" (NIT). No residente: 21, 22, 31, 41, 42, 47 o 50 (tabla 16.2.1).
  • document_numbertextoobligatorio
    Sin dígito de verificación; Trevol calcula el DV del NIT.
  • check_digitentero
    Opcional: si viene, tiene que ser el DV del NIT.
  • nametextoobligatorio
  • addresstexto
  • tax_schemetexto
    "ZZ" (no aplica, por defecto) o "01" (IVA).
  • tax_responsibilitieslista de texto
    O-13, O-15, O-23, O-47, O-48, O-49 o R-99-PN (por defecto R-99-PN). Máximo 20.
  • countrytexto
    ISO 3166-1 alfa-2 (tabla 16.4.1). Por defecto CO.
  • municipality_codetexto
    Solo vendedor residente: código DANE del municipio.
  • department_codetexto
  • postal_codetexto
    Residente: de la tabla 16.4.4, del mismo departamento. No residente: libre, hasta 10 caracteres.
  • citytexto
    Obligatoria si no es residente.
  • regiontexto
    Solo vendedor no residente.

Shipment

ShowEvent

  • nametextoobligatorio
  • localitytextoobligatorio
  • puleptexto
  • sale_typetexto
  • sale_phasetexto
  • categorytexto
  • municipality_codetexto
    Código DANE del municipio (5 dígitos).
  • venuetexto
  • datefecha (AAAA-MM-DD)
  • timetexto

ShowExtension

ShowProducer

  • nametextoobligatorio
  • nittextoobligatorio
  • leptexto

StandardCode

  • schemetexto
  • valuetexto

StockExchangeExtension

  • trade_numbertextoobligatorio
  • settlement_datefecha (AAAA-MM-DD)obligatorio
  • nominal_quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • pricesStockExchangePricesobligatorio
  • yieldsdecimal
    Número o texto decimal con punto («150000.50»).
  • valuedecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • commission_percentdecimalobligatorio
    Número o texto decimal con punto («150000.50»).

StockExchangePrices

  • registrationtexto
  • total_assignmenttexto

SupportAdjustmentItem

  • codetexto
    Código (texto).
  • descriptiontextoobligatorio
  • unittexto
    Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
  • quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • unit_pricedecimalobligatorio
    Precio unitario SIN impuestos.
  • taxeslista de SupportItemTax
    Solo IVA: {code: "01", rate: 0 | 5 | 19} o {code: "01", excluded: true}. Máximo 12.
  • discountslista de ItemAllowance
    Descuentos de la línea, sin código; la razón va de 10 a 5000 caracteres (NSBE04). Máximo 10.
  • chargeslista de SupportItemCharge
    Máximo 10.
  • standard_codeStandardCode

SupportAdjustmentReference

Uno de: objeto, objeto.

SupportCurrency

  • codetextoobligatorio
    Moneda del documento (ISO 4217); los valores del pedido van en ESA moneda.
  • exchange_ratedecimalobligatorio
    Pesos por 1 unidad de la moneda.
  • rate_datefecha (AAAA-MM-DD)obligatorio

SupportDocument

Un documento soporte en adquisiciones a no obligados a facturar (Invoice 05). Se genera, no se expide: archivos xml y dian_response.

  • idtexto
    sd_…
  • objectsupport_document
  • environmenttest | live
  • statuspending | sending | accepted | rejected | error | processing
    processing solo en la versión 2026-10-22: la DIAN no confirmó y Trevol sigue resolviendo el documento (el resultado llega por GET y por webhook; no crees otro documento para la misma venta). En 2026-10-21 ese documento se ve como error.
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app | contapyme
  • qrtexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • itemslista de SupportItem
  • paymentPayment
  • totalsobjeto (puede ser null)
    Montos como texto decimal con 2 decimales, siempre en pesos. Con moneda extranjera, currency trae el equivalente.
  • dianobjeto
  • deliveryobjeto
    El documento soporte se genera, no se expide: no hay PDF, ZIP ni correo. Solo hay XML y la respuesta de la DIAN.
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)
  • cudstexto (puede ser null)
    El código único del documento (CUDS, 96 hex).
  • sellerSeller
  • noteslista de texto
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
  • transmissionper_operation | weekly
  • adjustment_noteSupportAdjustmentReference (puede ser null)

SupportDocumentAdjustment

Una nota de ajuste de un documento soporte (CreditNote 95). Se genera, no se expide: archivos xml y dian_response.

  • idtexto
    sda_…
  • objectsupport_document_adjustment
  • environmenttest | live
  • statuspending | sending | accepted | rejected | error | processing
    processing solo en la versión 2026-10-22: la DIAN no confirmó y Trevol sigue resolviendo el documento (el resultado llega por GET y por webhook; no crees otro documento para la misma venta). En 2026-10-21 ese documento se ve como error.
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
  • originapi | app | contapyme
  • qrtexto (puede ser null)
  • issued_atfecha y hora (puede ser null)
  • itemslista de SupportAdjustmentItem
  • paymentPayment
  • totalsobjeto (puede ser null)
    Montos como texto decimal con 2 decimales, siempre en pesos. Con moneda extranjera, currency trae el equivalente.
  • dianobjeto
  • deliveryobjeto
    El documento soporte se genera, no se expide: no hay PDF, ZIP ni correo. Solo hay XML y la respuesta de la DIAN.
  • created_atfecha y hora
  • updated_atfecha y hora (puede ser null)
  • cudstexto (puede ser null)
    El código único del documento (CUDS, 96 hex).
  • sellerSeller
  • noteslista de texto
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
  • concepttexto
    Concepto de la nota (tabla 16.2.4): 1 a 5.
  • descriptiontexto
  • support_documentSupportDocumentReference

SupportDocumentAdjustmentInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente.
  • sellerSeller
    Opcional con support_document.id: se toma el vendedor del documento soporte (si viene, tiene que ser el mismo).
  • itemslista de SupportAdjustmentItemobligatorio
    Las líneas de la nota (1 a 500): sin retenciones ni fecha de compra. Máximo 500.
  • paymentPayment
  • noteslista de texto
    Máximo 10.
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
    Descuentos y recargos globales (no tocan las bases). Máximo 20.
  • concepttextoobligatorio
    Concepto de la nota de ajuste (tabla 16.2.4): "1" devolución parcial, "2" anulación del documento soporte (lleva exactamente sus valores), "3" rebaja o descuento, "4" ajuste de precio, "5" otros.
  • descriptiontextoobligatorio
    Qué se corrige y por qué (de 20 a 5000 caracteres, NSBF04).
  • support_documentSupportDocumentReferenceobligatorio
    El documento soporte que ajusta: {"id": "sd_…"} (de Trevol: validado, de la empresa y el ambiente de la llave) o {number, cuds, issue_date, total?} si es de otra plataforma (total hace falta para anularlo).

SupportDocumentEventData

Resumen de un documento soporte o de su nota de ajuste (nunca datos del proveedor ni líneas). Pide el documento completo con GET /v1/{support_documents|support_document_adjustments}/{id}.

  • statuspending | sending | accepted | rejected | error | contingencyobligatorio
    Nunca processing: ese estado solo existe en las respuestas de la API.
  • environmenttest | liveobligatorio
  • numbertexto (puede ser null)
  • prefixtexto (puede ser null)
  • external_idtexto (puede ser null)
    Tu identificador, solo en los documentos creados por la API.
  • originapi | app | contapyme
  • issued_atfecha y hora (puede ser null)
  • totaltexto (puede ser null)
    Texto decimal con dos decimales.
  • dianobjetoobligatorio
  • errorobjeto
    Solo en ….error. El texto es fijo por código: nunca el mensaje de la DIAN.
  • objectsupport_document | support_document_adjustmentobligatorio
  • idtextoobligatorio
    sd_… | sda_…
  • cudstexto (puede ser null)
    Código único del documento soporte.
  • support_documentobjeto
    En la nota de ajuste: el documento soporte que ajusta.
  • deliverynull
    El documento soporte no se expide al vendedor: no hay PDF ni correo.

SupportDocumentInput

  • external_idtexto
    Tu identificador del documento: único entre los documentos API de la empresa y el ambiente.
  • sellerSellerobligatorio
    Quien vende y no está obligado a facturar (el SNO). La empresa de la llave es la compradora: sus datos salen de la empresa. No hay customer.
  • itemslista de SupportItemobligatorio
    Las líneas (1 a 500). Retenciones solo por línea (withholdings: 05 ReteIVA, 06 ReteRenta); las del documento no se publican. Máximo 500.
  • paymentPayment
  • noteslista de texto
    Máximo 10.
  • referencesReferences
  • allowance_chargeslista de AllowanceCharge
    Descuentos y recargos globales (no tocan las bases). Máximo 20.
  • transmissionper_operation | weekly
    per_operation (por defecto, un documento por compra) o weekly (acumulado semanal con un mismo vendedor: cada línea lleva su purchase_date).
  • La nota de ajuste que originó este documento (opcional): {"id": "sda_…"} o {number, cuds, issue_date}.
  • numberingNumbering
    Opcional: el prefijo de la resolución de documento soporte que numera (una empresa con varios rangos). Sin él, la más nueva vigente. Si no existe, numbering_unavailable (no_resolution).

SupportDocumentReference

Uno de: objeto, objeto.

SupportItem

  • codetexto
    Código (texto).
  • descriptiontextoobligatorio
  • unittexto
    Unidad de medida (tabla 13.3.6). Por defecto 94 (unidad).
  • quantitydecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • unit_pricedecimalobligatorio
    Precio unitario SIN impuestos.
  • taxeslista de SupportItemTax
    Solo IVA: {code: "01", rate: 0 | 5 | 19} o {code: "01", excluded: true}. Máximo 12.
  • discountslista de ItemAllowance
    Descuentos de la línea, sin código; la razón va de 10 a 5000 caracteres (DSBE04). Máximo 10.
  • chargeslista de SupportItemCharge
    Máximo 10.
  • withholdingslista de SupportItemWithholding
    Las practica la empresa al vendedor: 05 ReteIVA (15 o 100 %) o 06 ReteRenta. No restan del total a pagar. Máximo 10.
  • standard_codeStandardCode
  • purchase_datefecha (AAAA-MM-DD)
    Fecha de la compra. Obligatoria en el acumulado semanal (entre 6 días antes de hoy y hoy); por operación no se informa.

SupportItemCharge

  • reasontexto
  • percentdecimal
    Número o texto decimal con punto («150000.50»).
  • amountdecimal
    Número o texto decimal con punto («150000.50»).

SupportItemTax

  • codetextoobligatorio
    Código (texto).
  • ratedecimal
    Tarifa en % (ICA y ReteICA: por mil).
  • excludedbooleano

SupportItemWithholding

  • codetextoobligatorio
    Código (texto).
  • ratedecimalobligatorio
    Tarifa en % (ICA y ReteICA: por mil).

TacitAcceptance

¿Procede ya la aceptación tácita (034) sobre una factura propia? Solo lectura: consulta GetStatusEvent con el certificado de la empresa y no envía nada. Límite propio: 30 por minuto por llave (las dos consultas, juntas).

  • objecttacit_acceptance
  • invoice_idtexto
    Solo si la factura es de Trevol.
  • cufetexto
    El CUFE de la factura.
  • numbertexto
    El número de la factura.
  • allowedbooleano
  • available_fromfecha (AAAA-MM-DD) (puede ser null)
    Desde cuándo procede (3 días hábiles después del recibo del bien, 032).
  • ruleslista de objeto
    Las reglas (LGC…) que impiden el 034 ahora; llevan local: true.

TestEventData

webhook.test: lo manda «Probar» (app) o POST …/test, solo a ese endpoint.

  • objecttest
  • messagetexto

ThirdPartyCharge

  • servicetextoobligatorio
  • companyThirdPartyCompanyobligatorio
  • reasontexto
  • contracttexto
  • periodtexto
  • notetexto
  • totaldecimalobligatorio
    Número o texto decimal con punto («150000.50»).
  • chargeslista de ConsumptionAdjustment
    Máximo 50.

ThirdPartyCompany

  • nittextoobligatorio
  • nametextoobligatorio

TopUp

  • objecttop_upobligatorio
  • referencetextoobligatorio
  • amount_copenteroobligatorio
  • statuspreparedobligatorio
  • wompiobjetoobligatorio
    Lo que necesita el widget de Wompi (WidgetCheckout).

TopUpBuyer

El comprador de la factura de la recarga. Sin él, la empresa de la llave.

  • document_type13 | 31 | 22 | 41obligatorio
    13 cédula, 31 NIT, 22 cédula de extranjería, 41 pasaporte (lo que acepta la facturación de la recarga).
  • document_numbertextoobligatorio
    Sin DV ni puntos (con 13 y 31, solo dígitos).
  • check_digittexto o entero
    Con NIT, obligatorio: el DV del NIT. No va con los demás.
  • person_typelegal | naturalobligatorio
    legal (persona jurídica, solo con NIT) o natural.
  • nametextoobligatorio
    Razón social o, para una persona natural, nombres y apellidos (al menos dos palabras).
  • emailtextoobligatorio
    A dónde llega la factura de la recarga.
  • phonetexto
  • addresstexto
  • municipality_codetexto
    Código DANE del municipio (5 dígitos).

TopUpInput

  • amount_copenteroobligatorio
    En pesos, entre la recarga mínima y la máxima.

TransportExtension

  • modetextoobligatorio
  • vehicle_idtextoobligatorio
  • vehicletextoobligatorio
  • origintextoobligatorio
  • destinationtextoobligatorio

WebhookDelivery

Un evento hacia un endpoint, con sus reintentos (8 automáticos en unas 32 horas; 3 si es manual).

  • idtextoobligatorio
  • objectwebhook_deliveryobligatorio
  • endpoint_idtextoobligatorio
  • event_idtextoobligatorio
  • event_typetexto (puede ser null)
  • statuspending | sending | succeeded | failed | canceledobligatorio
  • attemptsenteroobligatorio
  • manualbooleano
  • next_attempt_atfecha y hora (puede ser null)
  • last_attemptobjeto (puede ser null)
  • created_atfecha y hora (puede ser null)
  • succeeded_atfecha y hora (puede ser null)

WebhookEndpoint

  • idtextoobligatorio
  • objectwebhook_endpointobligatorio
  • environmenttest | liveobligatorio
  • urltextoobligatorio
    La URL completa solo la ven las llaves de escritura; las de lectura ven el esquema y el host (el camino va enmascarado: a veces es un secreto).
  • descriptiontexto (puede ser null)
  • eventslista de * | invoice.accepted | invoice.rejected | invoice.error | invoice.delivered | invoice.email_bounced | invoice.email_failed | credit_note.accepted | credit_note.rejected | credit_note.error | credit_note.delivered | credit_note.email_bounced | credit_note.email_failed | debit_note.accepted | debit_note.rejected | debit_note.error | debit_note.delivered | debit_note.email_bounced | debit_note.email_failed | balance.low | numbering.low | numbering.expiring | certificate.expiring | support_document.accepted | support_document.rejected | support_document.error | support_document_adjustment.accepted | support_document_adjustment.rejected | support_document_adjustment.error | equivalent_document.accepted | equivalent_document.rejected | equivalent_document.error | equivalent_document.delivered | equivalent_document.email_bounced | equivalent_document.email_failed | equivalent_document_adjustment.accepted | equivalent_document_adjustment.rejected | equivalent_document_adjustment.error | equivalent_document_adjustment.delivered | equivalent_document_adjustment.email_bounced | equivalent_document_adjustment.email_failed | payroll.accepted | payroll.rejected | payroll.error | payroll_adjustment.accepted | payroll_adjustment.rejected | payroll_adjustment.error | radian_event.accepted | radian_event.rejected | radian_event.errorobligatorio
    Eventos del catálogo (49 tipos, hasta 60 en la lista), o ["*"] para todos (no se mezcla). balance.low, numbering.low y numbering.expiring solo existen en producción (llaves live). webhook.test no se suscribe. Máximo 60.
  • catalog_version1 | 2
    Qué catálogo recibe con ["*"]: 1 = el de la fase 2 (facturas, notas, saldo, numeración y certificado); 2 = también documento soporte, documento equivalente, nómina y eventos RADIAN. Los endpoints creados antes de la fase 3 quedan en 1 hasta que guardes de nuevo su lista de eventos (PATCH events); los nuevos nacen en 2. Una lista explícita siempre recibe lo que pide.
  • statusenabled | paused | disabledobligatorio
    paused: lo pausaste tú. disabled: lo desactivó Trevol por fallos sostenidos (10 seguidos durante 5 días); se reactiva con PATCH status=enabled.
  • disabled_reasonsustained_failures | null (puede ser null)
  • secret_rotated_atfecha y hora (puede ser null)
  • created_atfecha y hora (puede ser null)
  • updated_atfecha y hora (puede ser null)
  • secrettexto
    SOLO al crear o rotar, una única vez: guárdalo. Verifica cada entrega con él (Standard Webhooks).

WebhookEndpointInput

  • urltextoobligatorio
    https:// con un nombre de dominio (no una IP), sin usuario ni clave, puerto 443 o 1024–65535. En cada intento se resuelve el nombre y se rechaza toda dirección privada o local.
  • descriptiontexto (puede ser null)
  • eventslista de * | invoice.accepted | invoice.rejected | invoice.error | invoice.delivered | invoice.email_bounced | invoice.email_failed | credit_note.accepted | credit_note.rejected | credit_note.error | credit_note.delivered | credit_note.email_bounced | credit_note.email_failed | debit_note.accepted | debit_note.rejected | debit_note.error | debit_note.delivered | debit_note.email_bounced | debit_note.email_failed | balance.low | numbering.low | numbering.expiring | certificate.expiring | support_document.accepted | support_document.rejected | support_document.error | support_document_adjustment.accepted | support_document_adjustment.rejected | support_document_adjustment.error | equivalent_document.accepted | equivalent_document.rejected | equivalent_document.error | equivalent_document.delivered | equivalent_document.email_bounced | equivalent_document.email_failed | equivalent_document_adjustment.accepted | equivalent_document_adjustment.rejected | equivalent_document_adjustment.error | equivalent_document_adjustment.delivered | equivalent_document_adjustment.email_bounced | equivalent_document_adjustment.email_failed | payroll.accepted | payroll.rejected | payroll.error | payroll_adjustment.accepted | payroll_adjustment.rejected | payroll_adjustment.error | radian_event.accepted | radian_event.rejected | radian_event.errorobligatorio
    Eventos del catálogo (49 tipos, hasta 60 en la lista), o ["*"] para todos (no se mezcla). balance.low, numbering.low y numbering.expiring solo existen en producción (llaves live). webhook.test no se suscribe. Máximo 60.

WebhookEndpointUpdate

  • urltexto
    https:// con un nombre de dominio (no una IP), sin usuario ni clave, puerto 443 o 1024–65535. En cada intento se resuelve el nombre y se rechaza toda dirección privada o local.
  • descriptiontexto (puede ser null)
  • eventslista de * | invoice.accepted | invoice.rejected | invoice.error | invoice.delivered | invoice.email_bounced | invoice.email_failed | credit_note.accepted | credit_note.rejected | credit_note.error | credit_note.delivered | credit_note.email_bounced | credit_note.email_failed | debit_note.accepted | debit_note.rejected | debit_note.error | debit_note.delivered | debit_note.email_bounced | debit_note.email_failed | balance.low | numbering.low | numbering.expiring | certificate.expiring | support_document.accepted | support_document.rejected | support_document.error | support_document_adjustment.accepted | support_document_adjustment.rejected | support_document_adjustment.error | equivalent_document.accepted | equivalent_document.rejected | equivalent_document.error | equivalent_document.delivered | equivalent_document.email_bounced | equivalent_document.email_failed | equivalent_document_adjustment.accepted | equivalent_document_adjustment.rejected | equivalent_document_adjustment.error | equivalent_document_adjustment.delivered | equivalent_document_adjustment.email_bounced | equivalent_document_adjustment.email_failed | payroll.accepted | payroll.rejected | payroll.error | payroll_adjustment.accepted | payroll_adjustment.rejected | payroll_adjustment.error | radian_event.accepted | radian_event.rejected | radian_event.error
    Eventos del catálogo (49 tipos, hasta 60 en la lista), o ["*"] para todos (no se mezcla). balance.low, numbering.low y numbering.expiring solo existen en producción (llaves live). webhook.test no se suscribe. Máximo 60.
  • statusenabled | paused
    enabled reactiva (también uno desactivado por Trevol) y pone en cero el contador de fallos.

Withholding

  • codetextoobligatorio
    Código (texto).
  • ratedecimalobligatorio
    Tarifa en % (ICA y ReteICA: por mil).
  • self_withholdingbooleano
  • basedecimal
    Número o texto decimal con punto («150000.50»).