Overview
As part of the Slicker integration, you need to implement webhook endpoints that Slicker will call to deliver optimization decisions and dunning instructions to your billing system. All webhook events use a unified structure with a consistent envelope format.Implementation Requirements
Endpoint Configuration
- Protocol: HTTPS only (unencrypted HTTP is not supported)
- Method: POST
- URL: You define the webhook URL used for all event types and provide it to Slicker during integration setup
- Content Type: application/json
Authentication
Your webhooks must implement one of the following authentication methods to ensure that only Slicker can trigger events:Bearer Token Authentication
Basic Authentication
Unified Event Structure
All webhook events use a consistent envelope format:Common Fields
Event Types
Recovery Action Event
Sent when a payment should be retried:ACTION_SUGGESTION_RETRY: Attempt to process the payment againACTION_SUGGESTION_CARD_CHANGE: Request an updated payment method from the customerACTION_SUGGESTION_UNSPECIFIED: No specific action recommended
Pause Invoice Collection Event
Sent when automatic retries should be paused. This is used during A/B tests to control which invoices should be retried by Slicker vs your system.Complete Dunning Event
Sent when dunning should be completed before the dunning period ends.Response Format
Your webhook should respond with a 200 OK status code and an optional JSON body if the event was successfully received:Implementation Best Practices
Security
- Use HTTPS with valid SSL certificates
- Set up authentication with strong credentials
- (Optional) Implement IP whitelisting (Slicker can provide IP ranges)
Reliability
- Acknowledge receipt quickly and process asynchronously
- Implement idempotent processing based on event
idto handle potential duplicate webhooks - Return appropriate error codes if requests can’t be processed
- Slicker will retry failed webhooks, so ensure idempotency
Retry Policy
Slicker automatically retries failed webhook deliveries using a two-phase strategy: immediate synchronous retries followed by delayed asynchronous retries. A delivery is considered successful when your endpoint returns any2xx HTTP status code within 30 seconds. Any other response (or a timeout/connection error) is treated as a failure and triggers retries.
Recovery Action Events
Recovery action webhooks are retried up to 6 total attempts:
After 6 failed attempts, the webhook is marked as exhausted and no further retries occur.
Pause Collection & Complete Dunning Events
These event types are retried up to 7 total attempts:
After 7 failed attempts, the webhook is marked as exhausted and no further retries occur.
Handling Retries
Each webhook event has a unique
id field. Use this to deduplicate events on your side — you may receive the same event more than once if your endpoint returned a success after Slicker’s timeout window or due to network issues.- Respond quickly: Return a
2xxwithin 30 seconds. If processing takes longer, acknowledge receipt immediately and process the event asynchronously. - Idempotency: Store the event
idand skip processing if you’ve already handled it. - Monitoring: If all retries are exhausted, the event is marked as failed in Slicker’s delivery logs. Contact support if you experience persistent delivery failures.
Monitoring
- Set up alerts for failed webhook calls
- Monitor webhook endpoint uptime
Reference Documentation
For detailed API specifications, see:Support
If you need assistance with your webhook implementation:- Contact your Slicker integration specialist
- Email support@slickerhq.com