DELETE /api/emisores/certificado/{id}/
DELETE /api/emisores/certificado/{id}/
Consulta y baja de certificados; la escritura entra solo por cargar.
No es un ModelViewSet a propósito. La única forma de que un .p12
llegue a la base es cargar, que valida el archivo (validar_pkcs12:
integridad, clave, vigencia, llave RSA y NIT del emisor) y exige que
Backblaze B2 esté configurado para no dejar material criptográfico en disco
local. Mientras esto fue un ModelViewSet, PUT y PATCH seguían
publicados y rodeaban las dos comprobaciones: bastaba un PATCH con un
archivo nuevo para guardarlo sin validar, o un PATCH de emisor
para mover el certificado a otro emisor del alcance.
Por eso quedan solo list, retrieve, destroy y cargar. No hay
edición: el alias se fija al subir, y el certificado se reemplaza
borrando el que hay y cargando el nuevo.
Tampoco hay un create que devuelva un 405 con la pista de cargar:
el router decide qué verbos monta mirando si el viewset tiene el método,
no de qué mixin viene, así que definirlo volvería a publicar POST en la
ruta de lista y drf-spectacular lo documentaría como una creación normal.
operationId: emisores_certificado_destroy
Autenticación
Sección titulada «Autenticación»Cualquiera de estas credenciales:
- LlaveApi — Llave de API de una integración. El valor completo es
Api-Key <prefijo>.<secreto>, tal como lo imprimemanage.py crear_llave_api. La llave alcanza exactamente los mismos emisores que la persona a cuyo nombre se creó.
Parámetros
Sección titulada «Parámetros»| Nombre | En | Tipo | Obligatorio | Descripción |
|---|---|---|---|---|
id | path | integer | sí | Un valor de entero único que identifique este certificado digital. |
Ejemplo
Sección titulada «Ejemplo»curl -X DELETE "https://api.rededoc.uk/api/emisores/certificado/<id>/" \ -H "Authorization: <llaveapi>"Respuestas
Sección titulada «Respuestas»| Código | Descripción |
|---|---|
204 | No response body |
401 | Error |
404 | Error |
429 | Error |
401 — cuerpo
Sección titulada «401 — cuerpo»| Campo | Tipo | Descripción |
|---|---|---|
detail | string | Mensaje para mostrar a la persona. |
errores | array<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" } ]}404 — cuerpo
Sección titulada «404 — cuerpo»| Campo | Tipo | Descripción |
|---|---|---|
detail | string | Mensaje para mostrar a la persona. |
errores | array<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" } ]}429 — cuerpo
Sección titulada «429 — cuerpo»| Campo | Tipo | Descripción |
|---|---|---|
detail | string | Mensaje para mostrar a la persona. |
errores | array<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.