Overview
Arlo is pay-per-use. Each provider visit is approved by the patient on a Stripe Checkout page, and nothing is charged until a doctor joins. There are no subscriptions and no card-setup step: the Stripe link is the whole payment flow, every visit.Arlo never auto-charges. The patient opens the link from
start_visit_payment and approves a temporary hold for the visit price. The hold is captured when a doctor joins the conversation and released otherwise.get_payment_status
Get the per-visit price and the account’s payment state.Use this to
- Show the per-visit price (
paymentOptions[].price) - Answer questions about how billing works
paymentStatus does not need to be ACTIVE before a visit. PENDING is the normal state for an account that pays per visit, and it does not block start_visit_payment.
Parameters
None required.Returns
Payment statuses
All informational for US accounts:Billing modes
start_visit_payment
Get the Stripe Checkout link that approves payment for one visit.Preconditions
- The conversation is in
PAYMENT_REQUIRED(triage complete). Otherwise the tool returnsno_payment_gate. - You have relayed
paymentGate.consultationSummary(fromget_conversation,wait_for_reply, or thesend_messagethat completed triage), and the user wants to proceed.
Parameters
How it works
1
Call start_visit_payment
Returns a
paymentUrl (short link to a Stripe-hosted page) valid for about 30 minutes2
Hand the user the link
On Stripe’s page they approve a temporary hold for the visit price. Stripe offers to remember the card there; Arlo never collects card details in chat
3
Wait
Call
wait_for_reply. Once the hold is placed, the conversation moves to MATCHING on its own, and the wait returns when a provider joins4
A doctor joins
The hold is captured. If no doctor joins, the hold is released
Returns
On widget hosts the consultation widget shows the same link inline.
After the hold is placed
- Cancelling:
cancel_requestwhileMATCHINGpulls the request back and releases the hold. The user is not charged. - Hold expiry: if no provider accepts within 5 days, Arlo voids the hold and drops the conversation back to
PAYMENT_REQUIREDwith a triage message explaining why. Ask the user whether they still want a visit before callingstart_visit_paymentagain.
Errors
If the user declines
Callcancel_request to dismiss the payment gate. The conversation returns to AI-only chat and can be re-engaged anytime.
Security
- Card details never pass through Arlo or your agent
- All payment data is handled by Stripe (PCI compliance maintained by Stripe)
- The
paymentUrlshort link is single-use for its session; if it expires,start_visit_paymentmints a new one