Platform Fees
GET
/user/fees/
Get detailed platform fee configuration for your merchant account.
Authentication
Requires OAuth 2.0 authentication with read scope.
Example Request
curl -X GET https://api.cryptofuse.io/user/fees/ \
-H "Authorization: Bearer your_access_token"
Response
Success Response (200 OK)
{
"transaction_fees": {
"percentage": "1.0",
"is_paid_by_user": true,
"minimum_fees": {
"USDTERC20": "0.10",
"USDCERC20": "0.10",
"DAIERC20": "0.10",
"ETH": "0.0001",
"WETH": "0.0001"
}
},
"withdrawal_fees": {
"percentage": "1.0",
"minimum_fees": {
"USDTERC20": "1.00",
"USDCERC20": "1.00",
"DAIERC20": "1.00",
"ETH": "0.001",
"WETH": "0.001"
},
"network_fees": {
"USDTERC20": {
"estimate": "3.50",
"currency": "USD",
"updated_at": "2025-01-15T10:00:00Z"
},
"USDCERC20": {
"estimate": "3.50",
"currency": "USD",
"updated_at": "2025-01-15T10:00:00Z"
},
"ETH": {
"estimate": "0.0015",
"currency": "ETH",
"updated_at": "2025-01-15T10:00:00Z"
}
}
},
"volume_discounts": [
{
"monthly_volume_usd": "10000.00",
"transaction_fee_percentage": "0.9",
"withdrawal_fee_percentage": "0.9"
},
{
"monthly_volume_usd": "50000.00",
"transaction_fee_percentage": "0.8",
"withdrawal_fee_percentage": "0.8"
},
{
"monthly_volume_usd": "100000.00",
"transaction_fee_percentage": "0.7",
"withdrawal_fee_percentage": "0.7"
}
],
"current_volume": {
"monthly_volume_usd": "45678.90",
"current_tier": {
"threshold": "10000.00",
"transaction_fee_percentage": "0.9",
"withdrawal_fee_percentage": "0.9"
},
"next_tier": {
"threshold": "50000.00",
"transaction_fee_percentage": "0.8",
"withdrawal_fee_percentage": "0.8",
"volume_needed": "4321.10"
}
},
"fee_examples": {
"payment_100_usd": {
"amount": "100.00",
"currency": "USDTERC20",
"transaction_fee": "1.00",
"network_fee": "0.00",
"total_fee": "1.00",
"user_pays": "101.00",
"merchant_receives": "100.00"
},
"withdrawal_100_usdt": {
"amount": "100.00",
"currency": "USDTERC20",
"transaction_fee": "1.00",
"network_fee": "3.50",
"total_fee": "4.50",
"total_deducted": "104.50"
}
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
transaction_fees | object | Payment transaction fee configuration |
transaction_fees.percentage | string | Base fee percentage |
transaction_fees.is_paid_by_user | boolean | Whether customers pay the fee |
transaction_fees.minimum_fees | object | Minimum fee per currency |
withdrawal_fees | object | Withdrawal fee configuration |
withdrawal_fees.network_fees | object | Current network fee estimates |
volume_discounts | array | Volume-based fee tiers |
current_volume | object | Current volume and tier status |
fee_examples | object | Example calculations |
Fee Calculation
Payment Fees (User Pays)
Customer wants to pay: $100
Transaction fee: 1% = $1.00
Customer pays: $101.00
Merchant receives: $100.00
Payment Fees (Merchant Pays)
Customer pays: $100.00
Transaction fee: 1% = $1.00
Merchant receives: $99.00
Withdrawal Fees
Withdraw amount: 100 USDT
Transaction fee: max(1%, $1.00) = $1.00
Network fee: $3.50
Total deducted: 104.50 USDT
Volume Discounts
Transaction fees are automatically reduced based on monthly volume:
| Monthly Volume | Transaction Fee | Savings |
|---|---|---|
| < $10,000 | 1.0% | - |
| $10,000 - $49,999 | 0.9% | 10% off |
| $50,000 - $99,999 | 0.8% | 20% off |
| $100,000+ | 0.7% | 30% off |
Usage Examples
Fee Calculator
async function calculateFees(amount, currency, operation = 'payment') {
const response = await fetch('https://api.cryptofuse.io/user/fees/', {
headers: {
'Authorization': `Bearer ${accessToken}`
}
});
const feeConfig = await response.json();
if (operation === 'payment') {
const feePercent = parseFloat(feeConfig.transaction_fees.percentage);
const minFee = parseFloat(feeConfig.transaction_fees.minimum_fees[currency] || 0);
const transactionFee = Math.max(amount * feePercent / 100, minFee);
if (feeConfig.transaction_fees.is_paid_by_user) {
return {
userPays: amount + transactionFee,
merchantReceives: amount,
totalFee: transactionFee
};
} else {
return {
userPays: amount,
merchantReceives: amount - transactionFee,
totalFee: transactionFee
};
}
} else if (operation === 'withdrawal') {
const feePercent = parseFloat(feeConfig.withdrawal_fees.percentage);
const minFee = parseFloat(feeConfig.withdrawal_fees.minimum_fees[currency] || 0);
const transactionFee = Math.max(amount * feePercent / 100, minFee);
const networkFee = parseFloat(feeConfig.withdrawal_fees.network_fees[currency]?.estimate || 0);
return {
withdrawAmount: amount,
transactionFee: transactionFee,
networkFee: networkFee,
totalDeducted: amount + transactionFee + networkFee
};
}
}
// Example usage
const paymentFees = await calculateFees(100, 'USDTERC20', 'payment');
console.log(`Customer pays: $${paymentFees.userPays}`);
console.log(`You receive: $${paymentFees.merchantReceives}`);
Volume Tier Progress
def show_volume_progress():
"""Display current volume tier and progress to next tier."""
response = requests.get(
'https://api.cryptofuse.io/user/fees/',
headers={'Authorization': f'Bearer {access_token}'}
)
if response.status_code == 200:
data = response.json()
current = data['current_volume']
print(f"Monthly Volume: ${current['monthly_volume_usd']:,.2f}")
print(f"Current Tier: {current['current_tier']['transaction_fee_percentage']}%")
if 'next_tier' in current:
next_tier = current['next_tier']
progress = float(current['monthly_volume_usd']) / float(next_tier['threshold']) * 100
print(f"\nNext Tier Progress: {progress:.1f}%")
print(f"Volume needed: ${next_tier['volume_needed']:,.2f}")
print(f"Next tier fee: {next_tier['transaction_fee_percentage']}%")
# Calculate potential savings
current_fee = float(current['current_tier']['transaction_fee_percentage'])
next_fee = float(next_tier['transaction_fee_percentage'])
savings = ((current_fee - next_fee) / current_fee) * 100
print(f"Potential savings: {savings:.0f}%")
else:
print("\n✓ Maximum discount tier reached!")
Network Fee Updates
Network fees are dynamic and updated based on blockchain conditions:
- Ethereum: Updates every 5 minutes based on gas prices
- Polygon: Updates every 10 minutes
- BSC: Updates every 10 minutes
- Layer 2s: Generally more stable, updates hourly
Custom Fee Arrangements
For high-volume merchants, custom fee structures are available:
- Volume over $1M/month: Contact sales
- Non-profit organizations: Special rates available
- Strategic partners: Negotiated rates
Error Responses
401 Unauthorized
{
"error": {
"code": "authentication_failed",
"message": "Invalid or missing authentication token"
}
}
Important Notes
- Fees are calculated at transaction time using current rates
- Volume discounts apply automatically at the start of each tier
- Monthly volume resets on the 1st of each month at 00:00 UTC
- Network fees are estimates and final fees may vary slightly
- All fees are transparent and shown before transaction confirmation