Payroll
Pay employees and contractors in stablecoins or fiat using SpherePay.
Use SpherePay to disburse payroll in stablecoins or convert stablecoin payments to fiat for employees and contractors. This is common for companies with globally distributed teams or crypto-native workforces.
Overview
SpherePay supports two payroll models:
| Model | Flow | Best For |
|---|---|---|
| Stablecoin Payroll | USD → USDC → Employee Wallet | Crypto-native employees, international contractors |
| Fiat Payroll | USDC → USD → Employee Bank | Traditional employees who prefer fiat |
Third-Party Transactions
Payroll disbursements are third-party transactions—you're moving funds on behalf of another party (your employees or contractors).
Caution
Important: Each payee must be a verified customer in SpherePay with completed KYC/KYB before they can receive funds.
Setup Requirements
Before processing payroll:
- Verify your company — Complete KYB
- Verify each payee — Each employee/contractor needs KYC
- Register payment instruments:
- Wallet addresses for stablecoin payments
- Bank accounts for fiat payments
Model 1: Stablecoin Payroll
Flow
Your Bank → [SpherePay On-Ramp] → USDC → Employee WalletImplementation
For each payee:
curl -X POST https://api.spherepay.co/v2/transfer \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customerId": "customer_employee_123",
"type": "onRamp",
"sourceAmount": "5000.00",
"sourceCurrency": "USD",
"destinationCurrency": "USDC",
"destinationNetwork": "solana",
"bankAccountId": "bank_company",
"walletId": "wallet_employee_123"
}'Batch Processing
For multiple employees, create transfers in parallel:
const employees = [
{ customerId: 'customer_employee_1', amount: '5000.00', walletId: 'wallet_1' },
{ customerId: 'customer_employee_2', amount: '4500.00', walletId: 'wallet_2' },
{ customerId: 'customer_employee_3', amount: '6000.00', walletId: 'wallet_3' },
];
const transfers = await Promise.all(
employees.map(emp =>
createTransfer({
customerId: emp.customerId,
type: 'onRamp',
sourceAmount: emp.amount,
sourceCurrency: 'USD',
destinationCurrency: 'USDC',
destinationNetwork: 'solana',
bankAccountId: COMPANY_BANK_ID,
walletId: emp.walletId,
})
)
);Model 2: Fiat Payroll (via Off-Ramp)
Flow
Your USDC Treasury → [SpherePay Off-Ramp] → USD → Employee BankImplementation
For each payee:
curl -X POST https://api.spherepay.co/v2/transfer \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customerId": "customer_employee_123",
"type": "offRamp",
"sourceAmount": "5000.00",
"sourceCurrency": "USDC",
"sourceNetwork": "ethereum",
"destinationCurrency": "USD",
"walletId": "wallet_company",
"bankAccountId": "bank_employee_123"
}'Automated Payroll with Off-Loader Wallet
For recurring payroll, use Off-Loader Wallets:
- Create an off-loader wallet for each employee
- Send stablecoins to their off-loader address
- SpherePay auto-converts to fiat and deposits to their bank
This eliminates the need to create individual transfers each pay period.
Tracking Payroll Status
Polling
Poll transfer status to track each payment:
curl "https://api.spherepay.co/v2/transfer/transfer_xxx" \
-H "Authorization: Bearer YOUR_API_KEY"Compliance Considerations
- KYC all payees: Every recipient must be a verified customer
- Collect tax information: You're responsible for tax reporting (W-9, W-8BEN, etc.)
- Document transfers: Maintain records of all payroll disbursements
Best Practices
- Batch carefully: Group transfers to minimize API calls
- Handle failures gracefully: Build retry logic for failed transfers
- Use idempotency keys: Prevent duplicate payments with idempotency keys
- Communicate with payees: Let employees know expected settlement times
Settlement Times
| Payment Type | Method | Settlement |
|---|---|---|
| USD → USDC | ACH | 2-3 business days |
| USD → USDC | Wire | Same/next business day |
| USDC → USD | ACH | 2-3 business days |
| USDC → USD | Wire | Same/next business day |
Related Guides
- Transfers API — Detailed transfer documentation
- Off-Loader Wallet — Automated fiat payouts
- KYC Flow — Onboarding employees
Last updated on