Returns, for Shopify

It reads your catalogue, then writes your return policy.

Nineteen questions about your products — chosen from your own catalogue, not a fixed form — and it goes live before you finish evaluating the next app.

Watch it read a catalogue →
Customer captureWarehouse capture
Registered · same item
Offset 34.0 px
Unregistered

Drag the plate. Two captures of the same item — one filmed by the customer, one photographed at your warehouse bench — converging into one image. This is what starts running once the policy goes live, minutes after you install. The rest of this page is how it works.

Setup is the app reading your store

It pulls your products from Shopify, works out what you sell, and picks nineteen questions worth asking about it. Then it writes the policy. An apparel store and an electronics store do not get the same questions, because they do not have the same problems.

Sample catalogue
Step 01 · reads
Step 02 · asks
Step 03 · writes

The question selection and the policy text above are produced by the same code that runs your real setup — but the catalogue is a sample. We cannot read your products until you install the app, and we would rather show you the machinery than pretend we already have.

It looks at the item twice, and tells you whether the two agree

A returns system usually records that a return happened. This one records what came back. The same item is captured in three places, and two engines sit between those captures.

Step 01 · at request

The customer films it

A live camera session with a server-issued challenge code, not an uploaded photo. Frames are kept against the return.

verification_frame_urls
Step 02 · at the bench

Your warehouse photographs it

Barcode check-in, condition graded by the person holding it, fault attributed. Photos are kept against the same return.

received_photos
Step 03 · already on file

Your catalogue photo

The product image on your own Shopify listing. Nothing to set up — it is already there the moment you install.

product_image_url
Catalogue → arrival

Is this roughly the right product?

Holds your listing photo against what the bench photographed. It catches something completely different coming back.

LimitIt compares product to product. Your catalogue photo is the product's featured image, not the variant's — so a different colourway is deliberately not a mismatch. It cannot tell two identical units apart.

Customer → warehouse

Did the item that was filmed arrive?

Holds the customer's capture against the bench's. Two points in one journey, compared.

LimitIt has no notion of authenticity. If someone films a counterfeit and ships that same counterfeit, both captures agree and this passes cleanly. It is one narrow consistency signal, not a fraud verdict.

Neither comparison can stop a refund. A disagreement is recorded and shown to you. It does not freeze the money and it does not throw the return into manual review on its own — because lighting, camera angle, and an item simply looking different once it is out of the box all produce disagreement, and holding up an honest customer’s refund over that costs you more than reading a flag does.

Know what actually came back, and whose fault it was

A returns dashboard counts events. It will tell you a hoodie came back. It will not tell you the hoodie came back because it runs small — and that is the number costing you money. Every item that physically arrives is graded by the person holding it, and the loss is attributed.

Restockable

No loss — sellable as-is

Damaged in Transit

Carrier's fault — claimable

Supplier Defect

Arrived faulty from vendor

Customer Abuse

Customer-caused damage

Undetermined

Inspected — cause unclear

Three axes, kept separate

What state it is in, where it goes, and whose fault it was

Three independent questions, recorded independently. Two returns can end in the same place for completely opposite reasons — damaged in transit and damaged by the customer both end up unsellable, and what you should do next is nothing alike. Folding those together throws away the entire point of grading them.

Honest coverage

“Not inspected” is never quietly counted as a cause

Undetermined means someone inspected it and genuinely could not tell. An item nobody has inspected is not filed under that — it is not filed at all, and the surface tells you what share of your returns it can actually speak for. A number that quietly counts silence as an answer is worse than no number.

This is the half that pays you back. Processing returns faster saves you time once. Finding out that one product accounts for a quarter of your supplier defects, or that a carrier is breaking your glassware on a particular lane, changes what you buy and who you ship with — and that saves you the return entirely.

Pick your volume, not your features

Three prices, all of them on this page. The plan you pick changes how many AI verifications you get — never which features you are allowed to have.

Starter
$29/month

150 AI verifications a month

Growth
$99/month

600 AI verifications a month

Scale
$199/month

1,500 AI verifications a month

Everything, on every plan

No feature is held back for a higher tier. There is nothing to unlock and nothing to call us about.

  • Live camera verification with a server-issued challenge code
  • Catalogue and warehouse capture comparisons
  • Warehouse check-in, condition grading and fault attribution
  • Exchanges and cross-product Shop Now, with the difference paid or credited
  • Damage claims with partial-refund resolution
  • Keep-it refunds — refund without asking for the item back
  • The rules engine, with six starting templates
  • Cross-store risk signals, hashed
  • Weighted strikes — an honest mistake counts half, and you set the limit
  • Chargeback evidence packs with a video hash
  • Analytics, product analytics and loss attribution
  • Email, SMS, WhatsApp and web push notifications
  • A returns portal carrying your branding
  • Shopify-native returns, refunds and inventory

What is shared, and what never is

The risk network is worth something precisely because signals cross stores. So the question that matters is not whether data is shared — it is exactly what is shared, and in what form.

Hashed signals, never the person

Cross-store risk signals are SHA-256 hashes of an email, phone, address or device. No email address, no name and no order contents ever leave your store. Another merchant can learn that a hash they are also seeing has a history; they cannot learn who it is.

IP is deliberately worth nothing

Shared office networks and mobile carrier NAT put thousands of unrelated people behind one address, so an IP match scores zero toward risk. It is shown to you as a weak link and never used to decline anyone.

The privacy webhooks are wired, not promised

Shopify's three mandatory topics — data request, customer redaction and shop redaction — are handled, with the signature checked against the raw request body using a timing-safe comparison.

Evidence lives against the return

Camera frames and bench photos are stored on the return they belong to, and chargeback evidence packs carry a hash of the video so the file you submit can be shown to be the file that was recorded.

Full detail in our privacy policy and security overview.

Questions worth asking

No, and it should not. The camera is one of the actions your rules can take, so it fires on the returns you point it at — a high-value order, a category you have been burned on, a customer with history. Most returns never see one. A return that clears your rules gets its label without anyone filming anything.

Install it this afternoon and find out what came back

Fourteen days free. It reads your catalogue as soon as you connect, and you can throw the policy it drafts straight in the bin if you hate it.