๐ŸŸข Live data โ€” growing daily from real users ย โ€ขย  Updated continuously ย โ€ขย  Consumer Rights Act 2015 sec 28 โ€” your right to a refund ย โ€ขย  Free, no signup, no carrier sponsorship ย โ€ขย 
โœ“ Live ยท Free during beta

Add delivery risk scoring to Shopify checkout in 5 minutes.

One <script> tag. No Shopify App approval. No npm install. Works with any theme โ€” Dawn, custom, or headless.

3 steps. Live in 5 minutes.

1
Paste the snippet

Drop one <script> tag into your theme.liquid (or checkout.liquid for Shopify Plus). That's it.

2
We listen for postcode + carrier

The SDK auto-detects when a customer enters a postcode and picks a shipping method. Debounced, lightweight, no PII.

3
You react however you want

High-risk โ†’ upsell photo-proof shipping. Medium โ†’ require signature. Low โ†’ standard. Your business logic, our data.

Step 1 ยท Drop-in snippet

Paste this into your Shopify theme.

Online Store โ†’ Themes โ†’ Edit code โ†’ theme.liquid, just before the closing </body> tag.

html
<!-- WhereIsMyParcel Risk SDK -->
<script src="https://whereismyparcel.uk/wimp-risk.js" defer></script>
<script>
  document.addEventListener("DOMContentLoaded", function () {
    WIMP.attachToCheckout({
      postcodeSelector: "#checkout_shipping_address_zip",
      carrierSelector: "[data-shipping-method]:checked",
      defaultCarrier: "Evri",
      onRisk: function (risk) {
        console.log("[WIMP]", risk);
        if (risk.risk_level === "high") {
          // Show your "upgrade to safer delivery" UI here
          document.dispatchEvent(new CustomEvent("wimp:high-risk", { detail: risk }));
        }
      }
    });
  });
</script>
Other integrations (vanilla JS, cURL, WooCommerce)
Vanilla JS โ€” call directly
javascript
// Or call the API directly
WIMP.checkRisk({ postcode: "M1 2AB", carrier: "Evri" })
  .then(function (risk) {
    // { risk_level, risk_score, failure_rate,
    //   recommended_action, recommended_carrier }
    console.log(risk);
  });
cURL โ€” test the endpoint
bash
curl -X POST https://whereismyparcel.uk/api/risk-check \
  -H "Content-Type: application/json" \
  -d '{"postcode": "M1 2AB", "carrier": "Evri"}'
WooCommerce

Same <script> tag in your theme footer. Adjust the selectors to match WooCommerce's checkout fields (#billing_postcode, input[name='shipping_method[0]']).

Step 2 ยท Response shape

What you get back.

FieldTypeDescription
risk_level"low" | "medium" | "high"Headline classification โ€” what most retailers act on.
risk_scorenumber (0โ€“100)Granular score for advanced rules / A/B tests.
area_complaintsnumberTotal complaints in this postcode area, all carriers.
carrier_complaintsnumberComplaints in this postcode for this carrier.
failure_ratenumber (%)Of resolved complaints in area, what % were lost / damaged / false delivery.
recommended_actionstringPlain-English suggestion for what to do.
recommended_carrierstring | nullIf risk is high, the lowest-complaint alternative carrier in this area.

What retailers do with the score.

๐ŸŸข Low risk
Do nothing

Standard checkout flow. Don't add friction where you don't need to.

๐ŸŸก Medium risk
Suggest photo proof

Show a ยฃ1.50 upsell for photo-proof-of-delivery. ~8% take rate, 100% margin.

๐Ÿ”ด High risk
Switch carrier or require signature

Auto-select a recommended alternative carrier or require signature on delivery to cut chargebacks.

Rate limits & beta terms.

  • โœ“ Free during beta for the first 20 retailers. No credit card.
  • โœ“ 10,000 calls/day per origin during beta.
  • โœ“ No PII collected. We only see postcode + carrier name. No customer names, no emails, no order data.
  • โœ“ ~80ms p95 latency from London. Endpoint is edge-deployed.
  • โœ“ Production pricing kicks in after the beta โ€” see /for-business.

Already integrated? Tell us.

We're tracking which retailers are testing the snippet so we can prioritise the official Shopify App build. Join the early-access list to get a real-time dashboard, webhooks, and the official app the second it ships.

Join the early access list โ†’