---
title: "Discount-points buydown breakeven"
method: POST
path: "/v1/mortgage/points"
tags: ["Utilities"]
---

# Discount-points buydown breakeven

`POST /v1/mortgage/points`

## Request

- Base URL: `https://api.numeratica.com`
- URL: `https://api.numeratica.com/v1/mortgage/points`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Should you pay discount points to buy down the mortgage rate? Compares the base-rate payment to the bought-down payment and reports the points cost (each point = 1% of the loan), the monthly saving, the months to recoup that cost (the breakeven), and the net saving if the loan is held to term. Deterministic; not lending advice.

## Request body

- PointsRequest
  - `loan_amount` number, required
  - `term_months` integer: Omit for 360.
  - `base_rate` number, required: Annual APR with no points.
  - `buydown_rate` number, required: Annual APR after buying points (≤ base_rate).
  - `points` number, required: Number of discount points; each = 1% of the loan.

## Response `200`

The points analysis

- PointsResponse
  - `result_id` string
  - `engine_version` string
  - `inputs` PointsRequest
    - `loan_amount` number, required
    - `term_months` integer: Omit for 360.
    - `base_rate` number, required: Annual APR with no points.
    - `buydown_rate` number, required: Annual APR after buying points (≤ base_rate).
    - `points` number, required: Number of discount points; each = 1% of the loan.
  - `result` object
    - `points_cost` number: points × 1% × loan.
    - `base_payment` number: Monthly P&I at the base rate.
    - `buydown_payment` number: Monthly P&I at the bought-down rate.
    - `monthly_savings` number: base − buydown.
    - `breakeven_months` integer: Months to recoup the points cost (0 if never).
    - `worthwhile` boolean: There is a positive monthly saving.
    - `net_savings_full_term` number: saving × term − points cost (if held to term).
  - `disclaimer` string

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key.
- `405`: Method not allowed
- `429`: The key's per-minute request budget is exceeded. Retry after the delay in the Retry-After header.
- `503`: A dependency (e.g. the key store) is temporarily unavailable, or the request exceeded its compute deadline. Retryable.

---

[API](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api.md) · [All operations](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/llms.txt) · [OpenAPI document](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/revisions/075bcfbd1ebf?raw)
