Billing

Connecting Stripe

Stripe is the only payment processor ArkCloud uses for patient money. Turning it on takes two steps by two different people: the deployment's Stripe keys, set once by whoever runs ArkCloud, and the practice's own Stripe account, connected by the practice's administrator.

Written for: Practice administrators · Implementation teams · Platform operators

Status

1. The deployment

Set by whoever runs the ArkCloud deployment. Off by default; none of these are set on the hosted ArkCloud service today.
Field or controlWhat it means
STRIPE_SECRET_KEYThe platform's Stripe key. Without it every patient payment is refused with a plain message and nothing is charged.
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYLoads Stripe's card form in the portal and on staff screens. Built into the browser code when ArkCloud is built, so changing it needs a rebuild.
STRIPE_WEBHOOK_SECRETRequired. Signing secret for the platform webhook endpoint. Without it the webhook refuses every event, Connect events included, so no card payment would ever be posted.
STRIPE_CONNECT_WEBHOOK_SECRETSigning secret for the Connect webhook endpoint that delivers practices' payment, refund, dispute and account events.
PAYMENT_MODEMust not be stub. In stub mode payments are refused even with a key.

2. The practice

Settings → Payments

  1. An administrator presses Connect with Stripe.
  2. Stripe's own onboarding opens. The practice creates or links its Stripe account and completes it.
  3. Back in ArkCloud, the status reads Accepting payments once Stripe has enabled charges. If it reads Setup not finished, use Continue setup on Stripe.

From then on patient payments - in the portal, at the staff desk, and AutoPay on saved cards - are created on the practice's account: the practice is the merchant of record, settles the money, and responds to disputes in its Stripe dashboard. An Admin can refund a card payment from ArkCloud. If Stripe restricts the account, ArkCloud stops taking payments for it at once. There is no fallback to ArkCloud's own Stripe account.

Other processors

Related documentation