Create a Square subscription with a card on file and manage the recurring billing lifecycle

domain: square · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Create or retrieve a Customer in the Square Customers API: POST /v2/customers with name and email; if the customer already exists, search by email with POST /v2/customers/search.
  2. Save a card on file: POST /v2/cards with 'source_id' (a payment token generated by Square Web Payments SDK or Square In-App Payments SDK — never a raw PAN), 'customer_id', and 'billing_address'; receive a 'card_id'.
  3. Create a subscription plan (Catalog object of type 'SUBSCRIPTION_PLAN') via POST /v2/catalog/object if one does not exist, defining phases with 'cadence' (MONTHLY, ANNUAL, etc.) and 'recurring_price_money'.
  4. Create the subscription: POST /v2/subscriptions with 'customer_id', 'plan_variation_id', 'location_id', and 'card_id'; Square creates invoices and charges the card automatically on each billing date.
  5. Monitor subscription status via webhooks: subscribe to 'subscription.updated' and 'invoice.payment_failed' events; on failed payment Square sets the subscription to 'DELINQUENT' status after configuring retry behavior.
  6. To cancel, call POST /v2/subscriptions/{subscription_id}/cancel; to pause, use POST /v2/subscriptions/{subscription_id}/pause — actions take effect at the end of the current billing period unless 'immediate' is specified.

Known gotchas

Related routes

Create a Stripe subscription with a trial period
stripe.com · 4 steps · 100% success
Build a Stripe Billing subscription schedule with multiple phases to model a trial-to-paid-to-discounted lifecycle
stripe.com · 6 steps · unrated
Create a Stripe Billing subscription schedule phase with proration to handle mid-cycle plan upgrades
stripe.com/docs · 5 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans