Recurpay Subscription App

Recurpay Subscription App Logo

Built for Shopify

Recurpay Subscription App

Rating

25

%

Recommended

(

2

reviews

)

Pricing

Free to install. Free trial available.

Developer

Launched

2-Nov-21

Recurpay Subscription App Logo

Built for Shopify

Recurpay Subscription App

Rating

25

%

Recommended

(

2

reviews

)

Pricing

Free to install. Free trial available.

Developer

Launched

2-Nov-21

Recurpay Subscription App Logo

Built for Shopify

Recurpay Subscription App

Rating

25

%

Recommended

(

2

reviews

)

Pricing

Free to install. Free trial available.

Developer

Launched

2-Nov-21

Go to subscription app for growing brands: powerful features, 24/7 human support, & setup in minutes

Growing brands deserve powerful subscription features without paying a fortune or settling for bot support. Recurpay gives you a self-serve portal, smart dunning, flexible billing, prepaid plans, and white-glove migration, all backed by real 24/7 human support on every plan, not bots, not tickets, real experts who answer even at 2am. We grow, only when you grow :)

Categories:

Subscriptions, Payment options - Other

Integrations:

Customer accounts, Shopify POS, Shopify Flow, Authorize.net, Klaviyo, Flow, Ecomposer, Subscriptions, Pagefly, Easy Bundle, Qikify, Paypal, UpPromote, MBC Bundle, Stripe subscriptions app, Translate & Adapt, Checkout

Customer accounts, Shopify POS, Shopify Flow, Authorize.net, Klaviyo, Flow, Ecomposer, Subscriptions, Pagefly, Easy Bundle, Qikify, Paypal, UpPromote, MBC Bundle, Stripe subscriptions app, Translate & Adapt, Checkout

Languages:

English

English

Filter Reviews

Operator reports

25

%

Recommended

(

2

reviews

)
Photo of Reviewer Hiren S.

Hiren S.

Role:

Owner

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Neutral

Apr 24, 2026

Years of use:

2-3 years

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

Recurpay provides a straightforward and easy-to-implement subscription setup for Shopify stores. The onboarding process is relatively simple, and it covers the core functionality needed to launch subscription-based products, including recurring billing and basic customer management. It works well for small to mid-sized stores looking to quickly introduce subscriptions without heavy customization. The UI is clean and easy to navigate for both merchants and customers.

What was disappointing

The app feels somewhat limited when handling more advanced subscription use cases such as flexible bundling, hybrid carts, or complex pricing logic. Customization options for both the frontend and backend workflows are not as robust compared to more mature subscription platforms. Additionally, deeper integrations with Shopify’s newer features (like Functions and Checkout Extensibility), along with improved analytics and customer lifecycle insights, would significantly enhance its value for scaling brands.

Photo of Reviewer Hiren S.

Hiren S.

Role:

Owner

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Neutral

Apr 24, 2026

Years of use:

2-3 years

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

Recurpay provides a straightforward and easy-to-implement subscription setup for Shopify stores. The onboarding process is relatively simple, and it covers the core functionality needed to launch subscription-based products, including recurring billing and basic customer management. It works well for small to mid-sized stores looking to quickly introduce subscriptions without heavy customization. The UI is clean and easy to navigate for both merchants and customers.

What was disappointing

The app feels somewhat limited when handling more advanced subscription use cases such as flexible bundling, hybrid carts, or complex pricing logic. Customization options for both the frontend and backend workflows are not as robust compared to more mature subscription platforms. Additionally, deeper integrations with Shopify’s newer features (like Functions and Checkout Extensibility), along with improved analytics and customer lifecycle insights, would significantly enhance its value for scaling brands.

Photo of Reviewer Emi K.

Emi K.

Role:

E-commerce Manager

Category:

Health & Beauty

Shopify Plan:

Plus

Overall satisfaction

Not Satisfied

Jun 16, 2025

Years of use:

1-2 years

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

Customer service is exceptionally fast and good. Relatively easy to set up & integration with Shopify

What was disappointing

Missing a lot of functions as well when it comes to customization of content, plans, shipping set up, etc. or even if you can, it takes more effort & creative manuevering than it should

Photo of Reviewer Emi K.

Emi K.

Role:

E-commerce Manager

Category:

Health & Beauty

Shopify Plan:

Plus

Overall satisfaction

Not Satisfied

Jun 16, 2025

Years of use:

1-2 years

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

Customer service is exceptionally fast and good. Relatively easy to set up & integration with Shopify

What was disappointing

Missing a lot of functions as well when it comes to customization of content, plans, shipping set up, etc. or even if you can, it takes more effort & creative manuevering than it should

Related Apps

import * as React from "react" type Props = { name: string slug: string description: string image: string developer: string categories: string pricing: string launchedAt: string dateModified: string ratingValue: number ratingCount: number faqQ1: string faqA1: string faqQ2: string faqA2: string faqQ3: string faqA3: string faqQ4: string faqA4: string faqQ5: string faqA5: string } export function SchemaMarkup(props: Props) { const { name, slug, description, image, developer, categories, pricing, launchedAt, dateModified, ratingValue, ratingCount, faqQ1, faqA1, faqQ2, faqA2, faqQ3, faqA3, faqQ4, faqA4, faqQ5, faqA5 } = props const scriptContent = ` (function () { var ORIGIN = window.location.origin; var SAT = { "Very Satisfied": 100, "Neutral": 50, "Not Satisfied": 0 }; var AGG_NOTE = "Percentage of vetted Shopify merchants and agency operators who recommend this app, based on first-party reviews collected by app store research."; function read(root, key) { if (!root) return ""; var el = root.querySelector('[data-k="' + key + '"]'); return el ? el.textContent.trim() : ""; } function iso(v) { if (!v) return null; var d = new Date(v); return isNaN(d) ? null : d.toISOString().slice(0, 10); } function notes(text) { return { "@type": "ItemList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": text }] }; } var root = document.getElementById("asr-seo-data"); if (!root) return; var NAME = read(root, "name"); var SLUG = read(root, "slug"); if (!NAME || !SLUG) return; var PAGE_URL = ORIGIN + "/shopify-app-reviews/" + SLUG; function collectReviews() { var out = []; Array.prototype.forEach.call( document.querySelectorAll(".asr-review-seo"), function (n) { var author = read(n, "author"); var pos = read(n, "positive"); var neg = read(n, "negative"); if (!author || (!pos && !neg)) return; var r = { "@type": "Review", "author": { "@type": "Person", "name": author }, "itemReviewed": { "@id": PAGE_URL + "#app" } }; var d = iso(read(n, "date")); if (d) r.datePublished = d; var s = read(n, "satisfaction"); if (s && SAT.hasOwnProperty(s)) { r.reviewRating = { "@type": "Rating", "ratingValue": String(SAT[s]), "bestRating": "100", "worstRating": "0", "alternateName": s }; } if (pos) r.positiveNotes = notes(pos); if (neg) r.negativeNotes = notes(neg); out.push(r); } ); return out; } function buildGraph(reviews) { var app = { "@type": "SoftwareApplication", "@id": PAGE_URL + "#app", "name": NAME, "url": PAGE_URL, "applicationCategory": "BusinessApplication", "operatingSystem": "Web (Shopify)" }; var v; if ((v = read(root, "description"))) app.description = v; if ((v = read(root, "image"))) app.image = v.replace(/&/g, "&"); if ((v = read(root, "developer"))) app.author = { "@type": "Organization", "name": v }; if ((v = read(root, "categories"))) app.keywords = v; if ((v = read(root, "pricing"))) { app.offers = { "@type": "Offer", "price": "0", "priceCurrency": "USD", "description": v }; } if ((v = iso(read(root, "launchedAt")))) app.datePublished = v; if ((v = iso(read(root, "dateModified")))) app.dateModified = v; if (reviews.length) app.review = reviews; var rv = read(root, "ratingValue"); var rc = parseInt(read(root, "ratingCount"), 10); if (reviews.length && rv && rc > 0) { app.aggregateRating = { "@type": "AggregateRating", "ratingValue": String(parseFloat(rv)), "bestRating": "100", "worstRating": "0", "ratingCount": String(rc), "description": AGG_NOTE }; } var graph = [app]; var faq = []; for (var i = 1; i <= 5; i++) { var q = read(root, "faqQ" + i); var a = read(root, "faqA" + i); if (q && a) { faq.push({ "@type": "Question", "name": q, "acceptedAnswer": { "@type": "Answer", "text": a } }); } } if (faq.length) { graph.push({ "@type": "FAQPage", "@id": PAGE_URL + "#faq", "mainEntity": faq }); } graph.push({ "@type": "BreadcrumbList", "@id": PAGE_URL + "#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": ORIGIN + "/" }, { "@type": "ListItem", "position": 2, "name": "Shopify App Reviews", "item": ORIGIN + "/shopify-app-reviews" }, { "@type": "ListItem", "position": 3, "name": NAME, "item": PAGE_URL } ] }); return graph; } function build() { var reviews = collectReviews(); var old = document.getElementById("asr-jsonld"); if (old && old.dataset.count === String(reviews.length)) return; if (old) old.remove(); var s = document.createElement("script"); s.type = "application/ld+json"; s.id = "asr-jsonld"; s.dataset.count = String(reviews.length); s.textContent = JSON.stringify({ "@context": "https://schema.org", "@graph": buildGraph(reviews) }); document.head.appendChild(s); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", build); } else { build(); } [300, 900, 2000].forEach(function (ms) { setTimeout(build, ms); }); })(); ` return ( <> {/* HIDDEN DIV – provjeri da li je ID tačan */} {/* SCRIPT TAG – OBAVEZNO zatvoren */} </> ) } SchemaMarkup.defaultProps = { name: "Naziv aplikacije", slug: "slug-aplikacije", description: "", image: "", developer: "", categories: "", pricing: "", launchedAt: "", dateModified: "", ratingValue: 0, ratingCount: 0, faqQ1: "", faqA1: "", faqQ2: "", faqA2: "", faqQ3: "", faqA3: "", faqQ4: "", faqA4: "", faqQ5: "", faqA5: "" }