How to best use Stripe's API for our needs

Been pouring through the Stripe documentation on how we can support many-to-many automated monthly payments of variable amounts. Based on a day’s research I figure the following Stripe setup would be ideal for the end goal:

  • Using “Stripe Connect” (multiparty payment solution) so we can do many-patron-to-many-project
  • Snowdrift’s Stripe account would be the “Platform”, actually we would ideally create separate US/Europe accounts so it works everywhere
  • Projects would be Connected Accounts, so money can go right to them without going through us (we’re most similar to a “marketplace” in Stripe docs, crowdfunding platform is specifically cited as an example)
  • Those connected accounts can be “Standard”, no need for “Express” or “Custom” which cost extra
  • We simply set our platform fee to zero, so the project gets 100% of the donations minus the stripe fees
  • Makes sense to do “separate charge and transfer” style payments rather than the other types which would have donors donating to projects at all different times
  • We would set the above charge to “on_behalf_of” mode so the money appears to go the project on the patron’s statement and their tax laws apply rather than ours
  • Makes sense to do “usage based billing” rather than a single payment/donation (requires money sent immediately) or subscription (same monthly charge)
  • With that trick, the Usage-Based Billing would have line-items for each project, where the usage quantity can simply be “patrons matched” and the price is the match factor
  • On “Run Crowdmatches” day we automatically report to Stripe the number of patrons to match as “usage” for each project, updating patrons subscriptions, and then triggering payment of balance due
  • Projects get their payments after a configurable delay
  • How to split up the Stripe fee is up to us, one idea we had was to only charge patrons the 2.9% part of the fee, and only charge the projects the 30 cents part. This allows us to know exactly what the patron portion of the fee is at the point of charge.
1 Appreciation

Thanks for all this hugely valuable work! This looks solid and complete enough to put right into some sort of document within Git in the code as some sort of spec guideline or something.