{"_id":"3pa-y","_rev":"3-1c9fc932e9253f04c9725dcdc0e799e8","name":"3pa-y","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"3pa-y","version":"1.0.0","keywords":["3pa-y","crypto","payment","gateway","sdk","usdt","usdc","stablecoin","trc20","erc20","blockchain","cryptocurrency","payment-gateway","crypto-payments"],"author":{"name":"3PA-Y","email":"support@3pa-y.com"},"license":"MIT","_id":"3pa-y@1.0.0","maintainers":[{"name":"3pa-y","email":"admin@3pa-y.com"}],"homepage":"https://3pa-y.com","bugs":{"url":"https://github.com/rivalfinance/3pay-sdk.git"},"dist":{"shasum":"fa6dcb7411f38953fc4f409b68af12fefe204665","tarball":"https://registry.npmjs.org/3pa-y/-/3pa-y-1.0.0.tgz","fileCount":12,"integrity":"sha512-le/QO8F/SOT7T63fHwULf224dlzZUFC5PFzD63DXNuTpIugxs7L5CGFWZVg8ZYFG3IYxiOhBcRfU2mzol0/NXw==","signatures":[{"sig":"MEYCIQDS74V0WA1E4dmxg2Xc7ly1UxBEcfHu/uao0myb3JUAlwIhANKvWnHbVBRy5Ae1EM2BMMNM+gOQgz2x1SaxVxRr95+b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":618754},"main":"dist/index.js","types":"dist/index.d.ts","browser":"dist/3pa-y.min.js","engines":{"node":">=14.0.0"},"gitHead":"a15a3f9d54c1cbbd895bff2dc5739bda8b0c69aa","scripts":{"dev":"webpack --mode development --watch","build":"webpack --mode production","prepublishOnly":"npm run build"},"_npmUser":{"name":"3pa-y","email":"admin@3pa-y.com"},"repository":{"url":"git+https://github.com/rivalfinance/3pay-sdk.git","type":"git"},"_npmVersion":"10.2.3","description":"Official 3PA-Y SDK for accepting cryptocurrency payments (USDT, USDC) via stablecoin payment gateway","directories":{},"_nodeVersion":"20.10.0","dependencies":{"axios":"^1.6.2"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.89.0","@babel/core":"^7.23.0","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.23.0"},"_npmOperationalInternal":{"tmp":"tmp/3pa-y_1.0.0_1760344484125_0.5216665272928029","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"3pa-y","version":"1.0.1","keywords":["3pa-y","crypto","payment","gateway","sdk","usdt","usdc","stablecoin","trc20","erc20","blockchain","cryptocurrency","payment-gateway","crypto-payments"],"author":{"name":"3PA-Y","email":"support@3pa-y.com"},"license":"MIT","_id":"3pa-y@1.0.1","maintainers":[{"name":"3pa-y","email":"admin@3pa-y.com"}],"homepage":"https://3pa-y.com","bugs":{"url":"https://github.com/rivalfinance/3pay-sdk.git"},"dist":{"shasum":"51ab7c00cb051d9d0c99a9c93d0962638b2a3964","tarball":"https://registry.npmjs.org/3pa-y/-/3pa-y-1.0.1.tgz","fileCount":12,"integrity":"sha512-LOKVvIDxFgnn3rVXg+wD29vNfGPSeKiL+UE1A1/hdDDSFJu8uXSq35LLZa/bm/3fH+XaQKbZgI80k0bITaQjTQ==","signatures":[{"sig":"MEUCIQCAHKLybScEaCFeQKO5lBySEOLksFpDDh7YZN0NOTKBYgIgKxQ6VCLso9TLxcXq3bIKAxTfxYtn4MfSTCFaCu6mJnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":618706},"main":"dist/index.js","types":"dist/index.d.ts","browser":"dist/3pa-y.min.js","engines":{"node":">=14.0.0"},"gitHead":"a15a3f9d54c1cbbd895bff2dc5739bda8b0c69aa","scripts":{"dev":"webpack --mode development --watch","build":"webpack --mode production","prepublishOnly":"npm run build"},"_npmUser":{"name":"3pa-y","email":"admin@3pa-y.com"},"repository":{"url":"git+https://github.com/rivalfinance/3pay-sdk.git","type":"git"},"_npmVersion":"10.2.3","description":"Official 3PA-Y SDK for accepting cryptocurrency payments (USDT, USDC) via stablecoin payment gateway","directories":{},"_nodeVersion":"20.10.0","dependencies":{"axios":"^1.6.2"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.89.0","@babel/core":"^7.23.0","webpack-cli":"^5.1.4","babel-loader":"^9.1.3","@babel/preset-env":"^7.23.0"},"_npmOperationalInternal":{"tmp":"tmp/3pa-y_1.0.1_1760345060768_0.6226411375806356","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"3pa-y","version":"1.0.3","description":"Official 3PA-Y SDK for accepting cryptocurrency payments (USDT, USDC) via stablecoin payment gateway","main":"dist/index.js","browser":"dist/3pa-y.min.js","types":"dist/index.d.ts","scripts":{"build":"webpack --mode production","dev":"webpack --mode development --watch","prepublishOnly":"npm run build"},"keywords":["3pa-y","crypto","payment","gateway","sdk","usdt","usdc","stablecoin","trc20","erc20","blockchain","cryptocurrency","payment-gateway","crypto-payments"],"author":{"name":"3PA-Y","email":"support@3pa-y.com"},"license":"MIT","homepage":"https://3pa-y.com","repository":{"type":"git","url":"git+https://github.com/rivalfinance/3pay-sdk.git"},"bugs":{"url":"https://github.com/rivalfinance/3pay-sdk.git"},"dependencies":{"axios":"^1.6.2"},"devDependencies":{"@babel/core":"^7.23.0","@babel/preset-env":"^7.23.0","babel-loader":"^9.1.3","webpack":"^5.89.0","webpack-cli":"^5.1.4"},"engines":{"node":">=14.0.0"},"_id":"3pa-y@1.0.3","gitHead":"cc32f45c5d3fe265f3de4fe52a3f98f46e199795","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-itXquI5Bvk0FNnRGPJyWOq7tMkFOU3HCkmyxAaB7zJbg92Vin8gfszESzbjicngrfDNGLVYyd9aIuQoNpHw8wg==","shasum":"7b9faf4adbdcd413464d441460e7221589aba64b","tarball":"https://registry.npmjs.org/3pa-y/-/3pa-y-1.0.3.tgz","fileCount":14,"unpackedSize":655520,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA/gbCHcrw2WZ44v2m9cX/b+tOm1oS4hms00CNqe0K5sAiEA0McD2mLQJgHI18ILMguaDgLq9lwCdQd0fcRc0OACZL0="}]},"_npmUser":{"name":"3pa-y","email":"admin@3pa-y.com"},"directories":{},"maintainers":[{"name":"3pa-y","email":"admin@3pa-y.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/3pa-y_1.0.3_1760428374725_0.28908581769830466"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-13T08:34:44.124Z","modified":"2025-10-14T07:52:55.143Z","1.0.0":"2025-10-13T08:34:44.343Z","1.0.1":"2025-10-13T08:44:20.992Z","1.0.3":"2025-10-14T07:52:54.961Z"},"bugs":{"url":"https://github.com/rivalfinance/3pay-sdk.git"},"author":{"name":"3PA-Y","email":"support@3pa-y.com"},"license":"MIT","homepage":"https://3pa-y.com","keywords":["3pa-y","crypto","payment","gateway","sdk","usdt","usdc","stablecoin","trc20","erc20","blockchain","cryptocurrency","payment-gateway","crypto-payments"],"repository":{"type":"git","url":"git+https://github.com/rivalfinance/3pay-sdk.git"},"description":"Official 3PA-Y SDK for accepting cryptocurrency payments (USDT, USDC) via stablecoin payment gateway","maintainers":[{"name":"3pa-y","email":"admin@3pa-y.com"}],"readme":"# 🚀 3PA-Y SDK - Accept Crypto Payments Easily\r\n\r\n[![npm version](https://badge.fury.io/js/3pa-y.svg)](https://badge.fury.io/js/3pa-y)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Downloads](https://img.shields.io/npm/dt/3pa-y.svg)](https://www.npmjs.com/package/3pa-y)\r\n\r\n**The easiest way to accept cryptocurrency payments in your application.** Start accepting USDT, USDC, and other stablecoins in just 5 minutes!\r\n\r\n## 🌟 Why Choose 3PA-Y SDK?\r\n\r\n- ⚡ **5-minute integration** - Get started quickly\r\n- 💰 **Multiple cryptocurrencies** - USDT (TRC20/ERC20), USDC, and more\r\n- 🌐 **Universal compatibility** - Works in Node.js and browsers\r\n- 🎨 **Customizable UI** - Popup, embedded, or custom checkout\r\n- 🔒 **Secure by default** - Enterprise-grade security\r\n- 📱 **Mobile optimized** - Perfect on all devices\r\n- 🔄 **Real-time updates** - Instant payment notifications\r\n\r\n## 📦 Installation\r\n\r\n### npm\r\n```bash\r\nnpm install 3pa-y\r\n```\r\n\r\n### yarn\r\n```bash\r\nyarn add 3pa-y\r\n```\r\n\r\n### CDN (Browser)\r\n```html\r\n<script src=\"https://unpkg.com/3pa-y@latest/dist/3pa-y.min.js\"></script>\r\n```\r\n\r\n### TypeScript\r\n```bash\r\nnpm install 3pa-y\r\nnpm install @types/node  # For Node.js projects\r\n```\r\n\r\n### pnpm\r\n```bash\r\npnpm add 3pa-y\r\n```\r\n\r\n## 🚀 Quick Start\r\n\r\n### 1. Get Your API Keys\r\nSign up at [3pa-y.com](https://3pa-y.com) to get your API credentials.\r\n\r\n### 2. Initialize the SDK\r\n\r\n```javascript\r\nconst ThreePay = require('3pa-y');\r\n\r\nconst threePay = new ThreePay({\r\n  apiKey: 'your-api-key',\r\n  apiSecret: 'your-api-secret',\r\n  baseUrl: 'https://3pa-y.com'\r\n});\r\n```\r\n\r\n### 3. Create Your First Payment\r\n\r\n```javascript\r\nasync function createPayment() {\r\n  try {\r\n    const payment = await threePay.createTransaction({\r\n      amount: 100,                    // $100 USD\r\n      currencyType: 'USDT-TRC20',     // Accept USDT on TRON\r\n      callbackUrl: 'https://your-site.com'\r\n    });\r\n    \r\n    console.log('Payment created:', payment.data.transactionId);\r\n    return payment;\r\n  } catch (error) {\r\n    console.error('Payment failed:', error.message);\r\n  }\r\n}\r\n```\r\n\r\n### Browser Integration\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>3Pa-Y - Create Checkout</title>\r\n    <style>\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        body {\r\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\r\n            min-height: 100vh;\r\n            padding: 40px 20px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .container {\r\n            background: white;\r\n            border-radius: 20px;\r\n            padding: 40px;\r\n            max-width: 600px;\r\n            width: 100%;\r\n            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\r\n        }\r\n\r\n        h1 {\r\n            color: #667eea;\r\n            text-align: center;\r\n            margin-bottom: 30px;\r\n            font-size: 32px;\r\n        }\r\n\r\n        .form-group {\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        label {\r\n            display: block;\r\n            margin-bottom: 8px;\r\n            color: #333;\r\n            font-weight: 600;\r\n        }\r\n\r\n        input,\r\n        select {\r\n            width: 100%;\r\n            padding: 12px;\r\n            border: 2px solid #e0e0e0;\r\n            border-radius: 8px;\r\n            font-size: 14px;\r\n        }\r\n\r\n        input:focus,\r\n        select:focus {\r\n            outline: none;\r\n            border-color: #667eea;\r\n        }\r\n\r\n        .checkbox-group {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n        }\r\n\r\n        .checkbox-group input[type=\"checkbox\"] {\r\n            width: auto;\r\n            margin: 0;\r\n        }\r\n\r\n        button {\r\n            width: 100%;\r\n            padding: 14px;\r\n            background: #667eea;\r\n            color: white;\r\n            border: none;\r\n            border-radius: 8px;\r\n            font-size: 16px;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            margin-top: 20px;\r\n            transition: background 0.3s;\r\n        }\r\n\r\n        button:hover {\r\n            background: #5a6fd8;\r\n        }\r\n\r\n        button:disabled {\r\n            background: #ccc;\r\n            cursor: not-allowed;\r\n        }\r\n\r\n        .result {\r\n            margin-top: 20px;\r\n            padding: 15px;\r\n            border-radius: 8px;\r\n            display: none;\r\n        }\r\n\r\n        .result.success {\r\n            background: #d4edda;\r\n            color: #155724;\r\n            border: 1px solid #c3e6cb;\r\n            display: block;\r\n        }\r\n\r\n        .result.error {\r\n            background: #f8d7da;\r\n            color: #721c24;\r\n            border: 1px solid #f5c6cb;\r\n            display: block;\r\n        }\r\n\r\n        .result pre {\r\n            margin-top: 10px;\r\n            padding: 10px;\r\n            background: rgba(0, 0, 0, 0.05);\r\n            border-radius: 4px;\r\n            overflow-x: auto;\r\n            font-size: 12px;\r\n        }\r\n\r\n        .info {\r\n            background: #e7f3ff;\r\n            padding: 15px;\r\n            border-radius: 8px;\r\n            margin-bottom: 20px;\r\n            border-left: 4px solid #667eea;\r\n        }\r\n\r\n        .info h3 {\r\n            color: #667eea;\r\n            margin-bottom: 8px;\r\n            font-size: 16px;\r\n        }\r\n\r\n        .info p {\r\n            color: #555;\r\n            font-size: 14px;\r\n            line-height: 1.6;\r\n        }\r\n    </style>\r\n</head>\r\n\r\n<body>\r\n    <div class=\"container\">\r\n        <h1>3Pa-Y - Create Checkout</h1>\r\n\r\n        <form id=\"paymentForm\">\r\n            <div class=\"form-group\">\r\n                <label for=\"amount\">Amount *</label>\r\n                <input type=\"number\" id=\"amount\" step=\"0.01\" value=\"100.00\" required>\r\n            </div>\r\n\r\n            <div class=\"form-group\">\r\n                <label for=\"currency\">Currency Type *</label>\r\n                <select id=\"currency\" required>\r\n                    <option value=\"USDT-TRC20\">USDT-TRC20</option>\r\n                    <option value=\"USDT-ERC20\">USDT-ERC20</option>\r\n                </select>\r\n            </div>\r\n\r\n            <div class=\"form-group\">\r\n                <label for=\"callbackUrl\">Callback URL *</label>\r\n                <input type=\"url\" id=\"callbackUrl\" value=\"https://your-site.com/webhook\" required>\r\n            </div>\r\n\r\n            <button type=\"submit\" id=\"submitBtn\">\r\n                Create\r\n            </button>\r\n        </form>\r\n\r\n        <div id=\"result\" class=\"result\"></div>\r\n    </div>\r\n\r\n    <!-- Load the 3PA-Y SDK -->\r\n    <script src=\"https://unpkg.com/3pa-y@1.0.0/dist/3pa-y.min.js\"></script>\r\n    <script>\r\n        // Wait for the SDK to load before initializing\r\n        function initializeSDK() {\r\n            console.log('Checking for ThreePay...', typeof ThreePay);\r\n\r\n            if (typeof ThreePay === 'undefined') {\r\n                console.log('ThreePay not loaded yet, retrying...');\r\n                setTimeout(initializeSDK, 100);\r\n                return;\r\n            }\r\n\r\n            console.log('ThreePay loaded successfully!');\r\n\r\n            // Initialize 3PA-Y SDK\r\n            const threePay = new ThreePay({\r\n                apiKey: '617ffe6b1784f902ce290e3653051562',\r\n                apiSecret: '4e6b816cfe2d706187019a9349f233ff1fca89341e8d931ff37f18c8af474f04',\r\n                baseUrl: 'http://localhost:5000'\r\n            });\r\n\r\n            const form = document.getElementById('paymentForm');\r\n            const submitBtn = document.getElementById('submitBtn');\r\n            const resultDiv = document.getElementById('result');\r\n\r\n            form.addEventListener('submit', async (e) => {\r\n                e.preventDefault();\r\n\r\n                // Get form values\r\n                const amount = parseFloat(document.getElementById('amount').value);\r\n                const currencyType = document.getElementById('currency').value;\r\n                const callbackUrl = document.getElementById('callbackUrl').value;\r\n\r\n                // Update button state\r\n                submitBtn.disabled = true;\r\n                submitBtn.textContent = 'Creating Transaction...';\r\n                resultDiv.className = 'result';\r\n                resultDiv.style.display = 'none';\r\n\r\n                try {\r\n                    // Create transaction with auto checkout\r\n                    const transactionData = {\r\n                        amount,\r\n                        currencyType,\r\n                        callbackUrl,\r\n                        openCheckout: true,\r\n                        checkoutOptions: {\r\n                            // openInSameTab: true,\r\n                            openInNewTab: true\r\n                        }\r\n                    };\r\n\r\n                    const response = await threePay.createTransaction(transactionData);\r\n                    console.log('Transaction Response:', response);\r\n\r\n                } catch (error) {\r\n                    // Show error result\r\n                    resultDiv.className = 'result error';\r\n                    resultDiv.innerHTML = `\r\n                        <strong>❌ Error Creating Transaction</strong>\r\n                        <pre>${error.message}</pre>\r\n                    `;\r\n                    console.error('Transaction error:', error);\r\n                } finally {\r\n                    // Reset button state\r\n                    submitBtn.disabled = false;\r\n                    submitBtn.textContent = 'Create';\r\n                }\r\n            });\r\n        }\r\n\r\n        // Start trying to initialize once the page loads\r\n        document.addEventListener('DOMContentLoaded', initializeSDK);\r\n        // Also try immediately in case DOMContentLoaded already fired\r\n        if (document.readyState === 'loading') {\r\n            document.addEventListener('DOMContentLoaded', initializeSDK);\r\n        } else {\r\n            initializeSDK();\r\n        }\r\n    </script>\r\n</body>\r\n\r\n</html>\r\n```\r\n\r\n## 🎨 Checkout Options\r\n\r\n### 1. Popup Checkout\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html lang=\"en\">\r\n\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>3PA-Y SDK</title>\r\n    <style>\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        body {\r\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\r\n            min-height: 100vh;\r\n            padding: 40px 20px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .container {\r\n            background: white;\r\n            border-radius: 20px;\r\n            padding: 40px;\r\n            max-width: 600px;\r\n            width: 100%;\r\n            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);\r\n        }\r\n\r\n        h1 {\r\n            color: #667eea;\r\n            text-align: center;\r\n            margin-bottom: 30px;\r\n            font-size: 32px;\r\n        }\r\n\r\n        button {\r\n            width: 100%;\r\n            padding: 14px;\r\n            background: #667eea;\r\n            color: white;\r\n            border: none;\r\n            border-radius: 8px;\r\n            font-size: 16px;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            margin-top: 20px;\r\n            transition: background 0.3s;\r\n        }\r\n\r\n        button:hover {\r\n            background: #5a6fd8;\r\n        }\r\n\r\n        button:disabled {\r\n            background: #ccc;\r\n            cursor: not-allowed;\r\n        }\r\n    </style>\r\n</head>\r\n\r\n<body>\r\n    <div class=\"container\">\r\n        <h1>3PA-Y SDK</h1>\r\n\r\n        <div style=\"margin-top: 20px; text-align: center;\">\r\n            <button type=\"button\" id=\"openCheckoutPageBtn\" style=\"background: #28a745; margin-right: 10px;\">\r\n                Open Checkout Page\r\n            </button>\r\n        </div>\r\n\r\n        <div id=\"result\" class=\"result\"></div>\r\n    </div>\r\n\r\n    <!-- Load the 3PA-Y SDK -->\r\n    <script src=\"https://unpkg.com/3pa-y@1.0.0/dist/3pa-y.min.js\"></script>\r\n    <script>\r\n        // Wait for the SDK to load before initializing\r\n        function initializeSDK() {\r\n            console.log('Checking for ThreePay...', typeof ThreePay);\r\n\r\n            if (typeof ThreePay === 'undefined') {\r\n                console.log('ThreePay not loaded yet, retrying...');\r\n                setTimeout(initializeSDK, 100);\r\n                return;\r\n            }\r\n\r\n            console.log('ThreePay loaded successfully!');\r\n\r\n            // Initialize 3PAY SDK\r\n            const threePay = new ThreePay({\r\n                apiKey: '617ffe6b1784f902ce290e3653051562',\r\n                apiSecret: '4e6b816cfe2d706187019a9349f233ff1fca89341e8d931ff37f18c8af474f04',\r\n                baseUrl: 'http://localhost:5000'\r\n            });\r\n\r\n            const openCheckoutPageBtn = document.getElementById('openCheckoutPageBtn');\r\n\r\n            // Add event listeners for the new buttons\r\n            openCheckoutPageBtn.addEventListener('click', () => {\r\n                try {\r\n                    threePay.openCheckoutPage({\r\n                        width: 800,\r\n                        height: 600,\r\n                        defaultValues: {\r\n                            amount: 100.00,\r\n                            currencyType: 'USDT-TRC20',\r\n                            callbackUrl: 'https://your-site.com/webhook',\r\n                        },\r\n                        openInSameTab: true,\r\n                        openInNewTab: false\r\n                    });\r\n                } catch (error) {\r\n                    console.error('Error opening checkout page:', error);\r\n                    alert('Error opening checkout page: ' + error.message);\r\n                }\r\n            });\r\n        }\r\n\r\n        // Start trying to initialize once the page loads\r\n        document.addEventListener('DOMContentLoaded', initializeSDK);\r\n        // Also try immediately in case DOMContentLoaded already fired\r\n        if (document.readyState === 'loading') {\r\n            document.addEventListener('DOMContentLoaded', initializeSDK);\r\n        } else {\r\n            initializeSDK();\r\n        }\r\n    </script>\r\n</body>\r\n\r\n</html>\r\n```\r\n\r\n## 💰 Supported Cryptocurrencies\r\n\r\n| Currency | Network | Type | Example |\r\n|----------|---------|------|---------|\r\n| USDT | TRON (TRC20) | `'USDT-TRC20'` | Lowest fees ⭐ |\r\n| USDT | Ethereum (ERC20) | `'USDT-ERC20'` | Wide support |\r\n\r\n*More currencies coming soon! Contact support for custom integrations.*\r\n\r\n## 📡 API Reference\r\n\r\n### Constructor\r\n\r\n```javascript\r\nconst threePay = new ThreePay({\r\n  apiKey: 'string',        // Required: Your API key\r\n  apiSecret: 'string',     // Required: Your API secret\r\n  baseUrl: 'string'        // Optional: API base URL\r\n});\r\n```\r\n\r\n### Methods\r\n\r\n#### `createTransaction(paymentData)`\r\n\r\nCreate a new payment transaction.\r\n\r\n```javascript\r\nconst payment = await threePay.createTransaction({\r\n  amount: 100,                    // Required: Payment amount in USD\r\n  currencyType: 'USDT-TRC20',     // Optional: Default 'USDT-TRC20'\r\n  callbackUrl: 'https://...',     // Required: Webhook URL\r\n  openCheckout: false,            // Optional: Auto-open checkout (browser only)\r\n  checkoutOptions: {              // Optional: Checkout window options\r\n    width: 500,                   // Popup width (default: 500)\r\n    height: 700,                  // Popup height (default: 700)\r\n    openInSameTab: false,         // Open in same tab instead of popup\r\n    openInNewTab: false           // Open in new tab instead of popup\r\n  }\r\n});\r\n\r\n// Returns:\r\n{\r\n  success: true,\r\n  data: {\r\n    transactionId: 'txn_abc123',\r\n    amount: 100,\r\n    currencyType: 'USDT-TRC20',\r\n    status: 'pending',\r\n    walletAddress: 'TXyz...',\r\n    createdAt: '2025-10-01T10:00:00Z'\r\n  }\r\n}\r\n```\r\n\r\n#### `getTransaction(transactionId)`\r\n\r\nGet payment status and details.\r\n\r\n```javascript\r\nconst status = await threePay.getTransaction('txn_abc123');\r\n\r\nconsole.log('Payment status:', status.data.status);\r\n// Status: 'pending' | 'completed' | 'failed' | 'expired'\r\n```\r\n\r\n#### `withdraw(withdrawData)`\r\n\r\nCreate a withdrawal request.\r\n\r\n```javascript\r\nconst withdrawal = await threePay.withdraw({\r\n  walletAddress: 'TXyz123...',    // Destination wallet\r\n  amount: '50',                   // Amount to withdraw\r\n  currencyType: 'USDT-TRC20',     // Currency type\r\n  callbackUrl: 'https://...'      // Webhook URL\r\n});\r\n```\r\n\r\n#### `openCheckoutPage(options)`\r\n\r\nOpen a complete checkout creation page with form interface.\r\n\r\n```javascript\r\nthreePay.openCheckoutPage({\r\n  openInSameTab: false,           // Open in same tab (default: false)\r\n  openInNewTab: false,            // Open in new tab (default: false)\r\n  width: 800,                     // Popup width (default: 800)\r\n  height: 600,                    // Popup height (default: 600)\r\n  defaultValues: {                // Default form values\r\n    amount: 100.00,               // Default amount\r\n    currencyType: 'USDT-TRC20',   // Default currency\r\n    callbackUrl: 'https://...',   // Default callback URL\r\n    checkoutType: 'popup'         // Default checkout type\r\n  }\r\n});\r\n```\r\n## 🔒 Security Best Practices\r\n\r\n### Environment Variables\r\n```bash\r\n# .env file\r\nTHREEPAY_API_KEY=your_api_key_here\r\nTHREEPAY_API_SECRET=your_api_secret_here\r\n```\r\n\r\n### Server-Side Validation\r\n```javascript\r\n// Always verify payments on your server\r\napp.post('/verify-payment', async (req, res) => {\r\n  const { transactionId } = req.body;\r\n  \r\n  try {\r\n    const result = await threePay.verifyPayment(transactionId);\r\n    \r\n    if (result.data.status === 'completed') {\r\n      // Payment verified - safe to fulfill order\r\n      res.json({ verified: true, amount: result.data.amount });\r\n    } else {\r\n      res.json({ verified: false });\r\n    }\r\n  } catch (error) {\r\n    res.status(400).json({ error: error.message });\r\n  }\r\n});\r\n```\r\n\r\n## 📞 Support & Resources\r\n\r\n- 📧 **Email**: support@3pa-y.com\r\n- 📖 **Documentation**: [docs.3pa-y.com](https://docs.3pa-y.com/docs/getting-started)\r\n- 💬 **Discord**: [Join our community](https://github.com/rivalfinance/3pay-sdk.git)\r\n- 🐛 **Issues**: [GitHub Issues](https://github.com/rivalfinance/3pay-sdk.git)\r\n- 💡 **Feature Requests**: [GitHub Discussions](https://github.com/rivalfinance/3pay-sdk.git)\r\n\r\n## 📊 Package Stats\r\n\r\n- **Bundle Size**: 88.6 KB (minified)\r\n- **Dependencies**: 1 (axios)\r\n- **TypeScript**: Full support included\r\n- **Browsers**: IE11+, Chrome, Firefox, Safari, Edge\r\n- **Node.js**: 14.0+\r\n\r\n## 📄 License\r\n\r\nMIT License - see [LICENSE](./LICENSE) file for details.\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n**Made with ❤️ by the 3PAY team**\r\n\r\n[Website](https://3pa-y.com) • [Documentation](https://docs.3pa-y.com) • [Discord](https://discord.gg) • [Twitter](https://twitter.com)\r\n\r\n**⭐ Star us on GitHub if this helped you!**\r\n\r\n</div>","readmeFilename":"README.md"}