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