Skip to main content

Overview

Webhooks enable you to receive real-time notifications when specific events occur in Forerunner. Instead of polling the API, your application can be notified immediately when files are processed, records are updated, or other important events happen.

How Webhooks Work

1

Configure your webhook endpoint

Set up an HTTPS endpoint on your server that can receive POST requests from Forerunner. We recommend writing one endpoint capable of handling all webhook payloads.
2

Register with Forerunner

Contact your CS representative with your HTTPS endpoint URL and any required authentication headers to enable webhook delivery.
3

Receive webhooks

When a relevant event occurs, Forerunner sends HTTP POST requests to your endpoint with the results.
4

Process and respond

Your endpoint processes the data and returns a 2XX status code to acknowledge receipt.

Request Headers

Every webhook request includes the following HTTP headers:
HeaderValue
Content-Typeapplication/json
Additional authentication headers can be configured upon request.

Webhook payloads

Forerunner sends webhooks for specific events in your account. Each event type has its own payload structure.

Document finished processing

Sent when a document finishes processing, including OCR, validation, and data extraction. This is the primary webhook for tracking file processing status.

Retry Policy

Forerunner implements automatic retries for failed webhook deliveries. If your server returns a non-2XX HTTP status code, Forerunner will retry the webhook request up to 2 times using an exponential backoff algorithm to avoid overwhelming your server.

Troubleshooting

Webhook not received

1

Verify endpoint accessibility

Ensure your endpoint is publicly accessible via HTTPS
2

Check firewall rules

Confirm your firewall allows incoming requests from Forerunner’s IP ranges
3

Review server logs

Check for incoming requests and any errors in your application logs
4

Test with curl

Send a test POST request to verify your endpoint works:
curl -X POST https://your-domain.com/your-webhook-url \
  -H "Content-Type: application/json" \
  -d '{"file":{"id":"test123","status":"completed","url":"https://example.com/documents/test123","validationIssues":[]}}'