Settlement wallet
Add at least one active TRON settlement wallet in Dashboard > Crypto > Wallets.
Crypto Payments
Create a USDT TRC20 payment intent, share the returned TRON address with your customer, and let the Paylor blockchain monitor confirm the transfer automatically.
Crypto payments require an active settlement wallet and the correct API key scope.
Add at least one active TRON settlement wallet in Dashboard > Crypto > Wallets.
Use an API key with the payments:create scope. Default merchant API keys include this scope.
Only USDT on TRON/TRC20 is supported. Never send ERC20, BEP20, BTC, or other assets to the returned address.
POST the amount, currency, and your reference. Paylor responds with the destination TRON address and an expiry timestamp.
/api/v1/merchants/payments/cryptoCreate a USDT TRC20 payment intent. Paylor returns the destination TRON address; the customer sends the exact amount and confirmation happens automatically through the blockchain monitor.
1{2 "amount": 10.5,3 "currency": "USDT",4 "reference": "INV-1002",5 "description": "Subscription renewal",6 "cryptoId": "665f4c1b9a8d2e001f2a1234",7 "callbackUrl": "https://example.com/paylor/callback"8}1{2 "payment_id": "6660a21f8b4d2e001f5c6789",3 "address": "TR7NHqSfy2efYv2NpHY5YshptfA3KHxvXp",4 "amount": 10.5,5 "currency": "USDT",6 "status": "INITIATED",7 "expires_at": "2026-05-23T12:30:00.000Z"8}Code examples
1curl -X POST https://api.paylorke.com/api/v1/api/v1/merchants/payments/crypto \2 -H "Authorization: Bearer YOUR_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "amount": 10.5,6 "currency": "USDT",7 "reference": "INV-1002",8 "description": "Subscription renewal",9 "cryptoId": "665f4c1b9a8d2e001f2a1234",10 "callbackUrl": "https://example.com/paylor/callback"11}'1const axios = require('axios');2 3const response = await axios.post(4 'https://api.paylorke.com/api/v1/merchants/payments/crypto',5 {6 amount: 10.5,7 currency: 'USDT',8 reference: 'INV-1002',9 description: 'Subscription renewal',10 callbackUrl: 'https://example.com/paylor/callback'11 },12 {13 headers: {14 'Authorization': 'Bearer YOUR_API_KEY',15 'Content-Type': 'application/json'16 }17 }18);19 20console.log(response.data.address);Show your customer the returned address and the exact amount. Confirmation is automatic once a matching confirmed TRC20 transfer is detected.
/api/v1/merchants/payments/crypto/transactions?limit=50&offset=0List USDT payments with limit/offset pagination. Requires the transactions:read scope.
Use the Authorization header and query string parameters shown in the endpoint path.
1{2 "transactions": [3 {4 "id": "6660a21f8b4d2e001f5c6789",5 "transactionId": "b4a1f0...",6 "amount": 10.5,7 "currency": "USDT",8 "reference": "INV-1002",9 "status": "CONFIRMED"10 }11 ],12 "total": 1213}Code examples
1curl -X GET https://api.paylorke.com/api/v1/api/v1/merchants/payments/crypto/transactions?limit=50&offset=0 \2 -H "Authorization: Bearer YOUR_API_KEY" \3 -H "Content-Type: application/json"Crypto payments are also available for project-scoped API keys and hosted payment links.
/api/v1/merchants/payments/projects/:projectId/cryptoUse this form when your API key is scoped to a project.
1{2 "amount": 10.5,3 "currency": "USDT",4 "reference": "INV-1002"5}1{2 "payment_id": "6660a21f8b4d2e001f5c6789",3 "address": "TR7NHqSfy2efYv2NpHY5YshptfA3KHxvXp",4 "status": "INITIATED"5}Code examples
1curl -X POST https://api.paylorke.com/api/v1/api/v1/merchants/payments/projects/:projectId/crypto \2 -H "Authorization: Bearer YOUR_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "amount": 10.5,6 "currency": "USDT",7 "reference": "INV-1002"8}'/api/v1/public/crypto/pay/:slug/initiateHosted payment links can also initiate crypto payments when the merchant has an active crypto wallet.
1{2 "amount": 10.5,3 "currency": "USDT"4}1{2 "payment_id": "6660a21f8b4d2e001f5c6789",3 "address": "TR7NHqSfy2efYv2NpHY5YshptfA3KHxvXp",4 "status": "INITIATED",5 "expires_at": "2026-05-23T12:30:00.000Z"6}Code examples
1curl -X POST https://api.paylorke.com/api/v1/api/v1/public/crypto/pay/:slug/initiate \2 -H "Authorization: Bearer YOUR_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "amount": 10.5,6 "currency": "USDT"7}'