Shopify App Developer — Build Fraud Prevention App with Checkout Validation Functions

Posted 2 days ago

Worldwide

Summary

About us We operate two live Shopify stores in the apparel and custom-decoration space, based in Montreal, Canada. We're building a commercial Shopify app and this is the first of several we plan to publish. We know this space — we currently pay for a dozen Shopify apps and have lived the problems we're building against. Marketing, positioning, and content are handled in-house. **We need development only.** ## What we're building An all-in-one order protection app for Shopify merchants: blocks fraudulent, abusive, and undeliverable orders before they cost the merchant money. Rules span the storefront (IP/geo/VPN) and the checkout (address, customer, order conditions). The product is organized around one central idea: a blocked-attempt log with an ROI dashboard showing merchants what was stopped and what it was worth. Every feature feeds that screen. ## Architecture — please read this carefully The app has two enforcement layers and we want both: **Layer 1 — Checkout Validation Function (server-side, cannot be bypassed).** Shopify Functions, Cart and Checkout Validation API. This is our core differentiator versus competitors who only run browser JavaScript. All address, customer, and order rules must be enforced here. **Layer 2 — Theme app extension (storefront).** IP, geo, VPN and bot blocking at the browsing layer. If you don't understand why Layer 1 matters, this isn't the right contract for you. ## Feature scope ### Checkout function rules (Release 1) **1. Non-street address detection, multi-locale:** - US/EN: PO Box, P.O. Box, POB, Post Office Box, Post Box - PMB / CMRA detection — Private Mailbox addresses at commercial mail receiving agencies (UPS Store, PostNet and similar), which present as normal street addresses (`1234 Main St Ste 200`) and defeat any PO Box regex. USPS publishes CMRA designations; this must be handled as a dataset, not a pattern. - APO / FPO / DPO military addresses - US territories — PR, GU, VI, AS, MP (flag or block, merchant-configurable) - Canadian French: Case Postale, C.P., CP, Boîte Postale - Spanish: Apartado Postal, Apdo. Postal, A.P. (Mexico); Casilla, Casilla de Correo (South America) - Common misspellings and deliberate evasions across all of the above **2.** Freight forwarder / package reshipper address detection, matched against a maintained address dataset (MyUS, Shipito, Stackry and similar) **3.** Customer blocklist — email, email domain, phone, name, exact address **4.** Geographic delivery rules — postal code / FSA / ZIP, province, state, country **5.** Order rules — max quantity, max order value, billing/shipping country mismatch, new-customer thresholds **6.** Order velocity and duplicate detection — repeat attempts on the same email, address, or payment method within a configurable window **7.** Allowlist that overrides all rules — VIP customers, wholesale accounts, internal test orders **8.** Monitor mode — log what *would* be blocked without blocking. Must be the default on install. **9.** Multilingual customizable block messages (EN / FR / ES) — the message shown must match the *buyer's* checkout locale, not the merchant's admin language. Merchant can override default copy per language. Adding a new language must be a configuration change, not a code deploy. ### Storefront rules (Release 2) **10.** IP blocklist / allowlist — individual IPs and CIDR ranges, with optional expiry per entry **11.** Geo-IP country and region blocking at the browsing layer **12.** VPN, proxy, Tor and datacenter IP detection **13.** Bot and scraper blocking ### Evidence Vault (Release 3) **14. Forensic capture at order time** — for every order that passes checkout, retain: IP address, geo-IP location, VPN/proxy/Tor status, device fingerprint, AVS/CVV result, which rules evaluated and their outcomes, address verification result, allowlist status, and timestamps. This is data Shopify does not retain and is exactly what issuing banks weight in representment. **15. Dispute evidence packet builder** — when a dispute is detected on an order, auto-assemble a formatted, printable evidence packet from the captured forensics plus order and fulfilment data, ready for the merchant to submit through Shopify's own dispute form. **16. Dispute detection and alerting** — monitor for new disputes via webhook and notify the merchant immediately, with a countdown to the response deadline (merchants typically have under a week). **17. In-app risk education layer** — contextual explainers covering what each rule protects against and realistic representment win rates. Copy supplied by us; you build the presentation layer. **Scope note — read carefully:** We are NOT building automated dispute submission in this contract. The Shopify scopes for that (`read_shopify_payments_dispute_evidences`, `shopify_payments_dispute_file_uploads`) are approval-gated and frequently rejected. Feature 15 produces a packet the *merchant* submits. If you believe you can secure those scopes, tell us — but do not price the contract around it. ### Merchant-facing (all releases) **18.** Blocked-attempt log with filtering and CSV export **19.** ROI dashboard — attempts blocked, estimated losses avoided, trend over time **20.** One-click blocklist from an order — add that order's email, address and IP in one action **21.** Rule builder UI — merchants create and reorder rules without a code deploy on our side ## Cost-control requirement (non-negotiable) VPN detection and any address verification bill per lookup (IPQualityScore, MaxMind, IPinfo, Loqate, Google Address Validation, etc.). **Lookups must be aggressively cached and must fire only at checkout — never on page views.** An uncached implementation would cost us more per merchant than the subscription earns. In your proposal, tell us how you'd architect this. We will weight this answer heavily. ## Localization requirement (non-negotiable) Our primary markets are the **United States and Canada**, with Spanish support for US Hispanic merchants and Latin American expansion. Detection patterns and block-message copy must be **locale-keyed data, not hardcoded strings**. We must be able to add a new language — its address patterns and its shopper-facing messages — as a configuration change we make ourselves, without a code deploy. The merchant admin UI must be translatable to EN / FR / ES using Shopify's standard i18n approach for embedded apps. ## Technical requirements - Shopify Functions (Cart and Checkout Validation API) - Remix, Polaris, App Bridge, Shopify GraphQL Admin API - Theme app extension - Shopify Billing API — three-tier recurring plans with free trial - OAuth install/uninstall with full data cleanup on `app/uninstalled` - Mandatory privacy webhooks (`customers/data_request`, `customers/redact`, `shop/redact`) - Production deployment (Fly.io, Railway or Vercel — tell us your preference and why) - The rule engine must be data-driven: we add rule types and patterns via configuration, not by shipping code ## Milestones **Milestone 1 — Architecture & setup — $500** - Repo scaffolded in *our* GitHub organization (you're added as a collaborator) - App created under *our* Shopify Partner account (we provide access — do not create it under yours) - Written architecture doc: rule engine data model, caching strategy for paid lookups, hosting choice, third-party service recommendations with cost projections at 100 / 1,000 / 5,000 merchants - Dev store configured, app installing, embedded admin loading - *Acceptance:* we review and approve the architecture doc before you write feature code **Milestone 2 — Rule engine & address rules — $1,800** - Data-driven rule engine, extensible without code deploys - Features 1, 2, 4 implemented in the validation function - Two datasets seeded and documented so we can maintain them: the reshipper/freight-forwarder list, and the USPS CMRA list for PMB detection - Locale-keyed pattern sets for EN / FR / ES - Unit tests on all detection logic, covering every locale - *Acceptance:* we supply 60 test addresses spanning US, Canadian and Mexican formats — including PMB, APO/FPO and territory addresses; all classify correctly **Milestone 3 — Customer, order & velocity rules — $1,500** - Features 3, 5, 6, 7 implemented - Allowlist correctly overrides all other rules - *Acceptance:* we run a scripted test matrix on our dev store; all cases behave as specified **Milestone 4 — Merchant UI, monitor mode & billing — $1,700** - Full Polaris admin: rule builder, blocked-attempt log, monitor mode, multilingual messages - Billing API wired — three tiers, free trial, correct cancellation and downgrade handling - Uninstall and privacy webhooks complete - *Acceptance:* install on a clean dev store, configure rules, subscribe, downgrade, uninstall — no errors **Milestone 5 — Release 1 submission & approval — $1,000** - Production deploy under our accounts - Listing technical fields, scopes, screenshots (we write the copy) - Submitted, and all reviewer feedback addressed until **approved and publicly listed** - *Acceptance:* app is live on the Shopify App Store - *Note:* released only on approval. Budget for 1–3 review rounds — normal and included in the fixed price. **Milestone 6 — Storefront layer: IP, geo, VPN, bots — $1,500** - Theme app extension, features 10–13 - Third-party lookup integration using the caching architecture approved in Milestone 1 - Load-tested to confirm lookup costs stay within projections - *Acceptance:* we verify blocking works and review actual lookup volume against projections over a 72-hour test **Milestone 7 — Evidence Vault, ROI dashboard & handover — $1,400** - Features 14, 15, 16, 17, 19, 20 - Forensic data retention must comply with the privacy webhooks — captured data purges on `customers/redact` and `shop/redact` - README: local setup, deploy process, environment variables, how to add rule types, locales, and update the reshipper and CMRA datasets - 60-minute walkthrough call - *Acceptance:* Releases 2 and 3 live, a test dispute produces a complete evidence packet, documentation complete **Total: $9,400** ## How we work - **We're responsive.** Expect same-day answers on questions during business hours, Eastern Time. We won't leave you blocked. - **We're specific.** You've read this posting — that's how we write acceptance criteria too. You'll always know what "done" means before you start a milestone. - **We test properly.** We'll run your work against real scenarios on our own stores. Expect thorough feedback, delivered directly and without drama. - **We don't move goalposts.** If we want something outside the agreed milestone, we'll raise it as a change and pay for it. We expect the same discipline in return — flag scope concerns early rather than absorbing them silently. - **Weekly written check-in** plus a short call when useful. We don't need daily standups. - **We fund Milestone 1 first.** Subsequent milestones fund as each is approved. ## Ownership terms (non-negotiable) - All code, data and IP are work-for-hire and belong to us on payment of each milestone - The Shopify Partner account, GitHub repo, domain, hosting and third-party service accounts are ours; you receive delegated access - You will not reuse this codebase, the reshipper dataset, or the CMRA dataset for a competing Shopify app - No third-party services or paid dependencies added without written approval, including during development ## How to apply Generic proposals will be skipped. Please answer these five: 1. Link to a Shopify app you shipped that passed review. What was your role, and is it still live? 2. Have you built with the Cart and Checkout Validation Function API? What surprised you? 3. **How would you architect caching for paid IP and address lookups so per-merchant cost stays under $2/month at 5,000 monthly checkouts?** Be specific. 4. How would you structure the rule engine so we can add new rule types without a code deploy? 5. What's the most common reason your apps have been rejected in Shopify review, and how do you avoid it now? Start your reply with the word **BLOCKER** so we know you read this. ## Ongoing and additional work We're not looking for a one-off contractor. Assuming this goes well, there is more: **Maintenance and future releases.** Shopify API version upgrades, new rule types, dataset maintenance, and Release 4 (automated dispute submission, pending Shopify scope approval). We'd expect to put a monthly retainer in place after handover. **Additional apps.** This is the first of several we plan to publish. **Phase 2 — marketing site and content (separate contract, parallel track).** While this app is in Shopify review we'll be building a marketing website with tutorial videos, an installation guide, and educational content. This is a separate engagement and will likely go to a different specialist — but if you or your team also build product marketing sites (Framer, Webflow or similar) with genuine conversion-focused design, say so in a single closing line. **Phase 1 will be awarded on Shopify app development ability alone.** Please don't pad your proposal with web design portfolio work — answer the five questions first.

  • $9,400.00

    Fixed-price
  • Expert
    Experience Level
  • Remote Job
  • Ongoing project
    Project Type
Skills and Expertise
Mandatory skills
API Development
Web Application
Activity on this job
  • Proposals:50+
  • Last viewed by client:2 hours ago
  • Interviewing:
    5
  • Invites sent:
    0
  • Unanswered invites:
    0
About the client
Member since Dec 17, 2021
  • Canada
    Montreal3:35 PM
  • $440K total spent
    101 hires, 6 active
  • 16,748 hours

Explore similar jobs on Upwork

JavaScript
Node.js
PHP
Web Application
AI App Development
DevOps
API
Git
MySQL
Cs2 Gambling SiteFixed-price‐ Posted 4 weeks ago
Gambling
Unity
Counter Strike
AR & VR
Online Gambling Website
Card Game
Board Game
Unreal Engine
MetaMask
Mystery Box
iGaming
WebGL
Game Development
Gaming
Multiplayer
Game UI/UX Design
UI/UX Prototyping
Steam API
AI Development
PixiJS

How it works

  • Post a job icon
    Create your free profile
    Highlight your skills and experience, show your portfolio, and set your ideal pay rate.
  • Talent comes to you icon
    Work the way you want
    Apply for jobs, create easy-to-by projects, or access exclusive opportunities that come to you.
  • Payment simplified icon
    Get paid securely
    From contract to payment, we help you work safely and get paid securely.
Want to get started? Create a profile

About Upwork

  • Rating is 4.9 out of 5.
    4.9/5
    (Average rating of clients by professionals)
  • G2 2021
    #1 freelance platform
  • 49,000+
    Signed contract every week
  • $2.3B
    Freelancers earned on Upwork in 2020

Find the best freelance jobs

Growing your career is as easy as creating a free profile and finding work like this that fits your skills.

Trusted by

  • Microsoft Logo
  • Airbnb Logo
  • Bissell Logo
  • GoDaddy Logo