Get webhooks when documents are signed or forms submitted
In Settings → API keys → Webhooks, enter an https Endpoint URL, pick Events and click Add endpoint. Copy the signing secret (shown once) and use it to verify the PDFBetter-Signature header.
Updated 2 min read Available on Business
On this page (4)
Webhooks tell your server the moment something changes, so you don't have to poll. They're part of the Business plan and live on the same page as your API keys.
Add an endpoint
Step 1: Open API keys
Click Settings at the bottom of the sidebar, then API keys, and scroll to Webhooks.
Step 2: Enter the endpoint
Type your Endpoint URL. It must use https and reach a public address. Add a Description if you have several.
Step 3: Pick events
Tick the Events you want, or All events (including ones added later).
Step 4: Save and copy the secret
Click Add endpoint. Copy the signing secret now; it won't be shown again.
Step 5: Send a test
Click Test next to the endpoint and check your server's logs for the event.
Events
| Event | Type |
|---|---|
| Request sent / Recipient viewed / Recipient signed | signature_request.sent, .viewed, .signed |
| Request completed | signature_request.completed |
| Recipient declined / Request canceled / Request expired | signature_request.declined, .canceled, .expired |
| Form response | form.response_created |
| Document exported | document.exported |
| Bulk fill finished | bulk_job.completed |
| Workflow awaiting approval / succeeded / failed / export ready / webhook step | workflow.run.* |
Receiving events
- Reply with any 2xx within 10 seconds and do slow work afterwards. Redirects count as failures.
- Verify the
PDFBetter-Signatureheader with the endpoint's signing secret. The developer docs show how, with code. - Failed deliveries are retried. The event
idstays the same, so de-duplicate on it. - Order isn't guaranteed. Fetch the resource if you need its latest state.
Manage endpoints
Next to each endpoint: Test sends a test event, Rotate secret issues a new signing secret (it takes effect immediately), Disable/Enable pauses deliveries, and the trash icon deletes it. Deleting stops deliveries at once, including queued retries.
Can a workflow send a webhook?
Yes. Add a Send webhook step, or set an Export step to Also send to my webhook endpoints (Business). Both go to the endpoints set up here.
I'm not on Business. Is there another way to get notified?
Zapier and Make triggers (for example Document Fully Signed) work on any plan with an account and don't use this page.
Did this answer your question?
Related articles
- Use the PDFBetter API and create an API keyOn Business, open Settings → API keys, name the key, tick its Permissions and click Create key. Copy it right away; send it as Authorization: Bearer pb_live_… to https://api.pdfbetter.com/v1/.
- PDFBetter actions and triggers in Zapier and MakeZapier and Make get the same set: 15 instant triggers (signing, forms, exports, bulk fills, workflow runs) and actions for documents, pages, conversion, AI, extraction, workflows, workspaces, forms and signatures.
- Automate repeated steps with saved workflowsOpen Workflows, pick a recipe or Start empty, add steps, choose how it starts, then click Create workflow. Each step uses its usual allowance (OCR pages, AI credits), and your plan sets how many workflows you can save.
- Track, remind, cancel or resend a signature requestOpen Sent in the sidebar and select a request. Each recipient shows Emailed, Opened, Signed or Declined. Use Remind, New link / fix email or Cancel request, and download the Signed PDF and Certificate once it's Completed.