Overview
Arlo is pay-per-use: the patient pays per provider visit, and there are no recurring subscriptions. Each visit is approved by the patient on a Stripe Checkout page, where they authorize a temporary hold for the visit price. Nothing is charged until a doctor joins, and the hold is released otherwise. There is no card on file to set up ahead of time. Onboarding completes without payment, and the Stripe link is the whole payment flow, every visit.Arlo never auto-charges. The payment gate always waits for the patient to act on Stripe’s page.
How a visit is paid
1
Conversation reaches PAYMENT_REQUIRED
Triage is complete. The
paymentGate object carries a consultationSummary of what a provider can help with2
Relay the summary
The patient decides whether they want a visit
3
Call start_visit_payment
Returns a
paymentUrl, a Stripe-hosted page valid for about 30 minutes4
The patient approves the hold
On Stripe’s page. Stripe may offer to remember the card there; Arlo never collects card details
5
MATCHING
Once the hold is placed the conversation moves to
MATCHING on its own. Await a provider with wait_for_reply6
A doctor joins
The hold is captured. If no doctor joins, it is released
The payment gate
When a conversation reachesPAYMENT_REQUIRED, paymentGate is present on get_conversation, and inlined on the wait_for_reply or send_message result that completed triage:
Every gate is approved the same way:
start_visit_payment.
Checking payment status
get_payment_status returns the per-visit price and the account’s payment state:
billingMode and paymentStatus are informational for US accounts. paymentStatus: "PENDING" is the normal state for an account that pays per visit, and it does not block start_visit_payment.
Holds
A hold is a temporary authorization on the patient’s card for the visit price, not a charge.- Captured when a doctor joins the conversation.
- Released when the patient cancels:
cancel_requestwhileMATCHINGpulls the request back and voids the hold. The patient is not charged. - Voided after 5 days without a provider. Arlo drops the conversation back to
PAYMENT_REQUIREDwith a triage message explaining why, so the patient can decide whether to approve a fresh hold.
Example
Payment errors
A declined card is handled on Stripe’s page; the patient retries there. Nothing reaches your agent until the hold is placed.
Stripe integration
Arlo uses Stripe for payment processing. All card entry happens through Stripe’s hosted pages.- Card details never pass through Arlo or your agent
- All payment data handled by Stripe
- PCI compliance maintained by Stripe