Everything you need to run Trakor: feature guide, credit pricing, and a REST API for third-party ERP or e-commerce integrations.
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.
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.
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.
Manage your customer organisations and their credit pricing.
Follow these steps once, in order, to go from a fresh sign-in to printing your first QR label and issuing your first invoice.
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.Settings → Members → add users with role Org_Admin, Manager, Challan_Operator, or Viewer. Share the auto-generated password with each member.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.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.QR → Generate → pick a product and quantity. QR codes appear in QR History; select rows → Download QR Codes for a printable A4 PDF.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.Settings → API Keys → generate an X-API-KEY, then push products / parties / vendors via the REST API (see below).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.
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.
Platform owner. Set global pricing and plans, then create resellers and organisations.
Trakor uses these roles inside your organisation. Each workflow below lists exactly what each role must (or cannot) do.
Manages a group of organisations. Recharges their wallets, sets reseller-specific credit pricing, views their users.
Full control of one organisation: master data, members, templates, challans, invoices, payments, API keys, ledgers.
Day-to-day operations: products, parties, vendors, QR generation, challans, invoices, payments — no member management or API keys.
Field / warehouse user: create Delivery Challans (search or scan QR), view products & parties. Cannot create invoices or edit master data.
Read-only across the organisation. Useful for accountants and auditors.
| Action | Reseller | Org Admin | Manager | Challan_Operator / Viewer |
|---|---|---|---|---|
| Edit organisation details / logo / GSTIN | — | Yes | — | — |
| Recharge wallet credits | Own orgs | Request only | Request only | — |
| Set credit pricing (per reseller) | Own users | — | — | — |
| Invite / remove members, assign roles | — | Own org | — | — |
| Reset a member's password | Own users | Own org members | — | — |
| Action | Reseller | Org Admin | Manager | Challan_Operator / Viewer |
|---|---|---|---|---|
| Add / edit / delete Products | — | Yes | Yes | — |
| Import Products / Parties via XLS | — | Yes | Yes | — |
| Add / edit / delete Parties (customers) | — | Yes | Yes | — |
| Add / edit / delete Vendors | — | Yes | Yes | — |
| Manage custom product fields | — | Yes | — | — |
| View master data | Own users' orgs | Yes | Yes | Yes |
| Action | Reseller | Org Admin | Manager | Challan_Operator / Viewer |
|---|---|---|---|---|
| Design / edit QR Label Templates | — | Yes | — | — |
| Mark a template as default | — | Yes | — | — |
| Generate QR codes (wallet-charged) | — | Yes | Yes | — |
| Bulk-download QR labels (A4 PDF) | — | Yes | Yes | Yes |
| Traceability lookup /t/<qrId> | — | Own org | Own org | Own org |
| Action | Reseller | Org Admin | Manager | Challan_Operator / Viewer |
|---|---|---|---|---|
| Create Delivery Challan (search / scan) | — | Yes | Yes | Yes |
| Create / edit Sales Invoice | — | Yes | Yes | — |
| Create / edit Proforma Invoice | — | Yes | Yes | — |
| Create / edit Purchase Invoice | — | Yes | Yes | — |
| Convert Challan → Invoice | — | Yes | Yes | — |
| Record payments | — | Yes | Yes | — |
| Export Customer / Vendor Ledger (XLS + PDF) | — | Yes | Yes | Yes |
| Delete Invoice / Challan | — | Yes | — | — |
| Action | Reseller | Org Admin | Manager | Challan_Operator / Viewer |
|---|---|---|---|---|
| Generate / revoke API keys | — | Yes | — | — |
| Call REST API (products / parties / vendors / wallet) | — | Own key | — | — |
| Configure webhooks | — | Yes | — | — |
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.
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.
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.
Full control of one organisation: master data, members & passwords, QR templates, billing, POS, CRM subscription, WhatsApp/SMTP, coupons, API keys.
Day-to-day operations across QR, billing, POS and CRM (whole-team view). Cannot manage members, integrations or subscriptions.
Full read plus billing edit rights — invoices, payments, ledgers, coupons, reconciliation — but cannot delete records or manage members.
Challans, invoices, payments and master data for billing. Own CRM records only; no POS, no deletes.
Counter sales only: shifts, sales, refunds, receipts, barcode scanning. Read-only on products and parties.
Warehouse / dispatch: create challans by search or QR scan, print labels, use POS. No member or integration access.
CRM-only user. Sees Sales CRM and profile pages exclusively — every other route is blocked in the app and by database policies.
| Action | Org Admin | Manager | Accountant | Billing Operator | POS Operator | Challan Operator | QR Generator | Sales Executive |
|---|---|---|---|---|---|---|---|---|
| Edit organisation profile, GSTIN, logo, receipt settings | Yes | — | — | — | — | — | — | — |
| Add / edit / delete members, assign roles, set passwords | Yes | — | — | — | — | — | — | — |
| View wallet balance & credit ledger | Yes | Yes | Yes | Yes | View | View | View | — |
| Manage API keys | Yes | — | — | — | — | — | — | — |
| Manage custom product fields | Yes | — | — | — | — | — | — | — |
| Action | Org Admin | Manager | Accountant | Billing Operator | POS Operator | Challan Operator | QR Generator | Sales Executive |
|---|---|---|---|---|---|---|---|---|
| Products — add / edit / import XLS | Yes | Yes | Yes | Yes | View | View | View | — |
| Parties (customers) — add / edit / import XLS | Yes | Yes | Yes | Yes | View | View | View | Own |
| Vendors — add / edit | Yes | Yes | Yes | Yes | — | View | — | — |
| Delete any record | Yes | Yes | — | — | — | — | — | — |
| Action | Org Admin | Manager | Accountant | Billing Operator | POS Operator | Challan Operator | QR Generator | Sales Executive |
|---|---|---|---|---|---|---|---|---|
| Generate QR codes (wallet-charged) | Yes | Yes | — | — | — | — | Yes | — |
| QR History — search, filter, XLS export | Yes | Yes | Yes | Yes | View | Yes | Yes | — |
| Bulk A4 label PDF download | Yes | Yes | Yes | Yes | — | Yes | Yes | — |
| Design QR label templates (10,000 credits / template) | Yes | — | — | — | — | — | — | — |
| Traceability lookup (full ID or last 8 chars) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | — |
| Action | Org Admin | Manager | Accountant | Billing Operator | POS Operator | Challan Operator | QR Generator | Sales Executive |
|---|---|---|---|---|---|---|---|---|
| Create Delivery Challan (search / scan / suffix) | Yes | Yes | Yes | Yes | — | Yes | — | — |
| Convert Challan → Invoice | Yes | Yes | Yes | Yes | — | Yes | — | — |
| Sales / Proforma / Purchase invoices | Yes | Yes | Yes | Yes | — | Yes | — | — |
| Record payments, part-payments | Yes | Yes | Yes | Yes | — | Yes | — | — |
| Customer & vendor ledger export (XLS + PDF) | Yes | Yes | Yes | Yes | — | View | — | — |
| Delete invoice / challan | Yes | Yes | — | — | — | — | — | — |
| Action | Org Admin | Manager | Accountant | Billing Operator | POS Operator | Challan Operator | QR Generator | Sales Executive |
|---|---|---|---|---|---|---|---|---|
| Open shift, sell, refund, print thermal receipt | Yes | Yes | Yes | — | Yes | Yes | Yes | — |
| Close shift & Z-Report | Yes | Yes | Yes | — | Yes | Yes | — | — |
| Stock ledger & POS reconciliation | Yes | Yes | Yes | — | — | — | — | — |
| Analytics dashboard | Yes | Yes | Yes | Yes | — | — | — | — |
| Action | Org Admin | Manager | Accountant | Billing Operator | POS Operator | Challan Operator | QR Generator | Sales Executive |
|---|---|---|---|---|---|---|---|---|
| Open CRM module | Yes | Yes | Yes | Yes | — | — | — | Yes |
| Attendance punch in/out, GPS pings, km travelled | Yes | Yes | View | Own | — | — | — | Own |
| Leads, pipeline stages, follow-ups, meetings, visits | Yes | Yes | View | Own | — | — | — | Own |
| See the whole team's CRM data | Yes | Yes | View | — | — | — | — | — |
| Edit other users' CRM records | Yes | Yes | — | — | — | — | — | — |
| Landing pages, lead webhooks, lead-stage settings | Yes | Yes | — | — | — | — | — | — |
| Manage CRM subscription, plan & seats | Yes | — | — | — | — | — | — | — |
| Action | Org Admin | Manager | Accountant | Billing Operator | POS Operator | Challan Operator | QR Generator | Sales Executive |
|---|---|---|---|---|---|---|---|---|
| Configure WhatsApp API & templates | Yes | — | — | — | — | — | — | — |
| Send WhatsApp message to a lead / party | Yes | Yes | — | — | — | — | — | Yes |
| Configure SMTP, domain wizard, email templates | Yes | — | — | — | — | — | — | — |
| Send email, view delivery & read-tracking log | Yes | Yes | View | — | — | — | — | Own |
| Manage coupons & redemptions | Yes | — | Yes | — | — | — | — | — |
Module-by-module list of every feature currently shipped, where to find it, and which roles can use it.
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Resellers | Admin → Resellers | Create resellers, assign reseller admins, recharge reseller wallets, view their organisations and users. | Super Admin |
| Organisations & first admin | Admin → Organisations | Create 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 pricing | Admin → Pricing | Set the credit cost of every billable action; every change is written to the pricing audit trail. | Super Admin |
| Reseller credit pricing | Reseller → Pricing | Per-reseller overrides applied to that reseller's organisations only. | Reseller Admin |
| CRM plans | Admin → CRM Plans | Define CRM plans: price in credits, seat limit, billing period. | Super Admin |
| Wallet ledger | Admin → Ledger | Every recharge and deduction with reference notes, filterable per organisation. | Super Admin, Reseller Admin |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Products | Products | SKU auto-generation, HSN, UoM, GST %, price inclusive or exclusive of GST, stock, barcode, XLS import. | Org Admin, Manager, Accountant, Billing Operator |
| Product images | Products → Edit → Images | Main image plus multiple gallery images per product, reused on the storefront, labels and PDFs. | Org Admin, Manager, Accountant, Billing Operator |
| Custom product fields | Settings → Product Fields | Organisation-defined extra fields (batch, colour, warranty…) usable on labels and PDFs. | Org Admin |
| Ledgers (customers & suppliers) | Ledgers | One 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 |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| QR generation | QR → Generate | Batch-generate serialized QR codes per product. Blocked at zero wallet credits; low-credit reminder under 50 credits. | Org Admin, Manager, QR Generator |
| QR history | QR → History | Code 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 printing | QR → History → Download QR Codes | Selected rows rendered as an A4 print sheet (24 labels per page) using the default label template. | Same as QR history |
| Label template designer | Settings → QR Templates | Drag-and-drop designer with custom size in mm, fields, logo and a default template flag. 10,000 credits per new template. | Org Admin |
| Traceability | Traceability | Look 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 scanner | Challans → New / POS | Continuous camera scanning with success and error beeps; keeps scanning the next code without leaving the screen. | Challan Operator, Manager, Org Admin, POS Operator |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Delivery challans | Challans → New | Add 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 invoice | Challan → Convert | Creates a sales invoice from the challan lines, carrying QR assignments and payments across. | Billing roles |
| Sales, Proforma & Purchase invoices | Invoices / Proforma / Purchases | Automatic CGST+SGST vs IGST from party state, e-way bill and e-invoice fields, PDF download. 1 credit per invoice. | Billing roles |
| Payments & ledgers | Invoice → Record payment | Part payments flip status to Partial / Paid; customer and vendor ledgers export to XLS and PDF for any date range. | Billing roles |
| Coupons | Settings → Coupons | Percentage or flat coupons with validity window, usage caps and per-customer limits, plus a redemption log. | Org Admin, Accountant |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Counter sales | POS | Barcode / 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-Report | POS → Shift | Open/close shift with cash declaration and end-of-shift Z-Report. | POS roles |
| Offline mode | POS | Products and customers load instantly from local cache, sales queue while offline and sync automatically when the connection returns. | POS roles |
| Stock ledger & reconciliation | Stock Ledger / POS Reconciliation | Every stock movement recorded; reconciliation compares sales, ledger and QR-unit counts to surface variances. | Org Admin, Manager, Accountant |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Subscription & seats | CRM → Subscription | Subscribe 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 & GPS | CRM → Attendance | Punch in/out with location, background location pings, day-wise kilometres travelled and route map. | Sales Executive (own), Manager & Org Admin (team) |
| Visits, meetings, follow-ups | CRM → Visits / Meetings / Follow-ups | Party visit check-ins with GPS, meeting outcomes, and reminders for pending follow-ups. | Sales Executive (own), Manager & Org Admin (team) |
| Leads & pipeline | CRM → Leads | Kanban pipeline with configurable stages, required fields, custom lead fields, deduplication, stage audit trail and CSV export. | Sales Executive (own), Manager & Org Admin (team) |
| Calendar | CRM → Calendar | Day/week planner with drag-and-drop rescheduling and a reschedule audit trail. | Sales Executive, Manager, Org Admin |
| Landing pages | CRM → Landing Pages | Drag-and-drop page builder with a lead capture form, published public URL and per-page conversion analytics. | Org Admin, Manager |
| Lead webhooks | CRM → Webhooks | Public intake endpoint per token with query-parameter to lead-field mapping, HMAC signature verification, replay guard and dedup rules. | Org Admin, Manager |
| Reports | CRM → Reports | Field-force reporting: attendance, kilometres, visit and meeting counts, funnel conversion per executive. | Manager, Org Admin, Accountant (read) |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| WhatsApp API | Settings → WhatsApp | Connect Meta Cloud API or Innosate by API key; reusable templates with variables and media attachments. | Org Admin |
| One-click & bulk WhatsApp | CRM → Lead / Scheduled | Send 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 automation | Settings → Lead Stages | Pick a default template per lead stage; moving a lead sends it automatically. | Org Admin, Manager |
| SMTP email | Settings → Email | Own SMTP host/credentials, guided domain wizard verifying SPF, DKIM and DMARC. | Org Admin |
| Email templates & automations | Settings → Email → Templates | Template studio with a variable palette and merge preview; per-stage and per-event automated sends. | Org Admin |
| Delivery & read tracking | Settings → Email → Log | Per-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 timeline | CRM → Lead detail | Unified activity feed: stage changes, visits, meetings, follow-ups, emails and WhatsApp messages with Read / Delivered / Not read badges. | CRM roles |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Drag-and-drop flows | CRM → Automations | N8N-style canvas: connect trigger, wait, condition and action steps; each step is configurable and flows can be paused or run live. | Org Admin, Manager |
| Triggers | CRM → Automations → Trigger node | lead.created, lead.stage_changed, follow-up due, invoice pending, and scheduled/product-push runs. | Org Admin, Manager |
| Actions | CRM → Automations | Send 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 campaigns | CRM → Automations | Push new, trending or slow-moving products to selected parties/leads; interest replies become leads or direct orders. | Org Admin, Manager |
| Run history | CRM → Automations → Runs | Every execution logged per step with status and error reason for debugging. | Org Admin, Manager, Accountant (read) |
| Payment & ledger reminders | Settings → Reminders | Automatic WhatsApp nudges for pending invoice payments and periodic B2B ledger statements every N days. | Org Admin, Accountant |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Instant storefront | Website → General & design | Publish 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 & shipping | Website → Settings | Razorpay checkout plus zone-based shipping rules, free-shipping thresholds and COD toggle. | Org Admin |
| Orders → leads | Website → Orders | Order list with status updates; every order and enquiry creates a CRM lead automatically. | Org Admin, Manager, Accountant, Billing Operator |
| Custom domain | Website → Your own domain | Map your own domain with the shown CNAME/A records; visitors landing on it go straight to your store. | Org Admin |
| Store policies | Website → Policies | Privacy 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 |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| Add-on catalogue | Admin → Add-ons | Super Admin sets the credit price and billing period of each add-on (Website, POS, CRM…). | Super Admin |
| Subscribe to add-ons | Settings → Add-ons | Organisation subscribes with wallet credits; monthly auto-renewal, cancel anytime, access gated when inactive or unpaid. | Org Admin |
| Feature | Where | What it does | Who can use it |
|---|---|---|---|
| REST API | Settings → API Keys | Key-authenticated endpoints for products, parties, vendors and wallet balance. | Org Admin (keys), Developer |
| Chat bot | Any page | Signs in with phone + password, then shows wallet credits and shortcuts to generate QR codes and documents. | All |
| Mobile drawer navigation | Global | Responsive drawer menu; the whole app is usable on phones in the field. | All |
| Public docs & SEO | /docs | Role quickstarts, searchable index, JSON-LD, sitemap and dynamic OG images. | Public |
{{variables}} and media attachments./api/public/v1/whatsapp-status/<api-key> to capture delivered / read receipts./api/public/v1/lead-intake/<token>.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.
https:// and without a trailing slash.example.com and www.example.com to work, add both at your DNS provider and redirect one to the other.| Type | Name / Host | Value | When to use |
|---|---|---|---|
| A | @ | 185.158.133.1 | Root domain, e.g. example.com |
| A | www | 185.158.133.1 | www.example.com |
| CNAME | shop | the app host shown in Website → Settings | Subdomain, e.g. shop.example.com |
| TXT | _lovable | the verification value shown during setup | Ownership verification |
dnschecker.org./store/<slug> address — confirm the shop, products and cart render there first./policy/privacy to confirm deep links work on the custom host.www).Everything needed to take a storefront live, in the order you should do it. All of it lives under Website → Settings.
/store/<slug>./store/<slug>/product/<id>, /store/<slug>/cart, /store/<slug>/policy/privacy./store/<slug> URL keeps working alongside it.| Setting | Required? | Notes |
|---|---|---|
| Website name | Required | Shown in the header, footer, page titles and auto-generated policy text. |
| Web address (slug) | Required | Must be unique; defines the public URL. |
| Website type | Required | Online store (cart & payment) or Enquiry website (no prices at checkout). |
| Theme & brand colour | Recommended | Drives layout style and accent colour across every page. |
| Currency | Required | Defaults to INR; used for prices, shipping rules and checkout. |
| Logo & hero image | Recommended | Uploaded per organisation; the hero image backs the home banner. |
| Hero headline & subtitle, About | Recommended | Home page banner copy and the about block. |
| Contact phone, WhatsApp, email, address | Required | Shown in the footer and injected into auto-generated policy pages. |
| Your own domain | Optional | Leave blank to stay on the /store/<slug> address. |
/store/<slug>/policy/privacy, /policy/returns and /policy/terms and follow your slug or custom domain automatically.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.
| Page | Public URL | Covers |
|---|---|---|
| Privacy Policy | /store/<slug>/policy/privacy | Data collected, usage, sharing, payments, retention, contact. |
| Return & Cancellation Policy | /store/<slug>/policy/returns | Cancellation window, returns, replacements, refund timelines. |
| Terms & Conditions | /store/<slug>/policy/terms | Ordering, pricing & GST, delivery, liability, governing law. |
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.
Go to Purchases → New, pick vendor Yarn Mills Co (TN), add:
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.
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.
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.
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.
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.
Open Parties → Blue Retail LLP → Ledger, pick the date range, click Download PDF (or XLS). Expected rows:
| Date | Type | Reference | Debit | Credit | Balance |
|---|---|---|---|---|---|
| D1 | Invoice | INV-000123 | 13,440 | — | 13,440 |
| D1 | Payment | PAY-A | — | 10,000 | 3,440 |
| D15 | Payment | PAY-B | — | 3,440 | 0 |
Closing balance ₹0 — customer fully reconciled.
Same flow via Vendors → Yarn Mills Co → Ledger:
| Date | Type | Reference | Debit | Credit | Balance |
|---|---|---|---|---|---|
| D1 | Purchase | PI-000045 | — | 26,250 | -26,250 |
| D3 | Payment | VP-A | 26,250 | — | 0 |
Closing balance ₹0 — vendor fully reconciled.
Open Analytics → Credits and confirm the deduction log:
Total: 103 credits. Wallet: 10,000 → 9,897. Export the transaction log as XLS to attach to your monthly accounting.
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).
Admin → Organisations → New. Name: Acme Fabrics Pvt Ltd, state Karnataka. Auto-creates Org Admin +91 97000 12345 with a shown initial password (copy it).
Organisations → Acme → Recharge → 25,000 credits. The credits move from reseller wallet → organisation wallet with a transaction record.
Share phone + initial password. Org Admin signs in at /auth, changes password, then proceeds to Master Data walkthrough.
Settings → Organisation. Set state Karnataka, GSTIN 29ABCDE1234F1Z5. Under Preferences set Delivery Challan PDF mode to Each quantity separately.
Settings → Members → New. Add Priya (Manager) +91 98000 00011 and Ravi (Challan Operator) +91 98000 00022. Passwords are auto-generated and shown once.
Products → Custom Fields. Add Batch No (text, required) and Colour (select: Ecru, Dyed, Bleached).
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.
Parties → Import: Blue Retail LLP — Karnataka, GSTIN 29BLURT4567G1Z2, phone +91 88000 11111. Vendors → New: Yarn Mills Co — Tamil Nadu, GSTIN 33YARNM9999H1Z8.
Templates → New. Size 50×30 mm. Add Product Name, SKU, Batch No, QR placeholder centred. Save and mark Default. Wallet: 25,000 → 15,000.
QR → Generate. Product Cotton Yarn 40s, qty 100. Wallet: 15,000 → 14,900. If wallet drops to ≤ 50, a warning banner appears.
QR History → filter Status = Unassigned → select all 100 → Download QR Codes renders a PDF using the default template. Print on a thermal printer.
Challans → New → party Blue Retail LLP → click Scan QR. Scan 40 physical units. Each success = beep + cart++. Save. Wallet: 14,900 → 14,899.
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.
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.
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.
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.
On the invoice → Record payment: ₹10,000 today → status Partial. ₹3,440 on D15 → status Paid. Similar for the purchase invoice (₹26,250 → Paid).
Parties → Blue Retail → Ledger and Vendors → Yarn Mills → Ledger→ date range → Download PDF. Both should reconcile to ₹0.
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.
curl https://dc.innosate.com/api/public/wallet \ -H "x-api-key: trk_live_..."
Returns { balance: 14899, low: false }. Use for readiness alerts.
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.
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.
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.
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.
| Action | Cost | Rule key |
|---|---|---|
| Generate a QR code | 1 credit | qr_generation |
| Create a Delivery Challan | 1 credit | challan_creation |
| Create a Sales Invoice | 1 credit | invoice_creation |
| Create a Proforma Invoice | 1 credit | proforma_creation |
| Create a Purchase Invoice | 1 credit | purchase_creation |
| Create a QR Label Template | 10,000 credits | template_creation |
Add/edit/delete products with HSN, UoM, GST %, price inclusive/exclusive. Import via XLS. Custom product fields per organisation.
Name, GSTIN, State, phone + alternative phone, email/contact. Import via XLS. Customer Ledger export (date range, XLS + PDF).
Same fields as parties. Vendor Ledger export (date range, XLS + PDF). Used on Purchase Invoices.
Batch-generate QR codes with wallet-based blocking and low-balance warnings.
Search, filter by date/status/party, sort, paginate, export XLS, and bulk-download PDF (A4, 24 per page or via a custom template).
Add items by search or full-screen QR scanner (with beep feedback). Cart persists in local storage.
Public lookup at /t/<qrId> — restricted to authenticated organisation members. Supports last-8-char QR suffix search.
Sales / Proforma / Purchase with automatic CGST+SGST vs IGST based on states.
Record part-payments, invoice status auto-syncs (Pending / Partial / Paid).
Customer + Vendor ledgers, date-ranged, XLS and PDF (A4 landscape).
Drag-and-drop designer with product fields, custom fields, images, alignment; set default per organisation.
Login → check wallet → generate QR / Delivery Challan conversationally, keeps download buttons after each action.
Inventory in Trakor is serial-first: each physical unit becomes a QR code that tracks its status (unassigned → in-challan → delivered → in-invoice).
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.Purchases → New → pick vendor, add products and quantities. Saving records the purchase invoice and vendor ledger entry.QR → Generate → pick a product and quantity to create that many unique QR codes (status: unassigned).QR History → filter → select rows → Download QR Codes. Uses your default template or the built-in 24-per-A4 layout.Challans → New. Status flips to in-challan, then to delivered once the challan is saved.Traceability to look up any unit by full ID or last 8 characters.Every QR code carries the product's full history. Use tracking for warranty claims, returns, field service, and dispatch verification.
Traceability and either use the camera scanner or enter the last 8 characters of the QR ID (case-insensitive)./t/<qrId>. Access is restricted to authenticated members of the owning organisation. Challans → New: valid scans beep + add to cart, already-assigned or unknown codes give an error beep and stay out of the cart.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.
Proforma → New → pick party, add products, save. Series PI-YYYY-######. Download / share PDF with the customer.Challans → New → scan or search QR codes → save. Series DC-YYYY-######. PDF mode (per-unit rows vs grouped quantity) is set in Settings → Organisation.Purchases → New mirrors the sales flow for incoming stock, and posts to the vendor ledger./invoices) — series INV-YYYY-######, issued to a Party. Optional E-way / E-invoice fields./proforma) — series PI-YYYY-######, one-click Convert to Invoice./purchases) — series PUR-YYYY-######, one-click Convert to Proforma or Convert to Invoice.Cost: 1 credit per document (configurable).
paid_amount and payment_status (Pending / Partial / Paid) update automatically via DB triggers./t/<qrId>; access restricted to authenticated organisation members.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.
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.
pos_sale_creation rule (default 1 credit).price × rate / (100 + rate))./pos. If no shift is active you'll be prompted to Open shift.From the POS header Reports button (works during or after the shift) download XLSX or branded A4 PDF of:
Inventory & QR sync happens automatically: completed sales deduct products.stock_quantity and flip scanned units to SOLD; refunds restore both.
End-to-end walkthroughs for the four most common counter scenarios. All examples assume the shift is already open (see POS Setup Guide).
SOLD.Time on counter: ~5 seconds per item.
Two products, apply a line discount to one and a cart-level discount to the bill.
Discounts require Manager or Org Admin. Challan Operators see the field disabled with a tooltip.
Registered buyer from a different state, needs a proper tax invoice.
SOLD back to their previous status.Refunds require Manager or Org Admin. Full refunds cancel the invoice; partial refunds keep the original invoice linked to the credit note.
Every completed sale deducts the pos_sale_creation credit rule (default 1) from the wallet. Refunds do not refund credits.
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.
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.
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.
barcode value, printing falls back to the sku.barcode → sku → product-id-suffix in that order.Barcode generation and label printing consume no credits. For serialised / traceable units use QR codes instead — see the QR Templates and Traceability sections.
Quick fixes for the most common counter issues. Try items top-to-bottom — they’re ordered by frequency.
localhost). The scanner shows insecure when the origin is plain HTTP.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 keeps a local copy of products and customers on the device so the screen opens instantly instead of waiting for a network round trip.
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.
/settings/lead-stages. Deleting a stage safely reassigns its leads first./crm/calendar to plan meetings and party visits./crm/subscription and pays from the wallet.Org_Admin, Manager, Challan_Operator, Viewer.Generate an API key in Settings → API Keys. Pass it on every request via the X-API-KEY header.
https://<your-app-domain>/api/public/v1X-API-KEY: sk_live_your_secret_api_key_here
Content-Type: application/jsonKeys are scoped to a single organisation. Revoked or invalid keys return 401 Unauthorized. Frozen organisations return 403 Forbidden.
/api/public/v1/products?q=&limit=50Optional q filters by name (ILIKE). limit max 200.
{
"data": [
{ "id": "9c7a...", "sku": "PRD-00042", "name": "Steel Rod 12mm", "description": null, "price": 450 }
]
}/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/public/v1/parties?q=&limit=50/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/public/v1/vendors?q=&limit=50/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"}'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.
/api/public/v1/leads?q=&stage=&phone=&email=&updated_since=&limit=50&offset=0Returns { 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"/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": "…" }
]
}/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/public/v1/walletPoll 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"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.
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.
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 keysPoll 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 }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 }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.
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.
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, ... }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.
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.
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.
Open the invoice → Record payment → part-amount (e.g. ₹50,000 of ₹1,00,300). Status flips to Partial on /invoices.
/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.
| Step | Action | Credits |
|---|---|---|
| 2–4 | Master data upserts (vendor, party, product) | 0 |
| 5 | Generate 100 QR codes | 100 |
| 6 | Purchase Invoice | 1 |
| 7 | Delivery Challan | 1 |
| 8 | Sales Invoice | 1 |
| 9–10 | Payment + ledger export | 0 |
| Total | 103 | |
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.
| Status | Meaning |
|---|---|
400 | Invalid JSON body or schema validation failed |
401 | Missing, invalid, or revoked X-API-KEY |
403 | Organisation is frozen |
500 | Server error — safe to retry with exponential backoff |
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:
GET /wallet before bulk pushes; abort if wallet_balance is too low.POST /products.POST /parties.POST /vendors.name — safe to re-send.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,
}),
});
}