Parties & CRM

Parties are your customers, vendors, or businesses that serve both roles. Every party is automatically linked to a ledger in your chart of accounts for seamless accounting integration.

Party List

The /parties page shows all your business contacts with:

  • Search — Filter by name, GSTIN, phone, or email
  • Type filter — All / Customer / Vendor / Both
  • Columns — Name, Type (color-coded badge), GSTIN, Phone, Opening Balance
  • Click to view — Opens detailed party profile
  • + New Party — Button to create

Creating a Party

Click + New Party to open the creation form. Fields:

  • Name (required) — Business/trading name (must be unique per company)
  • Type — Customer, Vendor, or Both
  • GSTIN — Enter the 15-character GSTIN and click the lookup button to auto-fill details from the GST portal
  • PAN — Auto-derived from GSTIN (characters 3-12) or entered manually
  • Email / Phone — Primary contact
  • Payment Terms — NET (days from invoice), DUE_ON (specific day of month), or CUSTOM
  • Credit Limit — Maximum outstanding balance allowed
  • MSME — Number, category (Micro/Small/Medium), classification
  • Opening Balance — Starting receivable/payable amount and type (Debit/Credit)

GSTIN Lookup

When you enter a valid GSTIN, Sally can look up the registration details from the GST portal:

  • Trade name and legal name
  • PAN number
  • Registered address (auto-fills the address section)
  • Registration status (Active/Cancelled/Suspended)
  • Registration date

Results are cached so repeated lookups for the same GSTIN are instant.

Note: The lookup requires the APPYFLOW_KEY environment variable to be configured. If not available, manual entry still works.

Party Detail Page

Click any party to see their full profile at /parties/[id]:

Address Book

  • Multiple addresses per party (Head Office, Warehouse, Branch, etc.)
  • Each address: label, address line 1 & 2, city, state, pincode, country, GSTIN
  • Default billing flag — used automatically on new invoices
  • Default shipping flag — used for ship-to address
  • Add/edit/remove addresses inline

Contacts

  • Multiple contacts per party
  • Fields: name, email, phone, mobile, designation, department
  • Primary contact flag

Bank Accounts (for vendors)

  • Account holder name, bank name, account number, IFSC, branch, UPI ID
  • Default account flag for payment processing

Transaction History

  • All invoices, payments, and voucher entries involving this party
  • Current outstanding balance
  • Aging breakdown (0-30, 31-60, 61-90, 90+ days)

Party ↔ Ledger Relationship

Every party is backed by a ledger in the chart of accounts:

  • Customer → Ledger in “Sundry Debtors” group (Asset nature)
  • Vendor → Ledger in “Sundry Creditors” group (Liability nature)
  • Both → Placed in whichever group the user chooses

When you create a party, the corresponding ledger is created automatically. Changes to the party name update the ledger name. Deleting a party soft-deletes both the party and its ledger.

Payment Terms & Due Dates

Configure per-party payment terms that auto-calculate invoice due dates:

  • NET X days — Due date = Invoice date + X days (e.g., NET 30)
  • DUE ON day — Due on a specific day of the following month (e.g., 15th)
  • CUSTOM — Manually set per invoice

Interest on Overdue

Company-level settings for interest on overdue receivables:

  • Interest rate (% p.a.) — Annual interest rate applied to overdue amounts
  • Grace period (days) — Days after due date before interest starts accruing

Interest is calculated in the Outstanding / Aging reports.