Saldo por id
GET /api/v1/external/customers/:id/wallet
Devuelve el saldo actual del monedero del cliente. Requiere scope wallet:read.
Request
curl https://api.nuvlyx.com/api/v1/external/customers/9f8e…/wallet \
-H "Authorization: Bearer nvl_live_TU_TOKEN" Response 200
{
"id": "wallet_…",
"balance": "25000.00",
"currency": "COP",
"updatedAt": "2026-05-18T10:21:00.000Z"
} Saldo por teléfono
GET /api/v1/external/customers/by-phone/:phone/wallet
Devuelve el saldo del cliente identificándolo por su número de WhatsApp.
El cliente debe haber vinculado su WhatsApp previamente desde su perfil en
la tienda. Si no lo hizo, la API devuelve 404 con un mensaje
explícito.
Path parameters
| Parámetro | Formato | Ejemplo |
|---|---|---|
phone | E.164 (con +) | %2B573001234567 (URL-encoded) |
Request
curl "https://api.nuvlyx.com/api/v1/external/customers/by-phone/%2B573001234567/wallet" \
-H "Authorization: Bearer nvl_live_TU_TOKEN" Errores
401— Token faltante o inválido.403— Token sin el scopewallet:read.404— Ningún cliente con ese teléfono vinculado a la tienda.
Recargar saldo (por id)
POST /api/v1/external/customers/:id/wallet/recharge
Acredita el monto indicado al monedero del cliente. Internamente crea una
WalletTransaction tipo MANUAL_ADJUSTMENT — equivalente a una
recarga manual aprobada. Requiere scope wallet:write.
Body
| Campo | Tipo | Descripción |
|---|---|---|
amount | número | Monto positivo a acreditar (1 – 100,000,000). Máx. 2 decimales. |
reference | string | Referencia legible (ej "Bot WhatsApp - venta #..."). Queda en el ledger. Opcional. |
Request
curl -X POST https://api.nuvlyx.com/api/v1/external/customers/9f8e…/wallet/recharge \
-H "Authorization: Bearer nvl_live_TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "amount": 50000, "reference": "Pago Nequi #PAGO-0042" }' Response 200
{
"id": "wallet_…",
"balance": "75000.00",
"currency": "COP",
"updatedAt": "2026-05-18T10:33:00.000Z"
} Recargar saldo (por teléfono)
POST /api/v1/external/customers/by-phone/:phone/wallet/recharge
Misma operación, identificando al cliente por su teléfono vinculado.
curl -X POST "https://api.nuvlyx.com/api/v1/external/customers/by-phone/%2B573001234567/wallet/recharge" \
-H "Authorization: Bearer nvl_live_TU_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "amount": 50000 }' ¿Por qué los clientes deben vincular su WhatsApp?
Por seguridad y consentimiento del cliente, la API no crea automáticamente
clientes a partir de un teléfono recibido por API. El cliente confirma su número
desde su perfil en la tienda recibiendo un código por WhatsApp. Una vez vinculado,
queda asociado al tenant (phone_verified_at queda con timestamp).
Esto evita creación masiva de clientes fantasma desde integraciones externas y mantiene un flujo de opt-in claro.