Ir al contenido

POST /api/emisores/resolucion/{id}/crear-documento-prueba/

POST /api/emisores/resolucion/{id}/crear-documento-prueba/

Crea un documento de prueba en borrador sobre esta resolución.

POST /api/emisores/resolucion/{id}/crear-documento-prueba/, con {"consecutivo": <n>} opcional.

Es el mismo documento que siembra el alta del software, pero de uno en uno y sobre la resolución que se indique. Sirve para completar un Set de Pruebas al que le faltan documentos sin tener que componerlos a mano.

El tipo lo decide la resolución, no quien llama: su tipo_factura es el mismo código que el codigo_dian del tipo de documento, así que una resolución de facturación (01) da una factura de venta y una de documento soporte (05), un documento soporte.

Sin consecutivo toma el siguiente libre: el posterior al mayor que ya se usó de esa resolución para ese tipo, o el primero del rango si todavía no hay ninguno.

Solo lo crea: no lo firma ni lo envía. Para eso está emitir de /api/documentos/documento/{id}/, que firma y envía.

operationId: emisores_resolucion_crear_documento_prueba_create

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
idpathintegerUn valor de entero único que identifique este resolución.

Tipo de contenido: application/json · obligatorio.

CampoTipoObligatorioDescripción
emisorinteger
tipo_facturainteger
numero_resolucionstring
fecha_resolucionstring (date)
prefijostring
rango_desdeinteger (int64)
rango_hastainteger (int64)
vigente_desdestring (date)
vigente_hastastring (date)
clave_tecnicastringno
activabooleanno
Ventana de terminal
curl -X POST "https://api.rededoc.uk/api/emisores/resolucion/<id>/crear-documento-prueba/" \
-H "Authorization: <llaveapi>" \
-H "Content-Type: application/json" \
-d '{
"emisor": 1,
"tipo_factura": 1,
"numero_resolucion": "texto",
"fecha_resolucion": "2026-01-31",
"prefijo": "texto",
"rango_desde": 0,
"rango_hasta": 0,
"vigente_desde": "2026-01-31",
"vigente_hasta": "2026-01-31",
"clave_tecnica": "texto",
"activa": true
}'
CódigoDescripción
200
400Error
401Error
404Error
429Error
CampoTipoDescripción
idintegerSolo lectura.
emisorinteger
tipo_facturainteger
numero_resolucionstring
fecha_resolucionstring (date)
prefijostring
rango_desdeinteger (int64)
rango_hastainteger (int64)
vigente_desdestring (date)
vigente_hastastring (date)
activaboolean
{
"id": 1,
"emisor": 1,
"tipo_factura": 1,
"numero_resolucion": "texto",
"fecha_resolucion": "2026-01-31",
"prefijo": "texto",
"rango_desde": 0,
"rango_hasta": 0,
"vigente_desde": "2026-01-31",
"vigente_hasta": "2026-01-31",
"activa": true
}
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"
}
]
}
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.