Patient payment processor
The one choice on /billing: which processor charges patients when your network is the one being paid.

/billing is a single choice: which payment processor takes money from patients when your network is the one being paid.
This page is not your GEN Health bill. Your own subscription, card and invoices are at Account and billing, inside Settings. Confusingly, both are called billing. This one is money coming in; that one is money going out.
Questions people ask about this page
Do I even need a processor? My clients take the money.
Usually they do. Your network processor is only the primary for clients on the Affiliate model. For Review Only and Review + Prescribe clients the client's own processor is tried first and yours is the fallback. If you have no affiliate clients and every client has its own processor configured, you can leave this on None.
What does None actually do?
It is test mode. The tile's own subtitle says Test mode — no real charges. Checkout still completes and orders still appear, but no money moves. It is the default, and it is the single most common reason a launched network takes no revenue.
I clicked a tile. Did that switch my live processor?
It depends on the tile. Clicking a tile that already has credentials saved switches to it immediately and toasts Payment processor set to {name}. Clicking a tile with no credentials only opens its credentials dialog. Clicking None switches to test mode straight away, with no confirmation.
Where is the invoices or transactions table?
There isn't one here. The provider-network Billing page is only the processor picker. Charges your network has made are visible on the order and prescription records; charges GEN Health has made to you are in /settings/account-billing.
What is "Custom Payment Instructions" for?
For taking money outside GEN Health — an invoice, a bank transfer, an existing terminal. Patients see your instructions instead of a checkout form, and, in the dialog's own words, Orders stay in payment-required status until staff updates them manually. Somebody has to mark those orders paid by hand.
Does connecting Stripe here mean Stripe Connect onboarding?
No. There is no Stripe Connect onboarding flow anywhere in the product. "Connected" means only that your API keys are stored. There is no charges-enabled or payouts-enabled state to wait for.
A tile shows an amber "Missing keys" chip.
That processor is active but its credentials were never saved — so patients cannot pay. Click the tile, fill in the fields, and click Verify and save. The equivalent for custom instructions is Missing content.
Where to find it
Left menu → Billing. Direct link: /billing. Visible to: Provider Network Admin only. Providers and Provider Delegates have no Billing item; going there directly gives them Page not found.
The short version
Decide whether you need it
Any client on the Affiliate model? Then yes.
Click your processor's tile
Its credentials dialog opens.
Paste the keys and click Verify and save
Use Test connection first if you want to check them without committing.
Confirm the green Active chip moved
It should now sit on your processor, not on None.
What is on this page
| What you see | What it does |
|---|---|
| Heading Billing | Subtitle Manage the payment processor for your provider network. |
| Card Payment processor | Description Manage billing processor and API keys. It is the whole page. |
| Nine tiles | One per processor, four to a row. Each shows a name and a one-line description. |
| Green Active chip | Sits on whichever tile is live. The tile also gains a green ring. |
| Credentials dialog | Opens when you click a tile that needs keys. |
Every processor tile
| Tile | Its subtitle | What it means for patients |
|---|---|---|
| None | Test mode — no real charges | The default. Checkout runs but no money moves. |
| Custom Payment Instructions | Show instructions instead of checkout | Patients read your instructions. Staff mark orders paid by hand. |
| Stripe | Credit card processing | Card checkout through Stripe. |
| Authorize.Net | Payment gateway | Card checkout through Authorize.Net. |
| NMI | Network Merchants Inc. | Card checkout through NMI. |
| SimPay | SimPay gateway | Card checkout through SimPay. |
| SlidePay | SlidePay gateway | Card checkout through SlidePay. |
| Square | Web Payments SDK checkout | Card checkout through Square. |
| Whop | Hosted checkout | Patients are sent to Whop's hosted page. |
Every credential field, by processor
| Processor | Dialog description | Fields |
|---|---|---|
| Stripe | Paste your Stripe publishable and secret keys. The webhook will be registered automatically. | Publishable Key, Secret Key, Webhook Secret (Optional), plus a read-only Webhook URL |
| Authorize.Net | Enter the API Login ID, Transaction Key, Signature Key, and Public Client Key from the matching Authorize.Net environment. Sandbox and live credentials are separate. | API Login ID, Transaction Key, Signature Key, Public Client Key, plus Webhook URL |
| NMI | Enter the NMI private API Security Key and public Tokenization Key from Settings > Security Keys. | Private API Security Key, Public API Key / Tokenization Key, Webhook Signing Key (Optional) |
| SimPay | Enter the SimPay private API Security Key and public Tokenization Key from your SimPay merchant portal > Security Keys. | Private API Security Key, Public API Key / Tokenization Key, Webhook Signing Key (Optional) |
| SlidePay | Enter the SlidePay private API Security Key and public Tokenization Key from your SlidePay merchant portal > Security Keys. | Private API Security Key, Public API Key / Tokenization Key, Webhook Signing Key (Optional) |
| Square | Enter the Square application ID, access token, and seller location ID from the same sandbox or production environment. | Application ID, Access Token, Location ID |
| Whop | Enter your Whop API key and company ID. The webhook will be registered automatically. | API Key, Company ID, Webhook Secret (Optional), plus Webhook URL |
| Custom Payment Instructions | Write payment instructions that patients or staff will see in place of the checkout form. | One rich-text field, PATIENT-FACING PAYMENT INSTRUCTIONS |
| None | No dialog | Clicking it activates test mode at once |
Every credential dialog ends with Cancel, Test connection and Verify and save, and carries a Need your API keys? line with an Open {processor} dashboard link. The custom-instructions dialog ends with Cancel and Save instructions.
How to connect a processor
Open the page
Left menu → Billing.
Click the tile you want
Its credentials dialog opens. Nothing has changed yet.
Paste the keys from the processor's own dashboard
Use the Open {processor} dashboard link if you need to fetch them. Sandbox and live keys are different — the Authorize.Net dialog says so explicitly.
Click Test connection
This checks the keys without committing them.
Click Verify and save
The tile gains the green Active chip and a toast reads Payment processor set to {name}.
Place one real test order
Buy something cheap through a client's storefront and confirm the charge lands in the processor's dashboard.
Which processor a patient actually hits
A patient buying from one of your clients does not use "your" processor or "the client's" processor by name — the platform walks an ordered list and takes the first one that is configured. The order depends on the client's model, which you can see on the client record.
| Client model | First choice | Fallback |
|---|---|---|
| Affiliate | Your network processor | The client's own processor |
| Review Only | The client's own processor | Your network processor |
| Review + Prescribe | The client's own processor | Your network processor |
Because your processor is the fallback for every model, leaving it on None is a safe default only while every client has its own processor working. The moment one client's keys break, orders fall through to None and stop charging silently.
Statuses you will see here
| Status | What it means | What to do |
|---|---|---|
| Active (green chip and ring) | This is the live processor and its keys are saved. | Nothing. |
| Missing keys (amber) | The processor is active but no credentials were saved. Patients cannot pay. | Click the tile and save the credentials. |
| Missing content (amber) | Custom Payment Instructions is active but no instructions were written. | Click the tile and write them. |
| Configured (grey) | Keys are on file but this is not the live processor. | Click the tile to switch to it. It switches immediately. |
| No chip at all | Untouched. | Click it to add credentials. |
| No Network Associated | Your admin account is not attached to a network. Body: You must be associated with a provider network to configure payment processors. | Raise a ticket at /support. /support opens on the Incoming Requests tab, which is normally empty — click Your Support Tickets to see and raise your own. |
| Billing Unavailable | The page could not resolve a network at all. Body: A provider network association is required to view billing. | Same — raise a ticket. |
What can go wrong
| What you see | Why | Fix |
|---|---|---|
| Orders complete but no money arrives | None is still the active tile. It is test mode and it is the default. | Click a real processor tile and save credentials. |
| You clicked a tile and the live processor changed with no warning | A tile that already has credentials activates on click. There is no confirmation dialog. | Click the tile you meant. The toast names whichever one is now live. |
| Checkout errors for patients after a switch | Sandbox keys were pasted into a live network, or the processor's environment does not match the keys. | Re-open the dialog, paste production keys, and use Test connection before saving. |
| Orders sit unpaid forever | Custom Payment Instructions is active. Orders stay in a payment-required state until a human moves them. | Give someone the job of marking them paid, or switch to a real processor. |
| You are hunting for invoices, refunds or transactions | The network Billing page has none of those tables. | Use /orders and /settings/account-billing, or the processor's own dashboard. |
| You added a card in the setup wizard and expected patients to be able to pay | That card pays GEN Health, not the other way round. | Configure a processor here as well. |
| An affiliate client's patients are charged by the client, not by you | Your network processor is unset, so the ordered list fell through to the client's. | Configure your processor here. |
| A tile you need is not listed | The nine tiles are the whole catalogue. There is no way to add another. | Use Custom Payment Instructions, or raise a ticket at /support. |
Next
Was this helpful?
