Skip to content

Integration: Razorpay

Used by FinFluencify for trainer payouts via Razorpay linked accounts (Route-style payouts), plus course-payment flows.

Where it lives

  • Trainer onboarding/KYC fields are on profiles (razorpay_linked_account_id, razorpay_stakeholder_id, razorpay_onboarding_status, and kyc_* fields).
  • Linked-account creation runs through an edge function (e.g. finfluencify-create-linked-account) — filter the EF index for the current Razorpay-related functions.

Onboarding status machine

not_started → documents_submitted → pending_review → active
                                                   ↘ suspended

The Settings UI (components/Settings/TrainerPayoutsSettings.jsx) is a multi-step KYC wizard that uploads documents to Supabase Storage and reflects this status.

Secrets

Razorpay API keys are edge-function secrets only (never in src/). See Environment Variables. Sensitive KYC fields are encrypted server-side before storage.

Notes

  • All payment/payout logic is server-side in edge functions; the client only collects input and reads status.
  • Course payment verification is partly trainer-mediated (trainer grants access after confirming payment) — see the FinFluencify enrollment flow.