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:| Type | Description | Use case |
|---|---|---|
standard | Full application with payments, rent collection, and contracts | New tenancies |
renewal | Refresh existing tenancies with new terms | Extending current leases |
active_tenancy | Collect rental payments for existing tenancies | Mid-tenancy onboarding |
let_only | Full application without rent collection setup | Landlord-managed billing |
Create a customer
Before creating an application, you need a customer. You can either create a customer using the Customers API or by providing theapplicants.customer_data object in the application request.
- Using the Customers API
- Inline with application
Create a customer first, then reference their ID in the application.Use the customer ID in your application request with
Create a customer
Response
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
| Parameter | Type | Description |
|---|---|---|
application_configuration | string | The identifier of the application configuration to create the application with |
type | string | Application type: standard, renewal, active_tenancy, or let_only |
unit | string | The unit ID for the property |
applicants | array | Array of applicant objects (min 1, max 10) |
subscription_data | object | Rent collection configuration |
Configure applicants
Theapplicants 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
| Parameter | Type | Required | Description |
|---|---|---|---|
share_of_rent | number | Yes | Percentage of rent this applicant pays (0-100, all must total 100) |
customer | string | Conditional | Existing customer ID |
customer_data | object | Conditional | New customer details (required if no customer) |
lead_tenant | boolean | No | Whether this applicant is the lead tenant |
permitted_occupier | boolean | No | Whether this person is a permitted occupier (not on the contract) |
reference_data | object | No | Reference configuration (see Referencing) |
requirements | object | No | Requirements configuration for the applicant |
Customer data parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Customer email address |
name | string | No | Customer display name |
phone | string | No | Customer phone number |
legal | object | No | Legal information (first_name, last_name, dob) for contract generation |
address | object | No | Customer address (line1, line2, city, state, postal_code, country) |
metadata | object | No | Key-value pairs for storing additional information |
Requirements parameters
Therequirements object controls which steps the applicant must complete.
| Parameter | Type | Description |
|---|---|---|
deposit | boolean | Whether to collect a deposit from the applicant |
guarantor | boolean | Whether the applicant needs a guarantor |
pre_qualification | boolean | Whether the applicant needs to complete pre-qualification |
verification_session | boolean | Whether the applicant needs a verification session |
Configure subscription data
Thesubscription_data object defines how rent is collected after the application completes. Only collection_method and interval are required.
Subscription data
Subscription parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
collection_method | string | Yes | charge_automatically or send_invoice |
interval | string | Yes | Billing frequency: month, week, custom, or upfront |
interval_count | integer | No | Number of intervals between billing (e.g., 1 for monthly) |
items | array | No | Line items for each billing period (min 1, max 10) |
start_date | timestamp | No | When billing begins (Unix timestamp) |
end_date | timestamp | No | When billing ends (Unix timestamp) |
start_date_config | object | No | Date object (day, month, year) as alternative to start_date |
end_date_config | object | No | Date object (day, month, year) as alternative to end_date |
billing_anchor | timestamp | No | Date to anchor recurring billing (Unix timestamp) |
billing_anchor_config | object | No | Anchor config with day_of_month (1-31) as alternative to billing_anchor |
days_until_due | integer | No | Days before invoice is due |
days_before_collection | integer | No | Days before billing date to create invoice (0-7) |
coupon | string | No | Coupon ID to apply to the subscription |
first_invoice_creation | string | No | Set to immediately to create the first invoice right away |
add_invoice_items | array | No | One-time invoice items added to the first invoice (max 10) |
phases | array | No | Subscription phases for changing items over time |
custom_fields | array | No | Custom fields on invoices (max 4, each with name and value) |
Subscription item parameters
Each item insubscription_data.items requires price_data and type.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | rent, charge, or product |
price_data | object | Yes | Pricing object with amount, currency, and tax_percent (all required) |
description | string | No | Display description for the line item |
unit | string | No | Unit ID (required for rent type items) |
price | string | No | Price ID (alternative to price_data) |
proration_behavior | string | No | create_prorations or none |
schedule | array | No | Schedule for changing the item amount over time |
tax_rate | string | No | Tax rate ID |
transfer_behavior | string | No | automatic, owner, or none |
transfer_destination | string | No | Owner ID for transfer (only when transfer_behavior is owner) |
metadata | object | No | Key-value pairs for storing additional information |
Add invoice items
Useadd_invoice_items to include one-time charges on the first invoice.
Add invoice items
Subscription phases
Usephases to schedule changes to subscription items at specific dates.
Subscription phases
Configure deposits
Set up security deposit collection using thedeposit_amount parameter.
Deposit configuration
| Parameter | Type | Description |
|---|---|---|
deposit_amount | integer | Deposit amount in smallest currency unit (1-99999900) |
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 thecontract_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
| Parameter | Type | Description |
|---|---|---|
contract_template | string | Contract template ID |
contract_options.automatic_counter_signature | boolean | Auto-sign contract on landlord’s behalf |
contract_options.owner_signature_required | boolean | Require property owner to sign |
contract_options.send_applicant_email | boolean | Email contract to applicants |
contract_options.send_owner_completion_email | boolean | Send contract to owner on completion |
contract_options.legal_entity | string | Legal entity ID for the contract |
Configure application payments
Collect payments during the application process.Holding fee
Holding fee
Advance rent
Advance rent
Partial payments
Configure partial upfront payments that create credit grants for future rent:Partial payment
amount and description are required when using partial payments.
Partial payments require exactly one applicant with
share_of_rent of 100%.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
| Parameter | Type | Description |
|---|---|---|
start_date | timestamp | Tenancy start date |
end_date | timestamp | Tenancy end date (null for periodic tenancy) |
start_date_config | object | Date object (day, month, year) as alternative to start_date |
end_date_config | object | Date object (day, month, year) as alternative to end_date |
move_in_date | timestamp | Actual move-in date (useful for short lets) |
move_out_date | timestamp | Actual move-out date (useful for short lets) |
Referencing
Enable tenant referencing during the application process.Automatic referencing
Reference providers
| Provider | Description |
|---|---|
advance_rent | Advance Rent referencing |
canopy | Canopy referencing |
homelet | HomeLet referencing |
let_alliance | Let Alliance referencing |
Additional options
Accept on create
Foractive_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
| Value | Description |
|---|---|
complete | Mark tenancy as complete (requires an end date) |
roll | Convert to periodic tenancy |
Create subscriptions
Control whether subscriptions are created for the application. Defaults totrue.
Skip subscription creation
Owner options
Configure owner-specific settings:Owner options
Update unit rent
Setupdate_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
Example response
Next steps
After creating an application:- Send to applicant - If
send_emailistrue, applicants receive the application portal link automatically. - Monitor progress - Use webhooks to track application events.
- Complete the application - The application completes based on the steps defined in the application configuration.
- Retrieve subscriptions - Listen for
subscription.createdevents to get the subscription IDs.
Retrieve the subscription
After the application completes, a subscription is created asynchronously using thesubscription_data object. To retrieve the subscription ID, listen for the subscription.created webhook event.
subscription.created event
| Field | Description |
|---|---|
data.object.id | The subscription ID |
data.object.application | The application ID that created this subscription |
data.object.customer | The customer ID associated with the subscription |
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 applicationtype 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.