Historial de cambios de Crol API · Ver documentación (Swagger)
Crol-Api-Version ya no provoca un error 400 en endpoints que no participan en el versionado de la API; ahora se ignora, como si el header no se hubiera enviado.Crol-Api-Version con una fecha (formato aaaa-mm) o el alias current para pedir siempre la version vigente. Ningun endpoint existente tiene todavia mas de una version, asi que el comportamiento actual no cambia con o sin este header.objId del listado de cotizaciones de cliente; el listado ahora incluye únicamente cotizaciones de venta y ya no es posible filtrar por tipo de objeto.Acción requerida: Deja de enviar el parámetro objId en la consulta; si se envía, se ignora.
referencia con la referencia externa del documento.
vendedorId y cada registro incluye el campo vendedorId.
sucursalId, entidadId y transaccionId; cada registro incluye el encabezado con importes e impuestos, las partidas, los archivos adjuntos y los documentosRelacionados.
GET /api/Ruta/Devoluciones con listado paginado por sucursal y filtros por tipo de operación, rango de fechas y búsqueda por folio o vendedor, y GET /api/Ruta/Devoluciones/{id} con el detalle de una devolución y sus partidas de productos y empaques con existencia, conteo, diferencia y totales.POST /api/Proyecto solo crea proyectos nuevos y ya no acepta divisionId en el cuerpo; para actualizar un proyecto existente se agrega PUT /api/Proyecto/{id}, donde el identificador va en la ruta.Acción requerida: si actualizabas un proyecto enviando divisionId en el cuerpo de POST /api/Proyecto, cambia a PUT /api/Proyecto/{id} con el identificador en la ruta y el resto de los datos en el cuerpo.
contactosAdicionales de la entidad y el nombre de su contacto principal (nombreContactoPrincipal).
GET /api/Bancos/ConceptosEgreso para consultar el catálogo de conceptos válidos que se pueden enviar en conceptoId al capturar, en Registrar Egreso, una partida por concepto directo (cuando transaccionIdCompra es 0). Se filtra por cuentaId (obligatorio), entidadId (opcional) y texto de búsqueda; un concepto devuelto aquí siempre es aceptado por POST /api/Bancos/EgresoAgregar con esos mismos valores.
curl -H "Authorization: Bearer {token}" \
"https://api.crol.mx/api/Bancos/ConceptosEgreso?cuentaId=12&entidadId=345&busqueda=mantenimiento&pagina=1&paginaTamaño=100"
{
"data": [
{
"conceptoId": 5101,
"nombre": "Servicios de mantenimiento",
"codigo": "SERV-014",
"cuenta": "5.1.03.001",
"conceptoIdPadre": 0
}
],
"total": 1,
"resultado": true,
"error": null
}
transaccionId dentro del encabezado (mayor a 0) y las partidas del detalle se aplicarán a ese egreso en vez de registrar uno nuevo.
beneficiarioId en el encabezado; antes el campo no existía en el contrato y el egreso se registraba siempre con beneficiarioId en cero.
importeAbono en vez de importe, notas en vez de comentario, y transaccionIdCompra en vez de transaccionId2. Deja de enviar los campos de impuesto por partida y por encabezado (impuesto, impuesto2, impuesto3, impuesto4 y sus retenciones, iva, subtotal): el servidor los calcula automáticamente.
{
"conceptoId": 5101,
"importe": 1160.00,
"comentario": "Pago proveedor",
"transaccionId2": 987654,
"tipoCambio": 1,
"impuesto": 160.00,
"impuesto1_ret": 0,
"impuestoId": 8001,
"refMonedaId": 1,
"conceptoIdPadre": 0
}
{
"conceptoId": 5101,
"importeAbono": 1160.00,
"notas": "Pago proveedor",
"transaccionIdCompra": 987654,
"tipoCambio": 1
}
sucursalId, centroCostoId y divisionId en el encabezado; si se omiten o se envían en 0, se usa el valor de la sesión del usuario autenticado, igual que antes.
conceptoId del detalle sea válido para el tipo de documento; antes, estos casos podían registrar el egreso con partidas faltantes en el detalle sin que la respuesta reflejara el problema.
transaccionId como parámetro de consulta y devuelve un código de resultado (item1) junto con un mensaje descriptivo (item2) de la verificación.
subtotal11 e impuesto11 (que en realidad calculaban la tasa vigente del 8%, no una tasa del 11% que ya no existe) se renombran a subtotal8 e impuesto8.Acción requerida: deja de leer subtotal11 e impuesto11 y usa en su lugar subtotal8 e impuesto8.
fechaPago (pagos) y fecha (proveedores) dejan de aceptar cualquier texto y ahora se validan como una fecha en formato dd/MM/yyyy.Acción requerida: envía fechaPago y fecha con el formato dd/MM/yyyy; un valor que no sea una fecha válida en ese formato hará que la solicitud sea rechazada.
monedaId en un pago, ahora se asume la moneda nacional (MXN, monedaId: 1) en lugar de un identificador de moneda sin asignar.
transaccionIdCROLReferencia con la transacción de CROL relacionada.
promocion ya no es obligatorio, ya que su valor predeterminado es 0.
fecha1 y fecha2 a fechaInicial y fechaFinal, y cambia su formato de fecha de yyyy-MM-dd a dd/MM/yyyy.Acción requerida: envía fechaInicial y fechaFinal (en lugar de fecha1 y fecha2) con formato dd/MM/yyyy.
data de la respuesta (data.foto, data.url); ya no se devuelve el objeto directamente en la raíz del body.
promocion con el importe de la promoción aplicada al producto o servicio.Acción requerida: envía promocion en cada partida del detalle; si no aplica promoción, envía 0.
cliente, entregaFecha, fecha, folio, moneda, notas, vigenciaFecha) ya no se devuelven como null; se devuelve cadena vacía cuando no tienen valor.
formaNombre a nombre y agrega datos adicionales de cada forma de pago: moneda, referencia, comentario, generación de consecutivo, estado activo y las claves SAT correspondientes.Acción requerida: deja de leer el campo formaNombre; usa nombre en su lugar y actualiza tu integración para tolerar los campos nuevos en la respuesta (maneja_cheques, monedaId, referencia, comentario, generaConsecutivo, activo, claveSAT, claveContabilidadElectronica, claveSAT33).
GET /api/Objetos) ahora envuelve la respuesta en el formato estándar de la API en lugar de devolver el arreglo directamente.Acción requerida: lee el listado desde el campo data de la respuesta; ya no se devuelve un arreglo en la raíz del body.
sucursalId dentro de encabezado en el cuerpo de la solicitud.Acción requerida: envía encabezado.sucursalId explícitamente en el cuerpo de la solicitud; ya no se infiere automáticamente de la sesión del usuario.
uuid y fechaTimbrado en el encabezado, y claveProdServ, claveUnidad e impuestos detallados por partida.curl -H "Authorization: Bearer {token}" \
"https://api.crol.mx/api/ConceptosCompra?objId=268-1¢roCostoId=12&pagina=1&paginaTamaño=30"
{
"data": [],
"total": 0,
"resultado": false,
"error": null
}
{
"data": [
{
"codigo": "SERV-014",
"conceptoId": 1042,
"conceptoIdpadre": 0,
"cuentaContableId": 5103,
"cuentaContableIdPadre": 0,
"nombre": "Servicios de mantenimiento"
}
],
"total": 57,
"resultado": true,
"error": null
}
costoPromedio, que había dejado de estar disponible, del recurso Artículo.Acción requerida: deja de leer este campo en tus integraciones; ya no se calcula ni se envía.
transaccionId ahora se recibe como parámetro de ruta en Notas de Devolución (antes se enviaba en el cuerpo).Acción requerida: envía transaccionId como parte de la URL, no en el body de la solicitud.
/) redirige a la documentación pública.