{"id":392585,"date":"2026-10-26T07:18:22","date_gmt":"2026-10-26T07:18:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/virevo-for-woocommerce\/"},"modified":"2026-10-26T07:18:01","modified_gmt":"2026-10-26T07:18:01","slug":"virevo-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/virevo-for-woocommerce\/","author":23581089,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.8.2","stable_tag":"0.8.2","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Virevo for WooCommerce","header_author":"Virevo","header_description":"Encaissez par virement instantan\u00e9 (Virevo) dans WooCommerce \u2014 sans frais de carte. Lien de paiement + confirmation par webhook sign\u00e9.","assets_banners_color":"415d62","last_updated":"2026-10-26 07:18:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/virevo.fr\/developpeurs","header_author_uri":"https:\/\/virevo.fr","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.8.2":{"tag":"0.8.2","author":"virevo","date":"2026-10-26 07:18:01","revision":3765711}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3765711,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3765711,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-fr_FR.png":{"filename":"banner-1544x500-fr_FR.png","revision":3765711,"resolution":"1544x500","location":"assets","locale":"fr_FR","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3765711,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-fr_FR.png":{"filename":"banner-772x250-fr_FR.png","revision":3765711,"resolution":"772x250","location":"assets","locale":"fr_FR","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3765711,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.8.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3765711,"resolution":"1","location":"assets","locale":"","width":1280,"height":1003},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3765711,"resolution":"2","location":"assets","locale":"","width":1280,"height":1300},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3765711,"resolution":"3","location":"assets","locale":"","width":1280,"height":1155}},"screenshots":{"1":"The \"Virement instantan\u00e9\" (instant bank transfer) payment method at checkout.","2":"A paid order: the signed webhook has confirmed the transfer and the order moved to \"Processing\".","3":"Plugin settings: test and live API keys, webhook secret and the webhook URL to register in Virevo."}},"plugin_section":[],"plugin_tags":[127760,6887,186314,6593,33609],"plugin_category":[],"plugin_contributors":[288594],"plugin_business_model":[],"class_list":["post-392585","plugin","type-plugin","status-publish","hentry","plugin_tags-bank-transfer","plugin_tags-instant-payment","plugin_tags-open-banking","plugin_tags-payment-gateway","plugin_tags-sepa","plugin_contributors-virevo","plugin_committers-virevo"],"banners":{"banner":"https:\/\/ps.w.org\/virevo-for-woocommerce\/assets\/banner-772x250.png?rev=3765711","banner_2x":"https:\/\/ps.w.org\/virevo-for-woocommerce\/assets\/banner-1544x500.png?rev=3765711","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/virevo-for-woocommerce\/assets\/icon-128x128.png?rev=3765711","icon_2x":"https:\/\/ps.w.org\/virevo-for-woocommerce\/assets\/icon-256x256.png?rev=3765711","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/virevo-for-woocommerce\/assets\/screenshot-1.png?rev=3765711","caption":"The \"Virement instantan\u00e9\" (instant bank transfer) payment method at checkout."},{"src":"https:\/\/ps.w.org\/virevo-for-woocommerce\/assets\/screenshot-2.png?rev=3765711","caption":"A paid order: the signed webhook has confirmed the transfer and the order moved to \"Processing\"."},{"src":"https:\/\/ps.w.org\/virevo-for-woocommerce\/assets\/screenshot-3.png?rev=3765711","caption":"Plugin settings: test and live API keys, webhook secret and the webhook URL to register in Virevo."}],"raw_content":"<!--section=description-->\n<p>Virevo for WooCommerce adds an \"instant bank transfer\" payment method to your\ncheckout (classic checkout and block checkout). At checkout, the customer is\nredirected to a Virevo payment page, picks their bank and approves a SEPA\nInstant Credit Transfer in their banking app. The order is completed\nautomatically when the transfer is confirmed, through a signed webhook\n(HMAC-SHA256).<\/p>\n\n<ul>\n<li>Lower fees than card payments, no terminal, no subscription.<\/li>\n<li>The transfer goes straight from your customer's bank account to your IBAN:\nVirevo never holds your funds.<\/li>\n<li>Test mode (sandbox) to build and check your integration before going live.<\/li>\n<li>Compatible with High-Performance Order Storage (HPOS) and the block checkout.<\/li>\n<li>Failed, cancelled and expired payments close the order and release the stock.<\/li>\n<li>Full and partial refunds from the WooCommerce order screen.<\/li>\n<\/ul>\n\n<p>Virevo is a French service. The plugin interface is in French, and payments\nare in euros only, for customers holding an account in the SEPA area.<\/p>\n\n<h4>Third-party service<\/h4>\n\n<p>This plugin is an interface to <strong>Virevo<\/strong>, an instant bank transfer payment\nservice operated by Virevo SAS (France). <strong>It does not work on its own<\/strong>: a\nVirevo account and an API key are required.<\/p>\n\n<p><strong>What is sent to Virevo, and when.<\/strong> Each time a customer pays with this\nmethod, the plugin calls the Virevo API (<code>https:\/\/app.virevo.fr<\/code>) to create\nthe payment request. It sends:<\/p>\n\n<ul>\n<li>the order <strong>amount<\/strong> and currency;<\/li>\n<li>the <strong>order number<\/strong>, as a reconciliation reference;<\/li>\n<li>your store's two <strong>return URLs<\/strong> (order received page and checkout page), to\nbring the customer back after payment.<\/li>\n<\/ul>\n\n<p><strong>No personal data about your customer is sent<\/strong> by the plugin: no name, no\nemail address, no postal address, no bank details. The customer authenticates\ndirectly with their own bank on the payment page.<\/p>\n\n<p>In the other direction, Virevo calls your store's webhook URL to report the\noutcome of the payment. Every call is signed (HMAC-SHA256) and checked before\nit is acted upon.<\/p>\n\n<p>A refund made from the WooCommerce admin sends Virevo the payment identifier,\nthe amount and, if you enter one, the reason.<\/p>\n\n<ul>\n<li>Service website: https:\/\/virevo.fr<\/li>\n<li>Terms of service: https:\/\/virevo.fr\/cgu<\/li>\n<li>Privacy policy: https:\/\/virevo.fr\/confidentialite<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin. WooCommerce must be active.<\/li>\n<li>Go to WooCommerce \u2192 Settings \u2192 Payments \u2192 \"Virevo \u2014 virement instantan\u00e9\".<\/li>\n<li>Enter your API key (test or live), created in your Virevo dashboard under\nD\u00e9veloppeurs (Developers).<\/li>\n<li>In Virevo \u2192 D\u00e9veloppeurs, add a webhook pointing to the URL shown in the\nplugin settings (<code>\/wp-json\/virevo\/v1\/webhook<\/code>) and paste its secret\n(<code>whsec_\u2026<\/code>) into the plugin settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20virevo%20account%3F\"><h3>Do I need a Virevo account?<\/h3><\/dt>\n<dd><p>Yes. The plugin is an interface to the Virevo service: without an account and\nan API key, it has nothing to call. Creating an account is free.<\/p><\/dd>\n<dt id=\"what%20customer%20data%20is%20sent%20to%20virevo%3F\"><h3>What customer data is sent to Virevo?<\/h3><\/dt>\n<dd><p>None. The plugin only sends the amount, the currency, the order number and\nyour store's return URLs. Your customer authenticates directly with their bank.<\/p><\/dd>\n<dt id=\"how%20can%20i%20test%20without%20a%20verified%20account%3F\"><h3>How can I test without a verified account?<\/h3><\/dt>\n<dd><p>Select the \"Test\" mode and use a <code>vrv_test_\u2026<\/code> key. Payments are simulated; you\ncan trigger a successful payment from the API to fire the webhook and check\nyour integration end to end.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>Euro (EUR) only. SEPA instant transfers are a euro-area payment method: a\ncustomer without a bank account in the SEPA area cannot pay this way.<\/p><\/dd>\n<dt id=\"is%20there%20a%20minimum%20amount%3F\"><h3>Is there a minimum amount?<\/h3><\/dt>\n<dd><p>Yes, 1 \u20ac including tax (Virevo removed its former 100 \u20ac minimum on\nOctober 19, 2026). Below that amount, the payment method is hidden at checkout.<\/p><\/dd>\n<dt id=\"why%20does%20%22virement%20instantan%C3%A9%22%20not%20show%20at%20checkout%3F\"><h3>Why does \"Virement instantan\u00e9\" not show at checkout?<\/h3><\/dt>\n<dd><p>Because the payment could not succeed. The plugin hides the payment method\nwhen the key for the active mode is missing or its prefix does not match the\nmode, when the store currency is not the euro, or when the cart total is below\nthe minimum. An admin notice tells you which case applies.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20customer%20abandons%20the%20payment%3F\"><h3>What happens if my customer abandons the payment?<\/h3><\/dt>\n<dd><p>The order is closed automatically and the reserved stock is released. A\ndeclined payment moves the order to \"Failed\", so the customer can try again;\na cancelled or expired request moves it to \"Cancelled\".<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.8.2<\/h4>\n\n<ul>\n<li>The minimum order total is now 1 \u20ac including tax, following the removal of the 100 \u20ac minimum on the Virevo side.<\/li>\n<\/ul>\n\n<h4>0.8.1<\/h4>\n\n<ul>\n<li>Webhook events are only applied to orders paid with Virevo: the stored payment identifier is now required, not just compared.<\/li>\n<li>Gateway class renamed to <code>Virevo_Gateway<\/code> (unique prefix). Settings are kept.<\/li>\n<li>All remaining user-facing strings are translatable.<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>Virevo is no longer offered for orders under 100 \u20ac including tax, the minimum Virevo payment. The payment method is hidden in both the classic and the block checkout instead of failing after the click.<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>All four webhook events are handled, not only success. A failed, cancelled or expired payment closes the order instead of leaving it pending forever with its stock reserved.<\/li>\n<li>A refund made from the Virevo dashboard creates the matching refund in the store.<\/li>\n<li>Loop guard: a refund started from the WooCommerce admin is not counted twice when Virevo notifies it back.<\/li>\n<li>A paid order is never cancelled by a late notification.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>The payment method is hidden at checkout (classic and blocks) while the key for the active mode is missing, its prefix contradicts the mode, or the store is not in euros.<\/li>\n<li>A key whose prefix contradicts its field is rejected when saving.<\/li>\n<li>Permanent admin notice: missing key, missing webhook secret, or test mode active.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Signature check accepts several <code>v1=<\/code> values during a webhook secret rotation.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Full and partial refunds from the WooCommerce admin. Clearer API error messages.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Stock is reduced when the payment is confirmed (the order stays pending until the transfer arrives); better handling of abandoned payments.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>\"API URL\" setting (to test against a local API).<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Customer redirect after payment (return_url) and on cancellation (cancel_url).<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: payment gateway, classic and block checkout, signed webhook, test mode.<\/li>\n<\/ul>","raw_excerpt":"Accept SEPA instant bank transfers in WooCommerce, with no card fees. The money lands directly on your own IBAN.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/392585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=392585"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/virevo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=392585"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=392585"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=392585"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=392585"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=392585"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=392585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}