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.
https://api.docuonline.com.ar
Empezá en unos minutos
- Creá una cuenta desde la web o usá
POST /api/Auth/register(incluyecaptchaTokende Cloudflare Turnstile; la API valida el token antes de crear la cuenta). - Obtené un token con
POST /api/Auth/login(respuesta JSON con"Token"). - En cada llamada protegida, enviá el header
Authorization: Bearer <tu_token>. - 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étodo | Ruta | Descripción |
|---|---|---|
| POST | /api/Auth/login | Body: {"email","password"} → {"Token":"..."} |
| POST | /api/Auth/register | Body JSON: name, email, password, captchaToken (respuesta del widget Turnstile; obligatorio). |
| GET | /api/Auth/me | JWT. Perfil, créditos y uso (informativo). |
| PATCH | /api/Auth/me | JWT. Actualizar name, companyName, phone. No modifica correo ni créditos. |
| POST | /api/Contact | Formulario 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 · HTML a Word · URL a PDF · URL a Word · Word a PDF · Firmar PDF
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étodo | Ruta | Créditos | Descripción |
|---|---|---|---|
| GET | /api/Templates | 0 | Lista tus plantillas |
| GET | /api/Templates/{id} | 0 | Detalle (incluye HTML) |
| POST | /api/Templates | 0 | Crear: {"name","htmlContent"} |
| PUT | /api/Templates/{id} | 0 | Actualizar: {"name"} y/o {"htmlContent"} |
| DELETE | /api/Templates/{id} | 0 | Eliminar |
| POST | /api/Templates/preview | 0 | Vista 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}/render | 1 | {"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.