Quality Check
Quality Check (QC) lets you define inspection criteria for returned items. When QC is enabled, the rider verifies the item against your rules at the customer's doorstep before accepting the return. This prevents damaged, wrong, or incomplete items from entering the return pipeline.
How It Works
The rider inspects the item at the customer's location before picking it up. The rider app presents your QC questions one by one — the rider records answers, and the system evaluates them against your expected values.
- Pass: All mandatory checks match. Item is picked up normally.
- Fail: One or more mandatory checks don't match. Depending on your configuration:
- Reject on fail (default): Item is not picked up. Order moves to
QC Failedstatus. Failure photos and remarks are captured. - Partial pickup: Item is still picked up but marked as
fail. You receive the QC results via tracking and webhooks to decide next steps.
- Reject on fail (default): Item is not picked up. Order moves to
Defining QC Rules
You define QC rules per SKU when placing an order using the qc_rules array inside sku_details:
Code
| Field | Required | Description |
|---|---|---|
question | Yes | The inspection question shown to the rider |
is_mandatory | Yes | If true, a mismatch on this question fails the entire QC |
value | No | The expected answer. If provided, the rider's response is compared against this |
Key behaviors:
qc_requireddefaults totrue. A SKU with noqc_requiredfield is a SKU with QC on.- If
qc_requiredistruebut noqc_rulesare provided, Shadowfax falls back to your client-level default rules (configured during onboarding). - If
qc_requiredisfalse, QC is skipped entirely for that SKU. - Rules are evaluated in the order they appear in the array.
Checking QC Results
In Tracking Response
The tracking API returns QC results per SKU:
Code
qc_status | Meaning |
|---|---|
passed | Item passed all mandatory QC checks |
fail | Item failed QC |
qc_remarks contains the reason when QC fails (e.g. "Product damaged", "Brand mismatch").
In Webhooks
When QC fails, the webhook payload includes qc_images — photos captured by the rider showing the issue:
Code