Connect your patient payment processor
Pick the company that charges your patients' cards, save its keys, and get off test mode.
This page is about the money patients pay you. It is not your GEN Health bill — that is Your plan and account payment method, on a different page.
Three pages have “payment” in them and readers mix them up constantly. This one, /billing, is the processor that charges your patients. Settings → Payments (/settings/payments) holds the same processor card plus vault charges, installment billing, and default shipping. Settings → Account and billing (/settings/overview) is the opposite direction of money: what GEN Health charges you.
Questions people ask about this page
My processor says "Active: None". Can I take money?
No. None is the test-mode tile and its subtitle says so: Test mode — no real charges. Patients get a demo checkout, orders are created, and nothing is charged. Every new account starts here. You are not live until a real processor tile shows the green Active chip.
Which processors can I use?
Nine tiles, in this order: None, Custom Payment Instructions, Stripe, Authorize.Net, NMI, SimPay, SlidePay, Square, Whop. Only one can be active at a time.
Where do I get the keys?
From your own account with that processor, never from GEN Health. Each dialog carries a Need your API keys? line and a link straight to that provider's dashboard. Paste the keys only into this dialog — never into a support ticket, a chat message, or an email.
Do I need a webhook?
For Stripe and Whop, no — the dialog says Your webhook URL will be registered automatically when you save credentials. and Webhook Secret is marked Optional. For Authorize.Net, register the shown Webhook URL yourself and keep the Signature Key saved so notifications can be verified. NMI, SimPay, SlidePay and Square have no webhook field.
My Billing page has no processor tiles at all.
Your account is on the Affiliate model, so patient payments run through your provider network's processor and the picker is removed. The subtitle changes too: Review patient checkout activity. Payments are processed through your provider network.
What is "Custom Payment Instructions" for?
Selling without an online card checkout — bank transfer, invoicing, in-clinic payment. Patients see the text you write instead of a payment form. If you activate it without writing the text, the tile warns Missing content.
Where is the OnlyScripts payment method? I was told to save a card with them.
Not on this page, and there is no Save payment method with OnlyScripts button anywhere. Pharmacy setup lives on /integrations under Pharmacies. See Integrations and pharmacy.
Is there a second payments page?
Yes. Settings → Payments (/settings/payments) shows this same processor card plus Vault charge orders, Finite installment billing and Default shipping price. Changing the processor in either place changes it in both. Those extra three settings are covered in Settings — Payments.
Before you start
- A live merchant account with one of the nine processors.
- That processor's API keys, copied from its own dashboard. Have both the test and the live set clear in your head — they are not interchangeable.
- Client Admin access. Client Staff cannot see
/billing.
Who does what: you do all of it. GEN Health never asks for and never needs your processor keys. Time: about ten minutes once you have the keys.
Where to find it
Left menu → Billing. Direct link: /billing. Page title Billing, subtitle Manage the patient payment processor and checkout activity. Visible to: Client Admin only. Hidden entirely on Review-Only accounts. The same processor card also appears at Settings → Payments (/settings/payments), which adds three further settings of its own.
What is on this page
| What you see | What it does |
|---|---|
| Card Payment processor — Manage billing processor and API keys | The nine tiles. Clicking one opens its credentials dialog or makes it active. |
| Chip Active on a tile | This is the processor patients are charged through right now. |
| Card Transaction History — Order payment activity for this account. | Every patient charge that has run through your processor. |
| Button Export CSV | Downloads the rows currently shown. |
| Search box, placeholder Search patient, order, product, or status | Filters the table. |
| Filters All statuses and All patients | Narrow by charge status and by patient. |
| Filter Date | Narrows by date. |
| Filter Filter by amount | Two inputs, Minimum transaction amount and Maximum transaction amount. |
| Columns Date · Amount · Status · Patient · Order | One row per charge. A Processor column and an All processors filter appear only if you have saved keys for more than one processor. There is no Client column on a client account — that one belongs to the provider-network view of this table. |
| Row menu Transaction actions | View order · View patient · Copy reference · Issue refund. |
Every processor tile
| Tile | Subtitle on the tile | What it needs from you |
|---|---|---|
| None | Test mode — no real charges | Nothing. Patients see a demo checkout and no money moves. |
| Custom Payment Instructions | Show instructions instead of checkout | Text telling patients how to pay you. |
| Stripe | Credit card processing | Publishable Key, Secret Key, Webhook Secret (Optional). |
| Authorize.Net | Payment gateway | API Login ID, Transaction Key, Signature Key, Public Client Key. |
| NMI | Network Merchants Inc. | Private API Security Key, Public API Key / Tokenization Key, Webhook Signing Key (Optional). |
| SimPay | SimPay gateway | Same three fields as NMI. |
| SlidePay | SlidePay gateway | Same three fields as NMI. |
| Square | Web Payments SDK checkout | Application ID, Access Token, Location ID. |
| Whop | Hosted checkout | API Key, Company ID, Webhook Secret (Optional). |
Never paste a secret key anywhere except the credentials dialog on this page. GEN Health support will never ask you for one. If you have already pasted a key into a ticket or a chat, rotate it in your processor's dashboard and save the new one here.
How to connect Stripe
Open the page
In the left menu, click Billing.
Click the Stripe tile
A dialog opens titled Stripe, described as Paste your Stripe publishable and secret keys. The webhook will be registered automatically.
Get the keys
Follow the Open Stripe dashboard link under Need your API keys?. Copy the publishable and secret keys for the environment you want — test keys for a rehearsal, live keys for real money.
Paste them
Fill Publishable Key and Secret Key. Leave Webhook Secret blank; it is marked Optional and the webhook registers itself.
Test before you save
Click Test connection. Fix any error it reports before continuing. Test connection and Verify and save stay greyed out and unclickable until both key fields have something in them — that is not a bug.
Save
Click Verify and save. If credentials already exist the button reads Verify and update instead.
Confirm you are live
The Stripe tile now carries the green Active chip and a green ring, and the None tile no longer does.
Every other card processor follows the same shape: click the tile, fill its fields, Test connection, Verify and save. Only the field names change.
How to write custom payment instructions
Click the tile
Click Custom Payment Instructions. The dialog is titled the same, described as Write payment instructions that patients or staff will see in place of the checkout form.
Write the instructions
The editor placeholder tells you what to cover: Explain how the patient should pay, where to send payment, and what to include. Give the account details, the reference to quote, and what happens next.
Save
Save the dialog. If you activate this tile with no text saved, it warns Missing content and patients see an empty instruction block.
How to change or remove a processor
Switch to another one
Click a different tile. If it already has keys saved, it becomes active immediately and a toast confirms Payment processor set to {label}.
Update keys
Click the tile you are already using, edit the fields, and click Verify and update. Saved values show Saved; clearing one warns This saved field will be cleared on save.
Remove keys entirely
Open the tile and click Delete credentials in the footer.
Go back to test mode
Click the None tile. Real charges stop immediately.
Switching to None silently stops taking money. There is no confirmation. Do not use it as a way to "pause" a live storefront without telling your team.
Statuses you will see here
On the processor tiles:
| Status | What it means | What to do |
|---|---|---|
| Active (green chip and ring) | The live processor, with keys saved. Patients are charged through it. | Nothing. |
| Configured (grey) | Keys are on file but this is not the active processor. | Click the tile to make it active. |
| Missing keys (amber) | The tile was activated before its keys were saved. Checkout is broken right now. | Open the tile and save the credentials. |
| Missing content (amber) | Custom Payment Instructions is active with no instructions written. | Open the tile and write them. |
| No chip | Untouched. | Click it to start. |
| Line reads Not configured | No processor has been chosen at all. | Pick a tile. |
In Transaction History, the Status column shows the processor's own word, unchanged and lowercase — succeeded, requires payment method, approved, declined, held_for_review. Green means it worked, amber means pending or held, red means declined, failed, or voided. Authorize.Net maps its numeric codes to approved, declined, error, held_for_review.
"Connected" here only means your keys are stored. There is no Stripe Connect onboarding, no payouts check, and no verification state — so a tile can read Active while your processor account is still restricted on their side. Confirm payouts in your processor's own dashboard.
What can go wrong
| What you see | Why | Fix |
|---|---|---|
| Patients complete checkout but no money arrives | The None tile is active, so checkout is a demo. | Activate a real processor. |
| Test connection fails | Wrong environment. Test keys against a live gateway (or the reverse) fail. | Copy both keys again from the same environment. |
| Tile shows Missing keys after you saved | One required field was left blank. | Reopen the tile; blank required fields have no Saved marker. |
| Authorize.Net charges work but notifications never arrive | Its webhook is not automatic. | Copy the Webhook URL with Copy URL, register it at Authorize.Net, and keep the Signature Key saved here. |
| No Issue refund in the row menu | Refunds are not offered for Whop, custom instructions, or API-collected payments, nor once the order is fully refunded or voided. | Refund in the processor's own dashboard, then reconcile the order. |
| No Billing item in your left menu | You are Client Staff, or the account is Review Only. | Ask a Client Admin, or check your account model. |
| You are hunting for vault charges, installments, or default shipping | Those live on Settings → Payments, not here. | See Settings — Payments. |
Next
Was this helpful?
