> ## 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.

# Precio de modelo de un US Treasury

> Precio de modelo, no una cotización de mercado: letras por descuento bancario interpolado en la curva bill_discount, notas y bonos por el par_yield interpolado en días, con interés corrido ACT/ACT al as_of. Precios por 100 de valor nominal; price es el precio sucio en notas y bonos y solo price cambia de moneda con currency. Tasas en porcentaje (units: percent). TIPS, FRN y STRIPS no se valúan.

> [!NOTE]
>
> Devuelve el precio de modelo de una letra, nota o bono del Tesoro de Estados Unidos, en dólares o en pesos. Es un precio calculado sobre la curva del Tesoro de un día, no una cotización de mercado ni una operación. Requiere el scope `treasuries:read`.

## Cómo se calcula

Docta valúa el título con la curva publicada el día `rate_date`, el último día con tasas en o antes de `as_of`:

* Letras y letras de caja (`family: "BILL"`): la tasa de descuento de la curva `bill_discount` interpolada linealmente en días al vencimiento (`discount_rate`), y precio `100 × (1 − discount_rate / 100 × residual_days / 360)`.
* Notas y bonos (`family: "NOTE"` o `"BOND"`): los cupones y el capital descontados al `par_yield` interpolado linealmente en días al vencimiento, con capitalización semestral. El interés corrido se devenga ACT/ACT hasta `as_of`. `price` es el precio sucio.

Por debajo del primer tenor o por encima del último, la interpolación toma la tasa del extremo. Los TIPS, los FRN y los STRIPS no se valúan y responden 404.

## Parámetros de ruta

**id** `string` *required*

ISIN de 12 caracteres (`US91282CMM00`), ISIN sin dígito verificador de 11 (`US91282CMM0`) o CUSIP de 9 (`91282CMM0`). No distingue mayúsculas.

## Parámetros de consulta

**as\_of** `string`

Fecha de valuación, `YYYY-MM-DD`, hasta hoy. Una fecha futura responde 422 `invalid_date`. Predeterminado: el último día con tasas. En un fin de semana o feriado usa la curva del último día hábil anterior.

**currency** `string` (default: usd)

Moneda de `price`: `usd`, `ars_ccl` (pesos al dólar CCL) o `ars_mep` (pesos al dólar MEP). El dólar es el de `as_of` o el último publicado antes.

## Ejemplo de solicitud

```bash cURL theme={null}
curl "https://api.doctacapital.com.ar/api/v1/treasuries/instruments/US91282CMM00/price" \
  -H "Authorization: Bearer $DOCTA_TOKEN"
```

## Respuesta exitosa

Las tasas vienen en porcentaje (`4.927972602739726` es 4,93%) y lo dice `units: "percent"`. Los precios son por 100 de valor nominal. Solo `price` cambia de moneda con `currency`; los demás precios quedan siempre en dólares. La respuesta no tiene campos en `null`: los que no aplican a la familia del título no vienen.

**isin** `string`

ISIN de 12 caracteres.

**cusip** `string`

CUSIP de 9 caracteres.

**family** `string`

Cómo se valúa el título: `BILL` (letras y letras de caja), `NOTE` o `BOND`.

**security\_type** `string`

Tipo según el Tesoro: `Bill`, `Note` o `Bond`.

**security\_term** `string`

Plazo de la subasta original (ej., `52-Week`, `10-Year`).

**issue\_date** `string`

Fecha de emisión.

**maturity\_date** `string`

Fecha de vencimiento.

**coupon** `number`

Solo notas y bonos. Tasa de cupón anual, en porcentaje.

**as\_of** `string`

Fecha de valuación. Sin `as_of` en la request, es el último día con tasas.

**rate\_date** `string`

Día de la curva usada.

**rate\_age\_days** `integer`

Días entre `rate_date` y `as_of`. `0` en un día hábil, `2` un domingo.

**method** `string`

`bill_discount_interpolated` para letras, `par_yield_interpolated` para notas y bonos.

**units** `string`

Siempre `percent`: las tasas de esta respuesta están en porcentaje.

**currency** `string`

`USD`, o `ARS` con `currency=ars_ccl` o `ars_mep`. Indica la moneda de `price` y nada más.

**price** `number`

Precio de modelo por 100 de valor nominal, en `currency`. En una letra es el precio; en una nota o un bono, el precio sucio.

**price\_usd\_per\_100** `number`

El mismo precio en dólares por 100, cualquiera sea `currency`. Es el valor que encadenás con la [calculadora](https://docs.docta.com.ar/api-reference/endpoint/treasuries-calculator.md): `input=price` en una letra, `input=dirty` en una nota o un bono.

**price\_per\_100** `number`

Solo letras. Precio en dólares por 100, igual a `price_usd_per_100`.

**discount\_rate** `number`

Solo letras. Tasa de descuento bancario interpolada en la curva `bill_discount`, en porcentaje.

**coupon\_equivalent** `number`

Solo letras. Rendimiento equivalente de cupón (la fórmula del Tesoro, base 365 o 366) del precio de modelo, en porcentaje.

**dirty\_price** `number`

Solo notas y bonos. Precio sucio en dólares por 100.

**clean\_price** `number`

Solo notas y bonos. Precio limpio en dólares por 100: `dirty_price` menos `accrued_interest`.

**accrued\_interest** `number`

Solo notas y bonos. Interés corrido al `as_of`, en dólares por 100.

**par\_yield** `number`

Solo notas y bonos. Rendimiento de la curva `par_yield` interpolado a los días al vencimiento, en porcentaje. Es la tasa con la que se descontó el título.

**prev\_coupon** `string`

Solo notas y bonos. Último cupón en o antes de `as_of`.

**next\_coupon** `string`

Solo notas y bonos. Próximo cupón.

**residual\_days** `integer`

Días corridos de `as_of` al vencimiento.

**fx\_used** `string`

Solo con `currency` en pesos. `ccl` o `mep`.

**fx\_value** `number`

Solo con `currency` en pesos. Pesos por dólar usados para `price`.

**fx\_date** `string`

Solo con `currency` en pesos. Fecha del dólar usado: la de `as_of` o la última anterior con dato.

> [!WARNING]
>
> Para el rendimiento de mercado de este precio, pasá `price_usd_per_100` a la calculadora, que responde en fracción. No mezcles `par_yield` (porcentaje) con las tasas de la calculadora sin convertir la escala. La receta completa está en la [guía](https://docs.docta.com.ar/api-reference/treasuries-guia.md#recetas).

## Ejemplo de respuesta exitosa

```json 200 nota theme={null}
{
  "isin": "US91282CMM00",
  "cusip": "91282CMM0",
  "family": "NOTE",
  "security_type": "Note",
  "security_term": "10-Year",
  "issue_date": "2025-02-18",
  "maturity_date": "2035-02-15",
  "coupon": 4.625,
  "as_of": "2026-11-10",
  "rate_date": "2026-11-10",
  "rate_age_days": 0,
  "method": "par_yield_interpolated",
  "units": "percent",
  "currency": "USD",
  "price": 99.0500870138465,
  "price_usd_per_100": 99.0500870138465,
  "dirty_price": 99.0500870138465,
  "clean_price": 97.95667668775954,
  "accrued_interest": 1.0934103260869565,
  "par_yield": 4.927972602739726,
  "prev_coupon": "2026-08-15",
  "next_coupon": "2027-02-15",
  "residual_days": 3019
}
```

```json 200 letra theme={null}
{
  "isin": "US912797VR56",
  "cusip": "912797VR5",
  "family": "BILL",
  "security_type": "Bill",
  "security_term": "52-Week",
  "issue_date": "2026-08-06",
  "maturity_date": "2027-08-05",
  "as_of": "2026-11-10",
  "rate_date": "2026-11-10",
  "rate_age_days": 0,
  "method": "bill_discount_interpolated",
  "units": "percent",
  "currency": "USD",
  "price": 96.80052503052504,
  "price_usd_per_100": 96.80052503052504,
  "price_per_100": 96.80052503052504,
  "discount_rate": 4.297802197802198,
  "coupon_equivalent": 4.469651318800733,
  "residual_days": 268
}
```

```json 200 currency=ars_ccl theme={null}
{
  "isin": "US91282CMM00",
  "cusip": "91282CMM0",
  "family": "NOTE",
  "security_type": "Note",
  "security_term": "10-Year",
  "issue_date": "2025-02-18",
  "maturity_date": "2035-02-15",
  "coupon": 4.625,
  "as_of": "2026-11-10",
  "rate_date": "2026-11-10",
  "rate_age_days": 0,
  "method": "par_yield_interpolated",
  "units": "percent",
  "currency": "ARS",
  "price": 166277.26384039284,
  "price_usd_per_100": 99.0500870138465,
  "dirty_price": 99.0500870138465,
  "clean_price": 97.95667668775954,
  "accrued_interest": 1.0934103260869565,
  "par_yield": 4.927972602739726,
  "prev_coupon": "2026-08-15",
  "next_coupon": "2027-02-15",
  "residual_days": 3019,
  "fx_used": "ccl",
  "fx_value": 1678.71900826446,
  "fx_date": "2026-11-06"
}
```

```json 404 theme={null}
{
  "type": "/errors/not-found",
  "title": "Resource not found",
  "status": 404,
  "detail": "TIPS are not valued: they need the CPI index",
  "details": {
    "code": "excluded_tips",
    "isin": "US91282CFR79"
  }
}
```

```json 422 theme={null}
{
  "type": "/errors/validation-error",
  "title": "Validation Error",
  "status": 422,
  "detail": "No 'par_yield' rates on or before 2020-01-02",
  "details": {
    "code": "no_rates_on_or_before",
    "first_rate_date": "2025-01-02"
  }
}
```

## Errores

Gana el primer error que aplica, en el orden de la tabla.

| Status | `details.code` | Cuándo | Ejemplo de `detail` |
| - | - | - | - |
| 422 | `invalid_id` | El `id` no tiene forma de ISIN, ISIN de 11 o CUSIP, o falla el dígito verificador. | `'US91282CMM01' fails the ISIN check digit` |
| 422 | `invalid_date` | `as_of` mal formado, inexistente o futuro. | `'as_of' 2099-01-01 is in the future (today is 2026-11-11)` |
| 422 | `invalid_currency` | `currency` fuera de `usd`, `ars_ccl`, `ars_mep`. | `'currency' must be one of ['usd', 'ars_ccl', 'ars_mep'], got 'eur'` |
| 404 | `not_in_catalog` | El título no está en el catálogo del Tesoro. | `Title not in the Treasury catalog` |
| 404 | `excluded_tips`, `excluded_frn`, `excluded_strips`, `excluded_other` | El título no se valúa. | `Floating rate notes are not valued: the catalog has no margin` |
| 404 | `matured` | El título vence en o antes de `as_of`. Trae `maturity_date`. | `US9127933Y02 matured on 1980-04-03` |
| 404 | `not_issued` | `as_of` es anterior a la emisión. Trae `issue_date`. | `US91282CMM00 is issued on 2025-02-18` |
| 422 | `no_rates_on_or_before` | No hay curva en o antes de `as_of` (las tasas empiezan el 2025-01-02). Trae `first_rate_date`. | `No 'par_yield' rates on or before 2020-01-02` |
| 422 | `no_rates` | La curva no tiene ninguna tasa cargada. Trae `first_rate_date`. | |
| 422 | `no_fx` | No hay dólar CCL o MEP en o antes de `as_of`. Trae `fx_used`. | |

Todos los 404 traen `details.isin`. La taxonomía completa está en la [guía](https://docs.docta.com.ar/api-reference/treasuries-guia.md#errores).


## OpenAPI

````yaml GET /api/v1/treasuries/instruments/{id}/price
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/treasuries/instruments/{id}/price:
    get:
      tags:
        - US Treasuries
      description: >-
        Precio de modelo, no una cotización de mercado: letras por descuento
        bancario interpolado en la curva bill_discount, notas y bonos por el
        par_yield interpolado en días, con interés corrido ACT/ACT al as_of.
        Precios por 100 de valor nominal; price es el precio sucio en notas y
        bonos y solo price cambia de moneda con currency. Tasas en porcentaje
        (units: percent). TIPS, FRN y STRIPS no se valúan.
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            ISIN de 12 caracteres (US91282CMM00), ISIN sin dígito verificador de
            11 (US91282CMM0) o CUSIP de 9 (91282CMM0). No distingue mayúsculas.
          schema:
            type: string
            pattern: ^([A-Za-z0-9]{9}|[Uu][Ss][A-Za-z0-9]{9,10})$
          example: US91282CMM00
        - name: as_of
          in: query
          required: false
          description: >-
            Fecha de valuación hasta hoy, YYYY-MM-DD. Predeterminado: el último
            día con tasas.
          schema:
            type: string
            format: date
        - name: currency
          in: query
          required: false
          description: >-
            Moneda de price: usd, ars_ccl o ars_mep (pesos al dólar CCL o MEP de
            as_of o el último anterior).
          schema:
            type: string
            enum:
              - usd
              - ars_ccl
              - ars_mep
            default: usd
      responses:
        '200':
          description: Precio de modelo
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreasuryPriceResponse'
              example:
                isin: US91282CMM00
                cusip: 91282CMM0
                family: NOTE
                security_type: Note
                security_term: 10-Year
                issue_date: '2025-02-18'
                maturity_date: '2035-02-15'
                coupon: 4.625
                as_of: '2026-11-10'
                rate_date: '2026-11-10'
                rate_age_days: 0
                method: par_yield_interpolated
                units: percent
                currency: USD
                price: 99.0500870138465
                price_usd_per_100: 99.0500870138465
                dirty_price: 99.0500870138465
                clean_price: 97.95667668775954
                accrued_interest: 1.0934103260869565
                par_yield: 4.927972602739726
                prev_coupon: '2026-08-15'
                next_coupon: '2027-02-15'
                residual_days: 3019
        '401':
          description: Autenticación requerida
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreasuryError'
              example:
                type: /errors/authentication-required
                title: Authorization header missing
                status: 401
                detail: Authorization header missing
        '403':
          description: 'Permisos insuficientes: requiere el scope treasuries:read'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreasuryError'
              example:
                type: /errors/insufficient-permissions
                title: 'Insufficient permissions. Required scope: treasuries:read'
                status: 403
                detail: 'Insufficient permissions. Required scope: treasuries:read'
        '404':
          description: >-
            not_in_catalog, matured, not_issued, excluded_tips, excluded_frn,
            excluded_strips o excluded_other
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreasuryError'
              example:
                type: /errors/not-found
                title: Resource not found
                status: 404
                detail: 'TIPS are not valued: they need the CPI index'
                details:
                  code: excluded_tips
                  isin: US91282CFR79
        '422':
          description: >-
            invalid_id, invalid_date, invalid_currency, no_rates_on_or_before,
            no_rates o no_fx
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreasuryError'
              example:
                type: /errors/validation-error
                title: Validation Error
                status: 422
                detail: No 'par_yield' rates on or before 2020-01-02
                details:
                  code: no_rates_on_or_before
                  first_rate_date: '2025-01-02'
        '429':
          description: Límite de requests de tu plan superado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TreasuryError'
      security:
        - bearerAuth: []
components:
  schemas:
    TreasuryPriceResponse:
      type: object
      properties:
        isin:
          type: string
        cusip:
          type: string
        family:
          type: string
          enum:
            - BILL
            - NOTE
            - BOND
        security_type:
          type: string
        security_term:
          type: string
        issue_date:
          type: string
          format: date
        maturity_date:
          type: string
          format: date
        coupon:
          type: number
          description: 'Notas y bonos: cupón anual en porcentaje'
        as_of:
          type: string
          description: Fecha de valuación
          format: date
        rate_date:
          type: string
          description: Día de la curva usada
          format: date
        rate_age_days:
          type: integer
          description: Días entre rate_date y as_of
        method:
          type: string
          enum:
            - bill_discount_interpolated
            - par_yield_interpolated
        units:
          type: string
          enum:
            - percent
        currency:
          type: string
          description: Moneda de price
          enum:
            - USD
            - ARS
        price:
          type: number
          description: Precio de modelo por 100 en currency; sucio en notas y bonos
        price_usd_per_100:
          type: number
          description: El mismo precio en dólares por 100
        price_per_100:
          type: number
          description: 'Letras: precio en dólares por 100'
        discount_rate:
          type: number
          description: 'Letras: tasa de descuento en porcentaje'
        coupon_equivalent:
          type: number
          description: 'Letras: equivalente de cupón en porcentaje'
        dirty_price:
          type: number
          description: 'Notas y bonos: precio sucio en dólares por 100'
        clean_price:
          type: number
          description: 'Notas y bonos: precio limpio en dólares por 100'
        accrued_interest:
          type: number
          description: 'Notas y bonos: interés corrido en dólares por 100'
        par_yield:
          type: number
          description: 'Notas y bonos: par yield interpolado en porcentaje'
        prev_coupon:
          type: string
          format: date
        next_coupon:
          type: string
          format: date
        residual_days:
          type: integer
          description: Días de as_of al vencimiento
        fx_used:
          type: string
          description: Con currency en pesos
          enum:
            - ccl
            - mep
        fx_value:
          type: number
          description: Pesos por dólar
        fx_date:
          type: string
          description: Fecha del dólar usado
          format: date
    TreasuryError:
      type: object
      properties:
        type:
          type: string
          description: Tipo de error
          example: /errors/not-found
        title:
          type: string
          description: Título del error
          example: Resource not found
        status:
          type: integer
          description: Status HTTP
          example: 404
        detail:
          type: string
          description: 'Mensaje legible, en inglés. Puede cambiar: no lo parsees.'
        details:
          type: object
          properties:
            code:
              type: string
              description: Código estable del error. Es lo que distingue cada caso.
              enum:
                - invalid_id
                - invalid_date
                - invalid_type
                - invalid_include
                - invalid_parameter
                - invalid_curve
                - invalid_tenor
                - invalid_spread
                - invalid_range
                - invalid_currency
                - missing_parameter
                - invalid_input
                - invalid_value
                - invalid_settlement_entry
                - invalid_fx_value
                - no_rates_on_or_before
                - no_rates
                - no_fx
                - did_not_converge
                - not_in_catalog
                - excluded_strips
                - excluded_tips
                - excluded_frn
                - excluded_other
                - matured
                - not_issued
            isin:
              type: string
              description: ISIN del título, en los 404 y en did_not_converge
            maturity_date:
              type: string
              description: Vencimiento, en matured
              format: date
            issue_date:
              type: string
              description: Emisión, en not_issued
              format: date
            first_rate_date:
              type: string
              description: Primera fecha con tasas, en no_rates_on_or_before y no_rates
              format: date
            fx_used:
              type: string
              description: ccl o mep, en no_fx
          required:
            - code
          description: Solo en los errores del dominio (404 y 422 de Treasuries)
      required:
        - type
        - title
        - status
        - detail
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.