OdooWiki OCA HUB

Delivery CTT Express

delivery_cttexpress folder_open OCA/delivery-carrier open_in_new
Delivery License: AGPL-3

CTT Express Iberic Web Services API intration with Odoo. Valid for Portugal and Spain.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Connect Odoo to the CTT Express shipping service (Portugal/Spain): create shipments and labels from transfers, follow tracking status, cancel shipments, request courier pickups and download shipping manifests.

This module adds CTT Express as a shipping carrier option in Odoo. On a delivery method you enter the CTT Express account details (user, password, customer, agency and contract codes), pick a shipping service from the CTT catalogue, and choose the label layout (single or multiple labels per sheet), the file format (PDF, PNG or BMP) and an offset. A "Test connection" button checks the credentials, and choosing a service verifies that your account is actually allowed to use it.

When a transfer is validated with a CTT Express carrier, Odoo sends the shipment to CTT Express, stores the returned tracking number, posts the shipping documents in the transfer's chatter and sets the delivery price to zero (prices are not retrieved from the carrier). A "CTT Express Label" button on the transfer lets you download the label again; if labels are not ready yet, a message tells you to retry later.

Tracking updates fill the transfer's tracking history and map CTT statuses to Odoo delivery states (in transit, delivered, incident, cancelled). Shipments can be cancelled from Odoo, and a tracking link points to the CTT Express customer area.

Two wizards are added: a pickup request (date and time window, returning a request code) available from the carrier form, and a manifest report under Inventory > Reporting that downloads the shipping list for a date range as Excel or PDF.

Menus it adds

CTT Express Manifest
Models and fields (4)
  • stock.picking · extends an existing model
  • delivery.carrier · extends an existing modeldelivery_type, cttexpress_user (CTT Express User), cttexpress_agency (Agency code), cttexpress_contract (Contract code), cttexpress_customer (Customer code), cttexpress_password (Password), cttexpress_shipping_type (Shipping type), cttexpress_document_format (Document format), cttexpress_document_offset (Document Offset), cttexpress_document_model_code (Document model)
  • cttexpress.pickup.wizard · new modelcode, state, max_hour, min_hour, carrier_id, delivery_date
  • cttexpress.manifest.wizard · new modelstate, to_date, from_date, carrier_ids (Filter accounts), document_type (Format), attachment_ids (Manifests)

Text generated by AI (DeepSeek) from reading the Odoo 19.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: 8 confirmed, 1 with no information of 9 versions.

Sources · Odoo 16.0

Confirmed on 2026-11-03 in branch 16.0 of OCA/delivery-carrier.

terminal Installation and usage

OCA documentation · Odoo 19.0

This module needs the zeep python library. It depends on the modules delivery_package_number, delivery_price_method and delivery_state that can be found on OCA/delivery-carrier.

The following ports and hosts should be visible from your Odoo deployment:

  • Test: iberws.tourlineexpress.com:8686
  • Production: iberws.tourlineexpress.com:8700

CTT Express Iberic Web Services API doesn't provide shipping price calculation methods. So you'll have to rely on Odoo standard methods selecting them in the field Price method.

To configure your CTT Express services, go to:

  • Inventory/Sales \> Configuration \> Delivery methods and create a new one.
  • Choose CTT Express as provider.
  • Configure your CTT credentials: contract, agency, customer code, user and password.
  • Configure your label format:
  • Single: Thermal printer (single label).
  • MULTI1: One label per sheet.
  • MULTI3: Protrait 3 labels per sheet.
  • MULTI4: Landscape 4 labels per sheet.
  • You can also can configure your printer offset.
  • Choose you shipping service.

If you wish to configure several services with the same credentials, duplicate the first you made and change the service in the copy.

The shipping codes are generated when a stock picking which carrier is configured for CTT Express as a provider is validated. The label is generated and attached to the document according to the label generation parameters configured before.

In case you accidentally delete the label attachment, you can generate it again clicking on the CTT Express Label button on the top of the picking form.

As usual, to cancel the shipping, go to the Additional Information tab and click on the Cancel delivery action next to the Shipping code field.

To print the shippings manifest between dates, go to:

  • Inventory \> Reports \> CTT Express Manifest
  • In the wizard we can configure the document format (Excel or PDF) and the date to comprehend.
  • We can filter delivery methods as well in case we handle different CTT accounts.
  • Click on Get Manifest to gather the requested files.

To make an scheduled shippings pickup request:

  • Go to the shipping method for which account we want to schedule the pickup and click on the Pickup request button.
  • In the wizard, select the date and the minimum and maximum pickup hour.
  • After clicking on the Request pickup button you'll get a pickup request code that you should keep in case there's any issue with it.
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.