Skip to content
Code Colonies

FMCG and Consumer Goods · AI

AI agent that reads supplier invoices and posts them into Tally for a distributor

An agent that reads supplier bills from email and WhatsApp, matches them to purchase orders and goods receipts, and posts purchase vouchers into TallyPrime with the right GST ledgers. The accounts team now keys nothing by hand and approves only the exceptions.

Client
A regional FMCG distributor in Gujarat supplying kirana stores and modern trade
Region
India
Sponsor
Finance controller and the accounts payable team
Duration
10 weeks to first release, then a monthly run plan
A person holding receipts while using a calculator

Engagement model

O2E: Output Oriented Engagement

The output was fixed up front: every supplier invoice read, matched and posted to Tally, with exceptions routed to a person, and payment followed acceptance of that output.

How O2E works

The team

  • Delivery lead1
  • AI engineer2
  • Tally integration engineer1
  • Shared QA1

The challenge

Where things stood

  1. Supplier invoices arrived as PDFs, phone photos and WhatsApp forwards, in many different layouts.
  2. Two accountants spent most of each day keying purchase vouchers into Tally and checking GST rates line by line.
  3. Mismatches between invoice, purchase order and goods receipt were found late, often at month end.
  4. Input tax credit was at risk when invoices were posted with the wrong GSTIN or missed in the GSTR-2B reconciliation.

The approach

How we ran it

  1. Weeks 1 to 2

    Map the books

    Sat with the accounts team to list suppliers, ledgers, cost centres and GST treatments, and collected a sample of real invoices from the last two quarters.

  2. Weeks 3 to 6

    Build extraction and matching

    Built the agent to read header and line items, validate GSTIN and HSN codes, and match each invoice to its purchase order and goods receipt within agreed tolerances.

  3. Weeks 6 to 9

    Tally posting and review queue

    Connected to TallyPrime through its XML interface to create purchase vouchers, and built a review screen where accountants approve, correct or reject anything the agent is unsure about.

  4. Weeks 9 to 10

    Parallel run and handover

    Ran the agent alongside manual entry for a full month end, compared every voucher, then switched over once the finance controller signed off.

What it looks like

Representative screens

Drawn to show the kind of system we delivered. Client screens and data stay private.

FMCG and Consumer GoodsSupplier invoices, todayAK

Supplier invoices, today

SupplierInvoice no.Amount (INR)MatchStatus
Supplier S-014S014/24-25/11822,48,600PO and GRN matchedPosted
Supplier S-008S008-093186,420Qty short by 40 cartonsOn hold
Supplier S-021S021/33071,12,050PO and GRN matchedPosted
Supplier S-033S033-22153,05,780GST rate differs from POReview
Supplier S-019S019/24/77454,300PO and GRN matchedPosted
Representative screen with sample data. Client screens stay private.
FMCG and Consumer GoodsInvoice S033-2215, supplier S-033AK

Invoice S033-2215, supplier S-033

Supplier GSTIN
24AABFK4821M1Z3
Purchase order
PO-2024-0612
Taxable value
INR 2,91,219
GST on invoice
IGST 5%, INR 14,561
Agent note
Supplier is in Gujarat, so CGST and SGST expected, not IGST
Representative screen with sample data. Client screens stay private.

What we delivered

Modules and features

  • Invoice intake from a shared mailbox and a WhatsApp Business number
  • Extraction of supplier, GSTIN, invoice number, line items, HSN codes and tax amounts
  • Three way match against purchase orders and goods receipt notes
  • Purchase voucher posting into TallyPrime with ledger and GST mapping
  • Exception queue with the reason for each hold and one click approval
  • Duplicate invoice check across suppliers and periods
  • Monthly GSTR-2B comparison report for input tax credit

What changed

Outcomes

  • Accountants approve only the exceptions on purchase vouchers
  • Invoice and purchase order mismatches caught on the day the bill arrives
  • Duplicate supplier bills stopped before they reach Tally
  • Month end GST reconciliation starts from a clean list of posted invoices

Looking back

The agent was ready before the master data was. Supplier names in Tally did not match the names on invoices, and some ledgers had been duplicated over the years, so the first fortnight of testing was really a ledger clean up. We would start with that next time and budget for it in the plan. The parallel month end was worth the extra effort: it surfaced two GST treatments the team applied from memory that nobody had written down, and the finance controller only agreed to switch over once he had seen every voucher compared.

Start a conversation

Discuss a similar project

Tell us where your team is today and we will walk you through how a project like this would run for you under O2E. The first conversation is free. Delivery work is paid only after you accept it.

Or get a ballpark proposal in two minutes

A specialist replies within one working day. The first conversation is free.

Chat with the Code Colonies team on WhatsApp