Primera llamada
Pida su primer PDF con un POST desde su servidor, partiendo del cuerpo de ejemplo de su tipo de documento.
La llamada
Un POST con la clave en la cabecera y el cuerpo en JSON. La respuesta es el PDF en crudo, con content-type: application/pdf.
curl -X POST "https://docsgen.piensait.com/api/documents" \
-H "authorization: Bearer $DOCGEN_API_KEY" \
-H "content-type: application/json" \
-d @cuenta-de-cobro.json \
-o cuenta.pdfconst respuesta = await fetch(process.env.DOCGEN_URL, {
method: 'POST',
headers: {
authorization: `Bearer ${process.env.DOCGEN_API_KEY}`,
'content-type': 'application/json',
},
body: JSON.stringify({ type: 'cuenta-de-cobro', data }),
});
if (!respuesta.ok) {
// El error viene en JSON y dice qué falta, con el campo. No es un 500 genérico.
throw new Error((await respuesta.json()).error);
}
const pdf = Buffer.from(await respuesta.arrayBuffer());Desde su servidor
La llamada se hace desde su servidor, nunca desde el navegador; el porqué está en Autenticación. Si la respuesta no es correcta, el error viene en JSON y dice qué falta, con el campo: no es un 500 genérico. Ver Errores.
Lo normal después es reexpedir el PDF al usuario con el nombre de archivo que a usted le sirva:
return new Response(pdf, {
headers: {
'content-type': 'application/pdf',
'content-disposition': `attachment; filename="CuentaCobro-${numero}.pdf"`,
},
});
Cuerpos de ejemplo
Hay un cuerpo de ejemplo completo por cada tipo, y no son ilustrativos: forman parte de nuestras pruebas automáticas. Cada vez que tocamos el motor se generan de nuevo, así que si alguno dejara de servir, nos enteramos nosotros antes que usted.
| Tipo | Ejemplo |
|---|---|
factura |
factura.json |
cuenta-de-cobro |
cuenta-de-cobro.json |
recibo-de-caja |
recibo-de-caja.json |
contrato |
contrato.json |
factura con diseño |
factura-premium.json |
factura en tirilla POS |
factura-tirilla.json |
nota-credito |
nota-credito.json |
nota-debito |
nota-debito.json |
recibo-de-caja con diseño |
recibo-de-caja-premium.json |
estado-de-cuenta |
estado-de-cuenta.json |
colilla-de-nomina |
colilla-de-nomina.json |
colilla-de-nomina con salario integral |
colilla-de-nomina-integral.json |
informe vertical |
informe.json |
informe horizontal |
informe-horizontal.json |
entrada-de-inventario |
entrada-de-inventario.json |
salida-de-inventario |
salida-de-inventario.json |
traslado-de-inventario |
traslado-de-inventario.json |
La forma más rápida de empezar es tomar el ejemplo de su tipo, cambiarle los datos por los suyos y mandarlo. Después se recorta lo que no aplique.
Empezar
- Escríbanos y le entregamos su clave. Es de un solo uso al entregarla: no la guardamos en ninguna parte, así que si se pierde emitimos otra.
- Tome el ejemplo de su tipo de documento y mándelo tal cual, sin cambiar nada: debe recibir un PDF. Ese paso separa un problema de conexión de un problema de datos.
- Cámbielo por sus datos reales, campo por campo. Qué va en cada uno está en Qué va dentro de
data. - Llame desde su servidor, nunca desde el navegador.
