# Enumera las retenciones fiscales.

## ▶️ Uso

Con el método List Tax Retentions, puedes:

1. Listar las retenciones fiscales relacionadas con un link.id específico (usando el parámetro de consulta link).
2. Obtener los detalles de un tax-retention.id específico (usando el parámetro de consulta id).
3. [No Recomendado] Listar todas las retenciones fiscales relacionadas con tu cuenta de Belvo (sin usar ningún parámetro de consulta).

## 📖 Paginación

Este método devuelve una respuesta paginada (por defecto: 100 elementos por página). Puedes usar el parámetro de consulta page_size para aumentar el número de elementos devueltos hasta un máximo de 1000 elementos. Puedes usar el parámetro de consulta page para navegar a través de los resultados. Para más detalles sobre cómo navegar por las respuestas paginadas de Belvo, consulta nuestro artículo Consejos de Paginación.

## 🔦 Filtrado de Respuestas

Consulta la lista de campos a continuación para ver los campos por los que puedes filtrar tus respuestas. Para más información sobre cómo usar filtros, consulta nuestro artículo Filtrado de respuestas.

Endpoint: GET /api/tax-retentions/
Version: 1.223.0
Security: basicAuth

## Query parameters:

  - `link` (string)
    El link.id por el que deseas filtrar.

ℹ️ Recomendamos encarecidamente añadir el filtro link.id para mejorar tu rendimiento.
    Example: "8848bd0c-9c7e-4f53-a732-ec896b11d4c4"

  - `page_size` (integer)
    Indica cuántos resultados devolver por página. Por defecto, devolvemos 100 resultados por página.

ℹ️ El número mínimo de resultados devueltos por página es 1 y el máximo es 1000. Si introduces un valor mayor que 1000, nuestra API usará por defecto el valor máximo (1000).
    Example: 100

  - `page` (integer)
    Un número de página dentro del conjunto de resultados paginados.
    Example: 1

  - `omit` (string)
    Omite ciertos campos para que no se devuelvan en la respuesta. Para más información, consulta nuestro artículo del DevPortal Filtrando respuestas.

  - `fields` (string)
    Devuelve solo los campos especificados en la respuesta. Para obtener más información, consulta nuestro artículo del DevPortal Filtrando respuestas.

  - `link__in` (array)
    Devuelve resultados solo para estos link.ids.
    Example: ["5722d0ba-69d7-42dc-8ff5-33767b83c5d6"]

  - `created_at` (string)
    Devuelve los elementos que se actualizaron por última vez en la base de datos de Belvo en esta fecha (en formato YYYY-MM-DD).
    Example: "2022-05-05"

  - `created_at__gt` (string)
    Devuelve los elementos que se actualizaron por última vez en la base de datos de Belvo después de esta fecha (en formato YYYY-MM-DD).
    Example: "2022-05-05"

  - `created_at__gte` (string)
    Devuelve los elementos que se actualizaron por última vez en la base de datos de Belvo después o en esta fecha (en formato YYYY-MM-DD).
    Example: "2022-05-04"

  - `created_at__lt` (string)
    Devuelve los elementos que se actualizaron por última vez en la base de datos de Belvo antes de esta fecha (en formato YYYY-MM-DD).
    Example: "2022-04-01"

  - `created_at__lte` (string)
    Devuelve los elementos que se actualizaron por última vez en la base de datos de Belvo antes o en esta fecha (en formato YYYY-MM-DD).
    Example: "2022-03-30"

  - `created_at__range` (array)
    Devolver cuentas que fueron actualizadas por última vez en la base de datos de Belvo entre dos fechas (en formato YYYY-MM-DD). El primer valor indica el inicio del rango y el segundo valor indica el final del rango.
    Example: ["2022-01-01","2022-12-31"]

## Response 200 fields (application/json):

  - `count` (integer)
    El número total de resultados en tu cuenta de Belvo.
    Example: 130

  - `next` (string,null)
    La URL a la siguiente página de resultados. Cada página consta de hasta 100 elementos. Si no hay suficientes resultados para una página adicional, el valor es null.

En nuestro ejemplo de documentación, usamos {endpoint} como un valor de marcador de posición. En producción, este valor será reemplazado por el endpoint real que estás utilizando actualmente (por ejemplo, accounts o owners).
    Example: "https://sandbox.belvo.com/api/{endpoint}/?link=1bd948f7-245d-4313-b604-34d1044cb908page=2"

  - `previous` (string,null)
    La URL a la página anterior de resultados. Si no hay una página anterior, el valor es null.

  - `results` (array)
    Matriz de objetos de retenciones fiscales.

  - `results.id` (string)
    Identificador único de Belvo para el elemento actual.
    Example: "0d3ffb69-f83b-456e-ad8e-208d0998d71d"

  - `results.link` (string,null)
    El link.id al que pertenecen los datos.
    Example: "30cb4806-6e00-48a4-91c9-ca55968576c8"

  - `results.collected_at` (string, required)
    La marca de tiempo ISO-8601 cuando se recopiló el punto de datos.
    Example: "2022-02-09T08:45:50.406032Z"

  - `results.created_at` (string)
    La marca de tiempo ISO-8601 de cuando se creó el punto de datos en la base de datos de Belvo.
    Example: "2022-02-09T08:45:50.406032Z"

  - `results.invoice_identification` (string,null, required)
    El ID único de la institución fiscal para la factura a la que se refiere la retención de impuestos.
    Example: "def404af-5eef-4112-aa99-d1ec8493b89a"

  - `results.version` (string,null, required)
    La versión CFDI de las retenciones de impuestos.
    Example: "1.0"

  - `results.code` (integer,null, required)
    El código de retención de impuestos. Para obtener más información, consulta nuestro artículo del DevPortal sobre los catálogos del SAT.
    Example: 25

  - `results.issued_at` (string,null, required)
    La marca de tiempo ISO-8601 de cuando se emitió la retención de impuestos.
    Example: "2019-01-03T21:10:40.000Z"

  - `results.certified_at` (string,null, required)
    La marca de tiempo ISO-8601 de cuando se certificó la retención de impuestos.
    Example: "2019-01-03T21:10:41.000Z"

  - `results.cancelled_at` (string,null, required)
    La marca de tiempo ISO-8601 de cuando se canceló la retención de impuestos (si corresponde).

  - `results.sender_id` (string,null, required)
    El ID fiscal del remitente de la factura.
    Example: "JKUF980404P0"

  - `results.sender_name` (string,null, required)
    El nombre del remitente de la factura.
    Example: "Roberto Nunez Batman"

  - `results.receiver_nationality` (string,null, required)
    Si el receptor de la factura es un nacional mexicano o no. Si el receptor no se considera un nacional mexicano, los impuestos retenidos pueden calcularse de manera diferente. Valores posibles:
  - NATIONAL
  - FOREIGN
    Enum: "NATIONAL", "FOREIGN"

  - `results.receiver_id` (string,null, required)
    El ID fiscal del receptor de la factura.
    Example: "GYGK3207809L1"

  - `results.receiver_name` (string,null, required)
    El nombre del receptor de la factura.
    Example: "ACME LTD"

  - `results.total_invoice_amount` (number,null, required)
    El monto total de la factura al que se refiere la retención de impuestos.
    Example: 53249.8

  - `results.total_exempt_amount` (number,null, required)
    Cantidad total que está exenta de impuestos.
    Example: 1000.8

  - `results.total_retained_amount` (number,null, required)
    Total de impuestos retenidos.
    Example: 1550.7

  - `results.total_taxable_amount` (number,null, required)
    El monto total que se puede gravar. Se calcula como total_invoice_amount - total_exempt_amount.
    Example: 43249

  - `results.retention_breakdown` (array,null, required)
    Un desglose de los impuestos retenidos.

  - `results.retention_breakdown.base_amount` (number,null, required)
    El monto base que se utilizó para calcular la retención de impuestos.
    Example: 0.03

  - `results.retention_breakdown.tax_type` (string,null, required)
    Atributo opcional para indicar el tipo de impuesto retenido para el período o año según el catálogo del SAT.
    Example: "01"

  - `results.retention_breakdown.retained_amount` (number,null, required)
    El monto retenido.

  - `results.retention_breakdown.payment_status` (string,null, required)
    Indica si el impuesto ha sido pagado o no. Puede ser:
  - PAID
  - PROVISIONED
    Enum: "PAID", "PROVISIONED"

  - `results.xml` (string,null, required)
    El documento de retención de impuestos en formato XML.
    Example: "=XML-STRING="

## Response 403 fields (application/json):

  - `code` (string)
    Un código de error único (access_to_resource_denied) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar 403 access_to_resource_denied.
    Example: "access_to_resource_denied"

  - `message` (string)
    Una breve descripción del error.

Para los errores access_to_resource_denied, la descripción es:

  - You don't have access to this resource..
    Example: "You don't have access to this resource."

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 404 fields (application/json):

  - `code` (string)
    Un código de error único (not_found) que te permite clasificar y manejar el error de manera programática.
    Example: "not_found"

  - `message` (string)
    Una breve descripción del error.

Para errores not_found, la descripción es:

  - Not found
    Example: "Not found"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 408 fields (application/json):

  - `code` (string)
    Un código de error único (request_timeout) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 408 request_timeout.
    Example: "request_timeout"

  - `message` (string)
    Una breve descripción del error.

Para los errores de request_timeout, la descripción es:

  - The request timed out, you can retry asking for less data by changing your query parameters.
    Example: "The request timed out, you can retry asking for less data by changing your query parameters"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 428 fields (application/json):

  - `code` (string)
    Un código de error único (token_required) que te permite clasificar y manejar el error de forma programática. ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 428 token_required.
    Example: "token_required"

  - `message` (string)
    Una breve descripción del error. 
Para los errores token_required, la descripción es:

  - A MFA token is required by the institution to login.
    Example: "A MFA token is required by the institution to login"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

  - `session` (string)
    Un ID único de 32 caracteres de la sesión de inicio de sesión (que coincide con un patrón de regex de: [a-f0-9]{32}).
    Example: "2675b703b9d4451f8d4861a3eee54449"

  - `expiry` (integer)
    Tiempo de duración de la sesión en segundos.
    Example: 9600

  - `link` (string)
    Identificador único creado por Belvo, utilizado para referenciar el Link actual.
    Example: "30cb4806-6e00-48a4-91c9-ca55968576c8"

  - `token_generation_data` (object)
    Detalles sobre cómo generar el token.

  - `token_generation_data.instructions` (string)
    Instrucciones para la generación de tokens.
    Example: "Use this code to generate the token"

  - `token_generation_data.type` (string)
    Tipo de datos para generar el token (código QR, desafío numérico).
    Example: "numeric"

  - `token_generation_data.value` (string)
    Valor a utilizar para generar el token.
    Example: "12345"

  - `token_generation_data.expects_user_input` (boolean)
    Indica si el usuario necesita proporcionar información para completar la autenticación. Cuando se establece en false, es posible que su usuario necesite:
- confirmar el inicio de sesión en otro dispositivo
- escanear un código QR
Aún necesitará realizar una llamada PATCH para completar la solicitud.
    Example: true

## Response 500 fields (application/json):

  - `code` (string)
    Un código de error único (unexpected_error) que te permite clasificar y manejar el error de manera programática.

ℹ️ Consulta nuestro DevPortal para obtener más información sobre cómo manejar errores 500 unexpected_error.
    Example: "unexpected_error"

  - `message` (string)
    Una breve descripción del error.

Para los errores unexpected_error, la descripción es:

- Belvo no puede procesar la solicitud debido a un problema interno del sistema o a una respuesta no soportada de una institución.
    Example: "Belvo is unable to process the request due to an internal system issue or to an unsupported response from an institution"

  - `request_id` (string)
    Un ID único de 32 caracteres de la solicitud (que coincide con un patrón regex de: [a-f0-9]{32}). Proporcione este ID al contactar al equipo de soporte de Belvo para acelerar las investigaciones.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"


