---
title: "Update an existing lead"
method: PATCH
path: "/v1/{facility_id}/leads/{id}"
tags: ["api-v1-leads"]
---

# Update an existing lead

`PATCH /v1/{facility_id}/leads/{id}`

Updates an existing lead. Website lead emails are not sent on updates — they are only triggered on initial lead creation.

## Path parameters

- `facility_id` number, required
- `id` number, required

## Request body

- ApiV1LeadsControllerUpdateInput
  - `lead` object, required
    - `tenant_id` string — A tenant record to associate the lead with. Required if `tenant_attributes` are not given.
    - `tenant_attributes` object
      - `title` string
      - `first_name` string, required
      - `last_name` string
      - `middle_initial` string
      - `email` string
      - `is_military` boolean — True if the tenant record is a in the military.
      - `is_business` boolean — True if the tenant record is a commercial entity.
      - `phone_numbers_attributes` string[], required — A collection of phone numbers. At least one is required.
      - `mailing_address_attributes` object
        - `address1` string
        - `address2` string
        - `city` string
        - `state` string
        - `postal` string
        - `time_zone` string — Valid IANA timezone identifier of the address (see http://www.iana.org/time-zones)
      - `settings_attributes` object
        - `locale` string — The locale of the tenant. Must be supported by the facility.
    - `unit_id` string — The ID of the unit to reserve. Required if `is_reservation` is true.
    - `online_move_in_url` string — The URL the lead can use to complete the move in
    - `resume_url` string — A URL the prospective tenant can use to resume their online move-in. Supports the {lead_id} placeholder, replaced with the lead UUID upon saving.
    - `is_from_omi` boolean — True if the lead is created from OMI
    - `is_from_quick_to_cash` boolean — True if the lead is created from Quick to Cash OMI is_from_omi prerequisite
    - `send_gate_code` string — Whether to send gate code information to the tenant (string "true" or "false")
    - `lease_email_omi_url` string — URL for lead-related OMI email functionality
    - `lease_email_omi_text` string — Text content for lead-related OMI email
    - `payment_email_omi_text` string — Text content for payment-related OMI email
    - `payment_email_omi_url` string — URL for payment-related OMI email functionality
    - `id` string — The ID of the lead (update only).
    - `is_reservation` boolean, required — Is the lead a reservation?
    - `caller_first_name` string — First name of the caller, if different from the tenant
    - `caller_last_name` string — Last name of the caller, if different from the tenant
    - `urgent` boolean
    - `quoted_rate` string
    - `length_of_stay_id` string — The ID of the length of stay for the lead. You can get a list of length of stays from the company configuration.
    - `size` string
    - `floor` string
    - `lead_contents` string[] — A collection of marketing content.
    - `desired_move_in_date` string — Format: YYYY-MM-DD
    - `desired_unit_size_and_price` string — A String representing the size and price that the user is interested in. Get the possible options from the GET /unit_groups resource.
    - `free_truck` boolean — Interested in a free truck
    - `moving_labor` boolean — Interested in having help with moving
    - `call_source` string — Where the call was initiated from
    - `dnis` string — An identifier for the facility the lead was trying to reach - see http://en.wikipedia.org/wiki/Dialed_Number_Identification_Service
    - `close_reason_id` string — The ID of the reason for closing the lead. You can get a list of reasons from the company configuration.
    - `lead_action_performed` 'call' | 'email' | 'text' — The kind of action that was performed on the lead
    - `lead_action_performed_index` number — The numeric value for the action performed (i.e. if this was the second call a "2" would be used)
    - `next_lead_action` 'call' | 'email' | 'text' — The kind of follow up action that will be performed
    - `notes_attributes` string[] — A collection of notes.
    - `caller_phone_number_attributes` object, required
      - `number` string, required — Phone number
      - `extension` string — Phone number extension
      - `label` string — A label for what the phone number is, such as Home, Work, Mobile, etc.
    - `rate_type` string — The type of rate for the unit (ie. `standard_rate`, `managed_rate`, `custom_rate`, `tiered_rate`, or `channel_rate`).
    - `discount_plans` string[] — Must be an array of nested discount plan ids
    - `payment_method` object, required
      - `payment_method_id` string — If you want to use an existing payment method, pass in the id
      - `first_name` string — Required if not using an existing payment method
      - `last_name` string — Required if not using an existing payment method
      - `kind` 'ach' | 'credit_card' | 'check' | 'cash' | 'card_swipe' | 'payment_hold' — Required if not using an existing payment method
      - `usage_type` 'moto' | 'customerInitiated' | 'softwareInitiated' — Required for StoPay (Stripe), needs to represent the modality of the transaction
      - `reuseable` boolean
      - `magnetic_track` string — Required if using a card swipe
      - `card_number` string — Required if using a credit card
      - `card_type` 'visa' | 'mastercard' | 'american_express' | 'diners' | 'discover' | 'jcb' | 'interac' — Required if using a credit card
      - `security_code` string — Required if using a credit card
      - `expiration_date` string — Required if using a credit card. Format: MM/YY
      - `account_number` string — Required if using ACH
      - `account_number_confirmation` string — Required if using ACH
      - `account_type` string — Required if using ACH
      - `bank_name` string — Required if using ACH
      - `routing_number` string — Required if using ACH
      - `billing_address_attributes` object
        - `company` string
        - `address1` string
        - `address2` string
        - `city` string
        - `postal` string
        - `state` string
      - `check_number` string — Required if using Check
      - `name_on_check` string — Required if using Check
      - `check_amount` string — Required if using Check
      - `reference_number` string — Required if using Money Order
      - `money_order_amount` string — Required if using Money Order
      - `amount_tendered` string — Required if using Cash
      - `payment_intent_id` string — Required if using payment_hold. The id returned by the authorize_funds endpoint
      - `ip_address` string — Required if using ACH via Storable Payments
      - `user_agent` string — Required if using ACH via Storable Payments

## Response `200`

ok

---

[API](https://skmtc.dev/storedgefms/apis/storable-edge-api-params-in-body.md) · [All operations](https://skmtc.dev/storedgefms/apis/storable-edge-api-params-in-body/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/storedgefms/storable-edge-api-params-in-body/revisions/50fea30c1954/schema)
