| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 769 |
| Technical Name |
payment_provider_ngenius |
| License | LGPL-3 |
| Website | https://www.ashrf.in |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 769 |
| Technical Name |
payment_provider_ngenius |
| License | LGPL-3 |
| Website | https://www.ashrf.in |
N-Genius Online — Hosted card payments for Odoo
Accept card payments in Odoo through N-Genius Online by Network International. Customers complete payment on the N-Genius hosted page; Odoo verifies the result from the provider API and keeps the full transaction lifecycle visible in your back office.
Everything you need to run N-Genius in production
The integration focuses on the real production flow: create a hosted purchase, redirect the customer, verify the result from the source of truth, and keep Odoo in sync at every step.
Hosted payment page
Customers are redirected to the N-Genius hosted page for card entry. Card data never passes through Odoo, keeping your storefront outside PCI scope for that step.
Authoritative status sync
On customer return and on every webhook event, Odoo re-fetches the order from the N-Genius API. Redirect parameters alone are never trusted to change a transaction state.
Event-driven updates
PURCHASED, CAPTURED, REFUNDED, CANCELLED, and FAILED webhook events are all handled. Each triggers an authoritative order lookup before the Odoo transaction is updated.
Full refund + reversal fallback
Full refunds are submitted from Odoo. When N-Genius exposes a void or reversal action instead of a standard refund endpoint, the integration falls back to that action automatically.
Strict ECI enforcement
Only ECI 05 (Visa) and ECI 02 (Mastercard) — fully authenticated — are accepted. Attempted or incomplete 3DS outcomes are rejected and marked as failed payments.
Optional header validation
Configure a custom webhook header name and value in N-Genius. The module validates that exact header on every inbound webhook request as an additional security layer.
From checkout selection to confirmed payment
The integration stays close to the N-Genius hosted purchase flow and verifies the authoritative state from the provider API before updating Odoo.
N-Genius appears as a card payment option in the Odoo checkout flow.
Amount, currency, redirect URL, sanitized merchant reference, and any available billing address are sent to the N-Genius API.
The hosted page handles 3DS, card entry, and authentication entirely outside the Odoo storefront.
On return to Odoo, the module re-fetches the order from the N-Genius API and updates the transaction based on the authoritative response.
Backend events (PURCHASED, CAPTURED, REFUNDED, CANCELLED, FAILED) trigger a second authoritative order lookup and a final status sync.
What you configure in Odoo
The provider form is concise. You need your N-Genius service account credentials and a public domain to accept payments.
Enter the service account API key from N-Genius. Stored at system-admin level, not visible to regular users.
The outlet identifier from your N-Genius organizational hierarchy. Determines which outlet processes the transaction.
Set Test for sandbox or Enabled for production. Switching environment switches the N-Genius API endpoint automatically.
Set the same custom header name and value as configured on the N-Genius webhook. Both fields must be set together or left empty.
Configure /payment/ngenius/webhook in N-Genius as the
webhook URL. Odoo must be reachable on a public HTTPS domain.
Complete a full sandbox purchase, confirm the return flow, and verify webhook delivery before switching the provider to Enabled.
Full payment trail inside Odoo
N-Genius order reference
The N-Genius order reference is stored on the Odoo transaction so your team can tie each checkout event directly to the provider-side order.
Return + webhook sync
Both the customer return and each webhook event trigger a fresh API lookup, keeping the Odoo transaction state consistent with what N-Genius holds as the authoritative record.
Refund audit trail
Refunds and reversals remain visible in the Odoo transaction flow with the correct provider reference, supporting reconciliation and customer support cases.
What is included — and where the boundary is
This is a hosted redirect integration for merchants who want a clean operational bridge between Odoo and N-Genius. It is not an embedded card-field or iFrame SDK implementation.
Included in this module
- Hosted redirect checkout for card payments
- Sandbox and production environments
- Return flow verification against the N-Genius order API
- Webhook events: PURCHASED, CAPTURED, REFUNDED, CANCELLED, FAILED
- Full refunds from Odoo with automatic void/reversal fallback
- Optional webhook header name + value validation
- Strict 3DS ECI enforcement (ECI 05 / Visa, ECI 02 / Mastercard)
- Optional billing address transmission when partner data is complete
- Zero-, two-, and three-decimal currency support (AED, KWD, JPY…)
Not included
- Tokenization or saved-card flows
- Manual capture workflows
- Partial refunds
- Encrypted webhook payload decryption
- Checkout on localhost or loopback callback hosts
- Unsupported outlet currencies or merchant-account setup
- Embedded card-field or iFrame/JS SDK checkout
Operational details worth knowing before launch
Public base URL required
Odoo must use a public hostname. The module rejects localhost and loopback return URLs, and the N-Genius sandbox also refuses them as redirect targets.
Webhook endpoint
Configure /payment/ngenius/webhook in N-Genius.
Keep the endpoint on HTTPS with any required sandbox or production
IP/domain whitelisting completed before testing.
Currency alignment
N-Genius can reject order creation when the transaction currency is not enabled on the configured outlet. Align currencies on both sides before going live.
3DS behavior is strict
Only fully authenticated ECI values (05/Visa, 02/Mastercard) are accepted. Attempted or incomplete 3DS outcomes are marked as failed payments, not pending ones.
Billing address is optional
The module sends billing details only when the partner name, street, city, and country are all present on the Odoo partner record. Missing fields are skipped gracefully.
Encrypted webhooks out of scope
The module handles standard JSON webhooks. If N-Genius encrypted webhooks are enabled, the module must be extended to decrypt the payload before it can process the event.
What you need before installing
Platform
- Odoo 19.0
- Payment and Accounting features enabled
- A public domain configured as the Odoo base URL
- HTTPS for the webhook endpoint
N-Genius account
- Active merchant account with Network International
- Service account API key
- Valid outlet reference
- Outlet enabled for your selling currencies
Go-live checklist
- Webhook URL set to
/payment/ngenius/webhook - Optional secret header aligned on both sides
- Outlet currencies matched with Odoo selling currencies
- End-to-end sandbox test completed
Common pre-sales and go-live questions
Does Odoo collect or store card details?
No. Customers are redirected to the N-Genius hosted payment page. Card data is entered and processed on the provider side. Odoo only receives a status update from the N-Genius API — never the card number itself.
Can I test before going live?
Yes. Set the provider to Test mode, configure sandbox credentials, and complete a full purchase cycle — including return verification and a webhook delivery — before switching the state to Enabled (production).
Does it support partial refunds?
No. The refund flow supports full refunds only. When N-Genius exposes a void or reversal action instead of a standard refund endpoint, the integration uses that action automatically.
Why would a valid setup still fail?
Common causes: a non-public callback hostname (localhost is always rejected), an outlet currency mismatch, or a webhook URL that has not been whitelisted or correctly configured in the N-Genius portal.
What currencies are supported?
All currencies your N-Genius outlet is enabled for. The module correctly handles zero-decimal (JPY, KRW…), two-decimal (AED, USD, EUR…), and three-decimal (KWD, BHD, OMR…) currencies using the N-Genius minor-units format.
Is the module compatible with Odoo Community or SaaS?
The module is built for Odoo 19.0 and depends on the payment
and account_payment modules. Verify that both are available in
your edition before installing.
Need help with setup, webhooks, or go-live?
Support is available for configuration, webhook setup, and deployment questions. Reach out to validate your Odoo domain, N-Genius credentials, and rollout checklist before enabling production.
License: LGPL-3 · Built for Odoo 19.0 · N-Genius Online by Network International
Please log in to comment on this module