Quotations & Invoices

The billing chain in Evolzer CRM: send a priced Quotation, convert it into an Invoice, publish the invoice in Indian GST format, then collect payments until the balance reaches zero. Invoices work the way WHMCS invoice management does — a draft you can edit freely, a published document that never changes, and a ledger of payments, credits, refunds and notes against it.

Available to anyone with billing access; see Roles and permissions for what each role can do.

Invoices can be paid online through Razorpay from their pay link (see Online payment (Razorpay)) and registered with the GST Invoice Registration Portal for an IRN (see GST e-invoicing (IRN)).

Coming soon (not covered here yet): a WHMCS importer for clients, invoices and credits. Its Settings card already exists but does nothing until the importer ships.

How invoices work

Draft, then published

Every invoice starts as a Draft. A draft has no number (it shows as "Draft"), and you can change anything on it — client, dates, line items, place of supply, supply type, reverse charge.

Publishing turns the draft into a real document: a number is allocated, the invoice date is stamped, seller and client details are copied onto the invoice as they are at that moment, and the ledger starts. From then on the items, the number, the invoice date and every tax field are locked — the CRM never edits a published invoice. To change what was billed, issue a credit or debit note, or reissue the invoice.

What stays editable after publishing: due date, payment method, customer note, the Pause reminders switch, the Unpaid ⇄ Collections status, and internal notes. Once an invoice is Paid, Refunded or Cancelled, only internal notes can be edited.

The ledger and transactions

The Ledger on the Summary tab is the running account of the invoice: the charge, each payment, each credit applied or removed, each refund, and each credit or debit note, with the balance after every entry. Balance due is always recomputed from these rows, never adjusted by hand:

balance = invoice total + debit notes − credit notes − (payments − refunds + credit applied)

Transaction history lists every payment, refund and credit movement including pending and failed attempts, with the amount and how much of it was applied to this invoice.

Statuses and badges

StatusMeaning
DraftNot published yet; no number; fully editable.
UnpaidPublished, balance still owed.
PaidBalance is zero (or less). Set by the ledger, never by hand.
Partially paid (badge)Something has been paid or credited but a balance remains. Shown next to the status.
Overdue (badge)Unpaid or Collections and the due date has passed. Shown next to the status; the Due column turns red with the days overdue.
CollectionsAn Unpaid invoice you have marked for follow-up. Switch it manually on the Options tab; reminders are not sent while in Collections.
Payment pendingA customer has opened the pay link and started an online payment that Razorpay has not confirmed yet. Clears on its own: to Paid when the payment is confirmed, back to Unpaid if it fails or nothing arrives within 24 hours.
CancelledWithdrawn — by you, by auto-cancel, or by a reissue. Read-only.
RefundedEvery payment has been refunded. Read-only.

Paid and Refunded are derived from the ledger and cannot be picked manually. Unpaid ⇄ Collections is the only manual status change.

Settings › Invoicing & GST

Admins only. Everything printed on invoices, how they are numbered, and what the CRM does automatically lives here. Click Save Changes at the bottom after editing any card.

Legal name, Trade name, GSTIN, PAN, CIN, State, address lines, City, PIN code, Billing email, Phone, and a Composition scheme switch.

  • When you leave the GSTIN field, it is checked for length, format, a known state code and the check digit ("Check digit does not match — please re-check the GSTIN"). A valid GSTIN fills in PAN and State for you.
  • PAN must look like ABCDE1234F and must match the PAN inside the GSTIN; State must match the GSTIN's first two digits. Saving is refused otherwise.
  • Composition scheme makes every document a Bill of Supply with no GST charged.
  • The Billing email is used as the reply-to address on invoice emails.

Bank details

Bank name, Branch, Account name, Account number, IFSC (checked as 4 letters, a zero, then 6 characters), UPI ID, and Bank details as free text.

When the free-text box is filled, it is printed on the PDF verbatim instead of the individual fields — use it to list several accounts. With a UPI ID set, invoices with a balance print a "Scan to pay via UPI" QR code beside the bank details.

Numbering

Prefixes for Invoice, Credit note, Debit note and Quotation (1–8 characters, A–Z, 0–9 and hyphen), Number padding (1–8 digits) and the month the Financial year starts.

Numbers look like INV/25-26/0042: prefix, financial year, then a serial that restarts at 1 each financial year. The card shows a live example. If the financial year starts in January the year part is just 25. Numbers are only allocated at the moment of publishing, so a publish that fails does not burn a number.

Terms & automation

  • Default due (days) — how far after the invoice date the due date falls when you create an invoice.
  • Generate recurring (days before) — how many days before its due date a recurring invoice is created (see Recurring invoices).
  • Auto-cancel after overdue (days) — 0 disables (see Reminders and auto-cancel).
  • Reminder schedule — chips of days relative to the due date: negative before, positive after, 0 on the day (−90 to 365, up to 12).
  • Send payment reminders, Email the client when auto-cancelled, Auto-apply credit balance (new invoices consume available client credit when published), Email invoices on publish by default.

Tax defaults

  • HSN/SAC digits — 4 (turnover up to ₹5 Cr) or 6. Any HSN/SAC code entered on a line must have at least this many digits.
  • Default GST rate — used for new lines and products that do not set their own.
  • Round each tax head — CGST/SGST/IGST each rounded to the nearest rupee.
  • Round the grand total — adds a Round-off line so the total is a whole rupee.

Print

Terms title (printed as "Disclaimer: <title>" above the terms), Terms & conditions, Default customer note, Authorised signatory and a Signature image (PNG/JPEG/WebP up to 5 MB, scaled down automatically). With a signature the PDF prints a "For <legal name> … Authorised Signatory" block; without one it prints "This is a computer generated invoice, signatures are not required."

Razorpay

Online payment through the invoice pay link and the public pay page. The full flow is under Online payment (Razorpay).

  • Enable Razorpay, Key ID (rzp_test_… or rzp_live_…), Key secret, Webhook secret.
  • Test connection — makes a read-only call to Razorpay with the saved keys and reports "Connected — test keys" or "Connected — live keys". The button is disabled until Razorpay is enabled and a Key ID and Key secret are saved; unsaved edits are not what gets tested ("save your changes first to test the new ones").
  • Webhook URL — read-only, with a Copy button. In the Razorpay dashboard go to Settings → Webhooks, add this URL with the webhook secret above, and enable the events payment.captured, payment.failed, refund.processed and refund.failed.

E-invoicing (IRN)

Registers published B2B invoices with the Invoice Registration Portal. The full flow is under GST e-invoicing (IRN).

  • Enable e-invoicing and Sandbox mode ("Use the provider's test environment").
  • Provider — NIC (GSTN IRP) or Mock (testing only).
  • Username, Password, Client ID, Client secret and Provider public key ("PEM from the IRP portal; used to encrypt the session key").
  • Test credentials — requests an auth token from the portal with the saved credentials and reports "Authenticated — sandbox portal" or "Authenticated — production portal"; nothing is registered. Disabled until e-invoicing is enabled and the username, password, client ID, client secret and public key are saved (the Mock provider needs no credentials).

WHMCS import

WHMCS URL, API identifier, API secret. The importer itself is still being built; the card stores the credentials and does nothing else yet.

Secrets on all three cards are write-only: once saved you see "•••••••• (set — type to replace)" and a Remove link.

Email templates

Six customer-facing emails, each with a Subject and Body: Invoice created, Payment reminder, Overdue notice, Payment confirmation, Refund confirmation, Invoice cancelled. Pick one from the Email dropdown ("(customised)" marks the ones you have changed), edit, then Preview (rendered with sample data), Save template or Reset to default.

Click a variable chip to insert it at the cursor. Variables are written in double braces and filled in when the email is sent:

VariableFills in
{{invoice.number}}, {{invoice.total}}, {{invoice.balance}}Number, total, amount still due
{{invoice.invoiceDate}}, {{invoice.dueDate}}, {{invoice.status}}Dates as DD/MM/YYYY, status label
{{client.name}}, {{client.email}}Billed-to name, recipient address
{{org.name}}, {{org.legalName}}Your trading name, your legal name
{{payLink}}The invoice's online payment link
{{payment.amount}}, {{payment.date}}, {{payment.method}}, {{payment.transactionId}}The latest payment (Payment confirmation)
{{refund.amount}}, {{refund.date}}The latest refund (Refund confirmation)
{{daysOverdue}}Days past the due date (reminders and overdue notices)

Invoice created, Payment reminder and Overdue notice carry the invoice PDF and a "View and pay" button. Payment confirmation is sent automatically when a customer pays online.

Products

The Products page (sidebar) is the catalog that invoice and quotation lines pick from. It follows the Invoices module's visibility. Columns: Name, SKU, HSN/SAC, Unit, Price, GST %, Type (Service / Goods), Active. Search by name.

New product opens a sheet: Name (required), SKU, HSN / SAC (4–8 digits), Unit (NOS, HRS, MTH, DAY, KG, LTR, MTR, SET, PCS, OTH, or a custom 2–5 letter UQC code), Price (₹), GST rate (Organisation default or 0/5/12/18/28%), and three switches — Service (off = goods with an HSN, on = service with a SAC), Taxable (off = nil-rated/exempt line), Active. The Description becomes the default line description.

Deactivate removes a product from the pickers; invoices that already use it are untouched. Anyone with product-view access can browse; creating and editing needs product-manage access.

Create an invoice

  1. On the Invoices page click New Invoice.
  2. Pick a Client. Type to search; if the client does not exist yet, choose Create client and enter a name, email, GSTIN and state (a valid GSTIN fills the state). Billing details can be completed later on the client record.
  3. Check the Invoice date (today) and Due date (prefilled from Default due days; it moves when you change the invoice date until you edit it yourself).
  4. Optionally set a Payment method: Cash, Bank transfer, Card, Cheque, UPI, Razorpay or Other.
  5. Click Create draft. The invoice page opens with Manage invoice switched on.

You can also start from the client: Contacts → Invoices tab → Create invoice, or from an accepted quote with Convert to Invoice.

Manage mode

The Manage invoice switch at the top right of the invoice page turns editing on. Off, the page is read-only (the URL keeps the mode, so the link you share is the view you saw). The switch is disabled on Cancelled and Refunded invoices, which are read-only for everyone.

Add line items

Under Invoice items on the Summary tab (drafts only), click Add line. The new row saves when you press Enter, click the tick, or leave the row; Esc discards it. Existing lines save field by field as you tab out; Esc puts a field back.

ColumnNotes
ProductShown when you have a catalog. Picking a product fills Description, HSN/SAC, Unit, Rate, Taxable and GST %.
DescriptionRequired.
HSN/SACNumeric, at least the digits set in Settings, at most 8. Optional.
Qty, Unit, Rate, DiscountDiscount is an amount per line.
TaxableComputed: Qty × Rate − Discount.
GST %Exempt, 0, 0.1, 0.25, 1, 1.5, 3, 5, 7.5, 12, 18 or 28. New lines start at the Default GST rate.
CGST + SGST (or UTGST), or IGST, or TaxWhich columns appear depends on the place of supply — see below.
TotalTaxable value plus tax (taxable value only under reverse charge).

Tick lines to get With selected (n): Split to new invoice / Delete. Split moves the ticked lines into a new draft for the same client (linked "Split from") and takes you there; you cannot split every line away. Delete removes them from this draft.

Below the table, the totals panel shows Subtotal, Discount, Taxable value, the tax heads, Cess, Round-off, Grand total, Credit applied, Amount paid, Balance due, and the amount in words.

How GST is worked out

  • Place of supply = your state → intra-state: CGST + SGST, each half the rate. If the place of supply is Chandigarh, Dadra & Nagar Haveli and Daman & Diu, Lakshadweep, Andaman & Nicobar Islands or Ladakh, UTGST replaces SGST.
  • Place of supply in another state → IGST at the full rate.
  • Export / SEZ without IGST (LUT) → zero-rated; no tax on any line.
  • Every line exempt, or the organisation is on the Composition scheme → no GST; the document prints as a Bill of Supply instead of a Tax Invoice.
  • Reverse charge on: the tax heads are still shown, but the total excludes GST (the recipient pays it).

Place of supply defaults to the client's state (falling back to yours), and Supply type to what the client's registration implies: Domestic B2B for a client with a GSTIN, Domestic B2C without one, SEZ or Export for clients registered as SEZ or Overseas. Change either on the draft's Options tab — the columns switch immediately.

The Options tab on a draft

  • Document card: Invoice number ("Allocated on publish"), Invoice date, Document type, Financial year, Place of supply, Supply type (Domestic B2B, Domestic B2C, Export (with IGST), Export (without IGST / LUT), SEZ (with IGST), SEZ (without IGST / LUT)), Reverse charge, Currency. All of these freeze at publish and show a lock icon afterwards.
  • Payment card: Due date, Payment method, Status, Pause reminders, Customer note ("Printed on the invoice below the totals"; starts from the Default customer note in Settings).

Delete draft (Summary tab) removes a draft and its lines. Published invoices are cancelled instead.

Publish an invoice

On the Summary tab of a draft, with Manage invoice on:

  • Publish — publishes without emailing.
  • Publish & send email — publishes, then emails the "Invoice created" template with the PDF attached to the invoice contact's email, or the client's billing contact, or the client's email. If the email fails (for example no address on file), the invoice is still published and the message tells you the email was not sent.

Publishing requires at least one line item and a client, and runs the GST checks. It is refused with a message such as "GST validation failed: line 2: the HSN/SAC code must be numeric with at least the digits set in Settings › Invoicing & GST" when:

  • your GSTIN in Settings, or the client's GSTIN, is invalid;
  • the supply type is Domestic B2B or SEZ but the client has no GSTIN;
  • the supply is domestic, you are GST-registered, and there is no place of supply;
  • a Domestic B2C invoice of ₹50,000 or more has no billing address and state on the client;
  • a taxed line has a GST rate that is not a valid slab, or an HSN/SAC code that is not numeric, shorter than your HSN/SAC digits setting, or longer than 8.

A Domestic B2B draft whose client is registered as Unregistered is published as Domestic B2C automatically.

What happens on publish:

  • The next number in this financial year's sequence is allocated (INV/25-26/0042).
  • The invoice date you set on the draft (New Invoice or the Options tab) is kept; if you left it blank, the invoice date becomes the day you publish.
  • The due date is kept if it is on or after the invoice date; otherwise it is recomputed from the client's payment terms or the Default due days.
  • The document type is decided: Tax Invoice, or Bill of Supply when no GST applies.
  • Your legal identity and the client's billing details are snapshotted onto the invoice, along with the Terms & conditions text.
  • A public pay link is created for the invoice.
  • With Auto-apply credit balance on, any credit the client holds is applied, up to the invoice total. An invoice fully covered by credit is Paid the moment it is published.
  • If the invoice qualifies for an e-invoice (see Which invoices get an IRN), the IRN is requested from the portal straight away. Publish & send email holds the "Invoice created" email until the IRN exists so the PDF the client receives carries the IRN and QR code; while it waits you see "INV/… published. IRN pending — the email will be sent once the e-invoice is registered."

The invoice page

The header shows the number (or "Draft invoice"), the status chip with any Overdue, Partially paid or Recurring badge, an IRN pending / IRN generated / IRN failed / IRN cancelled badge on invoices that qualify for an e-invoice (hover it for the IRN and when it was registered, or the portal's error), the document type and financial year, and the Manage invoice switch. The card underneath lists Client (click it to see all of that client's invoices), Invoice date, Due date (with "N days overdue" when late), Payment method, links to related documents (Reissued from, Reissued as, Split from, From quotation), and the money summary: Total, Credit applied (when any), Paid, Balance due.

Five tabs follow: Summary, Options, Credit (with a count of notes), Refund, Notes.

Summary tab

The action bar shows only what applies to the invoice's status and your permissions:

ActionWhen it appearsWhat it does
Publish / Publish & send emailDraft, Manage onSee Publish an invoice.
Send emailPublished, Manage onOpens the Send email dialog (below).
Add paymentUnpaid / Collections / Payment pending with a balance, Manage onOpens the Add payment dialog (below).
Open PDF / Download PDFAlways, including drafts (drafts print a DRAFT ribbon)Opens the PDF in a new tab, or downloads it.
Copy pay linkPublished and openCopies the invoice's public payment link to the clipboard ("Pay link copied to the clipboard."). With Manage on it creates the link first if the invoice has none; otherwise you see "No pay link exists for this invoice yet." Customers pay through it when Razorpay is enabled — see Online payment (Razorpay).
Mark cancelledPublished and open, Manage on, cancel permissionSee Cancel an invoice.
ReissueUnpaid with Manage on, or any Cancelled invoice; cancel permissionSee Reissue an invoice.
Delete draftDraft, Manage onRemoves the draft.

Below the actions: an E-invoice card on invoices that qualify for an IRN (see The IRN badge and E-invoice card), Invoice items (read-only after publish, marked "Locked after publish"), the Ledger (Date, Entry, Description, Debit, Credit, Balance — "The ledger starts when the invoice is published"), and Transaction history (Date, Kind, Method, Reference, Amount, Applied, Status — online payment attempts and gateway refunds appear here as PENDING until Razorpay confirms them). Each successful payment that still has something refundable shows a Refund link that jumps to the Refund tab with that payment selected.

Add a payment

  1. Click Add payment. The dialog shows the number and balance due.
  2. Set the Date (today), Method (Cash, Bank transfer, Card, Cheque, UPI, Other), Amount (prefilled with the balance due — reduce it for a part payment), Reference (UTR / cheque number) and Notes.
  3. Click Save payment.

The payment lands in the ledger and the status follows: Partially paid while a balance remains, Paid once it reaches zero. Enter more than the balance and only the balance is applied — "the excess is added to the client's credit balance" for future invoices. Payments cannot be recorded on Paid, Refunded or Cancelled invoices, or on drafts. Online payments made through the pay link are recorded on their own (see What happens after a payment); Credit balance is applied from the Credit tab, not here.

Credit tab

Three figures at the top: Client credit balance, Credit applied here, Balance due.

  • Apply credit — moves money from the client's credit balance onto this invoice, up to the smaller of the balance due and the credit available. Manage on; the invoice must be published and open.
  • Remove credit — returns applied credit to the client's balance. A Paid invoice that loses its credit reopens as Unpaid.
  • Credit and debit notes — every note issued against this invoice: Number, Type, Date, Reason, Total, Status, and an Open link to the note's PDF.
  • Issue credit / debit note (credit-note permission, Manage on, published invoices): choose Type (Credit note / Debit note), Reason (Refund, Price adjustment, Quantity adjustment, Return, Post-sale discount, Cancellation, Other), the Amount (incl. tax) and an optional Description, then Issue. The tax heads are pro-rated from the invoice and the note gets its own number from the Credit note / Debit note sequence. A credit note lowers the balance due (and cannot exceed what is left of the invoice value); a debit note raises it. The amount must be typed — there is no one-click "full amount".

The CRM issues credit notes on its own in two cases: when you refund a payment on a Paid invoice (reason Refund, for the refunded value, so the balance stays at zero) and when you tick Also issue a credit note for the full amount while cancelling.

Refund tab

Refund permission and Manage on. Drafts, Cancelled and Refunded invoices cannot be refunded.

  1. Pick the Payment (date · method · reference · amount; shows "(₹x left)" if part of it was refunded already).
  2. Enter the Amount — up to what is left of that payment.
  3. Choose the Refund type:
    • Manual refund — "You have paid the client back outside the system; this records it."
    • Refund to credit — "The amount moves to the client's credit balance for future invoices."
    • Gateway refund — offered, and preselected, only when the chosen payment came in through Razorpay: "Razorpay returns the money to the original payment instrument." The refund stays PENDING until Razorpay confirms it — see Refund an online payment.
  4. Add Notes, tick Email the client a refund confirmation if wanted, and click Issue refund.

Effects: on a Paid invoice a credit note for the refunded value is issued automatically, so the invoice stays Paid after a part refund and becomes Refunded once every payment has been refunded. On an invoice that still had a balance, the balance simply grows by the refund. If part of the original payment had spilled into the client's credit as an overpayment, a manual or gateway refund of that part comes out of the credit balance first. For a gateway refund all of this happens when Razorpay confirms, not when you click.

Cancel an invoice

Mark cancelled (cancel permission) opens a confirmation: "The invoice stops being payable and its pay link is disabled. Invoices with payments must be refunded first." With credit-note permission you can also tick Also issue a credit note for the full amount — use this for an invoice that has already been reported or e-invoiced.

Rules: an invoice can be cancelled only while nothing has been paid on it (net of refunds) and no online payment attempt is pending. Any client credit applied to it is returned to the client. Cancelled invoices keep their number and are read-only. Drafts are deleted, not cancelled.

An invoice with an IRN adds a step: inside 24 hours of generation the dialog asks for an IRN cancel reason and Remark and withdraws the IRN on the portal first; after 24 hours the credit note becomes required. See Cancel an e-invoiced invoice.

Reissue an invoice

Reissue cancels the original (if it is not already cancelled) and creates a new draft with the same lines, client and tax settings, which opens in Manage mode for you to edit and publish. The original shows "Reissued as …" and the draft "Reissued from …". An invoice can be reissued once; the new draft gets a fresh due date and a new number when published.

If the original has an IRN, reissuing inside its 24-hour window withdraws the IRN on the portal with reason 2 (Data entry mistake); past the window the original is reversed with an automatic credit note and keeps its IRN. The new draft is registered as a fresh supply when you publish it.

Send email

Send email opens a dialog with a Template picker (New invoice, Payment reminder, Overdue notice, Payment confirmation, Refund confirmation, Invoice cancelled), the To address (prefilled from the invoice contact, then the client's billing contact, then the client), an Attach the invoice PDF checkbox (on by default for the first three), and a live Preview with the rendered subject. Click Send. Drafts cannot be emailed — publish first.

Options tab (published)

Due date and Payment method stay editable while the invoice is open. Status offers only the manual transitions — Unpaid → Collections and back — and only while a balance is owed; "paid and refunded states follow the ledger". Pause reminders "stops payment reminders and auto-cancellation for this invoice". The Customer note can be edited and saved with Save note until the invoice closes.

Notes tab

Internal notes — "Visible to your team only; never printed or emailed to the client." Up to 20,000 characters; editable in Manage mode on any status, including closed invoices. Click Save notes.

The invoice PDF

Open PDF and Download PDF produce an A4 document in the WHMCS layout:

  • Your logo top-left; your legal name, address, website, PAN, CIN and GSTIN right-aligned.
  • A diagonal status ribbon: UNPAID (red), PAID (green), DRAFT and CANCELLED (grey), REFUNDED and COLLECTIONS (orange), PAYMENT PENDING (amber).
  • A grey band: "Invoice #INV/25-26/0042", "Invoice Date: Thursday, September 17th, 2026", "Due Date: …", plus Billing Period, Quotation, Reissued From and Payment Terms when they apply; "Tax Invoice · Original for Recipient" on the right (Bill of Supply for no-GST documents).
  • Invoiced To: client name, "ATTN: <contact>", address, GSTIN; then "Place of Service: <state> (<code>)", "SAC Code: 998361" / "HSN Code: 8471" when every line shares one code, Supply Type for exports/SEZ, "Reverse Charge: Yes", and the export/SEZ or reverse-charge declaration.
  • An e-Invoice box, only once an IRN exists: "IRN: …", "Ack No: …", "Ack Date: …" and the portal's signed QR code. Credit and debit note PDFs never carry it.
  • The items table is Description | Total; Qty and Unit Price columns appear only when a quantity is not 1, Discount only when a discount exists, HSN/SAC only when lines carry different codes, GST only when rates differ.
  • Totals: Sub Total, "9.00% CGST" / "9.00% SGST" (or UTGST) or "IGST @ 18.00%", Cess, Round Off, Credit, Total; then "Amount in words" and your customer note.
  • Transactions: Transaction Date | Gateway | Transaction ID | Amount for settled payments and refunds ("No Related Transactions Found" otherwise) with a Balance row.
  • The signature block or "This is a computer generated invoice, signatures are not required."
  • Bank Details (free text verbatim, or the fields) with the UPI QR when there is a balance; "Disclaimer: <title>" and your terms; a footer with the document name and "Page x of y".

Money on PDFs is printed WHMCS-style as 25000.00 INR (two decimals, currency code, no grouping); inside the app amounts show as ₹ with Indian grouping (₹25,000.00). Credit and debit note PDFs use the same frame with "Credit Note #CN/25-26/0007", "Against Invoice INV/…", the reason, and no bank block on credit notes.

Online payment (Razorpay)

Customers pay an invoice from its public pay link — cards, UPI, net banking and wallets through Razorpay Checkout — and the CRM records the payment on the ledger by itself. Only invoices in INR can be paid online.

Set up Razorpay

Admins only. Settings › Invoicing & GST › Razorpay:

  1. Create a key pair in your Razorpay dashboard and enter the Key ID and Key secret.
  2. Switch on Enable Razorpay and click Save Changes.
  3. Click Test connection. "Connected — test keys" or "Connected — live keys" means the keys work.
  4. Click Copy next to the Webhook URL. In the Razorpay dashboard go to Settings → Webhooks, add that URL with a secret of your choosing, and enable payment.captured, payment.failed, refund.processed and refund.failed. Paste the same secret into Webhook secret and save again.

Test keys and live keys. A Key ID starting rzp_test_ is a Razorpay test key: checkout opens, the pay page shows "Test mode — no real money moves.", and payments are recorded exactly as live ones would be — useful for a dry run. Replace the pair with rzp_live_… keys to collect real money. Test connection tells you which kind is saved.

Every invoice gets a pay link when it is published. Customers reach it through the "View and pay" button in the Invoice created, Payment reminder and Overdue notice emails, through {{payLink}} in any template, or through Copy pay link on the Summary tab. The link is the only credential — anyone holding it can see the invoice summary and pay it — so send it to the client only. A mistyped or unknown link shows a plain "not found" page.

What the customer sees

The pay page shows your logo and name (legal name underneath when it differs), "Invoice INV/25-26/0042" with its Invoice date and Due date, the status chip, each line item with its total, then Total, Paid and Balance due. Below that, one of:

  • Pay ₹x securely — "Cards, UPI, net banking and wallets via Razorpay." Shown when Razorpay is enabled and the invoice is Unpaid, Collections or Payment pending with a balance.
  • "Online payment is not available for this invoice. The PDF below carries the bank details for a transfer." — Razorpay is not enabled (or the invoice is not in INR). The customer pays by bank transfer or the UPI QR on the PDF instead.
  • "This invoice is paid in full. Nothing more to do." / "This invoice has been cancelled and cannot be paid." / "This invoice has been refunded." / "This invoice is not open for payment right now." for closed invoices.

A Download invoice PDF link and "Questions about this invoice? Reply to the email it came with or contact <your name>." close the page.

What happens after a payment

  1. When the customer taps Pay, the invoice moves to Payment pending and a PENDING Razorpay row appears in Transaction history. Reopening the pay page within 24 hours reuses that attempt instead of starting another.
  2. When Razorpay reports success the payment is verified with Razorpay, recorded as a Razorpay payment in the ledger with the Razorpay payment id as its reference, and the invoice becomes Paid — or keeps a balance with the Partially paid badge if less than the balance came in. Anything over the balance goes to the client's credit balance, as with manual payments.
  3. The Payment confirmation email goes to the client automatically.
  4. The customer sees "Payment received — Thank you — invoice INV/… is now paid in full." (or the remaining balance).

If the payment is declined the customer can try again; an attempt that is never paid expires after 24 hours and the invoice returns to Unpaid. Cancelling an invoice is refused while a payment attempt is pending.

Payments are never lost: three independent routes record them — the customer's browser reporting back, the Razorpay webhook, and a reconcile job that checks every attempt still pending after 30 minutes with Razorpay. If the browser step fails the customer sees "We couldn't confirm your payment … If the amount was debited it will be matched to this invoice automatically — please do not pay again." with a Reload page button.

Refund an online payment

On the Refund tab, a Razorpay payment offers Gateway refund (preselected): "Razorpay returns the money to the original payment instrument." After Issue refund you see "Gateway refund requested; it settles when Razorpay confirms." The refund sits as PENDING in Transaction history — already counted against what is refundable, so it cannot be issued twice — until Razorpay confirms it (through the webhook or the reconcile job). Only then does it become SUCCEEDED and, on a Paid invoice, the credit note is issued. If Razorpay refuses, the row turns FAILED and the ledger is unchanged. If Razorpay does not answer, you see "Payment gateway error" and the refund stays pending for the reconcile job to settle — do not issue it again.

Manual refund and Refund to credit remain available for Razorpay payments. Note that Email the client a refund confirmation goes out as soon as Razorpay accepts the request, which can be before the money reaches the customer.

If the webhook does not reach the server

Symptoms: a customer paid but the invoice stays Payment pending, or a gateway refund stays PENDING for a long time. The reconcile job checks every pending attempt with Razorpay once it is 30 minutes old and settles it, so payments and refunds catch up within about 30 minutes even with no webhook at all. To fix the webhook itself, check in the Razorpay dashboard (Settings → Webhooks) that the URL matches the Webhook URL shown in Settings, that the secret matches Webhook secret, and that the four events are enabled. Test connection checks the keys only, not the webhook.

GST e-invoicing (IRN)

With e-invoicing on, every qualifying invoice is registered with the Invoice Registration Portal (IRP) when you publish it. The portal returns an IRN, an acknowledgement number and date, and a signed QR code, which appear on the invoice page and on the PDF.

Who can use it

  • NIC (GSTN IRP) talks to the government portal directly. Direct NIC API credentials are issued to larger taxpayers (check the NIC e-invoice portal for the current threshold); the NIC API sandbox is open to anyone who registers, and works with Sandbox mode on.
  • Mock (testing only) needs no credentials and generates IRNs locally, so you can try the whole flow — badges, emails, the PDF block, cancellation — before you hold portal credentials. Its IRNs are not real and never reach GST.

Set up e-invoicing

Admins only. Settings › Invoicing & GST › E-invoicing (IRN):

  1. Under Legal identity, make sure your GSTIN, legal name, address line 1, city, PIN code and state are filled in — the portal rejects a document without them.
  2. Choose the Provider and enter the Username, Password, Client ID, Client secret and Provider public key from the portal's API registration.
  3. Keep Sandbox mode on while testing; switch it off for the production portal.
  4. Switch on Enable e-invoicing, click Save Changes, then Test credentials. "Authenticated — sandbox portal" (or "production portal") means the login works; the test registers nothing.

Which invoices get an IRN

An invoice qualifies when e-invoicing is enabled and, at publish, it is a Tax Invoice with supply type Domestic B2B or SEZ for a client with a GSTIN, or Export. Domestic B2C invoices and Bills of Supply (composition scheme, or every line exempt) are never registered and show no IRN badge. Invoices published while the switch was off are not registered afterwards.

What publishing does

  • The invoice is numbered and locked as usual, then the IRN is requested from the portal immediately. Usually the invoice page opens already showing IRN generated.
  • If the portal is slow or down the invoice shows IRN pending and a background job keeps trying, with growing gaps (minutes at first, up to 6 hours apart) for up to 20 automatic attempts. You do not need to do anything.
  • If the portal rejects the document — a missing client PIN code or GSTIN, for example — the invoice shows IRN failed with the portal's message and no automatic retry. Fix the seller or client details and click Retry IRN.
  • A retry fills in details that were empty at publish (a missing client PIN code, city or GSTIN, a missing seller address) from the client record and your Settings. A value that was present but wrong is frozen in the published invoice — Reissue it and publish the corrected draft instead.
  • Publish & send email holds the "Invoice created" email until the IRN exists ("IRN pending — the email will be sent once the e-invoice is registered."); it goes out on its own once the IRN lands. Send email still works at any time if you need to send earlier.

The IRN badge and E-invoice card

The header badge reads IRN pending, IRN generated, IRN failed or IRN cancelled; hover it for the IRN and registration time, the portal's error, "Registering with the Invoice Registration Portal" / "Waiting to retry (attempt n)", or when the IRN was cancelled.

The E-invoice card sits above the Invoice items on the Summary tab of every qualifying invoice:

  • The status chip, and once registered the IRN (with a copy button), Ack No and Ack date.
  • While pending: "Registration with the Invoice Registration Portal is queued and retries automatically." with the number of attempts so far.
  • On failure: the portal's message, then "Next automatic retry <time>." or "Automatic retries have stopped; correct the invoice or the seller/client details and retry manually." and a Retry IRN button (Manage on). Retry reports "IRN generated for INV/…", "IRN generation failed: <reason>" or "IRN generation is queued and will retry automatically."
  • Once generated: "Marking this invoice cancelled before <time> also cancels the IRN on the portal." or, after 24 hours, "The 24-hour window to cancel this IRN on the portal has passed; to reverse the invoice, cancel it with a credit note."

The invoice PDF gains the e-Invoice box with the IRN, Ack No, Ack Date and QR code (see The invoice PDF).

Cancel an e-invoiced invoice

Mark cancelled on an invoice with an IRN behaves in one of two ways:

  • Within 24 hours of generation the dialog says "This invoice has an IRN; it is cancelled on the portal first. The portal accepts the cancellation until <date and time>." and asks for an IRN cancel reason — 1 — Duplicate, 2 — Data entry mistake, 3 — Order cancelled (default), 4 — Others — and an optional Remark (up to 100 characters, "sent to the portal"). The IRN is withdrawn on the portal first; if the portal refuses, the invoice is not cancelled and you see "Invoice Registration Portal error: …". On success the message reads "Invoice cancelled; the IRN was cancelled on the portal." and the badge turns IRN cancelled.
  • After 24 hours the dialog warns "The IRN can no longer be cancelled on the portal … The invoice stays registered with GST, so cancelling it is only allowed together with a credit note, which reverses it for the return filings." The checkbox becomes Issue a credit note for the full amount (required); without it the cancel is refused ("The e-invoice IRN can no longer be cancelled; issue a credit note instead"). If your role cannot issue credit notes, ask someone who can. The invoice keeps its IRN.

Reissue and auto-cancel follow the same rule: inside the window the IRN is withdrawn (reissue uses reason 2, Data entry mistake); after it, a credit note is issued automatically and the IRN stays.

Find invoices

The Invoices page lists 25 invoices per page with Invoice #, Client, Invoice date, Due (red with the days late when overdue), Total, Paid, Balance and Status, plus view and edit icons on each row (edit opens the page with Manage on). Click Invoice #, Invoice date, Due or Total to sort; click again to flip the direction. Newest first by default.

Filters sit above the table:

  • Search — matches the invoice number, the client name and line item descriptions.
  • Status — any mix of Draft, Unpaid, Paid, Cancelled, Refunded, Collections, Payment pending, plus the derived Overdue and Partially paid.
  • Client picker, Invoice date range, Due date range, Method.
  • A Recurring profile chip appears when you arrive from a recurring profile or an invoice's Recurring badge.

Clear filters (n) resets everything. Filters live in the page URL, so a filtered view can be bookmarked or shared. The Recurring button opens the recurring profiles page.

Client billing on the contact

Open a contact and switch to the Invoices tab. Invoices are raised against a billing account (the company a contact is invoiced through); a contact without one shows "No billing account yet" and a Create billing account button.

With an account, the tab shows Outstanding, Credit balance and Overdue (count of invoices past due), then Recent invoices with Add funds, Create invoice and View all, and a Recurring card with New recurring and View all.

Add funds records a prepayment as credit: Amount, Method, Reference (UTR / cheque no.) and a Note. The credit is applied to future invoices automatically at publish (when Auto-apply credit balance is on) or by hand from an invoice's Credit tab; overpayments and refunds-to-credit land in the same balance.

Quotations

The Quotations page lists Number, Subject, To (contact or company), Status (draft, sent, accepted, declined, expired, converted), Total and Valid until. Click a row to open it.

Create a quotation

  1. Click New Quotation.
  2. Pick a Contact and, optionally, a Company; add a Subject (up to 200 characters) and a Valid until date.
  3. Add Line items — pick a product to prefill, or type a description ("Title on the first line, details below"), quantity and price.
  4. Enter Tax as an amount and any Notes; the Subtotal / Tax / Total box updates live.
  5. Click Create Quotation. Line items are required; everything else can be filled in later. The number comes from the Quotation prefix sequence.

Work a quotation

  • Open PDF / Download PDF — the quotation document: the same header as invoices, a boxed Quote # | Subject | Date Created | Valid Until table, a Recipient block, a Qty | Description | Unit Price | Others | Total items table (description title with details underneath), totals, "Notes: …", Bank Details and the Disclaimer.
  • Send — emails the quotation with the PDF attached and marks a draft as sent.
  • Convert to Invoice — creates a Draft invoice with the quotation's lines and opens it in Manage mode for you to review, complete the GST fields and publish. The quotation is marked converted and links to its invoice ("Converted to invoice INV-…"); it cannot be converted twice.
  • Delete — removes the quotation.

Recurring invoices

Invoices → Recurring lists your recurring profiles: Name, Client, Cycle, Next due (with "generates on <date>" for active profiles), Est. total, Generated (count, "/ max" when capped), Last invoice, Status (Active, Paused, Cancelled, Completed). Filter by status and client.

Create a profile

Click New profile (or New recurring on a contact's Invoices tab):

  • Client, Name (for example "Hosting — Acme (monthly)").
  • Billing cycle: Monthly, Quarterly, Half-yearly, Annually, Every 2 years.
  • Next due date — the start of the first period and the due date of its invoice. Its day of month anchors every later period (a 31st is clamped to the last day of shorter months).
  • End date (the last day a period may start on) and Max invoices — both optional.
  • Payment method, Supply type, Place of supply, Reverse charge — the same GST settings as an invoice.
  • Auto-apply credit and Email on generate (defaults from Settings).
  • Line items with the product picker, HSN/SAC, Qty, Unit, Rate, Discount and GST per line; an Estimated total per invoice updates as you type.
  • Internal notes — not shown to the client.

Click Create profile. Editing a profile later changes only invoices generated from then on; changing Next due date re-anchors the cycle.

What happens on schedule

The CRM checks roughly every minute. A profile is due when today has reached its next due date minus Generate recurring (days before). It then creates a draft with the billing period, publishes it (no email at this step), applies the client's credit if the profile says so, emails the "Invoice created" template with the PDF when Email on generate is on and a balance remains, records the invoice as Last invoice, and moves Next due forward one cycle. Invoices from a profile carry a Recurring badge and print a "Billing Period" line.

Each period is invoiced once — a retry after an interruption resumes the existing invoice rather than making a second one. When the end date or the maximum count is reached the profile becomes Completed. Three failed attempts in a row pause the profile and show a warning icon next to its name with the last error.

Manage a profile

The row menu offers Edit, Generate now (creates and publishes the next period's invoice immediately, ignoring the lead days, then advances the schedule), Pause / Resume, Cancel profile (final — no further invoices; existing ones are untouched) and, on Cancelled or Completed profiles, Delete.

Reminders and auto-cancel

Both run automatically once set up under Settings › Invoicing & GST.

Payment reminders (with Send payment reminders on): for each day in the Reminder schedule, an invoice whose due date is that many days away gets one email — the Payment reminder template before or on the due date, the Overdue notice after it — with the PDF and pay link. Only Unpaid invoices with a balance qualify; invoices in Collections or Payment pending, and invoices with Pause reminders switched on, are skipped, as are invoices whose client has no email address. Emails go out between 08:00 and 20:00 in your organisation's timezone; a reminder missed on its day is caught up the next day, and each invoice gets at most one email per schedule entry.

Auto-cancel (with Auto-cancel after overdue (days) above 0): an Unpaid invoice with nothing paid, no fresh online payment attempt, and a due date more than that many days in the past is cancelled automatically. Email the client when auto-cancelled sends the Invoice cancelled template. Pause reminders on the invoice's Options tab exempts it from both reminders and auto-cancel. An e-invoiced invoice is auto-cancelled the same way as a manual cancel — the IRN is withdrawn on the portal inside its 24-hour window, or a credit note is issued after it; if the portal refuses, the invoice is left for the next run.

Roles and permissions

PermissionDefault rolesUnlocks
View quotations, invoices & paymentsAdmins, Members, ViewersThe Quotations and Invoices pages, invoice detail, PDFs, the contact Invoices tab.
Create, send & convert quotations/invoices, record paymentsAdmins, MembersNew Invoice, Manage invoice, line editing, Publish, Send email, Add payment, Apply/Remove credit, Options and Notes, Copy pay link, Retry IRN, recurring profiles, Add funds, Create billing account, quotations.
Cancel & reissue invoicesAdmins, MembersMark cancelled (including the IRN cancellation), Reissue.
Issue credit/debit notes & adjust client creditAdminsIssue credit / debit note; the credit-note checkbox when cancelling (required for an e-invoiced invoice past its 24-hour window).
Refund paymentsAdminsThe Refund tab and Refund links, including gateway refunds.
View products / Create & edit productsAll / Admins, MembersThe Products page / New product, Edit, Activate and Deactivate.
Change org settingsAdminsSettings › Invoicing & GST, including Razorpay, E-invoicing and email templates.

Custom roles can grant or remove any of these individually under Settings → Team.

FAQ

Why does the invoice number say "Draft"? Numbers are allocated only when you publish, so serials never have gaps from abandoned drafts. Publish the invoice to get the next number in this financial year's sequence.

Why can't I edit a published invoice? A published invoice is a tax document and is kept exactly as issued. Change the due date, payment method, customer note or internal notes on the Options and Notes tabs; for anything else, Reissue it (the original is cancelled, a new draft is created) or issue a credit or debit note from the Credit tab.

Why did GST validation reject my HSN/SAC code? A code must be digits only, at least as long as the HSN/SAC digits setting (4 or 6), and no longer than 8. The message names the line ("line 2: …"). Fix the line on the draft and publish again. The same message covers the other checks: a missing client GSTIN on a B2B or SEZ invoice, a missing place of supply, a B2C invoice of ₹50,000 or more without a client address and state, or an invalid GST rate.

What does "Partially paid" mean? Some money has been paid or credited but a balance remains. The invoice stays Unpaid (or Collections) with the Partially paid badge until the balance reaches zero, when it becomes Paid.

Why was my invoice Paid the moment I published it? The client had a credit balance and Auto-apply credit balance is on, so the credit covered the total. Look at the Credit tab, or the "Credit applied" figure in the header; Remove credit reopens the invoice.

Why can't I cancel this invoice? Only invoices with nothing paid on them can be cancelled. Refund the payments first (Refund tab), then Mark cancelled — or issue a credit note instead if the payment should stand.

Why did the invoice date change when I published? A draft with no invoice date is stamped with the publish day. If you need a specific invoice date, set it on the draft (Options tab) before you publish — it is honoured, and it locks together with the number and tax fields afterwards.

Why does my invoice say IRN pending? The Invoice Registration Portal has not answered yet — it was slow or unreachable when you published. Nothing is wrong with the invoice: a background job keeps retrying on its own, and the E-invoice card shows how many attempts have been made. If you chose Publish & send email, the "Invoice created" email goes out automatically once the IRN lands. If the badge turns IRN failed, read the portal's message on the E-invoice card, fix the seller or client details it names (a missing PIN code or GSTIN is the usual cause), and click Retry IRN. If every invoice is stuck, run Test credentials under Settings › Invoicing & GST › E-invoicing (IRN) — an expired password or a wrong sandbox/production switch fails there first.

The customer says the pay link shows no Pay button. The pay page offers Pay ₹x securely only when all three hold: Razorpay is enabled with a Key ID and Key secret saved (Settings › Invoicing & GST › Razorpay — Test connection should say "Connected"); the invoice is Unpaid, Collections or Payment pending with a balance (Paid, Cancelled and Refunded invoices show a notice instead); and the invoice is in INR. Otherwise the page says "Online payment is not available for this invoice. The PDF below carries the bank details for a transfer." — the customer can still pay by bank transfer or scan the UPI QR on the PDF.