Crowdfunding Portal with KYC and Escrow
A crowdfunding web platform for reward and equity campaigns, with KYC for founders and investors, funds held until a campaign succeeds, and automated refunds when it does not.

Project overview
We built a crowdfunding portal for a fintech startup that wanted to host both reward campaigns, where backers pre-order a product, and equity campaigns, where investors buy a stake in an early-stage company. Campaign owners apply, pass verification, publish a campaign page and receive funds only if their target is met.
The engagement covered discovery with the client's compliance adviser, UX, a React front end, a Node.js API, Stripe Connect payments and an admin console for campaign review. It sits within our fintech app development work for the fintech sector.
The client and the challenge
The client's first version was a simple donation-style site: money went straight to campaign owners, so failed campaigns meant chasing refunds by hand, and there was no record of who owners or investors really were. That was not acceptable for equity offers.
They needed identity verification before anyone could raise or invest, an all-or-nothing funding model with money held until a deadline, separate rules for equity investors such as investment limits and risk acknowledgements, and a clean audit trail for every approval and payment.
Solution architecture & delivery
The React front end has three areas: public campaign pages, a campaign owner dashboard and an investor account. Campaign owners complete a staged application β company details, team, pitch, reward tiers or share terms β which goes to a review queue in the admin console. Nothing is published until a reviewer approves it, and each decision is logged with the reviewer and reason.
Payments use Stripe Connect. Each campaign owner is onboarded as a connected account, which carries its own identity and business verification, while backers and investors go through a KYC step with document upload and liveness checks before their first pledge on equity campaigns. For reward campaigns, pledges save a payment method and authorise the card; for equity campaigns, funds are collected into the platform balance and held against the campaign.
A Node.js scheduler watches campaign deadlines. If the target is reached, held funds are transferred to the owner's connected account minus the platform fee, and reward pledges are charged. If not, every equity payment is refunded and reward authorisations are released automatically. Each state change β pledged, held, refunded, transferred β is written to an append-only ledger so finance can reconcile the platform balance against Stripe at any time.
Equity campaigns add investor protections: an annual investment limit checked against the investor's self-declared profile, a risk acknowledgement before each investment and a cooling-off window during which an investment can be cancelled. The platform shows these rules but leaves the legal wording to the client's advisers. For scaling patterns we followed our AWS architecture for high-traffic apps, since launches and deadlines create sharp traffic spikes. Personal and verification data is kept apart from public campaign data. Identity documents are stored encrypted with access limited to the compliance role, investor profiles are never shown on campaign pages, and backers can choose to appear as anonymous. Disputes and chargebacks arrive as payment webhooks, are matched to the ledger entry and raise a task for the finance team, so a disputed pledge never silently distorts a campaign's funded total.
Key features we built
- Reward and equity campaign types with separate pledge flows
- Staged campaign application with admin review and audit trail
- KYC for campaign owners and equity investors with document upload
- All-or-nothing funding with held funds and automated refunds
- Stripe Connect payouts to campaign owners minus platform fees
- Investor limits, risk acknowledgements and cooling-off cancellations
- Campaign updates, backer comments and email notifications
- Finance reports and CSV exports reconciled to an internal ledger
How we delivered it
- Discovery. Workshops with the founders and their compliance adviser to separate reward and equity rules, define campaign states and agree what evidence each verification step must keep.
- UX and prototype. Prototypes of the campaign application, pledge and investment flows, tested with founders and first-time investors for clarity of risk messaging.
- Build. Two-week sprints delivering the ledger and deadline scheduler before the public pages, with Stripe test-mode scenarios for success, failure, disputes and refunds.
- Private launch. A small set of invited reward campaigns ran end to end before equity campaigns were enabled.
- Support. Ongoing maintenance, rule changes requested by the client's advisers and new campaign categories under a support agreement.
Technology choices
- React β component-based campaign pages, dashboards and multi-step forms with shared validation across owner and investor journeys.
- Node.js β API, deadline scheduler and webhook handling for payment events, keeping ledger writes and campaign state changes in one service layer.
- Stripe Connect β connected accounts with built-in owner verification, held balances, transfers minus platform fees and refunds, without storing card data.
Outcomes
- Failed campaigns refund backers and investors automatically instead of by manual chasing
- No campaign goes live without verified owners and a logged reviewer decision
- Equity and reward campaigns run on one platform with different rules applied
- Finance reconciles the platform balance from an internal ledger rather than bank statements
- Investors see risk acknowledgements, limits and cancellation rights before they commit
FAQ
How does escrow-style holding work in the crowdfunding portal?
Equity payments are collected into the platform balance and tied to the campaign in an internal ledger. At the deadline, funds are transferred to the owner's connected account if the target is met, or refunded if it is not. Reward pledges are only charged on success.
What KYC checks does the platform run?
Campaign owners are verified through their payment account onboarding, and equity investors complete document and liveness checks before investing. Reviewers see verification status in the admin console and every decision is logged.
Can the platform also handle donations or recurring giving?
Yes. The pledge, receipt and payout components can be reused; we took a similar approach in a non-profit donation portal with recurring gifts and donor receipts.
How much does it cost to build a crowdfunding platform?
Cost depends on campaign types, KYC depth, payment flows and compliance reporting. Our app development cost calculator gives an indicative range and timeline, which we refine into a fixed quote after discovery.
Crowdfunding Portal with KYC and Escrow screens
Build your next fintech product with Next Olive
Share your requirements β we will propose scope, timeline and stack within one business day.