openapi: 3.0.3
info:
  title: 'E-Rewards API Docs'
  description: 'Documentación técnica de integración con e-Rewards API'
  version: 1.0.0
servers:
  -
    url: 'http://localhost:8000'
paths:
  /api/actividades:
    get:
      summary: 'Listar Actividades'
      operationId: listarActividades
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  actividades:
                    -
                      id: 1
                      actividadId: 1
                      nombre: Canje
                properties:
                  success:
                    type: boolean
                    example: true
                  actividades:
                    type: array
                    example:
                      -
                        id: 1
                        actividadId: 1
                        nombre: Canje
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        actividadId:
                          type: integer
                          example: 1
                        nombre:
                          type: string
                          example: Canje
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Actividades'
      security: []
  /api/canjes/reenvios:
    get:
      summary: 'Consulta de reenvio de canjes'
      operationId: consultaDeReenvioDeCanjes
      description: ''
      parameters:
        -
          in: query
          name: uids_erewards
          description: 'Requerido solo si "id_catalogo" es nulo. Son los IDs de canje de eRewards. Para consultar mas de uno, se deben separar por comas ej. "1,2,3". Si son muchos uids, pueden enviarse por el body.'
          example: '4433322,443321'
          required: true
          schema:
            type: string
            description: 'Requerido solo si "id_catalogo" es nulo. Son los IDs de canje de eRewards. Para consultar mas de uno, se deben separar por comas ej. "1,2,3". Si son muchos uids, pueden enviarse por el body.'
            example: '4433322,443321'
        -
          in: query
          name: id_catalogo
          description: 'Requerido solo si "uids_erewards" es nulo. Filtra por el ID del catálogo.'
          example: '5'
          required: true
          schema:
            type: string
            description: 'Requerido solo si "uids_erewards" es nulo. Filtra por el ID del catálogo.'
            example: '5'
        -
          in: query
          name: paginate
          description: 'Define si la respuesta debe paginarse o no, valores validos: "1" o "0".'
          example: '1'
          required: false
          schema:
            type: string
            description: 'Define si la respuesta debe paginarse o no, valores validos: "1" o "0".'
            example: '1'
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"success\": true,\n  \"data\": {\n      \"list\": [\n          {\n              \"canje_id\": 447743,\n              \"remaining_attempts\": \"5\",\n              \"resend_count\": 4,\n              \"max_resend_allowed\": 9,\n              \"vigencia_attempts\": 90,\n              \"reenvios\": [\n                  {\n                      \"id\": 10607,\n                      \"correo\": \"user@gmail.com\",\n                      \"celular\": null,\n                      \"enviado_por\": 1,\n                      \"es_spi\": false,\n                      \"pedido_id\": 447743,\n                      \"fecha_creacion\": \"2024-10-21 15:31:08\",\n                      \"total_sms_enviados\": 0,\n                      \"first_name\": \"Romulo\",\n                      \"last_name\": \"Opulento\",\n                      \"api_username_requester\": \"administrator\",\n                      \"helpdesk_ticket_number\": 2233311,\n                      \"requested_from_adbox\": true,\n                      \"readable_created_at\": \"lunes 21 de octubre 2024, a las 03:31p. m.\"\n                  },\n              ]\n          }\n      ]\n  }\n}"
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, parámetros de consulta no válidos'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, parámetros de consulta no válidos'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Canjes'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                uids_erewards:
                  type: string
                  description: 'This field is required when <code>id_catalogo</code> is not present.'
                  example: null
                id_catalogo:
                  type: number
                  description: 'This field is required when <code>uids_erewards</code> is not present.'
                  example: 11613.31890586
                paginate:
                  type: boolean
                  description: ''
                  example: false
      security: []
    post:
      summary: 'Reenvío de canjes'
      operationId: reenvoDeCanjes
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  message: 'El canje 117891 fue reenviado con éxito'
                  data:
                    canje_id: 117891
                    remaining_attempts: 0
                    resend_count: 3
                    max_resend_allowed: 3
                    vigencia_attempts: 90
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'El canje 117891 fue reenviado con éxito'
                  data:
                    type: object
                    properties:
                      canje_id:
                        type: integer
                        example: 117891
                      remaining_attempts:
                        type: integer
                        example: 0
                      resend_count:
                        type: integer
                        example: 3
                      max_resend_allowed:
                        type: integer
                        example: 3
                      vigencia_attempts:
                        type: integer
                        example: 90
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  message: 'El canje 447744 supero el limite de reenvios permitidos o excedio la fecha de vigencia de reenvio'
                  data: null
                  errors:
                    -
                      canje_id: 447744
                      exceeded_resend_attemps: false
                      exceeded_resend_due_days: false
                      days_elapsed_from_swap: 2
                      is_fake: false
                      has_repeated_email_twice: true
                      has_repeated_phone_twice: false
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'El canje 447744 supero el limite de reenvios permitidos o excedio la fecha de vigencia de reenvio'
                  data:
                    type: string
                    example: null
                  errors:
                    type: array
                    example:
                      -
                        canje_id: 447744
                        exceeded_resend_attemps: false
                        exceeded_resend_due_days: false
                        days_elapsed_from_swap: 2
                        is_fake: false
                        has_repeated_email_twice: true
                        has_repeated_phone_twice: false
                    items:
                      type: object
                      properties:
                        canje_id:
                          type: integer
                          example: 447744
                        exceeded_resend_attemps:
                          type: boolean
                          example: false
                        exceeded_resend_due_days:
                          type: boolean
                          example: false
                        days_elapsed_from_swap:
                          type: integer
                          example: 2
                        is_fake:
                          type: boolean
                          example: false
                        has_repeated_email_twice:
                          type: boolean
                          example: true
                        has_repeated_phone_twice:
                          type: boolean
                          example: false
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Canjes'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: json
                  description: 'required. Todos los keys dentro del "data" son mandatorios, exepto email y mobile. Si se envia SOLO "email", solo se envia email; si se envia SOLO "mobile", solo se envia sms; si se envian ambos, se envia email y sms. El nombre y apellido se usa para personalizar la notificacion de reevío.'
                  example: '{"uidErewards": 321442,"email": "some@mail.com","mobile": "3317210477","userFirstName": "John","userLastName": "Doe", "ticketNumber": "123" }'
      security: []
  /api/canjes/establecer-numeros-sap:
    post:
      summary: 'Actualizar num. de pedidos SAP'
      operationId: actualizarNumDePedidosSAP
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  message: 'Se actualizaron 2 canjes'
                  data:
                    canjes_actualizados: 2
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Se actualizaron 2 canjes'
                  data:
                    type: object
                    properties:
                      canjes_actualizados:
                        type: integer
                        example: 2
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Canjes'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                numerosSap:
                  type: string
                  description: 'Los nuevos pedidos de SAP en formato JSON. Si no se incluye el key "canjeId" o "noPedidoSap" en el item, será omitido.'
                  example: '[{"numerosSap": [{"canjeId": 123, "noPedidoSap": 123},{"canjeId": 321, "noPedidoSap": 321}]'
              required:
                - numerosSap
      security: []
  /api/pedidos:
    post:
      summary: 'Realizar Pedido'
      operationId: realizarPedido
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  message: ''
                  order: 74459dcf-04fc-4c6f-ac04-a427adfee7c8
                  detail:
                    -
                      proveedorId: 1
                      incentivoId: CIN-1
                      sku: '154685'
                      nombre: 'Entrada 2D L-D'
                      message: ''
                      codigos:
                        -
                          descripcion: 'Boleto Tradicional 2D Lunes a Domingo'
                          instruccion: null
                          restriccion: null
                          duracion: null
                          debesSaber: null
                          personas: 1
                          incluye: null
                          ubicacion: null
                          imagen: null
                          pedidoId: null
                          codigo: 'En proceso'
                          pin: 'En proceso'
                          cantidad: 1
                          vigencia: 'En proceso'
                          voucherCode: null
                          precio: 65.05
                          moneda: MXN
                          operacionId: cc3961b8-7eac-404f-9b74-2fa398e42caf
                          numeroSerie: b3bfb024-528b-426c-9bac-c7d8c652516a
                          proveedorId: 1
                          puntos: 195
                          canjeId: 1994
                          fechaEnvioCorreo: '2012-12-12 04:20:00'
                          user_due_date: 'En proceso'
                      codigosExitosos: 1
                      codigosFallados: 0
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: ''
                  order:
                    type: string
                    example: 74459dcf-04fc-4c6f-ac04-a427adfee7c8
                  detail:
                    type: array
                    example:
                      -
                        proveedorId: 1
                        incentivoId: CIN-1
                        sku: '154685'
                        nombre: 'Entrada 2D L-D'
                        message: ''
                        codigos:
                          -
                            descripcion: 'Boleto Tradicional 2D Lunes a Domingo'
                            instruccion: null
                            restriccion: null
                            duracion: null
                            debesSaber: null
                            personas: 1
                            incluye: null
                            ubicacion: null
                            imagen: null
                            pedidoId: null
                            codigo: 'En proceso'
                            pin: 'En proceso'
                            cantidad: 1
                            vigencia: 'En proceso'
                            voucherCode: null
                            precio: 65.05
                            moneda: MXN
                            operacionId: cc3961b8-7eac-404f-9b74-2fa398e42caf
                            numeroSerie: b3bfb024-528b-426c-9bac-c7d8c652516a
                            proveedorId: 1
                            puntos: 195
                            canjeId: 1994
                            fechaEnvioCorreo: '2012-12-12 04:20:00'
                            user_due_date: 'En proceso'
                        codigosExitosos: 1
                        codigosFallados: 0
                    items:
                      type: object
                      properties:
                        proveedorId:
                          type: integer
                          example: 1
                        incentivoId:
                          type: string
                          example: CIN-1
                        sku:
                          type: string
                          example: '154685'
                        nombre:
                          type: string
                          example: 'Entrada 2D L-D'
                        message:
                          type: string
                          example: ''
                        codigos:
                          type: array
                          example:
                            -
                              descripcion: 'Boleto Tradicional 2D Lunes a Domingo'
                              instruccion: null
                              restriccion: null
                              duracion: null
                              debesSaber: null
                              personas: 1
                              incluye: null
                              ubicacion: null
                              imagen: null
                              pedidoId: null
                              codigo: 'En proceso'
                              pin: 'En proceso'
                              cantidad: 1
                              vigencia: 'En proceso'
                              voucherCode: null
                              precio: 65.05
                              moneda: MXN
                              operacionId: cc3961b8-7eac-404f-9b74-2fa398e42caf
                              numeroSerie: b3bfb024-528b-426c-9bac-c7d8c652516a
                              proveedorId: 1
                              puntos: 195
                              canjeId: 1994
                              fechaEnvioCorreo: '2012-12-12 04:20:00'
                              user_due_date: 'En proceso'
                          items:
                            type: object
                            properties:
                              descripcion:
                                type: string
                                example: 'Boleto Tradicional 2D Lunes a Domingo'
                              instruccion:
                                type: string
                                example: null
                              restriccion:
                                type: string
                                example: null
                              duracion:
                                type: string
                                example: null
                              debesSaber:
                                type: string
                                example: null
                              personas:
                                type: integer
                                example: 1
                              incluye:
                                type: string
                                example: null
                              ubicacion:
                                type: string
                                example: null
                              imagen:
                                type: string
                                example: null
                              pedidoId:
                                type: string
                                example: null
                              codigo:
                                type: string
                                example: 'En proceso'
                              pin:
                                type: string
                                example: 'En proceso'
                              cantidad:
                                type: integer
                                example: 1
                              vigencia:
                                type: string
                                example: 'En proceso'
                              voucherCode:
                                type: string
                                example: null
                              precio:
                                type: number
                                example: 65.05
                              moneda:
                                type: string
                                example: MXN
                              operacionId:
                                type: string
                                example: cc3961b8-7eac-404f-9b74-2fa398e42caf
                              numeroSerie:
                                type: string
                                example: b3bfb024-528b-426c-9bac-c7d8c652516a
                              proveedorId:
                                type: integer
                                example: 1
                              puntos:
                                type: integer
                                example: 195
                              canjeId:
                                type: integer
                                example: 1994
                              fechaEnvioCorreo:
                                type: string
                                example: '2012-12-12 04:20:00'
                              user_due_date:
                                type: string
                                example: 'En proceso'
                        codigosExitosos:
                          type: integer
                          example: 1
                        codigosFallados:
                          type: integer
                          example: 0
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Forbidden, sin permisos para realizar el canje'
                properties:
                  message:
                    type: string
                    example: 'Forbidden, sin permisos para realizar el canje'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Canjes'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                catalogoId:
                  type: integer
                  description: 'ID del catálogo. Al solicitar las credenciales de autenticación, solicitar tambien el ID del catálogo. Importante: el api user esta ligado a un catálogo y solo podrá canjear incentivos del mismo. Si es necesario realizar canjes de otros catálogos, deberá solicitarse a soporte agregar permisos adicionales de canje.'
                  example: 5
                actividadId:
                  type: string
                  description: ''
                  example: null
                usuarioId:
                  type: integer
                  description: 'ID del usuario que solicita.'
                  example: 3
                nombre:
                  type: string
                  description: 'Nombre del usuario que solicita.'
                  example: Juan
                apellido:
                  type: string
                  description: 'Apellido del usuario que solicita.'
                  example: Perez
                email:
                  type: string
                  description: 'Email del usuario que solicita.'
                  example: juan.perez@gmail.com
                celular:
                  type: string
                  description: 'Número de Celular del usuario que solicita.'
                  example: '3326741051'
                enviarEmail:
                  type: boolean
                  description: 'Definir si se enviarán los códigos por correo.'
                  example: true
                enviarSms:
                  type: boolean
                  description: 'Definir si se enviarán los códigos por SMS.'
                  example: true
                numeroPedidoSap:
                  type: integer
                  description: 'Numero del pedido SAP. Es para uso interno de Adventa y puede omitirse.'
                  example: 661122
                pedido:
                  type: string
                  description: 'El pedido en si mismo en formato JSON.'
                  example: '[{"incentivoId": "CIN-1", "cantidad": 2, "ids_unicos_canje": ["iduc_1", "iduc_2"]}]'
                orderId:
                  type: integer
                  description: 'Numero de orden Adbox. Es para uso interno de Adventa y puede omitirse.'
                  example: 501122
                dueDate:
                  type: string
                  description: 'Define un tipo de vigencia. Valores permitidos: "default"(vigencio original del folio), "product" (vigencia del producto, definida en eRewards backend, suele ser falsa), "manual" (igual que product pero se ingresa manualmente). Por defecto será enviada la vigencia tipo "product".'
                  example: null
                dueDateText:
                  type: string
                  description: 'Define la vigencia manual. Es mandatorio solamente si el parametro dueDate = manual.'
                  example: null
                inBlockRequestedBy:
                  type: string
                  description: 'Define el solicitante del envio en bloques. Es opcional.'
                  example: null
                swapUidBypassed:
                  type: string
                  description: 'Define si el campo ids_unicos_canje dentro del campo pedido será omitido. Es opcional.'
                  example: null
                redeem_webhook_url:
                  type: string
                  description: 'Must be a valid URL. This field is required when <code>redeem_webhook_key</code> is present.'
                  example: 'https://www.mueller.com/laborum-eius-est-dolor-dolores-minus-voluptatem'
                redeem_webhook_key:
                  type: string
                  description: 'This field is required when <code>redeem_webhook_url</code> is present. El campo value debe contener al menos 4 caracteres. El campo value no debe contener más de 200 caracteres.'
                  example: sufvyvddqamniihfqcoyn
              required:
                - catalogoId
                - usuarioId
                - nombre
                - apellido
                - email
                - celular
                - enviarEmail
                - enviarSms
                - pedido
      security: []
  /api/categorias:
    get:
      summary: 'Listar Categorías'
      operationId: listarCategoras
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  categorias:
                    -
                      id: 1
                      categoriaId: 1
                      nombre: Experiencias
                      descripcion: 'Experiencias de Experimenta'
                properties:
                  success:
                    type: boolean
                    example: true
                  categorias:
                    type: array
                    example:
                      -
                        id: 1
                        categoriaId: 1
                        nombre: Experiencias
                        descripcion: 'Experiencias de Experimenta'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        categoriaId:
                          type: integer
                          example: 1
                        nombre:
                          type: string
                          example: Experiencias
                        descripcion:
                          type: string
                          example: 'Experiencias de Experimenta'
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Categorías'
      security: []
  /api/catalogos-electronicos:
    get:
      summary: 'Listar Catálogos'
      operationId: listarCatlogos
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n      \"success\": true,\n      \"catalogosElectronicos\": [\n          {\n              \"id\": 50\n              \"catalagoId\": 50,\n              \"nombre\": \"erewards\",\n              \"factorConversionPuntos\": 3,\n              \"fee\": 0.2,\n              \"costoSms\": 1.05,\n              \"comisionBanco\": 0,\n              \"otrosCostos\": 1,\n              \"tipo\": \"PMR\",\n              \"estatus\": true\n          }]\n }"
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Catálogos'
      security: []
  /api/incentivos:
    get:
      summary: 'Listar Productos'
      operationId: listarProductos
      description: ''
      parameters:
        -
          in: query
          name: catalogoId
          description: 'Al ser especificado, filtrará por el Id del catálogo. Cada API user podrá visualizar unicamente los incentivos del catálogo al que pertenece. Si es necesario consultar incentivos de otros catálogos, debera solicitarse a soporte para establecer permisos adicionales de consulta.'
          example: '5'
          required: true
          schema:
            type: string
            description: 'Al ser especificado, filtrará por el Id del catálogo. Cada API user podrá visualizar unicamente los incentivos del catálogo al que pertenece. Si es necesario consultar incentivos de otros catálogos, debera solicitarse a soporte para establecer permisos adicionales de consulta.'
            example: '5'
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  incentivos:
                    -
                      incentivoId: MAN-211
                      proveedorId: 17
                      categoriaId: 6
                      clasificacion: 'Códigos electrónicos'
                      sku: CU005460
                      nombre: 'Tarjeta de regalo digital Starbucks $400 pesos'
                      marca: Starbucks
                      descripcion: "Tarjeta de regalo digital Starbucks $400 pesos. Tu código debe ser registrado en la aplicación de Starbucks para que puede ser utilizado como medio de pago en compras realizadas en tiendas. Consulta las instrucciones aquí --->>https://rewards.adventa.solutions\r\n"
                      instruccion: "1.\tDescarga la app \r\n2.\tSelecciona el dispositivo \r\n3.\tIngresa a tu cuenta o regístrate \r\n4.\tVe al apartado de ¨escanea¨\r\n5.\tAgrega la tarjeta en el botón + superior derecho\r\n6.\tAcude a tu sucursal y paga con el saldo de tu tarjeta"
                      restriccion: "La tarjeta de regalo digital Starbucks sólo puede ser utilizada como medio de pago en \r\ncompras realizadas en tiendas participantes (consulta en nuestra página web \r\nhttps://www.starbucks.com.mx/ la lista). Esta tarjeta/folio no es de crédito. No puede \r\nser canjeado por dinero en efectivo."
                      ubicacion: null
                      duracion: null
                      personas: null
                      actividad: null
                      incluye: null
                      considerar: null
                      precio: 344.8
                      ajustePrecio: 0.5
                      precioVenta: 344.8
                      precioVentaMasAjuste: 345.3
                      precioVentaIntegrado: 392.9655
                      precio_venta_integrado: 392.9655
                      costo_producto: 320.7
                      fee: 0.135
                      tipo_producto: incentivo
                      moneda: MXN
                      puntos: 1962
                      imagen: 'https://e-rewards-images.s3.amazonaws.com/CU005460.jpg'
                      paquete: false
                      cantidad: 0
                      latitud: null
                      longitud: null
                      stock: 30
                      unlimited: false
                      codigo_sap: '661866679'
                      imagenesEspecificas:
                        - 'https://prod.erewards.adventa.solutions/variant-images/657342445273a65734244527e2.jpg'
                        - 'https://prod.erewards.adventa.solutions/variant-images/65734244528e4657342445298b.jpg'
                      descripcionCortaEspecifica: ''
                      descripcionLargaEspecifica: ''
                      monto: 344.8
                      joyBrandId: 0
                      joyBrandName: ''
                properties:
                  success:
                    type: boolean
                    example: true
                  incentivos:
                    type: array
                    example:
                      -
                        incentivoId: MAN-211
                        proveedorId: 17
                        categoriaId: 6
                        clasificacion: 'Códigos electrónicos'
                        sku: CU005460
                        nombre: 'Tarjeta de regalo digital Starbucks $400 pesos'
                        marca: Starbucks
                        descripcion: "Tarjeta de regalo digital Starbucks $400 pesos. Tu código debe ser registrado en la aplicación de Starbucks para que puede ser utilizado como medio de pago en compras realizadas en tiendas. Consulta las instrucciones aquí --->>https://rewards.adventa.solutions\r\n"
                        instruccion: "1.\tDescarga la app \r\n2.\tSelecciona el dispositivo \r\n3.\tIngresa a tu cuenta o regístrate \r\n4.\tVe al apartado de ¨escanea¨\r\n5.\tAgrega la tarjeta en el botón + superior derecho\r\n6.\tAcude a tu sucursal y paga con el saldo de tu tarjeta"
                        restriccion: "La tarjeta de regalo digital Starbucks sólo puede ser utilizada como medio de pago en \r\ncompras realizadas en tiendas participantes (consulta en nuestra página web \r\nhttps://www.starbucks.com.mx/ la lista). Esta tarjeta/folio no es de crédito. No puede \r\nser canjeado por dinero en efectivo."
                        ubicacion: null
                        duracion: null
                        personas: null
                        actividad: null
                        incluye: null
                        considerar: null
                        precio: 344.8
                        ajustePrecio: 0.5
                        precioVenta: 344.8
                        precioVentaMasAjuste: 345.3
                        precioVentaIntegrado: 392.9655
                        precio_venta_integrado: 392.9655
                        costo_producto: 320.7
                        fee: 0.135
                        tipo_producto: incentivo
                        moneda: MXN
                        puntos: 1962
                        imagen: 'https://e-rewards-images.s3.amazonaws.com/CU005460.jpg'
                        paquete: false
                        cantidad: 0
                        latitud: null
                        longitud: null
                        stock: 30
                        unlimited: false
                        codigo_sap: '661866679'
                        imagenesEspecificas:
                          - 'https://prod.erewards.adventa.solutions/variant-images/657342445273a65734244527e2.jpg'
                          - 'https://prod.erewards.adventa.solutions/variant-images/65734244528e4657342445298b.jpg'
                        descripcionCortaEspecifica: ''
                        descripcionLargaEspecifica: ''
                        monto: 344.8
                        joyBrandId: 0
                        joyBrandName: ''
                    items:
                      type: object
                      properties:
                        incentivoId:
                          type: string
                          example: MAN-211
                        proveedorId:
                          type: integer
                          example: 17
                        categoriaId:
                          type: integer
                          example: 6
                        clasificacion:
                          type: string
                          example: 'Códigos electrónicos'
                        sku:
                          type: string
                          example: CU005460
                        nombre:
                          type: string
                          example: 'Tarjeta de regalo digital Starbucks $400 pesos'
                        marca:
                          type: string
                          example: Starbucks
                        descripcion:
                          type: string
                          example: "Tarjeta de regalo digital Starbucks $400 pesos. Tu código debe ser registrado en la aplicación de Starbucks para que puede ser utilizado como medio de pago en compras realizadas en tiendas. Consulta las instrucciones aquí --->>https://rewards.adventa.solutions\r\n"
                        instruccion:
                          type: string
                          example: "1.\tDescarga la app \r\n2.\tSelecciona el dispositivo \r\n3.\tIngresa a tu cuenta o regístrate \r\n4.\tVe al apartado de ¨escanea¨\r\n5.\tAgrega la tarjeta en el botón + superior derecho\r\n6.\tAcude a tu sucursal y paga con el saldo de tu tarjeta"
                        restriccion:
                          type: string
                          example: "La tarjeta de regalo digital Starbucks sólo puede ser utilizada como medio de pago en \r\ncompras realizadas en tiendas participantes (consulta en nuestra página web \r\nhttps://www.starbucks.com.mx/ la lista). Esta tarjeta/folio no es de crédito. No puede \r\nser canjeado por dinero en efectivo."
                        ubicacion:
                          type: string
                          example: null
                        duracion:
                          type: string
                          example: null
                        personas:
                          type: string
                          example: null
                        actividad:
                          type: string
                          example: null
                        incluye:
                          type: string
                          example: null
                        considerar:
                          type: string
                          example: null
                        precio:
                          type: number
                          example: 344.8
                        ajustePrecio:
                          type: number
                          example: 0.5
                        precioVenta:
                          type: number
                          example: 344.8
                        precioVentaMasAjuste:
                          type: number
                          example: 345.3
                        precioVentaIntegrado:
                          type: number
                          example: 392.9655
                        precio_venta_integrado:
                          type: number
                          example: 392.9655
                        costo_producto:
                          type: number
                          example: 320.7
                        fee:
                          type: number
                          example: 0.135
                        tipo_producto:
                          type: string
                          example: incentivo
                        moneda:
                          type: string
                          example: MXN
                        puntos:
                          type: integer
                          example: 1962
                        imagen:
                          type: string
                          example: 'https://e-rewards-images.s3.amazonaws.com/CU005460.jpg'
                        paquete:
                          type: boolean
                          example: false
                        cantidad:
                          type: integer
                          example: 0
                        latitud:
                          type: string
                          example: null
                        longitud:
                          type: string
                          example: null
                        stock:
                          type: integer
                          example: 30
                        unlimited:
                          type: boolean
                          example: false
                        codigo_sap:
                          type: string
                          example: '661866679'
                        imagenesEspecificas:
                          type: array
                          example:
                            - 'https://prod.erewards.adventa.solutions/variant-images/657342445273a65734244527e2.jpg'
                            - 'https://prod.erewards.adventa.solutions/variant-images/65734244528e4657342445298b.jpg'
                          items:
                            type: string
                        descripcionCortaEspecifica:
                          type: string
                          example: ''
                        descripcionLargaEspecifica:
                          type: string
                          example: ''
                        monto:
                          type: number
                          example: 344.8
                        joyBrandId:
                          type: integer
                          example: 0
                        joyBrandName:
                          type: string
                          example: ''
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Forbidden, no tiene permisos para consultar la informacion'
                properties:
                  message:
                    type: string
                    example: 'Forbidden, no tiene permisos para consultar la informacion'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Productos'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                catalogoId:
                  type: number
                  description: ''
                  example: 11613.31890586
              required:
                - catalogoId
      security: []
  /api/proveedores:
    get:
      summary: 'Listar Proveedores'
      operationId: listarProveedores
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  proveedores:
                    -
                      id: 1
                      proveedorId: 1
                      nombre: Cinépolis
                      terminosCondiciones: 'Términos y condiciones https://bit.ly/2VjNoZk'
                properties:
                  success:
                    type: boolean
                    example: true
                  proveedores:
                    type: array
                    example:
                      -
                        id: 1
                        proveedorId: 1
                        nombre: Cinépolis
                        terminosCondiciones: 'Términos y condiciones https://bit.ly/2VjNoZk'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        proveedorId:
                          type: integer
                          example: 1
                        nombre:
                          type: string
                          example: Cinépolis
                        terminosCondiciones:
                          type: string
                          example: 'Términos y condiciones https://bit.ly/2VjNoZk'
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Unauthorized, access token invalido'
                properties:
                  message:
                    type: string
                    example: 'Unauthorized, access token invalido'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
                properties:
                  message:
                    type: string
                    example: 'The data given was invalid, el cuerpo de la solicitud es incorrecto'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Server error'
                properties:
                  message:
                    type: string
                    example: 'Server error'
      tags:
        - 'Recurso: Proveedores'
      security: []
tags:
  -
    name: 'Recurso: Actividades'
    description: ''
  -
    name: 'Recurso: Canjes'
    description: ''
  -
    name: 'Recurso: Categorías'
    description: ''
  -
    name: 'Recurso: Catálogos'
    description: ''
  -
    name: 'Recurso: Productos'
    description: ''
  -
    name: 'Recurso: Proveedores'
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: "# Autenticación\r\n\r\nPara poder solicitar los recursos de esta API, es necesario obtener un TOKEN de\r\nacceso.\r\nEste TOKEN, se obtiene realizando una petición **POST** a **/oauth/token**:\r\n\r\n#### CON EL HEADER\r\n\r\n- *Accept: application/json*\r\n\r\n#### Y ESTOS PARÁMETROS\r\n\r\n- *grant_type: **password***\r\n- *client_id: &lt;client_id de oauth&gt;*\r\n- *client_secret: &lt;client_secret de oauth&gt;*\r\n- *username: &lt;username del catálogo&gt;*\r\n- *password: &lt;password del catálogo&gt;*\r\n\r\n<aside class=\"info\">\r\n    <p>\r\n        Los datos de arriba <b>(client_id, client_secret, username y password)</b> pueden\r\n        consultarse en la consola de erewards API, en la sección <b>Oauth</b>.\r\n    </p>\r\n    <p>\r\n        El parámetro <b>grant_type</b> es constante; siempre tiene el valor de  <b>\"password\"</b>.\r\n    </p>\r\n</aside>\r\n\r\nSi los datos de acceso son correctos, se devolverá un **access_token** con expiración\r\nde un año. Este token deberá ser includo para cada petición en el header \"Authorization\" \r\njunto con \"Content-type\", de la siguiente forma: \r\n\r\n- *Content-type: application/json*\r\n- *Authorization: **Bearer access_token_aqui***\r\n\r\n<aside class=\"warning\">\r\n    Prestar atención al espacio que hay entre \"Bearer\" y el \"access_token\"\r\n</aside>\r\n\r\nSi las claves de acceso son incorrectas, o alguno de los datos provistos (indicados arriba) no es correcto, se devolvera una respuesta de error con estatus **400**."
security:
  -
    default: []
