Skip to content
Ethical payment enforcement for real work

Ship the project. Keep the kill-switch.

DevPayr lets you ship production-ready apps while quietly controlling licenses, domains, and usage limits — so if a client disappears after delivery, you can lock or limit access in one click without breaking anything.

Invisible to clients until invoices are violated.
Drop-in snippets for JS, PHP, Python & more.
Non-destructive — warn, limit, or pause first.
2-min install · drop this into your app
import { DevPayr } from '@xultech/devpayr';

DevPayr.bootstrap({
  license: 'YOUR-LICENSE',
  secret: 'your secret key',
  base_url: 'https://api.devpayr.com',
  action: 'boot',
  injectables: true,
  invalidBehavior: 'modal',
  onReady: (res) => console.log('✅', res)
});
<?php
require 'vendor/autoload.php';
use DevPayr\DevPayr;
use DevPayr\Exceptions\DevPayrException;

try {
    DevPayr::bootstrap([
        'license'         => 'YOUR-LICENSE-KEY',
        'injectables'     => true,
        'invalidBehavior' => 'modal',
    ]);
    echo "License valid.";
} catch (DevPayrException $e) {
    echo "DevPayr error: ".$e->getMessage();
}
from devpayr import DevPayr

DevPayr.bootstrap({
  "license": "YOUR-LICENSE",
  "api_key": "YOUR-API-KEY",
  "base_url": "https://api.devpayr.dev/api/v1/",
  "secret": "shared-secret",
  "injectables": True,
  "invalidBehavior": "modal",
  "onReady": lambda d: print("✅", d)
})
Checks license, domain & plan before your app fully boots.
Who it’s for

DevPayr is for anyone who is tired of people using their work without paying fully for it.

If you’ve ever delivered something meaningful — code, a design, a system, a template — and watched someone use it freely while your payment dragged, you already understand why DevPayr exists.

01

Freelance developers

For devs who finish a project, hand it over, and then suddenly begin chasing a client who keeps saying “give me till weekend”. DevPayr gives you quiet control, so your work isn’t fully enjoyed until it’s fully paid for.

For project-based and milestone-based builds.
02

Agencies & studios

For teams handling multiple clients at once. One unpaid web app can throw an entire workflow off balance. With DevPayr, you simply ship your work and let access match payment automatically — no awkward follow-ups.

Helps keep access tied to invoices.
03

Designers & creatives

For people who deliver dashboards, templates, branding systems, UI kits, frontends — and then find out the client is happily using everything without settling the remaining balance.

Perfect for any handoff-based work.
04

Digital asset & code sellers

For creators who sell scripts, templates, themes, components, or design files — whether directly or on platforms like CodeCanyon, Envato, Gumroad, or your own site.
DevPayr helps make sure your item isn’t used by people who didn’t buy it, didn’t activate it, or are trying to share it illegally.

Enforce licenses, domains, installs & user limits.
05

Software builders

If you build software — SaaS, desktop apps, tools, plugins — and worry about your code being copied, shared, or used without authorization, DevPayr gives you a simple licensing shield that sits between your app and whoever is running it.

For paid apps, trials, demos, client-specific builds.
06

Startups & product teams

Trials, PoCs, custom deployments — clients love to extend them without talking about payment. DevPayr quietly shuts the door when time is up, so you don’t have to play the “just checking on that invoice” game.

For pilots, beta users, and unpaid expansions.

Honestly… anyone who builds things

If you’ve ever refreshed your banking app after delivering work and saw nothing…
If someone ever used your work like it was free…
If people have ever said, “we’ll pay soon”, but still logged into the system every day…
DevPayr is for you. It’s simply a boundary — not a threat.

You still own your work. DevPayr helps you protect it.
The problem

The ugly part nobody talks about: people using your work while you’re still waiting to be paid.

Anyone who has built something for a client — code, designs, apps, templates — knows this feeling. You deliver the work. They start using it immediately. But somehow the “last payment” keeps getting postponed, explained, or ignored.

Without DevPayr

  • You’ve delivered the work… but the “balance” keeps dragging for weeks.
  • The client is using your system every day like nothing is wrong, while you’re refreshing your bank app.
  • If you restrict the system manually, you look “unprofessional” or “too harsh”.
  • If you don’t restrict it, they’ll keep using it — sometimes forever — and payment may never come.
  • You begin to sound like a beggar instead of the person who actually did the work.
  • And if you sell digital assets? One purchase code gets shared around like free Wi-Fi.

With DevPayr

  • Your work only runs fully when payment is complete. No arguments.
  • If payment drags, DevPayr quietly restricts access — no drama, no shouting.
  • You don’t “beg” anymore. The system enforces what was agreed.
  • For digital items, each license, domain, or installation is verified — no more sharing your work around.
  • Your boundaries are respected automatically. You don’t need to “follow up” twenty times.
  • You stay calm. Your work stays protected. Everyone knows where the line is.

Stop letting people use your work while you chase payments.

Whether you're building apps, selling digital assets, writing code for clients, or running an agency — you deserve to get paid without stress, without begging, and without tension. DevPayr helps you keep things professional, calm, and fully in your control.

No card required. No risk. You stay fully in control.

Why We Built DevPayr

DevPayr wasn’t born from a pitch deck or a “market opportunity.” It came from the frustration that every developer, designer, and builder knows too well.

I’ve worked on projects where I poured in time, energy, sleep, and emotion — only for the client to go quiet the moment the work was done. Days turned into weeks. The app was live. Users were inside. Money was being made… yet I was still sending reminders like I was the one at fault.

And the worst part? I couldn’t do anything. Because once you hand over your work, you lose every form of leverage. You either start begging, or you swallow the loss. Both feel terrible.

I wanted a better way — something peaceful and ethical. A system where your work doesn’t get fully used until it’s fully paid for. Not a destructive “kill-switch,” but a controlled and respectful lock that activates only when terms are broken.

Along the way, I realized this wasn’t only about client projects. People selling digital assets, plugins, themes, scripts, templates — all face the same thing. Someone buys once, leaks it, uses it everywhere, or installs it on ten domains when they paid for one.

DevPayr became that quiet middle layer that protects your work: from unauthorized use, from unpaid deliveries, from silent exploitation. It lets you sleep better knowing that your craft is not running wild on servers you don’t control.

I built DevPayr for myself at first — but it didn’t take long to see that every builder has lived some version of the same story. If you’ve ever felt cheated, ghosted, or undervalued in the work you poured your heart into… then DevPayr is for you.

— Michael Erastus, Founder of DevPayr

How DevPayr works

DevPayr sits quietly in your stack and enforces your rules.

You keep building the way you already do. DevPayr simply watches how and where your work is being used, and reacts when something doesn’t match what you agreed with the client.

1

Create a project & set up your keys

In DevPayr, you create a project for that client, product, or template. You define basic rules and generate either a project-specific API key or a global API key for your account. Global keys are perfect for platforms and marketplaces (like your own “Codecanyon-style” setup) that need to manage many licenses from a single integration.

2

Generate licenses & tie them to domains (or auto-detect)

For each client or purchase, you generate a license. You can either lock it to a specific domain or leave the domain field empty and let DevPayr auto-capture the first domain that calls it. From there, DevPayr can limit usage based on your settings — things like allowed domains, environments, or how many installs are permitted.

3

DevPayr checks every request & applies a mode

Your app, plugin, or theme calls DevPayr using the SDK or API key. DevPayr validates the license, checks the domain or environment, and then responds using the mode you’ve chosen for that project:

  • Modal — show a payment / warning modal inside the app.
  • Redirect — send them to your payment page or info screen.
  • Silent — quietly limit features or lock access without UI popups.
  • Log — just log what’s happening for now, no enforcement (great for testing).

This works whether you’re shipping a custom app, a SaaS, a theme, or a downloadable script. If the license and usage are clean, everything runs smoothly. If not, DevPayr steps in — exactly how you configured it.

Add DevPayr to your project in seconds

Use your global API key or a project-specific key — drop the snippet into your code and DevPayr handles the rest.


// Using your GLOBAL API key (good for platforms, SaaS, marketplaces)
import { DevPayr } from "@xultech/devpayr";

DevPayr.bootstrap({
  api_key: "YOUR-GLOBAL-KEY",
  license: "LICENSE-KEY",
  action: "boot",
  mode: "modal",   // modal | redirect | silent | log
  injectables: true,
  onReady: res => console.log("DevPayr ready:", res),
});


// Using a PROJECT API key (recommended for client apps)
DevPayr.bootstrap({
  project_key: "YOUR-PROJECT-KEY",
  license: "PROJECT-LICENSE",
  mode: "silent",
});


// Auto-capture domain (leave domain empty in dashboard)
DevPayr.bootstrap({
  project_key: "YOUR-PROJECT-KEY",
  license: "CLIENT-LICENSE",
  autoDomain: true
});

                
<?php

require "vendor/autoload.php";

use DevPayr\DevPayr;

// GLOBAL KEY
$dp = new DevPayr([
    "api_key" => "YOUR-GLOBAL-KEY",
    "license" => "LICENSE-KEY",
    "mode" => "redirect"
]);

// PROJECT KEY
$dp = new DevPayr([
    "project_key" => "YOUR-PROJECT-KEY",
    "license" => "CLIENT-LICENSE",
    "mode" => "modal"
]);

// Auto-capture domain
$dp = new DevPayr([
    "project_key" => "YOUR-PROJECT-KEY",
    "license" => "CLIENT-LICENSE",
    "autoDomain" => true
]);

echo "License valid.";

                

from devpayr import DevPayr

# GLOBAL KEY
DevPayr.bootstrap({
    "api_key": "YOUR-GLOBAL-KEY",
    "license": "LICENSE-KEY",
    "mode": "modal"
})

# PROJECT KEY
DevPayr.bootstrap({
    "project_key": "YOUR-PROJECT-KEY",
    "license": "CLIENT-LICENSE",
    "mode": "silent"
})

# Auto-capture domain
DevPayr.bootstrap({
    "project_key": "YOUR-PROJECT-KEY",
    "license": "CLIENT-LICENSE",
    "autoDomain": True
})

                

Built for every kind of builder

DevPayr isn’t just for developers chasing unpaid balances. It’s for anyone who creates value and needs a quiet, respectful way to stay in control.

Freelance Developers

Protect your client projects without drama. If a client disappears mid-payment, DevPayr steps in quietly — modal, redirect, silent lock or logs only, depending on how gentle you want to be.

Agencies & Creative Studios

Manage hundreds of client builds with consistent licensing rules. Your team never has to write custom “disable if unpaid” logic again — DevPayr handles enforcement cleanly across all your client apps.

Startups & SaaS Products

Bind each tenant or customer to a license, domain, or usage limit. Perfect for SaaS with workspaces, branches, or multiple environments. A global API key keeps every enforcement rule outside your core codebase.

Digital Product Sellers

Selling themes, plugins, templates, scripts, UI kits or digital tooling? DevPayr ensures only paying customers can use your product — no leaks, no unauthorized domains, no sharing purchase codes everywhere.

Marketplaces & Multi-Seller Platforms

Marketplace sellers can issue a license per buyer and track how many installs, domains or activations they’re allowed. Platforms can issue global or per-product keys automatically using the DevPayr API.

Before you say “I’ll build it myself”

Yes, you can build your own licensing… but do you really want to babysit it for years?

As a developer, I get it. The first instinct is, “I’ll just add a quick if (!paid) { /* block */ } somewhere and move on.

It works the first time. Then the client changes domains. Or you need a staging URL. Or an agency asks for multi-tenant support. Or a marketplace like Envato/CodeCanyon needs a clean way to validate every install of your theme, plugin, or script. Suddenly that “small” script wants logs, dashboards, rate limiting, retries, and a dozen edge cases you didn’t plan for.

DevPayr exists so you don’t spend your nights patching a home-grown licensing system, chasing abuse reports, or arguing with clients about who changed what. You stay focused on building — DevPayr quietly sits between your work and the people using it.

Why DevPayr instead of open-source “client-did-not-pay” scripts or DIY checks?

  • You’re not glued to maintaining it forever

    No custom tables, no scattered if (client_unpaid) checks hidden inside controllers. DevPayr centralizes checks, limits, and kill modes (modal, redirect, silent, log) in one place — for all your projects.

  • Real-world edge cases are already handled

    Domain moves, rebrands, staging vs production, sub-domains, multiple installs from one purchase, “test” licenses, soft vs hard blocks — DevPayr is built with these in mind so you don’t have to reinvent the rules for every client.

  • Designed for digital products, marketplaces & platforms

    Selling themes, plugins, code, templates or design systems? Or running a platform that powers many stores or tenants? You can issue licenses per buyer, bind them to domains or installs, and manage everything through DevPayr — instead of wiring custom license logic into each product.

  • Global keys, project keys, and clean API control

    Generate a global API key for your platform, or project-specific keys when you need separation. Perfect for SaaS teams, agencies, or marketplaces that want to automate license issuance, renewals, and enforcement without exposing raw internals of their app.

  • Less drama, more control when clients don’t pay

    Instead of nuking a site or rage-pushing a breaking update, you pick an enforcement mode that fits the relationship: a modal that locks access, a redirect to a billing page, a silent block, or just logging for now. You stay in control without burning bridges.

DevPayr doesn’t replace your contracts or your invoice tool. It simply makes sure people can’t quietly keep using your work when they’ve stopped keeping their end of the deal.

DIY vs DevPayr at a glance

For honest builders

Open-source “client-did-not-pay” style scripts

Fun to try, but usually opinionated, not tailored to your stack, and rarely maintained with your business in mind. You still carry the responsibility when things break.

Rolling your own checks inside the app

Feels “cheap” at first, but ties your enforcement to one codebase, one team, and one person. When you’re busy or move on, the whole thing slowly rots.

DevPayr

Built purely to protect your work: licenses, domains, usage limits, enforcement modes, logs, and API access — all in one place, wired to your projects with a small snippet or SDK. You keep your energy for shipping, not chasing unpaid installs.

Want to stop duct-taping your own licensing rules?

Pricing that doesn’t fight you

Simple, honest pricing for DevPayr

Start small, grow into it. No hidden fees, no forced long contracts — just clear limits around projects, domains, and licenses.

Starter

For everyday client work

Best for hobby projects or testing.

Free

A gentle way to test DevPayr on a live client project.

  • 5 projects (per account)
  • 5 domains (per plan limits)
  • 5 licenses for apps, clients, and environments.

Enthusiast

For everyday client work

Ideal for individual developers & Designers

$2 / month

Or $5 billed yearly.

  • 10 projects (per account)
  • 10 domains (per plan limits)
  • 10 licenses for apps, clients, and environments.
  • Custom domain support (clean URLs for your team and clients)

Startup

For everyday client work

Most picked

For growing startups managing internal tools.

$10 / month

Or $100 billed yearly.

  • 15 projects (per account)
  • 15 domains (per plan limits)
  • 25 licenses for apps, clients, and environments.
  • Custom domain support (clean URLs for your team and clients)

Not sure where to start? You can change plans later as your work grows.

View full pricing breakdown
Kill-switch patterns · Ethical only

Turn the “off switch” into something calm, predictable and fair.

Sometimes a client stops paying but keeps the app running. DevPayr lets you respond without feeling like a villain — show a clear message, redirect them to settle the bill, or quietly lock things down in the background.

You choose the pattern per project, license or rule. Change it anytime without touching the client’s code again.

Modal

Gentle, in-app explanation (recommended for most client work)

Most used

When a license expires or a payment milestone is skipped, DevPayr shows a clean, branded modal inside the app — explaining what happened and how to fix it. No broken pages, no cryptic errors, just an honest “this isn’t paid for yet.”

  • • Perfect for retainers, custom dashboards and client portals.
  • • You control the copy, buttons, and links (e.g. “Pay invoice”, “Chat with us”).
  • • Keeps you looking professional, even when you’re enforcing boundaries.
Redirect

Send them to a “let’s fix this” page instead of a dead product.

Instead of letting unpaid users live inside your app, DevPayr can redirect them to a page you control — your billing portal, a “payment overdue” page, or a support form. You stay firm, but the experience stays sane.

  • • Great for SaaS-style setups, membership sites and platforms.
  • • Works beautifully with Stripe/Flutterwave/Paystack billing pages.
  • • Keeps your main app clean while you handle money conversations elsewhere.
Silent

Quietly dial things down without making a scene.

Silent mode lets you restrict what the app can do without showing anything obvious to the end user. Maybe analytics stop syncing, exports are disabled, or a few “nice to have” features go to sleep until payment catches up.

  • • Ideal when you want leverage, not drama.
  • • Keeps critical flows alive while limiting non-essential features.
  • • You decide exactly what DevPayr should block or allow.
Log

Watch everything first, decide how hard to hit later.

Not ready to enforce yet? Turn on Log mode. DevPayr will quietly track license checks, domain usage, and suspicious calls — without blocking anything — so you can see how your work is really being used before pulling any switch.

  • • Perfect for new projects, marketplaces, or shared codebases.
  • • Gives you proof when you need to explain what’s happening to a client.
  • • Switch from “Log” to “Modal” or “Redirect” with one change in DevPayr.
Every pattern is opt-in. DevPayr never breaks anything by surprise.
FAQ · Before you install

Questions devs usually ask before trusting DevPayr.

DevPayr sits close to your work, so it’s normal to be careful. Here are the honest answers to the things that normally come up on first calls and DMs.

No hidden “gotchas” — you can remove DevPayr any time.
We design for real client drama, not theory.
DevPayr doesn’t replace your invoices or contracts. It backs them up. You plug it into your project, set how licenses should behave, and DevPayr quietly watches who is using your work, where it’s running, and whether it’s still within the agreement you signed.

By default, DevPayr can sit in pure log mode and only record usage. No modals, no redirects, no blocking.

When you’re ready to enforce, you choose the pattern — Modal, Redirect, Silent, or Log — and the exact rules (expired license, unpaid milestone, wrong domain, etc.). You stay in control the whole time.

DevPayr ships with first-class support for Python,PHP and JavaScript frontends, as well as NODE, and will expand into more SDKs over time.

You can also call the API directly from any backend (Node, Python, Go, etc.) as long as you can make HTTP requests. For marketplaces and platforms (like template stores or SaaS builders), you can use project or account-level API keys to automate license generation and checks.

Most builders don’t actually want to “destroy” anything. They just don’t want to be used.

DevPayr is built with that in mind: clear messaging, reversible actions, and patterns that give clients a way back in once they’ve done the right thing. You decide where the line is, but we nudge you toward solutions that are firm and still human.

To be transparent: if your app depends on live checks and DevPayr is down, those checks will fail and your enforcement logic will see that as “not valid”.

That’s why we strongly recommend using the SDK with caching turned on. Once a license has been verified and cached, your app can keep running based on that cached result, even if:

  • DevPayr is temporarily unavailable, or
  • You later remove or archive the project from your DevPayr account.

In short: live checks can fail if we’re down, but with caching enabled your app doesn’t have to break just because our servers are having a bad day.

The pricing is designed so solo devs and small studios can protect their work without feeling punished. You can start on the lower tiers, test it on one or two clients, and then move up as it becomes part of how you work.

When you’re ready to see all the details, you can check the full breakdown on the pricing section.

Create a free DevPayr account

Rather talk to a human first? Send a message and we’ll walk you through it.

Protect your work. Get paid without begging anyone.

If you build software for people, you deserve to be paid for it — fully, fairly, and without chasing anyone. DevPayr gives you the quiet control you need, without breaking trust or breaking the app.

No card required · No lock-in · Works with Node, PHP, JS, Python & more