Ir al contenido

Subir por URL

URL base https://api.accessful.de/api/v1/upload-service. Cada petición necesita la cabecera X-API-Key — consulta Autenticación.

Pásanos URLs y nosotros descargamos los PDFs. Las descargas se ejecutan de forma asíncrona.

POST /pdf/upload-by-url-list
Content-Type: application/json
{
"files": [
{ "url": "https://example.com/report.pdf", "filename": "report.pdf" }
],
"callbackUrl": "https://tu-app.example.com/hooks/accessful",
"hmacSignature": "tu-webhook-secret"
}
  • filename debe cumplir ^[A-Za-z0-9_-]+\.pdf$ y tener como máximo 255 caracteres.
  • hmacSignature (el secreto del webhook) debe cumplir ^[A-Za-z0-9_-]{1,64}$.

202 Accepted

{
"accepted": [
{ "uri": "https://example.com/report.pdf", "jobId": "7c2f1e4a-…", "filename": "report.pdf" }
],
"failures": {},
"callbackResult": null
}

Cada jobId se comporta como un caseId — sondea y descarga con él.

Solo se aceptan URL HTTPS públicas. Se comprueban las redirecciones y las direcciones resueltas; se rechazan redes privadas, loopback y link-local. La descarga se limita a 50 MiB y 120 segundos, y el contenido debe ser un PDF válido. Los límites multipart son independientes.

La cabecera UUID opcional Idempotency-Key permite repetir una aceptación duradera. El mismo usuario Accessful, identificador y cuerpo devuelven los mismos IDs, incluso tras cambiar la clave API. Entradas distintas con el mismo identificador devuelven 409. Se conserva al menos 24 horas y mientras el trabajo siga activo. Los clientes existentes pueden omitirla. Guarda el ID antes de enviar; un timeout no demuestra un rechazo.

El propietario puede consultar inmediatamente el trabajo aceptado como queued. Los fallos de descarga o validación producen failed. Un duplicado produce failed, error.code: DUPLICATE_FILE y un existingCaseId del mismo propietario; no se omite silenciosamente.

Las URL de origen no deben contener credenciales ni fragmentos. Una sintaxis de URL incorrecta o un Idempotency-Key mal formado devuelve 400 antes de la aceptación. Conserva la URL y todas las entradas al reintentar con la misma clave; renovar una URL de origen firmada cambia la petición.