MOP 4.1 — Vendor Onboarding: Individual vs. Agency¶
Audience: Vendor (mobile),
society_admin(review) Outcome: A vendor (single or under an agency) can register, complete KYC, mark interest in target societies, and start applying to events hosted there.
1. Two registration flows¶
| Flow | Storage | When to use |
|---|---|---|
| Individual vendor | vendor_profiles linked to a users row with role=vendor |
Sole proprietor / one-person stall |
| Agency | agencies + agency_profiles + agency_vendor_mappings |
A company managing multiple vendors / sub-stalls |
An agency owner is itself a users row with role=agency_owner. Their
sub-vendors get individual users + agency_vendor_mappings rows.
2. KYC fields captured¶
- Brand name, owner name, GSTIN, PAN, bank a/c
- Categories of products / services
interested_society_ids[]— populates Society Admin's user list and surfaces the vendor when admins post events.- Aadhaar / Udyam number (masked, encrypted at rest)
3. Society admin review¶
Sidebar → Approvals → Vendor KYC. Approve / Reject with notes.
Approval flips vendor_profiles.kyc_verified = true + records
approved_by, approved_at.
4. APIs touched¶
| Method | Endpoint |
|---|---|
| POST | /api/vendors/register (mobile) |
| POST | /api/agencies/register (mobile) |
| GET / POST | /api/admin/agencies |
| GET | /api/admin/vendors?status=&society_id= |
| POST | /api/admin/vendors/{vendor_id}/approve-kyc |
| POST | /api/admin/vendors/{vendor_id}/reject-kyc?reason=... |
5. Edge cases & FAQ¶
- A vendor wants to switch agency → create a new
agency_vendor_mappingand deactivate the old (no row deletion). - Aadhar masking — only last 4 digits are surfaced in the dashboard.
- Phase-bound admin sees only vendors interested in their phase.
6. Related MOPs¶
- MOP 4.2 — Service Marketplace
- MOP 4.3 — Temporary Permits