How payments work here
1
Telzino is the Stripe platform — there are no merchant API keys
Telzino holds a single Stripe account and acts as the platform. Each of your merchants is a Stripe connected account that Telzino creates and controls. Merchants never obtain, and you never send, a Stripe secret key — you authenticate to this API with your normal Telzino access token.
2
You onboard a merchant
Call
POST /v1/organizations/{organization_id}/payments/onboarding. Telzino creates the connected account if one doesn’t exist and returns a Stripe Account Session client_secret and the platform publishable_key. You render Stripe’s embedded onboarding component with those two values so the merchant submits their own banking and identity details directly to Stripe. This is the one step that needs a browser front-end — everything else is plain REST.3
The merchant becomes charge-ready
Once Stripe finishes verification, the connected account’s
charges_enabled flips true. Check a single merchant with GET /v1/organizations/{organization_id}/payments/status, or list all of yours at once with GET /v1/payments/merchants.4
You arm an agent to take payments
Being charge-ready isn’t enough on its own — you enable the payment tool on a specific agent with
PUT /v1/agents/{agentId}/payments/tool. This is gated: the merchant must be charge-ready and the agent must have Twilio SMS configured (the link is texted to the caller). Check both preconditions first with GET /v1/agents/{agentId}/payments/readiness.5
Payments happen, and you read the ledger
Charges are created by the Telzino AI agent during calls (bounded by the per-agent guardrails you set in the previous step) — this API does not create charges directly. Review completed and failed payments with
GET /v1/payments/transactions.Who can call what
Every request is authenticated with your Telzino access token and scoped to the organizations you own (account → resellers → organizations). You can only onboard, inspect, or read transactions for your own merchants — an organization outside your account returns403 (or is simply absent from list results). Authentication works exactly like the rest of the API; see Authentication.
Account status values
A merchant’s connected account moves through these states:A merchant can accept payments only when
account_status is active and charges_enabled is true. Both existing status endpoints expose that as the convenience field can_accept_payments.