Documentation

Everything you need to run Trakor: feature guide, credit pricing, and a REST API for third-party ERP or e-commerce integrations.

Overview

Trakor is a QR-based traceability + billing platform. Every organisation gets a prepaid credit wallet. Credits are consumed only on chargeable actions (listed below). All data is scoped per organisation with row-level security.

  • Traceability: Products → QR codes → Delivery Challans → public trace lookup
  • Billing: Sales, Proforma, and Purchase invoices with GST (CGST/SGST/IGST auto-detected)
  • Accounts: Payments, Customer & Vendor Ledgers (XLS + PDF export)
  • Integrations: REST API + Webhooks for Tally, Busy, Zoho or any custom ERP

Platform Video Tour

A 24-second walkthrough of everything Trakor does — traceability, billing & POS, Sales CRM, WhatsApp/email automation and instant ecommerce websites.

Tip: unmute for background music. Share this video with your team as a quick platform intro.

Role Quickstarts

Jump straight to what you need to do next. Pick your role — each card lists the top actions in order with a direct link into the app.

Reseller — do this next

Manage your customer organisations and their credit pricing.

  1. Onboard a new customer org
  2. Set your custom credit rules
  3. Recharge a customer wallet
  4. View users under your resellers

Setup Guide (Getting Started)

Follow these steps once, in order, to go from a fresh sign-in to printing your first QR label and issuing your first invoice.

  1. Sign in. Use the phone + password credentials shared by your Org Admin (or by your Reseller). If you forgot the password, use Reset via OTP on the sign-in page.
  2. Complete organisation details. Go to Settings → Organisationand fill in legal name, GSTIN, state, address, and logo. State is critical — invoices auto-pick CGST+SGST when the party is in the same state, IGST otherwise.
  3. Invite your team. Settings → Members → add users with role Org_Admin, Manager, Challan_Operator, or Viewer. Share the auto-generated password with each member.
  4. Check your wallet. The header shows current credits. If it's low, ask your Reseller to recharge. Every QR code, challan, and invoice consumes 1 credit.
  5. Add master data. Create Products, Parties (customers), and Vendors — either one at a time or via XLS import (use the "Download template" button on each list). Set HSN, UoM, GST %, and price-inclusive/exclusive on each product.
  6. (Optional) Design a QR label template. Settings → QR Templates → drag product fields, custom fields, images, and the QR placeholder onto the canvas. Mark one as default. Skip this to use the built-in 24-per-A4 label.
    Cost: 10,000 credits per new template.
  7. Generate QR codes. QR → Generate → pick a product and quantity. QR codes appear in QR History; select rows → Download QR Codes for a printable A4 PDF.
  8. Create your first Delivery Challan. Challans → New → pick a party, then either search products, scan the printed labels full-screen, or type the last 8 characters of a QR ID. Save to generate a challan PDF.
  9. Convert to Invoice. Open the saved challan → Convert to Invoice. Tax mode, HSN, UoM, and totals are prefilled. Add E-way / E-invoice details if applicable, save, and download the PDF.
  10. Record payments. Open any invoice → Record payment (full or partial). Payment status (Pending / Partial / Paid) updates automatically and reflects on the invoice list and the customer ledger.
  11. (Optional) Integrate with your ERP. Settings → API Keys → generate an X-API-KEY, then push products / parties / vendors via the REST API (see below).

Onboarding Checklist

Tick each item as you finish it. Progress is saved in this browser so you can come back later and pick up where you left off.

0 of 21 steps complete

1. Account & organisation

2. Master data (tracking + inventory)

3. QR & traceability

4. Billing workflow

5. Integrations (optional)

Onboarding by Role

Pick your role for a first-week checklist. Every step links to the matching docs section and the exact screen in the app. Progress is saved per role in this browser.

Super Admin

Platform owner. Set global pricing and plans, then create resellers and organisations.

0/6

Role-Based Instructions

Trakor uses these roles inside your organisation. Each workflow below lists exactly what each role must (or cannot) do.

Reseller

Manages a group of organisations. Recharges their wallets, sets reseller-specific credit pricing, views their users.

Org Admin

Full control of one organisation: master data, members, templates, challans, invoices, payments, API keys, ledgers.

Manager

Day-to-day operations: products, parties, vendors, QR generation, challans, invoices, payments — no member management or API keys.

Challan_Operator

Field / warehouse user: create Delivery Challans (search or scan QR), view products & parties. Cannot create invoices or edit master data.

Viewer

Read-only across the organisation. Useful for accountants and auditors.

Setup & organisation

ActionResellerOrg AdminManagerChallan_Operator / Viewer
Edit organisation details / logo / GSTINYes
Recharge wallet creditsOwn orgsRequest onlyRequest only
Set credit pricing (per reseller)Own users
Invite / remove members, assign rolesOwn org
Reset a member's passwordOwn usersOwn org members

Master data (Products, Parties, Vendors)

ActionResellerOrg AdminManagerChallan_Operator / Viewer
Add / edit / delete ProductsYesYes
Import Products / Parties via XLSYesYes
Add / edit / delete Parties (customers)YesYes
Add / edit / delete VendorsYesYes
Manage custom product fieldsYes
View master dataOwn users' orgsYesYesYes

QR & Traceability

ActionResellerOrg AdminManagerChallan_Operator / Viewer
Design / edit QR Label TemplatesYes
Mark a template as defaultYes
Generate QR codes (wallet-charged)YesYes
Bulk-download QR labels (A4 PDF)YesYesYes
Traceability lookup /t/<qrId>Own orgOwn orgOwn org

Delivery Challans & Billing

ActionResellerOrg AdminManagerChallan_Operator / Viewer
Create Delivery Challan (search / scan)YesYesYes
Create / edit Sales InvoiceYesYes
Create / edit Proforma InvoiceYesYes
Create / edit Purchase InvoiceYesYes
Convert Challan → InvoiceYesYes
Record paymentsYesYes
Export Customer / Vendor Ledger (XLS + PDF)YesYesYes
Delete Invoice / ChallanYes

Integrations & API

ActionResellerOrg AdminManagerChallan_Operator / Viewer
Generate / revoke API keysYes
Call REST API (products / parties / vendors / wallet)Own key
Configure webhooksYes
Legend: Yes = allowed, = not allowed, Own org = only within the user's own organisation.

Full Role Access Matrix

Every role in the platform and exactly what it can do. Roles are assigned per organisation in Settings → Members; Super Admin and Reseller Admin are platform-level roles assigned from the admin console.

Super Admin

Platform owner. No restrictions anywhere: creates resellers, organisations and their first admin, sets global credit pricing and CRM plans, recharges any wallet, views every ledger and audit trail.

Reseller Admin

Owns a group of organisations. Creates orgs + org admins, recharges their wallets from the reseller wallet, sets reseller-specific credit pricing, views their users and ledgers. No access to customer business documents.

Org Admin

Full control of one organisation: master data, members & passwords, QR templates, billing, POS, CRM subscription, WhatsApp/SMTP, coupons, API keys.

Manager

Day-to-day operations across QR, billing, POS and CRM (whole-team view). Cannot manage members, integrations or subscriptions.

Accountant

Full read plus billing edit rights — invoices, payments, ledgers, coupons, reconciliation — but cannot delete records or manage members.

Billing Operator

Challans, invoices, payments and master data for billing. Own CRM records only; no POS, no deletes.

POS Operator

Counter sales only: shifts, sales, refunds, receipts, barcode scanning. Read-only on products and parties.

Challan Operator

Warehouse / dispatch: create challans by search or QR scan, print labels, use POS. No member or integration access.

Sales Executive

CRM-only user. Sees Sales CRM and profile pages exclusively — every other route is blocked in the app and by database policies.

Organisation & members

ActionOrg AdminManagerAccountantBilling OperatorPOS OperatorChallan OperatorQR GeneratorSales Executive
Edit organisation profile, GSTIN, logo, receipt settingsYes
Add / edit / delete members, assign roles, set passwordsYes
View wallet balance & credit ledgerYesYesYesYesViewViewView
Manage API keysYes
Manage custom product fieldsYes

Master data

ActionOrg AdminManagerAccountantBilling OperatorPOS OperatorChallan OperatorQR GeneratorSales Executive
Products — add / edit / import XLSYesYesYesYesViewViewView
Parties (customers) — add / edit / import XLSYesYesYesYesViewViewViewOwn
Vendors — add / editYesYesYesYesView
Delete any recordYesYes

QR, labels & traceability

ActionOrg AdminManagerAccountantBilling OperatorPOS OperatorChallan OperatorQR GeneratorSales Executive
Generate QR codes (wallet-charged)YesYesYes
QR History — search, filter, XLS exportYesYesYesYesViewYesYes
Bulk A4 label PDF downloadYesYesYesYesYesYes
Design QR label templates (10,000 credits / template)Yes
Traceability lookup (full ID or last 8 chars)YesYesYesYesYesYesYes

Challans, invoices & payments

ActionOrg AdminManagerAccountantBilling OperatorPOS OperatorChallan OperatorQR GeneratorSales Executive
Create Delivery Challan (search / scan / suffix)YesYesYesYesYes
Convert Challan → InvoiceYesYesYesYesYes
Sales / Proforma / Purchase invoicesYesYesYesYesYes
Record payments, part-paymentsYesYesYesYesYes
Customer & vendor ledger export (XLS + PDF)YesYesYesYesView
Delete invoice / challanYesYes

Point of Sale & stock

ActionOrg AdminManagerAccountantBilling OperatorPOS OperatorChallan OperatorQR GeneratorSales Executive
Open shift, sell, refund, print thermal receiptYesYesYesYesYesYes
Close shift & Z-ReportYesYesYesYesYes
Stock ledger & POS reconciliationYesYesYes
Analytics dashboardYesYesYesYes

Sales CRM (requires an active CRM subscription seat)

ActionOrg AdminManagerAccountantBilling OperatorPOS OperatorChallan OperatorQR GeneratorSales Executive
Open CRM moduleYesYesYesYesYes
Attendance punch in/out, GPS pings, km travelledYesYesViewOwnOwn
Leads, pipeline stages, follow-ups, meetings, visitsYesYesViewOwnOwn
See the whole team's CRM dataYesYesView
Edit other users' CRM recordsYesYes
Landing pages, lead webhooks, lead-stage settingsYesYes
Manage CRM subscription, plan & seatsYes

Messaging, coupons & automations

ActionOrg AdminManagerAccountantBilling OperatorPOS OperatorChallan OperatorQR GeneratorSales Executive
Configure WhatsApp API & templatesYes
Send WhatsApp message to a lead / partyYesYesYes
Configure SMTP, domain wizard, email templatesYes
Send email, view delivery & read-tracking logYesYesViewOwn
Manage coupons & redemptionsYesYes
Legend: Yes = full create/edit access · View = read-only · Own = only records the user created or is assigned to · = hidden / blocked. Super Admin bypasses every row above; Reseller Admin only sees wallet, pricing and user lists for the organisations they own.

Complete Feature Catalog

Module-by-module list of every feature currently shipped, where to find it, and which roles can use it.

Platform administration

FeatureWhereWhat it doesWho can use it
ResellersAdmin → ResellersCreate resellers, assign reseller admins, recharge reseller wallets, view their organisations and users.Super Admin
Organisations & first adminAdmin → OrganisationsCreate an organisation together with its Org Admin (phone, email, initial password shown in the list), freeze/unfreeze, recharge wallet.Super Admin, Reseller Admin
Global credit pricingAdmin → PricingSet the credit cost of every billable action; every change is written to the pricing audit trail.Super Admin
Reseller credit pricingReseller → PricingPer-reseller overrides applied to that reseller's organisations only.Reseller Admin
CRM plansAdmin → CRM PlansDefine CRM plans: price in credits, seat limit, billing period.Super Admin
Wallet ledgerAdmin → LedgerEvery recharge and deduction with reference notes, filterable per organisation.Super Admin, Reseller Admin

Master data

FeatureWhereWhat it doesWho can use it
ProductsProductsSKU auto-generation, HSN, UoM, GST %, price inclusive or exclusive of GST, stock, barcode, XLS import.Org Admin, Manager, Accountant, Billing Operator
Product imagesProducts → Edit → ImagesMain image plus multiple gallery images per product, reused on the storefront, labels and PDFs.Org Admin, Manager, Accountant, Billing Operator
Custom product fieldsSettings → Product FieldsOrganisation-defined extra fields (batch, colour, warranty…) usable on labels and PDFs.Org Admin
Ledgers (customers & suppliers)LedgersOne unified contact book — a ledger can be a customer, a supplier or both. GSTIN, state (drives CGST+SGST vs IGST), phone + alternate phone, XLS import, duplicate prevention and a Tally-style account statement.Org Admin, Manager, Accountant, Billing Operator

QR, labels & traceability

FeatureWhereWhat it doesWho can use it
QR generationQR → GenerateBatch-generate serialized QR codes per product. Blocked at zero wallet credits; low-credit reminder under 50 credits.Org Admin, Manager, QR Generator
QR historyQR → HistoryCode number column, search, sort, date-range and status filters, filter by party, XLS export, row selection.Org Admin, Manager, Accountant, Challan Operator, QR Generator
Bulk label printingQR → History → Download QR CodesSelected rows rendered as an A4 print sheet (24 labels per page) using the default label template.Same as QR history
Label template designerSettings → QR TemplatesDrag-and-drop designer with custom size in mm, fields, logo and a default template flag. 10,000 credits per new template.Org Admin
TraceabilityTraceabilityLook up any unit by full QR ID or the last 8 characters; shows product, generation, assignment, challan and dispatch history.All operational roles
Full-screen scannerChallans → New / POSContinuous camera scanning with success and error beeps; keeps scanning the next code without leaving the screen.Challan Operator, Manager, Org Admin, POS Operator

Billing

FeatureWhereWhat it doesWho can use it
Delivery challansChallans → NewAdd unassigned QR units by product-name search, camera scan, or 8-character suffix; cart persists locally. 1 credit per challan.Org Admin, Manager, Accountant, Billing Operator, Challan Operator
Convert to invoiceChallan → ConvertCreates a sales invoice from the challan lines, carrying QR assignments and payments across.Billing roles
Sales, Proforma & Purchase invoicesInvoices / Proforma / PurchasesAutomatic CGST+SGST vs IGST from party state, e-way bill and e-invoice fields, PDF download. 1 credit per invoice.Billing roles
Payments & ledgersInvoice → Record paymentPart payments flip status to Partial / Paid; customer and vendor ledgers export to XLS and PDF for any date range.Billing roles
CouponsSettings → CouponsPercentage or flat coupons with validity window, usage caps and per-customer limits, plus a redemption log.Org Admin, Accountant

Point of Sale

FeatureWhereWhat it doesWho can use it
Counter salesPOSBarcode / QR scanning, quick product grid, multi-payment split, discounts and coupons, thermal receipt printing.Org Admin, Manager, Accountant, POS Operator, Challan Operator, QR Generator
Shifts & Z-ReportPOS → ShiftOpen/close shift with cash declaration and end-of-shift Z-Report.POS roles
Offline modePOSProducts and customers load instantly from local cache, sales queue while offline and sync automatically when the connection returns.POS roles
Stock ledger & reconciliationStock Ledger / POS ReconciliationEvery stock movement recorded; reconciliation compares sales, ledger and QR-unit counts to surface variances.Org Admin, Manager, Accountant

Sales CRM

FeatureWhereWhat it doesWho can use it
Subscription & seatsCRM → SubscriptionSubscribe to a plan, seat limits enforced live, pro-rated wallet charging on plan change, 7-day read-only grace period after expiry.Org Admin
Attendance & GPSCRM → AttendancePunch in/out with location, background location pings, day-wise kilometres travelled and route map.Sales Executive (own), Manager & Org Admin (team)
Visits, meetings, follow-upsCRM → Visits / Meetings / Follow-upsParty visit check-ins with GPS, meeting outcomes, and reminders for pending follow-ups.Sales Executive (own), Manager & Org Admin (team)
Leads & pipelineCRM → LeadsKanban pipeline with configurable stages, required fields, custom lead fields, deduplication, stage audit trail and CSV export.Sales Executive (own), Manager & Org Admin (team)
CalendarCRM → CalendarDay/week planner with drag-and-drop rescheduling and a reschedule audit trail.Sales Executive, Manager, Org Admin
Landing pagesCRM → Landing PagesDrag-and-drop page builder with a lead capture form, published public URL and per-page conversion analytics.Org Admin, Manager
Lead webhooksCRM → WebhooksPublic intake endpoint per token with query-parameter to lead-field mapping, HMAC signature verification, replay guard and dedup rules.Org Admin, Manager
ReportsCRM → ReportsField-force reporting: attendance, kilometres, visit and meeting counts, funnel conversion per executive.Manager, Org Admin, Accountant (read)

Messaging & automation

FeatureWhereWhat it doesWho can use it
WhatsApp APISettings → WhatsAppConnect Meta Cloud API or Innosate by API key; reusable templates with variables and media attachments.Org Admin
One-click & bulk WhatsAppCRM → Lead / ScheduledSend a template to a lead in one click, schedule messages, or bulk-send with throttling; a background dispatcher handles the queue.Sales Executive, Manager, Org Admin
Stage-based WhatsApp automationSettings → Lead StagesPick a default template per lead stage; moving a lead sends it automatically.Org Admin, Manager
SMTP emailSettings → EmailOwn SMTP host/credentials, guided domain wizard verifying SPF, DKIM and DMARC.Org Admin
Email templates & automationsSettings → Email → TemplatesTemplate studio with a variable palette and merge preview; per-stage and per-event automated sends.Org Admin
Delivery & read trackingSettings → Email → LogPer-recipient queued / sent / bounced / rejected status with SMTP code and reason, plus open tracking (first open, last open, open count). WhatsApp delivered/read receipts arrive via the status webhook.Org Admin, Manager, Accountant (read)
Lead timelineCRM → Lead detailUnified activity feed: stage changes, visits, meetings, follow-ups, emails and WhatsApp messages with Read / Delivered / Not read badges.CRM roles

Marketing automation (flow builder)

FeatureWhereWhat it doesWho can use it
Drag-and-drop flowsCRM → AutomationsN8N-style canvas: connect trigger, wait, condition and action steps; each step is configurable and flows can be paused or run live.Org Admin, Manager
TriggersCRM → Automations → Trigger nodelead.created, lead.stage_changed, follow-up due, invoice pending, and scheduled/product-push runs.Org Admin, Manager
ActionsCRM → AutomationsSend WhatsApp template, send email template, create follow-up, move stage, add note, send offer/coupon — drip sequences with wait steps.Org Admin, Manager
Product push campaignsCRM → AutomationsPush new, trending or slow-moving products to selected parties/leads; interest replies become leads or direct orders.Org Admin, Manager
Run historyCRM → Automations → RunsEvery execution logged per step with status and error reason for debugging.Org Admin, Manager, Accountant (read)
Payment & ledger remindersSettings → RemindersAutomatic WhatsApp nudges for pending invoice payments and periodic B2B ledger statements every N days.Org Admin, Accountant

Ecommerce website

FeatureWhereWhat it doesWho can use it
Instant storefrontWebsite → General & designPublish a modern shop or enquiry site in one click, with banners, categories, product grid and cart; products, stock and GST come straight from master data.Org Admin, Manager
Payments & shippingWebsite → SettingsRazorpay checkout plus zone-based shipping rules, free-shipping thresholds and COD toggle.Org Admin
Orders → leadsWebsite → OrdersOrder list with status updates; every order and enquiry creates a CRM lead automatically.Org Admin, Manager, Accountant, Billing Operator
Custom domainWebsite → Your own domainMap your own domain with the shown CNAME/A records; visitors landing on it go straight to your store.Org Admin
Store policiesWebsite → PoliciesPrivacy policy, return/cancellation policy and terms & conditions per organisation — write your own or generate standard text; published at /policy links in the store footer.Org Admin

Add-ons & subscriptions

FeatureWhereWhat it doesWho can use it
Add-on catalogueAdmin → Add-onsSuper Admin sets the credit price and billing period of each add-on (Website, POS, CRM…).Super Admin
Subscribe to add-onsSettings → Add-onsOrganisation subscribes with wallet credits; monthly auto-renewal, cancel anytime, access gated when inactive or unpaid.Org Admin

Integrations & platform

FeatureWhereWhat it doesWho can use it
REST APISettings → API KeysKey-authenticated endpoints for products, parties, vendors and wallet balance.Org Admin (keys), Developer
Chat botAny pageSigns in with phone + password, then shows wallet credits and shortcuts to generate QR codes and documents.All
Mobile drawer navigationGlobalResponsive drawer menu; the whole app is usable on phones in the field.All
Public docs & SEO/docsRole quickstarts, searchable index, JSON-LD, sitemap and dynamic OG images.Public

WhatsApp & Email Automation

WhatsApp

  • Connect Meta Cloud API or Innosate in Settings → WhatsApp with your API key.
  • Build reusable templates with {{variables}} and media attachments.
  • Send to a lead or party in one click; schedule messages or bulk-send with throttling.
  • Map a default template to each lead stage — moving a lead sends it automatically.
  • Point your provider webhook at /api/public/v1/whatsapp-status/<api-key> to capture delivered / read receipts.

Email (your own SMTP)

  • Configure host, port, credentials and from-address in Settings → Email.
  • The domain wizard verifies SPF, DKIM and DMARC records before you go live.
  • Template studio with a variable palette and merge preview; per-stage and per-event automations.
  • Delivery log records queued / sent / bounced / rejected per recipient with the SMTP code and server reason.
  • Open tracking records first open, last open and open count; opens also appear on the lead timeline.
Only Org Admin can configure the WhatsApp API, SMTP and templates. Managers and Sales Executives can send using them; Accountants get read-only access to the logs.

Landing Pages & Lead Webhooks

  1. Build a page in CRM → Landing Pages with the drag-and-drop editor and publish it to a public URL.
  2. Drop in a lead capture form — submissions land straight in the CRM pipeline at your chosen stage.
  3. For third-party sources, create a webhook in CRM → Webhooks; each gets its own intake token at /api/public/v1/lead-intake/<token>.
  4. Map incoming query parameters or JSON keys to lead fields; unknown fields can be auto-created as custom fields.
  5. Enable HMAC-SHA256 signature verification and the replay guard for trusted senders.
  6. Deduplication rules merge repeat leads by phone or email instead of creating duplicates.
  7. Slack and email notifications fire on every new lead; conversion analytics are per landing page.
Org Admin and Manager can create and edit pages and webhooks. Sales Executives only see the leads produced.

Website Custom Domain Setup

Your storefront is always reachable at /store/<your-slug>. To serve it on your own address (for example shop.yourcompany.com), follow these steps in order.

Step 1 — Publish the store
  1. Open Website → Settings.
  2. Set the store name and the web address (slug) — lowercase letters, numbers and hyphens only.
  3. Turn on Make store live and click Save. A store that is not live returns "store could not be loaded" on any domain.
Step 2 — Enter your domain in the app
  1. In Website → Settings → Custom domain, type the exact hostname visitors will use, without https:// and without a trailing slash.
  2. Use one hostname per store. If you want both example.com and www.example.com to work, add both at your DNS provider and redirect one to the other.
  3. Click Save. The domain is stored against your storefront so incoming requests for that host resolve to your store.
Step 3 — Add the DNS records at your registrar
TypeName / HostValueWhen to use
A@185.158.133.1Root domain, e.g. example.com
Awww185.158.133.1www.example.com
CNAMEshopthe app host shown in Website → SettingsSubdomain, e.g. shop.example.com
TXT_lovablethe verification value shown during setupOwnership verification
  • Delete any old A, AAAA or CNAME record for the same host — conflicting records block verification.
  • If your DNS is proxied (Cloudflare orange cloud), enable the proxy option during domain setup so CNAME-based verification is used instead of A records.
  • SSL is issued automatically after verification. If you use CAA records, allow Let's Encrypt.
  • Propagation is usually minutes but can take up to 72 hours. Check with dnschecker.org.
Step 4 — Verify the Visit button works
  1. Go to Website → Settings and click Visit. It opens your live storefront in a new tab.
  2. While the domain is still propagating, Visit uses the /store/<slug> address — confirm the shop, products and cart render there first.
  3. Once DNS is live, open your custom domain directly in a fresh tab (or a private window) and confirm the same storefront loads with a padlock (https).
  4. Check a product page, add to cart, and open a policy page such as /policy/privacy to confirm deep links work on the custom host.
  5. Place one test order — it should appear in Website → Orders and create a matching lead in the CRM.
Troubleshooting
  • "This store could not be loaded" — the store is not live, or the domain saved in settings does not exactly match the host in the browser (watch for www).
  • Visit opens a blank tab — the slug was changed after publishing; save again and retry.
  • Certificate warning — DNS resolved but SSL is still being issued; wait and reload, then retry issuance if it persists.
  • Old site still showing — a stale A/CNAME record or browser cache; clear the cache or test in a private window.
Only Org Admin can change the slug, custom domain or live status. Managers can edit content but not the domain.

Ecommerce Setup Cheatsheet

Everything needed to take a storefront live, in the order you should do it. All of it lives under Website → Settings.

1. Store slug & URL behaviour
  • The Web address field on the General & design tab is your slug; the public URL is /store/<slug>.
  • Slugs are auto-cleaned as you type: lowercase letters, numbers and hyphens only, max 60 characters. Spaces and symbols become hyphens.
  • Sub-pages follow the same prefix — /store/<slug>/product/<id>, /store/<slug>/cart, /store/<slug>/policy/privacy.
  • Changing the slug changes every public link instantly; old links stop working, so update anything you have already shared.
  • A custom domain serves the same storefront at your own address — see Website Custom Domain Setup. The /store/<slug> URL keeps working alongside it.
  • The storefront only responds when Make store live is on; otherwise visitors see "this store could not be loaded".
2. Required settings — General & design
SettingRequired?Notes
Website nameRequiredShown in the header, footer, page titles and auto-generated policy text.
Web address (slug)RequiredMust be unique; defines the public URL.
Website typeRequiredOnline store (cart & payment) or Enquiry website (no prices at checkout).
Theme & brand colourRecommendedDrives layout style and accent colour across every page.
CurrencyRequiredDefaults to INR; used for prices, shipping rules and checkout.
Logo & hero imageRecommendedUploaded per organisation; the hero image backs the home banner.
Hero headline & subtitle, AboutRecommendedHome page banner copy and the about block.
Contact phone, WhatsApp, email, addressRequiredShown in the footer and injected into auto-generated policy pages.
Your own domainOptionalLeave blank to stay on the /store/<slug> address.
3. Footer links to policies
  • The storefront footer always links Privacy Policy, Return & Cancellation Policy and Terms & Conditions — you do not add these links manually.
  • They point at /store/<slug>/policy/privacy, /policy/returns and /policy/terms and follow your slug or custom domain automatically.
  • Left blank, each page publishes a standard version built from your store name and contact details — see Store Policy Pages.
  • Razorpay and most gateways require these three pages plus a reachable contact address before approving a live account.
  • The footer also shows your contact phone, WhatsApp and email, so fill those in before going live.
4. Remaining tabs before you go live
  • Catalogue — switch on Publish online for every product you want listed; unpublished products stay hidden.
  • Shipping — pick flat rate, zones or weight slabs, set free-shipping threshold and pickup instructions.
  • Payments — enable Cash on Delivery and/or Razorpay (Key ID plus secret, stored securely and never shown again).
  • Policies — review or replace the three policy pages.
  • SEO — page title (≤60 chars) and meta description (≤160 chars).
  • Finally turn on Make store live, click Save, then Visit and place one test order — it lands in Website → Orders and creates a CRM lead.
The Website module is a paid add-on. Org Admin controls slug, domain, payments and live status; Managers can edit content and catalogue.

Store Policy Pages (Privacy, Returns, Terms)

Every storefront publishes three policy pages that are linked in the website footer and required by payment gateways such as Razorpay. Each organisation gets its own copy.

PagePublic URLCovers
Privacy Policy/store/<slug>/policy/privacyData collected, usage, sharing, payments, retention, contact.
Return & Cancellation Policy/store/<slug>/policy/returnsCancellation window, returns, replacements, refund timelines.
Terms & Conditions/store/<slug>/policy/termsOrdering, pricing & GST, delivery, liability, governing law.
Auto-generation when left blank
  • If a policy box is empty, the public page automatically renders a standard version — the page is never blank or missing.
  • The generated text is personalised with your store name, contact email / phone and address from Website → Settings, so filling those in first produces better copy.
  • Auto-generated text is not stored in the database; it is produced at page load, so it updates instantly when you change your store name or contact details.
  • The moment you type your own text and save, your version replaces the standard one everywhere.
  • Clearing the box again reverts that page back to the auto-generated version.
Where to edit
  1. Open Website → Settings and select the Policies tab.
  2. Edit any of the three boxes: Privacy Policy, Return & Cancellation Policy, Terms & Conditions.
  3. Click Use standard text to drop the auto-generated draft into the box so you can edit it instead of writing from scratch.
  4. Click Save. Changes are live immediately — no republish needed.
  5. Use Preview next to each box (shown once the store is live) to open the public page in a new tab.
Org Admin and Manager can edit policy text. The standard text is a practical starting point, not legal advice — have your own counsel review it before you go live.

Coupons & Discounts

  • Create percentage or flat-amount coupons in Settings → Coupons.
  • Set a validity window, minimum order value, total usage cap and per-customer limit.
  • Apply coupons at POS checkout and on invoices; every use is written to the redemption log.
  • Deactivate a coupon at any time without touching past redemptions.
  • Org Admin and Accountant manage coupons; POS and billing users can only apply them.

Super Admin & Reseller Administration

Super Admin

  • No feature restrictions anywhere in the product.
  • Creates resellers and assigns reseller admins.
  • Creates organisations together with their first Org Admin — the admin's phone, email and initial password are shown in the organisations list.
  • Sets global credit pricing per action (with a full pricing audit trail) and CRM plans with seat limits.
  • Recharges any wallet and reviews the platform-wide credit ledger.

Reseller Admin

  • Owns a group of organisations and provisions new ones with their admins.
  • Recharges organisation wallets from the reseller wallet balance.
  • Sets reseller-specific credit pricing that overrides the global defaults for their organisations only.
  • Views their organisations' users and wallet ledgers — never their business documents.

End-to-End Example: QR → Purchase → Invoice → Ledger

A single realistic scenario for Acme Fabrics Pvt Ltd (Karnataka, GSTIN 29ABCDE1234F1Z5), selling to Blue Retail LLP (Karnataka — intra-state, so CGST + SGST) and buying from Yarn Mills Co (Tamil Nadu — inter-state, so IGST). Wallet balance at the start: 10,000 credits.

1

Receive a Purchase Invoice from the vendor

Role: Org Admin or ManagerCost: 1 credit

Go to Purchases → New, pick vendor Yarn Mills Co (TN), add:

  • Product: Cotton Yarn 40s — 100 kg @ ₹250 (GST 5%, exclusive)

Because the vendor is inter-state, tax mode auto-picks IGST 5%. Totals: Taxable ₹25,000 · IGST ₹1,250 · Grand total ₹26,250. Wallet: 10,000 → 9,999.

2

Generate QR codes for the received stock

Role: Manager or Org AdminCost: 100 credits (1 per QR)

Go to QR → Generate, pick Cotton Yarn 40s, quantity 100. Each 1-kg unit gets its own QR code.

In QR History, filter Status = Unassigned, select all 100 rows → Download QR Codes to get an A4 PDF (24 labels/page, or your default template). Wallet: 9,999 → 9,899.

3

Create a Delivery Challan to the customer

Role: Challan_Operator, Manager, or Org AdminCost: 1 credit

Go to Challans → New, pick Blue Retail LLP. Click Scan QR and scan 40 units off the shelf — the cart increments to 40 with a success beep on each valid scan (a wrong beep + error for already-assigned or unknown IDs).

Save. A challan PDF is generated. Wallet: 9,899 → 9,898.

4

Convert the challan into a Sales Invoice

Role: Manager or Org AdminCost: 1 credit

Open the challan → Convert to Invoice. Because both parties are in Karnataka, tax mode auto-picks CGST 2.5% + SGST 2.5%.

40 kg @ ₹320 (sell price, GST-exclusive) → Taxable ₹12,800 · CGST ₹320 · SGST ₹320 · Grand total ₹13,440. Add E-way bill number if applicable → save → download PDF. Wallet: 9,898 → 9,897.

5

Record payments

Role: Manager or Org AdminCost: Free

On the sales invoice, click Record payment → ₹10,000 today (status flips to Partial). Two weeks later, record the remaining ₹3,440 → status flips to Paid.

On the purchase invoice from Step 1, record ₹26,250 to Yarn Mills → status Paid.

6

Reconcile the Customer Ledger — Blue Retail LLP

Role: Any role (Viewer OK)Cost: Free

Open Parties → Blue Retail LLP → Ledger, pick the date range, click Download PDF (or XLS). Expected rows:

DateTypeReferenceDebitCreditBalance
D1InvoiceINV-00012313,44013,440
D1PaymentPAY-A10,0003,440
D15PaymentPAY-B3,4400

Closing balance ₹0 — customer fully reconciled.

7

Reconcile the Vendor Ledger — Yarn Mills Co

Role: Any role (Viewer OK)Cost: Free

Same flow via Vendors → Yarn Mills Co → Ledger:

DateTypeReferenceDebitCreditBalance
D1PurchasePI-00004526,250-26,250
D3PaymentVP-A26,2500

Closing balance ₹0 — vendor fully reconciled.

8

Verify wallet & credit consumption

Role: Org AdminCost: Free

Open Analytics → Credits and confirm the deduction log:

  • 1 × Purchase Invoice = 1
  • 100 × QR generation = 100
  • 1 × Delivery Challan = 1
  • 1 × Sales Invoice = 1

Total: 103 credits. Wallet: 10,000 → 9,897. Export the transaction log as XLS to attach to your monthly accounting.

Payments and ledger exports are always free. Only chargeable actions (QR, challans, invoices, template creation) touch the wallet. See Credit Pricingfor the exact defaults and per-reseller overrides.

Role-Tailored Walkthroughs

Five end-to-end walkthroughs, one per workflow, each driven by the role that typically owns it. Sample data uses Acme Fabrics Pvt Ltd (KA) with vendor Yarn Mills Co (TN) and customer Blue Retail LLP (KA).

SetupPrimary role: ResellerHandoff: Org Admin
1

Provision the organisation

Role: ResellerCost: Free

Admin → Organisations → New. Name: Acme Fabrics Pvt Ltd, state Karnataka. Auto-creates Org Admin +91 97000 12345 with a shown initial password (copy it).

2

Fund the wallet

Role: ResellerCost: Free

Organisations → Acme → Recharge25,000 credits. The credits move from reseller wallet → organisation wallet with a transaction record.

3

Hand the org to its admin

Role: ResellerCost: Free

Share phone + initial password. Org Admin signs in at /auth, changes password, then proceeds to Master Data walkthrough.

Master DataPrimary role: Org AdminSupport: Manager
1

Add organisation profile

Role: Org AdminCost: Free

Settings → Organisation. Set state Karnataka, GSTIN 29ABCDE1234F1Z5. Under Preferences set Delivery Challan PDF mode to Each quantity separately.

2

Invite team members

Role: Org AdminCost: Free

Settings → Members → New. Add Priya (Manager) +91 98000 00011 and Ravi (Challan Operator) +91 98000 00022. Passwords are auto-generated and shown once.

3

Create custom product fields

Role: Org AdminCost: Free

Products → Custom Fields. Add Batch No (text, required) and Colour (select: Ecru, Dyed, Bleached).

4

Import products via XLS

Role: ManagerCost: Free

Products → Import. Upload a sheet with Cotton Yarn 40s(HSN 5205, UoM kg, GST 5%, ₹250 excl.) and Cotton Yarn 60s (₹320 excl.). Custom-field columns are picked up automatically.

5

Import parties & vendors

Role: ManagerCost: Free

Parties → Import: Blue Retail LLP — Karnataka, GSTIN 29BLURT4567G1Z2, phone +91 88000 11111.
Vendors → New: Yarn Mills Co — Tamil Nadu, GSTIN 33YARNM9999H1Z8.

QR & TraceabilityPrimary role: ManagerSupport: QR Gen Operator, Challan Operator
1

Design a QR label template

Role: Org AdminCost: 10,000 credits

Templates → New. Size 50×30 mm. Add Product Name, SKU, Batch No, QR placeholder centred. Save and mark Default. Wallet: 25,000 → 15,000.

2

Generate serial QR codes

Role: QR Gen OperatorCost: 1 per QR

QR → Generate. Product Cotton Yarn 40s, qty 100. Wallet: 15,000 → 14,900. If wallet drops to ≤ 50, a warning banner appears.

3

Print labels

Role: QR Gen OperatorCost: Free

QR History → filter Status = Unassigned → select all 100 → Download QR Codes renders a PDF using the default template. Print on a thermal printer.

4

Assign at packing

Role: Challan OperatorCost: 1 per challan

Challans → New → party Blue Retail LLP → click Scan QR. Scan 40 physical units. Each success = beep + cart++. Save. Wallet: 14,900 → 14,899.

5

Trace a specific unit

Role: Any org memberCost: Free

Visit /t/<qrId> or paste the last 8 characters into Traceability. Returns product, generation time, assigned party, and challan number. Non-members see a locked screen.

BillingPrimary role: ManagerApprovals: Org Admin
1

Log the purchase

Role: ManagerCost: 1 credit

Purchases → New. Vendor Yarn Mills Co (TN). Line: 100 kg × ₹250 (GST 5%, excl.). Inter-state ⇒ IGST 5% = ₹1,250. Grand total ₹26,250. Save.

2

Draft a Proforma for the customer

Role: ManagerCost: 1 credit

Proforma → New. Party Blue Retail LLP. Line: 40 kg × ₹320. Intra-state ⇒ CGST 2.5% + SGST 2.5%. Grand total ₹13,440. Email PDF to customer.

3

Convert Proforma → Sales Invoice

Role: ManagerCost: 1 credit

Once the customer confirms, open the proforma → Convert to Invoice. All lines and taxes pre-fill. Add E-way bill 121234567890 if applicable → Save → Download PDF.

4

Record part payments

Role: Org AdminCost: Free

On the invoice → Record payment: ₹10,000 today → status Partial. ₹3,440 on D15 → status Paid. Similar for the purchase invoice (₹26,250 → Paid).

5

Close the books

Role: Org AdminCost: Free

Parties → Blue Retail → Ledger and Vendors → Yarn Mills → Ledger→ date range → Download PDF. Both should reconcile to ₹0.

API IntegrationPrimary role: Developer / IntegratorApprovals: Org Admin (key issue)
1

Issue an API key

Role: Org AdminCost: Free

Settings → API Keys → New. Label ERP Sync. Copy the full key trk_live_... once (only shown at creation). Store in the developer's secret manager.

2

Fetch wallet balance (health check)

Role: DeveloperCost: Free
curl https://dc.innosate.com/api/public/wallet \
  -H "x-api-key: trk_live_..."

Returns { balance: 14899, low: false }. Use for readiness alerts.

3

Upsert a product

Role: DeveloperCost: Free
curl -X POST https://dc.innosate.com/api/public/products \
  -H "x-api-key: trk_live_..." -H "content-type: application/json" \
  -d '{"sku":"CY-40","name":"Cotton Yarn 40s","gst_percent":5,
       "price":250,"hsn_code":"5205","unit_of_measure":"kg"}'

Idempotent by SKU. Use during nightly ERP → Trakor sync.

4

Generate QR codes for a batch

Role: DeveloperCost: 1 per QR
curl -X POST https://dc.innosate.com/api/public/qr/generate \
  -H "x-api-key: trk_live_..." -H "content-type: application/json" \
  -d '{"sku":"CY-40","quantity":100}'

Wallet is checked atomically — a shortfall returns 402 Payment Requiredwith no partial charge.

5

Receive a delivery-challan webhook

Role: DeveloperCost: Free

Register your endpoint under Settings → Webhooks. Your handler must verify x-webhook-signature (HMAC-SHA256 with the shared secret) and respond 2xx within 5 s. Sample payload includes challan number, party, and QR ID list.

Roles shown are the typical owner; anyone with an equal-or-higher permission (see Role-Based Instructions) can perform the step.

Credit Pricing

Every chargeable action deducts credits from the organisation wallet. Deduction is atomic — a creation fails cleanly if the wallet is empty. Org Admins can top-up via their reseller.

ActionCostRule key
Generate a QR code1 creditqr_generation
Create a Delivery Challan1 creditchallan_creation
Create a Sales Invoice1 creditinvoice_creation
Create a Proforma Invoice1 creditproforma_creation
Create a Purchase Invoice1 creditpurchase_creation
Create a QR Label Template10,000 creditstemplate_creation
Wallet warnings: at ≤ 50 credits a low-balance banner is shown; at 0 credits chargeable actions are blocked with the message "Recharge Wallet to Generate More QR Codes". Pricing is configurable per platform per reseller (Reseller → Pricing) — values above are the defaults.

Feature Guide

Products

Add/edit/delete products with HSN, UoM, GST %, price inclusive/exclusive. Import via XLS. Custom product fields per organisation.

Parties (Customers)

Name, GSTIN, State, phone + alternative phone, email/contact. Import via XLS. Customer Ledger export (date range, XLS + PDF).

Vendors

Same fields as parties. Vendor Ledger export (date range, XLS + PDF). Used on Purchase Invoices.

QR Generation

Batch-generate QR codes with wallet-based blocking and low-balance warnings.

QR History

Search, filter by date/status/party, sort, paginate, export XLS, and bulk-download PDF (A4, 24 per page or via a custom template).

Delivery Challans

Add items by search or full-screen QR scanner (with beep feedback). Cart persists in local storage.

Traceability

Public lookup at /t/<qrId> — restricted to authenticated organisation members. Supports last-8-char QR suffix search.

Invoices

Sales / Proforma / Purchase with automatic CGST+SGST vs IGST based on states.

Payments

Record part-payments, invoice status auto-syncs (Pending / Partial / Paid).

Ledgers

Customer + Vendor ledgers, date-ranged, XLS and PDF (A4 landscape).

QR Label Templates

Drag-and-drop designer with product fields, custom fields, images, alignment; set default per organisation.

Chat Bot

Login → check wallet → generate QR / Delivery Challan conversationally, keeps download buttons after each action.

Inventory Workflow

Inventory in Trakor is serial-first: each physical unit becomes a QR code that tracks its status (unassigned → in-challan → delivered → in-invoice).

  1. Master products. Products → add name, SKU/HSN, UoM, GST %, price, and toggle price includes GST. Add custom fields (batch, colour, warranty, etc.) that flow into labels and PDFs.
  2. Purchase intake. Purchases → New → pick vendor, add products and quantities. Saving records the purchase invoice and vendor ledger entry.
  3. Generate serial QR codes. QR → Generate → pick a product and quantity to create that many unique QR codes (status: unassigned).
  4. Print labels. QR History → filter → select rows → Download QR Codes. Uses your default template or the built-in 24-per-A4 layout.
  5. Dispatch. Scan the printed QR on Challans → New. Status flips to in-challan, then to delivered once the challan is saved.
  6. Search & audit. Filter QR History by date / status / party, export to XLS, or open Traceability to look up any unit by full ID or last 8 characters.

Tracking & Traceability Workflow

Every QR code carries the product's full history. Use tracking for warranty claims, returns, field service, and dispatch verification.

  1. Scan or type. Open Traceability and either use the camera scanner or enter the last 8 characters of the QR ID (case-insensitive).
  2. Read the trace card. You'll see product details, custom fields, current status, assigned party (if any), source challan / invoice, and full timeline.
  3. Public lookup URL. Every code exposes /t/<qrId>. Access is restricted to authenticated members of the owning organisation.
  4. Bulk verification at dispatch. Use the full-screen scanner on Challans → New: valid scans beep + add to cart, already-assigned or unknown codes give an error beep and stay out of the cart.
  5. Chat bot lookup. Open the chat, sign in, then ask "trace <last-8-chars>" for a quick text summary — useful on the shop floor.

Billing Workflow

The typical customer-facing document chain is Proforma → Delivery Challan → Sales Invoice → Payment. You can start at any step; convert buttons prefill the next document.

  1. Quote (optional). Proforma → New → pick party, add products, save. Series PI-YYYY-######. Download / share PDF with the customer.
  2. Dispatch. Challans → New → scan or search QR codes → save. Series DC-YYYY-######. PDF mode (per-unit rows vs grouped quantity) is set in Settings → Organisation.
  3. Invoice. Open the challan (or the proforma) → Convert to Invoice. All items, HSN, and totals are prefilled. Tax mode is auto-picked:
    • Same state as your organisation → CGST + SGST split evenly.
    • Different state → IGST at the full rate.
    • Product's price includes GST flag decides whether the rate is added on top or reverse-calculated.
  4. Compliance fields. Add E-way Bill number + date and E-invoice IRN / Ack No / Ack Date on the invoice editor. They render on the PDF and export to XLS.
  5. Send the PDF. Use per-row Download or Print from the invoice list — no need to open each invoice.
  6. Record payments. Full or partial. Status auto-syncs (Pending / Partial / Paid), and the amount flows into the customer ledger.
  7. Purchase side. Purchases → New mirrors the sales flow for incoming stock, and posts to the vendor ledger.
  8. Period statements. On any party or vendor row click Ledger, pick a date range, and export XLS or A4-landscape PDF for the customer / auditor.
Each Sales, Proforma, and Purchase invoice consumes 1 credit (configurable). Delivery challans also consume 1 credit each. QR generation is 1 credit per code.

Sales, Proforma & Purchase Invoices

  • Sales Invoice (/invoices) — series INV-YYYY-######, issued to a Party. Optional E-way / E-invoice fields.
  • Proforma Invoice (/proforma) — series PI-YYYY-######, one-click Convert to Invoice.
  • Purchase Invoice (/purchases) — series PUR-YYYY-######, one-click Convert to Proforma or Convert to Invoice.
  • Tax mode is derived automatically: same state = CGST+SGST; different state = IGST.
  • Each list supports search, party/vendor filter, status filter, payment-status filter, date range, column sort, pagination, per-row Download / Print PDF, and XLS export.

Cost: 1 credit per document (configurable).

Payments & Ledgers

  • Record part or full payments on any Sales / Proforma / Purchase invoice from its detail page.
  • paid_amount and payment_status (Pending / Partial / Paid) update automatically via DB triggers.
  • Invoice list has color-coded Payment Status chips and filter.
  • Customer Ledger (Parties → Ledger): date range, opening/closing balance, XLS + PDF.
  • Vendor Ledger (Vendors → Ledger): same, sourced from Purchase Invoices.

Delivery Challans & QR Traceability

  • Generate unique QR codes per unit. Wallet blocks generation at 0; warns at ≤ 50.
  • New Delivery Challan: product search, live camera scanner (full-screen), 8-character QR suffix lookup, cart in local storage.
  • Convert Challan → Sales Invoice in one click; invoice links back to source challan.
  • PDF mode configurable per organisation: single row per unit OR grouped by product with total quantity.
  • Public trace at /t/<qrId>; access restricted to authenticated organisation members.

QR Label Templates

  • Drag-and-drop designer with product fields, custom product fields, uploaded images, and QR placeholder. Horizontal + vertical alignment.
  • Mark one template as default. If none set, built-in 24-per-A4 layout is used.
  • Search, sort, and paginate templates. Duplicate any product for quick variants.
  • Cost: 10,000 credits per new template. Organisations below 10,000 credits are blocked with a clear message.

Point of Sale (POS)

Open /pos from the sidebar. Available to Org Admin, Manager and Challan Operator roles. Each completed sale auto-creates a paid Invoice and deducts the pos_sale_creation credit rule (default: 1 credit) — configurable in Super Admin → Credit Pricing.

Shift lifecycle
  • Open shift with opening cash float. All sales are attributed to the shift.
  • Close shift prints an X/Z report — expected vs counted cash, tender-wise totals, tax collected, sale count.
Cart & checkout
  • Add items by barcode, SKU, QR code (full or last-8), free-text search, or by tapping the product grid.
  • Physical scanners (keyboard-wedge) work out of the box; use the camera icon for phone/tablet scanning.
  • Per-line qty, discount and GST% (respects product price-includes-GST setting).
  • Walk-in customer or select a saved Party — intra-state applies CGST+SGST, inter-state applies IGST.
  • Hold a cart and retrieve later; Refund against a previous sale.
Payments
  • Multi-tender: Cash, UPI, Card, Credit (on account), Wallet. Split any combination.
  • Change due calculated automatically when tendered exceeds total.
Receipts
  • 58 mm and 80 mm thermal PDF receipts; A4 fallback via the created Invoice.
  • Reprint any past receipt from the sale row.

POS Setup Guide

Follow this one-time checklist before your first sale, then use the daily shift routine below. Anything with a ⚙︎ can be revisited later in Settings → Receipt or Products.

1. One-time store setup
  • Organisation profile — set legal name, address, GSTIN and state in Settings → Organisation. State drives intra-state (CGST+SGST) vs inter-state (IGST) automatically.
  • Receipt template ⚙︎Settings → Receipt: header/footer lines, show/hide GSTIN, tax breakup mode (none / summary / CGST+SGST or IGST), online invoice link base URL. Live 58 mm / 80 mm preview.
  • Products — for each SKU set Price, GST %, Price includes GST toggle, opening Stock quantity and (optional) Barcode. Low-stock badges appear on POS tiles.
  • Parties (customers) — add regulars with state and GSTIN so B2B invoices carry the right tax split.
  • Roles — assign staff in Settings → Members: Manager gets discounts / refunds / shift close, Challan Operator can only sell, hold and reprint.
  • Wallet — top up credits; each completed POS sale consumes the pos_sale_creation rule (default 1 credit).
2. Tax settings (how the math works)
  • GST % lives on the product. Change it per line at checkout if needed.
  • Price includes GST = ON → line total is the MRP; tax is extracted (price × rate / (100 + rate)).
  • Price includes GST = OFF → tax is added on top of the price.
  • Intra-state (customer state = org state): tax splits equally into CGST + SGST.
  • Inter-state (different state, or party has GSTIN in another state): full rate goes to IGST.
  • Walk-in customers default to intra-state.
  • Receipt tax breakup is controlled by the tax breakup mode in the receipt template.
3. Opening a shift
  1. Open /pos. If no shift is active you'll be prompted to Open shift.
  2. Count the physical cash in the drawer and enter it as Opening float.
  3. Confirm — the shift is now attributed to you; every sale, refund and tender is tracked against it.
4. Closing a shift & cash reconciliation
  1. Click Close shift (Manager / Org Admin only).
  2. The system shows Expected cash = Opening float + Cash sales − Cash refunds − Cash payouts.
  3. Physically count the drawer and enter Counted cash.
  4. Variance = Counted − Expected. Positive = overage, negative = short. Add a note if it's non-zero.
  5. Confirming closes the shift and locks it. The Z-Report is auto-generated.

From the POS header Reports button (works during or after the shift) download XLSX or branded A4 PDF of:

  • Z-Report — sales totals, tender breakdown, tax collected, opening / expected / counted / variance.
  • Shift reconciliation — every sale with per-tender split for audit.
  • Tender summary — Cash / UPI / Card / Credit / Wallet share with percentages.
5. Daily routine (quick reference)
  1. Open shift → enter opening float.
  2. Sell — scan barcode / QR / search; take multi-tender payment; print 58 or 80 mm receipt.
  3. Hold & retrieve parked carts as needed; refund against past sales when required.
  4. End of day → Reports → download Z-Report → Close shift with counted cash.

Inventory & QR sync happens automatically: completed sales deduct products.stock_quantity and flip scanned units to SOLD; refunds restore both.

POS Workflow Examples

End-to-end walkthroughs for the four most common counter scenarios. All examples assume the shift is already open (see POS Setup Guide).

Example 1 — Fast scan & sell (walk-in, cash)
  1. Focus the search box; scan barcode / QR / SKU with a keyboard-wedge scanner, or tap the camera icon on a tablet.
  2. Each scan adds qty +1 to that line. Scan the same item again to increment, or edit the qty inline.
  3. Leave customer as Walk-in — intra-state CGST + SGST applies automatically.
  4. Tender Cash; if entered amount > total, change due is calculated.
  5. Click Checkout → 58 / 80 mm receipt PDF downloads, invoice is auto-created, stock deducts, scanned QR units flip to SOLD.

Time on counter: ~5 seconds per item.

Example 2 — Line & cart discounts

Two products, apply a line discount to one and a cart-level discount to the bill.

  • Add Product A (₹1,000, 18 % GST inclusive) × 2.
  • Add Product B (₹500, 12 % GST inclusive) × 1.
  • On the A line, set Discount = 10 % → line becomes ₹1,800.
  • In the cart footer, set Bill discount = ₹50 flat.
  • Grand total = ₹1,800 + ₹500 − ₹50 = ₹2,250 (tax is re-extracted from the discounted prices).
  • Split tender: UPI ₹2,000 + Cash ₹250 → Checkout.

Discounts require Manager or Org Admin. Challan Operators see the field disabled with a tooltip.

Example 3 — B2B GST invoice (inter-state IGST)

Registered buyer from a different state, needs a proper tax invoice.

  1. Click Customer → pick the party (or add new with State + GSTIN).
  2. Because buyer’s state ≠ org state, tax auto-switches to IGST.
  3. Scan / add items — for example Widget (₹10,000, 18 % GST, price excl. GST) × 3.
  4. Line totals: Taxable ₹30,000 · IGST 18 % = ₹5,400 · Total ₹35,400.
  5. Tender Credit (on account) if paying later, or Card / UPI now.
  6. Checkout — receipt shows IGST breakup (per receipt template), and a full A4 GST Tax Invoice is created under Invoices with the buyer’s GSTIN, HSN and IGST columns.
  7. Open the invoice to add optional E-way / E-invoice IRN details before dispatch.
Example 4 — Refund against a past sale
  1. POS header → Sales → find the original sale (search by receipt no. / phone / date).
  2. Click Refund. Select which lines and quantities to return (partial refunds supported).
  3. Choose Refund tender — Cash from drawer, back to UPI/Card, or Wallet credit.
  4. Confirm — a Credit Note is issued, stock is added back, and any QR units flip from SOLD back to their previous status.
  5. Refund appears in the Z-Report as negative cash / tender and adjusts the expected drawer at close.

Refunds require Manager or Org Admin. Full refunds cancel the invoice; partial refunds keep the original invoice linked to the credit note.

Example 5 — Hold & retrieve (park a cart)
  1. Customer steps away — click Hold, add an optional label (e.g. “Blue shirt guy”).
  2. Serve the next customer normally.
  3. When they return: Held → pick the cart → resume; scan more items or checkout as usual.

Every completed sale deducts the pos_sale_creation credit rule (default 1) from the wallet. Refunds do not refund credits.

Product Barcodes

Every product supports an optional barcode field (Code128). Leave blank to fall back to the product SKU. A live preview renders inside the add/edit product form.

  • Auto-generate from SKU — no extra setup for basic use.
  • Custom barcode — type or paste any Code128-safe value (e.g. supplier EAN mapped to Code128).
  • Print labels — click Print barcodes on any product row to download an A4 sheet (24 labels, 3 × 8) with product name, barcode and human-readable value.
  • Scan anywhere — POS, Delivery Challan and Traceability all accept barcode input alongside QR codes.
  • No extra credits are consumed for barcode generation or label printing.

Tip: for warehouse pick-and-pack, print barcode sheets for master cartons and keep QR codes on individual serialised units — traceability keeps them linked through the same product record.

Barcode Printing Specs

Reference sheet for anyone printing barcode labels from Trakor. All sheets are generated as PDF at 300 DPI so they scan reliably on both mobile cameras and 1D laser scanners.

Paper & layout
  • Sheet size: A4 portrait — 210 × 297 mm (8.27" × 11.69").
  • Grid: 24-up, 3 columns × 8 rows (matches Avery L7159 / DP24 stock).
  • Label size: 63.5 × 33.9 mm per cell (2.5" × 1.33").
  • Page margins: ~7 mm top / bottom, ~4.5 mm left / right.
  • Gutter: ~2.5 mm horizontal, 0 mm vertical (labels touch top-to-bottom).
  • Bleed / safe area: keep 2 mm inside each cell — nothing critical touches the edge.
  • Print settings: Actual size / 100 % scale, disable “Fit to page” in your PDF viewer; use a laser printer for sharpest bars.
Per-label contents
  • Product name (truncated with ellipsis if too long).
  • Code128 barcode graphic, centered.
  • Human-readable value below the bars (the same string that's encoded).
  • Optional SKU / price line if configured on the product.
Code128 encoding rules
  • Symbology: Code128 auto (A/B/C sub-set switched automatically for shortest bars).
  • Character set: full ASCII 0–127. Avoid non-ASCII / emoji / Indic scripts — they cannot be encoded.
  • Length: 1–48 characters recommended; hard cap 80. Longer strings won’t fit the 63.5 mm cell at scannable density.
  • Numeric strings of even length auto-use Code128-C (double density) — best choice for GTIN-like IDs.
  • Quiet zone: at least 10× the narrowest bar width is padded on both sides — do not overlay artwork on it.
  • Module width (X-dim): ~0.33 mm (≈ 13 mil) at the default cell size — meets GS1 minimum for retail scanning.
  • Bar height: ~10 mm — comfortably above the 15 % of length minimum.
  • Check digit: Code128 modulo-103 is added automatically; do not type it yourself.
  • Reserved chars: avoid leading / trailing whitespace and control characters (TAB, newline) — they break keyboard-wedge scanners.
SKU fallback
  • If a product has no barcode value, printing falls back to the sku.
  • If both are empty, the product ID (short UUID suffix) is encoded so the label is still scannable — but you should set a real SKU.
  • Fallback is transparent to scanners: POS, Delivery Challan and Traceability all resolve barcode → sku → product-id-suffix in that order.
  • When you later add a real barcode, existing labels keep working because the SKU lookup path is preserved.
How to print
  1. Go to Products, use search / filters to narrow the list.
  2. Click Print barcodes on a row (or select multiple and use the bulk action) — a 24-up A4 PDF downloads.
  3. Open in any PDF viewer, print at 100 %, plain-paper or Avery L7159 label stock.
  4. Test-scan one label with the POS camera before running a large batch.

Barcode generation and label printing consume no credits. For serialised / traceable units use QR codes instead — see the QR Templates and Traceability sections.

Troubleshooting: Scanning & Printing

Quick fixes for the most common counter issues. Try items top-to-bottom — they’re ordered by frequency.

Camera / permission issues
  • “Camera permission denied” — the site must be on HTTPS (or localhost). The scanner shows insecure when the origin is plain HTTP.
  • Chrome / Edge: click the lock icon in the address bar → Site settings → set Camera to Allow → reload.
  • Safari (iOS/macOS): Settings → Safari → Camera → Allow for this site. On iOS also check Settings → Privacy → Camera → Safari is ON.
  • Android Chrome: tap ⋮ → Site settings → Camera → Allow. If missing, uninstall/reinstall PWA or clear site data.
  • “No camera found” — another tab / app (Zoom, Meet, OBS) is holding it. Close it and reload.
  • Wrong lens on phone — the header shows the active camera; tap it to switch to the rear/back camera.
  • Fallback: if the camera won’t start, the scanner auto-opens the Manual entry drawer — type or paste the barcode / QR value and press Enter.
Scans not decoding
  • Focus: hold 10–15 cm away; wait for auto-focus. Very close (< 5 cm) rarely decodes.
  • Low light: tap the Torch button (when supported) or move under better lighting.
  • Glare / lamination: tilt the label 10–20° to break the reflection.
  • Damaged / creased barcode: use the manual entry drawer and type the last 8 characters of a QR — the app resolves it via suffix lookup.
  • “Not found” on scan: the QR / barcode isn’t in your org. Check it wasn’t generated under another organisation.
  • “Already assigned”: that QR unit is on another party’s challan or has been sold — see Traceability for its history.
  • Keyboard-wedge scanner types weird chars: set the scanner to US keyboard layout and enable CR (Enter) suffix.
Receipt printing (58 / 80 mm thermal)
  • Nothing prints: the PDF downloads but the printer sits idle → open the PDF once in your OS viewer and set the thermal printer as default; browsers otherwise send it to the last-used printer.
  • Cut off on the right: printer driver page width doesn’t match the template. Pick 58 mm or 80 mm in Settings → Receipt to match your hardware.
  • Prints with huge margins: in the print dialog set Margins = None and Scale = 100 % (disable “Fit to page”).
  • GSTIN / tax breakup missing: toggle them in Settings → Receipt — the live preview shows exactly what will print.
  • Garbled characters: your printer is in ESC/POS raw mode. Use its OS driver (not raw), so PDF prints correctly.
  • Reprint: POS header → Sales → row menu → Reprint. Works for any past sale in this org.
Barcode label sheets (A4 24-up)
  • Labels drift row-by-row: disable “Fit to page” and print at 100 % Actual size. Any scaling breaks the 24-up grid.
  • Barcodes don’t scan: use a laser printer if possible — inkjet bleed thickens bars and lowers contrast. Toner ≥ 600 DPI works best.
  • Wrong stock: the PDF is calibrated for Avery L7159 / DP24 (63.5 × 33.9 mm). Other stocks will misalign.
  • Text truncated: long product names are ellipsised to fit the cell — shorten the name or rely on the barcode below.
  • Non-ASCII in barcode value: Code128 can’t encode emoji / Indic script — the label falls back to SKU. Set an ASCII SKU on the product.
  • Blank / missing barcode: product has no barcode and no sku; fallback uses the product ID suffix. Add a real SKU.

Still stuck? Grab a screenshot plus the browser console (F12 → Console) and send it to support — most scan / print issues are resolved from the log within one message.

POS Offline Mode & Caching

POS keeps a local copy of products and customers on the device so the screen opens instantly instead of waiting for a network round trip.

  • Instant boot — cached products and parties render immediately, with no spinner.
  • Delta sync — only rows changed since the last sync are downloaded, so edits to price, stock, GST% or customer details appear automatically.
  • Deleted rows are removed from the cache on the next sync.
  • Offline — if the internet drops, an offline banner appears and billing continues on cached data.
  • Auto resync — when the connection returns, POS re-syncs in the background.
  • The cache is stored per organisation on that device only; signing into another organisation uses a separate cache.

Sales CRM (Field Force)

Open /crm from the sidebar CRM group. The CRM is a paid add-on — an Org Admin must have an active CRM subscription (see CRM Subscription & Seats). No wallet credits are deducted for CRM actions; only the subscription is charged.

  • Dashboard — who is punched in today, kilometres travelled, visits, meetings and pending follow-ups.
  • Attendance, Visits, Meetings, Follow-ups, Leads, Calendar and Reports tabs.
  • Sales Executive role sees only the CRM — no billing, POS, wallet credits or API docs — and only their own records and assigned leads.
  • Manager / Org Admin see the whole organisation; only Admin and Manager can delete records.
  • Every report supports a date-range filter with Excel/CSV export.

Attendance, GPS Tracking & Party Visits

Daily attendance
  • Punch In / Punch Out captures device location (latitude, longitude, accuracy) at both ends.
  • Day view shows punch-in/out time, hours worked, kilometres travelled, visits and meetings.
  • Managers get an attendance register for all reps with a date filter.
  • If the rep denies location permission the record still saves, flagged no GPS — attendance is never blocked.
GPS pings & kilometres
  • While punched in, the app records periodic location pings (throttled by time and minimum movement).
  • Day-wise distance is computed server-side from consecutive pings, with noise filtering, so the UI and exports always agree.
  • Day-route panel lists pings and visit stops in order; a map preview shows the captured point.
Party visits & meetings
  • Check in at a customer or vendor — GPS is captured at that moment along with distance from the party's saved location.
  • Record purpose, duration, notes and outcome (Order taken / Follow-up needed / No interest / Payment collected) plus an optional next follow-up date.
  • Payments collected on a visit can carry a payment reference and an uploaded receipt image.
  • Meetings can be scheduled against a party or a lead, marked Done / Cancelled with minutes, and can spawn a follow-up.
  • Visits and meetings lists support search, filters (rep, party, date range, outcome), sort and pagination.

Leads, Pipeline & Configurable Stages

  • Kanban board plus a table view with search, filters, sort and pagination.
  • Move a lead with Next / Previous buttons or by dragging it between stages.
  • Lead fields: name, company, phone, email, city/state, source, expected value, expected close date, assigned rep, stage and lost reason.
  • Custom stages — Org Admin can add, rename, reorder or remove stages at /settings/lead-stages. Deleting a stage safely reassigns its leads first.
  • Required fields per stage — a lead cannot enter a stage until its mandatory fields are filled.
  • Stage automation — entering a stage can auto-assign an owner or create a follow-up reminder.
  • Audit log of every stage change, drag-and-drop reschedule and stage-configuration change.
  • Activity timeline on each lead: stage changes, calls, visits, meetings, follow-ups and notes in one chronological view.
  • Convert a Won lead into a Party in one click, then jump straight into a Proforma or Invoice for that customer.
  • CSV / Excel export of leads with the current filters applied.

CRM Calendar & Follow-ups

  • Day and week views at /crm/calendar to plan meetings and party visits.
  • Drag-and-drop rescheduling — move an item to a new day or slot; every change is written to an audit trail (who, when, from, to).
  • Quick-create modal — tap an empty slot to add a meeting, visit or follow-up without leaving the calendar.
  • Follow-ups tie to a lead, party, visit or meeting with due date, channel (Call / WhatsApp / Email / Visit), notes and status (Pending / Done / Overdue).
  • Reminders appear in the header bell so due and overdue items are never missed; overdue rows are highlighted.

CRM Subscription, Seats & Billing

  • Plans and pricing are created centrally; an Org Admin subscribes from /crm/subscription and pays from the wallet.
  • Each plan sets a seat limit — the number of Sales Executive users allowed. Creating a user beyond the limit is blocked with a clear message.
  • Live seat meter shows seats used vs limit, plus the list of users occupying seats (name, phone, joined, last login, active state).
  • Pro-rated upgrades / downgrades — unused time on the current plan is credited back when switching mid-cycle.
  • Grace period — after expiry the CRM stays readable for 7 days with a countdown banner; new records and edits are blocked until renewal.
  • Billing history tab lists every subscription change with the amount charged and payment reference, and a downloadable PDF receipt.
  • A plan can also be activated manually for an organisation by the platform operator.

Organisation, Members & Roles

  • Organisations and their first Org Admin are provisioned by your Reseller.
  • Org Admin manages members (add/edit/delete + assign role + set password), API keys, and QR templates.
  • Roles: Org_Admin, Manager, Challan_Operator, Viewer.
  • Managers can generate QR codes and create challans / invoices. Viewers are read-only.
  • Frozen organisations can neither generate QR codes nor create documents (API returns 403).

API — Authentication

Generate an API key in Settings → API Keys. Pass it on every request via the X-API-KEY header.

Base URL
https://<your-app-domain>/api/public/v1
X-API-KEY: sk_live_your_secret_api_key_here
Content-Type: application/json

Keys are scoped to a single organisation. Revoked or invalid keys return 401 Unauthorized. Frozen organisations return 403 Forbidden.

API — Products

GET/api/public/v1/products?q=&limit=50

Optional q filters by name (ILIKE). limit max 200.

{
  "data": [
    { "id": "9c7a...", "sku": "PRD-00042", "name": "Steel Rod 12mm", "description": null, "price": 450 }
  ]
}
POST/api/public/v1/products
{
  "name": "Steel Rod 12mm",                 // required
  "description": "Construction-grade rebar", // optional
  "price": 450.00                            // optional, default 0
}

Idempotent by name. Existing rows return "created": false.

curl -X POST https://<your-app-domain>/api/public/v1/products \
  -H "X-API-KEY: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"Steel Rod 12mm","price":450}'

API — Parties (Customers)

GET/api/public/v1/parties?q=&limit=50
POST/api/public/v1/parties
{
  "name": "Acme Distributors Pvt Ltd",   // required
  "contact_info": "Ravi | +91 98765 43210 | ravi@acme.in"  // optional
}

Idempotent by name. GET returns id, name, gstin, state, phone, alt_phone, contact_info.

API — Vendors

GET/api/public/v1/vendors?q=&limit=50
POST/api/public/v1/vendors
{
  "name": "Northline Steel Mills",   // required
  "gstin": "27AAAAA0000A1Z5",        // optional
  "state": "Maharashtra",             // optional
  "phone": "+91 98765 43210",         // optional
  "alt_phone": "+91 22 4000 0000",    // optional
  "email": "sales@northline.example", // optional
  "contact_info": "GST + credit terms 30d" // optional
}

Idempotent by name. Use vendors on Purchase Invoices.

curl -X POST https://<your-app-domain>/api/public/v1/vendors \
  -H "X-API-KEY: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"name":"Northline Steel Mills","gstin":"27AAAAA0000A1Z5","state":"Maharashtra"}'

API — CRM Leads (fetch & update)

Read and update CRM leads from any external system. These endpoints use your organisation API key (Settings → API keys) in the X-API-KEY header — different from the intake webhook token, which only creates leads.

GET/api/public/v1/leads?q=&stage=&phone=&email=&updated_since=&limit=50&offset=0

Returns { data: [...], count, limit, offset } ordered by last update. updated_sincetakes an ISO timestamp so you can poll for changes only.

curl "https://<your-app-domain>/api/public/v1/leads?stage=Qualified&limit=20" \
  -H "X-API-KEY: sk_live_xxx"
GET/api/public/v1/leads/<lead_id>
{
  "data": {
    "id": "…",
    "name": "Ravi Sharma",
    "company": "Sharma Industries",
    "phone": "+919876543210",
    "email": "ravi@sharmaind.com",
    "address": "12, MIDC Road", "city": "Pune", "state": "Maharashtra", "pincode": "411026",
    "source": "Google Ads",
    "stage": "Qualified",
    "expected_value": 250000,
    "expected_close_date": "2026-09-15",
    "notes": "Needs 500 QR labels per month",
    "attachments": [{ "name": "Requirement.pdf", "url": "…" }],
    "custom_fields": { "product_interest": "QR labelling" },
    "assigned_to": "…",
    "created_at": "…", "updated_at": "…"
  },
  "activities": [
    { "activity_type": "stage_change", "from_stage": "New", "to_stage": "Qualified", "created_at": "…" }
  ]
}
PATCH/api/public/v1/leads/<lead_id>

Send only the fields you want changed (PUT behaves the same). custom_fields is merged with the existing values, so you can update a single additional field. A stage change is recorded in the lead timeline automatically.

curl -X PATCH https://<your-app-domain>/api/public/v1/leads/<lead_id> \
  -H "X-API-KEY: sk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
        "stage": "Negotiation",
        "expected_value": 350000,
        "notes": "Quote revised after site visit",
        "custom_fields": { "product_interest": "QR labelling + POS" }
      }'

Updatable: name, company, phone, email, address, city, state, pincode, source, stage, expected_value, expected_close_date, notes, lost_reason, custom_fields, assigned_to. Errors: 401 invalid/revoked key, 403 organisation frozen, 404 lead not in your organisation, 400 invalid body.

API — Wallet Balance

GET/api/public/v1/wallet

Poll before bulk operations to avoid mid-batch failures.

{
  "organisation_id": "…",
  "organisation_name": "Acme Steel",
  "wallet_balance": 8420,
  "is_frozen": false,
  "low_balance": false
}
curl https://<your-app-domain>/api/public/v1/wallet \
  -H "X-API-KEY: sk_live_xxx"

API Walkthrough — End-to-End Example

Postman collection

Download the ready-made collection preloaded with the Acme Fabrics sample variables (vendor, party, product, GSTINs, states). Import into Postman, then set host and apiKey at the collection level and run the requests top-to-bottom.

Download Postman collection (.json)
CRM lead intake collection

Separate collection for creating CRM leads from any external system (website form, ads, IndiaMART, your ERP). Covers POST JSON, GET query string, HTML form post, multi-file upload, duplicate-safe updates and signed webhook calls. Import it, then set host and token — the token comes from CRM → Webhooks.

Download CRM lead API collection (.json)

This walkthrough replays the Acme Fabrics scenario using real HTTP requests. Public REST endpoints cover master data (products, parties, vendors) and wallet reads. QR generation, delivery challans, invoices, payments, and ledgers currently run inside the app (buttons in the UI or authenticated createServerFn calls); each step below shows the exact in-app action and the credit it costs, so you can script the API parts and drive the rest from your ERP UI. Replace <host> with your app domain and export your key first:

export TRAKOR_HOST="https://<your-app-domain>"
export TRAKOR_KEY="sk_live_xxx"   # Settings → API keys

Step 1 — Check wallet balance before you start

Poll once so you know a big batch (e.g. 500 QR codes = 500 credits) will not run out mid-way.

curl -s "$TRAKOR_HOST/api/public/v1/wallet" -H "X-API-KEY: $TRAKOR_KEY"

# → { "wallet_balance": 12000, "is_frozen": false, "low_balance": false }

Step 2 — Upsert a vendor (Northline Steel Mills, Maharashtra)

curl -s -X POST "$TRAKOR_HOST/api/public/v1/vendors" \
  -H "X-API-KEY: $TRAKOR_KEY" -H "Content-Type: application/json" \
  -d '{
    "name": "Northline Steel Mills",
    "gstin": "27AAAAA0000A1Z5",
    "state": "Maharashtra",
    "phone": "+91 98765 43210",
    "email": "sales@northline.example"
  }'

# → { "id": "…", "name": "Northline Steel Mills", "created": true }

Step 3 — Upsert a customer party (Acme Retailers, Karnataka)

curl -s -X POST "$TRAKOR_HOST/api/public/v1/parties" \
  -H "X-API-KEY: $TRAKOR_KEY" -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Retailers Bengaluru",
    "contact_info": "Priya | +91 90000 11111 | priya@acme-retail.in"
  }'

GSTIN and State can be set from /parties after creation; the intra-state Karnataka party will pick CGST + SGST automatically at invoice time.

Step 4 — Upsert a product (Cotton Roll 40s, 18% GST)

curl -s -X POST "$TRAKOR_HOST/api/public/v1/products" \
  -H "X-API-KEY: $TRAKOR_KEY" -H "Content-Type: application/json" \
  -d '{
    "name": "Cotton Roll 40s",
    "description": "HSN 5208 · UoM PCS · 18% GST · price exclusive",
    "price": 850
  }'

HSN, UoM, GST % and inclusive/exclusive flag are edited in /products. Once set, they drive tax on every downstream document.

Step 5 — Generate QR codes (in app)

Open QR → Generate, pick Cotton Roll 40s, quantity 100. Costs 100 credits(1 credit per QR). Wallet drops from 12,000 → 11,900. Print fromQR History(select rows → Download QR Codes → A4 PDF, 24 per page).

# Re-check wallet after batch
curl -s "$TRAKOR_HOST/api/public/v1/wallet" -H "X-API-KEY: $TRAKOR_KEY"
# → { "wallet_balance": 11900, ... }

Step 6 — Purchase Invoice from Northline (inter-state, IGST)

Purchases → New: vendor Northline Steel Mills, add Cotton Roll 40s × 100 @ 700. Vendor state (Maharashtra) ≠ org state (Karnataka), so Trakor applies IGST 18%. Costs 1 credit. Wallet: 11,899.

Step 7 — Delivery Challan for Acme Retailers

Challans → New: party Acme Retailers Bengaluru, scan the 100 printed QR labels (each scan beeps and adds qty 1), Save. Costs 1 credit. Wallet: 11,898.

Step 8 — Convert Challan → Sales Invoice (intra-state, CGST+SGST)

Open the saved challan → Convert to Invoice. Karnataka → Karnataka triggers CGST 9% + SGST 9%. Add E-way bill / IRN if applicable, Save. Costs 1 credit. Wallet: 11,897.

Step 9 — Record a partial payment

Open the invoice → Record payment → part-amount (e.g. ₹50,000 of ₹1,00,300). Status flips to Partial on /invoices.

Step 10 — Reconcile the customer ledger

/ledgers→ row action Ledger → pick date range → Download PDF / Export XLS. Debit shows the invoice, Credit shows the payment, running balance = ₹50,300 outstanding. Purchases and payments made appear in the same statement — one ledger per contact.

Credit summary for this walkthrough

StepActionCredits
2–4Master data upserts (vendor, party, product)0
5Generate 100 QR codes100
6Purchase Invoice1
7Delivery Challan1
8Sales Invoice1
9–10Payment + ledger export0
Total103

Rates come from credit_pricing (your Reseller can override defaults). Poll /api/public/v1/wallet before large batches and use/settings/api-keysto rotate the key if it leaks.

HTTP Error Codes

StatusMeaning
400Invalid JSON body or schema validation failed
401Missing, invalid, or revoked X-API-KEY
403Organisation is frozen
500Server error — safe to retry with exponential backoff

Webhook & Push Integration Guide

To push data from your third-party app whenever a product, party, or vendor is created/updated, fire outbound HTTPS requests to the endpoints above. Recommended pattern:

  1. Generate an API key in Settings → API Keys, store as a secret.
  2. Poll GET /wallet before bulk pushes; abort if wallet_balance is too low.
  3. On product.created/product.updatedPOST /products.
  4. On party.created/customer.updatedPOST /parties.
  5. On vendor.created/supplier.updatedPOST /vendors.
  6. Treat HTTP 2xx as success. On 5xx retry with exponential backoff (1s, 5s, 30s, 5m).
  7. All POST endpoints are idempotent by name — safe to re-send.

Bulk import example (Node.js)

const items = await myErp.getProducts();
for (const p of items) {
  await fetch("https://<your-app-domain>/api/public/v1/products", {
    method: "POST",
    headers: {
      "X-API-KEY": process.env.LOVABLE_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      name: p.title,
      description: p.notes,
      price: p.unit_price,
    }),
  });
}