Cobrar Nunca Fue
Tan Fácil.
Crea enlaces de pago, ofrece cuotas y automatiza pagos recurrentes. Todo desde un solo lugar.
Tu dominio. Tu marca.
Tus clientes pagan en una página con tu nombre, no el nuestro. Profesional desde el primer enlace.
Configúralo en minutos.
Todo lo que necesitas para cobrar
Tu dinero, directo a tu cuenta bancaria — sin intermediarios.
Enlaces de Pago
Crea enlaces personalizados y compártelos por WhatsApp, email o redes sociales. Tu cliente paga con un clic.
Yappy + Tarjetas
Acepta pagos con Yappy y tarjetas Visa, Mastercard y Amex — todo desde una sola plataforma unificada.
Planes de Cuotas
Ofrece pagos en cuotas a tus clientes. Tú defines los plazos, montos y frecuencia. Cobro automático.
Pagos Recurrentes
Automatiza cobros mensuales, semanales o personalizados. Ideal para membresías, suscripciones y servicios.
Tarjetas Guardadas
Tokenización segura de tarjetas. Tus clientes guardan sus datos para pagos rápidos y recurrentes.
Dominio y Marca
Usa tu propio dominio y personaliza la experiencia de pago con tu logo, colores y nombre de empresa.
Para Desarrolladores
API REST simple y poderosa
Envía solicitudes de pago directamente desde tu aplicación. Crea enlaces, cobra en cuotas y gestiona suscripciones — todo con unas pocas líneas de código.
Y cuando te pagan, te avisamos al instante: webhooks seguros con reintentos automáticos, para que tu sistema siempre esté al día.
curl -X POST https://app.enlacedepago.com/api/v1/payment-links \ -H "Authorization: Bearer edp_live_..." \ -H "Content-Type: application/json" \ -d '{ "amount": 150.00, "email": "cliente@empresa.com", "send_email": true }'
curl -X POST https://app.enlacedepago.com/api/v1/installment-plans \ -H "Authorization: Bearer edp_live_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Matrícula 2026", "total_amount": 300.00, "installments": [ { "due_date": "2026-08-01", "amount": 150.00 }, { "due_date": "2026-09-01", "amount": 150.00 } ], "first_name": "María", "last_name": "Pérez", "email": "cliente@empresa.com", "send_email": true }'
curl -X POST https://app.enlacedepago.com/api/v1/subscriptions \ -H "Authorization: Bearer edp_live_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Membresía Premium", "amount": 29.99, "frequency": "monthly", "first_name": "María", "last_name": "Pérez", "email": "cliente@empresa.com", "send_email": true }'
# Tu endpoint recibe un POST firmado en cada evento POST /webhooks/enlacedepago X-EDP-Event: payment_link.paid X-EDP-Signature: t=1784678400,v1=5f8a91c4… { "id": "evt_01K0Q2ZDG8TVJ8", "type": "payment_link.paid", "api_version": "v1", "data": { "object": { "status": "paid", "amount": 150.00, "currency": "USD" } } }
// Crear enlace de pago $response = Http::withToken('edp_live_...') ->post('https://app.enlacedepago.com/api/v1/payment-links', [ 'amount' => 150.00, 'email' => 'cliente@empresa.com', 'send_email' => true, ]); $url = $response->json('url');
// Crear plan de cuotas $response = Http::withToken('edp_live_...') ->post('https://app.enlacedepago.com/api/v1/installment-plans', [ 'name' => 'Matrícula 2026', 'total_amount' => 300.00, 'installments' => [ ['due_date' => '2026-08-01', 'amount' => 150.00], ['due_date' => '2026-09-01', 'amount' => 150.00], ], 'first_name' => 'María', 'last_name' => 'Pérez', 'email' => 'cliente@empresa.com', 'send_email' => true, ]);
// Crear suscripción recurrente $response = Http::withToken('edp_live_...') ->post('https://app.enlacedepago.com/api/v1/subscriptions', [ 'name' => 'Membresía Premium', 'amount' => 29.99, 'frequency' => 'monthly', 'first_name' => 'María', 'last_name' => 'Pérez', 'email' => 'cliente@empresa.com', 'send_email' => true, ]);
// Verificar la firma X-EDP-Signature parse_str(strtr($request->header('X-EDP-Signature'), ',', '&'), $sig); $expected = hash_hmac('sha256', $sig['t'].'.'.$request->getContent(), $secret); abort_unless(hash_equals($expected, $sig['v1']), 401); $event = $request->json('type'); // "payment_link.paid"
import requests response = requests.post( "https://app.enlacedepago.com/api/v1/payment-links", headers={"Authorization": "Bearer edp_live_..."}, json={ "amount": 150.00, "email": "cliente@empresa.com", "send_email": True } ) url = response.json()["url"]
import requests response = requests.post( "https://app.enlacedepago.com/api/v1/installment-plans", headers={"Authorization": "Bearer edp_live_..."}, json={ "name": "Matrícula 2026", "total_amount": 300.00, "installments": [ {"due_date": "2026-08-01", "amount": 150.00}, {"due_date": "2026-09-01", "amount": 150.00} ], "first_name": "María", "last_name": "Pérez", "email": "cliente@empresa.com", "send_email": True } )
import requests response = requests.post( "https://app.enlacedepago.com/api/v1/subscriptions", headers={"Authorization": "Bearer edp_live_..."}, json={ "name": "Membresía Premium", "amount": 29.99, "frequency": "monthly", "first_name": "María", "last_name": "Pérez", "email": "cliente@empresa.com", "send_email": True } )
import hmac, hashlib @app.post("/webhooks/enlacedepago") def webhook(): sig = dict(p.split("=", 1) for p in request.headers["X-EDP-Signature"].split(",")) signed = f"{sig['t']}.".encode() + request.data expected = hmac.new(SECRET, signed, hashlib.sha256).hexdigest() if not hmac.compare_digest(expected, sig["v1"]): abort(401) event = request.json # event["type"] == "payment_link.paid" return "", 200
require 'net/http' require 'json' uri = URI('https://app.enlacedepago.com/api/v1/payment-links') response = Net::HTTP.post(uri, { amount: 150.00, email: 'cliente@empresa.com', send_email: true }.to_json, 'Authorization' => 'Bearer edp_live_...', 'Content-Type' => 'application/json')
require 'net/http' require 'json' uri = URI('https://app.enlacedepago.com/api/v1/installment-plans') response = Net::HTTP.post(uri, { name: 'Matrícula 2026', total_amount: 300.00, installments: [ { due_date: '2026-08-01', amount: 150.00 }, { due_date: '2026-09-01', amount: 150.00 } ], first_name: 'María', last_name: 'Pérez', email: 'cliente@empresa.com', send_email: true }.to_json, 'Authorization' => 'Bearer edp_live_...', 'Content-Type' => 'application/json')
require 'net/http' require 'json' uri = URI('https://app.enlacedepago.com/api/v1/subscriptions') response = Net::HTTP.post(uri, { name: 'Membresía Premium', amount: 29.99, frequency: 'monthly', first_name: 'María', last_name: 'Pérez', email: 'cliente@empresa.com', send_email: true }.to_json, 'Authorization' => 'Bearer edp_live_...', 'Content-Type' => 'application/json')
post '/webhooks/enlacedepago' do body = request.body.read sig = request.env['HTTP_X_EDP_SIGNATURE'] .split(',').to_h { |p| p.split('=', 2) } expected = OpenSSL::HMAC.hexdigest('sha256', SECRET, "#{sig['t']}.#{body}") halt 401 unless Rack::Utils.secure_compare(expected, sig['v1']) event = JSON.parse(body) # event['type'] => "payment_link.paid" status 200 end
const response = await fetch( "https://app.enlacedepago.com/api/v1/payment-links", { method: "POST", headers: { "Authorization": "Bearer edp_live_...", "Content-Type": "application/json" }, body: JSON.stringify({ amount: 150.00, email: "cliente@empresa.com", send_email: true }) } ); const { url } = await response.json();
const response = await fetch( "https://app.enlacedepago.com/api/v1/installment-plans", { method: "POST", headers: { "Authorization": "Bearer edp_live_...", "Content-Type": "application/json" }, body: JSON.stringify({ name: "Matrícula 2026", total_amount: 300.00, installments: [ { due_date: "2026-08-01", amount: 150.00 }, { due_date: "2026-09-01", amount: 150.00 } ], first_name: "María", last_name: "Pérez", email: "cliente@empresa.com", send_email: true }) } );
const response = await fetch( "https://app.enlacedepago.com/api/v1/subscriptions", { method: "POST", headers: { "Authorization": "Bearer edp_live_...", "Content-Type": "application/json" }, body: JSON.stringify({ name: "Membresía Premium", amount: 29.99, frequency: "monthly", first_name: "María", last_name: "Pérez", email: "cliente@empresa.com", send_email: true }) } );
app.post("/webhooks/enlacedepago", (req, res) => { const sig = Object.fromEntries( req.headers["x-edp-signature"].split(",").map(p => p.split("=")) ); const expected = crypto.createHmac("sha256", secret) .update(`${sig.t}.${req.rawBody}`).digest("hex"); if (expected !== sig.v1) return res.sendStatus(401); // req.body.type === "payment_link.paid" res.sendStatus(200); });
Crece a tu ritmo
Empieza solo y escala cuando quieras. Cuando crezcas, agrega gerentes y agentes — cada uno con los permisos que necesita.
-
Administrador: Visión completa del negocio. Configura planes, gestiona usuarios y revisa todos los pagos.
-
Gerente: Supervisa su sucursal o equipo. Crea enlaces de pago y ve los reportes de su área.
-
Agente: Cobra a clientes directamente. Genera enlaces y procesa pagos desde el campo.
Integramos con tu banco
Precios transparentes
Un solo plan. Todo incluido. Sin comisiones por transacción.
Un solo plan. Cero sorpresas.
0% de comisión por transacción. Siempre.
- Enlaces de pago ilimitados
- Yappy + tarjetas de crédito
- Pagos en cuotas
- Pagos recurrentes
- Tokenización de tarjetas
- Dominio personalizado
- Panel de control y reportes
- API completa
- Usuarios ilimitados
Sin contratos. Sin permanencia. Cancela cuando quieras.
¿Listo para empezar?
Déjanos tus datos y un especialista te contactará lo antes posible.