Finance · bahi.naklitechie.com

Bahi

Browser-native double-entry accounting for Indian businesses. Agents can read books and reports, post journals, invoices, purchases and receipts.

Ask an agent to

  • Raise a GST sales invoice for a customer
  • Show me the trial balance as of 31 March
  • Get the GSTR-3B summary for last month

85 tools

  • create_advance

    Record a customer advance received before supply. The amount is gross of GST: the taxable value is backed out at taxRate and the tax split CGST+SGST intra-state, IGST inter-state. Waits for the person's approval…

    customerId: integer, bankAccountId: integer, amount: integer, taxRate: number?, natureOfSupply: string?, placeOfSupply: string?, paymentMode: string?, advanceDate: string?, … (list cut; the site may define more)

  • create_bank_account

    Add a bank account under Bank Accounts, for receipts and payments. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call get_proposal for the outcome. Needs an open .khata.

    name: string, agentName: string?

  • create_credit_note

    Raise and post a credit note against an invoice: full reversal, or partial by amount pro-rated over every line. Known gap: cess on the invoice is not reversed. Waits for the person's approval: returns…

    invoiceId: integer, cnDate: string?, cnNumber: string?, reason: string?, notes: string?, amount: integer?, agentName: string?

  • create_customer

    Add a customer. A GSTIN, when given, must be well formed and agree with the state. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call get_proposal for the outcome. Needs an open…

    name: string, gstin: string?, pan: string?, state: string?, email: string?, phone: string?, address: string?, openingBalance: integer?, … (list cut; the site may define more)

  • create_debit_note

    Raise and post a debit note against a purchase: full reversal, or partial by amount pro-rated over every line. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call get_proposal for…

    purchaseId: integer, dnDate: string?, dnNumber: string?, reason: string?, notes: string?, amount: integer?, agentName: string?

  • create_delivery_challan

    Goods leaving or returning without a sale. Moves stock; posts no ledger entry. outward-return names a vendor; the other types name a customer. Waits for the person's approval: returns {status:"pending_approval"…

    challanType: string?, customerId: integer?, vendorId: integer?, lines: array, challanDate: string?, challanNumber: string?, destination: string?, vehicleNo: string?, … (list cut; the site may define more)

  • create_eway_bill

    Draft an e-way bill from a posted invoice or a delivery challan. The portal issues the number; record it with record_eway_bill_number. Waits for the person's approval: returns {status:"pending_approval", proposalId}…

    sourceType: string, sourceId: integer, transporterName: string?, transporterId: string?, vehicleNo: string?, vehicleType: string?, mode: string?, distanceKm: integer?, … (list cut; the site may define more)

  • create_godown

    Add a godown or warehouse. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call get_proposal for the outcome. Needs an open .khata.

    name: string, address: string?, state: string?, isDefault: boolean?, agentName: string?

  • create_invoice

    Raise and post a sales invoice: header, lines, GST routing (CGST+SGST intra-state, IGST inter-state), ledger entry and stock effect, exactly as the invoice form does. Waits for the person's approval: returns…

    customerId: integer, lines: array, invoiceDate: string?, invoiceNumber: string?, series: string?, placeOfSupply: string?, notes: string?, isComposition: boolean?, … (list cut; the site may define more)

  • create_invoice_series

    Add an invoice number series: prefix, suffix, starting number and FY reset. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call get_proposal for the outcome. Needs an open .khata.

    name: string, prefix: string, suffix: string?, startingNumber: integer?, resetOnFy: boolean?, defaultFor: string?, agentName: string?

  • create_item

    Add an item or service. A goods item with inventory and an opening quantity posts its opening stock into the default godown. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call…

    name: string, isService: boolean?, hsnSac: string?, unit: string?, defaultRate: integer?, taxRate: number?, enableInventory: boolean?, valuationMethod: string?, … (list cut; the site may define more)

  • create_payment

    Record and post a customer receipt allocated against that customer's invoices. The receipt amount is the sum of the allocations; an unallocated receipt is an advance, a different voucher. Waits for the person's…

    customerId: integer, bankAccountId: integer, allocations: array, paymentDate: string?, paymentNumber: string?, paymentMode: string?, reference: string?, notes: string?, … (list cut; the site may define more)

  • create_purchase

    Record and post a vendor purchase: header, lines, ITC and reverse-charge routing, ledger entry and stock effect, exactly as the purchase form does. Waits for the person's approval: returns {status:"pending_approval"…

    vendorId: integer, billNumber: string, lines: array, billDate: string?, internalRef: string?, placeOfSupply: string?, notes: string?, reverseCharge: boolean?, … (list cut; the site may define more)

  • create_stock_transfer

    Record an outbound inter-GSTIN stock transfer with IGST per line. Returns the payload the receiving branch imports; saving it as a file is the person's. Waits for the person's approval: returns…

    toGstin: string, toState: string, lines: array, transferDate: string?, transferNumber: string?, agentName: string?

  • create_tcs_collection

    Record TCS collected from a customer: the Form 27EQ row and Dr Sundry Debtors / Cr TCS Payable. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call get_proposal for the outcome.…

    customerId: integer, section: string, taxableAmount: integer, rate: number?, collectionDate: string?, invoiceId: integer?, agentName: string?

  • create_vendor

    Add a vendor, with its reverse-charge flag and default TDS section. Waits for the person's approval: returns {status:"pending_approval", proposalId}; call get_proposal for the outcome. Needs an open .khata.

    name: string, gstin: string?, pan: string?, state: string?, email: string?, phone: string?, address: string?, openingBalance: integer?, … (list cut; the site may define more)

  • create_vendor_payment

    Pay a vendor, withholding TDS when a section applies: Dr Sundry Creditors (gross) / Cr Bank (net) / Cr TDS Payable. Records the Form 26Q deduction. Waits for the person's approval: returns {status:"pending_approval"…

    vendorId: integer, bankAccountId: integer, amount: integer, tdsSection: string?, tdsRate: number?, paymentMode: string?, paymentDate: string?, paymentNumber: string?, … (list cut; the site may define more)

  • describe_toolsread-only

    Every tool with its kind, JSON-schema input and approval rule, the person-only acts no agent can perform, and the UI routes not yet covered. Start here.

  • get_account_ledgerread-onlyuntrusted content

    One account's ledger lines over a date range. Needs an open .khata.

    accountId: integer, from: string, to: string

  • get_balance_sheetread-only

    Balance sheet as of a date. Asset balances carry the same sign the UI renders. Needs an open .khata.

    asOf: string?

  • get_bank_reconciliationread-onlyuntrusted content

    One bank account's ledger lines over a period with their cleared status, the book balance for the period, and the last saved reconciliation. Needs an open .khata.

    accountId: integer, from: string, to: string

  • get_challan_templateread-onlyuntrusted content

    The data sheet for one challan, prefilled with the company's identity. Bahi submits nothing; the person takes it to the portal. Needs an open .khata.

    code: string

  • get_cmp08read-only

    CMP-08 for a quarter: aggregate turnover from posted invoices and tax at the composition rate. Refused when the composition scheme is off, as the screen does. Needs an open .khata.

    fyStartYear: integer, quarter: integer

  • get_dashboardread-onlyuntrusted content

    The dashboard's figures: cash flow, the current GST liability, receivables aging, top customers by outstanding, and recent activity. Needs an open .khata.

    topCustomers: integer?, recentActivity: integer?

  • get_day_bookread-onlyuntrusted content

    Every voucher posted in a date range, both ends inclusive. Needs an open .khata.

    from: string, to: string

  • get_file_inforead-onlyuntrusted content

    Company identity, file name, versions, save status and integrity heads of the open .khata. Needs an open .khata.

  • get_form26qread-onlyuntrusted content

    Quarterly TDS return data: Form 26Q up to FY 2025-26, Form 140 from FY 2026-27 (formName in the result). Needs an open .khata.

    fyStartYear: integer, quarter: integer

  • get_form27d_summaryread-onlyuntrusted content

    TDS per vendor for a quarter: the figures each TDS certificate carries (Form 16A, Form 131 from FY 2026-27). The tool keeps its old name; Form 27D is the TCS certificate. The PDF itself is the screen's. Needs an open…

    fyStartYear: integer, quarter: integer

  • get_form27eqread-onlyuntrusted content

    Quarterly TCS return data (Form 27EQ up to FY 2025-26, Form 143 from FY 2026-27), with the validation errors the screen shows. Needs an open .khata.

    fyStartYear: integer, quarter: integer

  • get_gstr1read-onlyuntrusted content

    GSTR-1 outward-supplies data for a period, in the portal JSON shape (rupees, as the portal wants). Needs an open .khata.

    periodStart: string, periodEnd: string

  • get_gstr3bread-only

    GSTR-3B summary for a period, in paise. Needs an open .khata.

    periodStart: string, periodEnd: string

  • get_inventory_summaryread-only

    The inventory dashboard: total stock value, items valued, items to reorder, expired batches still holding stock, and the aging buckets' totals. Needs an open .khata.

  • get_pnlread-onlyuntrusted content

    Income less expense over every posting, per account, with totals and net profit. Labels are the account names frozen at posting. Needs an open .khata.

  • get_proposalread-onlyuntrusted content

    One proposal: its status and, once applied, its result (for example the new invoiceId).

    proposalId: string

  • get_purchase_registerread-onlyuntrusted content

    Posted purchases in a date range, oldest first, with tax columns and their totals. Needs an open .khata.

    from: string, to: string

  • get_receivables_agingread-onlyuntrusted content

    Receivables aged into buckets as of a date (default today). Needs an open .khata.

    asOf: string?

  • get_reorder_alertsread-onlyuntrusted content

    Items at or below their reorder level, with how short each one is and its preferred vendor. Needs an open .khata.

  • get_sales_registerread-onlyuntrusted content

    Posted invoices in a date range, oldest first, with tax columns and their totals. Needs an open .khata.

    from: string, to: string

  • get_statusread-only

    Whether a .khata is open and writable, the route and mode this tab shows, which doors are open, and how many proposals wait for the person.

  • get_stock_agingread-onlyuntrusted content

    Batches with stock, bucketed by age as of today: 0–30, 31–60, 61–90 and over 90 days. Needs an open .khata.

  • get_stock_on_handread-onlyuntrusted content

    Closing stock per item per godown. Needs an open .khata.

    itemId: integer?, godownId: integer?

  • get_stock_registerread-onlyuntrusted content

    One item's movements over a date range, oldest first. Quantities are signed: issues are negative. Needs an open .khata.

    itemId: integer, from: string, to: string

  • get_stock_valuationread-onlyuntrusted content

    Closing stock valuation as of a date, by each item's WAC or FIFO method. Needs an open .khata.

    asOf: string?

  • get_trial_balanceread-only

    Trial balance as of a date, with the Dr = Cr tie check. Amounts in paise. Needs an open .khata.

    asOf: string?

  • list_accountsread-onlyuntrusted content

    Chart-of-accounts entries: id, name and type. Journal lines and receipts name accounts by id. Needs an open .khata.

    q: string?, limit: integer?, offset: integer?, includeArchived: boolean?

  • list_advancesread-onlyuntrusted content

    Customer advances, newest first, with the taxable value, the amount adjusted against invoices and the open balance. Needs an open .khata.

    from: string?, to: string?, customerId: integer?, limit: integer?, offset: integer?

  • list_annotationsread-onlyuntrusted content

    CA annotations on entries and documents, newest first. Needs an open .khata.

    status: string?, targetType: string?, targetId: integer?

  • list_audit_entriesread-onlyuntrusted content

    The most recent audit-log entries, newest first. Read your own writes back and confirm attribution; includePayload shows the agentCall record. Needs an open .khata.

    limit: integer?, includePayload: boolean?

  • list_bank_accountsread-onlyuntrusted content

    Bank and cash accounts, by id, as the reconciliation screen lists them. Needs an open .khata.

  • list_batchesread-onlyuntrusted content

    Batches that still hold stock, by item, with expiry and remaining quantity and value. Needs an open .khata.

    itemId: integer?, limit: integer?, offset: integer?

  • list_challan_templatesread-only

    The tax-payment challan templates Bahi prepares data sheets for.

  • list_credit_notesread-onlyuntrusted content

    Posted credit notes, latest first, with the invoice each one reverses. Needs an open .khata.

    from: string?, to: string?, customerId: integer?, limit: integer?, offset: integer?

  • list_customersread-onlyuntrusted content

    Customers, paged. Archived ones are hidden unless includeArchived, as in the UI. Needs an open .khata.

    q: string?, limit: integer?, offset: integer?, includeArchived: boolean?

  • list_debit_notesread-onlyuntrusted content

    Posted debit notes, latest first, with the bill each one reverses. Needs an open .khata.

    from: string?, to: string?, vendorId: integer?, limit: integer?, offset: integer?

  • list_delivery_challansread-onlyuntrusted content

    Delivery challans, latest first, with party, vehicle and return status. Needs an open .khata.

    from: string?, to: string?, limit: integer?, offset: integer?

  • list_eway_billsread-onlyuntrusted content

    E-way bills, latest first, with the document each one covers. Needs an open .khata.

    from: string?, to: string?, limit: integer?, offset: integer?

  • list_godownsread-onlyuntrusted content

    Active godowns, the default first. Needs an open .khata.

  • list_invoice_seriesread-onlyuntrusted content

    Invoice number series with prefix, suffix, starting number, FY reset and what each is the default for. Needs an open .khata.

  • list_invoicesread-onlyuntrusted content

    Sales invoices of every status, newest first, with the amounts allocated, adjusted and still outstanding (paise). Needs an open .khata.

    from: string?, to: string?, customerId: integer?, limit: integer?, offset: integer?

  • list_itemsread-onlyuntrusted content

    Items and services, paged, with HSN/SAC, unit and default rate in paise. Needs an open .khata.

    q: string?, limit: integer?, offset: integer?, includeArchived: boolean?

First 60 of 85 shown.

Tools
85
Registered with
JavaScript
Scan finished
Oct 19, 2026

Tool names and descriptions are what bahi.naklitechie.com/#/workspace registered when we loaded it in Chrome 154 on Browser Use Cloud. The summary and the “ask an agent” lines are AI-written from them. To call the tools yourself, see Chrome’s WebMCP docs. How we found it.

More finance sites

All 329 finance sites →