Ir al contenido

GET /api/documentos/documento/{id}/

GET /api/documentos/documento/{id}/

Un documento no se edita: se crea, se emite y, si estaba mal, se borra.

Sin PUT ni PATCH sobre el documento. No es una restricción de permisos sino de forma: un documento fiscal es un hecho con fecha, número y firma, y editarlo en sitio abre la puerta a que lo que se emitió y lo que se guarda dejen de coincidir. Mientras es borrador, corregirlo es borrarlo y volver a crearlo —que además libera el consecutivo—; una vez emitido, lo que corrige una factura es una nota, no un PATCH.

Lo que sí cambia el documento son las acciones de más abajo, cada una con su regla: emitir (firma, envía o consulta), notificar. El estado no es un campo que se escriba, es la consecuencia de una operación.

operationId: documentos_documento_retrieve

Cualquiera de estas credenciales:

  • LlaveApi — Llave de API de una integración. El valor completo es Api-Key <prefijo>.<secreto>, tal como lo imprime manage.py crear_llave_api. La llave alcanza exactamente los mismos emisores que la persona a cuyo nombre se creó.
NombreEnTipoObligatorioDescripción
idpathstring (uuid)Un Cadena UUID que identifique este documento electrónico.
Ventana de terminal
curl "https://api.rededoc.uk/api/documentos/documento/<id>/" \
-H "Authorization: <llaveapi>"
CódigoDescripción
200
401Error
404Error
429Error
CampoTipoDescripción
idstring (uuid)Solo lectura.
documento_tipointeger
documento_tipo_nombrestringSolo lectura.
estadointegerSolo lectura.
estado_nombrestringSolo lectura.
estado_descripcionstringSolo lectura.
emisorinteger
resolucionintegerAdmite null.
resolucion_numerostringSolo lectura.
adquirienteanySolo lectura.
prefijostring
consecutivointeger (int64)
numerostringNúmero del documento (cbc:ID). Si se omite, se arma como prefijo + consecutivo.
cufe_cudestringHash SHA-384 (96 hex). CUFE en facturas, CUDE en notas/soporte. Solo lectura.
track_idstringIdentificador del envío (ZipKey del Set de Pruebas o trackId), para consultar el estado en la DIAN. Solo lectura.
envioanyCon qué operación se envió a la DIAN. Decide cómo se consulta después el estado: GetStatusZip para el Set de Pruebas (el track_id es un ZipKey) y GetStatus para el envío síncrono. Vacío mientras no se haya enviado. * test_set - Set de Pruebas (SendTestSetAsync) * bill_sync - Síncrono (SendBillSync) Solo lectura.
ambienteanyProfileExecutionID del XML: 1 producción, 2 habilitación. Se hereda del emisor al crear y se sella al firmar; no lo decide el ajuste del servidor. * 1 - Producción * 2 - Habilitación Solo lectura.
fecha_validacionstring (date-time)Momento en que la DIAN aceptó el documento. Solo lectura. Admite null.
notificadobooleanSi ya se le entregó el documento al comprador. Lo marca la acción notificar; mientras el envío por correo no exista, significa que el paquete se armó y se entregó a quien lo pidió. Solo lectura.
erroresarray<DocumentoError>Solo lectura.
concepto_correccionstringResponseCode del DiscrepancyResponse: por qué se corrige el documento referenciado. Los códigos válidos dependen del tipo de nota (ConceptoNotaCredito, ConceptoNotaDebito, ConceptoNotaAjuste). Vacío en lo que no es nota.
fecha_vencimientostring (date)DueDate del XML: hasta cuándo hay plazo para pagar. La DIAN la exige cuando la forma de pago es a crédito; en contado sobra. Admite null.
orden_comprastringNúmero de la orden de compra del adquiriente, si la hubo.
orden_compra_fechastring (date)Admite null.
orden_compra_tipostringcbc:OrderTypeCode: qué clase de orden es (contrato, pedido…), según la codificación que use el comprador.
orden_compra_documentostringcac:DocumentReference/cbc:ID: el soporte de la orden (contrato, acuerdo marco) cuando es distinto del número de la orden.
fecha_emisionstring (date)IssueDate del XML. Si se omite se toma la fecha de hoy, que es la única con la que se puede firmar (regla FAD09).
hora_emisionstring (time)IssueTime del XML. Si se omite se toma la hora actual, y al firmar se reescribe con la hora de la firma.
monedainteger
forma_pagointegerAdmite null.
medio_pagointegerAdmite null.
valor_brutostring (decimal)LineExtensionAmount: suma de las líneas. Solo lectura.
total_impuestosstring (decimal)Solo lectura.
total_descuentosstring (decimal)Descuentos globales del documento (no los de línea).
descuentos_motivostringcbc:AllowanceChargeReason del descuento global.
total_cargosstring (decimal)
cargos_motivostringcbc:AllowanceChargeReason del cargo global.
total_a_pagarstring (decimal)PayableAmount. Solo lectura.
documento_referenciastring (uuid)Admite null.
observacionesstring
detallesarray<DocumentoDetalle>Solo lectura.
posanySolo lectura.
creado_enstring (date-time)Solo lectura.
actualizado_enstring (date-time)Solo lectura.
{
"id": "00000000-0000-0000-0000-000000000000",
"documento_tipo": 1,
"documento_tipo_nombre": "texto",
"estado": 1,
"estado_nombre": "texto",
"estado_descripcion": "texto",
"emisor": 1,
"resolucion": 1,
"resolucion_numero": "texto",
"adquiriente": null,
"prefijo": "texto",
"consecutivo": 0,
"numero": "texto",
"cufe_cude": "texto",
"track_id": "texto",
"envio": null,
"ambiente": null,
"fecha_validacion": "2026-01-31T10:00:00-05:00",
"notificado": true,
"errores": [
{
"id": 1,
"regla": "texto",
"tipo": "rechazo",
"tipo_display": "texto",
"mensaje": "texto"
}
],
"concepto_correccion": "texto",
"fecha_vencimiento": "2026-01-31",
"orden_compra": "texto",
"orden_compra_fecha": "2026-01-31",
"orden_compra_tipo": "texto",
"orden_compra_documento": "texto",
"fecha_emision": "2026-01-31",
"hora_emision": "texto",
"moneda": 1,
"forma_pago": 1,
"medio_pago": 1,
"valor_bruto": "0.00",
"total_impuestos": "0.00",
"total_descuentos": "0.00",
"descuentos_motivo": "texto",
"total_cargos": "0.00",
"cargos_motivo": "texto",
"total_a_pagar": "0.00",
"documento_referencia": "00000000-0000-0000-0000-000000000000",
"observaciones": "texto",
"detalles": [
{
"id": 1,
"numero_linea": 0,
"descripcion": "texto",
"codigo_producto": "texto",
"cantidad": "0.00",
"unidad_medida": 1,
"valor_unitario": "0.00",
"valor_total": "0.00",
"descuento": "0.00",
"descuento_motivo": "texto",
"impuestos": [
{
"id": 1,
"tributo": 1,
"tributo_codigo": "texto",
"base_gravable": "0.00",
"tarifa": "0.00",
"valor": "0.00"
}
],
"nota": "texto",
"marca": "texto",
"modelo": "texto",
"centro_costo": "texto",
"periodo_desde": "2026-01-31",
"periodo_hasta": "2026-01-31",
"periodo_descripcion": "texto",
"periodo_descripcion_codigo": "texto"
}
],
"pos": null,
"creado_en": "2026-01-31T10:00:00-05:00",
"actualizado_en": "2026-01-31T10:00:00-05:00"
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}

RedEDoc es un servicio de Semántica Digital S.A.S.