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

# Listar ventas

> Lista las ventas de la organización. Soporta filtros por cliente, fecha, estado, punto de venta, vendedor e integración.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/sales
openapi: 3.1.0
info:
  title: La Pyme API
  description: >-
    Resources and workflows for purchases, sales, inventory, contacts, products,
    reports, and settings.
  version: 1.0.0
  contact:
    name: La Pyme Support
    email: hola@lapyme.com.ar
  license:
    name: Proprietary
    url: https://lapyme.com.ar/terminos
servers:
  - url: https://api.lapyme.com.ar
    description: Servidor de producción
security:
  - bearerAuth: []
tags:
  - name: API
    description: Public API operations for La Pyme integrations.
paths:
  /api/v1/sales:
    get:
      tags:
        - API
      summary: Listar ventas
      description: >-
        Lista las ventas de la organización. Soporta filtros por cliente, fecha,
        estado, punto de venta, vendedor e integración.
      operationId: listApiSales
      parameters:
        - name: fields
          in: query
          description: >-
            Comma-separated top-level sale sections to include. Omit for the
            endpoint default. List default: id, document, customer, amounts,
            reversesVoucher, integration, audit, tags. Detail default: id,
            document, customer, amounts, items, payments, applications, fiscal,
            reversesVoucher, integration, audit, tags.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ApiSharedEnum84c92a5072'
          style: form
          explode: false
        - name: cursor
          in: query
          description: Valor de next_cursor recibido en la respuesta anterior
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Cantidad máxima de resultados por respuesta
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 50
        - name: query
          in: query
          description: >-
            Texto de búsqueda por cliente, CUIT, número de comprobante, ID de
            integración, producto, SKU, código de barras o variante
          required: false
          schema:
            type: string
        - name: search
          in: query
          description: Alias de query
          required: false
          schema:
            type: string
        - name: customer_id
          in: query
          description: Filtra por cliente
          required: false
          schema:
            type: string
            format: uuid
        - name: date_from
          in: query
          description: Fecha inicial
          required: false
          schema:
            type: string
            format: date
        - name: date_to
          in: query
          description: Fecha final
          required: false
          schema:
            type: string
            format: date
        - name: date_attribute
          in: query
          description: Campo de fecha a usar para el filtro
          required: false
          schema:
            $ref: '#/components/schemas/ApiSharedEnume975a7c122'
        - name: integration_sources
          in: query
          description: >-
            Fuentes de integración. Puede repetirse o enviarse separada por
            comas.
          required: false
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
        - name: point_of_sale_ids
          in: query
          description: >-
            IDs de puntos de venta. Puede repetirse o enviarse separada por
            comas.
          required: false
          schema:
            type: array
            items:
              type: string
              format: uuid
          style: form
          explode: true
        - name: register_ids
          in: query
          description: IDs de cajas. Puede repetirse o enviarse separada por comas.
          required: false
          schema:
            type: array
            items:
              type: string
              format: uuid
          style: form
          explode: true
        - name: seller_ids
          in: query
          description: IDs de vendedores. Puede repetirse o enviarse separada por comas.
          required: false
          schema:
            type: array
            items:
              type: string
              format: uuid
          style: form
          explode: true
        - name: invoice_statuses
          in: query
          description: Estados fiscales. Puede repetirse o enviarse separada por comas.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ApiSharedEnum9ac70a3316'
          style: form
          explode: true
        - name: payment_statuses
          in: query
          description: Estados de cobranza. Puede repetirse o enviarse separada por comas.
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - paid
                - owed
          style: form
          explode: true
        - name: voucher_types
          in: query
          description: Tipos de comprobante. Puede repetirse o enviarse separada por comas.
          required: false
          schema:
            type: array
            items:
              type: string
          style: form
          explode: true
        - name: amount_attribute
          in: query
          description: Campo monetario a usar para min/max
          required: false
          schema:
            type: string
            enum:
              - total
              - balance
            default: balance
        - name: min_amount
          in: query
          description: Importe mínimo en centavos
          required: false
          schema:
            type: integer
        - name: max_amount
          in: query
          description: Importe máximo en centavos
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Ventas obtenidas exitosamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSaleListResponse'
        '400':
          description: Parámetros inválidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
              examples:
                default:
                  summary: INVALID_REQUEST
                  value:
                    request_id: req_sales_1
                    error:
                      code: INVALID_REQUEST
                      message: Invalid parameters for listing sales
                      retryable: false
                      type: invalid_request_error
                      details: []
        '401':
          description: API key faltante o inválida
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
              examples:
                default:
                  summary: AUTHENTICATION_REQUIRED
                  value:
                    request_id: req_sales_1
                    error:
                      code: AUTHENTICATION_REQUIRED
                      message: API key is required in the Authorization header
                      retryable: false
                      type: invalid_request_error
                      details: []
        '403':
          description: Scopes insuficientes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
              examples:
                default:
                  summary: FORBIDDEN
                  value:
                    request_id: req_sales_1
                    error:
                      code: FORBIDDEN
                      message: Your API key does not have permission for this operation
                      retryable: false
                      type: invalid_request_error
                      details: []
        '429':
          description: Límite de solicitudes excedido para la organización
          headers:
            Retry-After:
              description: Segundos a esperar antes de volver a intentar la solicitud.
              schema:
                type: string
                example: '30'
            X-RateLimit-Limit:
              description: Límite de la ventana activa.
              schema:
                type: string
                example: '5000'
            X-RateLimit-Remaining:
              description: Solicitudes restantes en la ventana activa.
              schema:
                type: string
                example: '0'
            X-RateLimit-Reset:
              description: Segundos restantes hasta el reset de la ventana activa.
              schema:
                type: string
                example: '30'
            RateLimit-Limit:
              description: Límite de la ventana activa en formato estándar.
              schema:
                type: string
                example: '5000'
            RateLimit-Remaining:
              description: Solicitudes restantes en la ventana activa en formato estándar.
              schema:
                type: string
                example: '0'
            RateLimit-Reset:
              description: >-
                Segundos hasta el reset de la ventana activa en formato
                estándar.
              schema:
                type: string
                example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
              examples:
                default:
                  summary: RATE_LIMITED
                  value:
                    request_id: req_rate_limit_1
                    error:
                      type: rate_limit_error
                      code: RATE_LIMITED
                      message: >-
                        The organization request limit was reached. Try again
                        later.
                      retryable: true
                      details: []
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
              examples:
                default:
                  summary: INTERNAL_ERROR
                  value:
                    request_id: req_sales_1
                    error:
                      code: INTERNAL_ERROR
                      message: Could not list sales
                      retryable: false
                      type: invalid_request_error
                      details: []
      x-codeSamples:
        - lang: typescript
          label: La Pyme SDK
          source: |
            import { Lapyme } from "lapyme";

            const lapyme = new Lapyme({
              bearerAuth: process.env["LAPYME_API_KEY"] ?? "",
            });

            const sales = await lapyme.sales.list({
              limit: 20,
              dateFrom: new Date("2026-03-01"),
              dateTo: new Date("2026-03-31"),
            });
components:
  schemas:
    ApiSharedEnum84c92a5072:
      type: string
      enum:
        - id
        - document
        - customer
        - amounts
        - items
        - payments
        - applications
        - fiscal
        - integration
        - reversesVoucher
        - audit
        - tags
    ApiSharedEnume975a7c122:
      type: string
      enum:
        - invoiceDate
        - dueDate
      default: invoiceDate
    ApiSharedEnum9ac70a3316:
      type: string
      enum:
        - not_required
        - pending
        - issued
    ApiSaleListResponse:
      type: object
      properties:
        request_id:
          type: string
        data:
          type: array
          items:
            type: object
            properties:
              object:
                type: string
                const: sale
              id:
                type: string
                format: uuid
              accounting:
                $ref: '#/components/schemas/ApiSharedObject799d3e3f37'
              document:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              customer:
                anyOf:
                  - type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                  - type: 'null'
              amounts:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              items:
                type: array
                items:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
              payments:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              applications:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              fiscal:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              integration:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              reverses_voucher:
                anyOf:
                  - type: object
                    propertyNames:
                      type: string
                    additionalProperties: {}
                  - type: 'null'
              audit:
                type: object
                propertyNames:
                  type: string
                additionalProperties: {}
              tags:
                type: array
                items:
                  $ref: '#/components/schemas/ApiSharedObject8a94344083'
            additionalProperties: {}
        has_more:
          type: boolean
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
        object:
          $ref: '#/components/schemas/ApiSharedEnum8d46e1ec20'
        url:
          type: string
          description: Requested list path.
      required:
        - request_id
        - data
        - has_more
        - next_cursor
        - object
        - url
      additionalProperties: false
    ApiErrorEnvelope:
      type: object
      properties:
        request_id:
          type: string
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - authentication_error
                - authorization_error
                - business_error
                - external_dependency_error
                - idempotency_error
                - invalid_request_error
                - rate_limit_error
            code:
              type: string
            message:
              type: string
            retryable:
              type: boolean
            details:
              type: array
              items:
                $ref: '#/components/schemas/ApiSharedObjectc671832641'
          required:
            - type
            - code
            - message
            - retryable
            - details
          additionalProperties: false
      required:
        - request_id
        - error
      additionalProperties: false
    ApiSharedObject799d3e3f37:
      type: object
      properties:
        object:
          type: string
          const: accounting_evidence
        status:
          $ref: '#/components/schemas/ApiSharedEnum8b51d9e8f5'
        journal_entry_ids:
          type: array
          items:
            type: string
            format: uuid
        journal_entries_url:
          anyOf:
            - type: string
            - type: 'null'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/ApiSharedObject76de9df039'
      required:
        - object
        - status
        - journal_entry_ids
        - journal_entries_url
        - warnings
      additionalProperties: false
    ApiSharedObject8a94344083:
      type: object
      properties:
        object:
          type: string
          const: tag
        id:
          type: string
          format: uuid
        scope:
          $ref: '#/components/schemas/ApiSharedEnum09f8155a9a'
        name:
          type: string
        slug:
          type: string
        color:
          anyOf:
            - $ref: '#/components/schemas/ApiSharedEnum599647cb76'
            - type: 'null'
        description:
          anyOf:
            - type: string
            - type: 'null'
        archived_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      required:
        - object
        - id
        - scope
        - name
        - slug
        - color
        - description
        - archived_at
        - created_at
        - updated_at
      additionalProperties: false
    ApiSharedEnum8d46e1ec20:
      type: string
      enum:
        - list
      description: List-envelope discriminator.
    ApiSharedObjectc671832641:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        field:
          type: string
      required:
        - code
        - message
      additionalProperties: false
    ApiSharedEnum8b51d9e8f5:
      type: string
      enum:
        - not_enabled
        - not_applicable
        - pending
        - posted
        - failed
    ApiSharedObject76de9df039:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      required:
        - code
        - message
      additionalProperties: false
    ApiSharedEnum09f8155a9a:
      type: string
      enum:
        - customer
        - supplier
        - product
        - sale
        - purchase
        - purchase_order
        - transfer
    ApiSharedEnum599647cb76:
      type: string
      enum:
        - slate
        - red
        - orange
        - amber
        - yellow
        - lime
        - green
        - teal
        - cyan
        - blue
        - indigo
        - violet
        - pink
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: Incluí tu API key en el header Authorization con el prefijo Bearer.

````