Skip to main content

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 returns no_payment_gate.
  • You have relayed paymentGate.consultationSummary (from get_conversation, wait_for_reply, or the send_message that 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 minutes
2

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 joins
4

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_request while MATCHING pulls 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_REQUIRED with a triage message explaining why. Ask the user whether they still want a visit before calling start_visit_payment again.

Errors

If the user declines

Call cancel_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 paymentUrl short link is single-use for its session; if it expires, start_visit_payment mints a new one