Skip to main content
Prophic webhooks push a lean JSON payload to your HTTPS endpoint every time a Quick Quote pipeline step finishes, so you can react without polling. You need the Manage integrations permission to configure endpoints.
Lean payload. Webhook bodies carry IDs and status only, never the full proposal document. After a notification, call the integrations API to fetch what you need.

Add a webhook endpoint

1

Open Account → Webhooks

You must hold Manage integrations to see this screen. Org admins have it by default.
2

Add your HTTPS URL

Enter the endpoint that will receive POST requests and give it a descriptive name.
3

Choose the events

Pick the event types you want to receive (see the event catalog below). Most partners subscribe to quotation.proposal.completed and quotation.failed.
4

Pick a trigger mode

  • Headless only (default): only notify when the quote was started with an API key. Recommended for partner integrations to avoid noise from UI activity.
  • Always: notify for both UI Quick Quotes and API-key runs.
5

Copy the signing secret

The whsec_... value is shown once. Store it securely; you will need it to verify signatures.
6

Send a test delivery

Use Send test to confirm your URL accepts deliveries. Check the delivery log for HTTP status codes and errors.

Event catalog

Payload shape

Lean webhook JSON
For failures, status is failed, error_code may be set, and step is the failed step when known. Always deduplicate on id because delivery is at-least-once.

Delivery headers

Every delivery includes these headers:

Verify signatures

Every request is signed with your endpoint’s secret. Verify the signature before trusting the payload.
1

Keep the raw body bytes

Do not parse and re-serialize the JSON before checking the signature; whitespace differences will break the HMAC.
2

Compute HMAC-SHA256

Compute HMAC-SHA256(secret, timestamp + "." + rawBody) using the whsec_... value you stored when creating the endpoint.
3

Compare in constant time

Compare your hex digest against the value after v1= in X-Prophic-Signature. Use a constant-time comparison to prevent timing attacks.
4

Check the timestamp

Reject the request if X-Prophic-Timestamp is more than about five minutes from your server clock. This blocks replay attacks.
5

Deduplicate on event ID

Track processed id values so at-least-once retries do not double-process the same event.

Example: Node.js verification

verify.js

Delivery behavior

  • HTTPS only. Prophic will not deliver to plain HTTP endpoints.
  • ~10 second timeout. Return 2xx quickly. Do the heavy work asynchronously.
  • Exponential backoff. Failed deliveries retry up to 8 times.
  • HTTP 410 is permanent. Return 410 Gone to stop future retries for a specific event.
  • At-least-once. Deduplicate on id.

Trigger modes

End-to-end checklist

  • API key created and stored
  • POST /quotations returns 202 and a quotation_id
  • Webhook endpoint enabled with the events you care about
  • Test event succeeds in the delivery log
  • Signature verification works in your receiver
  • GET .../document-url returns a working short-lived URL after quotation.proposal.completed

API Reference

Full contracts for managing endpoints and delivery logs.

API Keys

Create the credentials that scope your headless quotes.