openapi: 3.0.3 info: title: 'Laravel API Documentation' description: '' version: 1.0.0 servers: - url: 'https://agentes-vendor-back.puntossmart.com' tags: - name: '' description: '' - name: Auth description: "\nAPI para la gestión de autenticación" - name: Companies description: '' - name: Opciones description: '' - name: Permisos description: '' - name: Roles description: '' - name: Sucursales description: '' - name: Users description: '' - name: 'Usuarios Smart' description: '' - name: Vendedores description: '' - name: Vendors description: "\nAPI para la gestión de vendors" components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token.' security: - default: [] paths: /api/sanctum/csrf-cookie: get: summary: 'Return an empty response simply to trigger the storage of the CSRF cookie in the browser.' operationId: returnAnEmptyResponseSimplyToTriggerTheStorageOfTheCSRFCookieInTheBrowser description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/sanctum/csrf-cookie could not be found.' properties: message: type: string example: 'The route api/sanctum/csrf-cookie could not be found.' tags: - '' security: [] /api/actualizarestadopago: post: summary: '' operationId: postApiActualizarestadopago description: '' parameters: [] responses: { } tags: - '' security: [] /api/infopagos: get: summary: '' operationId: getApiInfopagos description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/infopagos could not be found.' properties: message: type: string example: 'The route api/infopagos could not be found.' tags: - '' security: [] /api/pagosvendorall: get: summary: "Pagos vendor\nEste sirve para ver los pagos de vendor" operationId: pagosVendorEsteSirveParaVerLosPagosDeVendor description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/pagosvendorall could not be found.' properties: message: type: string example: 'The route api/pagosvendorall could not be found.' tags: - '' security: [] /api/obtenermontospago: get: summary: '' operationId: getApiObtenermontospago description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/obtenermontospago could not be found.' properties: message: type: string example: 'The route api/obtenermontospago could not be found.' tags: - '' security: [] /api/actualizarmontospago: put: summary: '' operationId: putApiActualizarmontospago description: '' parameters: [] responses: { } tags: - '' security: [] /api/pagosvendedorall: get: summary: '' operationId: getApiPagosvendedorall description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/pagosvendedorall could not be found.' properties: message: type: string example: 'The route api/pagosvendedorall could not be found.' tags: - '' security: [] '/api/pagosvendedor/{id_pago_vendor}': post: summary: '' operationId: postApiPagosvendedorId_pago_vendor description: '' parameters: [] responses: { } tags: - '' security: [] parameters: - in: path name: id_pago_vendor description: '' example: consequatur required: true schema: type: string '/api/vouchers/{id}': get: summary: '' operationId: getApiVouchersId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vouchers/consequatur could not be found.' properties: message: type: string example: 'The route api/vouchers/consequatur could not be found.' tags: - '' security: [] parameters: - in: path name: id description: 'The ID of the voucher.' example: consequatur required: true schema: type: string '/api/enviarcomprobantepagovendor/{id}': post: summary: '' operationId: postApiEnviarcomprobantepagovendorId description: '' parameters: [] responses: { } tags: - '' security: [] parameters: - in: path name: id description: 'The ID of the enviarcomprobantepagovendor.' example: consequatur required: true schema: type: string /api/vendedores/locations: get: summary: 'Listar ubicaciones recientes por vendedor o global (según rol)' operationId: listarUbicacionesRecientesPorVendedorOGlobalsegnRol description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendedores/locations could not be found.' properties: message: type: string example: 'The route api/vendedores/locations could not be found.' tags: - '' security: [] post: summary: 'Crear punto de ubicación (enviado por app móvil)' operationId: crearPuntoDeUbicacinenviadoPorAppMvil description: '' parameters: [] responses: { } tags: - '' security: [] /api/vendedores/locations/latest: get: summary: 'Última ubicación por cada vendedor del vendor (o para el vendedor actual)' operationId: ltimaUbicacinPorCadaVendedorDelVendoroParaElVendedorActual description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendedores/locations/latest could not be found.' properties: message: type: string example: 'The route api/vendedores/locations/latest could not be found.' tags: - '' security: [] /api/route-plans: get: summary: '' operationId: getApiRoutePlans description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/route-plans could not be found.' properties: message: type: string example: 'The route api/route-plans could not be found.' tags: - '' security: [] post: summary: '' operationId: postApiRoutePlans description: '' parameters: [] responses: { } tags: - '' requestBody: required: false content: application/json: schema: type: object properties: id_vendedor: type: string description: 'Must be a valid UUID. The id of an existing record in the vendedores table.' example: 66529e01-d113-3473-8d6f-9e11e09332ea nullable: true id_vendor: type: string description: 'Must be a valid UUID. The id of an existing record in the vendors table.' example: fa010f60-df29-3f05-8bc7-bed48f550d13 nullable: true name: type: string description: 'Must not be greater than 255 characters.' example: opfuudtdsufvyvddqamni nullable: true scheduled_date: type: string description: 'Must be a valid date.' example: '2025-09-20T17:07:35' nullable: true status: type: string description: '' example: scheduled nullable: true enum: - draft - scheduled - in_progress - completed - cancelled profile: type: string description: '' example: walking nullable: true enum: - driving - walking stops: type: array description: '' example: null items: type: object properties: label: type: string description: 'Must not be greater than 255 characters.' example: ihfqcoynlazghdtqtqxba nullable: true latitude: type: number description: 'Must be between -90 and 90.' example: -90 nullable: false longitude: type: number description: 'Must be between -180 and 180.' example: -179 nullable: false sequence: type: integer description: 'Must be at least 0.' example: 5 nullable: true type: type: string description: '' example: user_smart nullable: true enum: - company - user_smart - custom external_id: type: string description: 'Must be a valid UUID.' example: 670c8792-d451-3fdc-8fe0-37825f7257e2 nullable: true required: - latitude - longitude security: [] '/api/route-plans/{routePlan_id}': get: summary: '' operationId: getApiRoutePlansRoutePlan_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/route-plans/consequatur could not be found.' properties: message: type: string example: 'The route api/route-plans/consequatur could not be found.' tags: - '' security: [] delete: summary: '' operationId: deleteApiRoutePlansRoutePlan_id description: '' parameters: [] responses: { } tags: - '' security: [] parameters: - in: path name: routePlan_id description: 'The ID of the routePlan.' example: consequatur required: true schema: type: string '/api/route-plans/{routePlan_id}/status': put: summary: '' operationId: putApiRoutePlansRoutePlan_idStatus description: '' parameters: [] responses: { } tags: - '' requestBody: required: true content: application/json: schema: type: object properties: status: type: string description: '' example: in_progress nullable: false enum: - draft - scheduled - in_progress - completed - cancelled required: - status security: [] parameters: - in: path name: routePlan_id description: 'The ID of the routePlan.' example: consequatur required: true schema: type: string '/api/route-stops/{routeStop_id}': put: summary: '' operationId: putApiRouteStopsRouteStop_id description: '' parameters: [] responses: { } tags: - '' requestBody: required: false content: application/json: schema: type: object properties: label: type: string description: 'Must not be greater than 255 characters.' example: vmqeopfuudtdsufvyvddq nullable: true sequence: type: integer description: 'Must be at least 0.' example: 1 nullable: true status: type: string description: '' example: skipped nullable: true enum: - pending - visited - skipped - postponed notes: type: string description: 'Must not be greater than 2000 characters.' example: mniihfqcoynlazghdtqtq nullable: true visited_at: type: string description: 'Must be a valid date.' example: '2025-09-20T17:07:35' nullable: true retry_at: type: string description: 'Must be a valid date.' example: '2025-09-20T17:07:35' nullable: true outcome: type: string description: '' example: not_interested nullable: true enum: - no_decision_maker - closed - moved - not_interested - other security: [] parameters: - in: path name: routeStop_id description: 'The ID of the routeStop.' example: consequatur required: true schema: type: string /api/routes/optimize: post: summary: '' operationId: postApiRoutesOptimize description: '' parameters: [] responses: { } tags: - '' requestBody: required: true content: application/json: schema: type: object properties: stops: type: array description: 'Must have at least 2 items.' example: - [] items: type: object properties: latitude: type: number description: 'Must be between -90 and 90.' example: -89 nullable: false longitude: type: number description: 'Must be between -180 and 180.' example: -180 nullable: false required: - latitude - longitude profile: type: string description: '' example: walking nullable: true enum: - driving - walking roundtrip: type: boolean description: '' example: true nullable: true required: - stops security: [] /api/heatmap/points: get: summary: 'Retorna puntos para heatmap de compañías y usuarios (sin company) con pesos.' operationId: retornaPuntosParaHeatmapDeCompaasYUsuariossinCompanyConPesos description: 'Se asume que `companies` tiene latitud/longitud y `users` puede derivarse de compañías o no.' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/heatmap/points could not be found.' properties: message: type: string example: 'The route api/heatmap/points could not be found.' tags: - '' security: [] /api/agenda/upcoming: get: summary: '' operationId: getApiAgendaUpcoming description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/agenda/upcoming could not be found.' properties: message: type: string example: 'The route api/agenda/upcoming could not be found.' tags: - '' security: [] /api/agenda-items: get: summary: '' operationId: getApiAgendaItems description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/agenda-items could not be found.' properties: message: type: string example: 'The route api/agenda-items could not be found.' tags: - '' security: [] post: summary: '' operationId: postApiAgendaItems description: '' parameters: [] responses: { } tags: - '' requestBody: required: true content: multipart/form-data: schema: type: object properties: nombre_comercio: type: string description: 'Must not be greater than 255 characters.' example: vmqeopfuudtdsufvyvddq nullable: false direccion: type: string description: 'Must not be greater than 500 characters.' example: amniihfqcoynlazghdtqt nullable: true latitude: type: number description: 'Must be between -90 and 90.' example: -89 nullable: false longitude: type: number description: 'Must be between -180 and 180.' example: -179 nullable: false motivo_reagendo: type: string description: '' example: closed_business nullable: false enum: - no_decision_maker - closed_business - meeting_scheduled - documents_needed - follow_up_required - other motivo_detalle: type: string description: 'Must not be greater than 1000 characters.' example: bajwbpilpmufinllwloau nullable: true fecha_reintento: type: string description: 'Must be a valid date. Must be a date after now.' example: '2106-10-20' nullable: false foto_establecimiento: type: string format: binary description: 'Must be a file. Must not be greater than 10240 kilobytes.' nullable: true prioridad: type: string description: '' example: media nullable: true enum: - baja - media - alta notas_adicionales: type: string description: 'Must not be greater than 1000 characters.' example: mqeopfuudtdsufvyvddqa nullable: true fecha_visita_original: type: string description: 'Must be a valid date.' example: '2025-09-20T17:07:35' nullable: true required: - nombre_comercio - latitude - longitude - motivo_reagendo - fecha_reintento security: [] /api/agenda-items/simple: post: summary: '' operationId: postApiAgendaItemsSimple description: '' parameters: [] responses: { } tags: - '' security: [] '/api/agenda-items/{agendaItem_id}': get: summary: '' operationId: getApiAgendaItemsAgendaItem_id description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/agenda-items/consequatur could not be found.' properties: message: type: string example: 'The route api/agenda-items/consequatur could not be found.' tags: - '' security: [] put: summary: '' operationId: putApiAgendaItemsAgendaItem_id description: '' parameters: [] responses: { } tags: - '' requestBody: required: false content: application/json: schema: type: object properties: estado: type: string description: '' example: visitado nullable: true enum: - pendiente - visitado - cancelado prioridad: type: string description: '' example: alta nullable: true enum: - baja - media - alta notas_adicionales: type: string description: 'Must not be greater than 1000 characters.' example: vmqeopfuudtdsufvyvddq nullable: true fecha_completado: type: string description: 'Must be a valid date.' example: '2025-09-20T17:07:35' nullable: true security: [] delete: summary: '' operationId: deleteApiAgendaItemsAgendaItem_id description: '' parameters: [] responses: { } tags: - '' security: [] parameters: - in: path name: agendaItem_id description: 'The ID of the agendaItem.' example: consequatur required: true schema: type: string /api/agenda-items/proximas-visitas: get: summary: '' operationId: getApiAgendaItemsProximasVisitas description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/agenda-items/proximas-visitas could not be found.' properties: message: type: string example: 'The route api/agenda-items/proximas-visitas could not be found.' tags: - '' security: [] /api/dashboard/vendor-stats: get: summary: 'Estadísticas para el dashboard del Vendor' operationId: estadsticasParaElDashboardDelVendor description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/dashboard/vendor-stats could not be found.' properties: message: type: string example: 'The route api/dashboard/vendor-stats could not be found.' tags: - '' security: [] /api/dashboard/vendedor-stats: get: summary: 'Estadísticas para el dashboard del Vendedor' operationId: estadsticasParaElDashboardDelVendedor description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/dashboard/vendedor-stats could not be found.' properties: message: type: string example: 'The route api/dashboard/vendedor-stats could not be found.' tags: - '' security: [] /api/dashboard/vendor-alerts: get: summary: 'Alertas para el vendor' operationId: alertasParaElVendor description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/dashboard/vendor-alerts could not be found.' properties: message: type: string example: 'The route api/dashboard/vendor-alerts could not be found.' tags: - '' security: [] /api/vendedores/update-location: post: summary: 'Actualizar ubicación del vendedor' operationId: actualizarUbicacinDelVendedor description: '' parameters: [] responses: { } tags: - '' security: [] /api/vendedores/current-location: get: summary: 'Obtener ubicación actual del vendedor' operationId: obtenerUbicacinActualDelVendedor description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendedores/current-location could not be found.' properties: message: type: string example: 'The route api/vendedores/current-location could not be found.' tags: - '' security: [] /api/vendedores/toggle-status: post: summary: 'Alternar estado activo/inactivo del vendedor' operationId: alternarEstadoActivoinactivoDelVendedor description: '' parameters: [] responses: { } tags: - '' security: [] /api/vendedores/field-status: get: summary: 'Obtener estado de vendedores en campo (para vendors)' operationId: obtenerEstadoDeVendedoresEnCampoparaVendors description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendedores/field-status could not be found.' properties: message: type: string example: 'The route api/vendedores/field-status could not be found.' tags: - '' security: [] /api/notifications/vendedor: get: summary: 'Notificaciones para vendedores' operationId: notificacionesParaVendedores description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/notifications/vendedor could not be found.' properties: message: type: string example: 'The route api/notifications/vendedor could not be found.' tags: - '' security: [] /api/dashboard-counts: get: summary: '' operationId: getApiDashboardCounts description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/dashboard-counts could not be found.' properties: message: type: string example: 'The route api/dashboard-counts could not be found.' tags: - '' security: [] /api/auth/signin: post: summary: 'Iniciar sesion' operationId: iniciarSesion description: '' parameters: [] responses: { } tags: - Auth requestBody: required: true content: application/json: schema: type: object properties: codigo: type: string description: 'Must be at least 8 characters.' example: vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjury nullable: false password: type: string description: 'Must be at least 6 characters.' example: 'UB)z&~na%x?(F|SF{9' nullable: false required: - codigo - password security: [] /api/auth/webuser: get: summary: 'Informacion del usuario autenticado' operationId: informacionDelUsuarioAutenticado description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/auth/webuser could not be found.' properties: message: type: string example: 'The route api/auth/webuser could not be found.' tags: - Auth /api/auth/weblogout: post: summary: 'Cerrar sesion actual' operationId: cerrarSesionActual description: '' parameters: [] responses: { } tags: - Auth /api/auth/weblogoutall: post: summary: 'Cerrar todas las sesiones' operationId: cerrarTodasLasSesiones description: '' parameters: [] responses: { } tags: - Auth /api/auth/newpassword: post: summary: 'Cambiar contraseña' operationId: cambiarContrasea description: '' parameters: [] responses: { } tags: - Auth requestBody: required: true content: application/json: schema: type: object properties: new_password: type: string description: 'Must be at least 8 characters.' example: vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjury nullable: false required: - new_password /api/companies: get: summary: 'Todas las companies' operationId: todasLasCompanies description: '' parameters: - in: query name: limit description: 'Número de registros por página.' example: 15 required: false schema: type: integer description: 'Número de registros por página.' example: 15 nullable: false - in: query name: keyword description: 'Término de búsqueda para filtrar companies.' example: '00000001' required: false schema: type: string description: 'Término de búsqueda para filtrar companies.' example: '00000001' nullable: false responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/companies could not be found.' properties: message: type: string example: 'The route api/companies could not be found.' tags: - Companies /api/countcompanies: get: summary: '' operationId: getApiCountcompanies description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/countcompanies could not be found.' properties: message: type: string example: 'The route api/countcompanies could not be found.' tags: - Companies /api/countafiliadores: get: summary: '' operationId: getApiCountafiliadores description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/countafiliadores could not be found.' properties: message: type: string example: 'The route api/countafiliadores could not be found.' tags: - Companies '/api/companiesforseller/{codigo_referido}': get: summary: '' operationId: getApiCompaniesforsellerCodigo_referido description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/companiesforseller/consequatur could not be found.' properties: message: type: string example: 'The route api/companiesforseller/consequatur could not be found.' tags: - Companies parameters: - in: path name: codigo_referido description: '' example: consequatur required: true schema: type: string '/api/companiesforyear/{año}/{mes}': get: summary: '' operationId: getApiCompaniesforyearAOMes description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/companiesforyear/consequatur/consequatur could not be found.' properties: message: type: string example: 'The route api/companiesforyear/consequatur/consequatur could not be found.' tags: - Companies parameters: - in: path name: año description: '' example: consequatur required: true schema: type: string - in: path name: mes description: 'Optional parameter.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: consequatur '/api/companiesvsusers/{año}/{mes}': get: summary: '' operationId: getApiCompaniesvsusersAOMes description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/companiesvsusers/consequatur/consequatur could not be found.' properties: message: type: string example: 'The route api/companiesvsusers/consequatur/consequatur could not be found.' tags: - Companies parameters: - in: path name: año description: '' example: consequatur required: true schema: type: string - in: path name: mes description: 'Optional parameter.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: consequatur /api/opcionesvendors: get: summary: 'Obtener opciones de vendedors' operationId: obtenerOpcionesDeVendedors description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/opcionesvendors could not be found.' properties: message: type: string example: 'The route api/opcionesvendors could not be found.' tags: - Opciones /api/permisos: get: summary: 'Todos los permisos' operationId: todosLosPermisos description: '' parameters: - in: query name: limit description: 'Número de registros por página.' example: 15 required: false schema: type: integer description: 'Número de registros por página.' example: 15 nullable: false responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/permisos could not be found.' properties: message: type: string example: 'The route api/permisos could not be found.' tags: - Permisos post: summary: 'Guardar permiso' operationId: guardarPermiso description: '' parameters: [] responses: { } tags: - Permisos requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: consequatur nullable: false required: - name '/api/permisos/{id}': get: summary: 'Mostrar permiso por id' operationId: mostrarPermisoPorId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/permisos/consequatur could not be found.' properties: message: type: string example: 'The route api/permisos/consequatur could not be found.' tags: - Permisos put: summary: 'Actualizar permiso' operationId: actualizarPermiso description: '' parameters: [] responses: { } tags: - Permisos requestBody: required: true content: application/json: schema: type: object properties: id: type: string description: '' example: consequatur nullable: false name: type: string description: '' example: consequatur nullable: false required: - id - name delete: summary: 'Eliminar permiso' operationId: eliminarPermiso description: '' parameters: [] responses: { } tags: - Permisos parameters: - in: path name: id description: 'The ID of the permiso.' example: consequatur required: true schema: type: string /api/permisosall: get: summary: 'Todos los permisos' operationId: todosLosPermisos description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/permisosall could not be found.' properties: message: type: string example: 'The route api/permisosall could not be found.' tags: - Permisos /api/permissionsforrole: get: summary: 'Permisos por rol' operationId: permisosPorRol description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/permissionsforrole could not be found.' properties: message: type: string example: 'The route api/permissionsforrole could not be found.' tags: - Permisos /api/roles: get: summary: 'Todos los roles' operationId: todosLosRoles description: '' parameters: - in: query name: limit description: 'Número de registros por página.' example: 15 required: false schema: type: integer description: 'Número de registros por página.' example: 15 nullable: false responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/roles could not be found.' properties: message: type: string example: 'The route api/roles could not be found.' tags: - Roles post: summary: 'Crear role' operationId: crearRole description: '' parameters: [] responses: { } tags: - Roles requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Nombre del role.' example: superadmin nullable: false required: - name '/api/roles/{id}': get: summary: 'Mostrar role por id' operationId: mostrarRolePorId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/roles/consequatur could not be found.' properties: message: type: string example: 'The route api/roles/consequatur could not be found.' tags: - Roles put: summary: 'Actualizar role' operationId: actualizarRole description: '' parameters: [] responses: { } tags: - Roles requestBody: required: true content: application/json: schema: type: object properties: id: type: string description: '' example: consequatur nullable: false name: type: string description: '' example: consequatur nullable: false required: - id - name delete: summary: 'Eliminar role' operationId: eliminarRole description: '' parameters: [] responses: { } tags: - Roles parameters: - in: path name: id description: 'The ID of the role.' example: consequatur required: true schema: type: string /api/rolesall: get: summary: 'Todos los roles' operationId: todosLosRoles description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/rolesall could not be found.' properties: message: type: string example: 'The route api/rolesall could not be found.' tags: - Roles /api/syncRolePermissions: post: summary: 'Sincronizar permisos de un rol' operationId: sincronizarPermisosDeUnRol description: '' parameters: [] responses: { } tags: - Roles '/api/sucursales/{id_company}': get: summary: '' operationId: getApiSucursalesId_company description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/sucursales/consequatur could not be found.' properties: message: type: string example: 'The route api/sucursales/consequatur could not be found.' tags: - Sucursales parameters: - in: path name: id_company description: '' example: consequatur required: true schema: type: string /api/sucursales/cantidad: get: summary: '' operationId: getApiSucursalesCantidad description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/sucursales/cantidad could not be found.' properties: message: type: string example: 'The route api/sucursales/cantidad could not be found.' tags: - Sucursales /api/users: get: summary: 'Todos los usuarios' operationId: todosLosUsuarios description: '' parameters: - in: query name: limit description: 'Número de registros por página.' example: 15 required: false schema: type: integer description: 'Número de registros por página.' example: 15 nullable: false - in: query name: keyword description: 'Término de búsqueda para filtrar usuarios.' example: juan@gmail.com required: false schema: type: string description: 'Término de búsqueda para filtrar usuarios.' example: juan@gmail.com nullable: false responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/users could not be found.' properties: message: type: string example: 'The route api/users could not be found.' tags: - Users post: summary: 'Crear usuario' operationId: crearUsuario description: '' parameters: [] responses: { } tags: - Users '/api/users/{id}': get: summary: 'Mostrar usuario por id' operationId: mostrarUsuarioPorId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/users/consequatur could not be found.' properties: message: type: string example: 'The route api/users/consequatur could not be found.' tags: - Users put: summary: 'Actualizar usuario' operationId: actualizarUsuario description: '' parameters: [] responses: { } tags: - Users delete: summary: 'Eliminar usuario' operationId: eliminarUsuario description: '' parameters: [] responses: { } tags: - Users parameters: - in: path name: id description: 'The ID of the user.' example: consequatur required: true schema: type: string '/api/usersforyear/{año}/{mes}': get: summary: '' operationId: getApiUsersforyearAOMes description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/usersforyear/consequatur/consequatur could not be found.' properties: message: type: string example: 'The route api/usersforyear/consequatur/consequatur could not be found.' tags: - 'Usuarios Smart' parameters: - in: path name: año description: '' example: consequatur required: true schema: type: string - in: path name: mes description: 'Optional parameter.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: consequatur /api/userssmart: get: summary: 'Lista todos los usuarios smart registrados' operationId: listaTodosLosUsuariosSmartRegistrados description: '' parameters: - in: query name: limit description: 'Numero de registros por pagina. Default 15.' example: 17 required: false schema: type: integer description: 'Numero de registros por pagina. Default 15.' example: 17 nullable: false - in: query name: keyword description: 'Buscar por nombre, apellido, telefono, numero de documento, codigo de referencia o email.' example: consequatur required: false schema: type: string description: 'Buscar por nombre, apellido, telefono, numero de documento, codigo de referencia o email.' example: consequatur nullable: false responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/userssmart could not be found.' properties: message: type: string example: 'The route api/userssmart could not be found.' tags: - 'Usuarios Smart' /api/usuariossamartregistrados: get: summary: 'Cantidad de usuarios smart registrados en la aplicacion' operationId: cantidadDeUsuariosSmartRegistradosEnLaAplicacion description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/usuariossamartregistrados could not be found.' properties: message: type: string example: 'The route api/usuariossamartregistrados could not be found.' tags: - Vendedores /api/vendedores/estado: get: summary: 'Cantidad de vendedores por estado' operationId: cantidadDeVendedoresPorEstado description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendedores/estado could not be found.' properties: message: type: string example: 'The route api/vendedores/estado could not be found.' tags: - Vendedores '/api/rankingvendedores/{año}/{mes}': get: summary: '' operationId: getApiRankingvendedoresAOMes description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/rankingvendedores/consequatur/consequatur could not be found.' properties: message: type: string example: 'The route api/rankingvendedores/consequatur/consequatur could not be found.' tags: - Vendedores parameters: - in: path name: año description: '' example: consequatur required: true schema: type: string - in: path name: mes description: 'Optional parameter.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: consequatur /api/vendedores: get: summary: 'Todos los vendedores' operationId: todosLosVendedores description: '' parameters: - in: query name: limit description: 'Número de registros por página.' example: 15 required: false schema: type: integer description: 'Número de registros por página.' example: 15 nullable: false responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendedores could not be found.' properties: message: type: string example: 'The route api/vendedores could not be found.' tags: - Vendedores post: summary: 'Crear vendedor' operationId: crearVendedor description: '' parameters: [] responses: 201: description: success content: application/json: schema: type: object example: message: 'Vendedor creado correctamente' properties: message: type: string example: 'Vendedor creado correctamente' 422: description: '' content: application/json: schema: oneOf: - description: 'DNI duplicado' type: object example: message: 'Error de validación' errors: nro_doc_identidad: - 'El número de documento ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: nro_doc_identidad: type: array example: - 'El número de documento ya está registrado en el sistema.' items: type: string - description: 'Email duplicado' type: object example: message: 'Error de validación' errors: email: - 'El correo electrónico ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: email: type: array example: - 'El correo electrónico ya está registrado en el sistema.' items: type: string 500: description: 'Error del servidor' content: application/json: schema: type: object example: message: 'Error al procesar la solicitud' error: 'Mensaje detallado del error' properties: message: type: string example: 'Error al procesar la solicitud' error: type: string example: 'Mensaje detallado del error' tags: - Vendedores requestBody: required: true content: application/json: schema: type: object properties: nro_doc_identidad: type: string description: 'Must match the regex /^[0-9]+$/. Must not be greater than 8 characters. Must be at least 8 characters.' example: vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjury nullable: false email: type: string description: 'Must be a valid email address. Must not be greater than 255 characters.' example: jmacejkovic@example.com nullable: false apellido_paterno: type: string description: 'Must not be greater than 255 characters.' example: ybzvrbyickznkygloigmk nullable: false apellido_materno: type: string description: 'Must not be greater than 255 characters.' example: wxphlvazjrcnfbaqywuxh nullable: false nombres: type: string description: 'Must not be greater than 255 characters.' example: gjjmzuxjubqouzswiwxtr nullable: false tipo_documento_identidad: type: string description: 'Must not be greater than 255 characters.' example: kimfcatbxspzmrazsroyj nullable: false genero: type: string description: 'Must not be greater than 255 characters.' example: pxmqesedyghenqcopwvow nullable: false celular: type: string description: 'Must not be greater than 255 characters.' example: nkbamlnfngefbeilfzsyu nullable: false required: - nro_doc_identidad - email - apellido_paterno - apellido_materno - nombres - tipo_documento_identidad - genero - celular '/api/vendedores/{id}': get: summary: 'Mostrar vendedor por id' operationId: mostrarVendedorPorId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendedores/consequatur could not be found.' properties: message: type: string example: 'The route api/vendedores/consequatur could not be found.' tags: - Vendedores put: summary: 'Actualizar vendedor' operationId: actualizarVendedor description: '' parameters: [] responses: 200: description: success content: application/json: schema: type: object example: message: 'Vendedor Actualizado correctamente' properties: message: type: string example: 'Vendedor Actualizado correctamente' 422: description: '' content: application/json: schema: oneOf: - description: 'DNI duplicado' type: object example: message: 'Error de validación' errors: nro_doc_identidad: - 'El número de documento ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: nro_doc_identidad: type: array example: - 'El número de documento ya está registrado en el sistema.' items: type: string - description: 'Email duplicado' type: object example: message: 'Error de validación' errors: email: - 'El correo electrónico ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: email: type: array example: - 'El correo electrónico ya está registrado en el sistema.' items: type: string 500: description: 'Error del servidor' content: application/json: schema: type: object example: message: 'Error al procesar la solicitud' error: 'Mensaje detallado del error' properties: message: type: string example: 'Error al procesar la solicitud' error: type: string example: 'Mensaje detallado del error' tags: - Vendedores requestBody: required: true content: application/json: schema: type: object properties: nro_doc_identidad: type: string description: 'Must match the regex /^[0-9]+$/. Must be 8 characters.' example: vmqeopfu nullable: false email: type: string description: 'Must be a valid email address. Must not be greater than 255 characters.' example: tcollins@example.com nullable: false apellido_paterno: type: string description: 'Must not be greater than 255 characters.' example: sufvyvddqamniihfqcoyn nullable: false apellido_materno: type: string description: 'Must not be greater than 255 characters.' example: lazghdtqtqxbajwbpilpm nullable: false nombres: type: string description: 'Must not be greater than 255 characters.' example: ufinllwloauydlsmsjury nullable: false tipo_documento_identidad: type: string description: 'Must not be greater than 255 characters.' example: vojcybzvrbyickznkyglo nullable: false genero: type: string description: 'Must not be greater than 255 characters.' example: igmkwxphlvazjrcnfbaqy nullable: false celular: type: string description: 'Must not be greater than 255 characters.' example: wuxhgjjmzuxjubqouzswi nullable: false estado: type: string description: '' example: consequatur nullable: false required: - nro_doc_identidad - email - apellido_paterno - apellido_materno - nombres - tipo_documento_identidad - genero - celular - estado delete: summary: 'Eliminar vendedor' operationId: eliminarVendedor description: '' parameters: [] responses: { } tags: - Vendedores parameters: - in: path name: id description: 'The ID of the vendedore.' example: consequatur required: true schema: type: string /api/vendors: get: summary: 'Mostrar lista de vendors' operationId: mostrarListaDeVendors description: '' parameters: - in: query name: limit description: 'Número de registros por página.' example: 15 required: false schema: type: integer description: 'Número de registros por página.' example: 15 nullable: false - in: query name: keyword description: 'Término de búsqueda para filtrar vendors.' example: '00000001' required: false schema: type: string description: 'Término de búsqueda para filtrar vendors.' example: '00000001' nullable: false responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendors could not be found.' properties: message: type: string example: 'The route api/vendors could not be found.' tags: - Vendors post: summary: 'Crear vendor' operationId: crearVendor description: '' parameters: [] responses: 201: description: success content: application/json: schema: type: object example: message: 'Vendor creado correctamente' properties: message: type: string example: 'Vendor creado correctamente' 422: description: '' content: application/json: schema: oneOf: - description: 'DNI duplicado' type: object example: message: 'Error de validación' errors: nro_doc_identidad: - 'El número de documento ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: nro_doc_identidad: type: array example: - 'El número de documento ya está registrado en el sistema.' items: type: string - description: 'Email duplicado' type: object example: message: 'Error de validación' errors: email: - 'El correo electrónico ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: email: type: array example: - 'El correo electrónico ya está registrado en el sistema.' items: type: string 500: description: 'Error del servidor' content: application/json: schema: type: object example: message: 'Error al procesar la solicitud' error: 'Mensaje detallado del error' properties: message: type: string example: 'Error al procesar la solicitud' error: type: string example: 'Mensaje detallado del error' tags: - Vendors requestBody: required: true content: application/json: schema: type: object properties: apellido_paterno: type: string description: 'Apellido paterno del vendedor.' example: Pérez nullable: false apellido_materno: type: string description: 'Apellido materno del vendedor.' example: García nullable: false nombres: type: string description: 'Nombres del vendedor.' example: Juan nullable: false tipo_documento_identidad: type: string description: 'Tipo de documento.' example: DNI nullable: false nro_doc_identidad: type: string description: 'Número de documento.' example: '12345678' nullable: false genero: type: string description: 'Género del vendedor.' example: M nullable: false celular: type: string description: 'Número de celular.' example: '999888777' nullable: false email: type: string description: 'Correo electrónico.' example: juan@example.com nullable: false fecha_inicio: type: date description: 'Fecha de inicio.' example: '2024-01-01' nullable: false required: - apellido_paterno - apellido_materno - nombres - tipo_documento_identidad - nro_doc_identidad - genero - celular - email - fecha_inicio '/api/vendors/{id}': get: summary: 'Obtener vendor por id' operationId: obtenerVendorPorId description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'The route api/vendors/9fe56824-0d66-40e1-ae61-67dcbb7c8d35 could not be found.' properties: message: type: string example: 'The route api/vendors/9fe56824-0d66-40e1-ae61-67dcbb7c8d35 could not be found.' tags: - Vendors put: summary: 'Actualizar vendor por id' operationId: actualizarVendorPorId description: '' parameters: [] responses: 200: description: success content: application/json: schema: type: object example: message: 'Vendor actualizado correctamente' properties: message: type: string example: 'Vendor actualizado correctamente' 422: description: '' content: application/json: schema: oneOf: - description: 'DNI duplicado' type: object example: message: 'Error de validación' errors: nro_doc_identidad: - 'El número de documento ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: nro_doc_identidad: type: array example: - 'El número de documento ya está registrado en el sistema.' items: type: string - description: 'Email duplicado' type: object example: message: 'Error de validación' errors: email: - 'El correo electrónico ya está registrado en el sistema.' properties: message: type: string example: 'Error de validación' errors: type: object properties: email: type: array example: - 'El correo electrónico ya está registrado en el sistema.' items: type: string 500: description: 'Error del servidor' content: application/json: schema: type: object example: message: 'Error al procesar la solicitud' error: 'Mensaje detallado del error' properties: message: type: string example: 'Error al procesar la solicitud' error: type: string example: 'Mensaje detallado del error' tags: - Vendors requestBody: required: true content: application/json: schema: type: object properties: nro_doc_identidad: type: string description: 'Número de documento.' example: '12345678' nullable: false email: type: string description: 'Correo electrónico.' example: juan@example.com nullable: false apellido_paterno: type: string description: 'Apellido paterno del vendedor.' example: Pérez nullable: false apellido_materno: type: string description: 'Apellido materno del vendedor.' example: García nullable: false nombres: type: string description: 'Nombres del vendedor.' example: Juan nullable: false tipo_documento_identidad: type: string description: 'Tipo de documento.' example: DNI nullable: false genero: type: string description: 'Género del vendedor.' example: M nullable: false celular: type: string description: 'Número de celular.' example: '999888777' nullable: false estado: type: string description: '' example: consequatur nullable: false fecha_inicio: type: date description: 'Fecha de inicio.' example: '2024-01-01' nullable: false required: - nro_doc_identidad - email - apellido_paterno - apellido_materno - nombres - tipo_documento_identidad - genero - celular - estado - fecha_inicio delete: summary: 'Eliminar vendor' operationId: eliminarVendor description: '' parameters: [] responses: { } tags: - Vendors parameters: - in: path name: id description: 'The ID of the vendor.' example: 9fe56824-0d66-40e1-ae61-67dcbb7c8d35 required: true schema: type: string