---
title: "Obtener venta por ID"
method: GET
path: "/api/v1/sales/{sale_id}"
tags: ["API"]
---

# Obtener venta por ID

`GET /api/v1/sales/{sale_id}`

## Request

- Base URL: `https://api.lapyme.com.ar`
- URL: `https://api.lapyme.com.ar/api/v1/sales/{sale_id}`
- Auth: HTTP bearer

Devuelve el detalle de la venta.

## Path parameters

- `sale_id` string, uuid, required

## Query parameters

- `fields` string[]

## Response `200`

Venta obtenida exitosamente

- ApiSaleDetailResponse
  - `request_id` string, required
  - `data` object, required
    - `metafields` ApiSharedObject9aa7d5babc[]
      - `definition_id` string, uuid, required
      - `key` string, required
      - `name` string, required
      - `field_type` string, required
      - `value` string, required
    - `object` 'sale'
    - `id` string, uuid
    - `invoice_pdf` string, nullable
    - `accounting` ApiSharedObjectb708221d2f
      - `object` 'accounting_evidence', required
      - `status` 'not_enabled' | 'not_applicable' | 'pending' | 'posted' | 'failed', required
      - `journal_entry_ids` string[], required
      - `journal_entries_url` string, nullable, required
      - `warnings` ApiSharedObject76de9df039[], required
        - `code` string, required
        - `message` string, required
    - `document` ApiSharedObjectdacb842378
      - `file` ApiSharedObject9c9e4b0e0d, required: Document availability. The URL requires bearer authentication and never contains a storage path or signed query string.
        - `status` 'ready' | 'pending' | 'failed' | 'missing', required
        - `url` string, nullable, required: Stable authenticated La Pyme API path. Present only when status is ready; follow redirects when downloading.
    - `customer` object, nullable
    - `amounts` object
    - `items` object[]
    - `payments` object
    - `applications` object
    - `fiscal` object
    - `integration` object
    - `reverses_voucher` object, nullable
    - `audit` object
    - `tags` ApiSharedObjected3905a55b[]
      - `object` 'tag', required
      - `id` string, uuid, required
      - `scope` 'customer' | 'supplier' | 'product' | 'sale' | 'purchase' | 'purchase_order' | 'transfer', required
      - `name` string, required
      - `slug` string, required
      - `color` 'slate' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'teal' | 'cyan' | 'blue' | 'indigo' | 'violet' | 'pink', required
      - `description` string, nullable, required
      - `archived_at` string, date-time, nullable, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required

## Other responses

- `401`: API key faltante o inválida
- `403`: Scopes insuficientes
- `404`: Venta no encontrada
- `429`: Límite de solicitudes excedido para la organización
- `500`: Error interno del servidor
- `503`: Verificación de credenciales temporalmente ocupada; reintentá sin cambiar la operación ni su Idempotency-Key.

## Changes

- **2026-11-03** `ed0d46e68fbe`: 2 breaking, 24 info
  - the response property `data/accounting/journal_entries_url` became nullable for the status `200`
  - the response property `data/document/file/url` became nullable for the status `200`
  - added the enum value `accounting` to the property `items/` of the `query` request parameter `fields`
  - added the enum value `invoicePdf` to the property `items/` of the `query` request parameter `fields`
  - …22 more

[Operation history](https://skmtc.dev/lapyme/apis/la-pyme-api/changes/api/v1/sales/:sale_id/get.md)

---

[API](https://skmtc.dev/lapyme/apis/la-pyme-api.md) - [All operations](https://skmtc.dev/lapyme/apis/la-pyme-api/llms.txt) - [OpenAPI document](https://skmtc.dev/lapyme/apis/la-pyme-api/revisions/067bbb55f421?raw)
