---
title: Transferencia bancaria (Vietnam)
description: Acepte transferencias bancarias vietnamitas (VND) con SePay: cuenta, prefijo de memo, webhook, límites y cómo asignar transferencias sin coincidencia.
url: https://nexcmp.com/es/docs/billing/bank-transfer-vn/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Transferencia bancaria (Vietnam) {#bank-transfer-vietnam}

> **Ubicación en administración:** Finance › Payment channels › VN bank transfer (`/payments/bank`). Tipo de cambio: Finance › Payment channels › Exchange rates (`/payments/fx`).

## Qué hace {#what-it-does}

Permite a los clientes recargar el monedero en USD mediante una transferencia bancaria normal en dongs vietnamitas. NexCMP muestra un código VietQR, los datos de la cuenta y un **memo de transferencia** único; [Sepay](https://sepay.vn) supervisa su cuenta bancaria y llama a un webhook cuando llega el dinero, y NexCMP acredita el saldo en el monedero. Utilícelo si vende a clientes en Vietnam.

::: info Se muestra solo en la interfaz en vietnamita
La opción de VN bank solo se ofrece al cliente cuando el portal se muestra en **Vietnamese**. Los clientes en cualquier otro idioma nunca la ven.
:::

## Requisitos {#requirements}

| Elemento | Requisito |
|---|---|
| Cuenta bancaria | Una cuenta bancaria vietnamita (o una cuenta virtual de Sepay, **VA**) conectada a una cuenta de Sepay en [my.sepay.vn](https://my.sepay.vn). |
| Sepay | Una cuenta de Sepay con la integración de webhook habilitada. |
| Tipo de cambio | Debe existir un tipo de cambio de USD a VND: actualícelo primero en **Exchange rates**. Sin un tipo de cambio, el canal responde `fx_unavailable` y los clientes no pueden iniciar una transferencia. |
| Red | Su panel debe ser accesible mediante HTTPS para que Sepay pueda llamar a `https://<your-domain>/v1/billing/sepay/webhook`. |
| Dependencias | [Divisas y tipos de cambio](https://nexcmp.com/es/docs/catalog/currency-and-exchange-rates/). |

## Preparar la infraestructura {#prepare-the-infrastructure}

En el lado de Sepay:

1. En [my.sepay.vn](https://my.sepay.vn), conecte su cuenta bancaria (o cree una VA) y asegúrese de que aparezcan las transacciones.
2. Defina el **prefijo del memo**: de 2 a 5 letras mayúsculas, por ejemplo `PAY`. NexCMP genera el memo como el prefijo seguido de 8 dígitos aleatorios (por ejemplo `PAY48210937`). El prefijo no debe contener `ORD` y no debe ser utilizado por ningún otro sistema que reciba dinero en la misma cuenta.
3. Si su cuenta de Sepay utiliza una *estructura de códigos de pago*, registre allí el mismo prefijo para que Sepay reconozca el memo.
4. Cree el webhook más tarde, después de que la página de NexCMP le haya proporcionado la URL y la clave (paso 7 a continuación).

## Conectar en NexCMP {#connect-in-nexcmp}

1. Abra **Finance › Payment channels › Exchange rates** y haga clic en **Update exchange rates** si no se ha guardado ningún tipo de cambio.
2. Abra **Finance › Payment channels › VN bank transfer** (`/payments/bank`).
3. En **Receiving account**, complete:

   | Campo | Ejemplo | Regla |
   |---|---|---|
   | Banco | `VCB` Vietcombank | Seleccione de la lista; el BIN se completa automáticamente. |
   | Número de cuenta | `0123456789` | De 4 a 24 dígitos o letras mayúsculas. |
   | Cuenta virtual (VA: opcional) | | Si se define, los clientes transfieren a la VA y el QR la muestra. |
   | Nombre del titular de la cuenta | `NGUYEN VAN A` | Sin acentos, MAYÚSCULAS, de 2 a 60 caracteres. |
   | Prefijo del memo de transferencia | `PAY` | De 2 a 5 letras mayúsculas, sin `ORD`. |

4. En **Webhook authentication**, elija **Auth method**: **HMAC-SHA256** (recomendado) o **API key**, e introduzca la **Webhook key / HMAC secret** (8–200 caracteres). De forma opcional, introduzca el **userapi token** de Sepay; solo se utiliza para conciliar transferencias cuyo webhook se haya perdido.
5. En **Channel & limits**, establezca los límites (valores por defecto entre paréntesis): **Min / order** (10,000 VND), **Max / order** (200,000,000 VND), **Order expiry** (120 minutos, 15–1440), **Max pending orders / account** (3, 1–10), **Reconcile every** (10 minutos) y, opcionalmente, **Allowed webhook IPs** (separadas por comas; en blanco significa que la IP solo se registra).
6. Haga clic en **Save**. El banner rojo «Sepay not configured» desaparecerá una vez que la cuenta, el nombre, el prefijo y la clave sean válidos.
7. Copie la **URL del webhook para pegar en my.sepay.vn** (muestra `https://<your-domain>/v1/billing/sepay/webhook`) con **Copy**. En SePay abra la integración de webhook, pegue la URL, elija el mismo tipo de autenticación y clave, y active el evento "money in".
8. Haga clic en **Test connection**. Luego active **Enable Sepay for clients (main site)** y haga clic en **Save**.

![Página de VN bank transfer con la cuenta receptora, el prefijo del memo y la autenticación de webhook completados con valores de ejemplo](https://nexcmp.com/es/docs/images/billing/bank-transfer-vn-01-config.webp)

![Tarjeta de canal y límites con el interruptor de Sepay activado y los límites predeterminados](https://nexcmp.com/es/docs/images/billing/bank-transfer-vn-02-limits.webp)

### Seguridad del webhook {#webhook-security}

| Método | Qué debe enviar Sepay |
|---|---|
| HMAC-SHA256 | Encabezado `X-SePay-Signature: sha256=<hex>`, calculado sobre `"<X-SePay-Timestamp>.<raw body>"`; la marca de tiempo puede diferir en 300 segundos como máximo. |
| API key | Encabezado `Authorization: Apikey <key>`. |

Solo se comprueban los encabezados (nunca el cuerpo ni la cadena de consulta) y la comparación se realiza en tiempo constante. Solo se utilizan las transferencias entrantes (`transferType = in`) a su cuenta configurada o VA. Cada transacción de Sepay se almacena una sola vez, por lo que un webhook reintentado nunca acredita dos veces. NexCMP responde `200 {"success":true}` incluso cuando ignora deliberadamente una transacción, y HTTP 5xx solo ante errores temporales para que Sepay vuelva a intentarlo.

## Cómo paga el cliente {#how-the-customer-pays}

1. En **Billing › Deposit** (interfaz en vietnamita), el cliente elige la opción de transferencia bancaria VN y un importe, y luego hace clic en el botón para crear la transferencia.
2. NexCMP convierte el importe en USD al tipo de cambio almacenado (incluidos el margen y el paso de redondeo configurados en **Exchange rates**) y **redondea el importe en VND hacia arriba** según el paso de redondeo.
3. El cliente ve un código QR (VietQR, generado localmente) con el número de cuenta, el banco, el importe y el memo.
4. Tras la transferencia, Sepay llama al webhook y NexCMP acredita `floor(VND received × 100 / rate)` centavos. El tipo de cambio se fija al crear el pedido; si el dinero llega después de que el pedido haya caducado, se utiliza el mayor entre el tipo de cambio fijado y el actual.
5. Los pedidos caducan transcurrido el tiempo de **Order expiry**; la conciliación se ejecuta cada **Reconcile every** minutos como red de seguridad (requiere el token de userapi).

## Verificación {#verify}

1. Cree un pedido de prueba como cliente en la interfaz en vietnamita. Compruebe que el importe, la cuenta y el memo sean correctos.
2. Transfiera el importe mínimo permitido con el memo exacto.
3. En cuestión de un minuto, el portal muestra el depósito como completado y el saldo del monedero aumenta; la tarjeta **State** de la página del banco muestra la hora del último webhook.
4. Abra **Finance › Billing › Top-ups** y compruebe que el pago aparezca en la lista con el importe recibido en VND.

## Límites y notas {#limits-notes}

- **Mínimo.** El mínimo en VND que ve un cliente es el mayor entre **Min / order** y el valor en VND de la [recarga mínima](https://nexcmp.com/es/docs/billing/minimum-top-up/).
- **Pedidos pendientes.** Un cliente solo puede tener **Max pending orders / account** pedidos abiertos (por defecto, 3).
- **Mismo memo dos veces.** Transferir dos veces con el mismo memo crea un segundo pago completado al tipo de cambio actual.
- **Sin reembolso automático** a una cuenta bancaria.
- **Comisión.** El canal no dispone de una línea de comisión fija en **Fees & limits**; el margen del tipo de cambio es el único ajuste.
- **Resellers** pueden configurar su propia cuenta; su URL de webhook termina en `/v1/billing/sepay/webhook/r/<id>`.

### Transferencias no coincidentes {#unmatched-transfers}

El dinero que llega a la cuenta pero no incluye un memo válido aparece en **Unmatched transactions** en la parte inferior de la página (filtre por *All channel owners* o *Master*). Compruebe la referencia bancaria con el cliente, haga clic en **Assign** y seleccione la cuenta. El monedero se acredita al tipo de cambio actual.

## Resolución de problemas {#troubleshooting}

| Síntoma | Causa | Solución |
|---|---|---|
| Banner "Sepay no configurado" | Falta o no es válido el banco, la cuenta, el nombre del titular, el prefijo o la clave | Complete las tarjetas **Receiving account** y **Webhook authentication**. |
| Banner "Tipo de cambio USD/VND bloqueado" (`fx_unavailable`) | No hay ningún tipo de cambio almacenado | **Exchange rates › Update exchange rates**. |
| `prefix: 2–5 capital letters, no ORD` | Prefijo no válido | Utilice de 2 a 5 letras mayúsculas sin `ORD`. |
| Error `account_name` | Acentos o minúsculas | Utilice letras MAYÚSCULAS sin acento, dígitos, espacio, punto o guion. |
| `webhook_secret: 8–200 characters` | Clave demasiado corta | Utilice al menos 8 caracteres imprimibles. |
| El cliente no puede ver la opción | No está en la interfaz en vietnamita, interruptor apagado o sin tasa de cambio | Compruebe el idioma, el interruptor y la tasa de cambio. |
| El cliente pagó pero no se acreditó nada | El webhook no llegó, el memo cambió o el importe es incorrecto | Compruebe el registro de webhooks de Sepay; la transferencia aparecerá en **Unmatched transactions** si el memo era incorrecto. |
| El webhook devuelve 401 o 403 | Discrepancia en el método de autenticación o la clave | Use el mismo método y clave en Sepay y NexCMP. |
| El cliente ve "Too many pending requests" | Se alcanzó el límite de pedidos pendientes | Deben completarse o esperar a que expiren. |


