Skip to main content

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

FieldTypeDescription
transaction_feesobjectPayment transaction fee configuration
transaction_fees.percentagestringBase fee percentage
transaction_fees.is_paid_by_userbooleanWhether customers pay the fee
transaction_fees.minimum_feesobjectMinimum fee per currency
withdrawal_feesobjectWithdrawal fee configuration
withdrawal_fees.network_feesobjectCurrent network fee estimates
volume_discountsarrayVolume-based fee tiers
current_volumeobjectCurrent volume and tier status
fee_examplesobjectExample 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 VolumeTransaction FeeSavings
< $10,0001.0%-
$10,000 - $49,9990.9%10% off
$50,000 - $99,9990.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

Next Steps