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

# Widget integration

> Ripio's embeddable On/Off Ramp widget: what your users can do inside it, what you configure, and what your backend still owns.

The widget is a hosted, themeable flow that takes a user from local currency to crypto and back. You mint a session token, send the user to a URL, and Ripio handles everything in between — identity, verification, payment, payout, history, refunds and support — while your backend follows along through the webhooks you already receive.

There is nothing to install: no SDK, no npm package, no script tag.

### What your users can do inside

<CardGroup cols={2}>
  <Card title="Sign in with an email" icon="envelope" href="/ramps-api/widget/flows/identity-and-terms">
    A one-time code establishes who they are, and Terms & Conditions acceptance is shared with your API integration.
  </Card>

  <Card title="Verify their identity" icon="id-card" href="/ramps-api/widget/flows/kyc">
    The full KYC flow, including the hand-off to the identity provider and the wait for a decision.
  </Card>

  <Card title="Buy crypto" icon="arrow-down" href="/ramps-api/widget/flows/on-ramp">
    Bank transfer, PIX, request-to-pay, Mercado Pago, PSE or card, depending on the country.
  </Card>

  <Card title="Sell crypto" icon="arrow-up" href="/ramps-api/widget/flows/off-ramp">
    Paid out to a destination account they nominate and can reuse next time.
  </Card>

  <Card title="See their past operations" icon="clock-rotate-left" href="/ramps-api/widget/flows/history-and-refunds">
    A history with per-operation timelines, and the ability to claim money back when something went wrong.
  </Card>

  <Card title="Fix a rejected payout" icon="wrench" href="/ramps-api/widget/flows/order-recovery">
    Change the destination account and have the order reprocessed — from inside the session, or from an emailed link days later.
  </Card>

  <Card title="Get help" icon="circle-question" href="/ramps-api/widget/troubleshooting">
    Open a support ticket from most screens, visible to your team through the public API.
  </Card>

  <Card title="Read it in their language" icon="language" href="/ramps-api/widget/configuration/partner-settings#language">
    Spanish, Rioplatense Spanish, English and Portuguese, chosen automatically or forced by you.
  </Card>
</CardGroup>

### What depends on your configuration

Not every capability is on for every account. These are the ones worth confirming before you build against them:

| Capability                    | Available when                                                                                                                                  |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Identity verification         | Verification is enabled on your account. When it is not, users transact without it.                                                             |
| Transaction history           | History is enabled on your account.                                                                                                             |
| In-widget refunds             | History is enabled, **plus** the per-ramp refund opt-in on your account. Refunds are claimed from the history, so the two are enabled together. |
| Emailed payout recovery links | Recovery is enabled on your account. It fails closed: without it, no link is sent.                                                              |
| Payment and payout methods    | The providers enabled for your account, per country.                                                                                            |
| Off-ramp QR deposit screen    | The QR screen is enabled on your account; otherwise the off-ramp redirects straight back to you.                                                |
| Wallet address at sign-in     | Your account requires the address when you mint a session token.                                                                                |

See [Partner settings](/ramps-api/widget/configuration/partner-settings) for what else is configurable. All of it is set by Ripio — ask your Ripio contact to change any of it.

### Countries and methods

**Buying crypto**

| Country   | Payment methods                                     |
| --------- | --------------------------------------------------- |
| Argentina | Bank transfer to a CVU, Mercado Pago                |
| Mexico    | Bank transfer to a CLABE (SPEI)                     |
| Colombia  | PSE, BRE-B, request-to-pay via Bancolombia or Nequi |
| Brazil    | PIX                                                 |

**Selling crypto**

| Country   | Payout methods                       |
| --------- | ------------------------------------ |
| Argentina | Bank transfer to a CBU, CVU or alias |
| Mexico    | Bank transfer to a CLABE             |
| Colombia  | BRE-B key, or bank account           |
| Brazil    | PIX key                              |

<Note>
  For the full country-by-country breakdown, including limits and provider details, see [Countries & payment methods](/ramps-api/overview/countries/overview).
</Note>

### What stays on your side

The widget owns the user's experience, not your integration. You are still responsible for:

* **Minting a session token** per user, per visit. See [Authentication](/ramps-api/widget/get-started/authentication).
* **Mapping `external_ref` to your own user.** It is the key every webhook and redirect comes back with.
* **Receiving webhooks.** The widget produces the same [Ramps events](/ramps-api/webhooks/introduction) an API integration does, so your ledger, notifications and reconciliation work unchanged.
* **Handling the return.** The widget sends users back to one redirect URL. See [Returning to your app](/ramps-api/widget/get-started/returning-to-your-app).

<Note>
  Deciding between this and integrating the API directly? See [Choose your integration](/ramps-api/overview/choose-your-integration).
</Note>

### Get started

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/ramps-api/widget/get-started/authentication">
    Request credentials and mint a session token.
  </Card>

  <Card title="Launch the widget" icon="link" href="/ramps-api/widget/get-started/launch">
    The URLs, the sandbox hosts, and every parameter you can prefill.
  </Card>
</CardGroup>
