Webhook Subscriptions and Asynchronous Event Bus
Configuring event subscriptions for record creation, modification, and deletion, asynchronous queue processing, and HMAC verification.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Webhook Subscriptions and Asynchronous Event Bus within SmartERP.
The SmartERP Webhook Event Bus broadcasts real-time transaction events to subscribing external URLs, eliminating resource-intensive polling loops.
Webhook Subscription Workflow#
- Navigate to Settings → Technical → Integration → Webhook Subscriptions → New.
- Select target model:
sale.order(Sales Orders). - Select trigger event:
On State Transition to Confirmed. - Define target endpoint URL:
https://webhook.site/my-endpoint. - Enter shared secret for HMAC-SHA256 signature verification.
- When triggered, the system dispatches JSON payloads accompanied by header
X-SmartERP-Signature.
{screenshot:webhook-subscriptions-and-event-bus-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
base, web, smarterp_core, payment - Security Groups:
Integration Specialist(Technical ID:base.group_user)System Administrator / API Director(Technical ID:base.group_system)
- Master Data Dependencies: Established API keys, configured payment providers, and verified external webhook callback endpoints.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the Settings app icon.
- From the top navigation bar, open Technical → Integrations → API Keys / Webhooks.
{screenshot:webhook-subscriptions-and-event-bus-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the integration form:
- Endpoint Name (Mandatory): Descriptive identifier for the external client application.
- Allowed API Scopes (Mandatory): Explicit read/write model permissions.
- Authentication Mode (Mandatory): Bearer Token, API Key, or HMAC-SHA256 signature.
- Configure optional parameters: rate limit quotas, IP address allowlists, and retry schedules.
{screenshot:webhook-subscriptions-and-event-bus-record-creation-form}
Step 3: Validating and Processing Transactions#
- Execution & Validation: Dispatch test payload from external client tool (cURL / Postman).
- Log Verification: Inspect HTTP response status (HTTP 200 OK) in the API access log.
{screenshot:webhook-subscriptions-and-event-bus-transaction-processing-state}
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
Integration: Clean stale webhook queues(base.ir_cron_webhook_cleanup)Integration: Sync currency exchange rates(base.ir_cron_currency_rates)
- Custom Print Templates & Reports:
- API Usage & Latency Telemetry Audit Report
- FinTech Reconciliation & Settlement Statement
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.).
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
HTTP 401: Invalid API Key | Client authorization header missing or key revoked. | Generate fresh API key under User Preferences and update client header. |
HTTP 429: Too Many Requests | Request volume exceeded configured per-minute rate limit. | Implement exponential backoff in client script or request rate quota increase. |
HMAC Signature Mismatch | Webhook payload modified in transit or mismatched secret key. | Verify raw JSON bytes encoding before computing HMAC signature. |