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

# Pagos Cross-Chain

> Acepta pagos desde Solana, Ethereum, Base, Arbitrum, NEAR, Tron y más

## Descripción general

Los pagos cross-chain permiten que tus clientes paguen desde **cualquier blockchain soportada**, no solo Stellar. Ebioro maneja la conversión automáticamente — los fondos llegan a tu cuenta como USDC en Stellar sin importar desde qué cadena pague el cliente.

<Warning>
  Los pagos cross-chain solo están disponibles en el **entorno de producción**. El sandbox no soporta depósitos cross-chain.
</Warning>

## Cadenas soportadas

| Cadena    | Tokens     |
| --------- | ---------- |
| Ethereum  | USDC, USDT |
| Base      | USDC       |
| Arbitrum  | USDC       |
| Solana    | USDC, USDT |
| Tron      | USDT       |
| BNB Chain | USDT, USDC |
| Optimism  | USDC, USDT |
| NEAR      | USDC       |

<Note>
  Las rutas y tokens disponibles son dinámicos según la liquidez. Usa el [endpoint de rutas](/api-reference/cross-chain/get-routes) para obtener la lista actual.
</Note>

## Cómo funciona

```mermaid theme={null}
sequenceDiagram
    participant M as Merchant
    participant E as Ebioro API
    participant C as Cliente

    M->>E: 1. Crear pago
    M->>E: 2. GET /cross-chain/routes
    E-->>M: Cadenas y tokens disponibles
    M->>E: 3. POST /cross-chain/quote
    E-->>M: Dirección de depósito + monto
    M->>C: 4. Mostrar dirección de depósito
    C->>E: 5. Cliente envía tokens en la cadena origen
    E->>M: 6. Webhook: pago confirmado
    E->>E: 7. Liquidación a cuenta del merchant
    E->>M: 8. Webhook: liquidación completa
```

## Flujo de integración

### Paso 1: Crear un pago

Crea un pago como de costumbre vía `POST /payments`. Esto te da un `checkout_id`.

### Paso 2: Obtener rutas disponibles

```bash theme={null}
GET /payments/{checkout_id}/cross-chain/routes
Authorization: Bearer {token}
```

Devuelve las cadenas y tokens con los que el cliente puede pagar, filtrados por liquidez actual.

### Paso 3: Solicitar una cotización

Una vez que el cliente selecciona una cadena/token:

```bash theme={null}
POST /payments/{checkout_id}/cross-chain/quote
Authorization: Bearer {token}

{
  "originChain": "sol",
  "originToken": "USDC",
  "refundAddress": "direccion_solana_del_cliente"
}
```

La respuesta incluye:

* `depositAddress` — la dirección en la cadena origen donde el cliente envía los fondos
* `amountIn` — el monto exacto que el cliente debe enviar
* `deadline` — cuándo expira la cotización
* `timeEstimateSeconds` — tiempo estimado de completación en segundos

### Paso 4: El cliente deposita

El cliente envía el monto especificado a la `depositAddress` en la cadena origen.

### Paso 5: El pago se completa

Una vez que se detecta el depósito en la cadena origen, el estado del pago cambia a `paid` y recibes un webhook. La conversión y liquidación ocurren automáticamente en segundo plano.

### Paso 6: Consultar estado (opcional)

Puedes consultar el estado del swap para actualizaciones en tiempo real:

```bash theme={null}
GET /payments/{checkout_id}/cross-chain/status
Authorization: Bearer {token}
```

Devuelve: `pending_deposit`, `processing`, `completed`, `failed`, o `refunded`.

## Autenticación

Los endpoints cross-chain soportan ambos:

* **Digest Auth** (headers) — para integración API servidor a servidor
* **Bearer Token** (header Authorization) — para uso desde frontend/widget

## Manejo de errores

Si la conversión cross-chain falla o expira, Ebioro maneja el reembolso a la dirección de recolección internamente. El merchant no necesita tomar acción.

Si la cotización expira antes de que el cliente deposite, puedes solicitar una nueva cotización — el pago permanece abierto.
