#jairo_connect-subscriptions

1 messages ยท Page 1 of 1 (latest)

safe onyxBOT
#

๐Ÿ‘‹ Welcome to your new thread!

โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.

โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.

๐Ÿ”— This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1494454179236806807

๐Ÿ“ Have more to share? Add more details, code, screenshots, videos, etc. below.

Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.

hot pasture
#

yes it works the same for Subscriptions!

#

jairo_connect-subscriptions

dry aurora
#

Perfect, that's exactly what we needed to confirm. Thank you! ๐Ÿ™Œ

Our full architecture is now validated:

  • Express accounts
  • Destination Charges + on_behalf_of
  • application_fee_percent on Subscriptions
  • Payment Element + Embedded Components

Really appreciate the help from the whole team (palamedes, jack_stripe, and you). We're ready to build

hot pasture
#

glad to hear ๐Ÿ™‚

dry aurora
#

Hey team โ€” before we close, I'd like to share our complete architecture summary so you can flag anything we might be missing:

PLATFORM: Koinonia Sport โ€” SaaS for youth sports academies (Spain, then USA/LATAM)

STRIPE CONNECT SETUP:

  • Express connected accounts (one per academy)
  • business_type: non_profit (most Spanish sports clubs are non-profit associations)
  • Stripe handles onboarding, KYC, and compliance updates
  • Embedded Components for white-label experience (academies stay inside our platform)

PAYMENT FLOW (parent pays academy):

  • Destination Charges + on_behalf_of (academy = merchant of record)
  • Subscriptions created on platform account with:
    • transfer_data[destination] = Express connected account
    • on_behalf_of = same connected account
    • application_fee_percent = 1.5 (our platform commission)
  • Payment Element for parent checkout (branded with our colors)
  • Custom checkout domain: pay.koinoniasport.com
  • Custom email domain: payments@koinoniasport.com
  • Statement descriptor: KOINONIA SPORT* [ACADEMY_NAME]

EMBEDDED COMPONENTS IN DIRECTOR PANEL:

  • ConnectAccountOnboarding (academy setup)
  • ConnectPayments (view received payments)
  • ConnectPayouts (view bank transfers)
  • ConnectBalances (real-time balance)
  • ConnectNotificationBanner (compliance alerts)
  • ConnectPaymentDetails (payment details + disputes)

DUNNING (failed payments):

  • Automatic retries: day 1, 3, 7, 14
  • Cancel subscription after all retries fail

WEBHOOKS:

  • payment_intent.succeeded
  • payment_intent.failed
  • invoice.payment_failed
  • customer.subscription.deleted
  • account.updated (for connected account status)

Is there anything in this setup that looks wrong, missing, or that you'd recommend doing differently?

Thanks for all the guidance โ€” it's been incredibly valuable for getting our architecture right from day one

hot pasture
#

the rest seems correct

dry aurora
#

Thanks for the corrections!

  1. Custom checkout domain โ€” you're right, since we're using Payment Element embedded in our own app, we don't need a custom checkout domain. Removed from our plan.

  2. Webhooks โ€” thanks for the link. Based on the docs, we'll listen to:

    • invoice.paid (provision access)
    • invoice.payment_failed (notify parent, retry)
    • invoice.payment_action_required (3DS authentication)
    • invoice.upcoming (pre-renewal notification)
    • invoice.finalization_failed (handle errors)
    • customer.subscription.created
    • customer.subscription.updated
    • customer.subscription.deleted (revoke access)
    • customer.subscription.paused
    • customer.subscription.trial_will_end
    • account.updated (connected account status)

Does that cover the essential events for our use case?

Thanks again

hot pasture
#

yes

dry aurora
#

Amazing โ€” thanks to the whole team for the support. We're ready to build!