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

# Update lease

PUT https://api.propexo.com/v1/leases/{lease_id}
Content-Type: application/json

Update a lease for an integration.

Reference: https://docs.propexo.com/api-reference/pms-generic-ap-is/leases/update-lease

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://api.propexo.com` (Production, default)
- `https://api.sandbox.propexo.com` (Sandbox)

## Request

### Path parameters

- `lease_id` (string, required) — The ID of the resource.

### Body (application/json)

This endpoint expects a _v1_leases_{lease_id}_put_input.

- `unit_id` (string, optional) — The Propexo unique identifier for the unit
- `type` (enum, optional) — The type associated with the lease
  - Allowed values: `Fixed`, `FixedWithRollover`, `AtWill`
- `start_date` (V1LeasesLeaseIdPutInputStartDate, optional) — The start date associated with the applicant
- `end_date` (V1LeasesLeaseIdPutInputEndDate, optional) — The end date associated with the applicant
- `is_eviction_pending` (boolean, optional, default: false) — Whether the lease has an eviction pending
- `automatically_move_out_residents` (boolean, optional, default: false) — Whether residents should be set to "past" status automatically at the expiration of the lease
- `property_id` (string, optional) — The Propexo unique identifier for the property
- `resident_id` (string, optional) — The Propexo unique identifier for the resident
- `scheduled_move_in_date` (string, optional) — The move-in date associated with the lease
- `first_name` (string, optional) — The first name associated with the applicant
- `last_name` (string, optional) — The last name associated with the applicant
- `address_1` (string, optional) — The first address line associated with the applicant
- `address_2` (string, optional) — The second address line associated with the resident
- `city` (string, optional) — The city associated with the applicant
- `state` (string, optional) — The state associated with the applicant
- `zip` (string, optional) — The zip code associated with the applicant
- `email_1` (string, optional) — The primary email address associated with the applicant
- `phone_1` (string, optional) — Primary phone number associated with the applicant
- `date_of_birth` (V1LeasesLeaseIdPutInputDateOfBirth, optional) — The date of birth associated with the applicant
- `primary_contact_id` (string, optional) — The Propexo unique identifier of the primary contact. This must either be a lead, applicant, or resident in Propexo
- `tenants` (list of V1LeasesLeaseIdPutInputTenantsItems, optional) — An array of Propexo lead, applicant, or resident IDs. This must also include the primary contact ID
- `scheduled_move_out_date` (V1LeasesLeaseIdPutInputScheduledMoveOutDate, optional) — The scheduled move-out date associated with the lease
- `status` (enum, optional) — The status associated with the applicant
  - Allowed values: `PENDING`, `APPROVED`, `CANCELED`, `DENIED`, `SIGNED`
- `tenant_ids` (list of string, optional) — An array of Propexo lead, applicant, or resident IDs. This must also include the primary contact ID
- `move_in_date` (V1LeasesLeaseIdPutInputMoveInDate, optional) — The desired move-in date to the unit listed in the application
- `move_out_date` (V1LeasesLeaseIdPutInputMoveOutDate, optional) — The desired move-out date to the unit listed in the application
- `rent_amount_in_cents` (integer, optional) — The rent amount in cents for the lease
- `notes` (string, optional) — Notes associated with the applicant
- `signature_date` (V1LeasesLeaseIdPutInputSignatureDate, optional) — The signature date of the lease
- `deposit_amount_in_cents` (integer, optional) — The deposit amount in cents associated with the lease
- `deposit_charge_date` (V1LeasesLeaseIdPutInputDepositChargeDate, optional) — The deposit date associated with the lease
- `realized_move_in_date` (string, optional) — The move-in date associated with the lease
- `realized_move_out_date` (string, optional) — The move-out date associated with the lease
- `applicant_id` (string, optional) — The Propexo unique identifier for the applicant
- `application_date` (V1LeasesLeaseIdPutInputApplicationDate, optional) — The application date associated with the applicant
- `phone_1_type` (enum, optional) — Type of the primary phone number
  - Allowed values: `FAX`, `HOME`, `MOBILE`, `WORK`
- `phone_2` (string, optional) — Secondary phone number associated with the applicant
- `phone_2_type` (enum, optional) — Type of the secondary phone number
  - Allowed values: `FAX`, `HOME`, `MOBILE`, `WORK`
- `rent_amount_market_in_cents` (integer, optional) — The market rent amount in cents for the lease
- `middle_name` (string, optional) — The middle name associated with the applicant
- `maiden_name` (string, optional) — The maiden name associated with the applicant
- `desired_lease_term_in_months` (string, optional) — The desired lease term in months of the applicant
- `is_evicted` (boolean, optional) — Whether the applicant has been evicted
- `is_felony` (boolean, optional) — Whether the applicant has a felony
- `is_criminal_charge` (boolean, optional) — Whether the applicant has a criminal charge
- `eviction_description` (string, optional) — The description of the eviction
- `felony_description` (string, optional) — The description of the felony
- `criminal_charge_description` (string, optional) — The description of the criminal charge
- `marital_status` (enum, optional) — The marital status of the applicant
  - Allowed values: `SINGLE`, `MARRIED`
- `identification_number` (string, optional) — The social security number of the applicant
- `drivers_license_number` (string, optional) — The driver's license number of the applicant
- `address_history` (list of V1LeasesLeaseIdPutInputAddressHistoryItems, optional) — The address history of the applicant
- `emergency_contacts` (list of V1LeasesLeaseIdPutInputEmergencyContactsItems, optional) — A list of emergency contacts for the applicant
- `employment_history` (list of V1LeasesLeaseIdPutInputEmploymentHistoryItems, optional) — The employment history of the applicant
- `other_income` (list of V1LeasesLeaseIdPutInputOtherIncomeItems, optional) — A list of other income sources for the applicant
- `vehicles` (list of V1LeasesLeaseIdPutInputVehiclesItems, optional) — A list of vehicles for the application
- `pets` (list of V1LeasesLeaseIdPutInputPetsItems, optional) — A list of applicant pets
- `concession_fees` (list of V1LeasesLeaseIdPutInputConcessionFeesItems, optional) — A list of concession fees for the application
- `application_fees` (list of V1LeasesLeaseIdPutInputApplicationFeesItems, optional) — A list of application fees for the application
- `other_occupants` (list of V1LeasesLeaseIdPutInputOtherOccupantsItems, optional) — A list of other occupants for the application

## Response

### 200

Successful response

- `job_id` (string, required) — The ID of the job created to handle this operation
- `data` (V1LeasesLeaseIdPutOutputData, required)

## Errors

### 400 Bad Request Error

Bad Request

- `error` (ErrorResponseError, required)

## Types

### V1LeasesLeaseIdPutInputStartDate

The start date associated with the applicant

### V1LeasesLeaseIdPutInputEndDate

The end date associated with the applicant

### V1LeasesLeaseIdPutInputDateOfBirth

The date of birth associated with the applicant

### V1LeasesLeaseIdPutInputTenantsItems

- `id` (string, required) — The Propexo unique identifier for the lead, applicant, or resident

### V1LeasesLeaseIdPutInputScheduledMoveOutDate

The scheduled move-out date associated with the lease

### V1LeasesLeaseIdPutInputMoveInDate

The desired move-in date to the unit listed in the application

### V1LeasesLeaseIdPutInputMoveOutDate

The desired move-out date to the unit listed in the application

### V1LeasesLeaseIdPutInputSignatureDate

The signature date of the lease

### V1LeasesLeaseIdPutInputDepositChargeDate

The deposit date associated with the lease

### V1LeasesLeaseIdPutInputApplicationDate

The application date associated with the applicant

### V1LeasesLeaseIdPutInputAddressHistoryItems

- `address_1` (string, required) — The first address line associated with the applicant's historical address
- `city` (string, required) — The city associated with the applicant's historical address
- `state` (enum, required) — The state associated with the applicant
  - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `NE`, `NL`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `SD`, `TN`, `TX`, `UT`, `VA`, `VI`, `VT`, `WA`, `WI`, `WV`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NT`, `NS`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT`
- `zip` (string, required) — The zip code associated with the applicant's historical address
- `notice_provided` (boolean, required) — Whether notice has been given to the applicant's historical address
- `move_in_date` (V1LeasesLeaseIdPutInputAddressHistoryItemsMoveInDate, required) — The date when the applicant moved into their historical address
- `country` (enum, optional) — The country associated with the applicant's historical address. If your application needs to support submitting an applicant who resides in another country, please reach out to Propexo Support for help
  - Allowed values: `US`, `CA`
- `property_name` (string, optional) — The property name of the applicant's historical address
- `reason_for_leaving` (string, optional) — The reason the applicant left their historical address
- `monthly_payment_in_cents` (integer, optional) — For the applicant's historical address, the applicant's monthly payment for rent or mortgage in cents
- `move_out_date` (V1LeasesLeaseIdPutInputAddressHistoryItemsMoveOutDate, optional) — The date when the applicant moved out of their historical address. If this is the applicant's current address, omit this field
- `manager_phone` (string, optional) — The phone number of a property manager who works at this address
- `manager_email` (string, optional) — The email of a property manager who works at this address
- `management_company` (string, optional) — The name of the company who owns the property at this address

### V1LeasesLeaseIdPutInputEmergencyContactsItems

- `first_name` (string, required) — The first name of the emergency contact
- `last_name` (string, required) — The last name of the emergency contact
- `relationship` (enum, required) — The relationship of the emergency contact to the applicant
  - Allowed values: `DAUGHTER`, `FRIEND`, `HUSBAND`, `SON`, `WIFE`, `OTHER`
- `address_1` (string, optional) — The first line of the address of the emergency contact
- `city` (string, optional) — The city of the address of the emergency contact
- `state` (enum, optional) — The state of the address of the emergency contact
  - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `NE`, `NL`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `SD`, `TN`, `TX`, `UT`, `VA`, `VI`, `VT`, `WA`, `WI`, `WV`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NT`, `NS`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT`
- `zip` (string, optional) — The zip code of the address of the emergency contact
- `country` (enum, optional) — The country of the address of the emergency contact. If your application needs to support submitting an applicant who resides in another country, please reach out to Propexo Support for help
  - Allowed values: `US`, `CA`
- `phone_1` (string, optional) — The phone number of the emergency contact

### V1LeasesLeaseIdPutInputEmploymentHistoryItems

- `is_current_employer` (boolean, required) — Whether this employment history entry is for a current employer
- `name` (string, required) — The name of the employer
- `start_date` (V1LeasesLeaseIdPutInputEmploymentHistoryItemsStartDate, required) — The start date of the applicant's employment at this employer
- `monthly_income_in_cents` (integer, required) — The monthly income of the applicant at this employer in cents
- `end_date` (V1LeasesLeaseIdPutInputEmploymentHistoryItemsEndDate, optional) — The end date of the applicant's employment at this employer. Ignore this field if is_current_employer is set to true
- `address_1` (string, optional) — The first line of the address of the employer
- `city` (string, optional) — The city of the address of the employer
- `state` (enum, optional) — The state of the address of the employer
  - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `NE`, `NL`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `SD`, `TN`, `TX`, `UT`, `VA`, `VI`, `VT`, `WA`, `WI`, `WV`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NT`, `NS`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT`
- `zip` (string, optional) — The zip code of the address of the employer
- `phone` (string, optional) — The phone number of the employer
- `supervisor_first_name` (string, optional) — The first name of the applicant's supervisor at this employer
- `supervisor_last_name` (string, optional) — The last name of the applicant's supervisor at this employer
- `position` (string, optional) — The position held at this employer, or the job description of the applicant

### V1LeasesLeaseIdPutInputOtherIncomeItems

- `source` (string, required) — The source of the income for the applicant
- `monthly_income_in_cents` (integer, required) — The monthly income from this income source in cents

### V1LeasesLeaseIdPutInputVehiclesItems

- `make` (string, required) — The make of the vehicle
- `model` (string, optional) — The model of the vehicle
- `year` (integer, optional) — The year the vehicle was made
- `color` (string, optional) — The color of the vehicle
- `license_plate_number` (string, optional) — The license plate number of the vehicle
- `license_plate_state` (string, optional) — The issuing state of the license plate

### V1LeasesLeaseIdPutInputPetsItems

- `type` (string, required) — The type associated with the applicant pet
- `name` (string, optional) — The name associated with the applicant pet
- `age_in_years` (integer, optional) — The age in years of the applicant pet
- `weight_in_pounds` (integer, optional) — The weight in pounds of the applicant pet
- `breed` (string, optional) — The breed of the applicant pet
- `color` (string, optional) — The color of the applicant pet
- `gender` (string, optional) — The raw value for the gender of the applicant pet
- `is_fixed` (boolean, optional) — Whether the applicant pet is fixed
- `is_service_animal` (boolean, optional) — Whether the applicant pet is a service animal

### V1LeasesLeaseIdPutInputConcessionFeesItems

- `start_date` (V1LeasesLeaseIdPutInputConcessionFeesItemsStartDate, required) — The start date of the applicant's recurring concession fee
- `end_date` (V1LeasesLeaseIdPutInputConcessionFeesItemsEndDate, required) — The end date of the applicant's recurring concession fee
- `concession_id` (string, required) — The Propexo unique identifier for the concession. This concession must be associated with the unit that the applicant is applying for

### V1LeasesLeaseIdPutInputApplicationFeesItems

- `charge_code_id` (string, required) — The Propexo unique identifier for the charge code. This must be an application fee charge code
- `amount_in_cents` (integer, required) — The application fee amount in cents
- `description` (string, optional) — Description of the application fee

### V1LeasesLeaseIdPutInputOtherOccupantsItems

- `relationship` (enum, required) — The relationship of the occupant to the applicant
  - Allowed values: `ROOMMATE`, `SPOUSE`, `GUARANTOR`, `OTHER`
- `first_name` (string, required) — The first name associated with the occupant
- `last_name` (string, required) — The last name associated with the occupant
- `third_party_id` (string, required) — A unique ID you would like to associate with the occupant. This is not the Yardi occupant ID
- `organization_name` (string, required) — The name of your organization. Yardi uses this for associating an occupant
- `email_1` (string, optional) — The primary email address associated with the occupant
- `phone_1` (string, optional) — Primary phone number associated with the occupant
- `phone_1_type` (enum, optional) — Type of the primary phone number
  - Allowed values: `FAX`, `HOME`, `MOBILE`, `WORK`
- `phone_2` (string, optional) — Secondary phone number associated with the occupant
- `phone_2_type` (enum, optional) — Type of the secondary phone number
  - Allowed values: `FAX`, `HOME`, `MOBILE`, `WORK`
- `address_1` (string, optional) — The first address line associated with the occupant
- `city` (string, optional) — The city associated with the occupant
- `state` (enum, optional) — The state associated with the occupant
  - Allowed values: `AA`, `AE`, `AK`, `AL`, `AP`, `AR`, `AS`, `AZ`, `CA`, `CO`, `CT`, `DC`, `DE`, `FL`, `FM`, `GA`, `GU`, `HI`, `IA`, `ID`, `IN`, `KS`, `KY`, `LA`, `MA`, `MD`, `ME`, `MH`, `MI`, `MN`, `MO`, `MP`, `MS`, `MT`, `NC`, `NE`, `NL`, `NJ`, `NM`, `NV`, `NY`, `OH`, `OK`, `OR`, `PA`, `PR`, `SD`, `TN`, `TX`, `UT`, `VA`, `VI`, `VT`, `WA`, `WI`, `WV`, `WY`, `AB`, `BC`, `MB`, `NB`, `NL`, `NT`, `NS`, `NU`, `ON`, `PE`, `QC`, `SK`, `YT`
- `zip` (string, optional) — The zip code associated with the occupant

### V1LeasesLeaseIdPutOutputData

### ErrorResponseError

- `code` (string, required)
- `message` (string, required)
- `details` (map from string to any, optional)

### V1LeasesLeaseIdPutInputAddressHistoryItemsMoveInDate

The date when the applicant moved into their historical address

### V1LeasesLeaseIdPutInputAddressHistoryItemsMoveOutDate

The date when the applicant moved out of their historical address. If this is the applicant's current address, omit this field

### V1LeasesLeaseIdPutInputEmploymentHistoryItemsStartDate

The start date of the applicant's employment at this employer

### V1LeasesLeaseIdPutInputEmploymentHistoryItemsEndDate

The end date of the applicant's employment at this employer. Ignore this field if is_current_employer is set to true

### V1LeasesLeaseIdPutInputConcessionFeesItemsStartDate

The start date of the applicant's recurring concession fee

### V1LeasesLeaseIdPutInputConcessionFeesItemsEndDate

The end date of the applicant's recurring concession fee

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "job_id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
  "data": {}
}
```

**SDK Code**

```python
import requests

url = "https://api.propexo.com/v1/leases/lease_id"

payload = {}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.propexo.com/v1/leases/lease_id';
const options = {
  method: 'PUT',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{}'
};

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"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.propexo.com/v1/leases/lease_id"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	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.propexo.com/v1/leases/lease_id")

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

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"

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.put("https://api.propexo.com/v1/leases/lease_id")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('PUT', 'https://api.propexo.com/v1/leases/lease_id', [
  'body' => '{}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.propexo.com/v1/leases/lease_id");
var request = new RestRequest(Method.PUT);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.propexo.com/v1/leases/lease_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PUT"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```