> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.fortresstech.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.fortresstech.io/_mcp/server.

# Read Deduction

GET https://api.fortresstech.io/v1/deductions/{deductionId}

Info for a specific deduction


Reference: https://developer.fortresstech.io/api-reference/deductions/read-deduction

## Authentication

- `x-api-key` header (required) — API Key authentication via header

## Request

### Path parameters

- `deductionId` (string, required) — The id of the deduction

## Response

### 200

Expected response to a valid request

- `type` (enum, optional) — The deduction category. CHILDCARE_FOR_WORK: childcare that lets a household member work. CHILDCARE_FOR_SCHOOL: childcare that lets a household member attend school or look for work. MEDICAL: out-of-pocket medical expenses. DISABILITY: out-of-pocket disability assistance expenses.
  - Allowed values: `CHILDCARE_FOR_WORK`, `CHILDCARE_FOR_SCHOOL`, `MEDICAL`, `DISABILITY`
- `annualAmount` (double, optional) — Annual amount of the expense, in USD
- `id` (string, optional) — Fortress replaces a certification's deduction records each time they are saved, so this id changes on every edit and no field identifies one entry across edits (a member can have several entries of the same type). Do not store it: re-read a certification's deductions by `certificationId` and add up `annualAmount` per `applicantId` and `type`.
- `readableId` (string, optional)
- `idempotencyId` (string, optional)
- `createdAt` (datetime, optional)
- `updatedAt` (datetime, optional)
- `deletedAt` (datetime, optional)
- `applicantId` (string, optional) — The household member the deduction belongs to: the id of the member's applicant record on the application, set for adults and minors alike. This is not the same value as `applicantId` on applications, which holds the head of household's customer id.
- `customerId` (string, optional) — The customer id of the household member. Set for adults only; null for minors, who have no customer record.
- `householdId` (string, optional)
- `applicationId` (string, optional)
- `certificationId` (string, optional) — The certification the deduction was recorded on
- `propertyId` (string, optional)
- `organizationId` (string, optional)
- `customer` (customers_components-schemas-Base, optional)
- `household` (households_components-schemas-Base, optional)
- `application` (applications_components-schemas-Base, optional)
- `certification` (certifications_components-schemas-Base, optional)
- `property` (properties_components-schemas-Base, optional)

## Types

### customers_components-schemas-Base

- `firstName` (string, optional)
- `middleName` (string, optional)
- `lastName` (string, optional)
- `preferredName` (string, optional)
- `suffix` (string, optional)
- `birthDate` (date, optional)
- `status` (enum, optional)
  - Allowed values: `APPLICANT`, `RESIDENT`, `PRIOR`
- `email` (string, optional)
- `phone` (string, optional)
- `gender` (string, optional)
- `headOfHousehold` (boolean, optional) — Indicates whether the customer is the head of household
- `relationship` (enum, optional) — Relationship of the customer to the head of household (null for head of household)
  - Allowed values: `PARTNER`, `PARENT`, `ADULT_CHILD`, `ROOMMATE`, `CHILD`, `GUARANTOR`, `OTHER`
- `passportNumberLastFour` (string, optional, nullable) — Last 4 characters of the passport number, spaces and dashes removed. null when no passport number is on file or it has 4 characters or fewer. The full number is never returned.
- `passportCountry` (string, optional, nullable) — Name of the country that issued the passport (for example "United States"). null when no passport country is on file.
- `alienRegistrationNumberLastFour` (string, optional, nullable) — Last 4 characters of the alien registration number (A-Number), spaces and dashes removed. null when no number is on file or it has 4 characters or fewer. The full number is never returned.
- `citizenshipStatus` (string, optional, nullable) — HUD member citizenship code from the affordable certification: EC (citizen or national), EN (non-citizen with eligible immigration status), IC (ineligible non-citizen child of head or spouse), IN (ineligible non-citizen), IP (ineligible parent of head or spouse), ND (no documentation submitted), PV (eligibility pending verification), XX (not a family member, for example a foster). Only records on certifications that are not deleted count; when the applicant has more than one, the most recently updated one is used. null when none is recorded.
- `maritalStatus` (string, optional, nullable) — Marital status from the rental application as stored, for example single, married, divorced, separated or widowed. null when not answered.
- `spouseName` (string, optional, nullable) — Spouse full name from the rental application (first, middle and last name). null when no spouse is recorded.
- `studentType` (string, optional, nullable) — Student type code from the rental application: f_tK_12 (full-time, kindergarten to grade 12), f_tPost12 (full-time, after grade 12) or p_t (part-time); a few older applications hold free text such as Full-time or Part-Time. Returned as stored, even when the application does not mark the customer as a student. null when the answer is not a student (n_s, Not a student or No es estudiante) or the question was not answered.
- `currentAddressStreet` (string, optional, nullable) — First street line of the current address the customer gave on the rental application. null when no current address is on file or the line is blank.
- `currentAddressStreet2` (string, optional, nullable) — Second street line (apartment, suite, unit) of the current address from the rental application. null when blank or no current address is on file.
- `currentAddressCity` (string, optional, nullable) — City of the current address from the rental application. null when blank or no current address is on file.
- `currentAddressState` (string, optional, nullable) — Two-letter state or territory code of the current address from the rental application (for example "NY"). null when no state is on file or the stored value is not a known state or territory code.
- `currentAddressZipCode` (string, optional, nullable) — ZIP code of the current address from the rental application, as entered. null when blank or no current address is on file.
- `lenderName` (string, optional, nullable) — Name of the landlord or mortgage lender for the current address, as entered on the rental application. null when blank or no current address is on file.
- `id` (string, optional)
- `readableId` (string, optional)
- `idempotencyId` (string, optional)
- `createdAt` (datetime, optional)
- `updatedAt` (datetime, optional)
- `deletedAt` (datetime, optional)
- `householdId` (string, optional)
- `propertyId` (string, optional)
- `organizationId` (string, optional)

### households_components-schemas-Base

- `status` (enum, optional)
  - Allowed values: `APPLICANT`, `RESIDENT`, `PRIOR`
- `isUnderEviction` (boolean, optional)
- `id` (string, optional)
- `readableId` (string, optional)
- `idempotencyId` (string, optional)
- `createdAt` (datetime, optional)
- `updatedAt` (datetime, optional)
- `deletedAt` (datetime, optional)
- `currentUnitId` (string, optional) — Current unit the household is associated with. Set only when the lease is active
- `currentLeaseId` (string, optional) — Current active lease for the household.
- `applicationId` (string, optional)
- `organizationId` (string, optional)
- `propertyId` (string, optional)
- `currentCertificationId` (string, optional)
- `prospectId` (string, optional)
- `primaryCustomerId` (string, optional)
- `totalActiveRentAmount` (double, optional) — Sum of all active RENT monthly lease transactions for the household
- `totalActiveSubsidyAmount` (double, optional) — Sum of all active SUBRENT monthly lease transactions for the household
- `totalActiveFeesAmount` (double, optional) — Sum of all active non-optional fee (charge) monthly lease transactions for the household
- `unitId` (string, optional, deprecated) — Deprecated, use currentUnitId instead

### applications_components-schemas-Base

- `notes` (string, optional)
- `status` (enum, optional)
  - Allowed values: `APPROVED`, `IN_PROCESS`, `DENIED`, `WAITLIST`, `CANCELED`, `ABANDONED`
- `submittedAt` (datetime, optional)
- `id` (string, optional)
- `readableId` (string, optional)
- `idempotencyId` (string, optional)
- `createdAt` (datetime, optional)
- `updatedAt` (datetime, optional)
- `deletedAt` (datetime, optional)
- `primaryFormCompletedAt` (datetime, optional) — Timestamp of the last completed primary form for any applicant.
- `secondaryFormCompletedAt` (datetime, optional) — Timestamp of the last completed secondary form for any applicant.
- `assignedUserId` (string, optional)
- `assignedUnitId` (string, optional)
- `householdId` (string, optional)
- `leaseId` (string, optional)
- `applicantId` (string, optional)
- `organizationId` (string, optional)
- `propertyId` (string, optional)

### certifications_components-schemas-Base

- `reviewStatus` (enum, optional) — The review status of the certification
  - Allowed values: `APPROVED`, `DENIED`, `APPROVED_PENDING_SIGNATURES`, `HOUSEHOLD_ON_NOTICE_HOLD`, `PENDING`, `CORRECTION_NEEDED`, `CORRECTION_NEEDED_FINAL_PACKET`, `PENDING_FINAL_APPROVAL`
- `effectiveDate` (date, optional) — The date when the certification becomes effective
- `anticipatedDate` (date, optional) — The anticipated date for the certification, if applicable
- `nextRecertificationDate` (date, optional) — The next date for recertification, if applicable
- `contractNumber` (string, optional) — HUD contract number tied to the certification floor plan
- `type` (enum, optional) — Type of certification according to their respective affordable program
  - Allowed values: `MOVE_IN`, `INITIAL`, `RECERT`, `INTERIM`, `TERMINATION`, `MOVE_OUT`, `GROSS_RENT`, `CO_TENANT_TO_TENANT`, `EVICTION`, `INITIATE_ABSENCE`, `MODIFY`, `TERMINATE_ABSENCE`, `ASSIGN_REMOVE_RA`, `VACATE`, `UNIT_TRANSFER`, `RECERT_UT`, `INTERIM_UT`, `INITIAL_UT`
- `certificationType` (string, optional) — Raw certification type as stored on the certification (e.g. RECERT, GROSS_RENT, MI, IR, AR)
- `currentStatus` (string, optional) — Current status of the certification
- `program` (string, optional) — Affordable program name of the certification (e.g. HUD, Tax Credit, Rural Development)
- `tenantName` (string, optional) — Head of household name on the certification
- `unitNumber` (string, optional) — Unit number on the certification
- `dueDate` (date, optional) — Recertification due date for the certification
- `completionDate` (datetime, optional) — Date the certification was completed
- `subsidyType` (enum, optional) — Type of subsidy for the certification
  - Allowed values: `BMR_235`, `BMR_236`, `SECTION_8`
- `secondarySubsidyType` (string, optional) — Secondary HUD subsidy type configured on the property
- `tenantPaymentAmount` (double, optional) — The amount the tenant is required to pay, in USD
- `assistancePaymentAmount` (double, optional) — The amount of assistance payment, in USD
- `utilityAllowanceAmount` (double, optional) — The utility allowance amount, in USD
- `marketRentAmount` (double, optional) — The market rent amount, in USD
- `grossRentAmount` (double, optional) — The gross rent amount, in USD
- `contractRentAmount` (double, optional) — The contract rent amount, in USD
- `maxRentAmount` (double, optional) — Maximum allowable rent captured at certification completion, in USD
- `maxIncomeAmount` (double, optional) — Maximum allowable household income captured at certification completion, in USD
- `ownerSignatureDate` (date, optional) — Date when the owner or agent signed the HUD 50059
- `customerSignatureDate` (date, optional) — Date when the head of household signed the HUD 50059
- `customerSignatureSuccess` (boolean, optional) — Indicates whether all required resident signatures were collected
- `eligibleHouseholdSize` (integer, optional) — Eligible household size captured on the certification
- `numEligibleMembers` (integer, optional) — Number of people in the household
- `numDependents` (integer, optional) — Number of household members classified as dependents for the certification, per HUD definition
- `uncountedHouseholdMembers` (integer, optional) — Number of adult members who reside in the unit but do not contribute financially and are not eligible for the subsidy
- `householdIncomeAmount` (double, optional) — Total annual income of the household, in USD
- `totalIncomeAmount` (double, optional) — Total annual household income on the certification, in USD
- `adjustedIncomeAmount` (double, optional) — Adjusted annual household income on the certification, in USD
- `householdAssetsAmount` (double, optional) — Total value of household assets, in USD
- `totalDeductionsAmount` (double, optional) — Total deductions amount, in USD
- `id` (string, optional)
- `readableId` (string, optional)
- `idempotencyId` (string, optional)
- `createdAt` (datetime, optional)
- `updatedAt` (datetime, optional)
- `deletedAt` (datetime, optional)
- `householdId` (string, optional)
- `unitId` (string, optional)
- `floorPlanId` (string, optional)
- `propertyId` (string, optional)
- `organizationId` (string, optional)
- `housingPolicyId` (string, optional)
- `applicationId` (string, optional) — The ID of the application associated with this certification (for INITIAL certs)

### properties_components-schemas-Base

- `name` (string, optional)
- `shortName` (string, optional)
- `email` (string, optional)
- `phone` (string, optional)
- `physicalStreetAddress1` (string, optional)
- `physicalStreetAddress2` (string, optional)
- `physicalCity` (string, optional)
- `physicalState` (string, optional)
- `physicalZip` (string, optional)
- `physicalCountry` (string, optional)
- `mailingStreetAddress1` (string, optional)
- `mailingStreetAddress2` (string, optional)
- `mailingCity` (string, optional)
- `mailingState` (string, optional)
- `mailingZip` (string, optional)
- `mailingCountry` (string, optional)
- `phoneNumber` (string, optional)
- `faxNumber` (string, optional)
- `timezone` (string, optional)
- `longitude` (double, optional)
- `latitude` (double, optional)
- `turnMoveOutDays` (integer, optional) — Number of days after move-out to calculate make ready date
- `status` (enum, optional, nullable) — Property lifecycle status. Fortress aggregates occupancy only for ACTIVE properties.
  - Allowed values: `ACTIVE`, `INACTIVE`, `PENDING`
- `propertyClass` (enum, optional, nullable) — The property's class. Null for properties with no class assigned.
  - Allowed values: `Conventional`, `Affordable`, `Mixed`
- `organizationId` (string, optional)
- `id` (string, optional)
- `readableId` (string, optional)
- `idempotencyId` (string, optional)
- `createdAt` (datetime, optional)
- `updatedAt` (datetime, optional)
- `deletedAt` (datetime, optional)
- `offboardedAt` (datetime, optional)
- `countyName` (string, optional)
- `acquisitionDate` (datetime, optional)

## Examples

**Response**

```json
{
  "type": "CHILDCARE_FOR_WORK",
  "annualAmount": 1.1,
  "id": "string",
  "readableId": "string",
  "idempotencyId": "string",
  "createdAt": "2024-01-15T09:30:00Z",
  "updatedAt": "2024-01-15T09:30:00Z",
  "deletedAt": "2024-01-15T09:30:00Z",
  "applicantId": "string",
  "customerId": "string",
  "householdId": "string",
  "applicationId": "string",
  "certificationId": "string",
  "propertyId": "string",
  "organizationId": "string",
  "customer": {
    "firstName": "string",
    "middleName": "string",
    "lastName": "string",
    "preferredName": "string",
    "suffix": "string",
    "birthDate": "2023-01-15",
    "status": "APPLICANT",
    "email": "string",
    "phone": "string",
    "gender": "string",
    "headOfHousehold": true,
    "relationship": "PARTNER",
    "passportNumberLastFour": "string",
    "passportCountry": "string",
    "alienRegistrationNumberLastFour": "string",
    "citizenshipStatus": "string",
    "maritalStatus": "string",
    "spouseName": "string",
    "studentType": "string",
    "currentAddressStreet": "string",
    "currentAddressStreet2": "string",
    "currentAddressCity": "string",
    "currentAddressState": "string",
    "currentAddressZipCode": "string",
    "lenderName": "string",
    "id": "string",
    "readableId": "string",
    "idempotencyId": "string",
    "createdAt": "2024-01-15T09:30:00Z",
    "updatedAt": "2024-01-15T09:30:00Z",
    "deletedAt": "2024-01-15T09:30:00Z",
    "householdId": "string",
    "propertyId": "string",
    "organizationId": "string"
  },
  "household": {
    "status": "APPLICANT",
    "isUnderEviction": true,
    "id": "string",
    "readableId": "string",
    "idempotencyId": "string",
    "createdAt": "2024-01-15T09:30:00Z",
    "updatedAt": "2024-01-15T09:30:00Z",
    "deletedAt": "2024-01-15T09:30:00Z",
    "currentUnitId": "string",
    "currentLeaseId": "string",
    "applicationId": "string",
    "organizationId": "string",
    "propertyId": "string",
    "currentCertificationId": "string",
    "prospectId": "string",
    "primaryCustomerId": "string",
    "totalActiveRentAmount": 1.1,
    "totalActiveSubsidyAmount": 1.1,
    "totalActiveFeesAmount": 1.1,
    "unitId": "string"
  },
  "application": {
    "notes": "string",
    "status": "APPROVED",
    "submittedAt": "2024-01-15T09:30:00Z",
    "id": "string",
    "readableId": "string",
    "idempotencyId": "string",
    "createdAt": "2024-01-15T09:30:00Z",
    "updatedAt": "2024-01-15T09:30:00Z",
    "deletedAt": "2024-01-15T09:30:00Z",
    "primaryFormCompletedAt": "2024-01-15T09:30:00Z",
    "secondaryFormCompletedAt": "2024-01-15T09:30:00Z",
    "assignedUserId": "string",
    "assignedUnitId": "string",
    "householdId": "string",
    "leaseId": "string",
    "applicantId": "string",
    "organizationId": "string",
    "propertyId": "string"
  },
  "certification": {
    "reviewStatus": "APPROVED",
    "effectiveDate": "2023-01-15",
    "anticipatedDate": "2023-01-15",
    "nextRecertificationDate": "2023-01-15",
    "contractNumber": "string",
    "type": "MOVE_IN",
    "certificationType": "string",
    "currentStatus": "string",
    "program": "string",
    "tenantName": "string",
    "unitNumber": "string",
    "dueDate": "2023-01-15",
    "completionDate": "2024-01-15T09:30:00Z",
    "subsidyType": "BMR_235",
    "secondarySubsidyType": "string",
    "tenantPaymentAmount": 1.1,
    "assistancePaymentAmount": 1.1,
    "utilityAllowanceAmount": 1.1,
    "marketRentAmount": 1.1,
    "grossRentAmount": 1.1,
    "contractRentAmount": 1.1,
    "maxRentAmount": 1.1,
    "maxIncomeAmount": 1.1,
    "ownerSignatureDate": "2023-01-15",
    "customerSignatureDate": "2023-01-15",
    "customerSignatureSuccess": true,
    "eligibleHouseholdSize": 1,
    "numEligibleMembers": 1,
    "numDependents": 1,
    "uncountedHouseholdMembers": 1,
    "householdIncomeAmount": 1.1,
    "totalIncomeAmount": 1.1,
    "adjustedIncomeAmount": 1.1,
    "householdAssetsAmount": 1.1,
    "totalDeductionsAmount": 1.1,
    "id": "string",
    "readableId": "string",
    "idempotencyId": "string",
    "createdAt": "2024-01-15T09:30:00Z",
    "updatedAt": "2024-01-15T09:30:00Z",
    "deletedAt": "2024-01-15T09:30:00Z",
    "householdId": "string",
    "unitId": "string",
    "floorPlanId": "string",
    "propertyId": "string",
    "organizationId": "string",
    "housingPolicyId": "string",
    "applicationId": "string"
  },
  "property": {
    "name": "string",
    "shortName": "string",
    "email": "string",
    "phone": "string",
    "physicalStreetAddress1": "string",
    "physicalStreetAddress2": "string",
    "physicalCity": "string",
    "physicalState": "string",
    "physicalZip": "string",
    "physicalCountry": "string",
    "mailingStreetAddress1": "string",
    "mailingStreetAddress2": "string",
    "mailingCity": "string",
    "mailingState": "string",
    "mailingZip": "string",
    "mailingCountry": "string",
    "phoneNumber": "string",
    "faxNumber": "string",
    "timezone": "string",
    "longitude": 1.1,
    "latitude": 1.1,
    "turnMoveOutDays": 1,
    "status": "ACTIVE",
    "propertyClass": "Conventional",
    "organizationId": "string",
    "id": "string",
    "readableId": "string",
    "idempotencyId": "string",
    "createdAt": "2024-01-15T09:30:00Z",
    "updatedAt": "2024-01-15T09:30:00Z",
    "deletedAt": "2024-01-15T09:30:00Z",
    "offboardedAt": "2024-01-15T09:30:00Z",
    "countyName": "string",
    "acquisitionDate": "2024-01-15T09:30:00Z"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.fortresstech.io/v1/deductions/deductionId"

headers = {"x-api-key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.fortresstech.io/v1/deductions/deductionId';
const options = {method: 'GET', headers: {'x-api-key': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.fortresstech.io/v1/deductions/deductionId"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-api-key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.fortresstech.io/v1/deductions/deductionId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.fortresstech.io/v1/deductions/deductionId")
  .header("x-api-key", "<apiKey>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.fortresstech.io/v1/deductions/deductionId', [
  'headers' => [
    'x-api-key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.fortresstech.io/v1/deductions/deductionId");
var request = new RestRequest(Method.GET);
request.AddHeader("x-api-key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["x-api-key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.fortresstech.io/v1/deductions/deductionId")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```