The official JavaScript SDK for integrating DevPayr into your web or SaaS application. Use this SDK to verify license keys, enforce project-based payments, and load secure injectables dynamically.
You can either include the SDK directly in your HTML, or install it via npm
/yarn
for Node.js/ESM/CommonJS use.
<script src="https://cdn.jsdelivr.net/npm/devpayr-frontend-sdk@latest/dist/devpayr-frontend.js"></script>
npm install devpayr-frontend-sdk
// ESM
import 'devpayr-frontend-sdk';
// CommonJS
require('devpayr-frontend-sdk');
Before the SDK initializes, you must define a global config object in the browser’s window
scope. This object allows the DevPayr SDK to read your license, configure behavior, and optionally handle secure injectables.
<script>
window.myapp = {
license: 'YOUR_LICENSE_KEY', // Required
onReady: function () {
console.log('✅ License verified.');
}
};
</script>
<script src="https://cdn.devpayr.dev/devpayr-sdk.js"></script>
<script>
window.myapp = {
license: 'LICENSE_ABC123',
invalidBehavior: 'modal',
debug: false
};
</script>
This shows the default DevPayr modal with fallback messaging when license is invalid or expired.
<script>
window.myapp = {
license: 'LICENSE_456DEF',
invalidBehavior: 'modal',
modalText: '🚫 This application is not licensed. Please contact support.',
modalTheme: {
primary: '#10b981', // emerald
background: '#1a1a2e',
text: '#e0f2f1',
border: '#10b981',
glow: true
},
onReady: function () {
console.log('✅ All good.');
}
};
</script>
Customize modal appearance using modalTheme.
<script>
window.myapp = {
license: 'LICENSE_XYZ789',
recheck: false,
onReady: function () {
console.log('🔓 Cached license still valid.');
}
};
</script>
This skips license verification after the first success, unless storage is cleared.
<script>
window.myapp = {
license: 'LICENSE_REDIRECT',
invalidBehavior: 'redirect',
redirectUrl: 'https://yourapp.com/upgrade',
debug: true
};
</script>
When license is invalid, users are redirected instead of seeing a modal.
<script>
window.myapp = {
license: 'LICENSE_INJECT',
injectables: true,
injectablesEndpoint: 'https://yourapp.com/sdk/receive',
onReady: function () {
console.log('🔐 License validated, injectables loading...');
}
};
</script>
This sends retrieved injectables (if any) to your backend for secure use.
💡 Tip: You can name your global config variable anything — the SDK will automatically detect it
as long as it contains alicense
orlk
property. This helps you keep the SDK integration hidden
or embedded in an existing namespace.
<script>
window.sdkConfig = {
license: 'YOUR_LICENSE_KEY',
onReady: () => console.log('✅ sdkConfig verified')
};
</script>
<script>
window._devSettings = {
lk: 'LICENSE_123ABC',
debug: true,
onReady: () => console.log('🔐 _devSettings verified')
};
</script>
<script>
window.anythingYouWant = {
license: 'LICENSE_SOMETHING',
injectables: true,
onReady: () => console.log('🎯 anythingYouWant verified')
};
</script>
The SDK will scan all global variables at runtime and automatically use the first object that has a valid license or lk key. No additional configuration is needed.
import 'devpayr-frontend-sdk';
// Optionally inject config into window (for client detection)
window.devpayr = {
license: 'YOUR_LICENSE_KEY',
onReady: () => console.log('✅ Verified')
};
require('devpayr-frontend-sdk');
global.devpayr = {
license: 'YOUR_LICENSE_KEY',
injectables: true,
injectablesEndpoint: 'https://yourapp.com/sdk/receive'
};
- ✅ Automatically detects the license key from any global variable on the
window
scope. - 🔍 Verifies the license against the DevPayr API in real-time.
- 🧠 Caches successful license checks using
localStorage
(with support forrecheck: false
). - 🚫 If the license is invalid:
- Shows a modal with customizable text and theme (
modalText
,modalTheme
), or -
Redirects the user if
invalidBehavior: 'redirect'
is set.
- Shows a modal with customizable text and theme (
- 🔐 If
injectables
are enabled:- They are securely forwarded to your backend using the provided
injectablesEndpoint
.
- They are securely forwarded to your backend using the provided
The SDK runs autonomously after being included — no need to manually call any methods.
-
🧩 The global config key can be named anything (e.g.,
window.myapp
,window.licenseSettings
, etc.).
The SDK will automatically find the first object with alicense
orlk
property. -
🚫 The SDK only runs once and gracefully exits if license validation fails. Whenever an error is encountered, it will display the modal
-
🐞 You can enable
debug: true
in your config to see detailed logs in the browser console.
For help, feedback, or integration support:
- 🌐 Visit: https://devpayr.com
- 📧 Email: support@devpayr.com