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

# Pods Ramp Overview

> How Pods Ramp works end to end: KYC, fiat-to-crypto money movement, and status tracking

Pods Ramp lets your application own the user experience while Pods handles local KYC/AML integration and fiat-to-crypto money movement. A user completes reusable KYC once, then moves money across Pix and foreign USD rails through a single set of Swap v2 quote routes.

<Info>
  Pods Ramp is live today for Brazil (Pix) and foreign USD (WIRE/ACH), and is expanding to more countries in Latin America. Onramp, offramp, and ramp-to-yield all run through `GET /v2/swap/quote` — `originChain`/`destinationChain` select the rail and `tokenIn`/`tokenOut` select the currency or on-chain asset.
</Info>

## Introduction

| Item                  | Value                                                                                             |
| --------------------- | ------------------------------------------------------------------------------------------------- |
| **Countries / rails** | Brazil Pix (live) and foreign USD WIRE/ACH (live); more LatAm rails expanding                     |
| **Routes**            | Onramp (fiat → crypto), offramp (crypto → fiat), ramp-to-yield (Pix → Morpho hyperUSDCa on Monad) |
| **Pix pairs**         | USDC, BRLA, BRS, BRZ, and hyperUSDCa (Monad) against Pix BRL                                      |
| **Foreign USD pairs** | USD WIRE/ACH ↔ USDC on `ethereum`, `base`, `polygon`                                              |
| **KYC submit**        | `POST /api/v1/kyc/sumsub-share-token`                                                             |
| **Quote endpoint**    | `GET /v2/swap/quote` (onramp, offramp, and yield)                                                 |
| **Status endpoints**  | `GET /api/v1/kyc/status` (approval) · `GET /v2/swap/status/{quoteId}` (money movement)            |
| **Auth**              | Header `x-api-key: <your-key>`                                                                    |

## Authentication

Every request requires:

```
x-api-key: <your-api-key>
```

* The key identifies your **customer**. Fee configuration and strategy catalog are scoped to it.
* Success responses are the bare JSON body (HTTP 200). Errors use `{ "error": { "code", "message", "details?" } }`.
* Keep the API key on your **backend** — never expose it in a browser app.

Don't have a key yet? [Get an API key](https://www.pods.finance/plg/select-plan).

## Integration flow

<Steps>
  <Step title="Configure Sumsub reusable KYC">
    Add the local KYC/AML provider as a reusable identity recipient in Sumsub and configure the `pods-ramp-level` verification level. Your user completes identity verification through Sumsub WebSDK in your app.

    Full guide: [Set up Pods Ramp](/guides/ramp/setup).
  </Step>

  <Step title="Submit the share token to Pods">
    After Sumsub returns `completed + GREEN`, your backend generates a fresh Sumsub share token and submits it to Pods with the user's tax id, applicant id, email, and wallet address:

    ```http theme={null}
    POST /api/v1/kyc/sumsub-share-token
    ```

    The response returns a `kycUserId` — store it for status checks. Full guide: [Set up Pods Ramp](/guides/ramp/setup).
  </Step>

  <Step title="Poll approval status">
    Local provider validation is asynchronous. Poll until the Ramp profile reaches `approved`, which enables money movement:

    ```http theme={null}
    GET /api/v1/kyc/status?kycUserId=550e8400-e29b-41d4-a716-446655440000
    ```

    Full guide: [Track Pods Ramp status](/guides/ramp/status).
  </Step>

  <Step title="Get a quote">
    Once approved, request an onramp, offramp, or ramp-to-yield quote. `originChain`/`destinationChain` select the rail; `tokenIn`/`tokenOut` select the currency or asset:

    ```http theme={null}
    GET /v2/swap/quote
    ```

    The response includes payment instructions (Pix copy-paste or bank details) on onramps, or `transactionData` to sign on offramps. Full guide: [Move money with Pods Ramp](/guides/ramp/quotes).
  </Step>

  <Step title="Execute">
    The user pays via the local rail (onramp has no on-chain transaction to sign), or your app signs the returned `transactionData` from the approved wallet (offramp):

    ```http theme={null}
    GET /v2/swap/quote
    ```

    Full guide: [Move money with Pods Ramp](/guides/ramp/quotes).
  </Step>

  <Step title="Track money movement">
    Track the onramp, offramp, or yield flow to `fulfilled` with the quote's `quoteId`:

    ```http theme={null}
    GET /v2/swap/status/{quoteId}
    ```

    Full guide: [Track Pods Ramp status](/guides/ramp/status).
  </Step>
</Steps>
