Stripe Integration
Connect Stripe for online card payments, subscription billing, and member self-service card updates.
Stripe is OnCloudWine's recommended online payment processor. It powers release payments for online-first wineries and handles your OnCloudWine subscription billing as well.
What Stripe does for you
- Release payments
Charge cards on file when you process a release. Each charge becomes a Stripe
PaymentIntent.- Subscription billing
Your OnCloudWine plan is billed monthly or annually via Stripe (handled automatically — see Billing & Invoices).
- Card storage
Cards are stored on Stripe (PCI-compliant). OnCloudWine never sees raw card numbers.
- Member self-service
Members update their card via the portal. The form is rendered by Stripe Elements, not OnCloudWine.
- 3D Secure
Stripe handles strong customer authentication for European-issued cards automatically.
Connect
Open integrations
Settings → Organization → Integrations → Stripe.
Click Connect Stripe
Redirects to Stripe Connect's OAuth flow. Sign in with your Stripe account (or create one — Stripe walks you through it if needed).
Authorize
Stripe asks you to confirm the connection. OnCloudWine requests permissions to create payment methods, charge customers, and read payment status.
Land back in the dashboard
The integration shows ACTIVE with your Stripe account name and the last four digits of your Stripe account ID.
Configure webhooks
When you connect Stripe via OAuth, OnCloudWine registers the necessary webhook endpoints automatically. You don't need to add them manually unless you've connected via a custom integration.
The webhook events OnCloudWine listens to:
| Event | What it triggers |
|---|---|
| payment_intent.succeeded | Payment record → COMPLETED. |
| payment_intent.payment_failed | Payment record → FAILED. Member is emailed to update their card. |
| charge.refunded | Refund event added to the payment timeline. |
| customer.subscription.updated | Updates your OnCloudWine subscription state. |
| invoice.paid | Marks your OnCloudWine invoice as paid. |
Charging release payments
When you click Process Payments on a release, OnCloudWine:
Looks up each contact's Stripe customer
Created the first time a payment is attempted for the contact.
Finds the default payment method
The card the member set as default in their portal.
Creates a PaymentIntent
Off-session capture (no member action needed). For 3DS-required cards, Stripe responds with
requires_actionand OnCloudWine flags the payment as needing member intervention.Awaits the webhook
The success/failure event from Stripe transitions the payment record accordingly.
Authentication-required payments
European cards (and increasingly some US issuers) require 3D Secure authentication for off-session charges. When this happens:
Stripe returns requires_action
The PaymentIntent stays open, awaiting member confirmation.
OnCloudWine emails the member
The email contains a deep link to a Stripe-hosted page where they confirm the charge.
Member completes 3DS
Once confirmed, Stripe captures the charge and webhooks back to OnCloudWine. Payment record → COMPLETED.
Refunds
From any COMPLETED payment, click Refund to issue a full or partial refund. OnCloudWine submits the refund to Stripe and the payment timeline reflects the refund event when Stripe webhooks back (usually instant).
Disputes and chargebacks
If a member disputes a charge, Stripe notifies OnCloudWine via webhook and:
- The payment record is flagged with a
Disputedbadge - A task is auto-created on the contact ("Respond to dispute")
- The dispute timeline is visible on the payment detail page
You respond to disputes from the Stripe dashboard directly — OnCloudWine doesn't currently mediate dispute responses.
Square or Stripe?
Many wineries run both:
| Use Square for | Use Stripe for |
|---|---|
| In-person | Tasting-room sales, events, swipe transactions. |
| Online releases | Recurring release charges, subscriptions, branded portal. |
| Both | You can run both — assign each contact to whichever processor stores their card. |
A contact has at most one default card on each processor. The release charge uses whichever processor is set as default for that contact.