Correos Express in Odoo: free OCA module vs FlexigoTech connector
The two serious ways to ship with Correos Express from Odoo: the OCA module delivery_correos_express (free, AGPL-3.0) and our flexigobe_correos_express connector (120 EUR). No hype: we tell you when the free option is enough and when it isn't.
Written by engineers in Barcelona, not by sales reps.
What both share
Before we get to the differences, it's worth being clear that the baseline is high. Both the OCA module and the FlexigoTech connector are built on Odoo's native delivery.carrier model, talk to the Correos Express REST API (the modern one, not the old SOAP one), and cover an ecommerce's basic flow:
- Shipment and tracking number generation with one click from the delivery order.
- Label download in PDF (office printer) and ZPL (Zebra thermal printer).
- PUDO delivery points (delivery at a pickup/convenience point).
- Automatic shipment status (tracking) update on the order.
- They work with your own Correos Express contract credentials; there's no rate resale.
If your operation is "print the label, stick it on, and check tracking," the free OCA module handles 90% of the work. We say this without hesitation: selling a 120 EUR connector to someone who doesn't need it just burns the trust you'll want next time.
Criterion-by-criterion comparison
| Criterion | OCA · delivery_correos_express (free) | FlexigoTech · flexigobe_correos_express (120 EUR) |
|---|---|---|
| License / cost | AGPL-3.0 · 0 EUR license | Proprietary (OPL-1) · 120 EUR one-time payment |
| PDF label | Yes | Yes |
| ZPL label (thermal) | Yes | Yes |
| EPL label | No | Yes |
| Automatic tracking | Yes (update cron) | Yes (update cron) |
| PUDO points | Yes | Yes |
| Automatic retry on API error | No (manual retry) | Yes (retry cron) |
| Amazon SP-API sync (carrier + tracking) | No | Yes |
| Odoo versions | 14 → 19 (depending on repo branch) | 17, 18 and 19 (actively maintained) |
| Maintenance across versions | Community (depends on who ports the branch) | FlexigoTech · 12 months of support included |
| Direct support from the author | GitHub issues (no SLA) | Direct email to the engineer |
When the free OCA module is enough
You sell on your own website (Odoo eCommerce, Shopify, WooCommerce) and Correos Express is your only or main carrier. You print, stick the label on, and check tracking.
You're on Odoo 14, 15 or 16. We don't maintain those versions; the OCA module does have branches for them, and it's the honest option.
You have a technical team that already manages OCA modules and doesn't mind porting or patching between versions yourselves.
When the 120 EUR pays off
If you confirm shipments for Amazon orders, you need to send the carrier and tracking back to Amazon via SP-API so it doesn't tank your Valid Tracking Rate. The OCA module doesn't do this; our connector does. This alone already justifies the price.
With hundreds of shipments a day, a sporadic API error ("Error registering the shipment") leaves you with delivery orders without a label. The automatic retry means no one has to hunt them down by hand.
You want an invoice, someone accountable, and an email address to write to when Correos Express changes something in its API. The 120 EUR buys the problem being ours, not yours.
The real errors you're going to run into
It doesn't matter which module: the Correos Express API is the same, and so are the typical problems. Here's what we see in production:
- "Invalid customer code or password" — contract credentials copied wrong, or a mix-up between the test and production environments. Double-check the exact customer code your Correos Express account manager gave you.
- "Error registering the shipment / request rejected" — almost always an incomplete recipient field: province, postal code or phone number. The API is strict. The FlexigoTech connector's automatic retry won't fix a bad field, but it does fix momentary API outages.
- Label prints blank or cropped on the Zebra printer — ZPL format sent to a printer configured for EPL (or vice versa). Being able to choose EPL/ZPL/PDF helps here; with the OCA module you're locked into PDF and ZPL.
- Tracking that doesn't move forward — the update cron is disabled, or the user running it lacks permissions. This happens with both modules; check Settings > Technical > Scheduled Actions.
The real total cost (not just the license price)
"Free" in open source software almost never means "zero cost." The OCA module doesn't charge a license, but the cost shifts elsewhere: installation, credential setup and, above all, maintenance when a new Odoo version comes out. If you have a technical team, that cost is your own time and you control it. If you don't, you end up hiring someone to set it up anyway, and the difference with a paid connector blurs.
The 120 EUR FlexigoTech connector is a one-time payment that includes 12 months of support: if Correos Express changes an API endpoint or Odoo 20 comes out, we solve it within that period. With the OCA module, that same change depends on someone in the community porting the branch, and the timing isn't guaranteed. It's not that the OCA module is worse: the accountability model is simply different. With the OCA module, you're the one responsible for keeping it working; with the connector, we are.
A realistic estimate: if you're going to touch the module once a year and it takes a technician half a day to fix it, the one-time 120 EUR usually ends up cheaper than the time invested. If you're never going to touch it because your Odoo is frozen on one version, the free OCA module is the option that fits best. Decide based on how you actually operate, not on the headline price.
How to install either one
You need an active contract and your customer credentials (REST API code and password). Both modules use your rate, not ours.
The OCA module is downloaded from the repo and added to your addons_path. The FlexigoTech connector installs like any paid module, or we set it up for you.
In Inventory > Configuration > Shipping Methods, choose Correos Express, paste in your credentials and enable the tracking cron. Ready to issue labels.
The verdict, straight up
For an ecommerce business that sells on its own store and uses Correos Express directly, the free OCA module is an excellent option and we recommend it without reservation: it's open source, community-maintained, and covers labels, PUDO and tracking. Paying 120 EUR only makes sense if you sell on Amazon (the SP-API sync is the real difference), if your volume means the automatic retry saves you hours, or if you simply want someone with a name and a face on the other end of the email. We install and maintain both; if you're not sure, we'll tell you honestly which one fits before charging you anything.
FlexigoTech Correos Express connector · 120 EUR
PDF/ZPL/EPL labels, tracking, PUDO, automatic retry and Amazon SP-API sync. Odoo 17, 18 and 19.
View the Correos Express connectorNot sure whether you need the free OCA module or a paid connector? Answer 6 questions:
Take the free test (2 min)FAQ
Is the OCA Correos Express module really free?
Yes. delivery_correos_express is in the OCA/delivery-carrier repository under the AGPL-3.0 license and has no license cost. The only expense, if any, is the time spent on installation, configuration and maintenance across versions, not a software invoice.
What does the FlexigoTech connector do that the OCA module doesn't?
Amazon SP-API synchronization (sending carrier and tracking back to Amazon), the EPL label format in addition to PDF and ZPL, and automatic retry of shipment registration on occasional API errors. For a basic flow without Amazon, the OCA module covers the essentials.
Can I migrate from the OCA module to the FlexigoTech connector later?
Yes. Both are built on Odoo's native delivery.carrier model, so delivery orders, tracking numbers and references are preserved. Only the shipping method and its credentials change. Don't leave both modules active at the same time on the same carrier, to avoid duplicate labels.
Which Odoo versions do they work on?
The OCA module is ported from Odoo 14 to 19 depending on the branch. The FlexigoTech connector is supported and tested on Odoo 17, 18 and 19. For Odoo 14, 15 or 16, the sensible route is the OCA module.