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

# FAQ

> Answers to frequently asked questions about NowRamp

## Getting Started

<AccordionGroup>
  <Accordion title="What is NowRamp and what does it do?">
    NowRamp is a multi-provider aggregation platform for crypto on-ramp. It compares quotes from multiple payment gateways in real-time, ranks them by rate, fees, and speed, and lets your users complete checkout with the best available provider. You integrate once and get access to all gateways.
  </Accordion>

  <Accordion title="What's the difference between Partner, Project, and Customer?">
    These form our multi-tenancy hierarchy. A **Partner** is your company (the top-level tenant). **Projects** are sub-tenants under your partner account, typically representing different apps or environments (staging, production). **Customers** are your end users who buy and sell crypto. See our [Core Concepts](/concepts) guide for more details.
  </Accordion>

  <Accordion title="How do I get started with integration?">
    The fastest way is to use our React components (`@nowramp/form`) which provide a complete checkout form. Alternatively, use the JavaScript SDK (`@nowramp/sdk`) for programmatic control, or call the Onramp API directly. Follow our [Quickstart guide](/quickstart) to get running in minutes.
  </Accordion>

  <Accordion title="What environments are available?">
    We provide two environments: **Sandbox** (`api.sandbox.nowramp.com`) for testing with mock data, and **Production** (`api.nowramp.com`) for live transactions. Always test thoroughly in sandbox before going live.
  </Accordion>

  <Accordion title="Do I need to build my own UI?">
    No. The `@nowramp/form` package provides a complete, customizable checkout form as a React component. For non-React apps, a standalone IIFE build is available. If you want full UI control, use the data hooks (`useRampConfig`, `useQuotes`, `useCheckoutIntent`, `useTransaction`) or the `RampApi` SDK client directly.
  </Accordion>
</AccordionGroup>

## Integration

<AccordionGroup>
  <Accordion title="Do I need an API key?">
    The Onramp API is public — no API key required. Just pass your `projectId`. Optionally include a public key (`pk_`) for higher rate limits (1000 vs 60 requests per minute). Secret keys (`sk_`) are only needed for partner dashboard operations.
  </Accordion>

  <Accordion title="What are the three integration options?">
    1. **React Components** (`@nowramp/form`) — drop-in `RampForm` component with theming and hooks
    2. **JavaScript SDK** (`@nowramp/sdk`) — `RampApi` client for programmatic access
    3. **Raw API** — direct HTTP calls to the onramp endpoints

    All three use the same underlying API. Choose based on your stack and how much UI control you need.
  </Accordion>

  <Accordion title="How long do transactions take?">
    Most transactions complete within 5-15 minutes, depending on the gateway and blockchain network. The `estimatedTime` field in quotes gives per-gateway estimates. Blockchain confirmation times vary by network (Bitcoin takes longer than Polygon, for example).
  </Accordion>

  <Accordion title="What transaction statuses should I track?">
    The key statuses are: `pending` (awaiting payment), `processing` (payment received, transferring crypto), `completed` (crypto delivered), `failed` (something went wrong), and `refunded` (payment returned). See [Core Concepts](/concepts) for the full status flow diagram.
  </Accordion>
</AccordionGroup>

## Multi-Provider Aggregation

<AccordionGroup>
  <Accordion title="What is multi-provider aggregation?">
    NowRamp compares quotes from multiple payment gateways in real-time and returns them ranked by rate, fees, and speed. This lets your users see the best available option for their purchase, similar to how flight comparison sites work. See the [Onramp API](/api/onramp) for details.
  </Accordion>

  <Accordion title="Which payment gateways are supported?">
    NowRamp supports multiple payment gateways that are regularly updated. Use the `getSupported()` API method to get the current list of enabled gateways for your project. See the [Onramp API](/api/onramp) reference.
  </Accordion>

  <Accordion title="How are quotes ranked?">
    The API returns three pre-ranked results: **best rate** (most crypto for your fiat), **fastest** (shortest processing time), and **cheapest fees** (lowest total fee). Each quote also has a composite routing score (0-100) for custom sorting. See the [Multi-Provider Quotes guide](/guides/multi-provider-quotes).
  </Accordion>

  <Accordion title="Can I restrict which gateways my users see?">
    Gateway availability is configured at the project level. Contact your account manager to enable or disable specific gateways. You can also filter gateways programmatically using the `features` field from the supported config.
  </Accordion>

  <Accordion title="What happens if a gateway is unavailable?">
    When a gateway can't provide a quote (due to downtime, unsupported currency pair, or geographic restrictions), it appears in the `unavailableGateways` array with a reason. Remaining gateways still return quotes normally. The aggregation engine includes health monitoring to automatically exclude unhealthy gateways.
  </Accordion>
</AccordionGroup>

## Fees & Pricing

<AccordionGroup>
  <Accordion title="How do fees work?">
    Each quote includes a full fee breakdown: processing fee, network fee, total fee, and fee percentage. Fees vary by gateway, payment method, and currency pair. The `bestQuote`, `cheapestFees`, and `fastestQuote` convenience fields help users find the best option.
  </Accordion>

  <Accordion title="Are the displayed amounts inclusive of all fees?">
    Yes. The `cryptoAmount` in each quote is the amount the user will actually receive after all fees. The `fees` object provides a transparent breakdown.
  </Accordion>

  <Accordion title="Are there minimum or maximum transaction amounts?">
    Yes. The `minAmount` and `maxAmount` fields in the supported config vary by currency and gateway. Typical minimums are around \$20-50 USD equivalent. Use these to validate amounts before fetching quotes.
  </Accordion>
</AccordionGroup>

## Webhooks

<AccordionGroup>
  <Accordion title="Which webhook events should I listen for?">
    At minimum, handle `transaction.completed` (crypto delivered) and `transaction.failed` (something went wrong). See the [Callback URLs guide](/guides/callback-urls) for the complete event list and payload examples.
  </Accordion>

  <Accordion title="What happens if my webhook endpoint is down?">
    Failed deliveries are retried with exponential backoff up to 5 times. After that, events go to a dead-letter queue where you can manually retry them via the API or Partner Dashboard.
  </Accordion>

  <Accordion title="How do I verify webhook signatures?">
    Every webhook includes an `X-Webhook-Signature` header containing an HMAC-SHA256 signature. Compute the expected signature using your webhook secret and compare using a timing-safe comparison. See the [Webhooks guide](/guides/webhooks) for code examples.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Why am I getting rate limited?">
    Without an API key, public endpoints are limited to 60 requests per minute. Add a public key (`pk_`) in the `X-API-Key` header to increase the limit to 1000 requests per minute. See the [Authentication guide](/guides/authentication).
  </Accordion>

  <Accordion title="My webhook endpoint isn't receiving events. What should I check?">
    Verify your webhook URL is correct in project settings and is publicly accessible (HTTPS required in production). Check your server logs for incoming requests. Use the Partner Dashboard to view delivery attempts and manually retry failed events.
  </Accordion>

  <Accordion title="Who do I contact for support?">
    For technical issues, reach out to your account manager or email [support@nowramp.com](mailto:support@nowramp.com) with relevant transaction IDs and error messages.
  </Accordion>
</AccordionGroup>
