Skip to content
Robnu
Live for Ajio

Claims that file themselves with the evidence already attached.

Robnu owns the data — the slip, the invoice, the manifest, the AWB, the scan event. Filing a claim is a button. The state machine is auditable. The won path closes the loop into reconciliation automatically. Free during early access — no card.

Free during early access · Forever free under 25 orders/day
app.robnu.com/claims/CLM-7891Claim lifecyclereturn_claims state machine — auditable + idempotentPending60d sweepFiledauto-evidenceAcknowledgedAjio readsWon→ adjustmentEvidence packetPacking slip · pre-attachedCustomer invoiceVendor invoiceManifest PDF + AWBScan event auditResolution₹4,127recovered to MarketplacePayoutadjustment · type=chargeback
TL;DR
  • Returns that aren't received within 60 days auto-promote to claim_pending via the daily sweeper.
  • Filing is one click. The evidence packet is built from the document pipeline + the receive-scan trail.
  • Won claims write a recovery Adjustment to the same MarketplacePayout — closing the loop.

Claims sub-pages.

The state machine

Five states. Append-only audit trail.

return_claims walks five states: pending, filed, acknowledged, resolved-won, resolved-lost. Every transition is a row in return_claim_events with the actor, the reason, and the timestamp. Cancellation and reopening are first-class transitions — the audit log captures them just like the happy path.

  • · The claim sweeper runs at 0 2 * * * (BullMQ).
  • · All seller-realm DB operations stay inside withSellerScope.
  • · return_claim_evidences references StorageObject rows in S3 — never inline blobs.
  • · The kill switch WORKER_ENABLE_CLAIM_SWEEPER guards startup.
app.robnu.com/claims/CLM-7891Claim lifecyclereturn_claims state machine — auditable + idempotentPending60d sweepFiledauto-evidenceAcknowledgedAjio readsWon→ adjustmentEvidence packetPacking slip · pre-attachedCustomer invoiceVendor invoiceManifest PDF + AWBScan event auditResolution₹4,127recovered to MarketplacePayoutadjustment · type=chargeback
FAQ

Honest answers about the claim flow.

The claim sweeper is a daily BullMQ job (queue 'robnu-claim-sweeper') that promotes any OrderReturn with claim_due_at past now and internal_status not in ('received','cancelled') to claim_pending. From there, you (or RobnuAI agents, when enabled) file the claim.

return_claims has a 1:1 link to OrderReturn. return_claim_events is the append-only state-transition log. return_claim_evidences holds the S3-backed evidence attachments. Every transition row carries actor_user_id (or actor_super_admin_id + impersonation_session_id) and the reason.

Packing slip + customer invoice + vendor invoice + manifest PDF + AWB trail + scan event. All of these come straight from the document pipeline and the receive-scan audit — no re-keying, no upload-from-email gymnastics.

claim-service writes a recovery Adjustment of type=chargeback against the original MarketplacePayout. The reconciliation engine re-runs and the payout flips back to RECONCILED. The recovery shows up on the next CSV export to your accountant.

The Adjustment stays in place with type=deduction and is_disputed=true. The lost reason is logged on the return_claim_event row. Reconciliation surfaces lost claims in the periodic ledger so you can spot patterns (e.g., a deduction reason where you're losing 80% of disputes is probably worth accept-loss as a default).

File the next claim with the evidence already attached.

Sign up free. Connect Ajio. Hit File on the next overdue return.

build 547000c1ac5d3ea9cb039864711ed788f9948b69 · 2026-06-12T02:03:58+05:30