Authentification Erreurs Versions Urls API Objets Statut de l'assemblée Type d'assemblée Type entité juridique Type de majorité Type de participation Type de convocation Statut de la procuration Type de choix de vote Clean Datas Categories Timezone Détails d'une assemblée Général Assemblée Adresse Entité Documents Participants Résolutions Erreurs Création d'une assemblée HTTP Request (création) JSON Parameter (création) Assemblée (création) Adresse (création) Entité (création) Documents (création) Participants (création) Résolutions (création) Réponse (création) Erreurs (création) Import immédiat d'un fichier sur le FTP HTTP Request (import) QUERY Parameters (import) Réponse (import) Erreurs (import) Récupération des documents d'une assemblée HTTP Request (documents) QUERY Parameters (documents) Réponse (documents) Erreurs (documents) Enregistrement d'un vote par correspondance pour un participant HTTP Request (vpc) JSON Parameter (vpc) Type de réponse answer_classic (vpc) Type de réponse answer_custom (vpc) Réponse (vpc) Erreurs (vpc) Enregistrement d'un vote par correspondance pour plusieurs participants HTTP Request (vpcm) JSON Parameter (vpcm) Type de réponse answer_classic (vpcm) Type de réponse answer_custom (vpcm) Réponse (vpcm) Journal d'importation HTTP Request (journal) QUERY Parameters (journal) Réponse (journal) Import via FTP Introduction (ftp_import) Nom de fichier (ftp_import) Prise en compte des documents/avatars (ftp_import)
Mode d'affichage

Authentification

Pour utiliser cette api, vous devez nous contacter à contact@immosquare.com. Après vérification nous vous fournirons une clé et un token pour vous connecter à l'api. Il vous suffira ensuite d'appeler l'api avec vos identifiants et de les envoyer dans le header de la requête REST.
POST /path
Content-Type: application/json
apiKey: xz1232xzd213213er213213dczxcc3loizxzs12dczx
apiToken: xz1287xzdwer213213dczxcas12dczx

GET /path
apiKey: xz1232xzd213213er213213dczxcc3loizxzs12dczx
apiToken: xz1287xzdwer213213dczxcas12dczx

Erreurs

agconnect utilise des codes conventionnels de réponse HTTP pour indiquer le succès ou l'échec d'une requêtes API.
En général, les codes débutant par 2xx indiquent un succès, les codes débutant par 4xx indiquent une error qui résulte des informations fournies lors de l'appel ( par exemple : un paramètre est manquant,... ), et les codes débutant par 5xx indiquent une erreur interne sur notre serveur.
HTTP Statut Code Description
200 - OK Succès de la requête.
400 - Bad Request Paramètres manquants, mauvais type envoyé,...
401 - Unauthorized API Key/token invalide
402 - Request Failed Paramètres ok mais la requête a échoué
404 - Not Found Cette requête n'existe pas
429 - Too Many Requests Trop de requête
500, 502, 503, 504 - Server Errors Erreur interne

Versions

-10/03/2021 : Version 1.5 - Ajout de routes pour les VPC et assemblées de type VPC
-15/01/2021 : Version 1.3 - Ajout Belgique + date de validation des vpc + heure d'ouverture et fermeture de l'assemblée
-10/11/2020 : Version 1.2
-30/06/2020 : Version 1.1
-22/06/2020 : Version 1.0

Urls API

production europe : https://ag-connect.fr
staging europe    : https://staging.ag-connect.fr
production canada : https://ag-connect.ca
staging canada    : https://staging.ag-connect.ca

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 : RIE
syndic_lu Luxembourg : Syndic
syndic_be Belgique : Syndic

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 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 pas par rapport aux présents
no_vote_on_assembly Calcul sur les ne vote pas par rapport à l'assemblée
newsless Calcul sur les sans nouvelles
newsless_on_present Calcul sur les sans nouvelles par rapport aux présents
newsless_on_assembly Calcul sur les sans nouvelles par rapport à l'assemblée
yes Calcul sur les oui
yes_on_present Calcul sur les oui par rapport aux présents
yes_on_assembly Calcul sur les oui par rapport à l'assemblée
no Calcul sur les non
no_on_present Calcul sur les non par rapport aux présents
no_on_assembly Calcul sur les non par rapport à l'assemblée
abstention Calcul sur les abstention
abstention_on_present Calcul sur les abstention par rapport aux présents
abstention_on_assembly Calcul sur les abstention par 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.
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_level1 string Département
administrative_area_level2 string Région si disponible
country string Pays

Entité

Node Type Description
name string Nom 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
original_url string Url originale du document

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
email string Email
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
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
original_url string Url originale du document

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",
      "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_level1 string Département
administrative_area_level2 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
email string Email
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
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
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)

{
  "status": 200,
  "message": "Votre demande est en cours de traitement"
}

Erreurs (création)

{
  "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)

{
  "status": 200,
  "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 récupérer le PV et la feuille de présence encodé en base 64 lorque qu'une ag est complétée.

HTTP Request (documents)

GET https://ag-connect.com/fr/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)

{
  "pv": "JVBERi0xLjQKMSAwIG9iago8PAovVGl0bGUgKP7/KQovQ3JlYXRvciAo/v8A\ndwBrAGgAdABtAGwAdABvAHAAZABmACAAMAAuADEAMgAuADUpCi9Qcm9kdWNl\nciAo/....",
  "timesheet": "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": "Assemblée non cloturée"
}

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 ,
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)

{
  "status": "200",
  "errors": []
}

Erreurs (vpc)

{
  "status": 400,
  "errors": [
    {
      "message": "Resolution with uid '3': Invalid vote, 'ne se prononce pas' doesn't exist, vote will be 'abstention'"
    },
    {
      "message": "Resolution with uid 's' doesn't exist, skipping !"
    }
  ]
}

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 ,
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)

{
  "status": 200,
  "message": "Votre demande est en cours de traitement"
}

Journal d'importation

Cette route vous permet de consulter le journal d'importation sur une assemblée.

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)

{
  "uid": "AGVPC",
  "logs": [
    {
      "with_errors": 0,
      "started_at": "2021-03-10T15:05:44.000+01:00",
      "finished_at": "2021-03-10T15:06:08.000+01:00",
      "log": "==============================\nVPC Import worker started 10 March 2021 at 15:05\n==============================\nStarting VPC Import for participant Michel Dupont with uid \"1\"\n==============================\nStart saving vote for resolution with uid 1\nVote classic: yes\nVote saved\n==============================\nStart saving vote for resolution with uid 2\nVote classic: no\nVote saved\n==============================\nStart saving vote for resolution with uid 3\nVote classic: abstention\nVote saved\n==============================\nResolution with uid s doesn't exist, skipping !\n==============================\nStart saving vote for resolution with uid 4\nVote custom: 1\nVote saved\n==============================\nVote saved with warning, registering impossible, please correct your votes\n==============================\nVPC Import for participant Michel Dupont with uid \"1\" finished\n==============================\nStarting VPC Import for participant Jérôme Dupont with uid \"2\"\n==============================\nStart saving vote for resolution with uid 1\nVote classic: yes\nVote saved\n==============================\nStart saving vote for resolution with uid 2\nVote classic: no\nVote saved\n==============================\nStart saving vote for resolution with uid 3\nVote classic: abstention\nVote saved\n==============================\nStart saving vote for resolution with uid 4\nVote custom: 1,2,3,4,5,6\nVote saved\n==============================\nVote saved and registered\n==============================\n==============================\nVPC Import for participant Jérôme Dupont with uid \"2\" finished\n==============================\nVPC Import worker finished 10 March 2021 at 15:06\n=============================="
    },
    {
      "with_errors": 1,
      "started_at": "2021-03-10T09:59:12.000+01:00",
      "finished_at": "2021-03-10T09:59:29.000+01:00",
      "log": "==============================\nVPC Import worker started 10 March 2021 at 09:59\n==============================\n==============================\nStarting VPC Import for participant Michel Dupont\n==============================\nStart saving vote for resolution with uid 1\nVote classic\nVote saved\n==============================\nStart saving vote for resolution with uid 2\nVote classic\nVote saved\n==============================\nStart saving vote for resolution with uid 3\nVote classic\nVote saved\n==============================\nResolution with uid s doesn't exist, skipping !\nStart saving vote for resolution with uid 4\nVote custom\nVote saved\n==============================\nVote saved with warning, registering impossible, please correct your votes\n==============================\nVPC Import for participant Michel Dupont finished\n==============================\nStarting VPC Import for participant Jérôme Dupont\n==============================\nAucune résolutions fournies"
    }
  ]
}

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 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.
© immosquare 2013-2024 - Mentions légales