Skip to main content
Book a free call
Menu

Retail POS for India

POS billing software with GST for retail stores

Odoo Point of Sale bills at the counter, prints the GST tax invoice, takes UPI and card, and updates stock and accounting as you sell, across one shop or a chain.

Last reviewed:

What does Odoo POS do for an Indian retail shop?

GST tax invoice at the counter

Tax Invoice heading, HSN summary and CGST/SGST or IGST split on every receipt.

UPI and card terminals

Razorpay and Pine Labs terminals in Odoo 19; static UPI QR payment in Odoo 20.

Keeps selling offline

If the internet drops, the register keeps selling and syncs the orders when it reconnects.

Many stores, one stock

Every register draws on the same stock ledger, with pricing and promotions set once at head office.

Size and colour variants

Each variant has its own barcode and stock count, which garment and footwear shops need.

Loyalty and gift cards

Points, coupons, promotions and gift cards, redeemed on the bill.

Returns and refunds

Refund against the original order; the item returns to stock in the same step.

Cash control

Opening and closing counts, cash in and out, and the difference recorded per session.

Everything above is standard Odoo 19 or Odoo 20, described in Odoo's Point of Sale documentation. The module itself is covered on Odoo Point of Sale, and what changed in version 20 is in the Odoo 20 Sales, CRM and POS guide.

What does a day at the counter look like in Odoo?

Nine steps, from opening the register to filing GST, each with the Odoo feature that does the work. The screenshots are real Odoo screens.

  1. Step 1: Open the register

    Point of Sale session, Log in with Employees

    The cashier opens the day's session and counts the opening cash. With Log in with Employees on, each person signs in under their own access level: Manager, Cashier, Restrictive, or Supervised in Odoo 20, where a senior employee must approve before a Supervised cashier can close a payment.

    Odoo 20 Point of Sale settings with Log in with Employees ticked and the Manager, Cashier, Restrictive and Supervised access level fields
    Odoo 20 POS settings: employee access levels, including the new Supervised level.
  2. Step 2: Scan the barcode, pick size and colour

    Barcode scanning, product variants

    The cashier scans the tag or taps the product. In a garment shop each size and colour is a product variant with its own barcode, so the bill line reads the exact item, such as a T-shirt in size S, and stock drops for that variant only. When separate lines match a combo product, Odoo 20 suggests the combo price.

    Odoo 20 POS register with an apparel order of a slim T-shirt and blue denim jeans in size S, taxes and total, and a T-shirt and Pants Combo suggestion with an Apply button
    Odoo 20 POS register: size variants on the bill and a combo suggestion. Demo data, so amounts show in USD.
  3. Step 3: Find the customer, apply loyalty or a gift card

    Promotions, Coupons, Gift Card and Loyalty Program

    Search the customer by name or phone, or create them at the counter. Points, discounts, coupons, buy-X-get-Y promotions and gift cards are standard Odoo, and the reward applies on the bill before payment.

    Odoo Point of Sale gift card list showing two gift card codes with their balances, the Gift Cards program and the customer each card belongs to
    Gift cards in Odoo Point of Sale, from our POS Partial Gift Card Redeem module listing.
  4. Step 4: Take payment by cash, UPI or card

    Payment methods, Razorpay and Pine Labs terminals, UPI QR

    Odoo 19 connects to Razorpay and Pine Labs payment terminals, which take debit and credit cards (Visa, Mastercard, RuPay) and UPI. Odoo 20 adds payment through a static UPI QR code. One bill can be split across cash, UPI and card, and each payment method posts to its own journal.

    Razorpay with Odoo
  5. Step 5: Print the GST tax invoice

    Indian Point of Sale (l10n_in_pos)

    With the India localisation installed, the receipt is headed Tax Invoice and carries an HSN summary table with the tax split by rate. HSN codes and GST rates come from the product, and CGST plus SGST or IGST follows the place of supply. Odoo 20 can also print a simplified receipt with totals and taxes only, or send the receipt instead of printing it.

    Odoo 20 POS payment confirmation screen reading Amount Paid, with a Print dialog offering Full Receipt or Simplified Receipt and buttons to print or send the receipt
    Odoo 20 POS after payment: full or simplified receipt, print or send.
  6. Step 6: Stock updates centrally

    Inventory, one stock ledger for every store

    Each store's register takes stock from that store's warehouse in Odoo. Head office sees what every branch has on hand, and replenishment rules can raise the transfer or purchase when a store runs low.

    Odoo Inventory
  7. Step 7: Handle a return

    POS Orders, refunds

    The customer brings back an item. The cashier finds the original order (Odoo 20 searches by receipt or invoice number), refunds the line, and the item goes back into stock. The money goes back by the payment method the cashier picks.

    Odoo 20 POS Orders screen with a search for INV and the Receipt Number search option highlighted, next to the selected order's lines and a Load Order button
    Odoo 20 POS Orders: find a past sale by receipt number.
  8. Step 8: Close the session with cash control

    Closing control, closing entries

    At the end of the day the cashier counts the drawer and Odoo shows the difference against expected cash. Closing the session posts the day's sales to Accounting. In Odoo 20 the payment entries can be created daily at a set hour or when the session closes.

    Odoo 20 Point of Sale accounting settings with the Closing entries option set to Daily at 11:00, beside the default sales tax and journal settings
    Odoo 20 POS accounting settings: when closing entries are generated.
  9. Step 9: Bill a business customer and file GST

    Invoicing from POS, Indian E-invoicing

    For a customer with a GSTIN, the cashier marks the order to invoice. It becomes an ordinary customer invoice in Accounting, so if e-invoicing applies to you, it goes to the Invoice Registration Portal and comes back with an IRN and QR code. POS sales are posted with their GST split, and GSTR-1 is filed from Odoo's GST reports.

    GST e-invoicing and e-way bill in Odoo

Odoo POS or a standalone billing app?

Indian shops usually bill in one of three ways: desktop accounting software with billing (Tally, for example), a billing app built for shops (such as Marg or Vyapar), or an ERP with a point of sale. Each fits a different business. The question is how much sits around the bill.

Choose a standalone billing app if

  • One shop, one counter, and billing is the main job.
  • Your CA keeps the books in separate accounting software.
  • You do not run an online store or a warehouse.

Choose odoo Point of Sale if

  • Several stores, or a warehouse feeding the stores.
  • You want stock, purchase, accounting and GST in the same system as billing.
  • You also sell online or to businesses, and want one customer and stock record.

Moving off Tally? Read Tally Prime vs Odoo and the Tally to Odoo playbook.

Which retailers run Odoo POS with us?

Standard Odoo covers most shops. Chains often add rules on top, as Koskii did for price-band GST and loyalty checks. More on retail rollouts: Odoo for retail.

Which of our POS add-ons do Indian retailers use?

We publish these modules on the Odoo App Store. None is needed to bill with GST; each solves a specific counter problem.

Getting Odoo POS set up with TechUltra

Our Ahmedabad team sets up GST, HSN codes, product variants and barcodes, payment terminals and each store's register, then tests a full day of billing, returns and session closing before the first store goes live. Every project gets a fixed price in writing before work begins; see how that works in our India packages. Back to the Odoo in India overview.

Odoo POS and GST billing: common questions

  • Is Odoo POS good billing software for a retail store in India?

    Yes, if you want billing, stock and accounting in one system. Odoo Point of Sale prints a GST tax invoice with an HSN summary, takes UPI and card payments through Razorpay or Pine Labs terminals, keeps selling offline, and updates stock and accounting as you sell. A single shop that only needs bills may find a standalone billing app simpler.

  • Does Odoo POS print GST-compliant bills with HSN codes?

    Yes. With the India localisation, the POS receipt is headed Tax Invoice and shows an HSN summary table with the tax split. HSN codes and GST rates are set on each product, and CGST plus SGST or IGST is applied from the place of supply. For a business customer, the order can be turned into a full customer invoice.

  • Can customers pay by UPI at an Odoo POS counter?

    Yes. Odoo 19 integrates with Razorpay and Pine Labs payment terminals, which accept UPI as well as Visa, Mastercard and RuPay cards. Odoo 20 also supports payment through a static UPI QR code. Cash, UPI and card can be combined on one bill.

  • Does Odoo POS work without internet?

    Yes. Once the register is open, it keeps taking sales if the connection drops and syncs the orders to Odoo when it returns. Terminal payments need the terminal's own connection, so test your card and UPI setup for an outage before a store depends on it.

  • Can we run several stores on one Odoo POS?

    Yes. Each store gets its own point of sale and warehouse, all on the same Odoo database, so head office sees stock, sales and cash for every branch. Koskii runs 22+ stores across six cities on Odoo POS. See the Koskii case study.

  • Does Odoo POS handle sizes and colours for a garment shop?

    Yes. Sizes and colours are product variants, each with its own barcode and stock count, so the bill shows the exact item and returns go back to the right variant. Where GST depends on the selling price band, as it did for Koskii, we set up the tax rules so the rate follows the price.

  • Do B2B sales from the POS need e-invoicing?

    If your aggregate turnover is above the e-invoicing threshold, yes. An order invoiced to a GST-registered customer becomes an ordinary customer invoice, which Odoo sends to the Invoice Registration Portal for an IRN. See GST e-invoicing and e-way bill in Odoo.

Want to see Odoo POS billing for your store?

Chat on WhatsApp