Saltar al contenido
← Integraciones

API de inventario v1

Para que el CRM o sistema de tu agencia publique y mantenga al día tu inventario en AutoCrédito, y reciba los mensajes de compradores. Sin costo.

Autenticación

Crea una llave en tu panel → Integraciones. Se muestra una sola vez; guárdala como secreto en tu servidor (nunca en una app o página web). Envíala en cada llamada:

Authorization: Bearer inv_live_…

URL base: https://autocredito.mx/api/v1. Todo es JSON en UTF-8. Cada llave pertenece a un lote; puedes revocarla cuando quieras.

La unidad (un auto)

CampoTipoDescripción
external_idtexto (obligatorio)ID de la unidad en tu sistema: stock, VIN o id. Máximo 120 caracteres.
brand / modeltexto (obligatorio)Marca y modelo comercial (Nissan, Versa). Los reconocemos contra nuestro catálogo.
versiontextoVersión o paquete (Advance, LT 2.0). Se muestra en la descripción.
yearentero (obligatorio)Año modelo.
kmentero (obligatorio)Kilometraje. Con mileage_unit: "mi" lo convertimos de millas.
pricenúmero (obligatorio)Precio de contado en pesos mexicanos.
transmissiontexto (obligatorio)"automatic" o "manual" (también aceptamos Automática, Estándar, CVT…).
fueltextogasoline, diesel, hybrid, plug_in_hybrid o electric. Por omisión, gasolina.
color, descriptiontextoColor exterior y descripción (máximo 5,000 caracteres).
owners_countenteroNúmero de dueños anteriores.
municipality_id | city, stateentero | textoMunicipio (clave INEGI) o ciudad y estado. Por omisión, el municipio de tu lote.
zonetextoZona o colonia.
original_invoice, plates_current, tenencias_paid, has_debtsbooleanoFactura original, placas vigentes, tenencias pagadas, adeudos. Omite el campo si no lo sabes.
photosarreglo de URLsHasta 20 fotos en orden (la primera es la portada). Mínimo 3 para publicar.
statustexto"available" (publicado), "reserved" (pausado) o "sold" (vendido). Por omisión, available.
{
  "external_id": "STK-1042",
  "brand": "Nissan",
  "model": "Versa",
  "version": "Advance",
  "year": 2021,
  "km": 38500,
  "price": 249900,
  "transmission": "automatic",
  "fuel": "gasoline",
  "color": "Gris",
  "description": "Un dueño, servicios de agencia.",
  "photos": ["https://tu-cdn.mx/stk-1042/1.jpg", "https://tu-cdn.mx/stk-1042/2.jpg", "https://tu-cdn.mx/stk-1042/3.jpg"],
  "status": "available"
}

Las fotos se descargan y procesan en segundo plano (marca de agua y placas difuminadas). El auto se publica cuando están listas, normalmente en unos minutos. Si una URL de foto no cambia, no se vuelve a descargar: para cambiar una foto, usa una URL nueva.

Endpoints

Alta o reemplazo de una unidad

PUT https://autocredito.mx/api/v1/inventory/{external_id}
→ 201 (nueva) o 200 (actualizada)
{ "outcome": "created", "warning": null, "unit": { … } }

Cambio parcial (precio, km, estatus, fotos…)

PATCH https://autocredito.mx/api/v1/inventory/{external_id}
{ "price": 239900 }

Vendido o retirado

PATCH  https://autocredito.mx/api/v1/inventory/{external_id}   { "status": "sold" }
DELETE https://autocredito.mx/api/v1/inventory/{external_id}            → pausa el anuncio
DELETE https://autocredito.mx/api/v1/inventory/{external_id}?as=sold    → lo marca vendido

Consultar

GET https://autocredito.mx/api/v1/inventory/{external_id}
GET https://autocredito.mx/api/v1/inventory?page=1&per_page=50

{ "external_id": "STK-1042", "listing_id": "…", "title": "Nissan Versa 2021",
  "status": "published", "requested_status": "published", "price": 249900, "km": 38500,
  "photos_processing": false, "failed_photos": [], "error": null,
  "url": "https://autocredito.mx/autos/nissan-versa-2021-…", "synced_at": "…" }

En lote (hasta 100 por llamada)

POST https://autocredito.mx/api/v1/inventory
{ "items": [ { …unidad… }, { …unidad… } ] }

→ { "run_id": "…", "status": "succeeded", "received": 2, "created": 1, "updated": 1,
    "unchanged": 0, "removed": 0, "failed": 0,
    "results": [ { "external_id": "STK-1042", "outcome": "created", "listing_id": "…", "error": null }, … ] }

Con "replace_all": true mandas tu inventario completo (sin el límite de 100): lo que no venga se retira según tu configuración (vendido, pausado o nada). Por seguridad, si de golpe faltara más de la mitad del inventario, no se retira nada y te avisamos en el panel.

Si una unidad no cambia desde la última vez, no se toca (unchanged). Tu sistema manda: lo que cambies en tu panel se reemplaza cuando tu sistema envíe cambios de esa unidad.

Mensajes de compradores

GET https://autocredito.mx/api/v1/leads?since=2026-11-01T00:00:00Z&limit=100

{ "items": [ { "id": "…", "created_at": "…", "source": "marketplace",
    "customer": { "name": "Ana", "phone": "+526241234567", "message": "¿Sigue disponible?" },
    "vehicle": { "listing_id": "…", "external_id": "STK-1042", "title": "Nissan Versa 2021",
                 "price": 249900, "km": 38500, "url": "…" } } ],
  "next_since": "…" }

Del más viejo al más nuevo. Para traer solo los nuevos, guarda next_since y pásalo en la siguiente llamada.

Webhook de mensajes

En tu panel puedes dar una URL https: te enviamos cada mensaje nuevo con POST y el mismo JSON de arriba más "type": "lead.created". Si tu servidor no responde 2xx, reintentamos con espera creciente; usa el id para no duplicar.

Verifica la firma: x-signature = sha256= + HMAC-SHA256 de `${timestamp}.${cuerpo}` con tu secreto, donde timestamp viene en x-signature-timestamp. Rechaza firmas distintas o de más de 5 minutos.

// Node.js
const expected = "sha256=" + crypto.createHmac("sha256", secret)
  .update(req.headers["x-signature-timestamp"] + "." + rawBody).digest("hex");
const ok = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers["x-signature"]));

También puedes recibirlos por correo en formato ADF (el estándar que leen los CRM automotrices) o descargarlos en CSV desde el panel.

Errores y límites

{ "error": { "code": "invalid_unit", "message": "Falta el precio o no es válido (en pesos)." } }
  • 401 llave faltante o revocada · 404 unidad no encontrada · 413 demasiadas unidades · 422 unidad no válida (marca o modelo que no reconocemos, datos faltantes) · 429 demasiadas llamadas.
  • 120 llamadas por minuto por llave; hasta 100 unidades por llamada en lote.
  • Hasta 20 fotos por auto, de 15 MB máximo cada una (JPG, PNG o WebP).
  • Si una marca o modelo no se reconoce, escríbenos y lo agregamos al catálogo.