Only the Workspace Owner can configure or update the app webhook URL. App webhooks are only available for Private (Server) application types.
How app webhooks differ from account webhooks
Configure an app webhook
1
Open Developer settings
In Lumin, go to Settings → Developer settings → Integration apps tab.
2
Select your app
Click the app you want to configure. If you haven’t created one yet, click Create app.
3
Enter your webhook URL
Under the Receive events on behalf of users section, enter your endpoint URL. The URL must use HTTPS.
4
Save
Click Save.
Events received
Your app webhook receives events based on the OAuth scopes users have granted your app. For example, if a user does not grant thesign:requests.read or sign:requests scope, your app will not receive signature request events for that user.
For the full list of available event types, see Supported event types.
Verify webhook signatures
Every request Lumin sends includes the following headers:User-Agent: AlwaysLumin Sign APIX-Signature: An HMAC-SHA256 hex digest of the request body, signed with your app’s signing secret
1
Read the header
Extract the
X-Signature value from the incoming request headers.2
Compute the expected signature
Compute HMAC-SHA256 of the raw request body using your app’s signing secret.
3
Compare
Compare your computed value to the
X-Signature header. Use a constant-time comparison to avoid timing attacks.4
Reject mismatches
If the values do not match, reject the request with a non-200 status.
Respond to events
Your endpoint must return HTTP200 OK within 30 seconds of receiving a request. No response body is required.
Error handling and retries
If your endpoint does not return200 OK, Lumin retries the delivery. The following conditions trigger a retry:
- HTTP
4xxor5xxresponse - No response within 30 seconds (timeout)
- Connection failure