Discussion

There are two actions on this controller, review_cost and process_move_in

review_cost is used to generate the cost of a move in when given the unit ID of a vacant, rentable unit (OR a lead ID with a reserved unit).
* Review cost will NOT save any information passed in to it. Providing tenant information with the hopes of updating it will not work.
* Review cost will also return a session_id and a list of Event Documents, each with their own session_document_id
* These IDs are to be used with the /documents/:session_document_id/session/:session_id endpoint to retrieve the documents associated with the move in event returned
* The session information returned will expire 24 hours after it is created, and any attempt to retrieve documents after 24 hours with those IDs will fail
* If no tenant or lead ID's are provided, a random tenant will be generated and reflected on any documents as "Fake Name". If you plan to use the documents generated from review_cost it is recommended you provide valid tenant information.
process_move_in is used to perform the move in, and can be given either:
* A tenant id and a unit id
* A tenant hash (used to create a new tenant) and a unit id
* A lead id (with an associated tenant) and a unit id
* A lead id (with an associated tenant AND reserved unit)
* The session_id that was returned from review_cost can be passed in, and will ensure the lease_number that was reserved during review_cost is used

A gate access code will be required, unless the tenant (or lead) has an existing gate code from a previous ledger.

Both review_cost and process_move_in can also accept an insurance ID, service IDs, and a specified invoice period


GET /v1/:facility_id/move_ins
Collection of all current move ins for the current facility that have not been completed or cancelled

Examples

GET /v1/ca746d9f-cfbb-4c08-a427-ddb75f947b00/move_ins
200
{
  "move_ins": [
    {
      "id": "ce7ba633-e69c-40c7-a24a-35c93b149bd9",
      "invoice_period": "monthly",
      "unit_name": "U12",
      "unit_id": "c9b7e377-04a4-40f8-b734-21a6efb104ab",
      "unit_combination_lock_number": null,
      "unit_overlock_lock_number": null,
      "tenant_name": "Raymond36 Quigley",
      "tenant_id": "d8954ad2-ef48-45d0-9104-93e606e94501",
      "tenant_military_information": null,
      "ledger_id": "9c0b7870-6b41-4f92-b0e8-914828e8488b",
      "esign_url": null,
      "rate_type": null,
      "channel_rate_id": null,
      "discount_plan_ids": [],
      "storage_items": [],
      "storing_vehicle": null,
      "gate_access_code": "140538",
      "first_month_rent_subtotal": null,
      "lock_subtotal": 0,
      "move_in_subtotal": 0,
      "move_in_taxes_total": 0,
      "move_in_total": 0,
      "invoice_line_items": [],
      "successful_payment_events": []
    },
    {
      "id": "b11d75ef-5c7e-4c0d-a21e-5853509d8cbb",
      "invoice_period": "monthly",
      "unit_name": "U13",
      "unit_id": "8aef0e3d-6554-4514-ac53-20dce6190e92",
      "unit_combination_lock_number": null,
      "unit_overlock_lock_number": null,
      "tenant_name": "Javier38 Quigley",
      "tenant_id": "91b8efa5-dbc7-4937-aacf-99b7747d8de6",
      "tenant_military_information": null,
      "ledger_id": "d78ff8c3-ebef-4ff8-827f-e8b09bb65b5d",
      "esign_url": null,
      "rate_type": null,
      "channel_rate_id": null,
      "discount_plan_ids": [],
      "storage_items": [],
      "storing_vehicle": null,
      "gate_access_code": "248039",
      "first_month_rent_subtotal": null,
      "lock_subtotal": 0,
      "move_in_subtotal": 0,
      "move_in_taxes_total": 0,
      "move_in_total": 0,
      "invoice_line_items": [],
      "successful_payment_events": []
    }
  ],
  "meta": {
    "pagination": {
      "current_page": 1,
      "total_pages": 1,
      "per_page": 100,
      "total_entries": 2,
      "previous_page": null,
      "next_page": null
    },
    "status_code": 200,
    "status_message": "OK",
    "status_cat": "https://http.cat/200",
    "request_method": "GET",
    "request_id": null,
    "parameters": {
      "facility_id": "ca746d9f-cfbb-4c08-a427-ddb75f947b00",
      "move_in": {}
    }
  }
}

GET /v1/:facility_id/move_ins/:id
Returns a move in event

Params

Param name Description
id
required

Validations:

  • Must be a String

Examples

// Successful Fetch
GET /v1/1de3303b-ab51-4959-adbf-1d13c322b8e9/move_ins/AnIdThatDoesNotExist!
404
{
  "meta": {
    "message": "Move in event with id AnIdThatDoesNotExist! not found",
    "status_code": 404,
    "docs": "http://test.host/docs/v1",
    "error_code": 9,
    "error_hash": {},
    "status_message": "Not Found",
    "status_cat": "https://http.cat/404",
    "request_method": "GET",
    "request_id": null,
    "parameters": {
      "facility_id": "1de3303b-ab51-4959-adbf-1d13c322b8e9",
      "id": "AnIdThatDoesNotExist!",
      "move_in": {}
    }
  }
}

POST /v1/:facility_id/move_ins/review_cost
Review the cost of moving into a unit

Params

Param name Description
move_in
required

Validations:

  • Must be a Hash

move_in[should_generate_documents]
optional

Defaults to true if not passed. Determines whether documents will be generated along with the review cost call or not. Must be passed as true at least once before the move-in is processed.

Validations:

  • Must be one of: true, false, 1, 0.

move_in[lead_id]
optional

Provide an existing lead id if one exists

Validations:

  • Must be a String

move_in[unit_id]
required

The desired unit ID

Validations:

  • Must be a String

move_in[move_in_date]
optional

The desired move-in date. Defaults to the facility's current date if not provided

Validations:

  • Must be a Date

move_in[tenant_id]
optional

A tenant record to associate the move-in with. Required if tenant hash or lead_id are not given.

Validations:

  • Must be a String

move_in[tenant]
optional

Validations:

  • Must be a Hash

move_in[tenant][first_name]
optional

Validations:

  • Must be a String

move_in[tenant][account_number]
optional

Validations:

  • Must be a String

move_in[tenant][middle_initial]
optional

Validations:

  • Must be a String

move_in[tenant][last_name]
optional

Validations:

  • Must be a String

move_in[tenant][drivers_license_number]
optional

Validations:

  • Must be a String

move_in[tenant][drivers_license_state]
optional

Validations:

  • Must be a String

move_in[tenant][vehicle_license_plate_number]
optional

Validations:

  • Must be a String

move_in[tenant][vehicle_license_state]
optional

Validations:

  • Must be a String

move_in[tenant][vehicle_description]
optional

Validations:

  • Must be a String

move_in[tenant][email]
optional

Validations:

  • Must be a String

move_in[tenant][username]
optional

Validations:

  • Must be a String

move_in[tenant][password]
optional

Validations:

  • Must be a String

move_in[tenant][tax_exempt]
optional

Is the tenant tax exempt?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][is_military]
optional

Is the tenant military?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][is_business]
optional

Is the tenant a business?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][business_name]
optional

Validations:

  • Must be a String

move_in[tenant][title]
optional

Validations:

  • Must be a String

move_in[tenant][decline_alternate_contact]
optional

Whether or not the tenant declined to provide alternate contact information

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][military_information]
optional

A collection of military information (if is_military is true).

Validations:

  • Must be a Hash

move_in[tenant][military_information][retired_military]
optional

Is the tenant retired military?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][military_information][no_agent_given]
optional

Is agent information provided?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][military_information][date_entered_service]
optional

Date entered service, Format: YYYY-MM-DD

Validations:

  • Must be a Date

move_in[tenant][military_information][military_id]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][end_of_active_service_date]
optional

End date of active service, Format: YYYY-MM-DD

Validations:

  • Must be a Date

move_in[tenant][military_information][place_of_birth]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][last_4_of_ssn]
optional

Must be a 4 digit number

Validations:

  • Must be a String

move_in[tenant][military_information][military_email_address]
optional

Must be a valid email address

Validations:

  • Must be a String

move_in[tenant][military_information][military_rank]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][current_duty_location]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][branch_of_service]
optional

Must be Air Force, Army, Coast Guard, Marines, Navy, National Guard, or Other

Validations:

  • Must be a String

move_in[tenant][military_information][military_unit]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][squadron]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][division]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][type_of_service]
optional

Must be Active Component, Reserve Component, or National Guard

Validations:

  • Must be a String

move_in[tenant][military_information][agent_first_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_last_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_email_address]
optional

Must be a valid email address

Validations:

  • Must be a String

move_in[tenant][military_information][agent_phone_number]
optional

Must be a valid phone number

Validations:

  • Must be a String

move_in[tenant][military_information][agent_address]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_city]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_state]
optional

Must be a valid state abbreviation

Validations:

  • Must be a String

move_in[tenant][military_information][agent_postal_code]
optional

Must be a valid US postal code

Validations:

  • Must be a String

move_in[tenant][military_information][officer_first_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][officer_last_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][officer_phone_number]
optional

Must be a valid phone number

Validations:

  • Must be a String

move_in[tenant][password_recovery_questions_attributes]
optional

Password recovery questions

Validations:

  • Must be an Array of nested elements

move_in[tenant][password_recovery_questions_attributes][question]
required

Validations:

  • Must be a String

move_in[tenant][password_recovery_questions_attributes][answer]
required

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes]
required

A collection of phone numbers.

Validations:

  • Must be an Array of nested elements

move_in[tenant][phone_numbers_attributes][number]
optional

Phone number

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][extension]
required

Phone number extension

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][label]
optional

A label for what the phone number is, such as Home, Work, Mobile, etc.

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][primary]
optional

Flag that indicates if this is the primary phone number of the tenant

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][sms_opt_in]
optional

Opt the tenant in to SMS (if applicable). Requires a "Mobile" label for SMS to work correctly.

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][mailing_address_attributes]
required

A collection of addresses.

Validations:

  • Must be a Hash

move_in[tenant][mailing_address_attributes][address1]
required

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][address2]
optional

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][city]
required

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][state]
required

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][postal]
required

Validations:

  • Must be a String

move_in[tenant][contacts_attributes]
optional

A collection of contacts.

Validations:

  • Must be an Array of nested elements

move_in[tenant][contacts_attributes][id]
optional

Contact id required to update a contact.

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][first_name]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][middle_initial]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][last_name]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][email]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][description]
required

Contact description

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][primary]
optional

Flag that indicates if this is the primary contact of the tenant

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes]
optional

A collection of phone numbers.

Validations:

  • Must be an Array of nested elements

move_in[tenant][contacts_attributes][phone_numbers_attributes][number]
optional

Phone number

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes][extension]
optional

Phone number extension

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes][label]
optional

A label for what the phone number is, such as Home, Work, Mobile, etc.

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes][primary]
optional

Flag that specifies if this is the primary phone number of the contact

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes]
optional

A collection of addresses.

Validations:

  • Must be a Hash

move_in[tenant][contacts_attributes][address_attributes][address1]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][address2]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][city]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][state]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][postal]
optional

Validations:

  • Must be a String

move_in[gate_access_code]
optional

The desired gate access code for the unit, required if tenant provided does not have a gate access code from a previous ledger or if the facility does not have the setting auto_generate_gate_code enabled.

Validations:

  • Must be a String

move_in[invoice_period]
optional

Validations:

  • Must be one of: monthly, anniversary.

move_in[insurance_id]
optional

Desired insurance ID

Validations:

  • Must be a String

move_in[services]
optional

A collection of service ids

Validations:

  • Must be an Array of nested elements

move_in[services][service_id]
optional

Validations:

  • Must be a String

move_in[invoiceable_items]
optional

A collection of additional invoiceable items purchased with move-in

Validations:

  • Must be an Array of nested elements

move_in[invoiceable_items][id]
optional

ID of invoiceable item purchased

Validations:

  • Must be a String

move_in[invoiceable_items][quantity]
optional

Quantity of invoiceable items purchased

Validations:

  • Must be a Integer

move_in[discount_plans]
optional

A collection of discount plan ids

Validations:

  • Must be an Array of nested elements

move_in[discount_plans][discount_plan_id]
optional

Validations:

  • Must be a String

move_in[tenant_signature_request_id]
optional

Signature request id

Validations:

  • Must be a String

move_in[lien_holders]
optional

A collection of lien holders

Validations:

  • Must be an Array of nested elements

move_in[lien_holders][name]
optional

Name of the lien holder

Validations:

  • Must be a String

move_in[lien_holders][address_attributes]
optional

The address of the alternate contact

Validations:

  • Must be a Hash

move_in[lien_holders][address_attributes][address1]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][address2]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][city]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][state]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][postal]
optional

Validations:

  • Must be a String

payment_method
optional

Validations:

  • Must be a Hash

payment_method[autopay_enabled]
optional

Enable autopay with this payment method (reuseable must be true). An autopay_day must also be set if facility does set autopay day to invoice day

Validations:

  • Must be one of: true, false, 1, 0.

payment_method[autopay_day]
optional

When autopay_enabled is set to 'true' you must specify an autopay day of the month between 1 and 31

Validations:

  • Must be a Integer

alternate_contact
optional

Contact to be used as the alternate contact for the tenant

Validations:

  • Must be a Hash

alternate_contact[id]
optional

The ID of the contact that will be used for the alternate contact

Validations:

  • Must be a String

alternate_contact[description]
required

Contact description

Validations:

  • Must be a String

alternate_contact[declined]
optional

Decline to use an alternate contact for the tenant

Validations:

  • Must be one of: true, false, 1, 0.

alternate_contact[first_name]
optional

Validations:

  • Must be a String

alternate_contact[middle_initial]
optional

Validations:

  • Must be a String

alternate_contact[last_name]
optional

Validations:

  • Must be a String

alternate_contact[email]
optional

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes]
optional

A collection of phone numbers.

Validations:

  • Must be an Array of nested elements

alternate_contact[phone_numbers_attributes][number]
optional

Phone number

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes][extension]
optional

Phone number extension

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes][label]
optional

A label for what the phone number is, such as Home, Work, Mobile, etc.

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes][primary]
optional

Flag that specifies if this is the primary phone number of the contact

Validations:

  • Must be a String

alternate_contact[address_attributes]
optional

The address of the alternate contact

Validations:

  • Must be a Hash

alternate_contact[address_attributes][address1]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][address2]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][city]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][state]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][postal]
optional

Validations:

  • Must be a String

Examples

POST /v1/a20c11fe-24f7-4d61-80c8-4e048ab5051a/move_ins/review_cost
{
  "move_in": {
    "unit_id": "dba3d643-b700-430b-94d7-cd8ac1e6d520",
    "invoice_period": "monthly",
    "insurance_id": "ad4eb322-f57b-4728-8e33-5ae96ff84a09",
    "discount_plans": [],
    "services": [
      {
        "service_id": "6ef24141-8aa8-440c-a496-0a3052475c63"
      },
      {
        "service_id": "915b02b8-fab4-4d5f-823c-7743b505180a"
      }
    ]
  }
}
200
{
  "move_in_unit_event": {
    "id": null,
    "invoice_period": "monthly",
    "unit_name": "U17",
    "unit_id": "dba3d643-b700-430b-94d7-cd8ac1e6d520",
    "unit_combination_lock_number": "12-31-24",
    "unit_overlock_lock_number": null,
    "tenant_name": "Sample Tenant",
    "tenant_id": null,
    "tenant_military_information": null,
    "ledger_id": null,
    "esign_url": null,
    "rate_type": "standard_rate",
    "channel_rate_id": null,
    "discount_plan_ids": [],
    "storage_items": [],
    "storing_vehicle": null,
    "gate_access_code": null,
    "first_month_rent_subtotal": 407.97,
    "lock_subtotal": 0,
    "move_in_subtotal": 430.32,
    "move_in_taxes_total": 38.35,
    "move_in_total": 468.67,
    "invoice_line_items": [
      {
        "id": null,
        "description": "Rent Unit U17 - 10x6x4",
        "quantity": 1,
        "prorated": true,
        "discount_amount": null,
        "single_item_price": 407.97,
        "subtotal": 407.97,
        "tax_total": 38.35,
        "total": 446.32,
        "current_product_code": "Unit #U17",
        "full_description": "Rent Unit U17 - 10x6x4 (9/15/2023 - 9/30/2023) - Prorated",
        "quantifiable": false,
        "children_line_items": [
          {
            "id": null,
            "description": "Xercor Insurance Services LLC - $27,000.00",
            "quantity": 1,
            "prorated": false,
            "discount_amount": null,
            "single_item_price": 3.95,
            "subtotal": 3.95,
            "tax_total": 0.0,
            "total": 3.95,
            "current_product_code": "XERCOR-1",
            "full_description": "Xercor Insurance Services LLC - $27,000.00 (9/15/2023 - 9/30/2023)",
            "quantifiable": false,
            "children_line_items": []
          },
          {
            "id": null,
            "description": "Some service item",
            "quantity": 1,
            "prorated": true,
            "discount_amount": null,
            "single_item_price": 3.69,
            "subtotal": 3.69,
            "tax_total": 0.0,
            "total": 3.69,
            "current_product_code": "S-3",
            "full_description": "Some service item (9/15/2023 - 9/30/2023) - Prorated",
            "quantifiable": false,
            "children_line_items": []
          },
          {
            "id": null,
            "description": "Some other service item",
            "quantity": 1,
            "prorated": true,
            "discount_amount": null,
            "single_item_price": 14.71,
            "subtotal": 14.71,
            "tax_total": 0.0,
            "total": 14.71,
            "current_product_code": "S-4",
            "full_description": "Some other service item (9/15/2023 - 9/30/2023) - Prorated",
            "quantifiable": false,
            "children_line_items": []
          }
        ]
      },
      {
        "id": null,
        "description": "Xercor Insurance Services LLC - $27,000.00",
        "quantity": 1,
        "prorated": false,
        "discount_amount": null,
        "single_item_price": 3.95,
        "subtotal": 3.95,
        "tax_total": 0.0,
        "total": 3.95,
        "current_product_code": "XERCOR-1",
        "full_description": "Xercor Insurance Services LLC - $27,000.00 (9/15/2023 - 9/30/2023)",
        "quantifiable": false,
        "children_line_items": []
      },
      {
        "id": null,
        "description": "Some service item",
        "quantity": 1,
        "prorated": true,
        "discount_amount": null,
        "single_item_price": 3.69,
        "subtotal": 3.69,
        "tax_total": 0.0,
        "total": 3.69,
        "current_product_code": "S-3",
        "full_description": "Some service item (9/15/2023 - 9/30/2023) - Prorated",
        "quantifiable": false,
        "children_line_items": []
      },
      {
        "id": null,
        "description": "Some other service item",
        "quantity": 1,
        "prorated": true,
        "discount_amount": null,
        "single_item_price": 14.71,
        "subtotal": 14.71,
        "tax_total": 0.0,
        "total": 14.71,
        "current_product_code": "S-4",
        "full_description": "Some other service item (9/15/2023 - 9/30/2023) - Prorated",
        "quantifiable": false,
        "children_line_items": []
      }
    ],
    "successful_payment_events": [],
    "session_id": "673b7f4c7d02d1ce5556a268977dc1b2",
    "event_documents": [
      {
        "session_document_id": "8ea94cf6-6fe7-41d2-b67b-3177d2399535",
        "document_description": "Lease Agreement",
        "esignable": false
      }
    ],
    "total_monthly_billing_amount": 875.31
  },
  "meta": {
    "status_code": 200,
    "status_message": "OK",
    "status_cat": "https://http.cat/200",
    "request_method": "POST",
    "request_id": null,
    "parameters": {
      "move_in": {
        "unit_id": "dba3d643-b700-430b-94d7-cd8ac1e6d520",
        "invoice_period": "monthly",
        "insurance_id": "ad4eb322-f57b-4728-8e33-5ae96ff84a09",
        "discount_plans": [],
        "services": [
          {
            "service_id": "6ef24141-8aa8-440c-a496-0a3052475c63"
          },
          {
            "service_id": "915b02b8-fab4-4d5f-823c-7743b505180a"
          }
        ]
      },
      "facility_id": "a20c11fe-24f7-4d61-80c8-4e048ab5051a"
    }
  }
}

POST /v1/:facility_id/move_ins/process_move_in
Moves a tenant into specified unit

Params

Param name Description
move_in
required

Validations:

  • Must be a Hash

move_in[should_generate_documents]
optional

Defaults to true if not passed. Determines whether documents will be generated along with the review cost call or not. Must be passed as true at least once before the move-in is processed.

Validations:

  • Must be one of: true, false, 1, 0.

move_in[lead_id]
optional

Provide an existing lead id if one exists

Validations:

  • Must be a String

move_in[unit_id]
required

The desired unit ID

Validations:

  • Must be a String

move_in[move_in_date]
optional

The desired move-in date. Defaults to the facility's current date if not provided

Validations:

  • Must be a Date

move_in[tenant_id]
optional

A tenant record to associate the move-in with. Required if tenant hash or lead_id are not given.

Validations:

  • Must be a String

move_in[tenant]
optional

Validations:

  • Must be a Hash

move_in[tenant][first_name]
optional

Validations:

  • Must be a String

move_in[tenant][account_number]
optional

Validations:

  • Must be a String

move_in[tenant][middle_initial]
optional

Validations:

  • Must be a String

move_in[tenant][last_name]
optional

Validations:

  • Must be a String

move_in[tenant][drivers_license_number]
optional

Validations:

  • Must be a String

move_in[tenant][drivers_license_state]
optional

Validations:

  • Must be a String

move_in[tenant][vehicle_license_plate_number]
optional

Validations:

  • Must be a String

move_in[tenant][vehicle_license_state]
optional

Validations:

  • Must be a String

move_in[tenant][vehicle_description]
optional

Validations:

  • Must be a String

move_in[tenant][email]
optional

Validations:

  • Must be a String

move_in[tenant][username]
optional

Validations:

  • Must be a String

move_in[tenant][password]
optional

Validations:

  • Must be a String

move_in[tenant][tax_exempt]
optional

Is the tenant tax exempt?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][is_military]
optional

Is the tenant military?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][is_business]
optional

Is the tenant a business?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][business_name]
optional

Validations:

  • Must be a String

move_in[tenant][title]
optional

Validations:

  • Must be a String

move_in[tenant][decline_alternate_contact]
optional

Whether or not the tenant declined to provide alternate contact information

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][military_information]
optional

A collection of military information (if is_military is true).

Validations:

  • Must be a Hash

move_in[tenant][military_information][retired_military]
optional

Is the tenant retired military?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][military_information][no_agent_given]
optional

Is agent information provided?

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][military_information][date_entered_service]
optional

Date entered service, Format: YYYY-MM-DD

Validations:

  • Must be a Date

move_in[tenant][military_information][military_id]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][end_of_active_service_date]
optional

End date of active service, Format: YYYY-MM-DD

Validations:

  • Must be a Date

move_in[tenant][military_information][place_of_birth]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][last_4_of_ssn]
optional

Must be a 4 digit number

Validations:

  • Must be a String

move_in[tenant][military_information][military_email_address]
optional

Must be a valid email address

Validations:

  • Must be a String

move_in[tenant][military_information][military_rank]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][current_duty_location]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][branch_of_service]
optional

Must be Air Force, Army, Coast Guard, Marines, Navy, National Guard, or Other

Validations:

  • Must be a String

move_in[tenant][military_information][military_unit]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][squadron]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][division]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][type_of_service]
optional

Must be Active Component, Reserve Component, or National Guard

Validations:

  • Must be a String

move_in[tenant][military_information][agent_first_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_last_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_email_address]
optional

Must be a valid email address

Validations:

  • Must be a String

move_in[tenant][military_information][agent_phone_number]
optional

Must be a valid phone number

Validations:

  • Must be a String

move_in[tenant][military_information][agent_address]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_city]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][agent_state]
optional

Must be a valid state abbreviation

Validations:

  • Must be a String

move_in[tenant][military_information][agent_postal_code]
optional

Must be a valid US postal code

Validations:

  • Must be a String

move_in[tenant][military_information][officer_first_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][officer_last_name]
optional

Validations:

  • Must be a String

move_in[tenant][military_information][officer_phone_number]
optional

Must be a valid phone number

Validations:

  • Must be a String

move_in[tenant][password_recovery_questions_attributes]
optional

Password recovery questions

Validations:

  • Must be an Array of nested elements

move_in[tenant][password_recovery_questions_attributes][question]
required

Validations:

  • Must be a String

move_in[tenant][password_recovery_questions_attributes][answer]
required

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes]
required

A collection of phone numbers.

Validations:

  • Must be an Array of nested elements

move_in[tenant][phone_numbers_attributes][number]
optional

Phone number

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][extension]
required

Phone number extension

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][label]
optional

A label for what the phone number is, such as Home, Work, Mobile, etc.

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][primary]
optional

Flag that indicates if this is the primary phone number of the tenant

Validations:

  • Must be a String

move_in[tenant][phone_numbers_attributes][sms_opt_in]
optional

Opt the tenant in to SMS (if applicable). Requires a "Mobile" label for SMS to work correctly.

Validations:

  • Must be one of: true, false, 1, 0.

move_in[tenant][mailing_address_attributes]
required

A collection of addresses.

Validations:

  • Must be a Hash

move_in[tenant][mailing_address_attributes][address1]
required

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][address2]
optional

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][city]
required

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][state]
required

Validations:

  • Must be a String

move_in[tenant][mailing_address_attributes][postal]
required

Validations:

  • Must be a String

move_in[tenant][contacts_attributes]
optional

A collection of contacts.

Validations:

  • Must be an Array of nested elements

move_in[tenant][contacts_attributes][id]
optional

Contact id required to update a contact.

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][first_name]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][middle_initial]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][last_name]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][email]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][description]
required

Contact description

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][primary]
optional

Flag that indicates if this is the primary contact of the tenant

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes]
optional

A collection of phone numbers.

Validations:

  • Must be an Array of nested elements

move_in[tenant][contacts_attributes][phone_numbers_attributes][number]
optional

Phone number

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes][extension]
optional

Phone number extension

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes][label]
optional

A label for what the phone number is, such as Home, Work, Mobile, etc.

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][phone_numbers_attributes][primary]
optional

Flag that specifies if this is the primary phone number of the contact

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes]
optional

A collection of addresses.

Validations:

  • Must be a Hash

move_in[tenant][contacts_attributes][address_attributes][address1]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][address2]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][city]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][state]
optional

Validations:

  • Must be a String

move_in[tenant][contacts_attributes][address_attributes][postal]
optional

Validations:

  • Must be a String

move_in[gate_access_code]
optional

The desired gate access code for the unit, required if tenant provided does not have a gate access code from a previous ledger or if the facility does not have the setting auto_generate_gate_code enabled.

Validations:

  • Must be a String

move_in[invoice_period]
optional

Validations:

  • Must be one of: monthly, anniversary.

move_in[insurance_id]
optional

Desired insurance ID

Validations:

  • Must be a String

move_in[services]
optional

A collection of service ids

Validations:

  • Must be an Array of nested elements

move_in[services][service_id]
optional

Validations:

  • Must be a String

move_in[invoiceable_items]
optional

A collection of additional invoiceable items purchased with move-in

Validations:

  • Must be an Array of nested elements

move_in[invoiceable_items][id]
optional

ID of invoiceable item purchased

Validations:

  • Must be a String

move_in[invoiceable_items][quantity]
optional

Quantity of invoiceable items purchased

Validations:

  • Must be a Integer

move_in[discount_plans]
optional

A collection of discount plan ids

Validations:

  • Must be an Array of nested elements

move_in[discount_plans][discount_plan_id]
optional

Validations:

  • Must be a String

move_in[tenant_signature_request_id]
optional

Signature request id

Validations:

  • Must be a String

move_in[lien_holders]
optional

A collection of lien holders

Validations:

  • Must be an Array of nested elements

move_in[lien_holders][name]
optional

Name of the lien holder

Validations:

  • Must be a String

move_in[lien_holders][address_attributes]
optional

The address of the alternate contact

Validations:

  • Must be a Hash

move_in[lien_holders][address_attributes][address1]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][address2]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][city]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][state]
optional

Validations:

  • Must be a String

move_in[lien_holders][address_attributes][postal]
optional

Validations:

  • Must be a String

move_in[session_id]
optional

Provide the session ID returned from review_cost to use the lease reserved lease number.

Validations:

  • Must be a String

move_in[accepted_documents]
optional

A collection of documents that were accepted, only required if passing a session_id.

Validations:

  • Must be an Array of nested elements

move_in[accepted_documents][session_document_id]
optional

Validations:

  • Must be a String

payment_method
required

Can accept a paymentmethodid, or fields for CC or ACH payments

Validations:

  • Must be a Hash

payment_method[payment_method_id]
optional

If you want to use an existing payment method, pass in the id

Validations:

  • Must be a String

payment_method[first_name]
optional

Required if not using an existing payment method

Validations:

  • Must be a String

payment_method[last_name]
optional

Required if not using an existing payment method

Validations:

  • Must be a String

payment_method[kind]
optional

Required if not using an existing payment method

Validations:

  • Must be one of: ach, creditcard, check, cash, cardswipe.

payment_method[reuseable]
optional

Validations:

  • Must be one of: true, false, 1, 0.

payment_method[magnetic_track]
optional

Required if using a card swipe

Validations:

  • Must be a String

payment_method[card_number]
optional

Required if using a credit card

Validations:

  • Must be a String

payment_method[card_type]
optional

Required if using a credit card

Validations:

  • Must be one of: visa, mastercard, american_express, diners, discover, jcb.

payment_method[security_code]
optional

Required if using a credit card

Validations:

  • Must be a String

payment_method[expiration_date]
optional

Required if using a credit card. Format: MM/YY

Validations:

  • Must be a String

payment_method[account_number]
optional

Required if using ACH

Validations:

  • Must be a String

payment_method[account_number_confirmation]
optional

Required if using ACH

Validations:

  • Must be a String

payment_method[account_type]
optional

Required if using ACH

Validations:

  • Must be a String

payment_method[bank_name]
optional

Required if using ACH

Validations:

  • Must be a String

payment_method[routing_number]
optional

Required if using ACH

Validations:

  • Must be a String

payment_method[billing_address_attributes]
optional

Required if not using an existing payment method

Validations:

  • Must be a Hash

payment_method[billing_address_attributes][company]
optional

Validations:

  • Must be a String

payment_method[billing_address_attributes][address1]
optional

Validations:

  • Must be a String

payment_method[billing_address_attributes][address2]
optional

Validations:

  • Must be a String

payment_method[billing_address_attributes][city]
optional

Validations:

  • Must be a String

payment_method[billing_address_attributes][postal]
optional

Validations:

  • Must be a String

payment_method[billing_address_attributes][state]
optional

Validations:

  • Must be a String

payment_method[check_number]
optional

Required if using Check

Validations:

  • Must be a String

payment_method[name_on_check]
optional

Required if using Check

Validations:

  • Must be a String

payment_method[check_amount]
optional

Required if using Check

Validations:

  • Must be a String

payment_method[reference_number]
optional

Required if using Money Order

Validations:

  • Must be a String

payment_method[money_order_amount]
optional

Required if using Money Order

Validations:

  • Must be a String

payment_method[amount_tendered]
optional

Required if using Cash

Validations:

  • Must be a String

payment_method[autopay_enabled]
optional

Enable autopay with this payment method (reuseable must be true). An autopay_day must also be set

Validations:

  • Must be one of: true, false, 1, 0.

payment_method[autopay_day]
optional

When autopay_enabled is set to 'true' you must specify an autopay day of the month between 1 and 31

Validations:

  • Must be a Integer

alternate_contact
optional

Contact to be used as the alternate contact for the tenant

Validations:

  • Must be a Hash

alternate_contact[id]
optional

The ID of the contact that will be used for the alternate contact

Validations:

  • Must be a String

alternate_contact[description]
required

Contact description

Validations:

  • Must be a String

alternate_contact[declined]
optional

Decline to use an alternate contact for the tenant

Validations:

  • Must be one of: true, false, 1, 0.

alternate_contact[first_name]
optional

Validations:

  • Must be a String

alternate_contact[middle_initial]
optional

Validations:

  • Must be a String

alternate_contact[last_name]
optional

Validations:

  • Must be a String

alternate_contact[email]
optional

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes]
optional

A collection of phone numbers.

Validations:

  • Must be an Array of nested elements

alternate_contact[phone_numbers_attributes][number]
optional

Phone number

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes][extension]
optional

Phone number extension

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes][label]
optional

A label for what the phone number is, such as Home, Work, Mobile, etc.

Validations:

  • Must be a String

alternate_contact[phone_numbers_attributes][primary]
optional

Flag that specifies if this is the primary phone number of the contact

Validations:

  • Must be a String

alternate_contact[address_attributes]
optional

The address of the alternate contact

Validations:

  • Must be a Hash

alternate_contact[address_attributes][address1]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][address2]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][city]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][state]
optional

Validations:

  • Must be a String

alternate_contact[address_attributes][postal]
optional

Validations:

  • Must be a String

Examples

POST /v1/b65742b7-86cd-4294-92c9-5c856758e4c4/move_ins/process_move_in
{
  "payment_method": {
    "kind": "credit_card",
    "first_name": "John",
    "last_name": "Doe",
    "card_type": "visa",
    "card_number": "00000000",
    "security_code": "123",
    "expiration_date": "10/24",
    "billing_address_attributes": {
      "address1": "123 Main",
      "city": "Somecity",
      "state": "AL",
      "postal": "12345",
      "country": "US"
    }
  },
  "move_in": {
    "unit_id": "014d6fa6-f615-4909-82de-517affcb9733",
    "tenant_id": "d3e702c6-d165-446b-980d-e36b3230f410",
    "gate_access_code": "56763",
    "session_id": "ebd3484d96d323f32d0c200fcc9fa25c",
    "accepted_documents": [
      {
        "session_document_id": "bc22ad64-848c-44b7-bb45-9dd443fb215f"
      }
    ],
    "insurance_id": "8374d610-fb05-4c67-a0d6-eb4a722b9281",
    "discount_plans": [
      {
        "discount_plan_id": "917ebea3-30a9-4996-9b1b-fc81c82ae898"
      }
    ],
    "services": [
      {
        "service_id": "bd6f5eb6-7d08-4ab9-a4da-9f810f4ac7a2"
      },
      {
        "service_id": "c4074fc6-1d06-46cd-9101-233c3482e45e"
      }
    ]
  }
}
200
{
  "move_in_unit_event": {
    "id": "13af6d28-57f3-44c3-aac5-ebd5b7f454db",
    "invoice_period": "monthly",
    "unit_name": "U14",
    "unit_id": "014d6fa6-f615-4909-82de-517affcb9733",
    "unit_combination_lock_number": null,
    "unit_overlock_lock_number": null,
    "tenant_name": "Dario40 Quigley",
    "tenant_id": "d3e702c6-d165-446b-980d-e36b3230f410",
    "tenant_military_information": null,
    "ledger_id": "22a40fe4-f307-41e8-b19b-03a6b56418e1",
    "esign_url": null,
    "rate_type": "standard_rate",
    "channel_rate_id": null,
    "discount_plan_ids": [],
    "storage_items": [],
    "storing_vehicle": null,
    "gate_access_code": "56763",
    "first_month_rent_subtotal": 407.97,
    "lock_subtotal": 0,
    "move_in_subtotal": 442.39,
    "move_in_taxes_total": 38.35,
    "move_in_total": 480.74,
    "invoice_line_items": [
      {
        "id": "70c67d04-2948-4ec2-b71f-0764098c3e8c",
        "description": "Rent Unit U14 - 10x6x4",
        "quantity": 1,
        "prorated": true,
        "discount_amount": null,
        "single_item_price": 407.97,
        "subtotal": 407.97,
        "tax_total": 38.35,
        "total": 446.32,
        "current_product_code": "Unit #U14",
        "full_description": "Rent Unit U14 - 10x6x4 (9/15/2023 - 9/30/2023) - Prorated",
        "quantifiable": false,
        "children_line_items": [
          {
            "id": "06dd13a9-6a22-4d67-b3f1-c9ec625a61e1",
            "description": "Xercor Insurance Services LLC - $49,000.00",
            "quantity": 1,
            "prorated": false,
            "discount_amount": null,
            "single_item_price": 13.31,
            "subtotal": 13.31,
            "tax_total": 0,
            "total": 13.31,
            "current_product_code": "XERCOR-1",
            "full_description": "Xercor Insurance Services LLC - $49,000.00 (9/15/2023 - 9/30/2023)",
            "quantifiable": false,
            "children_line_items": []
          },
          {
            "id": "07b317e4-15bb-40fa-b64c-2cb7a3004a36",
            "description": "Some service item",
            "quantity": 1,
            "prorated": true,
            "discount_amount": null,
            "single_item_price": 17.91,
            "subtotal": 17.91,
            "tax_total": 0,
            "total": 17.91,
            "current_product_code": "S-1",
            "full_description": "Some service item (9/15/2023 - 9/30/2023) - Prorated",
            "quantifiable": false,
            "children_line_items": []
          },
          {
            "id": "b0cf3c92-35e3-46a2-8689-ecd6fbd989e9",
            "description": "Some other service item",
            "quantity": 1,
            "prorated": true,
            "discount_amount": null,
            "single_item_price": 3.2,
            "subtotal": 3.2,
            "tax_total": 0,
            "total": 3.2,
            "current_product_code": "S-2",
            "full_description": "Some other service item (9/15/2023 - 9/30/2023) - Prorated",
            "quantifiable": false,
            "children_line_items": []
          }
        ]
      },
      {
        "id": "06dd13a9-6a22-4d67-b3f1-c9ec625a61e1",
        "description": "Xercor Insurance Services LLC - $49,000.00",
        "quantity": 1,
        "prorated": false,
        "discount_amount": null,
        "single_item_price": 13.31,
        "subtotal": 13.31,
        "tax_total": 0,
        "total": 13.31,
        "current_product_code": "XERCOR-1",
        "full_description": "Xercor Insurance Services LLC - $49,000.00 (9/15/2023 - 9/30/2023)",
        "quantifiable": false,
        "children_line_items": []
      },
      {
        "id": "07b317e4-15bb-40fa-b64c-2cb7a3004a36",
        "description": "Some service item",
        "quantity": 1,
        "prorated": true,
        "discount_amount": null,
        "single_item_price": 17.91,
        "subtotal": 17.91,
        "tax_total": 0,
        "total": 17.91,
        "current_product_code": "S-1",
        "full_description": "Some service item (9/15/2023 - 9/30/2023) - Prorated",
        "quantifiable": false,
        "children_line_items": []
      },
      {
        "id": "b0cf3c92-35e3-46a2-8689-ecd6fbd989e9",
        "description": "Some other service item",
        "quantity": 1,
        "prorated": true,
        "discount_amount": null,
        "single_item_price": 3.2,
        "subtotal": 3.2,
        "tax_total": 0,
        "total": 3.2,
        "current_product_code": "S-2",
        "full_description": "Some other service item (9/15/2023 - 9/30/2023) - Prorated",
        "quantifiable": false,
        "children_line_items": []
      }
    ],
    "successful_payment_events": [
      {
        "id": "67ff3827-4b91-4729-8d52-97f9f824c975",
        "amount": 480.74,
        "success": true,
        "date": "2023-09-15T04:36:45.740-10:00",
        "payment_method": {
          "id": "402be08b-60ce-4463-b9b9-a04268cc4ee9",
          "kind": "credit_card",
          "first_name": "John",
          "last_name": "Doe",
          "reuseable": false,
          "card_number": "****0000",
          "card_type": "visa",
          "expiration_date": "10/24",
          "billing_address": {
            "id": "a111a463-09ef-4cc3-a140-3d458e88c424",
            "address1": "123 Main",
            "address2": null,
            "city": "Somecity",
            "state": "AL",
            "postal": "12345",
            "country": "US",
            "full_address": "123 Main, Somecity, AL 12345",
            "latitude": null,
            "longitude": null,
            "time_zone_id": "America/Chicago",
            "time_zone_offset": "-05:00",
            "invalid_data": false,
            "label": "Home"
          }
        }
      }
    ]
  },
  "meta": {
    "status_code": 200,
    "status_message": "OK",
    "status_cat": "https://http.cat/200",
    "request_method": "POST",
    "request_id": null,
    "parameters": {
      "payment_method": {
        "kind": "credit_card",
        "first_name": "John",
        "last_name": "Doe",
        "card_type": "visa",
        "card_number": "[FILTERED]",
        "security_code": "[FILTERED]",
        "expiration_date": "10/24",
        "billing_address_attributes": {
          "address1": "123 Main",
          "city": "Somecity",
          "state": "AL",
          "postal": "12345",
          "country": "US"
        }
      },
      "move_in": {
        "unit_id": "014d6fa6-f615-4909-82de-517affcb9733",
        "tenant_id": "d3e702c6-d165-446b-980d-e36b3230f410",
        "gate_access_code": "56763",
        "session_id": "ebd3484d96d323f32d0c200fcc9fa25c",
        "accepted_documents": [
          {
            "session_document_id": "bc22ad64-848c-44b7-bb45-9dd443fb215f"
          }
        ],
        "insurance_id": "8374d610-fb05-4c67-a0d6-eb4a722b9281",
        "discount_plans": [
          {
            "discount_plan_id": "917ebea3-30a9-4996-9b1b-fc81c82ae898"
          }
        ],
        "services": [
          {
            "service_id": "bd6f5eb6-7d08-4ab9-a4da-9f810f4ac7a2"
          },
          {
            "service_id": "c4074fc6-1d06-46cd-9101-233c3482e45e"
          }
        ]
      },
      "facility_id": "b65742b7-86cd-4294-92c9-5c856758e4c4"
    }
  }
}