Skip to content

Search sale agreements
Sales

Request

Searches sale agreements (compromis de vente) with cursor-based pagination. Requires SITE_PRODUCT:READ permission and RS:COMPROMIS_SEARCH right.

Use cases:

  • Retrieve all sales completed after a given date
  • Find a sale agreement by product reference or customer name
  • Export sales data for valuation reports (avis de valeur)

Key response fields for sale tracking:

  • buyer_price — actual buyer price (price including agency fees)
  • product_price — property net price
  • date_act — deed signing date (= effective sale date)
  • date_agreement — compromise signature date

Includes: Use the include field to load additional relations (buyer, seller, fees, agencies, etc.). Available includes: compromis_cs, agencies, buyer, buyer_groups, buyer_address, buyer_origin, buyer_admin, buyer_gender, buyer_informations, buyer_extended, buyer_relations, seller, seller_groups, seller_address, seller_origin, seller_admin, followed_nego, recommandation, fees, fees_nego, analytic

Security
bearerAuth
Bodyapplication/jsonrequired
keywordstring or null

Free text search across customer names, product model, dossier number.

Example:"Dupont"
is_without_productboolean or null

When true, returns only transactions without a linked product.

offer_statusstring or null

Filter by offer status. Only applicable for sales-offers search.

  • attente — Pending
  • acceptee — Accepted
  • refusee — Refused
  • annulee — Cancelled
Enum:"refusee""attente""annulee""acceptee"null
product_modelstring or null

Filter by product reference (exact or partial match).

Example:"REF-2025-001"
seller_firstnamestring or null

Filter by seller first name (partial match).

seller_lastnamestring or null

Filter by seller last name (partial match).

seller_emailstring or null

Filter by seller email.

buyer_firstnamestring or null

Filter by buyer first name (partial match).

buyer_lastnamestring or null

Filter by buyer last name (partial match).

buyer_emailstring or null

Filter by buyer email.

agency_idsArray of integers or null

Filter by agency IDs. Each ID must be within the authenticated site's scope.

Example:
[ 123, 456 ]
user_idsArray of integers or null

Filter by assigned user (agent) IDs.

Example:
[ 789 ]
last_modifiedstring or null, (date-time)

Only return transactions modified after this date. Format: ISO 8601 with timezone offset (YYYY-MM-DDTHH:MM:SS+HH:MM).

Example:"2025-01-01T00:00:00+01:00"
last_createdstring or null, (date-time)

Only return transactions created after this date. Format: ISO 8601 with timezone offset.

Example:"2025-06-01T00:00:00+02:00"
is_only_idsboolean or null

When true, returns only transaction IDs (lighter response).

per_pageinteger, [ 1 .. 200 ]

Number of results per page. Maximum 200.

Default:25
Example:50
cursorstring or null

Opaque pagination cursor. Pass the meta.next_cursor value from the previous response to fetch the next page. Omit for the first page.

sort_typestring or null

Field used to sort results.

Enum:"id""created_at""updated_at"null
sort_orderstring or null

Sort direction.

Default:"desc"
Enum:"asc""desc"null
includestring or null

Comma-separated relations to eagerly load in the response. See endpoint description for available includes.

Example:"buyer,seller,fees"
curl -i -X POST \
  https://api-doc.immo-facile.com/_mock/openapi/transactions/agreement/search \
  -H 'Authorization: Bearer <YOUR_opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "product_model": "REF-2025-001",
    "last_modified": "2025-01-01T00:00:00+01:00",
    "per_page": 50,
    "include": "buyer,seller,fees"
  }'

Responses

Paginated list of sale agreements

Bodyapplication/json
dataArray of objects(SaleTransactionResponse)
metaobject(CursorPaginationMeta-3)

Pagination metadata for cursor-based listings.

Response
{ "data": [ {} ], "meta": { "per_page": 25, "next_cursor": "eyJpZCI6MTIzfQ==", "prev_cursor": "string" }, "links": { "next": "string", "prev": "string" } }