---
title: "Calcular retención de Ganancias sin registrar un pago"
method: POST
path: "/api/v1/supplier-payments/preview-ganancias"
tags: ["API"]
---

# Calcular retención de Ganancias sin registrar un pago

`POST /api/v1/supplier-payments/preview-ganancias`

## Request

- Base URL: `https://api.lapyme.com.ar`
- URL: `https://api.lapyme.com.ar/api/v1/supplier-payments/preview-ganancias`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lapyme/apis/la-pyme-api/docs/api/v1/supplier-payments/preview-ganancias/post.ts> (a function with typed inputs; its response is checked against the schema)

Operación de solo lectura. No requiere Idempotency-Key ni emite certificados. Usa los pagos elegibles del mes. Enviá las mismas aplicaciones, moneda y tipo de cambio que el pago: sin calculation_base, la base se calcula con las compras aplicadas y se devuelve en calculation_base junto a final_withholding. Sin calculation_base, devuelve 400 con detalle GANANCIAS_CALCULATION_BASE_REQUIRED cuando no hay aplicaciones o alguna aplica un saldo que no es una compra. No recibe créditos: para un pago que también los aplica, enviá calculation_base. Una compra en otra moneda que currency devuelve 400 con detalle GANANCIAS_INVALID_INPUT. Crear el pago recalcula con un bloqueo mensual; un cambio que desbalancea los medios de pago devuelve 409 STATE_CONFLICT con detalle GANANCIAS_CALCULATION_MISMATCH. Un fallo ARCA devuelve 422 BUSINESS_REQUIREMENT_UNMET con detalle GANANCIAS_STATUS_UNRESOLVED, salvo override explícito is_inscripto.

## Request body

- ApiGananciasPreviewRequest
  - `regimen` '19' | '21' | '25' | '30' | '31' | '32' | '35' | '43' | '51' | '53' | '55' | '69' | '70' | '71' | '78' | '86' | '94' | '95' | '110' | '111' | '116' | '119' | '124', required: Código de régimen de Ganancias configurado.
  - `calculation_base` integer: Base de este pago en centavos ARS, sin IVA. Omitila para calcularla con las compras aplicadas, como la pantalla de pagos. Obligatoria sin aplicaciones, con saldos que no son compras o con créditos.
  - `is_inscripto` boolean: Override explícito de inscripción en Ganancias. Omitir para consultar ARCA; un fallo no permite registrar el pago.
  - `supplier_id` string, uuid, required
  - `payment_date` string, date, required
  - `exclude_payment_id` string, uuid
  - `currency` 'ARS' | 'USD': Moneda de las compras aplicadas. Por defecto ARS.
  - `exchange_rate` number: Obligatorio con USD.
  - `applications` ApiSharedObjectf91176efb5[]: Las del pago.
    - `purchase_id` string, uuid, required
    - `applied_amount` integer, required
  - `journal_line_applications` ApiSharedObjectdaa374f786[]: Las del pago.
    - `journal_line_id` string, uuid, required
    - `applied_amount` integer, required

## Response `200`

Cálculo sin escrituras

- ApiGananciasPreviewResponse
  - `request_id` string, required
  - `data` object, required
    - `object` 'supplier_payment_ganancias_preview', required
    - `should_withhold` boolean, required
    - `exempt_reason` string
    - `calculation_base` integer, required: Base de este pago en centavos ARS: la enviada o la calculada con las compras aplicadas.
    - `accumulated_base_total` integer, required
    - `minimum_non_taxable` integer, required
    - `taxable_amount` integer, required
    - `rate` number, required
    - `gross_withholding` integer, required
    - `previous_withholdings` integer, required
    - `net_withholding` integer, required
    - `minimum_threshold` integer, required
    - `final_withholding` integer, required
    - `supplier_name` string, required
    - `is_inscripto_en_ganancias` boolean, required
    - `person_type` 'FISICA' | 'JURIDICA', required
    - `breakdown` object[], required
      - `label` string, required
      - `value` number, required
      - `formatted_value` string
    - `progressive_scale_details` object
      - `bracket` string, required
      - `fixed_amount` number, required
      - `rate` number, required
      - `excess_over` number, required

## Other responses

- `400`: Datos inválidos
- `401`: API key faltante o inválida
- `403`: Scopes insuficientes
- `404`: Proveedor o compras aplicadas no encontrados
- `422`: Condición ARCA sin resolver
- `429`: Límite de solicitudes excedido para la organización
- `500`: Error interno
- `503`: Verificación de credenciales temporalmente ocupada; reintentá sin cambiar la operación ni su Idempotency-Key.

## Changes

- **2026-11-05** `6b2f640f0f8f`: 6 info
  - added the new optional request property `applications`
  - added the new optional request property `currency`
  - added the new optional request property `exchange_rate`
  - added the new optional request property `journal_line_applications`
  - …2 more
- **2026-11-04** `42d961e0f345`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/lapyme/apis/la-pyme-api/changes/api/v1/supplier-payments/preview-ganancias/post.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/36653d5fbdc3?raw)
