> ## Documentation Index
> Fetch the complete documentation index at: https://docs.riqra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Actualización masiva de precios

> Permite crear y actualizar de forma masiva los precios de una lista de precios, ya sean regulares, pactados, o con descuento por volumen.

- Para crear precios con descuento por volumen, asegurate de que exista un precio regular (`minimumQuantity = 1`) para esa variante.
- Para crear precios pactados, asegúrate de que exista un precio regular (`customerId = null`) para esa variante.
- Para crear precios pactados con descuentos por volumen, asegurate de que exista un precio pactado (`minimumQuantity = 1`) para esa variante.

> Este endpoint está en fase **ALPHA**, así que podría cambiar drásticamente en el futuro. Usar con precaución.



## OpenAPI

````yaml /api/openapi.json post /price-lists/{priceListId}/prices/bulk
openapi: 3.1.0
info:
  title: Riqra API
  version: '1.0'
  contact:
    email: soporte@riqra.com
    url: https://www.riqra.com/
    name: Riqra Support
  description: >-
    Usando nuestra API puedes integrar tu ERP o tu sistema actual de
    administración con [Riqra](https://www.riqra.com/).
servers:
  - url: https://sandbox.api.riqra.com
    description: Sandbox
  - description: Producción
    url: https://api.riqra.com
security:
  - API Key: []
tags:
  - name: Almacenes
  - name: Banners
  - name: Categorías
  - name: Clientes
  - name: Clientes - Direcciones
  - name: Cobertura
  - name: Comercio
  - name: Cupones
  - name: Inventario
  - name: Líneas de Crédito
  - name: Lista de Precios
  - name: Lista de Precios - Precios
  - name: Marcas
  - name: Pedidos
  - name: Productos
  - name: Productos Sugeridos
  - name: Promociones
  - name: Stock
  - name: Subcategorías
  - name: Variantes
paths:
  /price-lists/{priceListId}/prices/bulk:
    parameters:
      - schema:
          type: integer
        name: priceListId
        in: path
        required: true
        description: '`id` de la lista de precios a la que pertenece el precio'
    post:
      tags:
        - Lista de Precios - Precios
      summary: Actualización masiva de precios
      description: >-
        Permite crear y actualizar de forma masiva los precios de una lista de
        precios, ya sean regulares, pactados, o con descuento por volumen.


        - Para crear precios con descuento por volumen, asegurate de que exista
        un precio regular (`minimumQuantity = 1`) para esa variante.

        - Para crear precios pactados, asegúrate de que exista un precio regular
        (`customerId = null`) para esa variante.

        - Para crear precios pactados con descuentos por volumen, asegurate de
        que exista un precio pactado (`minimumQuantity = 1`) para esa variante.


        > Este endpoint está en fase **ALPHA**, así que podría cambiar
        drásticamente en el futuro. Usar con precaución.
      operationId: post-price-lists-priceListId-prices-bulk
      requestBody:
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              maxItems: 100
              items:
                type: object
                required:
                  - price
                  - variantId
                properties:
                  price:
                    type: number
                    description: El precio de venta de la variante.
                  oldPrice:
                    type:
                      - number
                      - 'null'
                    description: >-
                      El precio de lista o precio regular de la variante. Si
                      `oldPrice` tiene valor se mostrará al cliente como una
                      comparación de este y `price` en la variante.
                    minimum: 0
                  ribbonLabel:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Texto de la etiqueta de este precio. Si `ribbonLabel`
                      tiene valor se mostrará al cliente como una etiqueta
                      resaltante en la variante.
                    maxLength: 8
                  taxExempt:
                    type: boolean
                    description: >-
                      Indica si el precio de la variante está extento o no del
                      cálculo de impuestos.
                    default: false
                  minimumQuantity:
                    type: integer
                    minimum: 1
                    default: 1
                    description: >-
                      La cantidad minima a considerar para aplicar el precio.
                      Usar solo para descuentos por volumen.
                  variantId:
                    type: integer
                    description: El `id` de la variante a la que aplica este precio.
                  customerId:
                    type:
                      - integer
                      - 'null'
                    description: >-
                      El `id` del cliente al que aplica este precio. Usar solo
                      para precios pactados.
            examples:
              Precio en oferta:
                value:
                  - price: 100
                    oldPrice: 150
                    ribbonLabel: oferta
                    variantId: 94550
              Precio regular:
                value:
                  - price: 100
                    customerId: null
                    variantId: 94550
              Precio regular con descuento por volumen:
                value:
                  - price: 100
                    minimumQuantity: 10
                    variantId: 94550
              Precio pactado:
                value:
                  - price: 100
                    variantId: 94550
                    customerId: 15167
              Precio pactado con descuento por volumen:
                value:
                  - price: 100
                    minimumQuantity: 10
                    variantId: 94550
                    customerId: 15167
              Precio exento de impuestos:
                value:
                  - price: 100
                    isTaxExempt: true
                    variantId: 94550
        description: ''
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                    - status
                  properties:
                    status:
                      type: integer
                    message:
                      type: string
              examples:
                Se agregó correctamente:
                  value:
                    - status: 204
                    - status: 204
                No existe un precio base en descuento por volumen:
                  value:
                    - status: 204
                    - status: 400
                      message: >-
                        There is no regular price with minimum quantity 1 for
                        this product
                No existe un precio regular para un precio especial:
                  value:
                    - status: 204
                    - status: 400
                      message: There is no regular price for this product
                No existe un precio especial base en descuento por volumen:
                  value:
                    - status: 204
                    - status: 400
                      message: >-
                        There is no special price with minimum quantity 1 for
                        this product
                No existe el usuario:
                  value:
                    - status: 204
                    - status: 400
                      message: Customer 1 not found
                No existe el producto:
                  value:
                    - status: 204
                    - status: 400
                      message: Product 1 not found
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples: {}
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
              examples: {}
components:
  schemas:
    BadRequest:
      title: BadRequest
      type: object
      x-examples: {}
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              code:
                type:
                  - integer
                  - string
                deprecated: true
                description: Código referencial del error. No usar.
      description: ''
  securitySchemes:
    API Key:
      name: api-key
      type: apiKey
      in: header
      description: >-
        Todas las llamadas al API tienen que contener este header junto a la
        clave para poder autenticar y autorizar al cliente.

````