VentaKit
Next.js · TypeScript · Mercado Libre

La API de Mercado Libre sin vendedores desconectados ni órdenes perdidas.

Un starter con la parte difícil ya resuelta: tokens que se renuevan solos y sin pisarse, avisos que aguantan duplicados y desorden, y órdenes que siempre quedan en su último estado.

El núcleo es gratis y de código abierto (MIT). La edición Pro se paga una sola vez.

// app/api/meli/notifications/route.ts
export async function POST(req: NextRequest) {
  const parsed = parseNotification(
    await req.json(), applicationId());
  if (!parsed.ok) return NextResponse.json({ ok: false });
  // 200 enseguida; la orden se lee de la API después
  after(() => coalescer.run(key, () =>
    processNotification(parsed.notification, deps)));
  return NextResponse.json({ ok: true });
}

// lib/server.ts: una sola vez por orden
export async function onOrderPaid(order) {
  // mail, stock, factura…
}

Los errores que te desconectan vendedores, ya resueltos

Conectar una cuenta lleva una tarde. Lo que lleva semanas (y aparece en producción, de noche) es mantenerla conectada y no perder ninguna venta.

El token vence a las 6 horas

VentaKit lo renueva solo, con una hora de margen, antes de cada pedido. Si igual llega un 401, renueva una vez y repite el pedido.

El refresh token es de un solo uso

Dos renovaciones a la vez y el vendedor queda desconectado (invalid_grant). Hay una sola renovación en curso por vendedor; en la Pro, también entre instancias.

Avisos sin firma

Los avisos de Mercado Libre no vienen firmados. Se valida application_id y la orden se lee siempre de la API, con el token del vendedor, verificando que sea suya.

Avisos duplicados y desordenados

Diez avisos de la misma orden se juntan en una lectura. Una lectura vieja nunca pisa una nueva: se guarda solo si last_updated es más reciente.

La "venta nueva" sale dos veces

onOrderPaid se llama una sola vez, cuando la orden pasa a pagada. Ahí va tu mail, tu descuento de stock o tu factura.

Avisos que nunca llegan

Si tu servidor estuvo caído, la orden queda vieja. En la Pro, un cron relee las órdenes recientes de cada vendedor y las pone al día.

Precios

Pago único, sin suscripción. Proyectos ilimitados, propios o de clientes.

Gratis

USD 0

Para una app con una instancia.

  • OAuth con PKCE y state, por país
  • Renovación anticipada, una a la vez
  • Cliente con reintentos, Retry-After y 401 → renovar
  • Avisos de órdenes: validación, agrupado y orden por fecha
  • "Orden pagada" una sola vez
  • 27 tests
Próximamente en GitHub

Agencia

USD 99 pago único

Para todo el equipo de una agencia o empresa.

  • Todo lo de Pro
  • Licencia para todo el equipo
  • Proyectos ilimitados de clientes
Próximamente

¿Preferís no integrarlo vos? Lo integro yo en tu proyecto o en el de tu cliente: escribime.

Preguntas

¿En qué países funciona?

Argentina, Brasil, México, Uruguay, Chile, Colombia y Perú. El país se elige con una variable (MELI_SITE_ID).

¿Qué cubre hoy?

La conexión de cuentas de vendedores y las órdenes (tópico orders_v2). Preguntas, publicaciones, envíos y stock todavía no: si los necesitás, escribime y los sumo.

¿Necesito Vercel?

No. Es una app de Next.js estándar: corre en Vercel, en un VPS o en Docker. El cron de la Pro se dispara desde GitHub Actions (viene listo), Vercel Cron o cualquier scheduler.

¿Qué base de datos usa la versión Pro?

Postgres 13 o superior: Neon, Supabase, Vercel Postgres o el tuyo. Las migraciones son archivos SQL comunes.

¿Está probado contra Mercado Libre real?

Sí, con usuarios de prueba de Mercado Libre: conexión, compra, aviso, renovación del token y conciliación, en una demo con Postgres.

¿Puedo usarlo en proyectos de clientes?

Sí, en proyectos ilimitados. Lo que no se puede es revenderlo o publicarlo como plantilla.

¿Es oficial de Mercado Libre?

No. Es un proyecto independiente, no afiliado ni avalado por Mercado Libre.

Quién lo hizo

Javier Sivack, ingeniero backend con experiencia en sistemas bancarios, pagos e integraciones de APIs. También hice PagoKit, el mismo enfoque para cobrar con Mercado Pago.

Está hecho con Claude, una IA, como compañero de programación: yo lo dirijo, lo pruebo contra la API real de Mercado Libre y respondo por él. Cada caso tiene su test, y si encontrás un error, lo arreglo.

¿Necesitás una integración a medida con Mercado Libre, Mercado Pago u otra API? Escribime.