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

# Flujo de Caja de Bonos

> Obtener el flujo de caja de un bono específico, incluyendo todos los pagos de capital e intereses

<Note>
  Este endpoint obtiene el flujo de caja de un bono específico, incluyendo todos los pagos de capital e intereses.
</Note>

## Parámetros de Ruta

<ParamField path="symbol" type="string" required default="AL30">
  El símbolo del bono (ej., "AL30", "GD30").
</ParamField>

## Parámetros de Consulta

<ParamField query="nominal_units" type="integer" default="100">
  Unidades nominales para el cálculo. Esto determina el valor nominal de la posición del bono para la cual calcular el flujo de caja.
</ParamField>

## Ejemplo de Solicitud

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.doctacapital.com.ar/api/v1/bonds/analytics/AL30/cashflow?nominal_units=100" \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ```
</RequestExample>

## Respuesta Exitosa

<ResponseField name="ticker" type="string">
  El símbolo del bono solicitado.
</ResponseField>

<ResponseField name="data" type="array">
  Serie de eventos de flujo de caja del bono.
</ResponseField>

<ResponseField name="data[].issue_date" type="string">
  Fecha de emisión del bono (YYYY-MM-DD).
</ResponseField>

<ResponseField name="data[].payment_date" type="string">
  Fecha de pago (YYYY-MM-DD).
</ResponseField>

<ResponseField name="data[].capital" type="number">
  Capital pagado en la fecha.
</ResponseField>

<ResponseField name="data[].interest_rate" type="number">
  Tasa de interés del período (decimal).
</ResponseField>

<ResponseField name="data[].interest_amount" type="number">
  Interés pagado en la fecha.
</ResponseField>

<ResponseField name="data[].residual_value" type="number">
  Capital remanente luego del pago.
</ResponseField>

<ResponseField name="data[].cash_flow" type="number">
  Flujo total (capital + interés) en la fecha.
</ResponseField>

<ResponseField name="data[].adj_interest_amount" type="number">
  Interés ajustado en la fecha.
</ResponseField>

<ResponseField name="data[].adj_capital" type="number">
  Capital ajustado en la fecha.
</ResponseField>

<ResponseField name="metadata" type="object">
  Metadatos de la respuesta.
</ResponseField>

<ResponseField name="metadata.subasset_class" type="string">
  Sub-clase de activo del bono.
</ResponseField>

<ResponseField name="metadata.nominal_units" type="number">
  Unidades nominales usadas para el cálculo.
</ResponseField>

<ResponseField name="metadata.total_records" type="number">
  Cantidad total de registros.
</ResponseField>

## Ejemplo de Respuesta Exitosa

<ResponseExample>
  ```json Success theme={null}
  {
    "ticker": "AL30",
    "data": [
      {
        "issue_date": "2020-09-04",
        "payment_date": "2021-07-09",
        "capital": 0.0,
        "interest_rate": 0.13,
        "interest_amount": 0.1101388888888889,
        "residual_value": 100.0,
        "cash_flow": 0.1101388888888889,
        "adj_interest_amount": 0.1101388888888889,
        "adj_capital": 0.0
      },
      {
        "issue_date": "2020-09-04",
        "payment_date": "2025-01-09",
        "capital": 8.0,
        "interest_rate": 0.75,
        "interest_amount": 0.375,
        "residual_value": 88.0,
        "cash_flow": 8.36,
        "adj_interest_amount": 0.36,
        "adj_capital": 8.0
      }
    ],
    "metadata": {
      "subasset_class": "HARD_DOLLAR",
      "nominal_units": 100.0,
      "total_records": 19
    }
  }
  ```
</ResponseExample>

## Respuestas de Error

### 500 Error Interno del Servidor

Error interno del servidor.

```json theme={null}
{
  "type": "/errors/internal-server-error",
  "title": "Internal server error",
  "status": 500,
  "detail": "Internal server error",
  "correlation_id": "6cd1fd05-63e9-4863-832f-d873e58e9d67"
}
```

### 401 No Autorizado

Token de acceso inválido o faltante.

```json theme={null}
{
  "type": "/errors/authentication-required",
  "title": "Authorization header missing",
  "status": 401,
  "detail": "Authorization header missing",
  "correlation_id": "d6e20e07-0580-4e2d-9480-00a68c1ae493"
}
```

### 404 No Encontrado

Ticker no encontrado.

```json theme={null}
{
  "type": "/errors/not-found",
  "title": "Resource not found",
  "status": 404,
  "detail": "Ticker not found"
}
```

## Notas

* Los datos de flujo de caja incluyen todos los pagos hasta el vencimiento del bono
* Los montos se calculan basándose en `metadata.nominal_units`


## OpenAPI

````yaml GET /api/v1/bonds/analytics/{symbol}/cashflow
openapi: 3.1.0
info:
  title: API de Docta
  description: >-
    API de mercado argentino: bonos (instrumentos, cashflows, curvas/yields) y
    FCI (screener, series, performance, comparaciones y analytics de industria).
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.doctacapital.com.ar
security: []
paths:
  /api/v1/bonds/analytics/{symbol}/cashflow:
    get:
      tags:
        - Bonds
      description: >-
        Obtener el flujo de caja de un bono específico, incluyendo todos los
        pagos de capital e intereses
      parameters:
        - name: symbol
          in: path
          description: El símbolo del bono
          required: true
          schema:
            type: string
          example: AL30
        - name: nominal_units
          in: query
          description: Unidades nominales para el cálculo
          required: false
          schema:
            type: integer
            minimum: 1
          example: 100
      responses:
        '200':
          description: Bond cashflow data successfully retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CashflowResponse'
        '401':
          description: No autorizado - token de acceso inválido o faltante
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: /errors/authentication-required
                title: Authorization header missing
                status: 401
                detail: Authorization header missing
                correlation_id: d6e20e07-0580-4e2d-9480-00a68c1ae493
        '404':
          description: Ticker no encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: /errors/not-found
                title: Resource not found
                status: 404
                detail: Ticker not found
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                type: /errors/internal-server-error
                title: Internal server error
                status: 500
                detail: Internal server error
                correlation_id: 6cd1fd05-63e9-4863-832f-d873e58e9d67
      security:
        - bearerAuth: []
components:
  schemas:
    CashflowResponse:
      type: object
      properties:
        ticker:
          type: string
          description: Símbolo del bono
        data:
          type: array
          description: Lista de flujos de caja del bono
          items: d4932d75-d90f-48c3-a7c2-633bb0f9ea5b
        metadata: 440412a9-45d3-4d1c-a404-3e7c628a55c0
      required:
        - ticker
        - data
        - metadata
    Error:
      required:
        - type
        - title
        - status
        - detail
        - correlation_id
      type: object
      properties:
        type:
          description: El identificador del tipo de error
          type: string
          example: /errors/authentication-required
        title:
          description: Una breve descripción del error
          type: string
          example: Invalid client credentials
        status:
          description: El código de estado HTTP
          type: integer
          example: 401
        detail:
          description: Una descripción detallada del error
          type: string
          example: Invalid client credentials
        correlation_id:
          description: Un identificador único para rastrear esta solicitud de error
          type: string
          format: uuid
          example: 2eb07802-94de-468a-b70f-75a49f3e9516
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````