Adobe Commerce

Install and configure the VINR payment plugin for Adobe Commerce (Magento 2).

View as MarkdownInstall skills

This is illustrative content. Plugin availability and exact menu paths may differ; refer to your VINR account manager for production details.

The VINR plugin for Adobe Commerce (Magento 2) integrates VINR payments directly into Magento-powered storefronts. It supports Adobe Commerce 2.4.x and Magento Open Source 2.4.x, is distributed as a Composer package, and exposes the full VINR payment surface — card, wallet, and local payment methods — through the native Magento payment framework.

Supported payment methodsAsk

Prop

Type

Available methods depend on your VINR merchant account configuration. Contact your account manager to enable additional payment methods.

RequirementsAsk

  • Adobe Commerce 2.4.x or Magento Open Source 2.4.x
  • PHP 8.1 or higher
  • Composer 2
  • An active VINR merchant account
  • VINR API Key and Merchant ID (available in the VINR dashboard under Developers → API credentials)

InstallAsk

Add the VINR Composer repository

Add the VINR package repository to your project's composer.json, or download the module ZIP from the VINR dashboard under Plugins → Adobe Commerce and place it in app/code/Vinr/Payments.

{
  "repositories": [
    {
      "type": "composer",
      "url": "https://packages.vinr.com"
    }
  ]
}

Require the package

composer require vinr/magento2-payments

Enable the module

bin/magento module:enable Vinr_Payments

Run setup and compile

bin/magento setup:upgrade && \
bin/magento setup:di:compile && \
bin/magento cache:clean

Open the VINR configuration panel

In the Magento Admin, go to Stores → Configuration → Sales → Payment Methods → VINR Payments and expand the section.

Enter your API credentials

Set API Key and Merchant ID to the values from your VINR dashboard, then click Save Config.

ConfigureAsk

Payment methods

Navigate to Stores → Configuration → Sales → Payment Methods → VINR Payments → Enabled Methods. Toggle individual payment methods on or off. Changes take effect after saving; no cache flush is required for method visibility changes.

Capture mode

Funds are captured immediately when the order is placed. This is the recommended setting for most merchants selling physical and digital goods.

In VINR Payments → Payment Action, select Authorize and Capture.

bin/magento config:set payment/vinr_payments/payment_action authorize_capture
bin/magento cache:clean

An authorization hold is placed at order time; the capture is triggered when you invoice the order in the Magento Admin (Sales → Orders → [order] → Invoice). Use this mode when you ship physical goods and want to capture only after fulfillment.

In VINR Payments → Payment Action, select Authorize Only.

bin/magento config:set payment/vinr_payments/payment_action authorize
bin/magento cache:clean

Uncaptured authorizations expire after seven days. Invoice orders before the authorization window closes or the payment will void automatically.

3D Secure

3D Secure 2 (3DS2) is handled automatically by VINR. No additional Magento configuration is required. When an issuer triggers a challenge flow, the customer is presented with the authentication step during checkout and returned to the Magento order confirmation page on completion. See 3D Secure for the underlying protocol details.

Webhooks

The VINR module registers a webhook listener at:

https://yourstore.com/vinr/webhook

Verify that this URL is reachable from the VINR dashboard under Developers → Webhooks → Add endpoint. The module validates the X-Vinr-Signature header on every incoming event.

Order status mapping:

Prop

Type

Multi-store configuration

VINR Payments supports different API credentials per store view. In the Magento Admin, use the Store View scope selector (top-left dropdown in Stores → Configuration) to switch to the target store view, then enter store-specific API Key and Merchant ID values. This allows separate VINR accounts or merchant IDs for different brands within a single Magento installation.

Tokenization and saved cardsAsk

The VINR plugin integrates with the Adobe Commerce Vault framework. When a customer selects Save for later at checkout, VINR vaults the card and stores the resulting pm_ token in the Magento Vault. On subsequent checkouts, the customer can select a saved card from the stored-methods list without re-entering card details.

Prop

Type

For subscription and recurring billing use cases, the Vault token is compatible with Magento Recurring Payments via a third-party Subscription extension. The VINR token stored in the Vault can be passed as the paymentMethod parameter for off-session charges. For the full tokenization API, see Tokenization.

In-person paymentsAsk

VINR for Adobe Commerce supports in-person payments via the VINR POS module, a separate Composer package that bridges the Magento order flow to VINR terminal readers. Install it alongside the core module:

composer require vinr/magento2-pos
bin/magento module:enable Vinr_Pos
bin/magento setup:upgrade && bin/magento cache:clean

The POS module adds a VINR Terminal payment method to the Magento Admin order creation flow, allowing staff to initiate a card-present payment from any order. For terminal setup, reader pairing, and go-live steps, see In-person payments.

Go liveAsk

Set the correct payment action

Confirm Payment Action is set to Authorize and Capture or Authorize Only as appropriate for your fulfillment model.

Switch to live credentials

In Stores → Configuration → Sales → Payment Methods → VINR Payments, replace the test API Key and Merchant ID with your live credentials from the VINR dashboard.

Flush the cache

bin/magento cache:clean

Place a test order

Complete an end-to-end purchase on your storefront using a real card in a small amount. Confirm the order appears in Sales → Orders with status processing.

Verify in both dashboards

Check the VINR dashboard under Payments to confirm the transaction appears, and review the Magento order to confirm webhook-driven status transitions are functioning correctly.

TroubleshootingAsk

Next stepsAsk

Was this page helpful?
Edit on GitHub

Last updated on

On this page