Advanced RESTful APIs & webhooks
A powerful toolkit for managing webhooks and RESTful APIs in Odoo. Easily create, configure, and monitor webhook endpoints for seamless third-party integration.
Free Module Customization Offer!
Need assistance or have questions? We're here to help!
Get up to 10 hours of free customization for this module!
Customize this module to match your specific business needs. Whether it's enhancing existing features or adding new functionalities, our team is ready to assist you.
Contact Us: developer.nxonbytes@gmail.com
Webhook Service

RESTAPI Service

Key Features
Unlock the full potential of seamless system integration with our **Advanced RESTful API & Webhook Kit**. Designed for efficiency and reliability, this module offers two core functionalities:
RESTful API Service
- Seamless Third-Party Integration: Expose Odoo endpoints securely for smooth data exchange.
- Customizable Endpoints: Define and configure API services tailored to your business needs.
- Secure Authentication: Ensure data protection with token-based authentication.
Webhook Service
- Real-Time Event Notifications: Automate data synchronization by triggering webhooks on record creation, updates, or deletions.
- Flexible Configuration: Easily set up webhook endpoints and define specific event triggers.
- Scalable & Reliable: Ensure consistent data flow between Odoo and external applications.
Manage RESTAPI Services
Here you can create and manage RESTful API services in Odoo. Define custom API endpoints, set up authentication, and securely expose Odoo data to external applications.

Configure RESTAPI Service
Here you can set up and manage RESTful API services within Odoo to enable secure and seamless data exchange with external systems. Easily define custom endpoints, configure authentication methods, and streamline integrations to enhance system connectivity.

Fields & Features
- API Name: A unique name for the API service to help identify it.
-
API Unique ID: A unique identifier for the API service. Example:
create_customer
. - API Endpoint: The complete URL where the API can be accessed. This is computed automatically.
- Model: Select the Odoo model associated with this API for CRUD operations.
-
Request Method: Defines how the API interacts with data:
- GET: Read data.
- POST: Create new records.
- PUT: Update existing records.
- DELETE: Remove records.
-
Request Type: Determines how data is sent:
- HTTP: Standard HTTP request.
- JSON: JSON-based request.
- Authentication Required: Specifies if authentication is needed to access the API.
- Response Schema: Defines the expected JSON structure for API responses.
- Active: Determines if the API service is enabled.
- Enable Logs: If enabled, logs API requests and responses for debugging.
- Logs: Stores log records related to this API service.
- Prepare Payload Script: A Python script to modify the request payload before processing.
- Build Response Script: A Python script to modify response data before returning it to the client.
Filter & Read Records
Parameter | Type | Example | Description |
---|---|---|---|
_page | Integer | 1 | Specifies the page number for pagination (default: 1). |
_page_count | Integer | 10 | Defines the number of records per page (default: 10). |
_order | String | name asc | Specifies sorting order (e.g., "id desc" for descending, "name asc" for ascending). |
field_name | String | customer_id | Filters results where "customer_id" is equal to the provided value. |
field_name__ne | String | customer_id__ne=5 | Filters results where "customer_id" is NOT equal to 5. |
field_name__gt | Integer | amount__gt=100 | Filters results where "amount" is greater than 100. |
field_name__lt | Integer | amount__lt=500 | Filters results where "amount" is less than 500. |
field_name__gte | Integer | date__gte=2024-01-01 | Filters results where "date" is greater than or equal to 2024-01-01. |
field_name__lte | Integer | date__lte=2024-12-31 | Filters results where "date" is less than or equal to 2024-12-31. |
field_name__in | List | status__in=["pending", "approved"] | Filters results where "status" is either "pending" or "approved". |
field_name__nin | List | category_id__nin=[1,2,3] | Filters results where "category_id" is NOT in [1,2,3]. |
field_name__like | String | name__like="John" | Filters results where "name" contains "John" (case-insensitive). |
field_name__nlike | String | name__nlike="Test" | Filters results where "name" does NOT contain "Test". |
Manage RESTAPI Logs
View and manage logs of RESTful API service requests and responses in Odoo. Monitor API activity, and track data exchanges to ensure seamless communication between Odoo and external applications.

Create & Manage Access Tokens
Generate and manage access tokens for RESTful API services in Odoo. Securely authenticate external applications and users to access Odoo data through API endpoints.

Manage Webhook Services
Here you can create and manage webhook services in Odoo. Set up webhook endpoints, define trigger conditions, and automate data synchronization with external applications.

Configure Webhook Service
Easily create and configure webhook services in Odoo based on your specific needs. Define trigger conditions, set up webhook endpoints, and customize response data formatting to ensure seamless real-time data synchronization with external systems.

Fields & Features
- Title: A unique name for the webhook service.
- Active: Determines if the webhook service is enabled.
- Enable Logs: If enabled, logs webhook requests and responses for debugging.
- Model: Select the Odoo model associated with this webhook.
- Trigger Fields: The action will be triggered if one of these fields is updated. If empty, all fields are watched.
-
Trigger Event: Defines when the webhook is triggered:
- On Create: Triggered when a new record is created.
- On Update: Triggered when an existing record is updated.
- Endpoint URL: The external URL where the webhook will send data.
-
Request Method: Defines how data is sent:
- GET: Retrieve data.
- POST: Send data.
- PUT: Update existing data.
- DELETE: Remove data.
- Webhook Headers: Defines custom headers to be included in the request.
- Date Filter Field: A date or datetime field to filter records before triggering.
- Date Filter Selection: Predefined date filters to control when the webhook should run.
- Timeout: Maximum time (in seconds) to wait for a webhook response.
- Max Retry Attempts: Number of times the webhook will retry in case of failure.
- Payload Script: A Python script to modify the request payload before sending.
- Payload Schema: Defines the schema used to fetch data from the object before sending.
- Trigger Instantly: If enabled, the webhook triggers immediately upon event occurrence.
- Expected Response Status: Defines the expected HTTP response status code. If the response does not match, the request retries.
-
Payload Generation Method: Determines how the payload is generated:
- Model Fields: Data is extracted from model fields.
- Database Schema: Data is fetched based on predefined database schema.
Webhook Payload: with Model Fields
Payload data is extracted from model fields.

Webhook Payload: with Database Schema
Payload data is fetched based on predefined database schema.
[
'id',
'name',
'date_order',
'create_date',
'amount_tax',
'amount_total',
'state',
('partner_id', (
'id',
'name',
'city',
)),
('user_id', (
'id',
'name',
)),
('payment_term_id', (
'id',
'name',
)),
('order_line', [(
'id',
('product_id', ( # many2one
'id',
'name',
'type',
'barcode',
('categ_id', ( # many2one
'id',
'name',
)),
('attribute_line_ids', [( # one2many
'id',
'display_name',
)]),
)),
'name',
'product_uom_qty',
'price_unit',
('tax_id', [( # many2many
'id',
'name',
)]),
'price_subtotal',
)]),
]
{
'id': 41,
'name': 'Your Sale Order Name',
'date_order': '2024-01-26T13:57:52',
'create_date': '2024-01-26T13:57:52.581871',
'amount_tax': 0.0,
'amount_total': 400.0,
'state': 'draft',
'partner_id': {
'id': 11,
'name': 'Gemini Furniture',
'city': 'Fairfield'
},
'user_id': {
'id': 2,
'name': 'Mitchell Admin'
},
'order_line': [{
'id': 57,
'product_id': {
'id': 23,
'name': 'Conference Chair',
'type': 'product',
'barcode': False,
'categ_id': {
'id': 8,
'name': 'Office Furniture'
},
'attribute_line_ids': [{
'id': 3,
'display_name': 'Legs'
}]
},
'name': 'Product 1',
'product_uom_qty': 2.0,
'price_unit': 100.0,
'price_subtotal': 200.0
}, {
'id': 58,
'product_id': {
'id': 27,
'name': 'Drawer Black',
'type': 'product',
'barcode': False,
'categ_id': {
'id': 8,
'name': 'Office Furniture'
}
},
'name': 'Product 2',
'product_uom_qty': 2.0,
'price_unit': 100.0,
'price_subtotal': 200.0
}]
}
Manage Webhook Logs
View and manage logs of webhook service requests and responses in Odoo.

For customization
Reach out to our support team at developer.nxonbytes@gmail.com for any customization.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module