A build-to-order Odoo payment provider that connects your checkout to Nexi XPay and Nets Easy for Italian and Nordic card acquiring, with 3DS2/SCA, local payment methods, and webhook-based reconciliation. ECOSIRE builds, installs, and supports it for Odoo 17.0/18.0/19.0. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo payment provider that connects your checkout to Nexi XPay and Nets Easy for Italian and Nordic card acquiring, with 3DS2/SCA, local payment methods, and webhook-based reconciliation. ECOSIRE builds, installs, and supports it for Odoo 17.0/18.0/19.0.
لا حاجة للدفع الآن. يؤدي هذا إلى إرسال طلب عرض سعر إلى فريقنا — وسنتواصل معك عبر البريد الإلكتروني بالأسعار والخطوات التالية.
Italian and Nordic merchants running Odoo eCommerce, subscriptions, or portal invoice payment consistently hit the same wall: Odoo core ships Stripe, Adyen, PayPal, and a handful of others, but there is no native payment.provider for Nexi XPay or Nets Easy. That means the acquirer your bank actually settles with — the one giving you Italian domestic card rates or Nordic methods like Dankort, MobilePay redirection, or Vipps-adjacent flows — cannot take money on your Odoo checkout. Merchants end up bouncing customers to an off-platform hosted page with no reconciliation back into Odoo, or manually reconciling settlements against account.move by hand. Both leak revenue and both break the audit trail.
Custom `payment.provider` record inheriting Odoo's provider model, registered in `payment_provider_data.xml` and selectable per website/company
Nexi XPay hosted-checkout integration: create payment order, redirect to the acquirer page, verify the return signature in the Odoo controller
Nets Easy hosted-checkout integration with the same abstraction so a single provider config drives either acquirer per your contract
3DS2 / SCA delegated to the acquirer's hosted flow, keeping the Odoo instance out of PCI card-data scope; authentication result carried back to `payment.transaction`
Cards plus the local Nordic/Italian methods you are enabled for (e.g. Dankort, Nordic wallet redirects) surfaced as selectable options at checkout
Signature-verified, CSRF-exempt webhook controller that reconciles asynchronous notifications against the transaction reference with amount/currency validation
ECOSIRE builds a first-class Odoo payment provider that inherits payment.provider and payment.transaction and speaks natively to the Nexi XPay / Nets Easy hosted checkout APIs. The __manifest__.py declares a clean dependency on payment (and website_sale where eCommerce is in scope), registers the provider in payment_provider_data.xml, and adds provider-specific credential fields (merchant/terminal id, secret/API key, environment toggle) on the provider model with values encrypted at rest and gated by ir.model.access.csv plus record rules so only Payment Administrators can read them. At checkout the module creates a payment intent/order against the gateway, redirects the shopper to the hosted, PCI-scope-reducing payment page, and returns them to Odoo's controller. 3DS2 / SCA is handled by the acquirer's hosted flow so you stay out of card-data scope; the module simply carries the authentication result back. An inbound webhook controller (CSRF-exempt, signature-verified against the shared secret) reconciles the asynchronous notification: it looks up the payment.transaction by the gateway reference, verifies amount and currency, and transitions the transaction state (_set_done, _set_pending, _set_canceled, _set_error) idempotently so a retried webhook never double-posts. Confirmed transactions flow through Odoo's standard pipeline to confirm the sale order and post the invoice, and refunds are issued from the invoice/transaction using the provider's refund support so a credit note in Odoo triggers the real acquirer refund and writes back the state.
Everything is built to Odoo conventions so it survives upgrades and audits: compute fields use @api.depends, states use standard selection values, the gateway dialogue is logged for traceability, and admin-facing configuration lives in proper XML/OWL settings views rather than hardcoded config. We support Community and Enterprise — the provider works on Community website_sale, and where Enterprise-only flows (e.g. subscription tokenization) are in scope we build against them explicitly. The same provider is available for Odoo 17.0, 18.0, and 19.0, matched to your exact running version.
Because this is build-to-order, we start from your acquirer contract and settlement setup, not a generic template. After a short scoping call we confirm which product (Nexi XPay vs Nets Easy), which methods (cards plus the specific Nordic/Italian local methods you are enabled for), currencies, and whether tokenized/recurring payments are needed. We then build against your sandbox credentials, run the full flow — authorize, capture, 3DS2 challenge, webhook reconciliation, partial and full refund — on a staging database, and hand over installable source, a git repo, docs, and a training session. Typical delivery is 2 to 4 weeks from confirmed scope, followed by a post-go-live support window while you take real transactions.
Runs Odoo eCommerce and needs domestic Italian card acquiring through their Nexi contract at their negotiated rates, with SCA-compliant 3DS2 and clean invoice reconciliation instead of an off-platform hosted page.
Sells across Denmark/Sweden/Norway and needs Nets Easy with local methods (Dankort, Nordic wallets) presented natively at Odoo checkout, with settlements reconciling automatically to sale orders and invoices.
Owns `account.move` integrity and wants every acquirer settlement, refund, and chargeback reflected as a proper Odoo transaction and credit note — no manual matching, full audit log, no card data on the Odoo box.
Needs a maintainable, upgrade-safe provider that follows Odoo conventions (inherited models, `ir.model.access.csv`, standard states) and ships with a git repo and docs so it can be supported after handover across 17/18/19.
قم بشراء الترخيص من موقع ecosire.com وقم بتنزيل وحدة Nexi / Nets Payment Gateway for Odoo ZIP من لوحة تحكم حسابك.
قم باستخراج ملف ZIP إلى مجلد إضافات Odoo المخصصة على الخادم (أو تحميله عبر التطبيقات > التثبيت من ملف على Odoo.sh / runbot).
قم بتنشيط وضع المطور، وافتح التطبيقات، وانقر فوق تحديث قائمة التطبيقات، وابحث عن Nexi / Nets Payment Gateway for Odoo، ثم اضغط على تثبيت.
افتح القائمة الجديدة، والصق مفتاح ترخيص ECOSIRE الخاص بك، وقم بتوصيل أي بيانات اعتماد خارجية (Shopify، وAmazon، وStripe، وما إلى ذلك)، ثم احفظها.
قم بتشغيل اختبار الاتصال المدمج، وقم بمزامنة أول 10 سجلات لديك، وقم بجدولة عملية cron المتكررة. اتصل بالدعم إذا فشل أي شيء.
| المعيار | ECOSIRE | بناء مخصص | منافس | أودو الأصلي |
|---|---|---|---|---|
| Nexi/Nets support | Purpose-built provider for XPay and Nets Easy | Possible but you build it from scratch | Rarely covers Italian/Nordic acquirers | |
| 3DS2 / SCA | Delegated to acquirer hosted page, result reconciled | Must implement and test yourself | Varies; often incomplete | |
| Webhook reconciliation | Signature-verified, idempotent state machine | You design idempotency and matching | Often basic or missing | |
| Refunds | Credit note triggers real acquirer refund | Extra scope to build | Sometimes manual-only | |
| Odoo version fit | Built and tested on your 17/18/19 | Depends on your team's version expertise | May lag latest release | |
| Fit to your contract | Scoped to your methods, currencies, terminals | Fully bespoke but slower | Generic config, one size fits all | |
| Support & handover | Docs, training, git repo, support window | You own all maintenance | Vendor-dependent, variable | |
| Total effort for you | Scoping call, UAT sign-off, go live | High — spec, build, test, maintain | Buy then integrate/troubleshoot gaps |
This is build-to-order, not an instant download. After a short scoping call to confirm your acquirer (Nexi XPay or Nets Easy), methods, currencies, and whether recurring payments are needed, typical delivery is 2 to 4 weeks from confirmed scope. We build against your sandbox first, run full UAT on staging, then cut over to production.
Yes. Every build includes a post-go-live support window, and we hand over a git repo, source, and docs. Because the module follows Odoo conventions (inherited `payment.provider`, standard transaction states, `ir.model.access.csv`), it upgrades cleanly. We can migrate it to a newer Odoo version or extend it under a separate support/retainer arrangement.
No card data touches your Odoo instance. We integrate the Nexi XPay / Nets Easy hosted checkout, so the shopper enters card details on the acquirer's PCI-compliant page and 3DS2/SCA runs there. Odoo only receives and reconciles the signed result, which keeps your PCI scope minimal.
The provider works on Odoo Community with `website_sale` and on Enterprise. Card checkout, webhooks, and refunds are edition-agnostic. Certain flows like subscription tokenization depend on Enterprise apps; if those are in scope we build against them explicitly and confirm during scoping.
A signature-verified webhook controller matches each acquirer notification to its `payment.transaction` by reference, validates amount and currency, and transitions state idempotently. Confirmed payments run through Odoo's standard pipeline to confirm the sale order and post the invoice, so your `account.move` reflects real settlements automatically.
Yes. Refunds are driven from the Odoo invoice/transaction and call the acquirer's refund API, then write the resulting state back to the transaction. Both partial and full refunds are covered and tested during UAT.
Odoo 17.0, 18.0, and 19.0. We build and test against your exact running version so the module matches your ORM, controller, and payment-framework APIs rather than assuming a generic release.
A build-to-order Odoo payment provider that connects your checkout to Nexi XPay and Nets Easy for Italian and Nordic card acquiring, with 3DS2/SCA, local payment methods, and webhook-based reconciliation. ECOSIRE builds, installs, and supports it for Odoo 17.0/18.0/19.0.