Own-Listing Lifecycle
Understand creation, editing, terminal statuses, soft deletion, import provenance, and server-written listing history.
Fondaro own listings use the existing /properties create, update, delete, and renew routes, but their lifecycle is optimized for inventory administration rather than an advertising-review loop.
Property routes accept either a Fondaro property API key or a Clerk session JWT through the existing properties authentication guard. Every mutation is scoped to the authenticated organization.
Status semantics
The listing status vocabulary is:
active · inactive · pending · sold · rented · deleted
The write rules are narrower than that vocabulary:
| Operation | Status behaviour |
|---|---|
POST /properties | Always creates the listing as pending and assigns a Fondaro reference |
PUT /properties/:id without status | Preserves the current status, including active; ordinary edits no longer reset the listing to pending |
PUT /properties/:id with customer status | Accepts terminal transitions to sold, rented, or deleted |
PUT /properties/:id with active, inactive, or pending | The customer write path ignores the unsupported status field; do not use it as a status-management route |
DELETE /properties/:id | Soft-deletes by setting status to deleted; it does not physically remove the property row |
| First Resales own-listing import | Creates the listing as active because it is already public upstream |
Admin moderation has a separate internal write path for activation and other administrative transitions. There is no customer endpoint for returning a sold, rented, or deleted listing to Active.
Update without review reset
Send only the fields that should change:
PUT /properties/29a1e184-237a-40c8-a1fe-624b0bcbb2f4
Authorization: Bearer fondaro_pk_REDACTED
Content-Type: application/json{
"price": 1195000,
"commission": 4.5,
"description": "Updated description."
}If the listing was Active, it remains Active. An unchanged payload is treated as a no-op: neither updatedAt nor listing history advances.
referenceNumber is immutable and cannot be changed through the update route.
Terminal status update
PUT /properties/29a1e184-237a-40c8-a1fe-624b0bcbb2f4
Authorization: Bearer fondaro_pk_REDACTED
Content-Type: application/json{
"status": "sold"
}Use rented for a completed rental. Use DELETE /properties/:id or status: "deleted" for a soft delete. The response is the updated property object.
Import provenance
Property responses can include:
| Field | Type | Meaning |
|---|---|---|
externalSource | string or null | Upstream system, currently resales_online for this importer |
externalRef | string or null | Stable upstream identity used for idempotent upserts |
lastSyncedAt | ISO date-time or null | Last successful write of synchronized fields |
Manually created listings normally leave these fields null. Do not edit them through the normal property form.
A Resales re-import updates source-owned property fields. It does not overwrite assigned agent, commission, lead-group connection, or a status that a user or admin has changed locally. Listings absent from a later manual Resales snapshot are not automatically inactivated or deleted.
Server-written history
Every effective listing mutation writes an append-only event. Event types are:
created · updated · status_changed · renewed · imported · deleted
Each event contains:
{
"id": "307e83ce-6cb1-40da-87e4-81a76399f858",
"propertyListingId": "29a1e184-237a-40c8-a1fe-624b0bcbb2f4",
"organizationId": "69e9323f-e150-4317-9a8b-e952d0704fc4",
"actorUserId": "user_2abc123",
"type": "status_changed",
"changes": [
{ "field": "status", "from": "active", "to": "sold" }
],
"source": "user",
"createdAt": "2026-07-23T15:40:00.000Z"
}source is user, admin, import, or system. Clients do not post history entries. Read them through GET /properties/:id/activity?types=change; see Property Activity & Viewings.
Large collection fields such as images and translated descriptions may be summarized in history rather than copied in full.
Related Articles
Activity & Viewings
Register and manage own-listing viewings, and read the merged property activity feed.
Property CRUD
Manage property listings: create, read, update, delete, renew, and find expiring properties.
Resales Import
Check import configuration, dry-run a safe manifest, and manually copy Resales own inventory into Fondaro.
My Listings
Search, filter, sort, and manage your organization's own property inventory from one persistent workspace tab.