OdooWiki OCA HUB

EDI WebService Component

edi_webservice_component_oca folder_open OCA/edi-framework open_in_new
Uncategorised License: AGPL-3

Provides the component-based edi.webservice.send integration for EDI Exchange records (configured via an exchange type's advanced settings, under components: send: usage: webservice.send), for setups that still rely on it - including any custom _inherit of this component.

It used to be part of edi_webservice_oca itself; it now lives here so that installing edi_webservice_oca no longer requires component unless you actually need this integration style.

This module itself is not deprecated: it's the supported way to get component-based integration on demand. The integration style is the legacy one, though - new exchange types should use the model-based handler in edi_webservice_core_oca instead (selected via send_model_id).

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Adds a component-based way to send EDI exchange records through a configured web service, using the legacy 'webservice.send' component style. It is only used when an exchange type is set up with that component usage.

This module provides the legacy component-based integration for sending EDI exchange records over a web service. It is meant for setups that still rely on the component style instead of the newer model-based handler.

When an exchange record is processed for sending, the system looks for a component with usage webservice.send. The component reads its settings from the exchange type's advanced settings under the webservice key. It requires a method setting; if missing, the user gets an error message saying that method is required. Optional settings include pargs (positional arguments), kwargs (keyword arguments), and send_as_bytes to control whether the file content is sent as bytes.

The component calls the web service configured on the EDI backend using the given method and arguments, and adds the exchange record's file content as the request data. If the web service returns a response object, the component returns its content; otherwise it returns the response as-is.

The module also extends the EDI backend so that when a web service backend is configured, the component matching prefers components with the webservice.send usage and takes the web service protocol into account when selecting and sorting components. This only applies to the send and receive actions.

No new menus or screens are added; configuration happens through existing EDI exchange type and backend settings.

Models and fields (2)
  • edi.backend · extends an existing model
  • edi.webservice.send · new model

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/edi-framework.

terminal Installation and usage

OCA documentation · Odoo 18.0

Go to "EDI -\> Config -\> Backends" and edit or create one. Find the tab "Webservice" and add a webservice. On the webservice record you can specify all the general parameters to connect to the service (see webservice README for more details).

If you want to take full control on if/how the webservice is used you can do it via exchange type's advanced settings.

Hence, assuming your webservice has a URL configured as <https://my.endpoint/%7Bpath%7D>:

components: send: usage: webservice.send # or any custom component usage inheriting from this work_ctx: webservice: method: post # mandatory kwargs: url_params: path: endpoint1/foo

For each call related to this type, you'll get a POST request against https://my.endpoint/endpoint/foo.

url_params can contain all the keys need for URL interpolation.

In addition, you can user url to override the full url used for the call per exchange type.

If you want to send data as bytes you can use the option send_as_bytes like:

[...] webservice: send_as_bytes: true [...]

No verified information in OCA: Installation, Usage.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.