Overview
Dynamic Delivery allows SellAuth to automatically deliver product content by sending a POST request to your server. Your server generates and returns the deliverables in real time (for example: license keys, credentials, or access tokens). Stock for Dynamic Delivery products is managed manually and can be set to infinite.Reselling another SellAuth shop’s products? That shop generates ready-made delivery URLs for you; no server needed. See Reseller Dynamic Delivery.
How It Works
- A customer completes checkout.
- SellAuth sends a POST request to your webhook URL for each item in the invoice.
- Your server processes the request and returns the deliverables.
- SellAuth displays the returned content to the customer.
Webhook Request
HTTP Details
- Method:
POST - Content-Type:
application/json - Connect timeout: 5 seconds
- Request timeout: 10 seconds
- Retries: 3 total attempts
- Retry interval: 5 seconds between each attempt
- Maximum response size: 1 MB
Example Request Body
Request Headers
Signature Verification
Each request is signed using HMAC-SHA256 and can be verified using theX-Signature header.
The webhook secret can be found in your dashboard under
Storefront > Configure > Miscellaneous: dash.sellauth.com/shop#miscellaneous
If the secret is not visible, click Regenerate to create one.
Signature Generation Logic
The signature is generated from the raw JSON body:- JavaScript
- PHP
- Python
Webhook Response
Success Response
If your server responds with HTTP 200, the item is marked as completed and the returned body is shown to the customer. Each line in the response body is treated as a separate deliverable.Example Success Response
Retryable Errors
SellAuth will automatically retry the request if a network error occurs (connection timeout, request timeout, etc.) or if your server responds with:- 429 (Too Many Requests)
- 500 (Internal Server Error)
- 501 (Not Implemented)
- 502 (Bad Gateway)
- 503 (Service Unavailable)
- 504 (Gateway Timeout)
Non-Retryable Errors
If the response status is not 200, not 429, and not any of the 5xx codes listed above:- The item is marked as failed.
- If a response body is provided, it will be displayed on the checkout page so the customer can see your error message.
Example Error Response
Invoice Status Behavior
- If the webhook fails or times out, the invoice status will be
partially_completed - If the webhook succeeds and all items are delivered, the invoice status will be
completed - If the webhook succeeds but not all items are delivered, the invoice status will remain
partially_completed