Référence API
Versions
| Version | Préfixe | Disponibilité | Changements |
|---|---|---|---|
| 1.0.6 | /api/v1/ |
22/09/2026 | Ajout des routes d'enregistrement du pouvoir et du type de participation d'un participant |
| 1.0.5 | /api/v1/ |
10/03/2021 | Ajout de routes pour les VPC et assemblées de type VPC |
| 1.0.3 | /api/v1/ |
15/01/2021 | Ajout Belgique + date de validation des vpc + heure d'ouverture et fermeture de l'assemblée |
| 1.0.2 | /api/v1/ |
10/11/2020 | — |
| 1.0.1 | /api/v1/ |
30/06/2020 | — |
| 1.0.0 | /api/v1/ |
22/06/2020 | Version initiale |
Les versions antérieures à 1.0.6 vous ont été communiquées en deux chiffres : 1.5, 1.3, 1.2, 1.1 et 1.0 sont les 1.0.5, 1.0.3, 1.0.2, 1.0.1 et 1.0.0 de ce tableau. Le troisième chiffre est explicité depuis 1.0.6 pour distinguer l'ajout de la rupture.
Compatibilité
Un numéro de version s'écrit
X.Y.Z. Le chiffre qui bouge dit ce que vous avez à faire.| Incrément | Ce qui change | Ce que vous avez à faire |
|---|---|---|
X — refonte |
Nouveau modèle de ressources, d'authentification ou de pagination | Une migration, annoncée en amont avec une date de fin de support |
Y — rupture |
Une réponse change de forme : un champ ajouté, retiré, renommé, de type ou de valeur différente | Rien dans l'immédiat : la nouvelle forme a sa propre URL, et la précédente continue de servir celle que vous connaissez |
Z — ajout |
Une route ou un paramètre optionnel en plus. Rien de ce que vous lisez déjà | Rien, l'URL ne change pas |
Chaque rupture est publiée sous son propre préfixe d'URL, et un préfixe une fois publié ne change plus jamais de forme. Migrer se fait donc en changeant le préfixe dans vos appels, à votre rythme ; une intégration nouvelle part du préfixe le plus récent.
Un champ n'apparaît jamais dans une réponse servie par une URL que vous utilisez déjà : il attend la sienne.
Chaque réponse porte l'en-tête
X-Api-Version avec la version effectivement servie : c'est le moyen le plus sûr de savoir quelle forme vous recevez.Authentification
Prérequis :
- Pour utiliser cette API, vous devez nous contacter à contact@immosquare.com. Après vérification, nous vous fournirons
apiKeyetapiTokenà inclure dans les headers de vos requêtes.
# POST POST /path Content-Type: application/json apiKey: xz1232xzd213213er213213dczxcc3loizxzs12dczx apiToken: xz1287xzdwer213213dczxcas12dczx # GET GET /path apiKey: xz1232xzd213213er213213dczxcc3loizxzs12dczx apiToken: xz1287xzdwer213213dczxcas12dczx
Codes HTTP
Nous utilisons des codes conventionnels de réponse HTTP pour indiquer le succès ou l'échec des requêtes.
💚 Succès (2xx)
| HTTP Statut | Description |
|---|---|
| 200 - OK | Succès de la requête |
🚫 Erreurs client (4xx)
| HTTP Statut | Description |
|---|---|
| 400 - Bad Request | Paramètres manquants ou invalides |
| 401 - Unauthorized | API Key/token invalide |
| 402 - Request Failed | Requête valide mais échec du traitement |
| 404 - Not Found | Endpoint inexistant |
| 429 - Too Many Requests | Quota de requêtes dépassé |
🔧 Erreurs serveur (5xx)
| HTTP Statut | Description |
|---|---|
| 500, 502, 503, 504 - Server Errors | Erreur technique interne |
Urls API
production france : https://ag-connect.fr staging france : https://staging.ag-connect.fr production belgique : https://ag-connect.be staging belgique : https://staging.ag-connect.be production canada : https://ag-connect.ca staging canada : https://staging.ag-connect.ca
Chaque requête porte vos identifiants API dans les en-têtes
apiKey et apiToken, fournis à la création du partenariat.curl -X GET "https://ag-connect.fr/api/v1/assembly?user_uid=G7854&uid_provider=monlogiciel&uid_assembly=AG2026-001" \ -H "apiKey: votre_cle" \ -H "apiToken: votre_token"
curl -X POST "https://ag-connect.fr/api/v1/assembly/participant/presence" \ -H "apiKey: votre_cle" \ -H "apiToken: votre_token" \ -H "Content-Type: application/json" \ -d '{"user_uid":"G7854","uid_assembly":"AG2026-001","uid_participant":"COPRO-128","type_participant":"remotely_present"}'
Objets
Statut de l'assemblée
| Nom | Description |
|---|---|
| inpreparation | Assemblée en préparation |
| validated | Assemblée validée |
| convocked | Assemblée convoquée |
| opening | Assemblée ouverte |
| ongoing | Assemblée en cours |
| completed | Assemblée cloturée |
Type d'assemblée
| Nom | Description |
|---|---|
| standard | Assemblée classique |
| vpc | Assemblée uniquement en vote par correspondance |
| council | Conseils syndicaux et d'administrations |
Type entité juridique
| Nom | Description |
|---|---|
| syndic_ca | Canada : Syndic |
| association_ca | Canada : Association |
| company_ca | Canada : Entreprise |
| syndic_fr | France : Syndic |
| association_fr | France : Association |
| company_fr | France : Entreprise |
| asl_fr | France : ASL |
| aful_fr | France : AFUL |
| rie_fr | France : AGRIE |
| syndic_lu | Luxembourg : Syndic |
| syndic_be | Belgique : Syndic |
| grie_fr | France : GRIE |
Type de majorité
| Nom | Description |
|---|---|
type_majority_1 |
Canada (copro) - Majorité absolue(1096) |
type_majority_2 |
Canada (copro) - Majorité renforcée(1097) |
type_majority_3 |
Canada (copro) - Double Majorité(1098,1102) |
type_majority_4 |
Canada (copro) - Majorité simple(rattrapage) |
type_majority_5 |
Canada (copro) - Unanimité |
type_majority_6 |
France (copro) - Majorité simple(24) |
type_majority_7 |
France (copro) - Majorité Absolue(25-1) |
type_majority_8 |
France (copro) - Double majorité(26-1) |
type_majority_9 |
France (copro) - Unanimité |
type_majority_10 |
France (association & Entreprise) - Majorité simple (OUI > NON) |
type_majority_11 |
France (association & Entreprise) - Majorité simple (OUI > 50% présents) |
type_majority_12 |
France (association & Entreprise) - Majorité Absolue |
type_majority_13 |
France (association & Entreprise) - Majorité qualifée (OUI > 75% présents) |
type_majority_14 |
France (association & Entreprise) - Majorité qualifée (OUI > 75% clé de vote) |
type_majority_15 |
France (copro) - Majorité Absolue(25) sans revote |
type_majority_16 |
France (copro) - Double majorité(26) sans revote |
type_majority_17 |
Luxembourg (copro) - Majorité simple(15) (OUI > NON) |
type_majority_18 |
Luxembourg (copro) - Majorité Absolue(16) > 50% de l'ensemble de la clé de vote |
type_majority_19 |
Luxembourg (copro) - Double majorité(17) >= 75% de l'ensemble de la clé de vote et +50% des copros |
type_majority_20 |
Luxembourg (copro) - Unanimité |
type_majority_21 |
Belgique (copro) - Majorité absolue (50 % + 1) |
type_majority_22 |
Belgique (copro) - Majorité qualifiée des quatre cinquièmes (80 %) |
type_majority_23 |
Belgique (copro) - Majorité qualifiée des deux tiers |
type_majority_24 |
Belgique (copro) - Unanimité (100 %) |
type_majority_25 |
Canada (Companie & Entreprise) - Majorité simple (OUI > 50% présents) |
type_majority_26 |
Canada (Companie & Entreprise) - Majorité absolue (OUI > 50% de la clé de vote) |
type_majority_27 |
Canada (Companie & Entreprise) - Majorité des deux tiers des présents |
type_majority_28 |
Allemagne (copro) - Majorité simple + de 50 % des parties présentes |
type_majority_29 |
Allemagne (copro) - Majorité qualifiée + de 75% des parties présentes |
type_majority_30 |
Allemagne (copro) - Majorité absolue (100% des parties présentes) |
type_majority_31 |
France (ASL) - 2/3 des voix de tous les membres |
type_majority_32 |
France (ASL) - unanimité des membres |
type_majority_33 |
France (ASL) - majorité absolue |
type_majority_34 |
France (ASL) - double majorité |
type_majority_35 |
France (ASL) - 2/3 des présents et représentés |
type_majority_36 |
France (ASL) - 3/4 des voix de tous les membres |
type_majority_37 |
France (ASL) - Majorité absolue Immeuble |
type_majority_38 |
France (ASL) - Double maj, moitié en nombre + 2/3 des voix de tous les membres |
type_majority_39 |
France (ASL) - Double maj (2e Conv), moitié en nombre + 2/3 des voix de tous les membres |
type_majority_40 |
France (ASL) - Double maj, 2/3 des membres et 2/3 des voix |
type_majority_41 |
France (ASL) - 3/4 des présents et représentés |
type_majority_42 |
France (RIE) - Majorité des voix des membres présents et représentés |
type_majority_43 |
France (RIE) - Majorité absolue |
type_majority_44 |
France (RIE) - Double majorité |
type_majority_45 |
France (RIE) - Vote propriétaire |
type_majority_46 |
France (RIE) - Unanimité |
type_majority_47 |
France (ASL) - Majorité des voix des membres présents et représentés |
type_majority_48 |
France (AFUL) - 2/3 des voix de tous les membres |
type_majority_49 |
France (AFUL) - unanimité des membres |
type_majority_50 |
France (AFUL) - majorité absolue |
type_majority_51 |
France (AFUL) - double majorité |
type_majority_52 |
France (AFUL) - 2/3 des présents et représentés |
type_majority_53 |
France (AFUL) - 3/4 des voix de tous les membres |
type_majority_54 |
France (AFUL) - Majorité absolue Immeuble |
type_majority_55 |
France (AFUL) - Double maj, moitié en nombre + 2/3 des voix de tous les membres |
type_majority_56 |
France (AFUL) - Double maj (2e Conv), moitié en nombre + 2/3 des voix de tous les membres |
type_majority_57 |
France (AFUL) - Double maj, 2/3 des membres et 2/3 des voix |
type_majority_58 |
France (AFUL) - 3/4 des présents et représentés |
type_majority_59 |
France (AFUL) - Majorité des voix des membres présents et représentés |
type_majority_60 |
France (GRIE) - Majorité des voix des membres présents et représentés |
type_majority_61 |
France (GRIE) - Majorité absolue |
type_majority_62 |
France (GRIE) - Double majorité |
type_majority_63 |
France (GRIE) - Vote propriétaire |
type_majority_64 |
France (GRIE) - Unanimité |
Type de participation
| Nom | Description |
|---|---|
| physically_present | Présents physiquement |
| remotely_present | Présents à distance |
| anticipation_vote | Vote par correspondance |
| procuration_vote | Vote par procuration |
Type de convocation
| Nom | Description |
|---|---|
| internal | Participants ayant droit de vote |
| external | Participants n'ayant pas de droit de vote |
Statut de la procuration
| Nom | Description |
|---|---|
| -1 | En attente |
| 0 | Aucun statut |
| 1 | Procuration acceptée |
Type de choix de vote
| Nom | Description |
|---|---|
| classic | Vote par oui/non/abstention |
| custom | Vote par choix multiples |
Clean Datas Categories
| Nom | Description |
|---|---|
| present | Calcul sur les présents |
| absent | Calcul sur les absents |
| assembly | Calcul sur l'assemblée |
present_on_assembly |
Calcul sur les présents par rapport à l'assemblée |
absent_on_assembly |
Calcul sur les absents par rapport à l'assemblée |
| no_vote | Calcul sur les ne vote pas |
no_vote_on_present |
Calcul sur les ne vote paspar rapport aux présents |
no_vote_on_assembly |
Calcul sur les ne vote paspar rapport à l'assemblée |
| newsless | Calcul sur les sans nouvelles |
newsless_on_present |
Calcul sur les sans nouvellespar rapport aux présents |
newsless_on_assembly |
Calcul sur les sans nouvellespar rapport à l'assemblée |
| yes | Calcul sur les oui |
yes_on_present |
Calcul sur les ouipar rapport aux présents |
yes_on_assembly |
Calcul sur les ouipar rapport à l'assemblée |
| no | Calcul sur les non |
no_on_present |
Calcul sur les nonpar rapport aux présents |
no_on_assembly |
Calcul sur les nonpar rapport à l'assemblée |
| abstention | Calcul sur les abstention |
abstention_on_present |
Calcul sur les abstentionpar rapport aux présents |
abstention_on_assembly |
Calcul sur les abstentionpar rapport à l'assemblée |
Timezone
| Pris en charge |
|---|
| Australia/Adelaide |
| Australia/Broken_Hill |
| America/Anchorage |
| America/Juneau |
| America/Nome |
| America/Yakutat |
| Pacific/Gambier |
| Asia/Almaty |
| Europe/Amsterdam |
| Europe/Athens |
| America/Anguilla |
| America/Antigua |
| America/Argentina/San_Luis |
| America/Aruba |
| America/Asuncion |
| America/Barbados |
| America/Blanc-Sablon |
| America/Boa_Vista |
| America/Campo_Grande |
| America/Cuiaba |
| America/Curacao |
| America/Dominica |
| America/Eirunepe |
| America/Glace_Bay |
| America/Goose_Bay |
| America/Grenada |
| America/Guadeloupe |
| America/Guyana |
| America/Halifax |
| America/Manaus |
| America/Marigot |
| America/Martinique |
| America/Moncton |
| America/Montserrat |
| America/Porto_Velho |
| America/PortofSpain |
| America/Puerto_Rico |
| America/Rio_Branco |
| America/Santo_Domingo |
| America/St_Barthelemy |
| America/St_Kitts |
| America/St_Lucia |
| America/St_Thomas |
| America/St_Vincent |
| America/Thule |
| America/Tortola |
| Antarctica/Palmer |
| Atlantic/Bermuda |
| Atlantic/Stanley |
| Antarctica/McMurdo |
| Antarctica/South_Pole |
| Pacific/Auckland |
| Pacific/Funafuti |
| Pacific/Kwajalein |
| Pacific/Majuro |
| Pacific/Nauru |
| Pacific/Tarawa |
| Pacific/Wake |
| Pacific/Wallis |
| Atlantic/Azores |
| Asia/Baghdad |
| Asia/Baku |
| Asia/Dubai |
| Indian/Mahe |
| Indian/Mauritius |
| Indian/Reunion |
| Asia/Bangkok |
| Europe/Belgrade |
| Europe/Berlin |
| America/Bogota |
| Europe/Bratislava |
| Australia/Brisbane |
| Europe/Brussels |
| Europe/Bucharest |
| Europe/Budapest |
| America/Araguaina |
| America/Argentina/Buenos_Aires |
| America/Argentina/Catamarca |
| America/Argentina/Cordoba |
| America/Argentina/Jujuy |
| America/Argentina/La_Rioja |
| America/Argentina/Mendoza |
| America/Argentina/Rio_Gallegos |
| America/Argentina/Salta |
| America/Argentina/San_Juan |
| America/Argentina/Tucuman |
| America/Argentina/Ushuaia |
| America/Bahia |
| America/Belem |
| America/Cayenne |
| America/Fortaleza |
| America/Godthab |
| America/Maceio |
| America/Miquelon |
| America/Montevideo |
| America/Paramaribo |
| America/Recife |
| America/Santarem |
| America/Sao_Paulo |
| Antarctica/Rothera |
| Africa/Blantyre |
| Africa/Bujumbura |
| Africa/Cairo |
| Africa/Gaborone |
| Africa/Johannesburg |
| Africa/Kigali |
| Africa/Lubumbashi |
| Africa/Lusaka |
| Africa/Maputo |
| Africa/Maseru |
| Africa/Mbabane |
| Africa/Tripoli |
| Asia/Amman |
| Asia/Beirut |
| Asia/Damascus |
| Asia/Gaza |
| Asia/Nicosia |
| Europe/Chisinau |
| Europe/Kaliningrad |
| Europe/Kiev |
| Europe/Mariehamn |
| Europe/Simferopol |
| Europe/Uzhgorod |
| Europe/Zaporozhye |
| America/Scoresbysund |
| Atlantic/Cape_Verde |
| America/Caracas |
| Africa/Casablanca |
| America/Belize |
| America/Cancun |
| America/Chicago |
| America/Costa_Rica |
| America/El_Salvador |
| America/Guatemala |
| America/Indiana/Knox |
| America/Indiana/Tell_City |
| America/Managua |
| America/Matamoros |
| America/Menominee |
| America/Merida |
| America/North_Dakota/Center |
| America/NorthDakota/NewSalem |
| America/Rainy_River |
| America/Rankin_Inlet |
| America/Regina |
| America/Swift_Current |
| America/Tegucigalpa |
| America/Winnipeg |
| Pacific/Easter |
| Pacific/Galapagos |
| America/Chihuahua |
| Asia/Chongqing |
| Europe/Copenhagen |
| Australia/Darwin |
| Antarctica/Mawson |
| Asia/Bishkek |
| Asia/Dhaka |
| Asia/Karachi |
| Asia/Novokuznetsk |
| Asia/Omsk |
| Asia/Qyzylorda |
| Asia/Thimphu |
| Indian/Chagos |
| Europe/Dublin |
| America/Atikokan |
| America/Cayman |
| America/Detroit |
| America/Grand_Turk |
| America/Guayaquil |
| America/Havana |
| America/Indiana/Indianapolis |
| America/Indiana/Marengo |
| America/Indiana/Petersburg |
| America/Indiana/Vevay |
| America/Indiana/Vincennes |
| America/Indiana/Winamac |
| America/Iqaluit |
| America/Jamaica |
| America/Kentucky/Louisville |
| America/Kentucky/Monticello |
| America/Montreal |
| America/Nassau |
| America/New_York |
| America/Nipigon |
| America/Panama |
| America/Pangnirtung |
| America/Port-au-Prince |
| America/Resolute |
| America/Thunder_Bay |
| America/Toronto |
| Pacific/Fiji |
| Pacific/Guam |
| Africa/Harare |
| America/Adak |
| Pacific/Fakaofo |
| Pacific/Honolulu |
| Pacific/Johnston |
| Pacific/Rarotonga |
| Pacific/Tahiti |
| Europe/Helsinki |
| Australia/Hobart |
| Antarctica/Casey |
| Asia/Brunei |
| Asia/Choibalsan |
| Asia/Harbin |
| Asia/Hong_Kong |
| Asia/Kashgar |
| Asia/Kuching |
| Asia/Macau |
| Asia/Makassar |
| Asia/Manila |
| Asia/Shanghai |
| Asia/Ulaanbaatar |
| Asia/Irkutsk |
| Europe/Istanbul |
| Antarctica/Davis |
| Asia/Hovd |
| Asia/HoChiMinh |
| Asia/Jakarta |
| Asia/Phnom_Penh |
| Asia/Pontianak |
| Asia/Vientiane |
| Indian/Christmas |
| Asia/Jerusalem |
| Asia/Kabul |
| Asia/Kamchatka |
| Asia/Aqtau |
| Asia/Aqtobe |
| Asia/Ashgabat |
| Asia/Dushanbe |
| Asia/Oral |
| Asia/Samarkand |
| Asia/Yekaterinburg |
| Indian/Kerguelen |
| Indian/Maldives |
| Asia/Kathmandu |
| Asia/Kolkata |
| Asia/Krasnoyarsk |
| Asia/Kuala_Lumpur |
| Asia/Kuwait |
| America/La_Paz |
| America/Lima |
| Europe/Lisbon |
| Europe/Ljubljana |
| Africa/Abidjan |
| Africa/Accra |
| Africa/Bamako |
| Africa/Banjul |
| Africa/Bissau |
| Africa/Conakry |
| Africa/Dakar |
| Africa/El_Aaiun |
| Africa/Freetown |
| Africa/Lome |
| Africa/Nouakchott |
| Africa/Ouagadougou |
| Africa/Sao_Tome |
| America/Danmarkshavn |
| Antarctica/Vostok |
| Atlantic/Canary |
| Atlantic/Faroe |
| Atlantic/Madeira |
| Atlantic/Reykjavik |
| Atlantic/St_Helena |
| Europe/Guernsey |
| Europe/IsleofMan |
| Europe/Jersey |
| Europe/London |
| Europe/Madrid |
| Asia/Magadan |
| America/Mazatlan |
| Australia/Melbourne |
| America/Mexico_City |
| America/Noronha |
| Atlantic/South_Georgia |
| Europe/Minsk |
| Africa/Monrovia |
| America/Monterrey |
| Africa/Addis_Ababa |
| Africa/Asmara |
| Africa/DaresSalaam |
| Africa/Djibouti |
| Africa/Kampala |
| Africa/Khartoum |
| Africa/Mogadishu |
| Antarctica/Syowa |
| Asia/Aden |
| Asia/Bahrain |
| Asia/Qatar |
| Europe/Moscow |
| Europe/Samara |
| Indian/Antananarivo |
| Indian/Comoro |
| Indian/Mayotte |
| America/Boise |
| America/Cambridge_Bay |
| America/Dawson_Creek |
| America/Denver |
| America/Edmonton |
| America/Hermosillo |
| America/Inuvik |
| America/Ojinaga |
| America/Phoenix |
| America/Shiprock |
| America/Yellowknife |
| Asia/Colombo |
| Asia/Muscat |
| Africa/Nairobi |
| America/St_Johns |
| Asia/Novosibirsk |
| Pacific/Enderbury |
| Pacific/Tongatapu |
| America/Dawson |
| America/Los_Angeles |
| America/Santa_Isabel |
| America/Vancouver |
| America/Whitehorse |
| Pacific/Pitcairn |
| Africa/Algiers |
| Africa/Bangui |
| Africa/Brazzaville |
| Africa/Ceuta |
| Africa/Douala |
| Africa/Kinshasa |
| Africa/Lagos |
| Africa/Libreville |
| Africa/Luanda |
| Africa/Malabo |
| Africa/Ndjamena |
| Africa/Niamey |
| Africa/Porto-Novo |
| Africa/Tunis |
| Africa/Windhoek |
| Arctic/Longyearbyen |
| Europe/Andorra |
| Europe/Gibraltar |
| Europe/Luxembourg |
| Europe/Malta |
| Europe/Monaco |
| Europe/Oslo |
| Europe/Paris |
| Europe/Podgorica |
| Europe/San_Marino |
| Europe/Tirane |
| Europe/Vaduz |
| Europe/Vatican |
| Europe/Zurich |
| Australia/Perth |
| Pacific/Port_Moresby |
| Europe/Prague |
| Asia/Rangoon |
| Indian/Cocos |
| Europe/Riga |
| Asia/Riyadh |
| Europe/Rome |
| Pacific/Apia |
| Pacific/Midway |
| Pacific/Niue |
| Pacific/Pago_Pago |
| America/Santiago |
| Europe/Sarajevo |
| Asia/Seoul |
| Asia/Singapore |
| Europe/Skopje |
| Europe/Sofia |
| Asia/Anadyr |
| Pacific/Efate |
| Pacific/Guadalcanal |
| Pacific/Kosrae |
| Pacific/Noumea |
| Pacific/Ponape |
| Europe/Stockholm |
| Antarctica/DumontDUrville |
| Asia/Sakhalin |
| Australia/Currie |
| Australia/Lindeman |
| Australia/Sydney |
| Pacific/Saipan |
| Pacific/Truk |
| Asia/Taipei |
| Europe/Tallinn |
| Asia/Tashkent |
| Asia/Tbilisi |
| Asia/Tehran |
| America/Tijuana |
| Asia/Dili |
| Asia/Jayapura |
| Asia/Pyongyang |
| Asia/Tokyo |
| Pacific/Palau |
| Asia/Urumqi |
| Europe/Vienna |
| Europe/Vilnius |
| Asia/Vladivostok |
| Europe/Volgograd |
| Europe/Warsaw |
| Asia/Yakutsk |
| Asia/Yerevan |
| Europe/Zagreb |
Détails d'une assemblée
Cette route vous permet d'otenir le détail d'une assemblée crée pour un de vos utilisateurs. L'id vous ait fourni au retour d'une création assemblée
Vous devez renseigner useruid qui va correspondre à l'uid de l'utilisateur dans votre système ainsi que votre uidprovider, ceci nous permettra de récupérer l'assemblée sur l'utilisateur correspondant.
Si il n'est pas trouvé ou non renseigné, la récupération de l'AG sera impossible.
Vous devez renseigner useruid qui va correspondre à l'uid de l'utilisateur dans votre système ainsi que votre uidprovider, ceci nous permettra de récupérer l'assemblée sur l'utilisateur correspondant.
Si il n'est pas trouvé ou non renseigné, la récupération de l'AG sera impossible.
Call
GET {base_url}/api/v1/assembly/
QUERY Parameters
| Parameter | Type | Description |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_provider | string | Uid provider (identifiant unique du partenaire qui fait appel à l’API. Cet identifiant est fourni à la création du partenariat et ne pourra plus être modifié) |
| uid_assembly | string | Id (identifiant unique) de l'assemblée dans votre système |
Réponse
{ "user_uid": "G78965", "uid_provider": "crypto", "id": "8107c7251e2144e5277d7d055f9cd00d", "uid": "AG Test", "date": "2020-07-02", "time": "13:18:00", "time_zone": "Europe/Paris", "name": "Test france", "assembly_status": "completed", "opened_at": "2020-07-07T22:46:29.000+02:00", "closed_at": "2020-07-07T23:46:33.000+02:00", "first_vote_closed_at": "2020-07-07T22:54:29.000+02:00", "public_note": "", "location": "", "vpc_closed": "2020-07-04T22:54:29.000+02:00", "type_assembly": "standard", "anticipation_vote_mail": "something@something.fr", "communication_mail": "something@something.fr", "address": { "formatted": "", "street_number": "", "street_name": "", "zipcode": "", "locality": "", "sublocality": "", "latitude": null, "longitude": null, "administrative_area_level_1": "", "administrative_area_level_2": "", "country": "" }, "entity": { "uid": null, "name": "Port Grimaud", "type_entity": "syndic_fr", "presential_allowed": 1, "distance_vote_allowed": 1, "multiple_keys_allowed": 1, "procuration_allowed": 1, "module_manager": 1, "entity_keys": [ "clé a", "clé b", "clé c" ], "address": { "address1": "Place de l'église", "address2": "Port Grimaud", "city": "Grimaud", "country": "FR", "province": "", "zipcode": "83310" } }, "documents": [], "participants": [ { "uid": null, "identifier": "19v0qm", "access_code": "k0xadze", "type_participant": "anticipation_vote", "delegate_username": null, "procuration_status": 0, "type_convocation": "internal", "anticipation_vote_validation_at": "2020-07-07T22:46:33.000+02:00", "general_quotity": 1145.0, "participant_keys": { "clé a": 512.0, "clé b": 454.69, "clé c": 478.58 }, "first_name": "Michel", "last_name": "Dupont", "mobile": "060000000", "unit_name": "A548", "email": "email@example.com", "time_zone": "Europe/Paris", "avatar_url": null, "original_avatar_url": null, "address": { "address1": "Place de l'église", "address2": "Port Grimaud", "city": "Grimaud", "country": "FR", "province": "", "zipcode": "83310" }, "signature": { "drawing": null, "ip": null, "datetime": null, "user_agent": null }, "exit_live_datetime": null, "anticipation_votes": [ { "resolution_uid": "123456", "answer": "yes", "vote_at": "2020-07-02T22:46:33.000+02:00" }, { "resolution_uid": "123457", "answer": "no", "vote_at": "2020-07-02T22:46:33.000+02:00" }, { "resolution_uid": "123458", "answer": "abstention", "vote_at": "2020-07-02T22:46:33.000+02:00" } ] } ], "resolutions": [ { "uid": null, "type_majority": "type_majority_6", "is_votable": 1, "is_secret_vote": null, "title": "Test générale maj simple", "description": "", "comment": null, "internal_note": null, "vote_key": "general", "vote_choice_type": "classic", "vote_choice_number": null, "vote_choices": null, "vote_opened_at": "2020-06-10T13:55:43.000+02:00", "vote_closed_at": "2020-06-10T13:55:48.000+02:00", "vote_result": { "resolution_id": 72, "type_majority": "type_majority_6", "vote_choice_type": "classic", "accepted": false, "second_turn_allowed": null, "clean_datas": { "data": { "present": { "qp": "8635.58", "nb": "3.0", "header": true }, "absent": { "qp": "0.0", "nb": "2.0", "header": true }, "assembly": { "qp": "8635.58", "nb": "5.0", "header": true }, "present_on_assembly": { "qp": "1.0", "nb": "0.6", "header": true }, "absent_on_assembly": { "qp": "0.0", "nb": "0.4", "header": true }, "no_vote": { "qp": 0, "nb": 0, "header": true }, "no_vote_on_present": { "qp": "0.0", "nb": "0.0", "header": true }, "no_vote_on_assembly": { "qp": "0.0", "nb": "0.0", "header": true }, "newsless": { "qp": 0, "nb": 0, "header": true }, "newsless_on_present": { "qp": "0.0", "nb": "0.0", "header": true }, "newsless_on_assembly": { "qp": "0.0", "nb": "0.0", "header": true }, "yes": { "qp": "1145.0", "nb": "1.0", "header": false }, "yes_on_present": { "qp": "0.132590978255079566166951149", "nb": "0.333333333333333333", "header": false }, "yes_on_assembly": { "qp": "0.132590978255079566166951149", "nb": "0.2", "header": false }, "no": { "qp": "7490.58", "nb": "2.0", "header": false }, "no_on_present": { "qp": "0.867409021744920433833048851", "nb": "0.666666666666666667", "header": false }, "no_on_assembly": { "qp": "0.867409021744920433833048851", "nb": "0.4", "header": false }, "abstention": { "qp": 0, "nb": 0, "header": false }, "abstention_on_present": { "qp": "0.0", "nb": "0.0", "header": false }, "abstention_on_assembly": { "qp": "0.0", "nb": "0.0", "header": false } }, "list_data": { "username": { "yes": [ "19v0qm" ], "no": [ "ajvjj7", "vrnw9n" ], "abstention": [], "no_vote": [], "newsless": [], "absent": [ "k9z1r7", "eqjajx" ] }, "full_infos": { "yes": [ "Michel Dupont #(A548)" ], "no": [ "Jérôme Dupont #(A549)", "Henri Michel" ], "abstention": [], "no_vote": [], "newsless": [], "absent": [ "Jérôme Chiron", "Jules Dupont" ] } }, "list_opponent": { "username": [ "19v0qm" ], "full_infos": [ "Michel Dupont #(A548)" ] }, "result": false }, "raw_datas": { "qp": { "yes": "1145.0", "no": "7490.58", "abstention": 0, "no_vote": 0, "newsless": 0, "absent": "0.0" }, "nb": { "yes": "1.0", "no": "2.0", "abstention": 0, "no_vote": 0, "newsless": 0, "absent": "2.0" } } }, "documents": [] } ] }
Général
| Node | Type | Description |
|---|---|---|
| user_uid | uid | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| id | uuid | Id dans notre système |
Assemblée
| Node | Type | Description |
|---|---|---|
| uid | string | Id (identifiant unique) de l'assemblée dans votre système |
| date | date | Date de l'assemblée (YYYY-MM-DD) |
| time | time | Heure de l'assemblée (HH:MM:SS) |
| time_zone | string | Objet Timezone |
| name | string | Nom de l'assemblée |
| assembly_status | string | Objet Statut de l'assemblée |
| opened_at | datetime | Date et heure de l'ouverture de l'assemblée |
| closed_at | datetime | Date et heure de fermeture de l'assemblée |
first_vote_closed_at |
datetime | Date et heure de fermeture du premier vote |
| public_note | string | Note publique de l'assemblée |
| location | string | Lieu de l'assemblée |
| vpc_closed | datetime | Date et heure de fermeture des votes par correspondance |
| type_assembly | string | Objet Type d'assemblée |
anticipation_vote_mail |
string | Email pour recevoir les notifications des votes par correspondance |
| communication_mail | string | Email pour recevoir les réponses des emails envoyés aux participants |
| address | hash | Objet Address |
| entity | hash | Objet Entité |
| documents | array | Objet Documents |
| participants | array | Objet Participants |
| resolutions | array | Objet Résolutions |
Adresse
| Node | Type | Description |
|---|---|---|
| formatted | string | Adresse complète |
| street_number | string | Numéro de voie |
| street_name | string | Nom de la voie |
| zipcode | string | Code postal |
| locality | string | Ville |
| sublocality | string | Quartier |
| latitude | float | Latitude |
| longitude | float | Longitude |
administrative_area_level_1 |
string | Département |
administrative_area_level_2 |
string | Région si disponible |
| country | string | Pays |
Entité
| Node | Type | Description |
|---|---|---|
| name | string | Nom de l'entité |
immatriculation_number |
string | Numéro d'immatriculation de l'entité |
| type_entity | string | Objet Type entité juridique |
| presential_allowed | integer | Si le vote pprésentiel est autorisé |
distance_vote_allowed |
integer | Si le vote par correspondance est autorisé |
multiple_keys_allowed |
integer | Si les clés multiples sont autorisées |
| procuration_allowed | integer | Si le vote par procuration est autorisée |
| module_manager | integer | Autoriser les participants à transmettre leur procuration au gestionnaire d’assemblée (0/1) |
| entity_keys | array | Liste des clefs multiples |
| address | hash | Adresse de l'entité |
| address1 | string | Adresse |
| address2 | string | Adresse complémentaire |
| city | string | Ville |
| country | string | Pays |
| province | string | Région |
| zipcode | string | Code postal |
Documents
| Node | Type | Description |
|---|---|---|
| name | string | Nom du document |
| content_type | string | Type de document |
| size | integer | Taille du document |
| url | string | Url du document (présignée, valable 1 heure) |
Participants
| Node | Type | Description |
|---|---|---|
| uid | string | Id (identifiant unique) du participant dans votre système |
| identifier | string | Identifiant de connexion |
| access_code | string | Code d'accès de connexion |
| type_participant | string | Objet Type de participation |
| delegate_username | string | Délégation au participant |
| procuration_status | string | Objet Statut de la procuration |
| type_convocation | string | Objet Type de convocation |
anticipation_vote_validation_at |
datetime | Date et heure d'enregistrement du vote par correspondance |
| general_quotity | float | Valeur de la clé générale |
| participant_keys | hash | Liste des clés secondaires et de leurs valeurs |
| first_name | string | Prénom |
| last_name | string | Nom |
| mobile | string | Numéro de téléphone mobile |
| unit_name | string | Numéros de lots |
| string | ||
lre |
integer | Consentement LRE au format du paramètre d'import : 1 = consentement recueilli, -1 = refus, 0 = tout le reste — aucun consentement, mais aussi sollicitation en cours ou email en erreur. Lisez lre_status avant d'agir : une relance sur un 0 peut doubler une sollicitation déjà partie |
lre_status |
string | Détail du statut du consentement LRE : active (consentement recueilli), pending (sollicitation en cours), delegate (consentement déclaré par le partenaire ou le gestionnaire), removed (refus), bounce (email en erreur), null (aucun consentement connu) |
| time_zone | string | Objet Timezone |
| avatar_url | string | Url de la photo |
original_avatar_url |
string | Url originale de la photo |
exit_live_datetime |
datetime | Date et heure de sortie de l'assemblée |
| address | hash | Adresse du participant |
| address1 | string | Adresse |
| address2 | string | Adresse complémentaire |
| city | string | Ville |
| country | string | Pays |
| province | string | Région |
| zipcode | string | Code postal |
| signature | hash | Signature du participant |
| drawing | string | Image de la signature |
| ip | string | Ip |
| datetime | string | Date et heure |
| user_agent | string | User agent utilisé |
| anticipation_votes | array | Votes par anticipation |
| resolution_uid | string | Uid de la résolution |
| answer | string | Réponse à la résolution |
| vote_at | datetime | Date et heure du vote |
Résolutions
| Node | Type | Description |
|---|---|---|
| uid | integer | Id (identifiant unique) de la résolution dans votre système |
| number | string | Numéro d'affichage de la résolution |
parent_resolution_uid |
string | Uid de la résolution parente (null pour une résolution de premier niveau) |
| type_majority | string | Objet Type de majorité |
| is_votable | integer | Si votable |
| issecretvote | integer | Si est un vote à bulletin secret |
| title | string | Titre de la résolution |
| description | string | Description de la résolution |
| comment | string | Commentaires |
| internal_note | string | Note interne |
| vote_key | string | Clé utilisé sur le vote |
vote_choice_type |
string | Objet Type de choix de vote |
vote_choice_number |
integer | Nombre de réponses autorisée |
| vote_choices | string | Liste des choix proposées pour le vote séparé par une virgule (ex: 'Entreprise Joubert,Entreprise Lafont') |
vote_opened_at |
datetime | Date et heure d'ouverture du vote |
vote_closed_at |
datetime | Date et heure de fermeture du vote |
| vote_result | hash | Résultats du vote |
| resolution_id | integer | Id de la résolution |
| type_majority | string | Type de majorité |
vote_choice_type |
string | Type de choix de vote |
| accepted | bool | Si acceptée (true : acceptée, false: refusée, :null : sans décision) |
second_turn_allowed |
bool | Si un second tour est possible |
| clean_datas | hash | Résultats compilés |
| result | bool | Si la résolution est acceptée |
| datas | hash | Calculs compilés |
_clean_datas_categories_ |
array | Calcul sur la catégorie, voir Objet Clean data categories |
| qp | float | Total sur la clef |
| nb | float | Total sur le nombre de participants |
| header | bool | Data interne, ne sert pas |
| list_data | hash | Liste de noms par identifinats,noms et opposants |
| username_ | hash | Liste des noms par identifiants |
| yes | array | Liste des participants ayant voté oui |
| no | array | Liste des participants ayant voté non |
| abstention | array | Liste des participants ayant voté abstention |
| no_vote | array | Liste des participants ayant voté ne vote pas |
| newsless | array | Liste des participants présents mais sans nouvelles |
| absent | array | Liste des participants absent |
_full_infos_ |
hash | Liste des noms par prénoms/noms/n° de lot |
| yes | array | Liste des participants ayant voté oui |
| no | array | Liste des participants ayant voté non |
| abstention | array | Liste des participants ayant voté abstention |
| no_vote | array | Liste des participants ayant voté ne vote pas |
| newsless | array | Liste des participants présents mais sans nouvelles |
| absent | array | Liste des participants absent |
| list_opponent | hash | Liste des opposants |
| user_name | array | Liste des opposants par identifiants |
| full_infos | array | Liste des opposants par prénoms/noms/n° de lot |
| raw_datas | hash | Résultats bruts |
| qp | hash | Calcul sur la clé |
| yes | float | Sommes des oui |
| no | float | Sommes des non |
| abstention | float | Sommes des abstention |
| no_vote | float | Sommes des ne vote pas |
| newsless | float | Sommes des sans nouvelles |
| absent | float | Sommes des absent |
| nb | hash | Calcul sur le nombre de participants |
| yes | float | Sommes des oui |
| no | float | Sommes des non |
| abstention | float | Sommes des abstention |
| no_vote | float | Sommes des ne vote pas |
| newsless | float | Sommes des sans nouvelles |
| absent | float | Sommes des absent |
| documents | array | |
| name | string | Nom du document |
| content_type | string | Type de document |
| size | integer | Taille du document |
| url | string | Url du document (présignée, valable 1 heure) |
Erreurs
{ "errors": "Vous devez spécifier un user_uid", "errors": "Vous devez spécifier un uid_provider", "errors": "Cet user_uid ne correspond à aucun utilisateur sur votre accès" }
Création d'une assemblée
Cette route vous permet de créer une assemblée.Vous devez renseigner 'user_uid' qui va correspondre à l'uid de l'utilisateur dans votre système, ceci nous permettra de créer l'assemblée sur l'utilisateur correspondant. Si il n'est pas trouvé ou non renseigné, la création de l'AG sera impossible.
Les AG, participants et résolutions sans uid ne seront pas importés, nous avons besoin des ces identifiants pour vous permettre de les mettre à jour. Attention les participants avec le même UID et email seront fusionnées.
Une AG peut être mis à jour avec sa liste de documents,.... uniquement si l'assemblée est toujours dans le statut
En préparation. Si la requête est acceptée, nous importerons votre AG sur une tache planifiée immédiatement, vous pourrez ainsi la récupérez après quelques minutes.
HTTP Request (création)
POST {base_url}/api/v1/assembly
JSON Parameter (création)
Exemple
{ "user_uid": "G78965", "uid_provider": "nom_provider", "uid": "AG37", "date": "2020-07-02", "time": "22:00:00", "time_zone": "Europe/Paris", "name": "Assemblée générale LES FLANERIES", "public_note": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "location": "Salle de la Pérouse", "type_assembly": "standard", "anticipation_vote_mail": "something@something.fr", "communication_mail": "something@something.fr", "address": { "formatted": "15, Place de l'église 31000 Toulouse", "street_number": "15", "street_name": "Place de l'église", "zipcode": "31000", "locality": "Toulouse", "sublocality": "", "latitude": 0.458282, "longitude": 15.4585, "administrative_area_level_1": "", "administrative_area_level_2": "", "country": "France" }, "entity": { "uid": "EA4", "name": "LES FLANERIES", "type_entity": "syndic_fr", "presential_allowed": 0, "distance_vote_allowed": 0, "multiple_keys_allowed": 1, "procuration_allowed": 1, "module_manager": 1, "entity_keys": [ "clé a", "clé b", "clé c" ], "address": { "formatted": "15, Place de l'église 31000 Toulouse", "address1": "Place de l'église", "address2": "", "city": "Toulouse", "country": "FR", "province": "", "zipcode": "31000" } }, "documents": [ { "name": "AG-CONNECT", "url": "https://url_photo_ag_connect.jpg" } ], "participants": [ { "uid": "PA1", "type_convocation": "internal", "general_quotity": 1145.0, "participant_keys": { "clé a": 512.0, "clé b": 454.69, "clé c": 478.58 }, "first_name": "Michel", "last_name": "Dupont", "mobile": "0606060606", "unit_name": "A548", "email": "email@example.com", "time_zone": "Europe/Paris", "avatar_url": "https://https://url_photo_ag_connect.jpg", "LRE": 0, "address": { "formatted": "15, Place de l'église 31000 Toulouse", "address1": "Place de l'église", "address2": "Port Grimaud", "city": "Grimaud", "country": "FR", "province": "", "zipcode": "83310" } } ], "resolutions": [ { "uid": "RO8", "type_majority": "type_majority_6", "is_votable": 1, "is_secret_vote": 1, "title": "Test générale maj simple", "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "comment": null, "internal_note": null, "vote_key": "general", "vote_choice_type": "classic", "vote_choice_number": null, "vote_choices": null, "documents": [ { "name": "mls_logo.jpg", "url": "https://url_photo_ag_connect.jpg" }, { "name": "mls_logo2.jpg", "url": "https://url_photo_ag_connect.jpg" } ] } ] }
| Node | Type | Description | Requis |
|---|---|---|---|
| user_uid | uid | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée | requis |
| id | uuid | Id dans notre système |
Assemblée (création)
| Node | Type | Description | Requis |
|---|---|---|---|
| uid | string | Id (identifiant unique) de l'assemblée dans votre système | requis |
| date | date | Date de l'assemblée (YYYY-MM-DD) | requis |
| time | time | Heure de l'assemblée (HH:MM:SS) | requis |
| time_zone | string | Objet Timezone | requis |
| name | string | Nom de l'assemblée. | requis |
| public_note | string | Note publique de l'assemblée | |
| location | string | Lieu de l'assemblée | |
| type_assembly | string | Objet Type d'assemblée | |
anticipation_vote_mail |
string | Email pour recevoir les notifications des votes par correspondance | |
| communication_mail | string | Email pour recevoir les réponses des emails envoyés aux participants | |
| address | hash | Objet Address | |
| entity | hash | Objet Entité | |
| documents | array | Objet Documents | |
| participants | array | Objet Participants | |
| resolutions | array | Objet Résolutions |
Adresse (création)
| Node | Type | Description |
|---|---|---|
| formatted | string | Adresse complète |
| street_number | string | Numéro de voie |
| street_name | string | Nom de la voie |
| zipcode | string | Code postal |
| locality | string | Ville |
| sublocality | string | Quartier |
| latitude | float | Latitude |
| longitude | float | Longitude |
administrative_area_level_1 |
string | Département |
administrative_area_level_2 |
string | Région si disponible |
| country | string | Pays |
Entité (création)
| Node | Type | Description | requis |
|---|---|---|---|
| uid | string | Id (identifiant unique) de l'entité dans votre système | requis |
| name | string | Nom de l'entité | requis |
| type_entity | string | Objet Type entité juridique | requis |
| presential_allowed | integer | Si le vote pprésentiel est autorisé | |
distance_vote_allowed |
integer | Si le vote par correspondance est autorisé | |
multiple_keys_allowed |
integer | Si les clés multiples sont autorisées | |
| procuration_allowed | integer | Si le vote par procuration est autorisée | |
| module_manager | integer | Autoriser les participants à transmettre leur procuration au gestionnaire d’assemblée (0/1) | |
| entity_keys | array | Liste des clefs multiples | |
| address | hash | Adresse de l'entité | |
| address1 | string | Adresse | |
| address2 | string | Adresse complémentaire | |
| city | string | Ville | |
| country | string | Pays | |
| province | string | Région | |
| zipcode | string | Code postal |
Documents (création)
| Node | Type | Description |
|---|---|---|
| name | string | Nom du document |
| url | string | Url du document ou nom du fichier présent dans le zip si via FTP |
Participants (création)
| Node | Type | Description | Requis |
|---|---|---|---|
| uid | string | Id (identifiant unique) du participant dans votre système | requis |
| type_convocation | string | Objet Type de convocation | requis |
| general_quotity | float | Valeur de la clé générale | requis |
| participant_keys | hash | Liste des clés secondaires et de leurs valeurs | |
| first_name | string | Prénom | |
| last_name | string | Nom | requis |
| mobile | string | Numéro de téléphone mobile | |
| unit_name | string | Numéros de lots | |
| string | |||
| time_zone | string | Objet Timezone | requis |
| avatar_url | string | Url de la photo ou nom du fichier présent dans le zip si via FTP | |
| lre | integer | Consentement LRE : 1 = consentement déjà recueilli chez vous (enregistré comme consentement délégué), -1 = refus (enregistré sans solliciter le participant), 0 ou absent = aucune action |
|
| address | hash | Adresse du participant | |
| address1 | string | Adresse | |
| address2 | string | Adresse complémentaire | |
| city | string | Ville | |
| country | string | Pays | |
| province | string | Région | |
| zipcode | string | Code postal |
Résolutions (création)
| Node | Type | Description | Requis |
|---|---|---|---|
| uid | string | Id (identifiant unique) de la résolution dans votre système | requis |
| number | string | Numéro d'affichage de la résolution | |
parent_resolution_uid |
string | Uid de la résolution parente, pour une sous-résolution — la résolution parente doit figurer dans le même flux | |
| type_majority | string | Objet Type de majorité | requis |
| is_votable | integer | Si votable | |
is_secret_vote |
integer | Si est un vote à bulletin secret | |
| title | string | Titre de la résolution | |
| description | string | Description de la résolution | |
| comment | string | Commentaires | |
| internal_note | string | Note interne | |
| vote_key | string | Clé utilisé sur le vote | requis |
vote_choice_type |
string | Objet Type de choix de vote | requis |
vote_choice_number |
integer | Nombre de réponses autorisée | |
| vote_choices | string | Liste des choix proposées pour le vote séparé par une virgule (ex: 'Entreprise Joubert,Entreprise Lafont') | |
| documents | array | ||
| name | string | Nom du document | |
| url | string | Url du document ou nom du fichier présent dans le zip si via FTP |
Réponse (création)
La requête acceptée répond en HTTP 202.
import_uid est l'identifiant de corrélation de cet import : il vous permet de retrouver son résultat précis dans le journal d'importation (statut, éléments écartés, compteurs par section).{ "message": "Votre demande est en cours de traitement", "import_uid": "f0e6c1de-3f7a-4a4e-9c9d-1a2b3c4d5e6f" }
Un élément invalide (participant incomplet, type de majorité inconnu, document sans URL...) n'annule pas l'import : il est écarté et journalisé dans les
rejected_items du journal, et récapitulé dans l'email de retour envoyé à l'utilisateur. Une clé de répartition inconnue sur une résolution n'écarte pas la résolution : elle est importée sur la clé générale et signalée en avertissement (severity: "warning").Le corps de la requête est limité à 10 Mo : au-delà, la requête est refusée en HTTP 413.
Erreurs (création)
{ "errors": "Contenu trop volumineux : la limite est de 10 Mo par requête", "errors": "Un import est déjà en cours", "errors": "Vous devez spécifier un user_uid", "errors": "Vous devez spécifier un uid_provider", "errors": "Cet user_uid ne correspond à aucun utilisateur sur votre accès", "errors": "Cette assemblée n'a pas pu être crée", "errors": "Cette assemblée a déjà été validée, il n'est plus possible de lui apporter des modifications", "errors": "La date de l'assemblée est invalide", "errors": "L'heure de l'assemblée est invalide", "errors": "Le fuseau horaire de l'assemblée est invalide", "errors": "L'heure de l'assemblée est obligatoire", "errors": "La date de l'assemblée est obligatoire", "errors": "Le fuseau horaire de l'assemblée est obligatoire", "errors": "Aucun uid fourni pour cette assemblée", "errors": "Aucune entité juridique fournie", "errors": "Aucun uid fourni pour cette entité", "errors": "Entité juridique incorrect, voir Type Entité" }
Import immédiat d'un fichier sur le FTP
Cette route vous permet de demander l'import immédiat d'un fichier que vous avez préalablement déposer sur notre FTP.
HTTP Request (import)
POST {base_url}/api/v1/assembly/import
QUERY Parameters (import)
| Parameter | Type | Description |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_provider | string | Uid provider (identifiant unique du partenaire qui fait appel à l’API. Cet identifiant est fourni à la création du partenariat et ne pourra plus être modifié) |
| filename | string | Nom du fichier à importer ( ex: A7854provider1514515151.zip ) |
Réponse (import)
La requête acceptée répond en HTTP 202. Le flux FTP ne porte pas d'
import_uid de corrélation : un même fichier peut produire plusieurs imports. Consultez le journal d'importation de chaque assemblée pour en connaître le résultat.{ "message": "Votre demande est en cours de traitement" }
Erreurs (import)
{ "errors": "Ce fichier n'existe pas sur le FTP", "errors": "Un import est déjà en cours" }
Récupération des documents d'une assemblée
Cette route vous permet de récupérer le PV et la feuille de présence encodés en base 64 lorsqu'une AG est complétée. Les fichiers servis sont les documents publiés — exactement ceux diffusés aux copropriétaires, jamais une régénération. Si le gestionnaire a dépublié les documents, ou si le PV n'est pas encore rédigé, validé et signé, la requête est refusée en HTTP 409 avec un message explicite : réessayez plus tard.
HTTP Request (documents)
GET {base_url}/api/v1/assembly/documents
QUERY Parameters (documents)
| Parameter | Type | Description |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_provider | string | Uid provider (identifiant unique du partenaire qui fait appel à l’API. Cet identifiant est fourni à la création du partenariat et ne pourra plus être modifié) |
| uid_assembly | string | Id (identifiant unique) de l'assemblée dans votre système |
Réponse (documents)
| Node | Type | Description |
|---|---|---|
| pv | string | PDF du procès-verbal publié, encodé en base 64 (null si absent) |
| timesheet | string | PDF de la feuille de présence publiée, encodé en base 64 (null si absent) |
| signed_documents | array | Documents signés pendant l'assemblée : id, name et pdf (base 64) — liste vide s'il n'y en a pas |
{ "pv": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/KQovQ3JlYXRvciAo/v8A\ndwBrAGgAdABtAGwAdABvAHAAZABmACAAMAAuADEAMgAuADUpCi9Qcm9kdWNl\nciAo/....", "timesheet": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/KQovQ3JlYXRvciAo/v8A\ndwBrAGgAdABtAGwAdABvAHAAZABmACAAMAAuADEAMgAuADUpCi9Qcm9kdWNl\nciAo/", "signed_documents": [ { "id": 12345, "name": "Contrat de syndic", "pdf": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/KQovQ3JlYXRvciAo/v8A\ndwBrAGgAdABtAGwAdABvAHAAZABmACAAMAAuADEAMgAuADUpCi9Qcm9kdWNl\nciAo/" } ] }
Erreurs (documents)
{ "errors": "Vous devez spécifier un user_uid", "errors": "Vous devez spécifier un uid_provider", "errors": "Cet user_uid ne correspond à aucun utilisateur sur votre accès", "errors": "Cette assemblée est introuvable pour cet utilisateur", "errors": "Assemblée non cloturée", "errors": "Les documents de cette assemblée ne sont pas encore publiés", "errors": "Les documents de cette assemblée ont été dépubliés par le gestionnaire" }
| Code HTTP | Cas |
|---|---|
| 404 | Utilisateur ou assemblée introuvable |
| 409 | Assemblée non clôturée, documents pas encore publiés ou dépubliés par le gestionnaire |
Enregistrement d'un vote par correspondance pour un participant
Cette route vous permet d'enregistrer un vote par par correspondance pour un participant. Si aucune erreur est retournée, les votes sont enregistrés et validés sur Ag connect. Si une erreur apparaît, les votes valides seront enregistrés mais le vpc ne sera pas validé.
HTTP Request (vpc)
POST {base_url}/api/v1/assembly/import/vpc
JSON Parameter (vpc)
{ "user_uid": "XXXXXXXX", "uid_provider": "name_provider", "uid_assembly": "AGVPC", "uid_participant": "1", "signature_drawing": "image_en_base64", "signature_datetime": "2021-07-07T22:46:29.000+02:00", "signature_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/53736", "signature_user_ip": "259.259.259.259", "resolutions": [ { "uid": "1", "answer_classic": "yes" }, { "uid": "2", "answer_classic": "no" }, { "uid": "3", "answer_classic": "abstention" }, { "uid": "4", "answer_custom": "1,2,3,4" } ] }
Type de réponse answer_classic (vpc)
| Code | Type | Description |
|---|---|---|
| yes | string | Oui à la résolution |
| no | string | Non à la résolution |
| abstention | string | Abstention à la résolution |
Type de réponse answer_custom (vpc)
Dans ce cas précis, la résolution est sur une question à choix multiples, il suffit de renseigner les choix possibles séparés par une
,
Les choix transmis doivent tous figurer parmi ceux ouverts par la résolution, et leur nombre ne doit pas dépasser le maximum qu'elle autorise. Un seul choix inconnu rejette le vote entier : les autres choix ne sont pas enregistrés à sa place, car un bulletin amputé serait indistinguable d'un vote réellement exprimé au moment du dépouillement. Le vote apparaît alors dans le journal d'importation en
rejected, et il vous suffit de corriger le flux puis de rejouer l'appel.| Node | Type | Description Requis |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_provider | string | Uid provider (identifiant unique du partenaire qui fait appel à l’API. Cet identifiant est fourni à la création du partenariat et ne pourra plus être modifié) |
| uid_assembly | string | Id (identifiant unique) de l'assemblée dans votre système |
| uid_participant | uuid | Id du participant dans votre système |
| signature_drawing | string | Image de la signature du participant en base 64 |
| signature_datetime | datetime | Date de la signature du participant |
signature_user_agent |
string | User agent utilisé lors de la signature |
signature_user_ip |
string | IP utilisé lors de la signature |
| resolutions | array | Liste des résolutions |
| uid | uuid | Id de la résolution dans votre système |
| answer_classic | string | Objet Type de réponse answer_classic |
| answer_custom | string | Objet Type de réponse answer_custom |
Réponse (vpc)
Le statut HTTP porte le verdict : 200 si le vote est enregistré et validé, 422 sinon. Le corps est identique dans les deux cas :
success (booléen), errors, une liste de messages en texte brut — des avertissements peuvent accompagner un succès (par exemple un vote invalide retombé en abstention) — et import_uid, l'identifiant de corrélation qui permet de retrouver l'entrée correspondante dans le journal d'importation.{ "success": true, "errors": [], "import_uid": "3f1c2a9e-6f6b-4c1e-9a3d-2b8e4f5a6c7d" }
Erreurs (vpc)
En HTTP 422 :
{ "success": false, "errors": [ "Resolution with uid '3': Invalid vote, 'ne se prononce pas' doesn't exist, vote will be 'abstention'", "Resolution with uid 's' doesn't exist, skipping !" ], "import_uid": "3f1c2a9e-6f6b-4c1e-9a3d-2b8e4f5a6c7d" }
Une assemblée ou un participant introuvables répondent en HTTP 404 (
"Cette assemblée est introuvable pour cet utilisateur", "Ce participant est introuvable sur cette assemblée").Enregistrement d'un vote par correspondance pour plusieurs participants
Cette route vous permet d'enregistrer un vote par par correspondance pour plusieurs participants. Une tâche de fond sera lancé par Ag connect pour importer les votes. Il vous faudra consulter les logs ensuite pour avoir le retour de l'importation.
HTTP Request (vpcm)
POST {base_url}/api/v1/assembly/import/vpcs
JSON Parameter (vpcm)
{ "user_uid": "54X99996", "uid_provider": "crypto", "uid_assembly": "AGVPC", "participants": [ { "uid_participant": "1", "signature_drawing": "image_en_base64", "signature_datetime": "2021-07-07T22:46:29.000+02:00", "signature_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/53736", "signature_user_ip": "127.0.0.1", "resolutions": [ { "uid": "1", "answer_classic": "yes", "answer_custom": "1,2,3,4" }, { "uid": "2", "answer_classic": "no", "answer_custom": "1,2,3,4" }, { "uid": "3", "answer_classic": "abstention", "answer_custom": "1,2,3,4" }, { "uid": "s", "answer_classic": "abstention", "answer_custom": "1,2,3,4" }, { "uid": "4", "answer_classic": "michel", "answer_custom": "1" } ] }, { "uid_participant": "2", "signature_drawing": "image_en_base64", "signature_datetime": "2021-07-07T22:46:29.000+02:00", "signature_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/53736", "signature_user_ip": "127.0.0.1", "resolutions": [ { "uid": "1", "answer_classic": "yes", "answer_custom": "1,2,3,4" }, { "uid": "2", "answer_classic": "no", "answer_custom": "1,2,3,4" }, { "uid": "3", "answer_classic": "abstention", "answer_custom": "1,2,3,4" }, { "uid": "4", "answer_classic": "yes", "answer_custom": "1,2,3,4,5,6" } ] } ] }
Type de réponse answer_classic (vpcm)
| Code | Type | Description |
|---|---|---|
| yes | string | Oui à la résolution |
| no | string | Non à la résolution |
| abstention | string | Abstention à la résolution |
Type de réponse answer_custom (vpcm)
Dans ce cas précis, la résolution est sur une question à choix multiples, il suffit de renseigner les choix possibles séparés par une
,
Les choix transmis doivent tous figurer parmi ceux ouverts par la résolution, et leur nombre ne doit pas dépasser le maximum qu'elle autorise. Un seul choix inconnu rejette le vote entier : les autres choix ne sont pas enregistrés à sa place, car un bulletin amputé serait indistinguable d'un vote réellement exprimé au moment du dépouillement. Le vote apparaît alors dans le journal d'importation en
rejected, et il vous suffit de corriger le flux puis de rejouer l'appel.| Node | Type | Description |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_provider | string | Uid provider (identifiant unique du partenaire qui fait appel à l’API. Cet identifiant est fourni à la création du partenariat et ne pourra plus être modifié) |
| uid_assembly | string | Id (identifiant unique) de l'assemblée dans votre système |
| uid_participant | uuid | Id du participant dans votre système |
| signature_drawing | string | Image de la signature du participant en base 64 |
| signature_datetime | datetime | Date de la signature du participant |
signature_user_agent |
string | User agent utilisé lors de la signature |
signature_user_ip |
string | IP utilisé lors de la signature |
| resolutions | array | Liste des résolutions |
| uid | uuid | Id de la résolution dans votre système |
| answer_classic | string | Objet Type de réponse answer_classic |
| answer_custom | string | Objet Type de réponse answer_custom |
Réponse (vpcm)
La requête acceptée répond en HTTP 202.
import_uid est l'identifiant de corrélation de cette importation : le résultat est à consulter dans le journal d'importation, où il permet de retrouver l'entrée correspondante.{ "message": "Votre demande est en cours de traitement", "import_uid": "3f1c2a9e-6f6b-4c1e-9a3d-2b8e4f5a6c7d" }
Erreurs (vpcm)
| Code HTTP | Cas |
|---|---|
| 400 |
uid_assembly, user_uid ou uid_provider absent |
| 403 | Le uid_provider fourni ne correspond pas aux identifiants API utilisés (apiKey) |
| 404 | Utilisateur ou assemblée introuvable |
| 409 | L'assemblée n'est pas au statut convoquée |
Enregistrement d'un pouvoir pour un participant
Disponible dès l'API 1.0.6.
Cette route vous permet d'enregistrer le pouvoir donné par un participant, toujours sans consigne de vote : le mandataire votera comme il l'entend. Elle répond au cas du copropriétaire qui renvoie son formulaire de pouvoir sans passer par le vote par correspondance.
Le pouvoir enregistré par l'API est en tout point identique à celui saisi par le gestionnaire : il apparaît dans l'onglet Pouvoirs, sur la feuille de présence et sur le document de pouvoir.
Trois formes selon les paramètres transmis :
| Paramètre transmis | Pouvoir enregistré |
|---|---|
uid_delegate |
Le mandataire est déjà participant de l'assemblée. Le pouvoir est accepté d'office (status à 1), exactement comme lorsque le gestionnaire l'attribue |
delegate |
Le mandataire est extérieur à l'assemblée et désigné par son email. Il est créé s'il n'existe pas encore, et le pouvoir reste en attente de son acceptation (status à -1) |
| aucun des deux | Pouvoir sans mandataire nommé, à attribuer à l'ouverture de l'assemblée par le gestionnaire (defer_to_opening à true) |
L'assemblée doit être convoquée, ouverte ou en cours, et le pouvoir doit être autorisé sur son entité juridique.
Un participant ne donne qu'un seul pouvoir : si un pouvoir est déjà enregistré, la requête est refusée et c'est au gestionnaire de le retirer. Le refus sort en HTTP 409 quand le participant est passé en vote par procuration, et en HTTP 422 avec le motif « A déjà donné son pouvoir » quand un mandataire lui est rattaché sans que ce passage ait eu lieu. Si le participant n'est pas en droit d'en donner — vote par correspondance validé, participant sans droit de vote, mandataire portant déjà un pouvoir, plafond légal de pouvoirs atteint — le motif exact vous est rendu en HTTP 422.
uid_provider n'est pas attendu sur cette route : vos identifiants API (apiKey) identifient déjà le partenaire.HTTP Request (procuration)
POST {base_url}/api/v1/assembly/participant/procuration
JSON Parameter (procuration)
Pouvoir donné à un autre participant de l'assemblée :
{ "user_uid": "G7854", "uid_assembly": "AG2026-001", "uid_participant": "COPRO-128", "uid_delegate": "COPRO-042" }
Pouvoir donné à un mandataire extérieur à l'assemblée :
{ "user_uid": "G7854", "uid_assembly": "AG2026-001", "uid_participant": "COPRO-128", "delegate": { "email": "michel.dupont@example.com", "last_name": "Dupont", "first_name": "Michel", "address1": "12 rue des Lilas", "zipcode": "75011", "city": "Paris", "country": "FR" } }
Pouvoir à attribuer à l'ouverture de l'assemblée :
{ "user_uid": "G7854", "uid_assembly": "AG2026-001", "uid_participant": "COPRO-128" }
| Node | Type | Description |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_assembly | string | Id (identifiant unique) de l'assemblée dans votre système |
| uid_participant | string | Id (identifiant unique) du participant qui donne pouvoir, dans votre système |
| uid_delegate | string | Id (identifiant unique) du mandataire dans votre système, quand il est lui-même participant de l'assemblée |
| delegate | hash | Mandataire extérieur à l'assemblée, ignoré si uid_delegate est transmis |
| string | Email du mandataire, obligatoire : c'est lui qui le désigne, et un mandataire externe déjà présent sur l'assemblée est reconnu par cet email plutôt que dupliqué | |
| last_name | string | Nom du mandataire, obligatoire s'il n'existe pas encore sur l'assemblée |
| first_name | string | Prénom du mandataire |
| address1 | string | Adresse du mandataire |
| zipcode | string | Code postal du mandataire |
| city | string | Ville du mandataire |
| country | string | Pays du mandataire |
Réponse (procuration)
La réponse rend l'état du participant après écriture, avec les mêmes clés que l'export d'assemblée pour que vous puissiez la recouper avec
GET /api/v1/assembly.| Node | Type | Description |
|---|---|---|
| uid | string | Id (identifiant unique) du participant dans votre système |
| identifier | string | Identifiant de connexion |
| type_participant | string |
Objet Type de participation — procuration_vote après un pouvoir accepté |
| procuration | hash | Pouvoir enregistré, null si le participant n'est pas en pouvoir |
| status | integer | Objet Statut de la procuration |
| type | string |
internal si le mandataire est participant de l'assemblée ou reste à désigner à l'ouverture, external s'il lui est extérieur. Sans rapport avec type_convocation, qui porte le droit de vote |
| defertoopening | boolean |
true quand le mandataire reste à désigner à l'ouverture de l'assemblée |
| delegate | hash | Mandataire, null tant qu'il n'est pas désigné |
| uid | string | Id du mandataire dans votre système, null pour un mandataire externe créé par l'API |
| identifier | string | Identifiant de connexion du mandataire — c'est lui qui le désigne quand il n'a pas d'uid dans votre système |
| last_name | string | Nom du mandataire |
| first_name | string | Prénom du mandataire |
| string | Email du mandataire | |
| type_convocation | string | Objet Type de convocation |
{ "uid": "COPRO-128", "identifier": "dupont-128", "type_participant": "procuration_vote", "procuration": { "status": 1, "type": "internal", "defer_to_opening": false, "delegate": { "uid": "COPRO-042", "identifier": "martin-042", "last_name": "Martin", "first_name": "Claire", "email": "claire.martin@example.com", "type_convocation": "internal" } } }
Erreurs (procuration)
{ "errors": "Vous devez spécifier un uid pour l'assemblée", "errors": "Vous devez spécifier un user_uid", "errors": "Vous devez spécifier un uid_participant", "errors": "Cet user_uid ne correspond à aucun utilisateur sur votre accès", "errors": "Cette assemblée est introuvable pour cet utilisateur", "errors": "Ce participant est introuvable sur cette assemblée", "errors": "Cette assemblée est clôturée, plus aucune modification n'est possible", "errors": "Cette assemblée n'est pas convoquée", "errors": "Le pouvoir n'est pas autorisé pour cette entité juridique", "errors": "Ce participant a déjà donné pouvoir, le gestionnaire doit le retirer avant toute nouvelle saisie", "errors": "A déjà donné son pouvoir", "errors": "Un mandataire externe ne peut pas donner pouvoir", "errors": "Ce mandataire est introuvable sur cette assemblée", "errors": "Ce mandataire ne peut pas porter de pouvoir (il vote par correspondance ou a lui-même donné pouvoir)", "errors": "Il n'est plus possible d'ajouter un pouvoir pour ce participant", "errors": "Un participant ne peut pas se donner pouvoir à lui-même", "errors": "L'email du mandataire externe est invalide", "errors": "Le nom du mandataire externe (last_name) est obligatoire pour le créer", "errors": "Limite atteinte : 3 pouvoirs (maximum 3)" }
| Code HTTP | Cas |
|---|---|
| 400 |
uid_assembly, user_uid ou uid_participant absent |
| 404 | Utilisateur, assemblée, participant ou mandataire introuvable |
| 409 | Assemblée clôturée, assemblée pas encore convoquée, ou participant ayant déjà donné pouvoir |
| 422 | Pouvoir non autorisé sur l'entité juridique, participant ou mandataire non éligible, mandataire déjà rattaché au participant, plafond de pouvoirs atteint, ou mandataire externe mal renseigné |
Enregistrement du type de participation d'un participant
Disponible dès l'API 1.0.6.
Cette route vous permet d'enregistrer le type de participation annoncé par un participant : présent sur place, ou présent à distance lorsque l'assemblée autorise la participation à distance. Comme pour le pouvoir, l'assemblée doit être convoquée, ouverte ou en cours.
Un pouvoir ou un vote par correspondance déjà validé n'est jamais écrasé en silence : la requête est refusée en HTTP 409 et c'est au gestionnaire de le retirer. La participation ne peut pas non plus être modifiée pendant qu'une résolution est ouverte au vote.
uid_provider n'est pas attendu sur cette route : vos identifiants API (apiKey) identifient déjà le partenaire.HTTP Request (presence)
POST {base_url}/api/v1/assembly/participant/presence
JSON Parameter (presence)
{ "user_uid": "G7854", "uid_assembly": "AG2026-001", "uid_participant": "COPRO-128", "type_participant": "remotely_present" }
| Node | Type | Description |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_assembly | string | Id (identifiant unique) de l'assemblée dans votre système |
| uid_participant | string | Id (identifiant unique) du participant dans votre système |
| type_participant | string |
physically_present (valeur par défaut) ou remotely_present. Aucune autre valeur n'est acceptée : le pouvoir et le vote par correspondance ont leurs propres routes |
Réponse (presence)
La réponse est celle de la route pouvoir : l'état du participant après écriture. Voir Réponse (procuration).
{ "uid": "COPRO-128", "identifier": "dupont-128", "type_participant": "remotely_present", "procuration": null }
Erreurs (presence)
{ "errors": "Vous devez spécifier un uid pour l'assemblée", "errors": "Vous devez spécifier un user_uid", "errors": "Vous devez spécifier un uid_participant", "errors": "Cet user_uid ne correspond à aucun utilisateur sur votre accès", "errors": "Cette assemblée est introuvable pour cet utilisateur", "errors": "Ce participant est introuvable sur cette assemblée", "errors": "Cette assemblée est clôturée, plus aucune modification n'est possible", "errors": "Cette assemblée n'est pas convoquée", "errors": "Type de participation invalide, les valeurs acceptées sont physically_present et remotely_present", "errors": "La participation à distance n'est pas autorisée sur cette assemblée", "errors": "Ce participant a déjà donné pouvoir, le gestionnaire doit le retirer avant toute nouvelle saisie", "errors": "Ce participant a validé son vote par correspondance, le gestionnaire doit le révoquer avant toute nouvelle saisie", "errors": "Une résolution est en cours de vote, la participation ne peut pas être modifiée" }
| Code HTTP | Cas |
|---|---|
| 400 |
uid_assembly, user_uid ou uid_participant absent |
| 404 | Utilisateur, assemblée ou participant introuvable |
| 409 | Assemblée clôturée, assemblée pas encore convoquée, pouvoir ou vote par correspondance déjà enregistré, résolution ouverte au vote |
| 422 | Type de participation invalide, ou participation à distance non autorisée sur cette assemblée |
Journal d'importation
Cette route vous permet de consulter le journal d'importation sur une assemblée : le statut de chaque import, les éléments écartés ou importés avec adaptation, et les compteurs reçus/importés par section. L'
import_uid rendu au moment de la création vous permet de retrouver l'entrée correspondant à votre requête.HTTP Request (journal)
GET {base_url}/api/v1/assembly/log
QUERY Parameters (journal)
| Parameter | Type | Description |
|---|---|---|
| user_uid | string | Uid de l'utilisateur (ou plus exactement identifiant unique de l’agence) pour lequel vous voulez obtenir l'assemblée |
| uid_provider | string | Uid provider (identifiant unique du partenaire qui fait appel à l’API. Cet identifiant est fourni à la création du partenariat et ne pourra plus être modifié) |
| uid_assembly | string | Id (identifiant unique) de l'assemblée dans votre système |
Réponse (journal)
Chaque entrée de
logs décrit un import, du plus récent au plus ancien :| Node | Type | Description |
|---|---|---|
| import_uid | uuid | Identifiant de corrélation de l'entrée. Il vous est rendu à l'acceptation de la requête sur la création d'assemblée et les votes par correspondance ; sur les imports FTP il existe mais ne vous est pas communiqué, le dépôt d'un fichier ne donnant pas lieu à une réponse. Null sur les imports antérieurs à ce suivi |
| status | string |
pending (en attente), running (en cours), success (tout importé), partial (au moins un élément écarté ou adapté), failed (import en échec) |
| with_errors | integer | Signal binaire historique : 1 dès qu'un élément est en erreur ou n'a pas pu être validé, y compris quand le reste de l'import est passé. Il ne dit pas que l'import a échoué — pour le verdict, lisez status
|
| started_at | datetime | Début du traitement |
| finished_at | datetime | Fin du traitement |
| rejected_items | array | Éléments écartés ou adaptés — voir ci-dessous |
| sections_counts | hash | Compteurs received / imported par section (participant, resolution, assembly_document, resolution_document, vote) ; section absente si rien reçu |
| log | string | Journal technique détaillé |
Chaque élément de
rejected_items :| Node | Type | Description |
|---|---|---|
| type | string |
participant, resolution, assembly_document, resolution_document ou vote (imports de votes par correspondance) |
| uid | string | Uid de l'élément dans votre système (null s'il n'a pas pu être lu) |
| label | string | Libellé de l'élément (nom, titre...) |
| severity | string |
rejected = non importé, warning = importé mais adapté (ex : clé de répartition remplacée par la générale) |
| reason | string | Motif en langage métier |
{ "uid": "AGVPC", "logs": [ { "import_uid": "f0e6c1de-3f7a-4a4e-9c9d-1a2b3c4d5e6f", "status": "partial", "with_errors": 0, "started_at": "2026-08-17T08:54:47.000+02:00", "finished_at": "2026-08-17T08:54:49.000+02:00", "rejected_items": [ { "type": "resolution", "uid": "R1", "label": "Travaux toiture", "severity": "warning", "reason": "Clé de répartition CLE-TOITURE inconnue, la clé générale a été utilisée à la place" }, { "type": "resolution", "uid": "R2", "label": "Budget prévisionnel", "severity": "rejected", "reason": "Type de majorité inconnu : majorite_bidon" } ], "sections_counts": { "participant": {"received": 3, "imported": 3}, "resolution": {"received": 3, "imported": 2} }, "log": "==============================\nStarting entity\n==============================" }, { "import_uid": "3f1c2a9e-6f6b-4c1e-9a3d-2b8e4f5a6c7d", "status": "partial", "with_errors": 1, "started_at": "2026-08-17T09:12:03.000+02:00", "finished_at": "2026-08-17T09:12:04.000+02:00", "rejected_items": [ { "type": "vote", "uid": "R4", "label": "Michel Dupont", "severity": "rejected", "reason": "La résolution n'existe pas sur cette assemblée" }, { "type": "participant", "uid": "1", "label": "Michel Dupont", "severity": "warning", "reason": "Des votes sont en erreur, le vote par correspondance n'a pas été validé pour ce participant" } ], "sections_counts": { "participant": {"received": 2, "imported": 1}, "vote": {"received": 8, "imported": 7} }, "log": "==============================\nVPC Import worker started 17 August 2026 at 09:12\n==============================" } ] }
Import via FTP
Introduction (ftp_import)
Il est possible d'importer les assemblée générales d'un client via FTP en nous déposant un fichier zip contenant un JSON correspondant à l'AG à importer et ses documents associés. Pour utiliser le FTP, vous devez nous contacter à info@ag-connect.com. Après vérification nous vous fourniront un login/pass pour déposez votre fichier.
Nom de fichier (ftp_import)
Le nom du fichier zip doit être de la forme
Les documents importables sont limités à une taille maximum de 20mo.
uid_user_
provider_timestamp.zip (ex: G7854provider1025110211.zip). Le fichier JSON requis est le même modèle que celui utilisé pour l'API.
Les documents importables sont limités à une taille maximum de 20mo.
Prise en compte des documents/avatars (ftp_import)
Il suffit de mettre le nom du fichier à la place d'une url pour les documents des AG, des résolutions et des avatar pour les copropriétaires.