Payment Reconciliation
Match every rupee โ Cashfree, marketplaces, POS & COD
๐
Cashfree ยท checkingโฆ
Marketplaces ยท 0 / 4 connected
POS (5 stores) ยท manual sheets only
๐งช
Sample figures. The engine below is live โ every number flows through the real gap + profitability logic. Channel rows are seeded with placeholder MTD figures until each feed (CSV / API) is wired. Wire a feed and its row turns from grey "awaiting" to a live computed gap.
๐ API Connections
Keys live in Netlify env vars ยท probed server-side ยท never in this page
Cashfree ยท checkingโฆ
Shopify ยท checkingโฆ
Uniware ยท checkingโฆ
Bluedart ยท checkingโฆ
PayPal ยท checkingโฆ
Shiprocket ยท checkingโฆ
ICICI bank ยท checkingโฆ
Nykaa ยท Myntra ยท Banks ยท POS โ no API (CSV)
Unreconciled GAP
โน โ
money owed but not in bank
Money in Transit
โน โ
within courier/gateway SLA
Flagged GAPs
โ
channels past SLA
Reconciled ยท FY25-26
โน โ
credited & matched
Net Contribution
โน โ
after fees + ads + COGS
Worst Channel
โ
lowest margin
๐จ Gap Alerts
Every rupee that didn't land where it should โ sorted by size ยท tolerance โน1
๐งฎ Reconciliation Matrix โ every channel
Did we sell it โ should we be paid โ did the bank get it? Any "no" = a gap with a rupee value.
Clean
In transit (within SLA)
GAP โ flag & chase
Awaiting feed
| Channel | Feed | Gross Sales | Expected (net) | Received | Gap โน | Oldest open | Status |
|---|
๐ฐ Profitability โ keep / fix / kill
Contribution margin = Net received โ COGS โ fees/commission โ shipping & RTO โ ad spend (Meta + Google + GL). TDS/TCS excluded (recoverable).
| Channel | Gross | Fees | Ship + RTO | Ad Spend | COGS | Contribution | Margin % | Verdict |
|---|
๐ก
Verdict bands: KEEP โฅ 15% margin ยท FIX 0โ15% (squeeze fees/ads/returns) ยท KILL / REVIEW < 0% (every sale loses money). Tune COGS & ad-spend allocation in Setup. PayPal fees column = cross-border fee (~4.4%) + FX conversion spread (~3-4%); a gap there means PayPal's USDโINR rate undercut the market rate.
Settled (MTD)
โน 0
Upload CSV to populate
Pending Payouts
โน 0
T+1 / T+2 in transit
Unmatched Orders
0
Shopify โ Cashfree mismatch
Fees MTD
โน 0
Gateway + GST
TDS Deducted
โน 0
194-O (1% e-comm)
Refunds / Chargebacks
โน 0 ยท 0
MTD count + value
๐ฅ Upload Cashfree Reports
Export from Cashfree Merchant Dashboard โ Reports โ Settlements / Transactions / Refunds (CSV)
โน๏ธ
Files are parsed locally in your browser โ nothing is uploaded to any server. Reco logic runs client-side.
๐ Orders โ Settlements Match
Auto-match Shopify order IDs to Cashfree cf_order_id / utr
Matched
Pending payout
Unmatched
Refunded
| Date | Shopify Order | Cashfree Txn | Gross | Fees | TDS | Net Settled | UTR / Batch | Status |
|---|---|---|---|---|---|---|---|---|
| No data yet. Upload Cashfree + Shopify CSVs to populate. | ||||||||
๐ Fees / TDS / GST Breakdown
Cashfree โ period: MTD
โน 0
๐ก
Cashfree standard fees: 1.75โ2% + 18% GST for cards/UPI/netbanking. TDS 1% u/s 194-O deducted for sellers with turnover > โน5L.
โฉ๏ธ Refunds & Chargebacks
MTD
Refunds initiated
0 ยท โน 0
Refunds completed
0 ยท โน 0
Refunds pending
0 ยท โน 0
Chargebacks / Disputes
0 ยท โน 0
Refund rate
0.0%
๐ Cashfree API โ Server-Side Integration
Keys stored in Netlify env vars ยท proxied via
/.netlify/functions/cashfree-proxy
๐
Keys never stored in browser. Netlify function holds
CF_APP_ID + CF_CLIENT_SECRET as environment variables; dashboard only calls the proxy.Environment
โ
App ID
โ
API Version
โ
Host
โ
Integration roadmap:
- v1 ยท CSV upload + browser-side reco โ ready
- v2 ยท Netlify function + API keys (env vars) โ live pull โ wiring now
- v3 ยท Scheduled nightly pull โ Firestore cache
- v4 ยท Webhooks for txn / refund / chargeback events
- v5 ยท Auto-match to Shopify via shared order_id โ zero-touch reco
๐๏ธ Multi-channel Revenue & Reconciliation โ FY25-26
Auto-fetched daily 07:00โ08:30 IST ยท Myntra / Nykaa / Cashfree settlements / Bluedart COD remittance / Shopify โ Cashfree recon
Myntra ยท net FY25-26
โ
โ orders
Nykaa ยท net payout FY25-26
โ
โ orders
Cashfree ยท settled FY25-26
โ
โ txns
Bluedart COD ยท remitted FY25-26
โ
โ AWBs
The Loom B2B ยท transferred FY25-26
โ
โ months confirmed
Shiprocket ยท orders ever
โ
โ modules active
TOTAL NET RECEIVED FY25-26
โ
all channels combined
๐ฃ Myntra Partner Portal โ monthly
orders ยท cust paid ยท returns ยท NOD ยท net received
loadingโฆ
๐ฉท Nykaa Fashion โ monthly
orders ยท sales DP ยท payout ยท TDS
loadingโฆ
๐ณ Cashfree PG โ monthly
txns ยท gross ยท settled ยท fees+GST
loadingโฆ
๐ฆ Bluedart COD remittance โ monthly NEFT
NEFT advices ยท AWBs ยท amount
loadingโฆ
๐งต The Loom B2B โ monthly
Statement lines ยท taxable value ยท vendor payout ยท amount transferred
loadingโฆ
๐ Shiprocket โ monthly
Orders ยท gross value ยท COD vs prepaid ยท delivered/RTO
loadingโฆ
๐งพ Vendor invoices โ what THEY bill US (monthly)
Cashfree PG fees ยท Bluedart shipping ยท Shiprocket Apps ยท PayPal ยท others. GST input credit recoverable.
loadingโฆ
๐ฏ Shopify โ Cashfree โ action items
Confirmed matches vs gaps. Chase the red ones with accounts before treating as revenue.
loadingโฆ
๐ฌ Offline POS Reconciliation
5 stores ยท Cash + Card + UPI ยท acquirers: Paytm ยท PNB ยท ICICI
POS Sold
โ
MTD ยท all tenders
Received
โ
cash deposited + settled
Total Gap
โ
sold โ received
Cash Undeposited
โ
leakage risk
Settlement Pending
โ
digital not landed
Flagged Stores
โ
gap > โน1
๐งพ
POS Sales CSV (VasyERP)
store ยท tender ยท amount
๐ณ
Acquirer Settlement CSV
Paytm / PNB / ICICI ยท gross ยท MDR ยท net
๐ฆ
Bank Cash Deposits CSV
store cash โ PNB/ICICI credits
๐ฏ
Reconcile
store ร tender gap
๐ต๏ธ
UPI-diversion watch. A UPI sold > UPI received gap for a store/day is the indirect signal of a payment diverted to a personal number. Direct payer/beneficiary VPA matching needs an Employee Directory (name ยท phone ยท store ยท VPA) kept private (PII โ never in the GitHub-synced repo). Money landing in an employee's personal account is invisible to us; only the reco gap and refund-beneficiary match are detectable.
๐ฆ COD Reconciliation โ Bluedart via Uniware
Uniware OMS (primary COD courier: BlueDart) โ Remittance CSV โ Bank credit
COD Dispatched
โ
MTD
Delivered (cash collected)
โ
โ
In Transit
โ
awaiting delivery
RTO / Cancelled
โ
โ
COD Expected
โ
gross cash at delivery
COD Pending Remittance
โ
not yet credited
๐ต
Bluedart Remittance CSV
AWB โ remittance date โ amount credited
๐ฆ
Bank Statement CSV
UTR credits from Bluedart
๐ฏ
3-Way Match
Uniware โ Bluedart โ Bank
Live COD Shipments (from Uniware)
| AWB | Order # | Dispatch | Delivery | Status | COD โน | Courier | Remittance |
|---|---|---|---|---|---|---|---|
| Click Load COD Shipments above to fetch live data from Uniware. | |||||||
โน๏ธ
Uniware is the source of truth for legs 1-3 (Order โ Dispatched โ Delivered). Bluedart remittance CSV provides leg 4 (courier โ us), bank statement CSV provides leg 5 (money in our account). If the COD table shows 0 rows, click ๐ Inspect Schema to reveal Uniware's actual courier/AWB field names so we can lock the filter.
โ๏ธ Reco Setup
Configure gateways, stores, tolerances
Connected Gateways & Couriers
| Source | Status | Mode | Last Sync / Notes | |
|---|---|---|---|---|
| ๐ณ Cashfree (online PG) | Setup | API (live) | โ | |
| ๐ฆ Uniware (Unicommerce) (OMS) | Setup | API (live) | โ | |
| ๐ต Bluedart (COD courier) | Setup | SOAP + Apigee REST | โ | |
| ๐ Shopify (orders) | Setup | Admin API | โ |
Required Netlify env vars โ
Cashfree:
CF_APP_ID, CF_CLIENT_SECRET, CF_ENV (prod|sandbox)Uniware:
UW_TENANT, UW_USERNAME, UW_PASSWORD, UW_CLIENT_ID, UW_CLIENT_SECRETBluedart:
BD_LICENCE_KEY, BD_LOGIN_ID, BD_CUSTOMER_CODE, BD_ENV (prod|staging), optionally BD_APIGEE_KEY + BD_APIGEE_SECRET for Remittance Advice REST