Postman collection for Penneo Webhook
Test Penneo's webhook API using our official Postman collection. Create and manage webhook subscriptions, fire test events to your endpoint, and inspect the exact payload structure.
Import the collection
In Postman, go to Import → Link and paste the URL below:
https://raw.githubusercontent.com/Penneo/Penneo-api-postman/main/penneo-webhooks.postman_collection.json
Prerequisites
Before running the collection you need:
- An OAuth client created in Penneo (to create an OAuth client you need Admin access)
- API keys generated for your account
- A publicly reachable URL to receive webhook events - use webhook.site for a free disposable endpoint during testing
See Authentication for step-by-step instructions on setting up OAuth clients and API keys.
Setup
After importing, open the collection in Postman and go to the Variables tab. Fill in the required variables:
| Variable | Description |
|---|---|
clientId | Your OAuth client ID |
clientSecret | Your OAuth client secret |
apiKey | Your Penneo API key |
apiSecret | Your Penneo API secret |
webhookEndpoint | The URL Penneo should POST events to |
The collection is pre-configured for sandbox. When you are ready to test against production, update the following variables:
| Variable | Production value |
|---|---|
baseUrl | https://app.penneo.com |
authUrl | https://login.penneo.com |
Requests
1. Get Access Token
Authenticates using the API Keys Grant flow. The nonce, timestamp, and digest are calculated automatically by the pre-request script - no manual steps required.
The access token is valid for 10 minutes. If a later request returns 401, re-run this request to get a fresh token.
2. Create Subscription
Creates a webhook subscription. Penneo will POST a JSON payload to your webhookEndpoint URL whenever any of the subscribed eventTypes occur.
The request body is pre-configured with a set of common event types and isActive: true. Update the eventTypes array to match the events your integration needs. See Supported event types below for the full list.
The subscription ID and secret are saved automatically on success.
Each endpoint URL can only be used by one subscription per account. Creating a second subscription with the same endpoint returns
409 Conflict.
3. Get Subscription
Fetches the details of the subscription created in request 2. Useful for confirming the configuration is correct before sending test events.
4. List Subscriptions
Returns all webhook subscriptions registered on your account. Use this to audit what is currently configured.
5. Test Subscription
Fires a webhook.subscription.test event to all active subscriptions that include it in their eventTypes. Open your webhook endpoint after running this request to inspect the exact payload structure Penneo delivers.
Make sure your subscription includes
webhook.subscription.testin its event types. The default configuration in request 2 already includes it.
6. Update Subscription
Replaces the configuration of the subscription. Use this to add or remove event types, or to temporarily pause delivery by setting isActive to false.
This is a full replace - all fields must be included in the request body.
7. Delete Subscription
Permanently removes the subscription. Penneo will stop delivering events to the endpoint immediately. The subscriptionId variable is cleared automatically after a successful deletion.
Supported event types
Casefile events
| Event type | Description |
|---|---|
sign.casefile.completed | Everyone has signed and the signed PDF documents are ready for download. |
sign.casefile.expired | The signing process has expired (e.g. a deadline was reached without all required signatures). |
sign.casefile.failed | An error occurred on our side; this may require contacting support. |
sign.casefile.rejected | One or more signers have rejected the signing request. |
Signer events
| Event type | Description |
|---|---|
sign.signer.requestActivated | Signer is prepared to sign after casefile activation or signing round availability. |
sign.signer.requestSent | Initial signing request email delivery occurred. |
sign.signer.reminderSent | Signing reminder notification was sent. |
sign.signer.requestOpened | A signing request email has been opened. |
sign.signer.undeliverable | Penneo cannot send emails to the signer; check the signer's email address. |
sign.signer.opened | The signer has viewed the signing page. |
sign.signer.rejected | The signer has rejected the signing request. |
sign.signer.signed | The signer has signed. |
sign.signer.signedWithImageUploadAndNAP | Signer completed signing via image upload with NAP. |
sign.signer.finalized | The casefile containing the signer has been finalized. |
sign.signer.deleted | The signer has been deleted from the casefile. |
sign.signer.transientBounce | The signer's email temporarily failed delivery. |
Test events
| Event type | Description |
|---|---|
webhook.subscription.test | Test event for validating endpoint functionality. Triggered by request 5. |
Updated about 4 hours ago
