Documentación de la API

Integrá conversiones y plantillas en tu propia aplicación, o probá los endpoints a mano. Acá tenés lo esencial para empezar sin dar vueltas.

URL base de la API

https://api.docuonline.com.ar

Empezá en unos minutos

  1. Creá una cuenta desde la web o usá POST /api/Auth/register (incluye captchaToken de Cloudflare Turnstile; la API valida el token antes de crear la cuenta).
  2. Obtené un token con POST /api/Auth/login (respuesta JSON con "Token").
  3. En cada llamada protegida, enviá el header Authorization: Bearer <tu_token>.
  4. Las conversiones y plantillas consumen créditos según tu cuenta; el saldo lo ves en el dashboard y podés comprar más en Créditos.

Probar con curl

Reemplazá email, contraseña y rutas de archivo. En Windows PowerShell podés usar curl.exe o Postman.

1. Login (obtenés el JWT)

curl -X POST "https://api.docuonline.com.ar/api/Auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"tu@email.com","password":"tu_contraseña"}'

Respuesta esperada: {"Token":"..."}. Copiá el valor de Token para el siguiente paso. En Windows (cmd) podés usar línea única o ^ en lugar de \ para continuar línea.

2. HTML a PDF (ejemplo con archivo)

curl -X POST "https://api.docuonline.com.ar/api/Conversion/html-to-pdf" \
  -H "Authorization: Bearer TU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{"fileBase64":"BASE64_DEL_HTML"}' \
  --output salida.pdf

Generá el Base64 de tu HTML (por ejemplo con OpenSSL o desde tu lenguaje). La respuesta es el PDF en binario.

Postman o Insomnia

Misma URL y headers: tipo Bearer Token en la pestaña Authorization, o header manual Authorization: Bearer .... Body en JSON según cada endpoint.

Autenticación

MétodoRutaDescripción
POST/api/Auth/loginBody: {"email","password"}{"Token":"..."}
POST/api/Auth/registerBody JSON: name, email, password, captchaToken (respuesta del widget Turnstile; obligatorio).
GET/api/Auth/meJWT. Perfil, créditos y uso (informativo).
PATCH/api/Auth/meJWT. Actualizar name, companyName, phone. No modifica correo ni créditos.
POST/api/ContactFormulario público: name, email, message; opcional submittedFromIp, captchaToken (Turnstile si está activo en el servidor). Rate limit por IP; tamaños máximos 200 / 320 / 8000 caracteres.

Conversiones

Todas requieren Authorization: Bearer. La respuesta suele ser el archivo binario (PDF o Word). Podés saltar al detalle de cada una:

HTML a PDF

POST https://api.docuonline.com.ar/api/Conversion/html-to-pdf

Body JSON: {"fileBase64":"<HTML en Base64>"}. Respuesta: PDF binario. Es el mismo flujo que la herramienta web: subís un .html y el servidor lo codifica en Base64 hacia la API.

HTML a Word

POST https://api.docuonline.com.ar/api/Conversion/html-to-word

Body: {"fileBase64":"..."}. Respuesta: archivo Word (.docx).

Página web a PDF

POST https://api.docuonline.com.ar/api/Conversion/url-to-pdf

Body: {"url":"https://..."} (página pública accesible). Respuesta: PDF.

Página web a Word

POST https://api.docuonline.com.ar/api/Conversion/url-to-word

Body: {"url":"https://..."}. Respuesta: Word (.docx).

Word a PDF

POST https://api.docuonline.com.ar/api/Conversion/word-to-pdf

Body: {"fileBase64":"..."} con el documento Word en Base64. Respuesta: PDF.

Firmar PDF

POST https://api.docuonline.com.ar/api/Conversion/sign-pdf

Body JSON: pdfBase64, signatureImageBase64, pageIndex (0 = primera página); opcionales x, y, width, height para la posición de la firma. Respuesta: PDF firmado.

Plantillas

Todas requieren Authorization: Bearer. Las plantillas se guardan por usuario en la API; los modelos precargados (factura, presupuesto, etc.) están en la web en Plantillas base y al usarlos se crea una copia tuya con POST /api/Templates.

Sintaxis en el HTML: {{variable}}, listas {{#each items}} … {{/each}}, condicionales {{#if campo}} … {{/if}} (nombres alfanuméricos y punto para anidar). Los valores se escapan en la salida.

MétodoRutaCréditosDescripción
GET/api/Templates0Lista tus plantillas
GET/api/Templates/{id}0Detalle (incluye HTML)
POST/api/Templates0Crear: {"name","htmlContent"}
PUT/api/Templates/{id}0Actualizar: {"name"} y/o {"htmlContent"}
DELETE/api/Templates/{id}0Eliminar
POST/api/Templates/preview0Vista previa sin guardar: {"htmlContent":"…","variables":{…}}text/html renderizado. No consume créditos; hay límite de frecuencia (rate limit). Tamaño máximo de htmlContent: 400 000 caracteres.
POST/api/Templates/{id}/render1{"variables":{"clave":"valor"}} → HTML renderizado desde la plantilla guardada. Podés encadenar con html-to-pdf para obtener PDF (otro crédito).

Créditos y pagos

La compra de paquetes de créditos y el pago con Mercado Pago se gestionan desde Créditos en tu cuenta.

Errores habituales

  • 401 — Token ausente, vencido o inválido. Volvé a iniciar sesión y renová el Bearer.
  • 400 — Suele incluir un mensaje (Base64 inválido, URL incorrecta, etc.).
  • Sin créditos — Verificá tu saldo en el dashboard y cargá créditos si hace falta.

¿Necesitás ayuda?

Si algo no te cierra o tu caso es particular, escribinos desde Contacto (formulario web). Te responderemos en el correo que indiques en ese formulario.

Ha ocurrido un error, intenta recargar la pagina. Recargar 🗙