Generate a PDF from XSLT or fill an existing PDF form.
Overview
Generate a PDF from XSLT or fill an existing PDF form. API clients must be tenant-aware, permission-aware, and capable of handling both JSON and binary responses.
Key points
- The document endpoint transforms XML using stored XSLT and sends the result to the PDF service.
- The forms fields endpoint inspects a PDF.
- The forms render endpoint runs mapping XSLT and fills the form.
- Binary and base64 response modes are supported.
- All operations require render permission.
Endpoints
| Method | Route | Purpose |
|---|---|---|
| POST | /api/v1/pdf/document | Transform XML through a stored XSLT PDF template. |
| POST | /api/v1/pdf/forms/fields | Inspect the fields in a supplied or stored PDF form. |
| POST | /api/v1/pdf/forms | Fill a PDF form from XML and a stored mapping. |
Recommended procedure
- Send authentication and instance headers.
- Validate the request body before transmission.
- Inspect HTTP status, content type, and structured errors.
- Log non-sensitive identifiers needed to reproduce failures.
Client requirements
- Check the HTTP status before processing the body.
- Check
Content-Typebefore deciding whether the response is JSON, DOCX, or PDF. - Do not log authentication tokens or complete client document data.
- Preserve the instance context through every Feradel service-to-service call.
- Treat validation and compilation errors as input or template defects rather than transient network failures.
Troubleshooting
A client treats an error as a file
Check HTTP status and Content-Type before writing the response body to disk.
The same request works in another tenant
Compare instance, owner, token permissions, and object UUIDs.
A route returns an unexpected envelope
The current controllers are not fully standardized; handle HTTP status and documented fields defensively.
Related documentation
Documentation source: feradelinc/feradel.render.api, reviewed against repository revision b2c3a710. Verify behavior against the deployed release before publishing exact routes, limits, or version requirements.