Aller au contenu

Gestion des Activités

Les Activités (activities) sont associés aux Entreprises : elles couvrent un certain périmètre, un sous ensemble plus restreint que l'Entreprise.

Chaque Activité est liée à son Entreprise par le champ company_id en lien avec l'id de l'Entreprise. Lors de la création d'une Entreprise, une Activité par défaut est créée avec :

  • un name renseignée avec le corporate_name de l'Entreprise
  • un identifier_type égal à SIRET | SIREN | NUMAGRIN | NUMAGRIT et un business_identifier initialisé avec la valeur du {SIRET | SIREN | NUMAGRIN | NUMAGRIT} de l'Entreprise

Une Entreprise peut donc détenir de 1 à N Activités de cinq types différentes :

Business_Identifier Dénomination Description Exemple
SIRET | SIREN | NUMAGRIN | NUMAGRIT Activité par défaut Activité initialisée lors de la création d'une Entreprise et référençant le même identifiant que le business_identifier de l'Entreprise. Il ne peut exister qu'une seule activité de ce type par Entreprise. 73282932000074
EDE_NUMBER Activité d'élevage d'animaux Dans la plupart des cas définie par un numéro EDE, également appelé numéro de cheptel ou d'exploitation. FR35167340
PACAGE_NUMBER Activité de gestion parcellaire Désigne un numéro PACAGE utilisé par les services du Ministère de l’Agriculture pour identifier de manière unique les producteurs dans les demandes d’aides, d'autorisations, etc. 085123456
MARKING_CODE Atelier d'élevage porcin Indicatif de marquage abrégé, anciennement appelé numéro de frappe ou numéro de TVA : il s'agit d'un numéro à 7 caractères. FR56ABC
CVI_NUMBER Production viticole Désigne le Casier Viticole Informatisé, également appelé numéro d'Exploitation Viti-Vinicole (E.V.V.) qui identifie toute entreprise exerçant une activité viticole auprès des organismes publics et administrations. 3401308999

Les Entreprises et leurs Activités peuvent donc être modélisées ainsi :

classDiagram
Entreprise --|> Périmètre_Entreprise: Activité par défaut
Entreprise --|> Élevage: Activité 1
Entreprise --|> Parcellaire: Activité 2
Entreprise --|> Atelier_Porc: Activité 3
Entreprise --|> Atelier_Viticole: Activité 4

Entreprise : SIRET | SIREN | NUMAGRIN | NUMAGRIT


Périmètre_Entreprise : SIRET | SIREN | NUMAGRIN | NUMAGRIT
Élevage : EDE_NUMBER
Parcellaire : PACAGE_NUMBER
Atelier_Porc : MARKING_CODE
Atelier_Viticole : CVI_NUMBER

Lister les Activités d'une Entreprise

Retourne la liste complète des Activities rattachées à une Entreprise Compagny

Requête

GET companies/{company_id}/activities

Paramètre Type Obligatoire Description Exemple
company_id * string Oui Identifiant unique de l'Entreprise recherchée fef1b25a-e980-4bd6-9ced-e1c4df714665
Exemple de requête
curl -X 'GET' \
  'https://www.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities' \
  -H 'accept: application/json'

Réponse

Code Titre Description
200 OK Retourne le tableau des Activités de l'Entreprise
404 Not Found L'Entreprise est introuvable
Body Type Description Exemple
name string Nom de l'Activité GAEC DU VERGER
identifier_type string Type d'Activité : SIRET, SIREN, NUMAGRIN, NUMAGRIT, EDE_NUMBER, MARKING_CODE, PACAGE_NUMBER, CVI_NUMBER SIRET
business_identifier string Valeur de l'identifiant de l'Activité 73282932000074
id string Identifiant unique de l'Activité 4384a162-6fc5-4c75-b892-7aae8135aad7
company_id string Identifiant unique de l'Entreprise à laquelle l'Activité est rattachée fef1b25a-e980-4bd6-9ced-e1c4df714665
period {PeriodModel} Date de création et date de clôture de l'Activité dans AGATA CONSENT 2020-11-24T10:55:47.362Z, 2023-11-24T10:55:47.362Z
status string État de l'Activité : ACTIVE, INACTIVE ACTIVE
Exemple de réponse
[
  {
    "name": "GAEC DU VERGER",
    "identifier_type": "SIRET",
    "business_identifier": "73282932000074",
    "id": "4384a162-6fc5-4c75-b892-7aae8135aad7",
    "company_id": "fef1b25a-e980-4bd6-9ced-e1c4df714665",
    "period" : {
      "start_date": "2020-11-24T10:55:47.362Z",
      "end_date": ""
    },
    "status": "ACTIVE"
  }
  {
    "name" :"Atelier Bovin",
    "identifier_type": "EDE_NUMBER",
    "business_identifier": "FR35167340",
    "id": "2a06d08d-4ac0-4022-87cf-481271aea05d",
    "company_id": "fef1b25a-e980-4bd6-9ced-e1c4df714665",
    "period": {
      "start_date": "2020-11-24T10:55:47.362Z",
      "end_date": ""
    },
    "status": "ACTIVE"
  }
]

Récupérer une Activité

Récupérer les éléments d'une Activité liée à une Entreprise grâce à son identifiant unique {activity_id}.

Requête

GET companies/{company_id}/activities/{activity_id}

Paramètre Type Obligatoire Description Exemple
company_id * string Oui Identifiant unique de l'Entreprise recherchée fef1b25a-e980-4bd6-9ced-e1c4df714665
activity_id * string Oui Identifiant unique de l'Activité de l'Entreprise recherchée 4384a162-6fc5-4c75-b892-7aae8135aad7
Exemple de requête
curl -X 'GET' \
  'https://www.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities/4384a162-6fc5-4c75-b892-7aae8135aad7' \
  -H 'accept: application/json'

Réponse

Code Titre Description
200 OK Retourne l'Activité
404 Not Found L'Activité est introuvable
Body Type Description Exemple
name string Nom de l'Activité GAEC DU VERGER
identifier_type string Type d'Activité : SIRET, SIREN, NUMAGRIN, NUMAGRIT, EDE_NUMBER, MARKING_CODE, PACAGE_NUMBER, CVI_NUMBER SIRET
business_identifier string Valeur de l'identifiant de l'Activité 73282932000074
id string Identifiant unique de l'Activité 4384a162-6fc5-4c75-b892-7aae8135aad7
company_id string Identifiant unique de l'Entreprise à laquelle l'Activité est rattachée fef1b25a-e980-4bd6-9ced-e1c4df714665
period {PeriodModel} Date de création et date de clôture de l'Activité dans AGATA CONSENT 2020-11-24T10:55:47.362Z, 2023-11-24T10:55:47.362Z
status string État de l'Activité : ACTIVE, INACTIVE ACTIVE
Exemple de réponse
{
  "name": "GAEC DU VERGER",
  "identifier_type": "SIRET",
  "business_identifier": "73282932000074",
  "id": "4384a162-6fc5-4c75-b892-7aae8135aad7",
  "company_id": "fef1b25a-e980-4bd6-9ced-e1c4df714665",
  "period" : {
    "start_date": "2020-11-24T10:55:47.362Z",
    "end_date": ""
  },
  "status": "ACTIVE"
}

Rechercher une Activité

Rechercher une Activité spécifique par son business_identifier sans avoir connaissance de la Company à laquelle l'Activité est rattachée.

Requête

GET activities?identifierType={identifier_type}&businessIdentifier={business_identifier}

Paramètre Type Obligatoire Description Exemple
identifierType * string Oui Type d'identifiant utilisé pour désigner l'Activité PACAGE_NUMBER
businessIdentifier * string Oui Valeur de l'identifiant selon le type spécifié dans identifier_type 085123456
Exemple de requête
curl -X 'GET' \
  'https://www.agata-consent.com/activities/?identifierType=PACAGE_NUMBER&businessIdentifier=085123456' \
  -H 'accept: application/json'

Réponse

Code Titre Description
200 OK Retourne l'Activité
404 Not Found L'Activité est introuvable
Body Type Description Exemple
name string Nom de l'Activité atelier parcellaire
identifier_type string Type d'Activité : SIRET, SIREN, NUMAGRIN, NUMAGRIT, EDE_NUMBER, MARKING_CODE, PACAGE_NUMBER, CVI_NUMBER PACAGE_NUMBER
business_identifier string Valeur de l'identifiant de l'Activité 085123456
id string Identifiant unique de l'Activité 91cb0b72-6adf-48eb-8a97-64d3ebc564f4
company_id string Identifiant unique de l'Entreprise à laquelle l'Activité est rattachée 0d42de28-a70a-40f2-9e14-31d9c067656d
period {PeriodModel} Date de création et date de clôture de l'Activité dans AGATA CONSENT 2020-11-24T10:55:47.362Z,
status string État de l'Activité : ACTIVE, INACTIVE ACTIVE
Exemple de réponse
{
  "name": "atelier parcellaire",
  "identifier_type": "PACAGE_NUMBER",
  "business_identifier": "085123456",
  "id": "91cb0b72-6adf-48eb-8a97-64d3ebc564f4",
  "company_id": "0d42de28-a70a-40f2-9e14-31d9c067656d",
  "period" : {
    "start_date": "2020-11-24T10:55:47.362Z",
    "end_date": ""
  },
  "status": "ACTIVE"
}

Ajouter une Activité à une Entreprise

Permet d'ajouter une Activité à une Entreprise.

Requête

POST /companies/{company_id}/activities

Paramètre Type Obligatoire Description Exemple
company_id * string Oui Identifiant unique de l'Entreprise recherchée fef1b25a-e980-4bd6-9ced-e1c4df714665
Body Type Obligatoire Description Exemple
name string Oui Nom de l'Activité à créer Atelier Porc
identifier_type string Oui Type d'identifiant de l'Activité MARKING_CODE
business_identifier string Oui Valeur de l'identifiant selon le type spécifié dans identifier_type FR56ABC
status string Oui État de l'Activité : ACTIVE | INACTIVE ACTIVE
Exemple de requête
curl -X 'POST' \
  'https://www.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Atelier Porc",
    "identifier_type": "MARKING_CODE",
    "business_identifier": "FR56ABC",
    "status": "ACTIVE"
}'

Réponse

Réponses possibles de l'API :

Code Titre Description
201 Created Activité créée avec succès
400 Bad request Syntaxe de la requête invalide
Exemple de réponse
{
  "name": "Atelier Porc",
  "identifier_type": "MARKING_CODE",
  "business_identifier": "FR56ABC",
  "id": "05f9816f-326a-4b8a-ba14-97df46c51526",
  "company_id": "00000000-0000-0000-0000-000000000000",
  "period" : {
    "start_date": "2020-11-24T10:55:47.362Z",
    "end_date": ""
  },
  "status": "ACTIVE"       
}'

Mise en application

Pour illustrer l'usage des APIs, reprenons l'exemple de l'Entreprise GAEC du Verger :

{
  "corporate_name":"GAEC DU VERGER",
  "address": "LD BEAUREGARD",
  "postal_code": "16310",
  "city": "MONTEMBOEUF",
  "email": "gaec.verger@orange.fr",
  "id": "fef1b25a-e980-4bd6-9ced-e1c4df714665",
  "identifier_type": "SIRET",
  "business_identifier": "73282932000074",
  "status": "ACTIVE"
}

Et son Activité par défaut initialisée lors de la création du Détenteur :

{
  "name": "GAEC DU VERGER",
  "identifier_type": "SIRET",
  "business_identifier": "73282932000074",
  "id": "c64bec18-1e9c-4b87-abad-a73a2c127077",
  "company_id": "fef1b25a-e980-4bd6-9ced-e1c4df714665",
  "period" : {
    "start_date": "2020-11-24T10:55:47.362Z",
    "end_date": ""
  },
  "status": "ACTIVE"
  }

Soit la modélisation suivante :

  flowchart TD;
      A[GAEC du Verger]-->|Activité par défaut| B[business_identifier : 732 829 320 000 74];

Nous souhaitons ajouter un atelier porc défini par le MARKING_CODE FR56ABC. Pour ajouter cette Activité, la requête est la suivante :

curl -X 'POST' \
  'https://www.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Atelier Porc",
    "identifier_type": "MARKING_CODE",
    "business_identifier": "FR56ABC",
    "status": "ACTIVE"
}'

Cette Activité va s'ajouter à l'activité de l'Entreprise "GAEC Du Verger" précédemment définie. Le résultat sera donc :

  • Le Détenteur (GAEC du Verger) : identique à l'état précédent ;
  • L'Activité par défaut (business_identifier : 732 829 320 000 74) : identique à l'état précédent ;
  • L'Activité liée à l'atelier porc (MARKING_CODE : FR56ABC) : nouvellement créée.

La nouvelle situation peut être modélisée de la manière suivante :

  flowchart TD;
    A[GAEC du Verger]-->|Activité par défaut| B[business_identifier : 732 829 320 000 74];
    A[GAEC du Verger]-->|Atelier Porc| C[MARKING_CODE : FR56ABC];

Cette activité est peut être récupérée par l'une des requêtes suivantes :

  1. Par le {company_id} de l'Entreprise et le {activity_id} de l'Activité : /companies/{companyId}/activities/{activityId}

    Exemple de requête
    curl -X 'GET' \
      'https://www.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities/05f9816f-326a-4b8a-ba14-97df46c51526' \
      -H 'accept: application/json'
    
  2. Par les identifiants métiers {identifier_type} et {business_identifier} de l'Activité : /activities

    Exemple de requête
    curl -X 'GET' \
      'https://www.agata-consent.com/activities?identifier_type=MARKING_CODE&business_identifier=FR56ABC' \
      -H 'accept: application/json'
    

Ces appels retourneront le même résultat, à savoir l'Activité "Atelier Porc" nouvellement créée :

{
  "name": "Atelier Porc",
  "identifier_type": "MARKING_CODE",
  "business_identifier": "FR56ABC",
  "id": "05f9816f-326a-4b8a-ba14-97df46c51526",
  "company_id": "00000000-0000-0000-0000-000000000000",
  "period" : {
    "start_date": "2020-11-24T10:55:47.362Z",
    "end_date": ""
  },
  "status": "ACTIVE"       
}'