Transferencia bancaria (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
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 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.
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
| 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. |
| 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. |
Preparar la infraestructura
En el lado de Sepay:
- En my.sepay.vn, conecte su cuenta bancaria (o cree una VA) y asegúrese de que aparezcan las transacciones.
- 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 ejemploPAY48210937). El prefijo no debe contenerORDy no debe ser utilizado por ningún otro sistema que reciba dinero en la misma cuenta. - Si su cuenta de Sepay utiliza una estructura de códigos de pago, registre allí el mismo prefijo para que Sepay reconozca el memo.
- 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
Abra Finance › Payment channels › Exchange rates y haga clic en Update exchange rates si no se ha guardado ningún tipo de cambio.
Abra Finance › Payment channels › VN bank transfer (
/payments/bank).En Receiving account, complete:
Campo Ejemplo Regla Banco VCBVietcombankSeleccione de la lista; el BIN se completa automáticamente. Número de cuenta 0123456789De 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 ASin acentos, MAYÚSCULAS, de 2 a 60 caracteres. Prefijo del memo de transferencia PAYDe 2 a 5 letras mayúsculas, sin ORD.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.
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).
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.
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".Haga clic en Test connection. Luego active Enable Sepay for clients (main site) y haga clic en Save.


Seguridad del webhook
| 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
- 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.
- 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.
- El cliente ve un código QR (VietQR, generado localmente) con el número de cuenta, el banco, el importe y el memo.
- 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. - 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
- Cree un pedido de prueba como cliente en la interfaz en vietnamita. Compruebe que el importe, la cuenta y el memo sean correctos.
- Transfiera el importe mínimo permitido con el memo exacto.
- 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.
- Abra Finance › Billing › Top-ups y compruebe que el pago aparezca en la lista con el importe recibido en VND.
Límites y notas
- 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.
- 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
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
| 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. |