Skip to main content
This guide shows you how to create an application using the Applications API. Applications allow you to create new leases, accept move-in payments, and set up contracts.

Prerequisites

Before creating an application, ensure you have:
  • A unit ID for the property.
  • An application configuration ID.
  • Customer information (email at minimum).

Application types

Yorlet supports four application types, each designed for different scenarios:

Create a customer

Before creating an application, you need a customer. You can either create a customer using the Customers API or by providing the applicants.customer_data object in the application request.
Create a customer first, then reference their ID in the application.
Create a customer
Response
Use the customer ID in your application request with applicants.customer.

Building an application request

You can build an application request by adding the required parameters and configuring the optional parameters as needed.

Required parameters

Configure applicants

The applicants array defines who is applying for the tenancy. Each applicant must have either a customer ID or customer_data object, plus a share_of_rent.
Applicants array

Applicant parameters

Customer data parameters

Requirements parameters

The requirements object controls which steps the applicant must complete.

Verification

To request identity or Right to Rent verification, set verification_session_data.types on the applicant.
Verification session data

Configure subscription data

The subscription_data object defines how rent is collected after the application completes. Only collection_method and interval are required.
Subscription data

Subscription parameters

Subscription item parameters

Each item in subscription_data.items requires price_data and type.

Add invoice items

Use add_invoice_items to include one-time charges on the first invoice.
Add invoice items

Subscription phases

Use phases to schedule changes to subscription items at specific dates.
Subscription phases

Configure deposits

Set up security deposit collection using the deposit_amount parameter.
Deposit configuration
Use the applicant-level requirements.deposit parameter to control which applicants are required to pay a deposit.

Configure contracts

Control contract generation and signing with the contract_template and contract_options parameters.
Contract configuration
The contract_template parameter is required when the application type is standard, renewal, or let_only.

Contract parameters

Configure application payments

Collect payments during the application process.

Holding fee

Holding fee
The holding fee is collected early in the application to secure the tenancy. Amount must be between 0 and 99,999,900 (in smallest currency unit).

Advance rent

Advance rent
Collect rent in advance as part of the application. Amount must be between 0 and 99,999,900 (in smallest currency unit).

Partial payments

Configure partial upfront payments that create credit grants for future rent:
Partial payment
Both amount and description are required when using partial payments.
Partial payments require exactly one applicant with share_of_rent of 100%, and are only supported when subscription_data.interval is month.

Configure dates

Using timestamps

Provide dates as Unix timestamps in UTC:
Date timestamps

Using date configuration objects

Alternatively, use date configuration objects for automatic calculation:
Date configuration
When using end_date_config, Yorlet automatically sets the time to 23:59:59 to include the full day.

Date parameters

Referencing

Enable tenant referencing during the application process.
Automatic referencing

Reference providers

Additional options

Accept on create

For active_tenancy applications, set accept to true to immediately accept the application when created.
Accept on create

End behavior

Control what happens when the tenancy reaches its end date:
End behavior

Create subscriptions

Control whether subscriptions are created for the application. Defaults to true.
Skip subscription creation

Owner options

Configure owner-specific settings:
Owner options

Assignees

Assign a team member to the application. Use assignee to set the owner of the application and deal_assignee to set the owner of the underlying deal.
Assignees

Update unit rent

Set update_unit_rent to true to update the unit’s rent amount with the pricing used in the application:
Update unit rent

Metadata

Attach custom data to the application:
Metadata

Create an application

Here’s a comprehensive example with commonly used parameters:
Complete application example
A successful request returns the application object:
Example response

Next steps

After creating an application:
  1. Send to applicant - If send_email is true, applicants receive the application portal link automatically.
  2. Monitor progress - Use webhooks to track application events.
  3. Complete the application - The application completes based on the steps defined in the application configuration.
  4. Retrieve subscriptions - Listen for subscription.created events to get the subscription IDs.

Retrieve the subscription

After the application completes, a subscription is created asynchronously using the subscription_data object. To retrieve the subscription ID, listen for the subscription.created webhook event.
subscription.created event
The event payload includes: Use the application and customer fields to tie the subscription back to your original application request.
For applications with multiple applicants, a separate subscription is created for each applicant based on their share_of_rent. You will receive a subscription.created event for each subscription.

(Optional) Create a payment method session

In some instances, the application will automatically complete without the applicant needing to visit the application portal. For example, if the application type is set to active_tenancy, the application will automatically complete when created. If you want to collect a payment method from the applicant, you can create a Payment Method Session and associate it with the subscription you retrieved in the subscription.created event.