Back to ER Diagrams
Vendor Onboarding Logic

Vendor Onboarding System

End-to-end vendor registration, compliance document verification, bank account validation, MSME classification, group management, and approval workflow.

12 Tables
Multi-Step Verification
Compliance Checks
Group Management

1. Overview

The Vendor Onboarding System manages the complete lifecycle of adding new vendors to ProKure. It supports self-registration via the vendor portal, internal vendor creation by procurement teams, compliance document collection, bank account verification, and multi-level approval workflows.

Key Features

  • Self-service vendor registration portal
  • Multi-step compliance document upload and verification
  • Bank account validation (IFSC + account number verification)
  • MSME registration and Udyam verification
  • Vendor grouping for consolidated management
  • Multi-level approval workflow (Procurement → Finance → Admin)
  • Automated vendor code generation
  • Blacklist/debarment check against existing records

2. Onboarding Workflow

┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  Vendor Self-    │     │  Basic Info      │     │  Upload          │
│  Registration    │────▶│  Company, GSTIN, │────▶│  Compliance      │
│  (Portal)        │     │  PAN, Address    │     │  Documents       │
└──────────────────┘     └──────────────────┘     └────────┬─────────┘
                                                           │
         ┌─────────────────────────────────────────────────┘
         ▼
┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  Bank Account    │     │  MSME Details    │     │  Vendor Status:  │
│  Details (IFSC,  │────▶│  (If applicable) │────▶│  PENDING_REVIEW  │
│  A/C Number)     │     │  Udyam Number    │     │                  │
└──────────────────┘     └──────────────────┘     └────────┬─────────┘
                                                           │
         ┌─────────────────────────────────────────────────┘
         ▼
┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  Procurement     │     │  Finance         │     │  Admin Final     │
│  Officer Review  │────▶│  Verification    │────▶│  Approval        │
│  (Documents)     │     │  (Bank Details)  │     │                  │
└──────────────────┘     └──────────────────┘     └────────┬─────────┘
                                                           │
                                                           ▼
                                                  ┌──────────────────┐
                                                  │  Vendor ACTIVE   │
                                                  │  Code Generated  │
                                                  │  Can participate  │
                                                  │  in RFQs         │
                                                  └──────────────────┘

Vendor Status Lifecycle

Status Description Allowed Actions
Draft Vendor started registration but hasn't submitted Edit profile, upload documents
Pending Review Submitted for internal review View only (vendor side)
Under Verification Documents and bank details being verified Reviewer can approve/reject/request info
Active Fully approved and can participate in procurement Bid on RFQs, receive POs
Rejected Application rejected with reasons Vendor can reapply with corrections
Suspended Temporarily suspended (compliance/performance) No new POs; existing POs continue
Blacklisted Permanently debarred from procurement No actions allowed

3. Database Tables Involved

vendor.vendors

Master vendor record with company information and status

id (PK)
vendor_code
company_name
gstin
pan
address
city_id (FK)
state_id (FK)
postal_code
contact_person
email
phone
website
category_id (FK)
status
created_by (FK)
created_at

vendor.vendor_companies

Extended company information including legal entity type, incorporation details

id (PK)
vendor_id (FK)
company_type_id (FK)
cin_number
incorporation_date
registered_address
authorized_capital
paid_up_capital
annual_turnover
employee_count

vendor.vendor_documents

Compliance documents uploaded during onboarding

id (PK)
vendor_id (FK)
document_type
document_name
file_path
expiry_date
is_verified
verified_by (FK)
verification_date
rejection_reason

vendor.vendor_bank_details

Bank account information for payment processing

id (PK)
vendor_id (FK)
bank_name
branch_name
ifsc_code
account_number
account_type_id (FK)
is_primary
is_verified
cancelled_cheque_path

vendor.vendor_msme_details

MSME registration details (linked to MSME Compliance logic)

id (PK)
vendor_id (FK)
udyam_number
msme_category
enterprise_type
is_verified
certificate_file_path

vendor.vendor_groups

Vendor group definitions for consolidated management

id (PK)
group_name
group_code
description
created_by (FK)
created_at
is_active

vendor.vendor_group_members

Many-to-many mapping of vendors to groups

id (PK)
vendor_group_id (FK)
vendor_id (FK)
added_at
added_by (FK)

vendor.vendor_blacklist

Blacklisted/debarred vendors checked during onboarding

id (PK)
vendor_id (FK)
blacklist_reason
blacklisted_at
blacklisted_by (FK)
review_date
is_permanent

vendor.vendor_contacts

Multiple contact persons per vendor

id (PK)
vendor_id (FK)
contact_name
designation
department
email
phone
mobile
is_primary
is_active

vendor.vendor_addresses

Multiple addresses per vendor (registered, factory, delivery)

id (PK)
vendor_id (FK)
address_type
address_line_1
address_line_2
city_id (FK)
state_id (FK)
postal_code
country
is_default
is_active

vendor.vendor_categories

Category/product classification mapping for vendors

id (PK)
vendor_id (FK)
category_id (FK)
is_primary
qualification_status
qualified_date
qualified_by (FK)
remarks
is_active

4. Registration Process (Step-by-Step)

1

Self-Registration / Internal Creation

Vendor accesses the registration portal and fills in basic company details: company name, GSTIN, PAN, address, contact person, email, and phone. Alternatively, a procurement officer can create the vendor record internally.

2

Company Details & Classification

Vendor provides extended company information: company type (Proprietorship/Partnership/LLP/Private Ltd/Public Ltd), CIN number, incorporation date, authorized and paid-up capital, annual turnover, and employee count. System records in vendor_companies table.

3

Compliance Document Upload

Vendor uploads required documents based on their entity type. The system tracks each document's type, expiry date, and verification status.

Required Documents

  • GST Registration Certificate
  • PAN Card
  • Incorporation Certificate / Partnership Deed
  • Cancelled Cheque / Bank Letter
  • MSME/Udyam Certificate (if applicable)
  • ISO / Quality Certifications (if applicable)
  • Trade License
  • NDA / Confidentiality Agreement (if required)
4

Bank Account Details

Vendor provides bank account information: bank name, branch, IFSC code, account number, and account type. A cancelled cheque is uploaded for verification. Multiple accounts can be added with one marked as primary.

5

MSME Registration (Optional)

If the vendor is an MSME, they provide their Udyam Registration Number and upload the certificate. The system validates the format (UDYAM-XX-00-0000000) and classifies the vendor as Micro/Small/Medium.

6

Blacklist Check

System automatically checks the vendor's GSTIN, PAN, and company name against the vendor_blacklist table. If a match is found, the registration is flagged for manual review.

7

Submit for Review

Vendor submits the application. Status changes from "Draft" to "Pending Review". Notification sent to the assigned procurement officer.

5. Verification & Approval Workflow

Level 1: Document Review

  • Reviewer: Procurement Officer
  • Verify GSTIN on GST portal
  • Verify PAN details
  • Check document authenticity
  • Verify document expiry dates
  • Check MSME certificate (if applicable)

Level 2: Financial Verification

  • Reviewer: Finance Team
  • Verify bank account via penny drop
  • Cross-check IFSC code
  • Validate cancelled cheque
  • Verify TDS applicability
  • Check payment terms eligibility

Level 3: Final Approval

  • Reviewer: Procurement Manager/Admin
  • Review all verification results
  • Assign vendor category
  • Set credit limit (if applicable)
  • Generate vendor code
  • Activate vendor account
-- Vendor Code Generation Logic
-- Format: VND-{CATEGORY_CODE}-{SEQUENTIAL_NUMBER}
-- Example: VND-RAW-00045, VND-SVC-00123

public string GenerateVendorCode(string categoryCode)
{
    var lastVendor = _context.Vendors
        .Where(v => v.VendorCode.StartsWith($"VND-{categoryCode}-"))
        .OrderByDescending(v => v.VendorCode)
        .FirstOrDefault();

    int nextNumber = lastVendor != null
        ? int.Parse(lastVendor.VendorCode.Split('-').Last()) + 1
        : 1;

    return $"VND-{categoryCode}-{nextNumber:D5}";
}

6. Vendor Group Management

Vendor Groups allow organizing vendors into logical categories for bulk operations such as sending RFQs to a group, applying group-level payment terms, or generating group-level reports.

Operation Description Tables Used
Create Group Define a new vendor group with name, code, and description vendor_groups
Add Members Add one or more vendors to a group vendor_group_members
Bulk RFQ Send RFQ to all active vendors in a group vendor_group_members → rfq_vendors
Group Reporting Generate performance/payment reports by group vendor_groups + vendor_ratings
Remove Members Remove a vendor from a group (soft delete) vendor_group_members

7. Notifications & Alerts

Event Recipient Channel
New vendor registration submitted Assigned Procurement Officer In-app + Email
Document verification complete Finance Team In-app
Bank verification complete Procurement Manager In-app
Vendor approved/activated Vendor (email) Email + Portal notification
Vendor rejected Vendor (email with reasons) Email + Portal notification
Additional info requested Vendor Email + Portal notification
Document expiring (30 days) Vendor + Procurement Officer In-app + Email
Blacklist match detected Procurement Manager + Admin In-app + Email (urgent)

8. Best Practices

Important Considerations

  • Data Privacy: Bank details and PAN are sensitive PII — encrypt at rest and mask in UI
  • Document Expiry: Set up automated alerts for expiring documents (GST certificate, trade license)
  • Duplicate Detection: Check for existing vendors by GSTIN/PAN before creating new records
  • Audit Trail: Log all status changes and approval actions in the audit_logs table
  • SLA for Review: Define internal SLA for vendor approval (e.g., 5 business days)
  • Vendor Communication: Keep vendors informed at each stage via portal and email

ProKure Database Documentation - Vendor Onboarding Logic v1.0

Part of the ProKure Procurement Management System