Skip to content

Stripe (accept card payments)

Connect a Stripe account to Looped Invoices and the Pay link in your invoice emails accepts credit / debit cards. Funds settle into your Stripe account on Stripe’s normal payout schedule — Looped never touches the money.

This Stripe account is separate from the one Looped uses for your subscription billing. They can be the same account or different ones; they aren’t linked.

  • A Stripe account with payouts enabled. Sign up at stripe.com if you don’t have one.
  • OWNER or ADMIN on the Looped team.
  1. Open SettingsIntegrations in Looped Invoices.
  2. Click Connect next to Stripe.
  3. Stripe opens. Sign in and grant Looped access.
  4. Stripe redirects back to Looped. The integration’s badge now shows Connected.

Looped stores your Stripe account id. Your Stripe secret key stays on Stripe; we never see it.

A webhook endpoint at app.looped.sh/invoices/api/stripe/notify/<teamId> is registered automatically so Stripe can notify Looped when payments succeed.

When you send an invoice, the email and the Pay portal include a “Pay now” button. Clicking it opens Stripe Checkout — Stripe’s hosted payment page — where the client enters their card details.

After they pay:

  1. Stripe sends a webhook to Looped.
  2. Looped marks the invoice as PAID with the timestamp Stripe confirmed the charge.
  3. Funds settle into your Stripe account.

If the payment fails, the invoice stays PENDING and the client can retry from the same Pay link.

Looped doesn’t take a cut of the payment. Standard Stripe processing fees apply — see stripe.com/pricing for your region.

Open SettingsIntegrations → click Disconnect next to Stripe.

Past invoices that were already paid through Stripe stay marked paid. Disconnection only stops new invoices from offering Stripe as a payment method.

If you reconnect a different Stripe account, future invoices route to the new account; past invoices are unchanged.

The Stripe connection is scoped to a Looped team — different teams in your account can have different Stripe accounts (or one of them can be Stripe-less). This makes sense if you run multiple businesses through Looped.

You can have Stripe and Yoco and PayFast connected at the same time. The Pay portal shows whichever ones you’ve connected; the client picks one when paying.

If Stripe isn’t available in your region, see:

Looped registers a webhook for these Stripe events:

  • checkout.session.completed → mark the invoice paid
  • payment_intent.payment_failed → record the failure (invoice stays PENDING)

If you ever see Stripe payments succeed but Looped not flip the invoice to PAID, check your Stripe dashboard’s DevelopersWebhooks section — the endpoint should show recent events being delivered. If something looks off, drop us a line at support@looped.sh.