How to Accept Credit Cards on Magento 2

Install the free module with Composer, paste your wallet and accept Visa, Mastercard, Apple Pay and Google Pay on Magento Open Source, Adobe Commerce and Mage-OS, with instant payouts.

Updated October 2026 · Free and open source · Works with the latest Magento release

Want crypto too? Our free Magento crypto module is the only crypto payment gateway with instant payouts for Solana, Monero, Zcash and Bitcoin. Read the Magento crypto guide.

Setup timeAbout 15 minutes
Works withMagento 2.4.4+
Fees1% + provider fees
PayoutsInstant, to your wallet

What you need before you start

  • Magento 2.4.4 or newer: Magento Open Source, Adobe Commerce or Mage-OS, with PHP 7.4 or 8.1 to 8.5. Works with the default Luma checkout.
  • SSH access with Composer (recommended), or FTP plus someone who can run bin/magento commands.
  • Magento cron running (it cancels unpaid orders and releases their stock).
  • Your store must be online so payment confirmations can reach it.
  • A USDC wallet address on Polygon (starts with 0x). Step 1 shows how.

Check that your business is allowed first: see the prohibited businesses list.

Get your USDC (Polygon) payout wallet

Card payments are paid out to a USDC wallet on the Polygon network. That is a normal wallet address that starts with 0x. Payouts may arrive as USDC, USDT (Polygon or BEP-20), ETH or the POL native token, and the same address receives all of them.

  • Use a self-custodial wallet that only you control, for example Trust Wallet, MetaMask, Rabby or a hardware wallet. You can create a free one in a few minutes with the Trust Wallet app on your phone.
  • Copy your Polygon address (it starts with 0x, 42 characters).

Never use an exchange deposit address (Binance, Coinbase, Kraken and so on). Exchanges can freeze or lose payouts sent to deposit addresses. Also do not paste the USDC token contract address: it is not a wallet.

Install the module

Run these commands over SSH from your Magento root folder (the folder that contains bin/magento). Composer is the recommended way because it makes updates easy.

composer config repositories.paygate-card vcs https://github.com/paygate-to/Magento-Instant-Payment-Gateway
composer require paygate/module-instant-payment:dev-main
bin/magento module:enable PayGate_InstantPayment
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento cache:flush

setup:di:compile and setup:static-content:deploy are only needed in production mode (add your locales to the deploy command if your store is not in English).

No SSH or Composer? Install manually

  1. Download Magento-Instant-Payment-Gateway-main.zip and unzip it.
  2. Upload the files from inside the Magento-Instant-Payment-Gateway-main folder to app/code/PayGate/InstantPayment/ in your Magento folder (create the folders if needed).
  3. Run the same bin/magento commands as above, starting with module:enable (your host can run them for you).

Open the payment settings

In your Magento admin, go to Stores › Configuration › Sales › Payment Methods and expand PayGate.to Card Payments (instant payouts, no KYC).

Magento Payment Methods configuration with the PayGate.to Card Payments section highlighted
The PayGate.to Card Payments section under Payment Methods.

Paste your wallet

Under Payout wallet and domains (shared by both payment methods):

  1. Paste your Polygon address into USDC (Polygon) Wallet Address.
  2. Leave Custom Domain (checkout.paygate.sbs) and Custom API Domain (api.paygate.to) as they are, unless you set up your own domain.
  3. Fees Tolerance (40% by default): how far below the total a payment may be before the order is put on hold for you to review.
  4. Cancel Unpaid Orders After (hours): unpaid orders are cancelled after 24 hours by default and their stock is released.
Magento card payment settings with the USDC wallet address and Cancel Unpaid Orders After highlighted
Your wallet is shared by both card payment methods.

The card payment methods stay hidden at checkout until a valid wallet is saved. An invalid address is refused when you click Save Config.

Turn on the hosted checkout and save

Expand Hosted checkout (multi-provider, recommended), set Enabled to Yes and give it a clear Title such as Credit / Debit Card. Optionally add your logo and colours for the payment page. Click Save Config.

Magento Hosted checkout settings with Enabled set to Yes
Hosted checkout: Enabled = Yes, then Save Config.

The second method, Single provider, sends customers to one provider you choose with its Provider Tag (see the provider list) and Minimum Amount (USD). If you enable both, give them different titles.

Place a test order

In a private window, add a product to the cart and check out. Choose Credit / Debit Card and click Place Order. The customer is taken to the secure payment page to pay with Visa, Mastercard, Apple Pay, Google Pay and more.

Magento Luma checkout with Credit / Debit Card selected
The card payment method at checkout.

Card minimums range from about $1 to $30 depending on the provider (see the minimums). If PayGate.to cannot be reached, the order is not placed and the customer is asked to try again.

All settings explained

SettingWhat it doesDefault
USDC (Polygon) Wallet Address RequiredReceives the payouts (shared by both methods).–
Custom DomainDomain of the hosted payment page.checkout.paygate.sbs
Custom API DomainYour dedicated API endpoint or white-label domain.api.paygate.to
Fees ToleranceHow far below the total a payment may be before the order is put On Hold.40%
Cancel Unpaid Orders After (hours)Cancels unpaid orders and releases stock (0 = never). Needs cron.24
Hosted checkout: Enabled, Title, DescriptionThe recommended multi-provider method.No, Credit Card
Custom Logo URL, coloursBranding for the hosted payment page.Empty
Single provider: Provider Tag, Minimum Amount (USD)One provider of your choice.Off (moonpay, 15)

How orders are updated

Order statusWhen
Awaiting card paymentThe order was placed and the customer went to the payment page.
ProcessingThe payment was confirmed; the order is invoiced.
On HoldThe payment was below your Fees Tolerance; a note explains it for your review.
CanceledStill unpaid after the Cancel Unpaid Orders After time.

Troubleshooting and FAQ

The card method does not appear at checkout.

Save a valid USDC (Polygon) Wallet Address and set Enabled to Yes, then flush the cache. Check the store view scope if you use several websites.

The customer paid but the order is still Awaiting card payment.

The confirmation URL /paygate/callback/index must be reachable from the internet: do not put it behind a password, IP allow-list or maintenance mode. On Adobe Commerce with Website Restrictions, allow it for guests. Check var/log/paygate_card.log.

Why does the order say Awaiting card payment instead of Pending Payment?

The module uses its own status so Magento’s generic 8-hour pending payment cleanup does not cancel orders while a provider is still confirming a payment. Its own cron job cancels them after your chosen number of hours.

Do I need an account, API key or KYC?

No. Your wallet address is all you need. Never contact or create accounts at any of the payment providers.

What are the fees?

1% plus the provider’s fees. Payments are final with zero chargebacks.

How do I update the module?

Run composer update paygate/module-instant-payment, then bin/magento setup:upgrade (plus compile and deploy in production) and flush the cache.

Other platforms and next steps

The same card gateway is available for every major platform:

Stuck? Our team replies fast.Send us your platform, a screenshot and the order number if you have one.

Chat with support