Pagos
Página de pago
La página alojada con el QR del cliente, el QR como imagen y cómo armar tu propia pantalla.
Cada cliente trae dos enlaces públicos, que no piden clave: pay_url, una página lista para usar, y qr_url, el QR como imagen SVG. Puedes usar la página tal cual o construir tu propia pantalla con la dirección y el QR.
| Ruta | Devuelve | Uso |
|---|---|---|
/pay/{id} | Página HTML | Redirigir al usuario o abrirla en un WebView. |
/pay/{id}/qr.svg | Imagen SVG | Insertar el QR en tu propia pantalla. |
/pay/{id}/status | JSON | Consultar el avance de los depósitos desde el navegador o la app. |
La página alojada#
- Muestra el nombre de tu empresa, el QR de la dirección, la dirección con botón de copiar, los tokens aceptados y el depósito mínimo.
- Advierte de la red: si el usuario envía por otra (Tron, Ethereum, BSC), el pago no llega.
- Lista los últimos depósitos del cliente y se actualiza sola cada 3 segundos: "Recibido, confirmando…", "Confirmado", "Menor al mínimo" o "Anulado".
- Se adapta a tema claro y oscuro y a pantallas de teléfono.
La página no tiene monto ni vencimiento: es la dirección permanente del cliente. El id del enlace es un UUID difícil de adivinar, pero quien lo tenga puede ver la dirección y los últimos depósitos (monto, token, estado, hash). No expone comisiones ni datos de metadata.
El QR#
| URL | Contenido del QR | Cuándo usarlo |
|---|---|---|
qr_url | Solo la dirección | Siempre funciona: cualquier billetera o exchange lo lee. El usuario elige token, red y monto. |
qr_url?token=USDT | Enlace EIP-681 del token | Billeteras que lo entienden abren la transferencia de USDT ya en la red correcta. |
qr_url?token=USDT&amount=10 | Enlace EIP-681 con monto | Además deja el monto puesto. Útil junto con una cotización. |
<img src="https://api.pasarela.melenashair.com/pay/3d8ed2f2-72d4-4c27-b606-a53b5a4db086/qr.svg?token=USDT&amount=10"
alt="QR de pago" width="220" height="220">- El enlace EIP-681 tiene la forma
ethereum:<contrato del token>@<chain id>/transfer?address=<dirección de depósito>&uint256=<monto en unidades mínimas>. amountsolo se aplica si también envíastoken. Un token desconocido responde400conToken no soportado.- No todas las billeteras ni los exchanges leen EIP-681. Muestra siempre también la dirección en texto, con la red y el token.
- El monto del QR es una sugerencia para la billetera: el usuario puede cambiarlo y el depósito se procesa igual.
Tu propia pantalla#
Con address, tokens y qr_url del cliente tienes todo para dibujarla. Para el avance en vivo, consulta /pay/{id}/status cada pocos segundos: devuelve los últimos 10 depósitos y no necesita clave, así que se puede llamar desde el navegador.
curl https://api.pasarela.melenashair.com/pay/3d8ed2f2-72d4-4c27-b606-a53b5a4db086/statusLa pantalla informa, el webhook acredita
Usa /status para lo que ve el usuario. El saldo acredítalo solo en tu servidor, al recibir deposit.confirmed con la firma verificada.