Overview
Arlo is pay-per-use: the patient is charged per visit, and there are no recurring subscriptions. The payment flow has two independent pieces:- A card on file — saved once via
create_payment_setup(never charges the patient) - The per-visit hold — placed only when the patient explicitly confirms via
confirm_provider_connection
Arlo never auto-charges.
confirm_provider_connection is the patient’s confirmation step — only call it once the user has agreed to proceed.get_payment_status
Get the user’s current payment status.Use this to
- Check whether the user already has a payment method on file
- Poll until
paymentStatusisACTIVEafter the user completescreate_payment_setup - Show the per-visit price
Parameters
None required.Returns
Payment Statuses
Billing Modes
create_payment_setup
Create a Stripe card-setup session to save a payment method for pay-per-use.This just puts a card on file — it does not charge the patient.
Parameters
How It Works
- Call this tool to get a Stripe-hosted card-setup URL
- Direct the user to open
paymentUrlin their browser - User saves their card on Stripe’s secure checkout page
- Poll
get_payment_status(every ~15–30 seconds, or when the user says they’re done) untilpaymentStatusisACTIVE
paymentStatus is ACTIVE, a conversation that was waiting at a payment gate can proceed — call confirm_provider_connection to place the hold.
Returns
Security
- Card details never pass through Arlo or your agent
- All payment data is handled by Stripe (PCI compliance maintained by Stripe)
confirm_provider_connection
Confirm connecting with a healthcare provider. This tool is the patient’s payment confirmation: calling it places the per-visit payment hold on the card on file and queues the patient for provider matching.Preconditions
- Conversation is in
PAYMENT_REQUIREDstatus (check viaget_conversation) - A payment method is on file (
get_payment_statusshowsACTIVE)
Parameters
Returns
If there’s no card on file
The payment gate reportsPAYMENT_SETUP_REQUIRED. Recover with:
1
Call create_payment_setup
Get a Stripe card-setup URL and send it to the user
2
Poll get_payment_status
Wait until
paymentStatus is ACTIVE3
Call confirm_provider_connection again
Places the per-visit hold and moves the conversation to
MATCHINGIf the hold fails
payment_hold_failed means the card was declined. Call create_payment_setup so the user can add a different card, poll get_payment_status until ACTIVE, then call confirm_provider_connection again.
If the user declines
Callcancel_request to dismiss the payment gate — the conversation returns to AI-only chat and can be re-engaged anytime.
What happened to subscriptions?
Earlier versions of this API exposedsubscribe and cancel_subscription tools. Arlo is now pay-per-use only, and those tools are no longer part of the MCP surface. Grandfathered accounts on legacy plans (billingMode: SUBSCRIPTION or LEGACY) keep their access; the REST API retains deprecated endpoints for legacy clients.