Skip to main content

Refund orchestration for shops

Refunds decided by policy. Exceptions decided by you.

Lumtry applies your refund policy to every request, asks a person on the close calls, and records every step.

The Lumtry overview dashboard: today's KPI row, cases over time, and the action center with pending refund approvals.

Hours saved, last 30 days

37 h

Refund leakage caught $1,840.00

Recent decisions

  • #40187 · $22.50Damaged, under the auto-approve limitAuto-approved
  • #40192 · $189.00Over the auto-approve limitNeeds approval
  • #40203 · €64.00Outside the 30-day windowDenied
  • Policy v3 pinned
  • 3 signals
  • Model logged
  • Audit row written

Live sample

Watch three refunds get decided.

Three synthetic orders run through the same path your real ones will: policy first, a model signal beside it, a person when the rules ask for one.

Sample data

Damaged

Order #38412

€64.00

  1. Policy

    Policy v3: damage rule matched

  2. AI signal

    AI rationale: matches damage policy, low risk

  3. Outcome

    Approved in Slack, refunded on Stripe

€64.00Refunded

Wrong item

Order #40187

$22.50

  1. Policy

    Policy v3: wrong-item rule matched

  2. AI signal

    AI rationale: matches wrong-item policy, low risk

  3. Outcome

    Approved in Slack, refunded on PayPal

$22.50Refunded

Late delivery

Order #39965

£118.00

  1. Policy

    Policy v3: over the auto-approve limit

  2. AI signal

    AI rationale: exceeds auto-approve limit, escalated

  3. Outcome

    Held for a person, approved in Slack, refunded on Stripe

£118.00Refunded

Four ways refunds leak

What do you want to fix first?

Start with the problem that costs you the most. The rest runs on the same policy, approvals and audit trail.

Refund decisions

Decide every request the same way, and send the close calls to a person.

  • Versioned policy with shadow mode and backtests
  • AI rationale on the gray areas, never above policy
  • Approvals in the dashboard, Slack, helpdesk or by voice

Returns and labels

Get the item back before the money goes out, or decide it does not need to come back.

  • EasyPost and Shippo labels, QR and label-free returns
  • Return-receipt gating and returnless refunds
  • Shopper returns portal, ShipBob and ShipHero sync

Disputes and chargebacks

Answer chargebacks with the record you already have.

  • Evidence assembled from the case record
  • Narrative approved by a person before it goes out
  • Deadline alerts before the response window closes

Retention and abuse

Keep the customers worth keeping, and catch the patterns worth stopping.

  • Retention offers before the refund goes through
  • Abuse Shield scoring and the opt-in fraud network
  • Sentiment and high-risk outcome signals

How it works

Policy decides. AI advises. You stay in charge.

Every refund takes the same path. AI reads the case first and hands the policy engine signals. Your pinned policy makes the call, and a person signs off whenever the rules say so.

  1. 01

    Intake

    Store, marketplace and helpdesk webhooks, the returns portal or the public API.

    Signature verified first

  2. 02

    AI signals

    Classification and sentiment run in parallel, beside abuse-risk, fraud-network and payment-hold checks.

    Advisory only

    Side service

    Model router

    Every AI call goes through one router. It is not a step in the decision.

    Routing today

    • Anthropic
    • OpenAI
    • Mistral

    Not yet cleared

    • Google
    • xAI

    Google and xAI are skipped at route time until their sub-processor review clears.

    • Per-task model assignments by plan
    • Automatic failover to the next vendor
    • Every call logged with model, tokens and cost
    • Prompt-injection screen that fails closed
  3. 03

    Policy engine

    Deterministic rules, first match by priority. The policy version is pinned when the case starts.

    Decides

  4. 04

    Outcome

    One of four paths, never a guess.

    • Auto-approve The rules clear it, so it executes.
    • Human approval Dashboard, Slack or a voice call. The first answer wins.
    • Deny A policy denial ends the run. People can deny too.
    • Manual action Anything unresolved fails closed to a person.
  5. 05

    Execution

    Refund through Stripe or PayPal with an idempotency key.

    Compensation if a step fails

  6. 06

    Audit trail

    Every transition is written to an append-only record with its correlation id.

    Append-only

If AI is off or fails, the outcome is the same. The policy engine decides.

  • Policy decides, AI advises

    Signals feed your rules; they never overrule them. An unavailable model cannot change a decision.

  • Never stuck on one vendor

    Three model vendors route today, with failover between them and a weekly check for retired models.

  • Every step on the record

    The pinned policy version, each state change and who signed off, in one audit trail.

Policy canvas

Built so you stay in control.

Your refund policy lives on a visual rule builder. Every rule is a block you can read, test and version, and nothing reaches a customer until you publish.

Lumtry rule builder: a draft policy version with ten rules, the default outcome and the first rule on the canvas

What you are looking at

  1. Every edit is a new versionYou work on a draft. Published versions never change, and each case stays pinned to the version it started on.
  2. A safe defaultWhen no rule matches, the case gets your default outcome, such as manual review. Nothing slips through unhandled.
  3. Rules are blocksEach rule is conditions plus one outcome. Rules run in priority order, and you drag a block to change it.

Build a rule in three steps

The first rule on the Lumtry canvas: hold high abuse risk for review

Step 1

Start from a signal

Pick what the rule looks at: abuse risk, refund reason, order age, proof of purchase and more.

A Lumtry rule that approves returnless refunds under 15 dollars for damaged or not-as-described items

Step 2

Stack the conditions

Combine amount, currency and the AI classification label with All, Any or Not.

A Lumtry rule that offers store credit for size swaps, above the default outcome

Step 3

Choose the outcome

Auto-approve, send to manual review or offer store credit first, with a default for everything else.

Approve where your team already works

Close calls go to a person. Each approval is checked against the case before anything moves.

  • DashboardThe source of truth for every case.
  • SlackApprove or decline from the message.
  • HelpdeskGorgias and Zendesk notes on the ticket.
  • VoiceAn outbound call for the urgent ones.

Reverse what already happened

Each step that moves money or stock has a matching reversal, so a failure never leaves a case half done.

Lumtry execution trace with each step and its result

Keep an append-only record

Every action writes an audit row with a correlation ID. Nobody can edit or delete it.

Lumtry audit log with correlation IDs

Guarantees

What it will never do.

Some lines are built into Lumtry, not left to settings.

See how on the trust page

Never override your policy

Model output informs a decision. Your published rules make it.

Never store card data

Lumtry keeps processor tokens only, never card numbers.

Never release a hold on model output alone

A held case waits for a person, whatever a model suggests.

Never rewrite history

Audit and webhook records are append-only.

Automations

Works with your stack, and your AI assistant.

An MCP server for AI assistants, a public case API and signed webhooks. Same workspace, same approvals, same audit trail.

MCP server

Your assistant reads cases and proposes decisions. A person approves.

Sample data
  1. Which refunds are waiting on a person today?
  2. Used tool: list_cases

    list_cases {"limit":20}
  3. Three cases are waiting for approval. The oldest is order 10442, reason: arrived damaged, with a carrier scan showing delivery.
  4. Propose manual review for 10442 and cite the carrier scan.
  5. Used tool: propose_decision

    propose_decision {"recommended_decision":"manual_review","confidence":0.72}
  6. Proposed. It is in your approval queue now; a person makes the call.

11 tools: 7 read, 4 propose-only. Proposal tools available on request

Public API

Open a case from your own code. Retries with the same Idempotency-Key never double up.

Sample data
Request
curl -X POST https://<api-host>/public/v1/refund-cases \
  -H "Authorization: Bearer eqk_live_…" \
  -H "Idempotency-Key: ord-10442-refund-1" \
  -H "Content-Type: application/json" \
  -d '{
    "external_order_id": "10442",
    "amount_minor": 4999,
    "currency": "USD",
    "reason": "Arrived damaged",
    "line_items": [{ "line_id": "li_1", "quantity": 1 }],
    "order_country": "US"
  }'
Response
HTTP/1.1 201 Created
X-Correlation-ID: 7c1e9a52-3b0f-4d8e-9a61-2f5c0b7d4e13
X-RateLimit-Remaining: 1199

{
  "refund_case_id": "01J9Z3K4M8Q2V6X0B5N7T1R3Y8",
  "state": "RECEIVED",
  "external_order_id": "10442",
  "amount_minor": 4999,
  "currency": "USD",
  "created_at": "2026-09-24T14:02:11Z"
}

Scoped to one workspace, rate limits by plan

Signed webhooks

13 event types, each signed with HMAC-SHA256 so you can verify it came from Lumtry.

Sample data
A delivery
POST /hooks/lumtry HTTP/1.1
Content-Type: application/json
User-Agent: Equali-Webhooks/1
X-Equali-Delivery-Id: 01J9Z3N6W2D8H4K0P7S5V1X3C9
X-Equali-Event: refund_case.approved
X-Equali-Sequence: 42
X-Equali-Timestamp: 1790258531
X-Equali-Signature: v1=5f2b9d0e…c81e

{
  "created_at": "2026-09-24T14:02:11Z",
  "data": {
    "amount_minor": 4999,
    "currency": "USD",
    "external_order_id": "10442",
    "previous_state": "PENDING_APPROVAL",
    "refund_case_id": "01J9Z3K4M8Q2V6X0B5N7T1R3Y8",
    "state": "APPROVED"
  },
  "id": "01J9Z3N6W2D8H4K0P7S5V1X3C9",
  "sequence": 42,
  "type": "refund_case.approved"
}

Delivered, 200, signature verified

Retries over about 15 hours, then dead-letter

Product demo

See it on your kind of refunds.

One sample case, run live: intake, advisory AI readings, the rule that fired, and the outcome. The full sandbox lets you edit the rules.

Sample data
  1. IntakeRC-1042 · Damaged mug · $38.00
  2. AI readings (advisory)Damaged in transit · 93% confidenceAdvisory
  3. Rule that firedAuto-approve threshold, version 7
  4. OutcomeAuto-approved, return first

Pricing

Pick the plan that fits your volume

Start on Free or a 14-day Growth trial today, no card needed. Paid plans open at launch: reserve a price and we tell you when checkout goes live.

  1. Free

    Policy decisions and a dashboard to try it on real cases.

  2. Starter

    Slack approvals and AI rationale for a growing store.

  3. Growth

    More volume and more channels for a busy support team.

  4. Scale

    Dispute automation and Abuse Shield included.

  5. Enterprise

    Custom terms, SSO and guided onboarding.

Roadmap

See what comes next

What we are building after launch. Nothing here is live today.

Next up

  • ERP and accounting syncPost refunds and credits to the ledger your finance team already closes.Coming soon
  • More regionsAdditional hosting regions, including Azure and managed deployment lanes.Coming soon

Further out

  • Digital goodsRefund decisions for licenses, subscriptions and downloads.Planned
  • Shopper receipt agentShoppers prove purchase through an assistant that proposes, never decides.Planned
  • Bring your own model keyRoute AI tasks through your own provider account.Planned
  • Data residency optionsChoose where case data is stored.Planned
See the full roadmap

Talk to us

Talk to the team building it

Tell us how refunds work at your store today. We read every message.

  1. Tell us what hurts

    Pick the problems that cost you most and describe your use case in your own words.

  2. The team reads it

    The people building Lumtry read every message. It does not go to a ticket queue.

  3. We reply your way

    By email, a call or a video walkthrough of the sample workspace, whichever you picked.

What hurts most today?

Pick all that apply.

A few sentences in your own words: your refund flow today, and what you want off your plate.

Monthly orders
How should we reach you?

A founder replies by email to set up the next step.

Questions

Questions, answered.

The questions merchants ask us most.

Still deciding?

Click through the sample demo, or tell us how refunds work at your store.

Platform

Does AI decide my refunds?

No. Your published policy decides. AI explains gray areas and can recommend, but a case outside the rules goes to a person.

Can I try it without connecting a store?

Yes. The demo workspace has sample cases you can click through, and the Free plan lets you set up a policy before you connect anything.

Which stores and marketplaces does it work with?

Shopify, WooCommerce and BigCommerce stores, plus Amazon and eBay marketplace intake.

Which languages does the dashboard support?

English, French (Canada) and Spanish (US).

Money and approvals

Which payment processors are supported?

Stripe and PayPal. Store credit is issued through the store platform.

What happens if a refund fails partway?

Lumtry runs the compensation for the steps already taken and flags the case, so nothing is left half done.

Can I test a new policy before it goes live?

Yes. Shadow mode runs a new policy beside the live one and shows where the outcomes differ.

Do you store card data?

No. Lumtry stores processor tokens only.

Account and billing

What happens when I hit my plan limit?

New cases are held, not dropped. They wait until you upgrade or the next period starts.

When can I buy a plan?

Checkout opens at launch. Leave your email on the pricing page and we will tell you when it does.

Do you support single sign-on?

Yes. SAML SSO, OIDC and SCIM are available on Scale.

Get started

Put policy on the volume. Keep people on the calls.

Start free, or talk to us about your refund flow.

  • Free plan, no card
  • 14-day Growth trial, no card
  • Demo without an account