Webhooks and callbacks are both mechanisms used to enable communication between different systems or components in software development, often for the purpose of executing code in response to specific events. However, they operate in different contexts and are used in different ways.
What are Callbacks?
Callbacks are functions that are passed as arguments to other functions or methods, and they are invoked (or “called back”) after the completion of a task or operation. Callbacks are a common pattern in programming, particularly in asynchronous operations, where you want to execute a piece of code after a certain task is done without blocking the main execution thread.
What are Webhooks?
Webhooks are a type of callback that operates over the web, allowing one system to send real-time data to another system as soon as an event occurs. Unlike traditional callbacks, which are typically defined within the same codebase or application, webhooks are used for communication between different applications or services over the internet.
PDF.co & Webhooks
The webhook or callback endpoint must respond immediately within a few seconds. If the endpoint does not respond within 20-30 seconds, the PDF.co API considers the attempt failed and will retry the callback up to 3 times.
Webhooks can be utilized by setting the callback object with the URL of your choice, which triggers a POST request to the specified webhook URL upon completion of the job process.
{
"callback": "https://example.com/callback/url/you/provided"
}
Basic Authentication in Callback URLs
You can specify Basic Authentication credentials directly in the callback URL like this:
{
"callback": "https://<username>:<password>@example.com/test/"
}
If your password contains special characters (like
@,
:, or
/), be sure to
URL encode them.
Example (with encoded password)
This is useful when the callback endpoint requires HTTP Basic Authentication.
The following APIs accept webhooks:
| Controller | Endpoint |
|---|
AI Invoice Parser Controller | ai-invoice-parser |
Barcode Controller | barcode/generate, barcode/read/from/url |
Convert to PDF Controller | xls/convert/to/pdf, pdf/convert/from/csv, pdf/convert/from/doc, pdf/convert/from/html, pdf/convert/from/image, pdf/convert/from/url, pdf/convert/from/email |
Document Parser Controller | pdf/documentparser |
Email Controller | email/send, email/extract-attachments, email/decode |
PDF Controller | pdf/merge, pdf/merge2, pdf/optimize, pdf/split, pdf/split2, pdf/info, pdf/info/fields, pdf/find, pdf/find/table, pdf/security/add, pdf/security/remove, pdf/classifier, pdf/attachments/extract |
PDF Data Extraction Controller | pdf/convert/to/csv, pdf/convert/to/html, pdf/convert/to/json2, pdf/convert/to/text, pdf/convert/to/text-simple, pdf/convert/to/xls, pdf/convert/to/xlsx, pdf/convert/to/xml |
PDF Edit Controller | pdf/makesearchable, pdf/makeunsearchable, pdf/edit/add, pdf/edit/rotate, pdf/edit/rotate/auto, pdf/edit/delete-pages, pdf/edit/replace-text, pdf/edit/delete-text, pdf/edit/replace-text-with-image |
PDF to Image Controller | pdf/convert/to/jpg, pdf/convert/to/png, pdf/convert/to/webp, pdf/convert/to/tiff |
XLS Controller | xls/convert/to/csv, xls/convert/to/html, xls/convert/to/json, xls/convert/to/txt, xls/convert/to/xml |
Summary
Callbacks are functions passed into other functions to be executed after a task is completed, commonly used within the same codebase.
Webhooks are a type of callback that operates over the web, allowing one system to send data to another system when a specific event occurs, typically via an HTTP POST request.
In essence, webhooks are a practical implementation of the callback concept across different systems, facilitating real-time communication and integration between web applications.