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:

OperationStatus behaviour
POST /propertiesAlways creates the listing as pending and assigns a Fondaro reference
PUT /properties/:id without statusPreserves the current status, including active; ordinary edits no longer reset the listing to pending
PUT /properties/:id with customer statusAccepts terminal transitions to sold, rented, or deleted
PUT /properties/:id with active, inactive, or pendingThe customer write path ignores the unsupported status field; do not use it as a status-management route
DELETE /properties/:idSoft-deletes by setting status to deleted; it does not physically remove the property row
First Resales own-listing importCreates 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:

FieldTypeMeaning
externalSourcestring or nullUpstream system, currently resales_online for this importer
externalRefstring or nullStable upstream identity used for idempotent upserts
lastSyncedAtISO date-time or nullLast 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.

Fondaro Help

Docs & support

Hi there, how can we help?

Browse popular articles or ask a question below.

Popular articles

Powered by Claude

Or ask a question