Application rejected, and you sell firearms. Migrate everything to a new Shopify store.
The email came back fast: your Shopify Payments application has been declined. No reason given, or a one-line reason that doesn't quite fit. You have no payouts held, no suspension notice, no terminated-merchant file record — just a gateway that won't activate. This is the cleanest version of a payments crisis, and it's worth understanding why. Shopify Payments is underwritten by Stripe, and Stripe screens applications against the product category you declared, the countries you ship to, and the completeness of your business profile. Rejection at application stage means the review happened before any money moved. You can stay on this Shopify store, keep your domain, keep your design, and simply activate a different payment gateway instead. No migration needed. No data loss. The store is fine; the first gateway you tried wasn't the fit.
Move all of it into a new store, from $247
One-time packages, no per-record metering, no quotes. The order form unlocks the moment you pay, counts are matched against your old store, and the entire migration then runs a second time — the second pass has to create nothing.
What you are looking at
- "Shopify Payments is not available for your business type" — with no detail on which part of your business triggered it
- "Your application does not meet our underwriting requirements" — rejection with no explanation of what failed
- Application status stuck on "Pending" for weeks, then declined without a decision document
- Request to reapply immediately rejected, suggesting a category-level block rather than a profile issue
- A business profile that looks complete to you, but Stripe's questions were answered incompletely or ambiguously
The only clock that matters is your launch timeline. You have no external deadline. Take time to choose the right gateway for your category and geography, because switching gateways mid-launch is friction you don't want. Activation is fast; selection is the real work.
Why it happened — specifically for firearms
Stripe, the processor behind Shopify Payments, lists firearms and weapons as restricted with limited availability. The primary trigger is that you are selling a product category Stripe does not underwrite by default. The secondary trigger is the shipping model: if your checkout does not enforce FFL-to-FFL transfers or state-level geo-blocking, you fail the underwriting before it even reaches compliance review. Stripe's policy is that lawful retail is boardable only through specialists, and only if you can prove licensing and workflow controls.
Rule out the easy fix first — then deal with the real one
Rule this out first, because Shopify documents no route for firearms. What merchants try is applying to Shopify Payments anyway, citing their FFL license—and that fails because the restriction is structural to Stripe's risk model, not a licensing question. The path that sometimes works is to find a high-risk acquirer who specializes in 2A retail, apply with documented proof of your FFL, state resale licenses, and a shipping workflow that enforces dealer-to-dealer transfers. That application is permission to apply only; the acquirer runs their own underwriting on your catalog, your state compliance and your processing history. Most declines at that stage come from either inadequate proof or a shipping model that does not enforce FFL gates.
It only helps if all of these are true:
- You hold a current, verifiable FFL license in a US state.
- Your checkout or fulfillment system enforces FFL-to-FFL transfers or state geo-blocking.
- You can document that you do not ship to prohibited states or persons.
- Your product catalog does not include fully automatic weapons, which are federally prohibited for civilian retail.
- You have no prior payment processing declines or chargebacks tied to weapons or compliance.
If any one of them does not hold, you are where everyone else on this page is: you need a store built around a gateway that will actually accept you — and everything you have built has to move into it without losing the catalog, the customers, the order history or the rankings.
What this means for a business like yours
🎯 Weapons or weapon-adjacent, with state-by-state legality
Weapon-adjacent categories face country and state-by-state legal fragmentation. A processor rejects an application because they cannot write a compliance policy that covers all jurisdictions simultaneously—it is risk pricing, not a ban. You need geo-blocking at catalog level, so customers in restricted regions cannot see or buy restricted items. Before reapplying, map your product list against federal law and the laws of your target states. Then lock down your Shopify store to block checkout in jurisdictions where your products are illegal. Provide that blocking strategy in your reapplication. The gateway will want proof of intent before they take you.
💎 High average order value, so fraud and disputes cost more per event
High average order value makes fraud and chargeback exposure material to the processor's loss reserves. Your application was rejected because fraud controls and verification steps were not explicit in your business profile. At your price point, a single breach-of-warranty or 'not as described' dispute can exceed their tolerance. Before reapplying, document your fraud controls: address verification, signature on delivery, customer communication trails, and a dispute-response process. Show exactly how you will verify customer identity and intent. Processors price high-AOV risk individually; the rejection is not categorical, it is about demonstrating that you have sized your operations to the exposure.
📦 Thousands of SKUs, deep variant matrices, distributor feeds
A rejection with thousands of SKUs often points to incomplete or malformed product data—missing descriptions, variant matrices that don't resolve, or images not attached. Processors screen catalog data not to judge your products but to understand your operations and spot high-risk items hiding in the tail. Before reapplying, run an export audit: do all products have descriptions, categories, and images? Are your variant rules consistent? Do images match claims? A cleaned catalog is faster to underwrite and harder to dispute. If you are pulling from a distributor feed, validate that feed against Shopify's import schema before you reapply. The rejection is usually about data shape, not category risk.
What you actually have to fix
Underwriters do not change their minds because you asked. They change them because the facts changed. For firearms, these are the facts that move the decision:
Document your FFL licensing and state-level shipping controls.
This is the single highest-yield fix because it is the thing specialists cannot board without. Gather your current FFL license copy, any state resale permits, and a written or technical description of how your checkout or fulfillment enforces dealer-to-dealer transfers. If you are hand-shipping and relying on customer honesty, you will be declined. If you use an FFL-network platform (GunBroker model, for example), document that integration. Underwriters need to see the gate, not just hear that you respect it.
Audit your product descriptions for state-prohibited items.
Remove or geo-block any products that are prohibited in states where you currently ship or where your checkout does not block them. This includes fully automatic weapons (federally prohibited for civilian sale), short-barreled rifles where state law prohibits them, and any other weapons your state restricts. Create a state-by-state compliance grid showing which products you sell in which states, and which states you have completely blocked. Underwriters will cross-check this against your fulfillment data.
Remove any marketing language that flags age-gating failures.
If your product pages or checkout imply that minors can purchase (no age verification gate, no disclaimer language, or marketing that targets under-18 audiences), fix that before applying. Firearms have federal age limits: rifles and shotguns 18+, handguns 21+. Make sure your checkout enforces age verification (either manual review or a third-party age-gate service), and that your product pages clearly state the age requirement. Underwriters will scan for this instantly.
Compile your processing history and chargebacks to be transparent.
If you have been declined by Shopify Payments, Stripe, or any other processor, or if you have a history of chargebacks or disputes, gather those records now. Specialist acquirers run background checks on processing history, and declining to mention a prior decline will cause them to decline you again for misrepresentation. If your history is clean, state that plainly. If it is not, explain what happened and what you have fixed since then.
What underwriting will ask you for
- Copy of your current FFL license and any state resale or dealer permits.
- Proof of your shipping and transfer workflow—screenshots of your checkout, fulfillment instructions to customers, or integration with an FFL-network platform.
- Your product catalog with images, descriptions and any age-gate or compliance language.
- Bank statements for the last 3–6 months showing lawful business revenue.
- Processing history from any prior payment processor, including reason codes for any declines.
- State-by-state compliance checklist showing which states you ship to and which you block.
- Your business formation documents and UBO (Ultimate Beneficial Owner) verification.
Getting underwritten for firearms
High-risk acquiring is an entire industry that exists for businesses Stripe declines, and several of them publicly underwrite firearms. What none of them will tell you up front is the number that actually matters: what your business gets offered, once they have seen your volume, your claims and your history. Rate, reserve and settlement terms vary enormously between applicants in the same category.
Get real quotes from high-risk processors that accept firearms
Six taps and three details. We put it in front of the high-risk acquirers that actually underwrite your category and come back with what they will offer you — rate, reserve and settlement terms — so you are comparing real numbers instead of cold-emailing brokers for a fortnight.
The recovery playbook
- Check your business profile for gapsLog into your Shopify admin and review the business information Stripe saw: your legal business name, tax ID, business address, product category, and description of what you sell. Read it as a stranger. Is the category accurate? Some categories are harder to underwrite than others — if you sell general merchandise but wrote "beauty products", Stripe screens you against beauty-specific rules. Is every required field actually filled in? Partially-completed profiles often get rejected because underwriting is automated. If something is wrong, fix it — then you can either reapply to Shopify Payments or move forward with a different gateway.
- Research which gateways accept your category and countryYou don't have time to wait for a reapplication. Other gateways underwrite the same categories that Shopify Payments rejected, and some don't. The gateways that publicly advertise support for your product category are the ones to approach. Search for your category plus "payment gateway" or "payment processor", and look for gateways that list your country as supported and your category as acceptable. Check their integration with Shopify: most major gateways offer a public Shopify app. You're looking for one that will activate before your launch date.
- Activate the new gateway on your Shopify storeOnce you have selected a gateway that accepts your category, install its Shopify app or follow its setup instructions. No data migration needed. Your catalog, your design, your customers list, your orders — everything stays on your Shopify store. You're only swapping which processor settles your money. The new gateway typically activates within hours of setup. Test a transaction in sandbox mode, then switch to live. You can delete Shopify Payments from your payment methods as soon as the new gateway is active.
- Rebuild your checkout for the new gateway's requirementsSome gateways have stricter data collection than others. Check whether your new gateway requires address verification, CVV, or three-D Secure. If your checkout was set up for minimal friction, adding these fields might drop your conversion rate slightly — but an active checkout beats a perfect one that doesn't work. You can always soften friction later. Set up the new gateway's webhook and monitoring now, so you know immediately if transactions start failing. Test again with a real transaction.
- Keep Shopify Payments as a backup option, or don'tIf you want to reapply to Shopify Payments in three to six months, you can. Your store will remember the rejection, but there's no rule against trying again after you've fixed your profile or grown your order history. Some gateways have higher fees than Shopify Payments — if you plan to go back, set a reminder for the reapplication and make sure your business profile is locked in. More likely: you'll find a gateway that works, your sales will grow, and you'll never think about Shopify Payments again. Either way, you're selling now instead of waiting.
And then there is the part that actually loses businesses
If you do need a new store, the payments problem turns out to be the easy half. This is what is sitting in your current store right now, and what happens to each piece when someone tries to move it by hand:
Why this category in particular
A firearms store's data is dangerous to move by hand because shipping and compliance metadata lives in metafields and custom product fields. Your FFL-gating rules, state-level restrictions, age-verification flags, and any caliber-to-state mapping are all either in metafields or in non-standard product fields that a CSV export cannot carry. If those are lost or silently point to the old store's system, you will ship products to blocked states or to underage customers, and the acquirer will terminate you immediately. The migration must preserve every compliance-linked metafield and every custom shipping rule.
| What you own | How much of it | What breaks doing it by hand | What we do instead |
|---|---|---|---|
| Product images | 6,400images≈ 27 hrsbulk re-upload, ~15 sec each | By handthe CSV carries image URLs and alt text, but they point at your OLD store's CDN — so the moment the old store goes, every image 404s. Re-upload and Shopify appends a dedupe suffix to the filename, which breaks every theme section and product description that referenced the original URL | Automatedevery file re-uploaded through the API with its alt text and variant attachment intact, its content type preserved so image-restricted fields still accept it, and every reference to the old URL rewritten |
| Product descriptions | 800descriptions≈ 2 hrsone pass to repair inline image links — the CSV carries the text | By handdescriptions are full of inline images and links pointing at the old store's CDN. Paste them into the new store and the text survives perfectly while every embedded image quietly dies — which you usually discover from a customer, not from a report | Automatedbodies copied verbatim, then a second pass rewrites every source-CDN URL inside them to the re-uploaded file on the new store |
| Product attributes & variants | 2,400variants≈ 45 minthe CSV carries these; the time is verifying option order | By handoption ORDER is part of the product's identity. Rebuild "Size, Colour" as "Colour, Size" and every theme swatch, saved customer URL and app that keys on variant position breaks — silently, because the product page still renders | Automatedvariants upserted by SKU with option names and order preserved, so swatches, deep links and app data keep working |
| Metafields & metaobjects | 4,800metafields≈ 32 hrsonly the reference, JSON and metaobject fields, ~1 min each | By handthe product CSV carries simple text and number metafields — but not metaobjects, and not reference or JSON types, which is exactly where app data and theme content live. Reference fields are the real trap: copy the value and it still points at objects in the OLD store, so the page renders and the custom block is silently empty | Automatedwritten in dependency order after their targets exist, with embedded references re-pointed at the new store's objects — and any value whose reference cannot be resolved is dropped rather than written broken |
| SEO data & redirects | 932records≈ 3 hrsredirects one at a time, plus a handle audit | By handany handle that changes becomes a dead URL with no redirect, and existing 301s are not in the product CSV at all. Years of accumulated ranking and backlinks end up pointing at pages that no longer resolve — the most expensive thing on this page to get wrong, and the slowest to notice | AutomatedSEO titles, meta descriptions and handles carried across, and every existing 301 recreated, so nothing that used to rank starts 404ing |
| Your custom theme | 1theme≈ 6 hrs2–10 hrs depending on how customised it is | By handa theme is not just its files. The settings, section content and block ordering are stored against the store, so a file copy gives you the layout and none of the content. Hardcoded asset URLs and tracking snippets also still point at the old store | Automatedyour live theme pulled and pushed as-is, then scanned for tracking snippets and hardcoded URLs that need re-pointing |
| Customers | 2,500customers≈ 2 hrsCSV import, then cleaning up the rows that fail | By handthe importer works, but marketing consent is the exposure: the CSV carries the current opt-in state and NOT the timestamp or source behind it. Re-opting someone in is a compliance breach, dropping them burns list revenue you paid for, and you cannot prove which happened afterwards. Default-address designation is also lost | Automatedcustomers upserted by email with every address, the default-address designation, and email and SMS consent states and timestamps preserved exactly as they were |
| Order history | 4,200orders≈ 8 hrsa paid third-party importer, plus a day of mapping and reconciliation | By handShopify's own CSV importer cannot create orders at all, so the hours here assume you buy a third-party importer — key them in by hand instead and 9,400 orders is closer to 390 hours, which is why nobody does that and why order history is simply abandoned in most DIY moves. Then support cannot answer a warranty claim, repeat-purchase segments are empty, and every returning-customer flow starts from zero. Getting the mapping wrong duplicates orders or re-dates them to today, and both are worse than not importing at all | Automatedfull order history recreated through the API with line items, properties, customers re-associated, original dates and tracking numbers intact |
| Navigation menus | 3menus≈ 1 hrsabout an hour to rebuild and relink them all by hand | By handmenu items store resource IDs, not paths, so nothing about them is portable — every link has to be re-pointed at the equivalent collection, page or product on the new store | Automatedmenus rebuilt with their nesting, and every item re-pointed at the equivalent object on the new store |
| Discount codes | 15discounts≈ 1 hrsabout 1 hr via the discount CSV, or ~3 hrs rebuilt by hand | By handthe discount CSV covers basic codes, but automatic discounts, quantity breaks and combination rules are not in it and have to be reconstructed by hand. A subtly wrong rule is worse than a missing one, because nobody notices until it has been over-discounting for a fortnight | Automateddiscounts recreated through the API with their rules, usage limits and dates intact, including automatic and free-shipping types |
| Blogs & pages | 12articles & pages≈ 48 minrecreated one at a time, ~4 min each | By handno CSV route for either. Articles also have no SEO fields of their own — their title and description tags live in metafields — so a hand-rebuilt blog loses its SEO even when every word of the text is right | Automatedarticles and pages recreated with authors, tags and publish dates, their SEO written to the metafields Shopify actually stores it in, and inline image URLs rewritten |
| Apps & app data | 8apps≈ 8 hrsabout 1 hr per app to reinstall, reconfigure and re-test | By handmost app data lives in metafields on your products and customers, so reinstalling the app gets you an empty app: reviews gone, subscription plans gone, loyalty balances gone, bundles gone. Flows and automations have to be rebuilt by hand and re-tested, and anything with its own billing has to be re-subscribed | Automatedthe metafield data your apps rely on migrates with the products and customers it hangs off, so a reinstalled app finds its data waiting instead of an empty store |
See these numbers for YOUR store, free
The figures above are a typical store in your category. The demo scan connects read-only to yours and counts the real thing — every product, variant, image, customer, order and metafield — then tells you exactly what a migration would carry across. No card, and it never writes to your store.
▶ Run the free demo scanDoes this need a new company?
A firearms merchant does not need a new legal entity to process through a specialist acquirer. If you have been declined by Shopify Payments or Stripe, opening a new company will not reset that decision—both MATCH and the specialist's own underwriting follow the person, not just the business name. Your FFL is tied to your personal SSN or your business entity; a new shell company will not change that. Apply with your current structure and be transparent about your history.
Frequently asked
Why was I declined by Shopify Payments if I have a valid FFL?
Shopify Payments is underwritten by Stripe, and Stripe's policy treats firearms as restricted—not prohibited, but restricted with limited availability. That means Stripe does not board firearms merchants by default through Shopify. An FFL license proves you are legal to sell; it does not change Stripe's risk decision. Specialist acquirers do board FFL dealers, but they require proof of your license, your shipping workflow, and your compliance controls. Stripe's blanket restriction is structural, not a licensing gap.
Which payment gateway will actually work for my gun store?
Several high-risk acquirers publicly advertise firearms underwriting and will connect you to gateways Shopify supports natively—Authorize.net on a high-risk MID, or gateways from specialists like PaymentCloud and Easy Pay Direct. Which one approves you, at what rate and with what reserve, depends entirely on your FFL status, your processing history, and whether your shipping workflow enforces FFL-to-FFL transfers. Rather than cold-email each one, use the quote form on this page to describe your operation and get matched to active underwriters.
What happens to my product data if I move to a new payment processor?
Your product catalog, images and descriptions move cleanly. Your compliance metadata does not. Your FFL-gating rules, state-level geo-blocks, age-verification flags and any custom shipping logic are all stored in metafields or outside Shopify's standard product schema. A CSV export will not carry them, so they must be migrated by hand or through a custom script. If they are lost, your new store will ship to blocked states or to customers below the federal age limit, and your acquirer will terminate you. This is why a hand migration of a firearms store is almost always incomplete.
Will my reserve be huge?
Yes, typically. Firearms merchants commonly report rolling reserves of 10–20% held for 90–180 days. That is because chargebacks and disputes are common in this category (high AOV, high-value items, sometimes buyer's remorse or shipping disputes). Budget for that reserve from day one, because it will be in your contract and it will affect your cash flow. Some acquirers will lower the reserve if your processing history is clean and your volume is high; most will not negotiate until you have proven yourself.
Why did Shopify Payments reject me if I filled in every field?
Stripe uses automated underwriting that screens your product category against its policy. Some categories carry higher chargeback or fraud risk, and Stripe declines applications in those categories even if your profile is perfect. Others are harder to underwrite if your business description is vague. Stripe does not publish the exact reason for individual rejections. If your category is on its public restricted list, rejection is policy. If your category is general, the problem was likely profile clarity — describe exactly what you sell, not categories.
Can I reapply to Shopify Payments right now?
Technically yes, but reapplying with an identical profile will likely be rejected again. Shopify (via Stripe) publishes no SLA for reapplication review. If you believe your first application had incomplete information, fix your profile first, then try again. If your product category is what triggered the decline, reapplication will not help unless you've genuinely changed what you sell. In the meantime, activating a different gateway lets you start taking payments immediately.
Will switching to a different payment gateway lose my customer data or orders?
No. Switching payment gateways does not touch your store, your catalog, your customers, your order history or anything else in Shopify. You are only changing which processor settles your money. All your Shopify data stays exactly where it is. The new gateway integrates with your checkout, and new orders go through it instead of Shopify Payments. Old orders stay in your Shopify admin. No migration, no data loss.
What if every gateway rejects me?
This is rare at application stage (as opposed to after trading). If multiple gateways decline you, the issue is usually your product category being on most processors' restricted lists, or incomplete business information that raises flags across the board. Read their rejection emails for hints. Complete your business profile fully and honestly. If your category is genuinely restricted (adult content, certain financial services, high-risk gambling), mainstream gateways won't work — you would need a high-risk processor, which is slower to activate and more expensive.
Can you reactivate Shopify Payments for me after I switch gateways?
No. We can't turn Shopify Payments back on, and Stripe's decision is not reversible by Shopify support. What we do is move your store to a new Shopify store built around a gateway that will accept you — migrating your catalog, descriptions, images, customers, orders, themes and more. But for an application rejection with no funds held, you don't need a migration. Activating a different gateway on your current store is faster, cheaper and keeps everything you've built. Migrate only if you later face a termination and need to move to a new Shopify account entirely.
Move everything, verified twice, from $247
Pick a package and the migration order form unlocks immediately. Your existing store is only ever read from — we never write to it, so nothing you still have can be made worse. How the migration runs, step by step →