WarrantoraSelf-Hosted Warranty & RMA Register: Expiry and Claims
Self-hosted warranty register: what you sold, when the cover ends, and every claim with the reason for each decision — computed, never stale.
No sign-up, no password — the demo opens already signed in, on sample data.
- Full PHP source included
- Instant download + licence key
- It never phones home
- Compare vs SaaS pricing →
The problem it solves
Warranty is one of the few records a small business is asked to produce under pressure — by a customer who is annoyed, or a supplier who would rather not pay. The answer has to be exact, and it has to still be defensible six months later.
- The register is usually a spreadsheet with an expiry column somebody typed, which stops being true the first time a sale date is corrected
- Claims get decided in email, so the reason a claim was rejected exists only in somebody's memory
- Software that does this properly is priced for manufacturers processing thousands of claims a month; the cheapest price published anywhere in the category is $549/mo
What you get
There is no expiry column on an item and no endpoint that accepts one. Cover is worked out from the sale date and the term every time it is asked. Correct a sale date and every date that depends on it corrects itself.
31 August plus six months is 28 February, not 3 March — the customer does not get three extra days because the calendar is awkward. Twelve fixtures cover the short-month, leap-year and year-boundary edges.
What lapses in 30, 60 and 90 days, and which claims are sitting unassessed — the two questions that actually need answering before the month ends.
Raised, assessed, approved or rejected, resolved. Assess, approve and reject all refuse to save without a written reason — on the form, through the API and through an AI tool alike. A rejection with nothing written on it is the record that cannot be defended later.
A claim raised inside the term stays inside the term however long the assessment takes. Deciding it against today's date would make being slow a way of rejecting claims.
Issued, on its way back, received, closed — with a reference number allocated under a real write lock, so two people saving at the same moment cannot take the same one.
Photographs and documents attached to the claim, byte-sniffed on upload so a file that claims to be a photo has to be one.
A claims CSV, a register CSV, and a warranty certificate PDF per item — the document a customer actually asks for.
Seven MCP tools, every one carrying its own read-only annotation. An agent can look up cover, list what is expiring and raise a claim; voiding a registration, deleting anything and editing the warranty terms are deliberately not exposed — the last because it silently re-dates every item on the term.
- MCP endpoint with read-only or full API keys
- Approving or rejecting additionally requires an administrator key
- Append-only audit trail across browser, API and agent
- Your logo and colours on the certificate
- Scheduled backups with a guided dry-run restore
- Optional single sign-on (OIDC)
The 3.1 wave gave the catalogue a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar subscribes to, attachments filed where the paperwork belongs, and export presets other people's software imports. Every outbound path ships switched off, runs on your own credentials, and can never break the thing that triggered it. This app gained no new outbound path in 3.1 — its pass rewrote the honest-limitations list against the shipped code instead, which is the more useful change when the product was already complete.
See it running — right now, on sample data
No sign-up, no password — it opens already signed in, and resets itself. Click around freely.
Open the live demoIs Warrantora right for you?
Before the price, not after it: what Warrantora deliberately does not do. We publish this on every product because the wrong purchase costs you more than the price.
- One business per installation.
- No customer-facing anything. No portal, no emails, no self-service claim form.
- Editing a warranty term re-dates every item registered under it.
- An item with no sale date has no expiry and is reported as
unknown. The product will not guess. - A claim's in-warranty flag is frozen when it is raised. Correcting the sale date later does not move it — which means a data-entry error found late needs the claim raising again.
- No approval workflow beyond one decision. No multi-signature chain, no escalation, no SLA timer.
- No money. Not the purchase price, not the repair cost, not a refund amount.
- Evidence is stored unencrypted on your disk, behind the login. The backup export covers the database, not the uploaded files.
- English only.
Still the right fit? See the price → · Not sure — see who should stay with the SaaS →
Pricing — one-time, yours forever
- ✔ Full source included — PHP you can read and change
- ✔ No subscription. One payment, yours forever
- ✔ It never phones home
- ✔ Your data stays on your server
- ✔ 14-day refunds — we’d rather refund than argue
- ✔ Offline test suite in the box — run it before you rely on it
- ✔ If we ever stop: after 1 year the domain limit lifts, after 3 years your copy relicenses to MIT — it’s in the licence
Not ready to own it? Ownware Cloud runs selected apps from $12/month — and after 12 paid months the perpetual self-host licence is yours.
Read before you buy — what the zip looks like inside
warrantora/
README.md · QUICKSTART.txt · LICENSE.txt
app/
index.php · router.php · config.sample.php · Dockerfile
src/ the classes — plain PHP 8, no framework, no Composer
controllers/ every route handler
views/ every screen
tests/ the offline test suite — run it yourself: php tests/run.php
bin/ packaging · seeding · maintenance scripts
API.md the REST + webhook + MCP reference
Nothing is obfuscated or encoded. What you read is what runs.
What the same job costs rented
Every figure is read from the vendor’s own pricing page and carries the date it was read.
Essentials $549/mo (up to ~1,000 claims); Professional $849/mo (up to ~2,000 claims); Enterprise quote-gated
1 month of WarrantyHub equals the one-time $79.00.
Source, read 2026-08-22 →Core $800/month, billed annually, including 2,000 tickets a year; Custom is quote-gated
1 month of Claimlane equals the one-time $79.00.
Source, read 2026-08-22 →The full table — every competitor, what each does better than us, and who should stay with them: Warrantora vs renting →
Which licence do I need?
It comes down to how many installations you need. Running your own business on one site is the Single licence. Building or running sites for other people — a second domain of your own, or an installation a client keeps — is the Extended licence.
Single licence
One (1) domain or subdomain
One business, running it on one site.
- Install it on one domain or subdomain you own or operate
- Change the source however you like for that installation
- Run your own business on it commercially, client work included
- Re-download the current build any time from your buyer portal
- A second site, or an installation you hand to a client as theirs, needs the Extended licence
- No reselling, redistributing or sublicensing the source
- Not for offering it to other people as a hosted service
Extended licence
Unlimited sites you own or operate
Agencies, and anyone running it on more than one site.
- Everything the Single licence grants
- Install it on as many domains as you own or operate — no cap on the number
- Build and hand over one installation per client project
- Still no reselling or redistributing the source itself
- Running it as a multi-tenant service others sign up for needs a SaaS agreement
Every download carries the full terms as LICENSE.txt, and the licence you bought is
named on your order and in your buyer portal. The complete wording lives on the
terms page, and the live demo is free for as long
as it takes to decide.
No reviews yet — so here is what we offer instead. Every competitor price on our comparison pages is source-linked and dated, and when a vendor’s price won’t load we say so rather than guess. See the sources for yourself →
After you buy
The four things people ask right before they decide.
Your download link always serves the current build at the time you fetch it — re-download any time from your order page or the buyer portal. No renewal fee to keep what you bought.
Email support for installation and for defects in the code as delivered — a person answers, usually within a day or two. It does not cover custom development or server administration. What support covers →
Refunds are handled by Lemon Squeezy as Merchant of Record, case by case — if something is broken and we can’t fix it, we’d rather refund than argue. EU consumers additionally hold the statutory 14-day right until delivery starts. Refund terms →
Nothing stops. You hold the full PHP source, it runs on your own server, and the software does not phone home — there is no licence check that can fail and no cloud that can be switched off. LICENSE.txt ships inside the zip, so your right to keep running it never depended on this site existing.
Covered in these guides
Why a stored warranty expiry is wrong the first time somebody corrects a sale date, the month-arithmetic trap that quietly gives customers three extra days, which day "in warranty" should be measured against, and what this software costs — two live prices, read 22 August 2026.
Questions about Warrantora
Why not just store the expiry date?
Because it goes stale the moment somebody corrects a sale date or edits a term, and a register whose expiry column disagrees with its own inputs is worse than no register — it is a register that will be quoted at somebody in a dispute. Warrantora computes it instead. The cost is stated plainly: editing a term re-dates every item on it, and the terms page tells you how many that is before you do it.
What happens to a claim if I fix the sale date afterwards?
Nothing. The in-warranty answer is frozen at the date the claim was raised, on purpose. Which means a data-entry error found late needs the claim raising again — that is in the honest-limitations list, not hidden.
Does it handle money?
No. Not the purchase price, not the repair cost, not a refund amount. It is a register and a claim record, and it says so.
Will this run on shared hosting?
Yes. PHP 8+ with PDO, MySQL or SQLite. 24 checks run against MariaDB in strict mode, including the computed expiry coming out identical on both drivers.
Is there a customer portal?
No. No portal, no emails, no self-service claim form. It is the internal register; the certificate PDF is what goes out.
