Provkeep← Back to the overview

How it works

How Provkeep works, and where it sits in your store

Five steps, in the order they happen, with the states the product actually produces.

You upload a lab result for a lot

A PDF from whoever tested it — your own commissioned testing, or the report your supplier provided. If a report you upload has already been uploaded before, nothing is charged for reading it twice and nothing about the other store is revealed to you, or you to them.

A person checks it before anything is published

The values are read off the document automatically, and then a human at your store confirms they match before any of it becomes public. There is no bulk approve and nothing auto-publishes. A purity figure goes on a live page under your name, in a category where regulators write letters about product claims, so one person clicks once per lot. A result per lot, checked against the report by someone at your store, on a stable URL you link from your product pages.

The lot binds to the orders that shipped it

Each order line records which lot went into the box, so the laboratory result for that lot and the order that carried it stay attached to each other long after the order shipped. That is the link a processor is asking for when they ask what was in the vial.

The consent record is written before the order exists

Consent is validated in WooCommerce before the order row is written. In blocking mode, if it is missing, checkout stops and no order is ever created. Not hidden. Not flagged for review afterwards. Never written.

Log only is the ramp: it records the agreement without refusing the order, so you can confirm nothing breaks before you switch enforcement on. It is an onboarding step and not a setting to leave running — while a store is in it, the dashboard says so on the orders screen, and the catalog and certificates document will not make the claim above.

No order placed through this store's checkout is created without a consent record.

Orders created by other routes do not pass through the checkout: an order keyed in by staff, a subscription renewal, a payment link, an order paid with Apple Pay, Google Pay or another express checkout, an upsell that creates a second order after the first, or an order created through the store's API or command line.

The claim holds for a store whose checkout form renders the gate's field. A theme or page builder that replaces the classic checkout template can omit it, and this store is told when that happens rather than the orders being recorded as though the customer declined. On a Blocks checkout WooCommerce renders the field itself, so a theme cannot omit it.

You produce the document when someone asks

One screen, generated on demand. It lists every product, the lot you are shipping, and the result published for it — and it names what is missing rather than omitting it, because a reader who finds the hole themselves discounts everything else in the file.

One thing it does not answer: “I never received it.” Showing delivery means producing the customer’s full address, and your customers’ addresses are fingerprinted inside your own store before anything reaches us. We cannot hold what we would need. That evidence comes from your carrier account.

Two things we will not state as fact

Acquirers publish a per-dispute assessment for merchants in the excessive tier. That figure is not published anywhere a merchant can check it, so ask yours what theirs is rather than taking a number off a page like this one.

And high-risk processors describing their own onboarding ask for a product list with third-party laboratory results per SKU, which is a practice they describe rather than a rule anyone published. We build for it because they ask for it, not because we can point you at a regulation.

It is a layer under the store you already run

Provkeep touches two surfaces and replaces none. At checkout it records what the customer was shown and accepted. On your product pages it can show the published result for the lot you are shipping, in a position you choose — or nowhere at all, if you would rather display it yourself.

What it is not: not your payment processor, not your store, not your checkout provider, and not your theme. It does not move your shop anywhere, it does not sit between you and your processor, and switching any of those does not touch your records. What Provkeep is and is not is the full list.

Provkeep works with any store that has somewhere to record which lot shipped

That is the whole test. It is not a list of platforms, because the thing that decides whether this works is not what your cart is built on — it is whether your store can say which lot went into a particular box.

On WooCommerce, install the plugin. It reads which lot is currently shipping for each product and binds it to the order at checkout, so the record is made at the point of sale rather than reconstructed afterwards. Nothing to write.

With a developer and a backend, one HTTP call when an order is placed. The API is ordinary JSON over HTTPS and does not know or care what your storefront is built on — a JavaScript front end, a PHP shop, a headless setup, a cart you wrote yourself. You do not need WooCommerce and you do not need the plugin. Read the integration reference — the required fields, what each optional one buys you, the hash vectors to check your implementation against, and a complete request you can paste and run. The whole contract, published, with no form in front of it.

What we cannot serve, and it is not a technical gap

No-code funnel and checkout platforms are outside what we can serve. If your shop is built in a hosted funnel builder or run from a CRM that owns the checkout, and you have no backend of your own, most of those can send us an order perfectly well. The problem is elsewhere: they have nowhere to record which lot was in the box.

Without that, all we could do is guess which lot shipped from whichever one was current at the time. We do that today as a fallback, and we mark it as a guess — because a guess is not a record, and a document that says inferred is not worth sending to a bank. No amount of integration work fixes it, because the information does not exist on their side for us to collect. We would rather tell you no than sell you a record that cannot answer the question you bought it for.

One question tells you whether this works for you

Ask whoever looks after your website: when an order is placed, can we send Provkeep the lot number that went into it? If the answer is yes, this works. If they are not sure, send us the question and we will tell you straight.

The three questions people ask first

Does this touch checkout reliability?

The gate runs inside your own WooCommerce install and never calls us to decide whether an order may proceed. If we are down, slow, or you are behind on a bill, your store keeps selling. The plugin queues what it cannot send and drains the queue later. That is structural, not a service promise.

What happens when I switch processors?

Nothing. Your records are tied to your lots and your orders, not to an acquirer, because the codes a dispute arrives under belong to the card networks rather than to whoever is processing for you this month. The documents are PDFs you or your processor upload to whatever portal you are using. And the catalog and certificates document is built for exactly the moment you are applying somewhere new: a complete product list, with the laboratory result you published for each lot you are shipping, and the ones you have not documented named.

What happens to my evidence if I cancel?

We keep it for 24 months. Closing your account ends your access and your billing. It does not erase your records. Take a final catalog and certificates document with you on the way out, and reopening within that window restores the same account, the same certificates and the same API keys, so your store reconnects without you touching the plugin. Your consent records are append-only: we can delete your data on request as a deliberate, recorded action, but nobody can quietly remove one record, including us.

What starting actually involves

Six steps on WooCommerce: upload the plugin, paste three values, press Test connection. The whole sequence is on one page — all of it readable before you pay, including what happens if your store is not on WooCommerce.

Anything still unanswered goes to support@provkeep.com, which reaches the person who built it.