DevTalents

Viva Wallet for Odoo: Smart Checkout, Refunds, Saved Cards and Subscriptions

The complete Viva Wallet payment module for Odoo 17, 18, 19 and 20: secure webhooks, manual capture, one-click payments and automatic subscription renewals

Viva Wallet Smart Checkout, natively in Odoo

Viva Wallet is one of Europe's leading payment institutions, with a hosted payment page, Smart Checkout, that accepts cards, digital wallets and local payment methods in a single integration. Our Viva Wallet payment module for Odoo turns it into a native Odoo payment provider: your customers pay on Viva Wallet, and you manage the whole life of the payment from Odoo, from the confirmation of the order to refunds, captures, saved cards and subscription renewals.

17 to 20
Odoo versions supported
30+
payment methods on Smart Checkout
18
languages
0
card numbers stored in Odoo

This article walks you through what the module does, how it is configured and how each payment flow looks in Odoo, with screenshots taken from real payments on the Viva Wallet demo environment.

Why Viva Wallet Smart Checkout with Odoo

With Smart Checkout, your customer is redirected to a secure, PCI DSS compliant payment page hosted by Viva Wallet, then sent back to your Odoo shop. Card data never touches your servers, 3-D Secure is handled by Viva Wallet, and you offer many payment methods without integrating each of them:

  • Cards: Visa, Mastercard, Maestro, American Express, Diners Club, Discover, JCB, UnionPay.
  • Digital wallets: Apple Pay, Google Pay, Samsung Pay, PayPal.
  • Local methods: iDEAL, Bancontact, EPS, Przelewy24, BLIK, MB WAY, Multibanco, Trustly, Swish, MobilePay, WeChat Pay and more, depending on your account.

What makes the difference in daily work is the Odoo side. A payment module is not only a "Pay" button: it must confirm the right order every time, explain refusals, handle refunds and captures, and never leave a paid order as a quotation. That is what we focused on.

Set up Viva Wallet in Odoo in a few minutes

The module needs four credentials from your Viva Wallet dashboard, in Settings > API Access: the Merchant ID and API Key, and the Client ID and Client secret of the Smart Checkout credentials. On the same page, tick Allow refunds and Allow recurring payments and pre-auth captures via API.

Viva Wallet API Access page: Merchant ID, API Key and Client ID used by the Odoo payment module

In Odoo, open the Viva Wallet payment provider, enter the credentials and use the two buttons the module adds:

  • Create a payment source for this website: Odoo creates the Viva Wallet payment source with your domain and the right return URLs, and fills in the source code. No URL to type by hand, so no typo that would stop customers from coming back to your shop.
  • Generate Webhook URL: Odoo fetches your account's verification key and builds the authenticated webhook URL, ready to paste in Viva Wallet.
Viva Wallet payment provider configuration in Odoo with the Generate Webhook URL button
Viva Wallet payment source created automatically from Odoo

Then switch the provider to test mode on the Viva Wallet demo environment, or to enabled in production, and publish it. Both buttons refuse a local address such as localhost: Viva Wallet could not reach it.

Real-time payment status with secure webhooks

Customers do not always come back to your site after paying: they close the tab, lose their connection or pay on their phone. Webhooks let Viva Wallet notify Odoo directly. Create one webhook per event with the generated URL:

Viva Wallet eventWhat Odoo does
Transaction Payment CreatedConfirms the payment and the sale order, records the card brand.
Transaction FailedRecords the refusal with the reason given by the bank.
Transaction Reversal CreatedLinks a refund to its payment, including refunds made in the Viva Wallet dashboard.
Order UpdatedCancels the Odoo transaction when the order is cancelled on Viva Wallet's side.
Viva Wallet webhooks configured for Odoo: payment created, failed, reversal and order updated

Security by design.

The webhook URL carries your account's verification key, checked in constant time, and the notification body is never trusted for the payment status: Odoo always reads the transaction back from the authenticated Viva Wallet API, and checks the amount and the currency, before confirming an order. A forged notification cannot mark an order as paid.

The checkout experience

At checkout, your customer sees Card with the brands of your account, plus the local methods you activate. The method chosen in Odoo is preselected on Smart Checkout, which opens in the customer's language and with your brand color. Back in Odoo, the order is confirmed and the actual card brand is recorded on the payment.

Odoo checkout with Viva Wallet card payment and card brands
Viva Wallet Smart Checkout payment page opened from Odoo
Odoo sale order confirmed after a Viva Wallet payment

Each order sends Viva Wallet clean customer data: the country of the billing address and a phone number in international format, which helps the issuer's risk checks and reduces unjustified refusals.

Other Viva Wallet payment methods available in the Odoo checkout

Refused payments, retries and double payments

A readable reason

Insufficient funds, expired card, 3-D Secure not completed: Odoo records why a payment was refused, on the transaction and on the order, instead of a technical code.

Retry that counts

When the customer tries again after a refusal and pays, the order is confirmed. It never stays a quotation while Viva Wallet has the money.

No double payment

If the customer clicks "Pay" again in another tab, Odoo cancels the earlier unpaid Viva Wallet orders, so the same order cannot be paid twice.

Refunds from Odoo and from the Viva Wallet dashboard

Issue full or partial refunds directly from the Odoo payment or from a credit note: no need to open the Viva Wallet dashboard. And when a refund is made in the dashboard, it comes back to Odoo automatically as a refund linked to its payment, so your accounting stays in sync.

Refund button on a Viva Wallet payment in Odoo
Partial refund in the Viva Wallet dashboard, recorded automatically in Odoo

Manual capture: authorize now, charge at shipping

Enable manual capture on the provider and the order becomes a pre-authorization: the amount is held on the card, and you capture it from Odoo when you ship, fully or partially. If the order is cancelled, void the authorization from Odoo and the hold is released. A pre-authorization is never confirmed as paid by mistake, and the automatic checks never capture behind your back.

Viva Wallet payment authorized in Odoo, ready for manual capture

Saved cards and one-click payments

Logged-in customers can tick Save my payment details. Their next orders are paid in one click, directly from Odoo, without going back to the payment page. Odoo only keeps a reference to the Viva Wallet transaction and the last four digits: no card number ever reaches your database. Customers can also add a card from their portal with a zero-amount card verification.

Save my payment details option with Viva Wallet in Odoo
One-click payment with a saved Viva Wallet card in Odoo

Odoo Subscriptions paid automatically

With Odoo Subscriptions, the card your customer saves on the first payment pays every renewal. On each renewal date, Odoo creates the invoice and charges the saved card through Viva Wallet, without the customer. No extra module is needed.

  • Refused renewal: the subscription shows the bank's reason, the card stays saved and the renewal date does not move.
  • Withdrawn consent: if the customer revokes the recurring consent of their card, Odoo stops charging it and asks for a new payment method at the next renewal.
  • Lost result: if the result of a charge never reaches Odoo, it is recovered from Viva Wallet and the invoice is paid.
Odoo subscription renewed and paid automatically with Viva Wallet

No paid order left behind

Even with webhooks, a notification can be lost. The module adds two safety nets:

  • Hourly reconciliation: a scheduled action asks Viva Wallet for the real status of the payments still waiting in Odoo and confirms the paid ones.
  • Recovery on upgrade: payments missed by an earlier version of the module are looked up on Viva Wallet and confirmed; doubtful cases get a note on the order for a human check.

The module is translated into 17 European languages plus English, and Smart Checkout opens in your customer's language. It is available for Odoo 17, 18, 19 and 20, Community and Enterprise.

FAQ

Which Odoo versions does the Viva Wallet module support?

Odoo 17, 18, 19 and 20, Community and Enterprise.

Do card numbers go through Odoo?

No. Customers pay on Viva Wallet's hosted Smart Checkout page. Saved cards are kept by Viva Wallet; Odoo only stores a reference and the last four digits.

Can I refund from Odoo?

Yes, fully or partially, from the payment or from a credit note. Refunds made in the Viva Wallet dashboard are also recorded in Odoo.

Does it work with Odoo Subscriptions?

Yes. Renewals are charged automatically on the card saved by the customer, with clear handling of refused renewals.

What happens if a webhook is lost?

An hourly reconciliation asks Viva Wallet for the real status of waiting payments and confirms the paid orders.

Can I test before going live?

Yes: use the provider's test mode with your Viva Wallet demo account.

Need help with Viva Wallet in Odoo?

We install, configure and adapt the module to your business. We also build Odoo payment modules for other banks and payment providers: see all our Odoo payment modules, or contact our team.

Share this post
Monetico Integration in Odoo: A Modern Payment Solution
A powerful payment gateway used by over 400,000 merchants