Pay for posterly from an agent

How an agent pays the first prepaid posterly period with a Link virtual card, with browser Checkout as the fallback.

Last updated Sep 19, 2026Updated this week

Agents can start paid posterly signup without asking the user to paste a card on the website. Phase 1 takes a one-time Link Agent Wallet virtual card (credential_type: card) against a Stripe PaymentIntent for the first prepaid period. Stripe Checkout in the browser stays available if the agent cannot pay that way.

Terms acceptance, password setup, social account connect, and publish approval still happen with a human in the browser or through an explicit confirmation step below.

When this path is available

The public signup response includes agent_pay when agent card pay is available for the request. If that object is missing, send the user checkout_redirect_url and keep the existing browser Checkout flow.

Phase 1 does not accept Shared Payment Tokens or other agent payment rails yet.

Terms come first

client_secret is withheld until the user has explicitly accepted the posterly terms. Two ways to record that:

  • Pass tos_accepted: true on the first start_signup (or POST /api/v1/signup) call, once you already have the user's explicit confirmation in this conversation. This is the preferred path: it avoids an extra round trip.
  • Otherwise, agent_pay.requires_tos_acceptance is true and client_secret/publishable_key are null. Ask the user to confirm they accept the terms at poster.ly/terms, then POST { "tos_accepted": true } to confirm_url to receive client_secret. You can include payment_method in that same call to confirm in one step.

How an agent pays in Phase 1

  1. Ask the user for their email, then call start_signup (or POST /api/v1/signup) with the Starter plan and api_addon=true unless they chose another plan. Send tos_accepted: true here once the user has confirmed they accept the terms.
  2. Read agent_pay.amount, agent_pay.currency, agent_pay.client_secret, agent_pay.confirm_url, and poll_url. agent_pay.client_secret is null until the terms step above is done. Keep checkout_redirect_url as the fallback.
  3. Create a one-time virtual card with Link Agent Wallet using credential_type: card. Confirm the PaymentIntent with Stripe. Never send card numbers to posterly, and never paste them into chat.
  4. If you already have a Stripe payment method id, POST { "payment_method": "pm_..." } to confirm_url.
  5. Poll get_signup_session (or GET /api/v1/signup/sessions/{id}) until payment is confirmed.
  6. Tell the user to open the posterly password setup email. After they set a password, continue connect and first-post onboarding in the same chat.

Typical Starter plus API total is $10 for the first monthly period. Other combined totals match the current plan plus API add-on prices.

Confirm attempts on confirm_url are capped at 3 per signup session in a 24 hour window. Exceeding that cancels the PaymentIntent; send the user checkout_redirect_url instead.

What stays with the human

  • Explicit terms acceptance (unless already confirmed in this conversation and sent as tos_accepted)
  • Password setup
  • Social OAuth connect
  • Publish approval for live posts

The agent must not ask for a posterly password, social passwords, or OAuth codes.

Renewals after the first prepaid period

Link virtual cards are one-shot credentials. Phase 1 does not store a reusable card and does not start a Stripe Subscription from that first charge.

Access ends when the prepaid period ends unless the user renews. Today, renewing means the user opens Stripe Checkout once and adds a card so Stripe can start a Subscription; an agent-initiated renewal call does not exist yet. After access ends, the normal retention schedule applies: see Plans and pricing for the staged cleanup timeline.

Browser fallback

If agent_pay is missing, confirmation fails, or the user prefers the website, send checkout_redirect_url. That is the same hosted Checkout handoff posterly already uses for agent signup.

See also