Keep Shopify. Add WeRefund.
WeRefund reads your Shopify orders and your refund policy, read‑only, and shows WeRefund Verified ✓ on the product page and in the cart.
$0 for the merchant; store access is approved in Shopify when you connect your store.
- Access
- Read-only
read_ordersread_legal_policiesand, for return windows past 60 days of orders,read_all_orders - Orders & refunds
- Webhooks
orders/createrefunds/createplus scheduled re-reads - Policy changes
- Scheduled readsCaptured again for each order WeRefund receives; Shopify has no webhook topic dedicated to policy changes
- Badge
- Product page & cartA theme app extension, no code changes to your theme
How the connection works
Shopify's own install flow: you see what is requested, you approve it, and access stays read-only.
read_ordersYour orders, with their transactions and refunds.read_legal_policiesYour store policies, including the Refund policy.read_all_orders for longer windowsOrders older than Shopify's default window of 60 days, needed when a return window reaches past it — a 60-day window counted from delivery always does. Requested separately, with a justification, and reviewed by Shopify.For an app that serves many stores, Shopify reviews access to the customer data in orders and refunds before granting it, and approves customer name, address, phone and email field by field.
-
01
Start from WeRefund
When you connect your store, you enter your store address in the form
your-store.myshopify.comand WeRefund sends your browser to Shopify. -
02
Approve in Shopify
Shopify shows its permission screen: the data the app can view and the areas of the store it can access. The store owner, or staff with app permissions, approves it. Nothing is read before that approval, and a permission added later is asked for again.
-
03
Back to WeRefund
Shopify returns you to WeRefund. WeRefund checks Shopify's signature (HMAC-SHA256) and the state value it sent, then exchanges the one-time code for an access token that expires after one hour and is renewed with a refresh token valid for 90 days.
-
04
First read, then stay current
Through the GraphQL Admin API, WeRefund reads your store's Refund policy as it stands today — the version verification is based on — and your recent orders with the refunds recorded on them (the last 60 days; older orders need
read_all_orders). From then on, new orders and refunds arrive by webhook, your Refund policy is captured again for each order that reaches WeRefund, and it is read again on a schedule.
What WeRefund reads, and how it stays current
Three things, read-only. Webhooks carry orders and refunds; the policy is captured for each order and read on a schedule.
| What WeRefund reads | From Shopify | How it stays current |
|---|---|---|
| Orders — line items, dates, financial status | orders · read_orders | The orders/create webhook, plus recent orders read again on a schedule |
| Refunds recorded on those orders | Order.refunds · read_orders | The refunds/create webhook, plus recent refunds read again on a schedule |
| Your Refund policy — Shopify has no separate return policy type | Shop.shopPolicies · read_legal_policies | Captured for each order that reaches WeRefund, and read on a schedule. A change to its content or last update is recorded as a new version and verified again |
On Shopify, a webhook can arrive out of order, twice, or not at all. WeRefund
checks each webhook's signature, ignores duplicates, and reads recent data again to catch what a delivery missed,
within the orders Shopify lets it read: the last 60 days, and older orders once
read_all_orders is approved by Shopify. Each time an order reaches WeRefund — when its
orders/create webhook is received, or when a scheduled read records an order a delivery
missed — WeRefund captures your published Refund policy, on top of its regular scheduled check, and that order
keeps the version captured for it. If your store takes payments through Stripe,
PayPal, Adyen, Checkout.com or Airwallex, WeRefund also reads each order's payment and your refund events from that
provider.
Where the badge appears
The WeRefund Verified ✓ badge ships as a Shopify theme app extension. You place it from the theme editor — Add block, then Apps — and save. No code changes to your theme.
It shows no number: the exact terms stay in your policy, and each shopper sees the real deadline after the purchase.
In themes whose product section accepts app blocks (Online Store 2.0).
Where the theme's cart section accepts app blocks.
Switched on under App embeds in the theme editor, limited to the product and cart templates, when a section can't take an app block.
Theme app blocks can't render on checkout pages.
What WeRefund never does
Hold your customers' payments
Shoppers pay through your checkout and your payment provider. WeRefund never holds your customers' payment funds.
Refund in your place
You refund as you do today. WeRefund reads the refunds recorded on your Shopify orders and, if your store takes payments through Stripe, PayPal, Adyen, Checkout.com or Airwallex, the refund events from that provider; it never creates one.
Change your checkout pages
The badge lives on the product page and in the cart; no block is added to checkout pages.
Write to your store data
WeRefund asks Shopify for read permissions only, so its access to your Shopify data is read-only.
Three steps on Shopify
-
01
Create your WeRefund account
$0 setup, $0 monthly fee, $0 processing surcharge.
-
02
Connect your store & payment provider
Choose Shopify, enter your store address and approve read-only access in Shopify. If your store takes payments through Stripe, PayPal, Adyen, Checkout.com or Airwallex, connect that provider too.
-
03
Get Verified
WeRefund reads your Refund policy and verifies it. Once it passes, add the WeRefund Verified ✓ block to your product page and cart from the theme editor.
Add the banner to your theme
Paste it once before the closing body tag: it reads your after-sales score from your WeRefund profile and turns itself off the day verification stops.
<script src="https://js.werefund.com/badge.js" data-store="your-store" data-format="strip" async></script>
Shopify questions
Five payment providers and seven store platforms.
IntegrationsEndpoints, fields and examples, in preview.
API referenceNo code changes. The badge is an app block you add from the theme editor, on the product page and in the cart. On vintage themes, or where a section doesn't accept app blocks, it can be switched on as an app embed instead.
More store platforms
WooCommerce
woocommerce.comReads your orders through the WooCommerce REST API and webhooks, and your return policy page through the WordPress REST API. The badge renders on the product page and in the cart, where your theme's templates allow it.
Store platforms
Magento
magento.comReads your orders, their refunded totals and your return policy page from your Magento store. In Luma and themes that keep its layout containers, the badge renders on the product page and in the cart.
Store platforms
PrestaShop
prestashop.comReads your orders, credit slips and return policy page from your PrestaShop store. In themes that call its two display hooks, the badge renders on the product page and in the cart.
Store platforms
BigCommerce
bigcommerce.comReads your orders, their refunds and your returns policy page from your BigCommerce store. On Stencil themes, the badge renders on the product page and in the cart.
Store platforms
Wix
wix.comReads your orders, their refunds and the Return policy in your Wix checkout settings. The badge renders on the product page and, where your store uses it, in the side cart.
Store platforms
Custom / Headless
WeRefund APIFor a custom or headless store, your orders reach WeRefund through the API, in preview.
Store platforms
Verification, not a migration
Keep your PSP. Add trust.
$0 setup. $0 monthly fee. $0 processing surcharge. Your store, your provider and your merchant account stay as they are.