How to hide or show payment methods by country or market on Shopify
A no-code guide to showing the right payment methods for each country or market at Shopify checkout, hiding options that do not fit a region.
Selling across countries means selling to shoppers with very different payment habits. A method that is normal in one market looks strange or risky in another. Cash on Delivery is trusted in some regions and unworkable in others. A local bank transfer makes sense at home but confuses an overseas buyer.
When the same payment list shows everywhere, two problems appear: shoppers see options that do not apply to them, and you carry risk in regions where a method fails too often. The fix is to show or hide payment methods by country or market at Shopify checkout.
Shopify Markets helps you localize pricing and currency, but the standard settings do not give you per-country control over which payment methods appear. For that, you use a payment customization rule that checks the shipping address or market before checkout renders.
Why region-based payment rules matter
A few situations where region rules pay off:
| Situation | Rule that usually fits |
|---|---|
| COD fails abroad | Hide Cash on Delivery outside your home country |
| Local transfer is domestic only | Show bank transfer only for the home market |
| Cross-border needs cards | Show only card for international shipping |
| A method is region-specific | Show a local wallet only in its country |
| High-refusal countries | Hide COD for specific markets |
The goal is a clean, relevant list in every region: the methods that work locally, and none that do not.
Decide between shipping address and market
There are two ways to target a region, and they are not always the same.
- Shipping address looks at where the order is going. Use this when the physical destination determines whether a method works, such as COD that depends on a local courier.
- Market or country looks at the buyer's Shopify market. Use this when your localization is already organized by market and you want payment rules to follow the same grouping.
For most COD and bank-transfer rules, shipping address is the natural condition, because delivery and settlement depend on the destination. Pick whichever maps more directly to your real constraint.
Why theme localization will not control checkout
You cannot reliably control payment methods per country by editing your theme or using storefront localization code. Shopify Checkout is separate from the storefront, and the payment step does not read your theme logic. Visual hacks also miss the cart and mobile flows.
The supported approach is Shopify's Payment Customizations API, which can hide, reorder, and rename methods at checkout based on conditions like shipping address and market. Nexo Payment Methods is built on this API, so region rules apply where the methods actually render, with no theme edits and no redirects.
How to set region rules with Nexo Payment Methods
The workflow is no-code:
- Open Nexo Payment Methods and start from a "Hide" or "Show" payment method template.
- Choose the method to control, such as Cash on Delivery or bank transfer.
- Add a region condition: shipping country, a set of countries, or a Shopify market.
- Preview the result against carts shipping to different countries to confirm the list is correct in each.
- Publish the rule through Shopify payment customizations.
A hide-abroad rule might read:
Action: Hide payment method = Cash on Delivery
Condition: Shipping country is not VietnamA show-only-at-home rule might read:
Action: Hide payment method = Bank transfer (domestic)
Condition: Shipping country is not your home countryNever leave a region with no method
When you hide methods by country, always confirm at least one method remains in every region you ship to. A market with zero payment options cannot check out.
Build the rule as "show only where it works"
It is easier to reason about region rules as inclusion rather than a long list of exclusions. Decide where each method should be available, then hide it everywhere else.
For example, instead of listing every country where COD should be hidden, keep COD only for your home market and hide it elsewhere with a single condition. This is shorter to maintain and less likely to leave a gap when you expand to a new country.
If your store separates retail and wholesale, you can combine region with customer rules too, for example showing bank transfer only for B2B customers in a specific market.
Test each market before publishing
Region rules are easy to get subtly wrong, so test deliberately. Build a cart shipping to your home country, then one shipping to each region you serve, and confirm the payment list looks right in every case. Pay special attention to any market where you just removed a method, to make sure a valid option remains.
Once the visibility is correct, you can reorder the remaining methods per region so the locally preferred option appears first.
FAQ
Can Shopify show different payment methods per country?
Shopify Markets localizes currency and pricing, but the standard settings do not control which payment methods appear per country. Conditional visibility by region needs the Payment Customizations API, which a payment-rules app uses.
Should I target by shipping address or by market?
Use shipping address when the destination determines whether a method works, such as COD tied to a local courier. Use market when your localization is already organized by market and you want payment rules to follow it.
Can I hide COD only for international orders?
Yes. A common rule hides Cash on Delivery whenever the shipping country is not your home country, while keeping it available for domestic orders.
What happens if a country ends up with no payment method?
That market cannot complete checkout, so always confirm at least one method remains everywhere you ship. The preview step is the place to catch this before publishing.
Is Nexo Payment Methods free?
Yes. Nexo Payment Methods is free and hides, reorders, and renames payment methods by country, market, and other conditions through Shopify Checkout.