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.
- 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.
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.
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.
