Core Objects

The foundational data models that power the DoorStax platform. Each object represents a key entity in property management.

Properties

A property represents a physical real estate asset — a building, complex, or single-family home.

Key Fields

FieldTypeDescription
idStringUnique identifier
nameStringDisplay name
addressAddressFull street address
typePropertyTypeRESIDENTIAL | COMMERCIAL | MIXED
ownerIdStringOwner user ID
unitsUnit[]Associated units
statusStatusACTIVE | INACTIVE | ARCHIVED

Example

json
{
  "id": "prp_abc123",
  "name": "Sunset Apartments",
  "address": {
    "street": "123 Sunset Blvd",
    "city": "Los Angeles",
    "state": "CA",
    "zip": "90028"
  },
  "type": "RESIDENTIAL",
  "ownerId": "usr_own001",
  "status": "ACTIVE",
  "unitCount": 24
}

Related Endpoints

GET/api/properties
POST/api/properties
GET/api/properties/:id
PUT/api/properties/:id
DELETE/api/properties/:id

Units

A unit is a rentable space within a property — an apartment, suite, or room.

Key Fields

FieldTypeDescription
idStringUnique identifier
propertyIdStringParent property
unitNumberStringUnit number or label
bedroomsIntNumber of bedrooms
bathroomsFloatNumber of bathrooms
sqftInt?Square footage
rentAmountDecimalMonthly rent in cents
statusUnitStatusVACANT | OCCUPIED | MAINTENANCE

Example

json
{
  "id": "unt_456",
  "propertyId": "prp_abc123",
  "unitNumber": "4B",
  "bedrooms": 2,
  "bathrooms": 1.5,
  "sqft": 950,
  "rentAmount": 225000,
  "status": "OCCUPIED"
}

Related Endpoints

GET/api/properties/:id/units
POST/api/properties/:id/units
GET/api/units/:id
PUT/api/units/:id

Tenants

A tenant is a person who rents a unit. They have a user account and one or more lease associations.

Key Fields

FieldTypeDescription
idStringUnique identifier
userIdStringAssociated user account
firstNameStringFirst name
lastNameStringLast name
emailStringContact email
phoneString?Phone number
statusTenantStatusACTIVE | PAST | APPLICANT

Example

json
{
  "id": "tnt_012",
  "userId": "usr_tnt012",
  "firstName": "Jane",
  "lastName": "Doe",
  "email": "jane@example.com",
  "phone": "+1-555-0123",
  "status": "ACTIVE"
}

Related Endpoints

GET/api/tenants
POST/api/tenants
GET/api/tenants/:id
PUT/api/tenants/:id

Leases

A lease ties a tenant to a unit for a specific period with defined financial terms.

Key Fields

FieldTypeDescription
idStringUnique identifier
unitIdStringLeased unit
tenantIdStringPrimary tenant
startDateDateTimeLease start date
endDateDateTimeLease end date
rentAmountDecimalMonthly rent in cents
securityDepositDecimalSecurity deposit amount
statusLeaseStatusACTIVE | EXPIRED | TERMINATED

Example

json
{
  "id": "lea_xyz789",
  "unitId": "unt_456",
  "tenantId": "tnt_012",
  "startDate": "2025-01-01T00:00:00.000Z",
  "endDate": "2026-01-01T00:00:00.000Z",
  "rentAmount": 225000,
  "securityDeposit": 225000,
  "status": "ACTIVE"
}

Related Endpoints

GET/api/leases
POST/api/leases
GET/api/leases/:id
PUT/api/leases/:id
POST/api/leases/:id/terminate

Payments

A payment record tracks money movement — tenant rent payments processed through Kadima.

Key Fields

FieldTypeDescription
idStringUnique identifier
leaseIdStringAssociated lease
tenantIdStringPaying tenant
amountDecimalPayment amount in cents
methodPaymentMethodACH | CARD | CHECK
statusPaymentStatusPENDING | COMPLETED | FAILED | REFUNDED
processedAtDateTime?When payment was processed
externalIdString?Kadima transaction ID

Example

json
{
  "id": "pay_def456",
  "leaseId": "lea_xyz789",
  "tenantId": "tnt_012",
  "amount": 225000,
  "method": "ACH",
  "status": "COMPLETED",
  "processedAt": "2025-01-05T10:30:00.000Z",
  "externalId": "txn_kadima_abc"
}

Related Endpoints

GET/api/payments
POST/api/payments
GET/api/payments/:id
POST/api/payments/:id/refund

Ledger Entries

Immutable financial records that track every monetary event. See the Ledger System guide for details.

Key Fields

FieldTypeDescription
idStringUnique identifier
leaseIdStringAssociated lease
typeEntryTypeCHARGE | PAYMENT | REVERSAL | ADJUSTMENT
amountDecimalSigned amount in cents
runningBalanceDecimalBalance after this entry
descriptionStringHuman-readable description

Example

json
{
  "id": "led_abc123",
  "leaseId": "lea_xyz789",
  "type": "CHARGE",
  "amount": 225000,
  "runningBalance": 225000,
  "description": "Rent charge - February 2025"
}

Related Endpoints

GET/api/ledger
GET/api/ledger/:leaseId
GET/api/ledger/:leaseId/balance

Payouts

Payouts represent disbursements from DoorStax to property owners after collecting rent.

Key Fields

FieldTypeDescription
idStringUnique identifier
ownerIdStringRecipient owner
amountDecimalPayout amount in cents
statusPayoutStatusPENDING | PROCESSING | COMPLETED | FAILED
scheduledDateDateTimeScheduled payout date
completedAtDateTime?When payout was sent

Example

json
{
  "id": "po_ghi789",
  "ownerId": "usr_own001",
  "amount": 2100000,
  "status": "COMPLETED",
  "scheduledDate": "2025-01-15T00:00:00.000Z",
  "completedAt": "2025-01-15T06:00:00.000Z"
}

Related Endpoints

GET/api/payouts
GET/api/payouts/:id
POST/api/payouts/:id/retry

Owners

Property owners who receive payouts and manage their portfolio through DoorStax.

Key Fields

FieldTypeDescription
idStringUnique identifier
userIdStringAssociated user account
companyNameString?Business entity name
propertiesProperty[]Owned properties
payoutMethodPayoutMethodACH | WIRE | CHECK

Example

json
{
  "id": "own_001",
  "userId": "usr_own001",
  "companyName": "Sunset Properties LLC",
  "propertyCount": 3,
  "payoutMethod": "ACH"
}

Related Endpoints

GET/api/owners
GET/api/owners/:id
PUT/api/owners/:id

Leads

Prospective tenants who have expressed interest in a unit but have not yet signed a lease.

Key Fields

FieldTypeDescription
idStringUnique identifier
unitIdString?Interested unit
firstNameStringFirst name
lastNameStringLast name
emailStringContact email
statusLeadStatusNEW | CONTACTED | SCREENING | APPROVED | REJECTED
sourceString?Lead source (website, referral, etc.)

Example

json
{
  "id": "lead_jkl012",
  "unitId": "unt_789",
  "firstName": "Alex",
  "lastName": "Smith",
  "email": "alex@example.com",
  "status": "SCREENING",
  "source": "website"
}

Related Endpoints

GET/api/leads
POST/api/leads
GET/api/leads/:id
PUT/api/leads/:id
POST/api/leads/:id/convert

Users

User accounts that authenticate into DoorStax. Every tenant, owner, and team member has a user record.

Key Fields

FieldTypeDescription
idStringUnique identifier
emailStringLogin email
nameStringFull name
roleUserRoleAssigned role
twoFactorEnabledBoolean2FA status
statusUserStatusACTIVE | SUSPENDED | PENDING

Example

json
{
  "id": "usr_abc123",
  "email": "user@example.com",
  "name": "Jane Doe",
  "role": "PROPERTY_MANAGER",
  "twoFactorEnabled": true,
  "status": "ACTIVE"
}

Related Endpoints

GET/api/users
GET/api/users/:id
PUT/api/users/:id
POST/api/users/invite