Which payment gateway is best for subscription billing in Salesforce?
Stripe, Authorize.Net, PayPal, ACH, and How Native Billing Connects

Payment Gateways for Subscription Billing in Salesforce: The Complete Guide
By Kuldip Hillyer, Founder & CEO, Kugamon · Published September 15, 2026
There is no single best payment gateway for subscription billing. The best one for you supports the payment methods your customers actually use — cards, plus ACH if you sell B2B — tokenizes stored payment methods so card numbers never touch your CRM, and connects natively to the system that owns the subscription so payment status flows back to the invoice without a sync. Stripe, Authorize.Net, PayPal, and eWay all clear the first two bars. The third is decided by your billing system, not the gateway.
That's the part most gateway comparisons skip. Fee tables matter, but a tenth of a percent on card rate is noise next to a recurring charge that never adjusted for a one-time payment, or a declined card nobody in Salesforce saw for three weeks. For subscription billing, the gateway is plumbing. The billing system is where the money is tracked.
This guide covers what a gateway, a processor, and a billing platform each do; the eight things subscription billing needs from a gateway; published fees for Stripe, Authorize.Net, PayPal, and eWay as of September 2026; how a native Salesforce billing system like Kugamon connects to the gateway; how to test before go-live; and how routing works when you run more than one gateway.
Which Payment Gateway Is Best for Subscription Billing?
The one that passes three tests:
- It supports the payment methods your customers use. Consumer subscriptions run on cards and wallets. B2B subscriptions run on cards for small contracts and ACH, wire, or check for large ones. If your customers pay by bank transfer and your gateway only takes cards, you'll be recording those payments by hand forever.
- It tokenizes. The gateway stores the card and hands you a token. You charge the token. Card numbers never sit in a Salesforce field, which keeps most of your PCI DSS scope on the gateway's side of the line.
- It connects natively to the system that owns the subscription. A Completed, Declined, or Refunded status should land on the payment record next to the invoice it paid — not in a gateway dashboard someone checks on Fridays.
Stripe, Authorize.Net, PayPal, and eWay all tokenize and all support recurring charges. They differ on fees, ACH, region, and wallet coverage. The comparison table below has the published numbers.
Gateway vs. Processor vs. Billing Platform: What Each Does
The three terms get used interchangeably. They aren't the same thing.
| Layer | What it does | Examples | What it doesn't do |
| Payment gateway | Encrypts and transmits card or bank details from your checkout to the processor, returns approved or declined, stores tokens | Stripe, Authorize.Net, PayPal, eWay | Decide what to charge or when |
| Payment processor / merchant account | Moves the money: routes the transaction through the card networks or the ACH network and settles funds to your bank account | The merchant account bundled with Stripe, PayPal, eWay, or Authorize.Net's all-in-one plan; or your bank's merchant account behind Authorize.Net's gateway-only plan | Know which invoice the money was for |
| Billing platform | Owns the subscription, the invoice, the amount due, the schedule, and the payment status; tells the gateway what to charge and records the result | Salesforce-native billing, or a standalone billing tool synced to the CRM | Touch raw card numbers, if it's built right |
Stripe, PayPal, and eWay bundle the gateway and the processing. Authorize.Net sells a gateway-only plan for businesses with their own merchant account and an all-in-one plan for those without. Either way, the billing platform is the layer that knows a $1,200 charge was invoice 0042 for the March renewal — and that's the layer subscription billing lives or dies on.
What Subscription Billing Needs From a Gateway
1. Tokenized stored payment methods
The customer enters a card once. The gateway returns a token; the billing system stores the token, the card type, and the last four digits. Every later charge uses the token. If a gateway can't do this, it can't do subscriptions.
2. Recurring or scheduled charges
A charge that runs on a schedule you set — a start date, a frequency (day, week, month, or year), and a number of occurrences — against the stored payment method. Some gateways run the schedule on their side; some billing systems run it and call the gateway each cycle. Either works as long as the result is written back.
3. Card and ACH support
For B2B, ACH is where the money is. Card fees are a percentage of the invoice with no ceiling; ACH fees at the gateways below are a lower percentage with a cap, which matters on a $40,000 annual invoice. Stripe, Authorize.Net (as eCheck), and PayPal all publish ACH rates for US businesses. eWay is Australian and lists PayTo for bank payments instead.
4. Authorization, capture, void, and refund
Authorize now and capture later, for orders that provision after payment. Void before settlement; refund after it. Refunds should be issued against the original payment so the records tie out.
5. Status reporting back to the billing system
Declined, Error, Expired, Pending, Completed — with the processor's message attached. This is the data that makes dunning possible. A gateway that only shows it in its own dashboard has half a feature.
6. Multi-currency
If you invoice in more than one currency, check whether the gateway settles in each currency or converts. eWay, for example, states on its pricing page that multi-currency requires a separate account per currency.
7. Wallets where the gateway supports them
All four gateways list digital wallets on their pricing pages; Apple Pay and Google Pay are named by Authorize.Net, PayPal, and eWay. Wallets matter more for consumer subscriptions than B2B, but they cut checkout friction wherever they appear.
8. A sandbox or test mode
Every gateway on this list has one. You'll use it for the test plan below.
Stripe vs. Authorize.Net vs. PayPal vs. eWay: Published Fees and Features
Every number here comes from the vendor's own pricing page as of September 2026, and each is linked. Fees change; the link is the source of truth. "See vendor page" means the page didn't state it plainly enough to quote.
| Gateway | Card fee (as published) | ACH / bank debit (as published) | Stored-payment tokenization | Recurring billing | Sandbox |
| Stripe | 2.9% + 30¢ per successful domestic card transaction (Stripe pricing) | ACH Direct Debit 0.8%, $5.00 cap | Yes — card details stored in Stripe's PCI-compliant vault (pricing page) | Yes — Stripe Billing, priced separately (see pricing page) | Yes — Stripe Sandboxes |
| Authorize.Net | $25/month gateway fee; all-in-one plan 2.9% + 30¢ per transaction, or gateway-only 10¢ per transaction plus 10¢ daily batch fee with your own merchant account (Authorize.Net pricing) | eCheck 0.75% per transaction; US businesses only; $10 monthly minimum | Yes — Customer Information Manager, no monthly fee | Yes — Automated Recurring Billing, no monthly fee | Yes — developer sandbox |
| PayPal (US) | Standard credit and debit card payments 2.99% + $0.49; PayPal Checkout 3.49% + $0.49 (PayPal merchant fees) | ACH Services 0.80%, capped at $5.00 per transaction (PayPal Online Payment Services) | Network tokenization listed as an optional service at $0.15 per token; see vendor page for vault details | Yes — Recurring Billing listed as an optional service, $10.00/month | Yes — PayPal sandbox |
| eWay (Australia) | 1.5% + 25c per Visa, Mastercard, or Amex transaction, +1.99% for international cards, no monthly fee; AUD, includes GST (eWay pricing) | No ACH (Australian rails); PayTo pre-authorised bank payments listed | Yes — token payments listed | Yes — recurring billing listed | Yes — Eway Sandbox, linked from the pricing page |
Two notes. Card rates cluster within a few tenths of a percent; the real cost differences are the monthly fee, ACH availability, and what a large invoice costs by card versus bank debit. And the table shows standard published rates only — volume and custom pricing exist and aren't listed.
How a Native Salesforce Billing System Connects to the Gateway
Here's how it works in Kugamon, as one example of billing that runs on native Salesforce records. Payments are a Salesforce object, and the gateway connection — Stripe, Authorize.Net, PayPal, or eWay — is configured in Kugamon Settings. A payment can be made only against an Approved or Released order or an Unsent or Sent invoice. When a user or a customer charges a card, the processor's response sets the payment status, and Completed amounts are applied to the invoice and roll up to the account balance. Stored payment methods are off by default and enabled by Kugamon Support; once on, a customer's saved method can be marked as the default. A Recurring Charge is scheduled from an Approved or Released order with a start day, a frequency by day, week, month, or year, and a set number of occurrences; the record shows the next payment date and carries controls to Cancel, Suspend, Update, or Bill for any Outstanding Amount. Refunds are issued from the original payment record.
| Payment status | What it means | Applied to the invoice? |
| In Process | Created but not yet submitted to the processor; abandoned ones older than an hour can be deleted | No |
| Scheduled / Pending | Active but not completed; status relayed from the processor | No |
| Declined / Error / Expired | Failed; the processor's error message is written to the Payment Memo field | No |
| Authorized | Payment method authorized, amount not yet captured | No |
| Completed | Captured, or a manual payment recorded; the amount is applied to the related order or invoice | Yes |
| Voided | Cancelled and communicated to the processor; authorized and completed amounts are un-applied | Un-applied |
| Reversed | Cancelled without contacting the processor; used for manual payments such as a check or bank transfer recorded by hand | Un-applied |
The point isn't the specific names. It's that every one of those statuses is a field on a Salesforce record, so a report, a Flow, or an account owner can act on it without logging into the gateway.
How to Test a Payment Gateway Before Go-Live
Use the gateway's sandbox, not a live account with a $1 charge. Every vendor above publishes test card numbers and trigger values for specific responses.
1. Get sandbox credentials
Stripe Sandboxes, the Authorize.Net developer sandbox, PayPal sandbox accounts, and the eWay sandbox are all separate from production and move no real money. Connect the billing system to the sandbox keys, not the live ones.
2. Pull the test card numbers from the gateway's docs
Each gateway publishes card numbers and amounts that trigger approvals, declines, and specific error codes. Don't invent them, and never use a real card.
3. Run a declined-card scenario
Charge with the "decline" test card. Confirm the payment record shows Declined with the processor's message, and that nothing was applied to the invoice.
4. Run an expired-card scenario
Same again with an expired test card. This is the failure you'll see most often in production, so confirm the status, the message, and who gets notified.
5. Void one payment and refund another
Void an authorized payment before capture; refund a completed one from the original payment record. Check that the invoice balance and the account balance both move back.
6. Run a recurring charge through at least one cycle
Schedule a short-interval recurring charge with two occurrences and let it run. Confirm the second payment record was created, its status is Completed, and the next-payment date advanced.
7. Verify the invoice and the account balance
After each step, open the invoice and the account. Applied payment amount and balance due should change only on Completed payments and un-apply on Void or Reversed. If any of that takes a manual step, you've found your first production bug early.
Transaction Routing and Multiple Gateways
Plenty of businesses run more than one gateway: Stripe for US cards and ACH, eWay for Australian customers, PayPal because some buyers insist on it. When that's true, the billing system has to pick a processor per payment — by currency, by region, by payment method, or by the customer's saved default.
What to look for: each gateway is a separate processor connection with its own credentials and its own sandbox; the payment record stores which processor was used; stored payment methods are tied to the processor that tokenized them, so a Stripe token won't charge through PayPal; and refunds route back through the processor that took the original payment. In Kugamon, processor selection is driven by the Processor Connections and Payment Settings configured in Kugamon Settings — and if only one processor is configured, the selection step is skipped entirely.
Common Mistakes
- Storing card numbers in CRM fields. A "Card Number" text field on the Account is a PCI scope problem and a breach waiting to happen. Store the gateway's token, the card type, and the last four digits. Nothing else.
- Recurring charges that don't adjust for one-time payments. A recurring charge is a standing instruction to the gateway, independent of any ad-hoc payment. Kugamon's own documentation is explicit: if a customer with an active recurring charge makes a separate one-time payment, cancel and re-create the recurring charge against the updated balance due. Ask any billing vendor the same question.
- No dunning path for declines. A Declined status nobody reads is an unpaid invoice with extra steps. Decide who gets the task and when before go-live — see involuntary churn and dunning.
- Testing only the happy path. An approved test charge proves the credentials work. The decline, the expiry, the void, and the refund prove the system works.
- Comparing card rates and ignoring ACH. On a five-figure B2B invoice, a capped ACH fee versus an uncapped card percentage is the largest cost difference in this article.
Frequently Asked Questions
Q: What is the best payment gateway for subscriptions?
There isn't a single best one. Choose the gateway that supports the payment methods your customers use (cards, plus ACH for B2B), tokenizes stored payment methods so you never hold card numbers, and connects natively to your billing system so payment status is written back to the invoice. Stripe, Authorize.Net, PayPal, and eWay all tokenize and support recurring charges; they differ on fees, ACH, region, and wallets.
Q: What is the best billing software with ACH support?
One that processes ACH through a connected gateway and writes the result back to the invoice. Stripe, Authorize.Net, and PayPal all publish ACH or eCheck rates for US businesses. In a Salesforce-native system like Kugamon, cards and ACH both run through the gateway connections — ACH through Authorize.Net (eCheck) and Stripe (ACH Direct Debit) — while wire and check payments are recorded against the invoice so the balance and account roll-ups stay correct.
Q: What is the best way to test a payment gateway?
In the gateway's sandbox, with the vendor's published test card numbers, and beyond the happy path. Run a declined card, an expired card, a void, a refund, and a recurring charge through at least one cycle, and after each step confirm the invoice balance and the account balance updated correctly.
Q: Which payment gateway suits SaaS platforms?
For SaaS selling to businesses, a gateway with both cards and ACH, tokenization, and a sandbox — Stripe, Authorize.Net, and PayPal all qualify for US merchants; eWay for Australian ones. The bigger decision for SaaS is the billing system, because that's where subscriptions, proration, and dunning live. The gateway just moves the money.
Q: What is the difference between a payment gateway and a payment processor?
The gateway transmits the transaction and returns approved or declined; the processor and merchant account move the money through the card or ACH networks and settle it to your bank. Stripe, PayPal, and eWay bundle both. Authorize.Net offers a gateway-only plan for businesses with their own merchant account and an all-in-one plan that includes one.
Q: Do I need to store card numbers to run subscription billing?
No, and you shouldn't. The gateway stores the card and returns a token; your billing system stores the token, the card type, and the last four digits, and charges the token on schedule. Card numbers never touch your CRM, which keeps most of your PCI DSS scope with the gateway.
Q: How does transaction routing work for subscription businesses?
When a business runs more than one gateway, the billing system selects the processor for each payment by currency, region, payment method, or the customer's saved default. Each gateway is a separate connection, stored payment methods are tied to the processor that tokenized them, and refunds go back through the processor that took the original payment. If only one processor is configured, there's nothing to route.
Q: What happens when a recurring subscription payment is declined?
The processor returns a decline, the billing system records a Declined, Error, or Expired status with the processor's message, and nothing is applied to the invoice. What happens next depends on your dunning workflow: retries for soft declines, a notice with a self-service link to update the payment method, a grace period, and escalation to the account owner for B2B accounts.
Next Steps
Pick the gateway by payment method and region, then judge the billing system with the test plan above: run the decline, the expiry, the void, the refund, and one recurring cycle in a sandbox and watch the invoice. If you want to see payments, stored payment methods, and recurring charges as native Salesforce records connected to Stripe, Authorize.Net, PayPal, and eWay, explore Kugamon Subscription Billing, read What Is Subscription Billing? and B2B subscription billing, or schedule a demo and bring your gateway's sandbox credentials. No pitch — just a test plan and the records to run it against.