
The PDF Services API handled messy real-world invoice layouts (cross-border agricultural export documents) reliably enough that I could build a structured-data extraction pipeline on top of it without writing my own OCR/parsing layer from scratch. Paired with the eSign API for the signing step, I was able to build an end-to-end invoice reconciliation engine that hit an F1 of 0.738 — well above both an exact-match baseline (0.401) and a single-prompt LLM baseline (0.562). Integration was straightforward enough to get a working prototype together during a hackathon timeframe. Review collected by and hosted on G2.com.
A few rough edges: the PDF Services conversion flow is fully async (upload → create task → poll /tasks/{taskId} until COMPLETED → download) with no webhook option I could find, so I had to write my own polling loop with a timeout instead of getting a result back synchronously. Documentation was also inconsistent in places — several Foxit blog posts reference a base URL for eSign (na1.foxitesign.foxit.com) that didn't match what actually worked in my sandbox (na1.fusion.foxit.com/esign/...); I only found the right one by pulling a sample request straight from my own dashboard. The two APIs are also inconsistent with each other in how they take file input — PDF Services wants multipart upload, eSign wants a base64 string embedded in the JSON body — so I couldn't reuse the same upload helper across both. Review collected by and hosted on G2.com.