API Copropriétaires
Lister, créer, modifier et supprimer des copropriétaires via l'API Syndic+.
Vue d'ensemble#
Le module Copropriétaires expose 4 outils MCP et endpoints REST équivalents pour gérer les propriétaires d'unités de votre syndicat.
| Outil MCP | Méthode REST | Portée |
|---|---|---|
list_co_owners | GET /api/co-owners | read:co-owners |
create_co_owner | POST /api/co-owners | write:co-owners |
update_co_owner | PATCH /api/co-owners/:id | write:co-owners |
delete_co_owner | DELETE /api/co-owners/:id | write:co-owners |
Objet Co-owner#
{
id: string; // UUID
firstName: string;
lastName: string;
email: string | null;
phone: string | null;
unitId: string; // UUID — voir /docs/api/units
fractionPercent: number; // 0-100 (quote-part en %)
isResident: boolean; // true = vit dans l'unité
isPrimary: boolean; // true = copropriétaire principal (1 par unité)
language: "fr" | "en";
hasPortalAccess: boolean;
createdAt: string; // ISO 8601
updatedAt: string;
}
list_co_owners#
Paramètres#
| Paramètre | Type | Requis | Description |
|---|---|---|---|
unitId | string | — | Filtrer par unité |
search | string | — | Recherche par nom ou email |
hasPortalAccess | boolean | — | Filtrer ceux qui ont un accès portail |
pageSize | number | — | 1–200, défaut 50 |
page | number | — | Défaut 1 |
Exemple#
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_co_owners",
"arguments": {
"search": "Tremblay",
"pageSize": 100
}
}
}
Réponse#
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"firstName": "Marie",
"lastName": "Tremblay",
"email": "marie@example.com",
"unitId": "123e4567-e89b-12d3-a456-426614174000",
"fractionPercent": 2.5,
"isPrimary": true
}
],
"pagination": {
"page": 1,
"pageSize": 100,
"total": 47
}
}
create_co_owner#
Paramètres#
| Paramètre | Type | Requis | Description |
|---|---|---|---|
firstName | string | ✅ | 1–100 caractères |
lastName | string | ✅ | 1–100 caractères |
email | string | — | Format email valide |
phone | string | — | Format E.164 recommandé |
unitId | string (UUID) | ✅ | L'unité doit exister |
fractionPercent | number | — | 0–100, défaut 0 |
isResident | boolean | — |
Exemple#
{
"name": "create_co_owner",
"arguments": {
"firstName": "Marie",
"lastName": "Tremblay",
"email": "marie@example.com",
"unitId": "123e4567-e89b-12d3-a456-426614174000",
"fractionPercent": 2.5,
"isPrimary": true,
"language": "fr"
}
}
Erreurs courantes#
| Code | Cause |
|---|---|
UNIT_NOT_FOUND | unitId inexistant dans votre syndicat |
DUPLICATE_PRIMARY | Une unité a déjà un isPrimary: true |
INVALID_EMAIL | Format email invalide |
FRACTION_OUT_OF_RANGE | fractionPercent < 0 ou > 100 |
update_co_owner#
Paramètres#
Tous les champs sont optionnels sauf id. Seuls les champs fournis sont modifiés.
{
"name": "update_co_owner",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "marie.tremblay@nouveau.com",
"phone": "+15145550123"
}
}
delete_co_owner#
Paramètres#
| Paramètre | Type | Requis |
|---|---|---|
id | string (UUID) | ✅ |
Comportement#
- Archive souple (pas de suppression physique) — le copropriétaire est marqué
deletedAtet retiré des listes - Les historiques de paiements, PV et décisions d'AG restent intacts
- Si le copropriétaire a un accès portail actif, il est automatiquement révoqué
- Autorisation requise : seul un admin du syndicat peut supprimer
Restaurer#
Pour restaurer un copropriétaire archivé, utilisez restore_co_owner (disponible via l'interface : Registre → Archives).
Import massif#
Pour importer plusieurs copropriétaires d'un coup, utilisez bulk_create_co_owners :
{
"name": "bulk_create_co_owners",
"arguments": {
"coOwners": [
{ "firstName": "Marie", "lastName": "Tremblay", "unitId": "..." },
{ "firstName": "Jean", "lastName": "Dupuis", "unitId": "..." }
]
}
}
Max 500 copropriétaires par appel. La réponse contient les IDs créés et les éventuelles erreurs par ligne.