En vivo en Polygon y BSC

Cobra y paga USDT.
Sin custodia.
Sin fricción.

144 Pay genera una dirección desechable por cada cobro, detecta el pago on-chain y reparte los fondos según tu configuración. Y con dispersiones envías a 50 wallets en una sola tx. Tu comercio no toca claves.

~12s de pago a distribución ~50% menos gas en dispersiones 2 redes EVM
Construido sobre infraestructura abierta
⬢ Polygon ◆ BNB Chain ₮ Tether ⧫ EVM ⨋ OpenAPI
Producto

Cobros cripto pensados como un producto financiero.

Cada decisión técnica está respaldada por una invariante simple: fee + Σ destinos == bruto. Ni una unidad perdida.

Wallets desechables

Una dirección HD nueva por cada cobro, derivada de un mnemónico maestro BIP-44. Trazabilidad total, sin reuso, sin mezcla.

Barrido automático

Un fee payer financia el gas, la wallet desechable transfiere los USDT a tu tesorería. Tú no firmas nada manualmente.

÷

Split configurable

Reparte el pago entre N destinos por porcentaje, con fee de mantenimiento porcentual o fijo. Editable desde el panel.

Detección on-chain

Polling propio con reintentos, manejo de reorgs y cursor persistido. Sin dependencia de webhooks de terceros.

Webhooks firmados

Cada cambio de estado dispara un POST a tu URL, firmado con HMAC-SHA256. Verificas que viene de 144 Pay y nadie más.

Decimales por red

USDT usa 6 decimales en Polygon, 18 en BSC. Lo manejamos por (chain, token) — el error que cuesta 10¹² unidades, evitado.

Cómo funciona

De API call a fondos distribuidos en seis pasos.

Cada paso es idempotente y observable. Si algo falla, frena y alerta — nunca mueve fondos a ciegas.

1

El comercio llama a POST /payments

Le devolvemos una depositAddress única y un expiresAt. La wallet queda en estado AWAITING_PAYMENT.

2

El cliente envía USDT a esa dirección

Lo hace desde cualquier wallet — Metamask, exchange, hardware. 144 Pay no necesita SDK del lado del usuario.

3

El block-poller detecta el Transfer

Vía getLogs con cursor persistido. Espera N confirmaciones antes de marcar el cobro confirmado.

4

El fee payer financia el gas

Envía MATIC/BNB para el transfer ERC-20, con margen de seguridad. Cola serializada para evitar colisiones de nonce.

5

La wallet desechable barre los USDT

Re-derivamos su clave en memoria, firmamos un transfer() a tu hot wallet. La wallet queda SWEPT.

6

Hot wallet distribuye según el split

Descuenta el fee, envía el resto a N destinos. Disparamos payment.completed al webhook. Estado COMPLETED.

Nuevo · Dispersiones

Paga a 50 wallets con una sola transacción.

Envía USDT a múltiples destinatarios en una sola tx on-chain vía nuestro contrato Disperse desplegado en Polygon y BSC. ~50% menos gas que enviar N transferencias individuales. Misma API key, mismo modelo de webhook.

1 transacción, N destinatarios

El contrato Disperse ejecuta hasta 200 transferencias en una sola tx.

~50% menos gas

Medido on-chain: batch de 10 paga 153k gas vs 350k de 10 transfers sueltos.

Custodia mínima

Wallet desechable por dispersión, fondos pasan menos de 1 minuto en custodia.

SC sin owner, sin upgrade

Contrato auditable en 30 segundos. Nadie puede drenarlo ni bloquearlo.

Webhooks dedicados

dispersion.deposit_received, dispersion.completed, etc.

Contratos desplegados:
Polygon · 0xDaC2…6981
BSC · 0x9416…04a6

# Pagar a 3 destinos en una sola tx
$ curl -X POST https://144pay.com/api/v1/dispersions \
  -H "X-API-Key: pk_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "chain": "polygon",
    "token": "USDT",
    "reference": "payout_001",
    "destinations": [
      { "address": "0xA1...", "amount": "50.00" },
      { "address": "0xB2...", "amount": "75.00" },
      { "address": "0xC3...", "amount": "30.00" }
    ]
  }'
const disp = await fetch('https://144pay.com/api/v1/dispersions', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.PAY144_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    chain: 'polygon',
    token: 'USDT',
    destinations: recipients.map(r => ({
      address: r.wallet,
      amount: r.amount,
    })),
  }),
});
const { data } = await disp.json();
// Decir al user: deposita data.totalToDeposit USDT en
// data.depositAddress y dispersamos automáticamente.
{
  "success": true,
  "data": {
    "id": "d_8a3f...",
    "status": "AWAITING_DEPOSIT",
    "chain": "polygon",
    "depositAddress": "0x4f...e2",
    "totalAmount": "155.00",
    "feeAmount": "1.55",
    "totalToDeposit": "156.55",
    "destinations": [/* ... 3 items ... */],
    "expiresAt": "2026-05-23T17:00:00Z"
  }
}
Para developers

API REST limpia.
Docs reales.

Spec OpenAPI generada desde el código — siempre sincronizada. Webhooks firmados, idempotency-key, errores tipados.

OpenAPI 3.0 + Redoc

Documentación interactiva en /docs, navegable y siempre actualizada.

Idempotency-Key opcional

Reintenta la creación de cobros sin miedo a duplicar.

Webhooks firmados HMAC-SHA256

Verificas la firma con tu webhook_secret y descartas suplantaciones.

API keys rotables

Genera y revoca claves desde el panel admin. Hashed con argon2.

P Polygon USDT · 6 dec. B BNB Chain USDT · 18 dec.
# Crear cobro
$ curl -X POST https://144pay.com/api/v1/payments \
  -H "X-API-Key: pk_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: ord-991" \
  -d '{
    "reference": "ord-991",
    "chain": "polygon",
    "token": "USDT",
    "amount": "250.00"
  }'

# Consultar estado
$ curl https://144pay.com/api/v1/payments/pi_3f9a... \
  -H "X-API-Key: pk_live_xxxxxxxxxxxx"
const res = await fetch('https://144pay.com/api/v1/payments', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.PAY144_KEY,
    'Content-Type': 'application/json',
    'Idempotency-Key': order.id,
  },
  body: JSON.stringify({
    reference: order.id,
    chain: 'polygon',
    token: 'USDT',
    amount: order.total,
  }),
});

const { data } = await res.json();
// → muestra data.depositAddress al cliente
import requests, os

res = requests.post(
    'https://144pay.com/api/v1/payments',
    headers={
        'X-API-Key': os.environ['PAY144_KEY'],
        'Idempotency-Key': order.id,
    },
    json={
        'reference': order.id,
        'chain': 'polygon',
        'token': 'USDT',
        'amount': str(order.total),
    },
)
deposit_address = res.json()['data']['depositAddress']
// Verificar webhook entrante (Express)
import { createHmac, timingSafeEqual } from 'crypto';

app.post('/webhooks/144pay', (req, res) => {
  const sig = req.headers['x-signature'];
  const expected = 'sha256=' + createHmac('sha256', SECRET)
    .update(JSON.stringify(req.body))
    .digest('hex');

  if (!timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) {
    return res.status(401).end();
  }

  if (req.body.event === 'payment.completed') {
    // marcar pedido como pagado
  }
  res.status(200).end();
});
Precios

Sin sorpresas. Sin tarifa de setup.

Tres planes para escalar desde tu primer cobro hasta volumen empresarial.

Starter

Para tus primeros cobros.

0.9%
por cobro confirmado
  • Hasta 100 cobros / mes
  • Polygon y BSC
  • Webhooks firmados
  • Panel CRM
Empezar

Enterprise

A medida, con KMS dedicado.

Hablemos
tarifa personalizada
  • Volumen ilimitado
  • Cualquier EVM compatible
  • Custodia con HSM / KMS
  • Equipo de integración
  • SLA 99.99% + on-call
Contactar

Solicita acceso a 144 Pay.

Onboarding asistido: revisamos tu caso, configuramos tu cuenta y te entregamos tu API key. Sin tarjeta, sin compromiso.

Ver la API ↗