> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venlyfinance.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fee Structure

> How Fundflow ramp fees are calculated — fee tiers, exchange-rate spreads, the calculate-fee endpoint, and what shows up on the invoice.

## Overview

Fundflow applies fees to both on-ramp and off-ramp transactions. Fees are **company-specific** and may include volume-based tiers to provide better rates for higher transaction volumes.

<CardGroup cols={2}>
  <Card title="On-Ramp Fees" icon="arrow-up">
    Applied when converting fiat to crypto
  </Card>

  <Card title="Off-Ramp Fees" icon="arrow-down">
    Applied when converting crypto to fiat
  </Card>
</CardGroup>

***

## Fee Structure

### How Fees Work

Fees are calculated as a **percentage** of the transaction amount and are deducted from the total:

* **On-Ramp**: Fee is deducted from the fiat amount before conversion
* **Off-Ramp**: Fee is deducted from the crypto amount before conversion

### Fee Components

Each ramp request includes detailed fee information:

| Field               | Description                        |
| ------------------- | ---------------------------------- |
| **Fiat Amount**     | Total fiat amount (including fees) |
| **Fiat Net Amount** | Net fiat after deducting fees      |
| **Crypto Amount**   | Cryptocurrency amount              |
| **Fiat Fee Amount** | Fee amount in fiat currency        |
| **Fee Percentage**  | Percentage rate applied            |
| **Exchange Rate**   | Conversion rate used               |

***

## Calculating Fees

### Using the API

Use the [Calculate Fee](/api-reference/Fundflow-API/fees/calculate-fee-for-a-ramp-request) endpoint to determine fees before creating a ramp request:

```bash theme={null}
POST /v1/fees/calculate
Content-Type: application/json

{
  "amount": 1000.00,
  "type": "ON_RAMP"
}
```

**Response:**

```json theme={null}
{
  "success": true,
  "result": {
    "amount": 10.00,
    "percentage": 1.0
  }
}
```

### Calculation Examples

#### On-Ramp Example (1% fee)

```
Fiat Amount (sent):                  €1,000.00
Fee (1%):                            €10.00
Net Amount (converted to crypto):    €990.00
Exchange Rate:                       1 USDC = €1.00
Crypto Received:                     990 USDC
```

#### Off-Ramp Example (1% fee)

```
Crypto Amount (sent):                1,000 USDC
Fee (1%):                            10 USDC
Net Amount (converted to fiat):      990 USDC
Exchange Rate:                       1 USDC = €1.00
Fiat Received:                       €990.00
```

***

## Volume Tiers

### Tiered Pricing

Companies may have volume-based fee tiers that provide lower rates for higher transaction volumes:

| Tier       | Volume Range      | Fee Percentage |
| ---------- | ----------------- | -------------- |
| **Tier 1** | €0 - €10,000      | 1.5%           |
| **Tier 2** | €10,001 - €50,000 | 1.0%           |
| **Tier 3** | €50,001+          | 0.75%          |

<Note>
  Fee tiers are configured per company. [Contact Venly](https://venlyfinance.com/contact) to discuss custom pricing for your business needs.
</Note>

### Viewing Your Fee Configuration

Use the [Get Company Fee Configuration](/api-reference/Fundflow-API/fees/get-company-fee-configuration) endpoint:

```bash theme={null}
GET /v1/fees
```

**Response:**

```json theme={null}
{
  "success": true,
  "result": [
    {
      "id": "fee-tier-1-id",
      "companyId": "your-company-id",
      "name": "Standard Tier",
      "type": "ON_RAMP",
      "minVolume": 0,
      "maxVolume": 10000,
      "percentage": 1.5,
      "version": 1
    },
    {
      "id": "fee-tier-2-id",
      "companyId": "your-company-id",
      "name": "Volume Tier",
      "type": "ON_RAMP",
      "minVolume": 10001,
      "maxVolume": 50000,
      "percentage": 1.0,
      "version": 1
    }
  ]
}
```

***

## Fee Application

### When Fees Are Applied

Fees are applied at different stages depending on the ramp type:

```mermaid theme={null}
flowchart LR
    subgraph On["On-ramp (fiat → crypto)"]
        A1[Customer sends fiat] --> B1[Fee deducted from fiat]
        B1 --> C1[Convert remaining fiat at FX rate]
        C1 --> D1[Crypto credited to wallet]
    end
    subgraph Off["Off-ramp (crypto → fiat)"]
        A2[Customer sends crypto] --> B2[Fee deducted from crypto]
        B2 --> C2[Convert remaining crypto at FX rate]
        C2 --> D2[Fiat credited to bank]
    end
```

In both directions the fee is taken in the **input** currency, before conversion.

**On-Ramp:**

1. Fiat is sent to Venly deposit account
2. Fee is deducted from the fiat amount
3. Net amount is converted to crypto at current exchange rate
4. Crypto is sent to company wallet

**Off-Ramp:**

1. Crypto is sent to Venly deposit wallet
2. Fee is deducted from the crypto amount
3. Net amount is converted to fiat at current exchange rate
4. Fiat is sent to company bank account

### Fee Transparency

All fee information is clearly displayed in the ramp request:

```json theme={null}
{
  "id": "ramp-request-id",
  "rampType": "ON_RAMP",
  "fiatAmount": 1000.00,
  "fiatNetAmount": 990.00,
  "fiatFeeAmount": 10.00,
  "feePercentage": 1.0,
  "cryptoAmount": 990.00,
  "exchangeRate": 1.0,
  ...
}
```

***

## Exchange Rates

### How Rates Are Determined

Exchange rates are determined at the time of conversion and reflect current market conditions:

* Rates are sourced from reliable market data providers
* Rates include a small spread to account for market volatility
* Rates are locked when the transaction enters PROCESSING status

### Rate Visibility

The exchange rate used for each transaction is included in the ramp request details:

```bash theme={null}
GET /v1/ramp-requests/{id}
```

```json theme={null}
{
  "exchangeRate": 1.0012,
  "fiatAmount": 1000.00,
  "cryptoAmount": 998.80,
  ...
}
```

<Note>
  Exchange rates may fluctuate between request creation and processing. The final rate is determined when the payment is received and conversion begins.
</Note>

***

## Best Practices

### Before Creating Requests

<Tip>
  **Calculate Fees First**: Always use the fee calculation endpoint before creating large ramp requests to understand the total cost.
</Tip>

<Tip>
  **Check Volume Tiers**: If you're close to a tier threshold, consider batching transactions to benefit from lower fees.
</Tip>

### Optimizing Costs

<Tip>
  **Batch Transactions**: Combine multiple smaller transactions into larger ones to potentially benefit from volume tier pricing.
</Tip>

<Tip>
  **Plan Ahead**: Schedule large transactions during periods of lower market volatility to minimize exchange rate risk.
</Tip>

### Transparency

<Tip>
  **Review Breakdowns**: Always review the complete fee and amount breakdown before approving ramp requests.
</Tip>

<Tip>
  **Export Records**: Use the export functionality to maintain detailed records for accounting and tax purposes.
</Tip>

***

## Fee-Related API Endpoints

<CardGroup cols={2}>
  <Card title="Calculate Fee" icon="calculator" href="/api-reference/Fundflow-API/fees/calculate-fee-for-a-ramp-request">
    Calculate fees for a specific amount
  </Card>

  <Card title="Get Fee Configuration" icon="gear" href="/api-reference/Fundflow-API/fees/get-company-fee-configuration">
    View your company's fee tiers
  </Card>

  <Card title="Create Ramp Request" icon="plus" href="/api-reference/Fundflow-API/ramp-requests/create-a-new-ramp-request">
    Create a new transaction
  </Card>

  <Card title="Export Requests" icon="download" href="/api-reference/Fundflow-API/ramp-requests/export-ramp-requests">
    Export transaction records
  </Card>
</CardGroup>

***

## Understanding Your Invoice

### What's Included

Your Fundflow invoice includes:

* Total transaction volume for the billing period
* Number of transactions processed
* Total fees collected
* Breakdown by transaction type (on-ramp vs off-ramp)

### Accessing Invoices

View your invoices through the company details:

```bash theme={null}
GET /v1/company
```

```json theme={null}
{
  "success": true,
  "result": {
    "id": "company-id",
    "name": "Your Company",
    "invoicesUrl": "https://portal.venly.io/invoices",
    ...
  }
}
```

***

## Custom Pricing

### Enterprise Pricing

For high-volume businesses, Venly offers custom pricing arrangements:

* **Volume Discounts**: Lower fees for consistent high-volume usage
* **Custom Tiers**: Tailored tier structures for your business model
* **Fixed Pricing**: Predictable costs for budgeting purposes

<Note>
  [Contact Venly](https://venlyfinance.com/contact) to discuss enterprise pricing options for your business.
</Note>

***

## Frequently Asked Questions

<AccordionGroup>
  <Accordion title="Are fees the same for on-ramp and off-ramp?">
    Fees can be configured differently for on-ramp and off-ramp operations. Check your fee configuration to see the specific rates for each type.
  </Accordion>

  <Accordion title="Can I negotiate lower fees?">
    Yes, companies with high transaction volumes can [contact Venly](https://venlyfinance.com/contact) to discuss custom pricing arrangements.
  </Accordion>

  <Accordion title="Are there any hidden fees?">
    No. All fees are transparently displayed in the fee calculation and ramp request details. The only costs are the percentage-based fees shown.
  </Accordion>

  <Accordion title="How often do exchange rates update?">
    Exchange rates are updated in real-time based on market conditions. The rate used for your transaction is locked when processing begins.
  </Accordion>

  <Accordion title="What happens if the exchange rate changes after I create a request?">
    The exchange rate is locked when your transaction enters PROCESSING status (after payment is received). Any rate changes before that point will be reflected in the final conversion.
  </Accordion>

  <Accordion title="Can I get a refund on fees if a transaction fails?">
    If a transaction fails before processing begins, no fees are charged. If it fails during processing, [contact us](https://venlyfinance.com/contact) to review the specific case.
  </Accordion>
</AccordionGroup>

***

## Next Steps

<CardGroup cols={3}>
  <Card title="Create Ramp Request" icon="arrow-right-arrow-left" href="/guides/payments/transactions">
    Start creating transactions
  </Card>

  <Card title="Account Management" icon="building-columns" href="/guides/payments/accounts">
    Set up bank accounts and wallets
  </Card>

  <Card title="Glossary" icon="book" href="/guides/payments/glossary">
    Understand key terms
  </Card>
</CardGroup>
