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

# Billeteras digitales y neobancos

> Suma recarga de saldo, envíos entre usuarios y retiros a banco sin construir cada riel por país.

Una billetera necesita que sus usuarios carguen saldo, paguen, se envíen dinero entre sí y retiren a su banco. Con la API puedes sumar esas funciones sin construir cada riel por país.

## Flujo

```mermaid theme={null}
sequenceDiagram
  participant User as Usuario final
  participant App as Tu billetera
  participant Vita as Vita API

  App->>Vita: POST /business_users (alta)
  App->>Vita: GET /business_users/verification_status
  User->>App: Recarga saldo
  App->>Vita: POST /payment_orders
  User->>Vita: Paga
  Vita-->>App: Webhook payment_order.paid
  Note over App,User: Acredita saldo del usuario en tu ledger
  User->>App: Enviar a otro usuario
  App->>Vita: POST /transactions (vita_sent)
  User->>App: Retirar a banco / wallet
  App->>Vita: POST /transactions (withdrawal | crypto_payout)
```

## Paso a paso

**1. Alta de usuarios**

`POST /business_users` crea al usuario (persona o empresa). `GET /business_users/verification_status` te dice si ya está verificado.

> [!NOTE]
>
> Los documentos de verificación van en Base64 con su tipo (JPG/PNG para imágenes, PDF para documentos).

**2. Recarga de saldo**

Cobra con `POST /payment_orders` o Direct Payment y acredita el saldo del usuario en tu sistema al recibir `payment_order.paid`.

**3. Envíos entre usuarios**

`POST /transactions` con `transactions_type: "vita_sent"` y el correo del receptor. Es **instantáneo** y liquida contra el ecosistema Vita.

**4. Retiros y conversión**

* Retiro a banco: `transactions_type: "withdrawal"`.
* Retiro a wallet externa: `transactions_type: "crypto_payout"`.
* Cambio de moneda: `transactions_type: "exchange"`.

## Buenas prácticas

> [!TIP]
>
> **Mantén tu propio ledger por usuario**: la wallet de la API es de tu empresa, no de tus usuarios finales. Concilia con `GET /transactions` y `GET /deposits`.

> [!TIP]
>
> Usa **webhooks** en lugar de hacer polling de estados. Reduce latencia y costos.

> [!TIP]
>
> Deduplica eventos por `event_id` (tratarlo como texto opaco) para no procesar dos veces el mismo cambio de estado.

## Endpoints clave

> [card] [Crear usuario](https://docs.vitawallet.io/api-reference/users-creation/overview.md)
>
> `POST /business_users`

> [card] [Vita Sent](https://docs.vitawallet.io/api-reference/vita-sent/create-vita-sent.md)
>
> `POST /transactions` con `transactions_type: "vita_sent"`

> [card] [Payout bancario](https://docs.vitawallet.io/api-reference/bank-payouts/create-payout.md)
>
> `POST /transactions` con `transactions_type: "withdrawal"`

> [card] [Payout cripto](https://docs.vitawallet.io/api-reference/external-crypto-payouts/create-crypto-payout.md)
>
> `POST /transactions` con `transactions_type: "crypto_payout"`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.