Want help setting up your account? Book a free 20-minute call. →

[ Developer platform ]

Integrate. Collect. Automate.

Connect your system to Recaudo through the REST API, the MCP server for AI agents or signed webhooks.

  • 185

    REST endpoints

  • 41

    resources

  • 130

    MCP tools

  • 69

    webhook events

[ API REST ]

Connect Recaudo to what you already use. A REST API with Bearer keys, predictable responses and webhooks for everything that happens.

[ 01 ]

POST /v1/payment-links


                            

Create customers, invoices and payment links with a single call.

[ 02 ]

payment_link.paid

Every payment, message and CRM change reaches your server, signed.

[ 03 ]

Authorization: Bearer sk_live_••••

Per-environment keys, IP allowlists and usage logs per key.

[ Live ]

A full collection in four calls. From a new customer to a confirmed payment.

curl https://recaudo.app/api/v1/payment-links \
  -H "Authorization: Bearer $RECAUDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount":95,"currency":"USD","description":"Installment 4 of 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":95,"currency":"USD","description":"Installment 4 of 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":95,"currency":"USD","description":"Installment 4 of 12"},
)
link = res.json()

Response · 201

{
    "object": "payment_link",
    "data": {
        "id": "9c4f1e3b-0a2c-4d9e-8f71-5b6c3d2e1a40",
        "token": "kX7mQ2pL9vR4tN8w",
        "amount": "95.00",
        "currency": "USD",
        "description": "Installment 4 of 12",
        "status": "active"
    },
    "url": "https://recaudo.app/pay/kX7mQ2pL9vR4tN8w"
}

[ MCP ]

Your agent works inside Recaudo. One terminal line and Claude can check receivables, create links and answer conversations.

The MCP server uses the same REST API and the same key, so the agent only sees what your account sees.

~ terminal
$ claude mcp add recaudo -e RECAUDO_API_KEY=$RECAUDO_API_KEY -- npx -y @recaudo/mcp-server

[ 04 ]

resumen_cobranza()

Your agent calls Recaudo tools as if they were its own functions.

[ 05 ]

How much do I have overdue by more than 30 days?

resumen_cobranza

You have $3,610 USD overdue by more than 30 days across 41 installments.

Ask in plain language and the agent looks up, creates or moves whatever it needs.

[ 06 ]

  • ✓Claude Code
  • ✓Claude Desktop
  • ✓Cursor
  • ✓Windsurf
  • ✓VS Code

One line of configuration in the MCP client you already use.

[ Webhooks ]

Know the moment it happens. Every delivery carries a signature, an event id and retries if your server does not answer.

Live deliveries

POST https://your-system.com/webhooks/recaudo

    Verify the signature

    The X-Recaudo-Signature header carries t=timestamp,v1=signature. Sign "timestamp.body" with your secret and compare.

    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));
    Available events · 69 +
    Payments
    payment.created payment.succeeded payment.failed payment.refunded payment.canceled
    Payment links
    payment_link.created payment_link.updated payment_link.paid payment_link.expired payment_link.canceled
    Subscriptions
    subscription.created subscription.updated subscription.activated subscription.canceled subscription.paused subscription.resumed subscription.renewed subscription.trial_ending subscription.payment_failed
    Invoices
    invoice.created invoice.updated invoice.deleted invoice.finalized invoice.paid invoice.payment_failed invoice.payment_action_required invoice.voided invoice.upcoming
    Customers
    customer.created customer.updated customer.deleted customer.tag.added customer.tag.removed
    Payment methods
    payment_method.attached payment_method.detached payment_method.updated payment_method.expiring
    Conversations
    conversation.created conversation.assigned conversation.transferred conversation.resolved conversation.closed conversation.message.received conversation.message.sent conversation.tag.added conversation.tag.removed
    Leads
    lead.created lead.converted
    Deals
    deal.created deal.updated deal.stage_changed deal.won deal.lost
    Follow-ups
    follow_up.created follow_up.started follow_up.completed follow_up.rescheduled follow_up.cancelled
    Orders
    order.created order.confirmed order.shipped order.delivered order.completed order.cancelled
    Coupons
    coupon.applied
    Flows
    flow_run.started flow_run.completed flow_run.failed flow_run.waiting

    Start building. Create your account, generate a key in Settings and make your first call.