Payment Flows

Vendor Payment Flow

        sequenceDiagram
    participant Procurement
    participant FieldTeam as Field Team
    participant Finance
    participant Vendor

    Procurement->>FieldTeam: Procure Material Locally
    FieldTeam->>Vendor: Purchase Material
    FieldTeam->>Finance: Share Vendor QR / Bank Details
    Finance->>Vendor: Direct Payment (UPI / Bank Transfer)
    Vendor-->>Finance: Payment Confirmation
    Finance->>Finance: Record Transaction Reference
    Note over Finance: VendorPayment status: completed
    

Field Team Payout Flow

        sequenceDiagram
    participant CentralOps as Central Ops
    participant Finance
    participant FieldTeam as Field Team

    Note over CentralOps: Installation closed
    CentralOps->>Finance: Mark Job Payable
    Note over Finance: JobPayout status: marked_payable

    alt Per-Job Schedule
        Finance->>FieldTeam: Release Payment Immediately
    else Fortnightly / Monthly Schedule
        Note over Finance: Accumulate until next payout date
        Finance->>Finance: Check PaymentSchedule.next_payout_date
        Finance->>FieldTeam: Release Accumulated Payments
    end

    Finance->>Finance: Record Transaction Reference
    Note over Finance: JobPayout status: paid
    

Payout Schedule Types

Type

Trigger

Description

Per Job

Each installation closed

Payment released immediately after Central Ops marks payable

Fortnightly

Every 2 weeks

Accumulated payouts released on schedule date

Monthly

1st of each month

All pending payouts for the team released together