[ 01 ]
POST /v1/payment-links
Crea clientes, facturas y ligas de pago con una sola llamada.
[ Plataforma para desarrolladores ]
Conecta tu sistema con Recaudo por la API REST, el servidor MCP para agentes de IA o webhooks firmados.
205
endpoints REST
46
recursos
131
herramientas MCP
70
eventos de webhook
[ API REST ]
[ 01 ]
POST /v1/payment-links
Crea clientes, facturas y ligas de pago con una sola llamada.
[ 02 ]
payment_link.paid
Cada pago, mensaje y cambio del CRM llega firmado a tu servidor.
[ 03 ]
Authorization: Bearer sk_live_••••
Llaves por ambiente, lista de IPs permitidas y registro de uso por llave.
[ En vivo ]
curl https://recaudo.app/api/v1/payment-links \
-H "Authorization: Bearer $RECAUDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":1850,"currency":"MXN","description":"Mensualidad 4 de 12"}'
const res = await fetch("https://recaudo.app/api/v1/payment-links", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RECAUDO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({"amount":1850,"currency":"MXN","description":"Mensualidad 4 de 12"}),
});
const { data, url } = await res.json();
import os, requests
res = requests.post(
"https://recaudo.app/api/v1/payment-links",
headers={"Authorization": f"Bearer {os.environ['RECAUDO_API_KEY']}"},
json={"amount":1850,"currency":"MXN","description":"Mensualidad 4 de 12"},
)
link = res.json()
Respuesta · 201
{
"object": "payment_link",
"data": {
"id": "9c4f1e3b-0a2c-4d9e-8f71-5b6c3d2e1a40",
"token": "kX7mQ2pL9vR4tN8w",
"amount": "1850.00",
"currency": "MXN",
"description": "Mensualidad 4 de 12",
"status": "active"
},
"url": "https://recaudo.app/pay/kX7mQ2pL9vR4tN8w"
}
$
[ MCP ]
El servidor MCP usa la misma API REST y la misma llave, así que el agente solo ve lo que ve tu cuenta.
$ claude mcp add recaudo -e RECAUDO_API_KEY=$RECAUDO_API_KEY -- npx -y @recaudo/mcp-server
[ 04 ]
resumen_cobranza()
Tu agente llama herramientas de Recaudo como si fueran funciones propias.
[ 05 ]
¿Cuánto tengo vencido a más de 30 días?
resumen_cobranza
Tienes $70,300 MXN vencido a más de 30 días en 41 parcialidades.
Preguntas en español y el agente consulta, crea o mueve lo que haga falta.
[ 06 ]
Una línea de configuración en el cliente MCP que ya usas.
[ Webhooks ]
Entregas en vivo
POST https://tu-sistema.com/webhooks/recaudo
Verifica la firma
El encabezado X-Recaudo-Signature trae t=timestamp,v1=firma. Firma "timestamp.cuerpo" con tu secreto y compara.
const [t, v1] = header.split(",").map((p) => p.split("=")[1]);
const expected = crypto
.createHmac("sha256", process.env.RECAUDO_WEBHOOK_SECRET)
.update(`${t}.${rawBody}`)
.digest("hex");
const valid = crypto.timingSafeEqual(Buffer.from(v1), Buffer.from(expected));payment.created
payment.succeeded
payment.failed
payment.refunded
payment.canceled
payment_link.created
payment_link.updated
payment_link.paid
payment_link.expired
payment_link.canceled
subscription.created
subscription.updated
subscription.activated
subscription.canceled
subscription.paused
subscription.resumed
subscription.renewed
subscription.trial_ending
subscription.payment_failed
invoice.created
invoice.updated
invoice.deleted
invoice.finalized
invoice.paid
invoice.payment_failed
invoice.payment_action_required
invoice.voided
invoice.upcoming
customer.created
customer.updated
customer.deleted
customer.tag.added
customer.tag.removed
payment_method.attached
payment_method.detached
payment_method.updated
payment_method.expiring
conversation.created
conversation.assigned
conversation.transferred
conversation.resolved
conversation.closed
conversation.message.received
conversation.message.sent
conversation.message.status_updated
conversation.tag.added
conversation.tag.removed
lead.created
lead.converted
deal.created
deal.updated
deal.stage_changed
deal.won
deal.lost
follow_up.created
follow_up.started
follow_up.completed
follow_up.rescheduled
follow_up.cancelled
order.created
order.confirmed
order.shipped
order.delivered
order.completed
order.cancelled
coupon.applied
flow_run.started
flow_run.completed
flow_run.failed
flow_run.waiting