NAV Navbar
php

Introduction

Bienvenue sur cette documentation de l'API de l'espacetri qui permet de vérifier une licence pour une saison

Authentication

Toutes les requêtes nécessitent une authentification. Vous devez passer en Header deux valeurs :
- X-USER (nom d'utilisateur fourni par la F.F.Tri)
- Authorization (clef d'API également fournie par la F.F.Tri)

Assurez vous de remplacer username par votre nom d'utilisateur et d41d8cd98f00b204e9800998ecf8427e par votre clef d'api.

Voici un exemple d'en-tête nécessaire pour faire une requête sur cette API :

X-USER: username
Authorization: d41d8cd98f00b204e9800998ecf8427e
Accept: application/json
Content-Type: application/json

Sécurité supplémentaire pour les pass compétition

Création du token d'authenification

La chaîne est créée en concaténant les valeurs des champs X-USER et Authorization (triés par ordre alphabétique, dans le format ‘PARAMETRE=valeur’, avec les noms de paramétre suivant APIKEY=monapikey (Authorization), USERNAME=monusername (X-USER)), séparés par une clé. La clé est définie dans l'espacetri dans la section prestataire technique, dans le champs "passPhrase". La chaîne de caratères obtenu doit être hashé avec l'algorythme SHA-256.

Veuillez observer que ces valeurs sont sensibles à la casse lors de leur compilation pour former la chaîne avant le hachage !

Ci-dessous un exemple de chaîne à hasher :

APIKEY=d41d8cd98f00b204e9800998ecf8427epassphraseUSERNAME=usernamepassphrase

Important

Notre système recomposera la chaîne SHA-256 en fonction des paramètres reçus et comparera le condensé envoyé dans le champ X-Auth-Token de la requête avec le condensé que nous aurons généré. Si le résultat n’est pas identique, l'accès sera refusé. Cette vérification garantit l’exactitude et l’intégrité des données de la requête.

Exemple :

X-USER: username
Authorization: d41d8cd98f00b204e9800998ecf8427e
X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835
Accept: application/json
Content-Type: application/json

Ping

Ping the api

<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/ping');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "name": "Votre nom",
  "time": {
    "date": "2017-09-13 08:11:25.000000",
    "timezone_type": 3,
    "timezone": "UTC"
  }
}

Cette methode permet de vérifier que les identifiants passés en en-tête fonctionnent correctement et sont reconnus par l'API.

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/ping

Seasons

Get All Seasons

<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/seasons');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "2": {
    "id": 2,
    "name": "2012-2013",
    "startDate": "2012-11-01",
    "endDate": "2013-10-30"
  },
  "6": {
    "id": 6,
    "name": "2013-2014",
    "startDate": "2013-10-31",
    "endDate": "2014-10-31"
  },
  "7": {
    "id": 7,
    "name": "2014-2015",
    "startDate": "2014-11-01",
    "endDate": "2015-12-31"
  },
  "8": {
    "id": 8,
    "name": "2016",
    "startDate": "2016-01-01",
    "endDate": "2016-12-31"
  },
  "9": {
    "id": 9,
    "name": "2017",
    "startDate": "2017-01-01",
    "endDate": "2017-12-31"
  },
  "10": {
    "id": 10,
    "name": "2018",
    "startDate": "2018-01-01",
    "endDate": "2018-12-31"
  }
}

Cette méthode permet de récupérer la totalité des saisons définies dans l'espacetri

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/seasons

Clubs

Récupérer la liste des clubs affiliés pour une saison


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/clubs/10');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "1063": "A.A.S. FRESNES TRIATHLON",
  "30088": "A.C.ORANGE",
  "1123": "A.S. CORBEIL-ESSONNES TRIATHLON",
  "13036": "A.S. LIBOURNE TRIATHLON",
  "10023": "A.S. MONACO TRIATHLON",
  ...
}

Cette méthode retourne la liste des clubs renouvellés pour la saison donnée

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/clubs/<season_id>

URL Parameters

Parametre Description
season_id l'ID de la saison pour laquelle on souhaite récupérer la liste des clubs

Club

Récupérer les informations d'un club


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/club/1001');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "id": "1001",
  "name": "TRINOSAURE",
  "address": "2 RUE HUBERT MOUCHEL ",
  "zip": "78130",
  "city": "LES MUREAUX",
  "phone": "01 30 99 74 52",
  "mobile": "06 08 73 79 54",
  "email": "nassera.moumene@gmail.com",
  "website": "http://trinosaurelesmureaux.fr/",
  "lat": "48.98595",
  "lng": "1.9242345",
  "league": "ILE DE FRANCE",
  "excellence_young": "1",
  "healthSport": "0",
  "school_label_stars": "3",
  "school_label_raid_stars": "1",
  "season": "2020",
  "championship": "M_Duathlon_D1,F_Triathlon_D1"
}

Cette méthode retourne les informations d'un club

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/club/<club_id>

URL Parameters

Parametre Description
club_id l'ID du club pour lequel on souhaite récupérer les informations

Response Parameters

Parametre Description
id id du club
name nom du club
address adresse du club
zip code postal du club
city ville du club
phone téléphone principal
mobile numéro de portable du club
email adresse email du club
website url du site web du club
lat latitude de l'adresse du club
lng longitude de l'adresse du club
league Ligue national du club
excellence_young Club Excellence Jeunes
healthSport Club labellisé "Coaching Triathlon santé" 0 si pas labellisé
school_label_stars Nombre d'étoiles du label "école de triathlon"
school_label_raid_stars Nombre d'étoiles du label "école de raid"
season Saison du label "école de triathlon" null si pas de label pour la saison en cours
championship Liste des participations au championnat des clubs, séparée par une virgule et au format "SEXE_DISCIPLINE_NIVEAU". Exemple : F_Triathlon_D1 pour un club de division 1 de triathlon féminin.

Age categories

Récupérer la liste des catégorie d'age pour une saison donnée


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/age-categories/10');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);


Exemple de retour:

"166": {
    "id": "166",
    "season": "10",
    "name": "Mini-poussin 1",
    "ageMin": "6",
    "ageMax": "6",
    "yearOfBirthMin": "2012",
    "yearOfBirthMax": "2012",
    "shortName": "MP ",
    "mainGroupName": "Mini-poussin"
  },
  "167": {
    "id": "167",
    "season": "10",
    "name": "Mini-poussin 2",
    "ageMin": "7",
    "ageMax": "7",
    "yearOfBirthMin": "2011",
    "yearOfBirthMax": "2011",
    "shortName": "MP",
    "mainGroupName": "Mini-poussin"
  }
  ...

Cette méthode retourne la liste des catégories d'age pour la saison donnée

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/age-categories/<season_id>

URL Parameters

Parametre Description
season_id l'ID de la saison pour laquelle on souhaite récupérer la liste des catégories d'age

Licences

Test si une licence existe pour la saison donnée


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/test-licence/10');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);
// Create body
$json_array = [
            "licence" => "XXXXX"
        ];
$body = json_encode($json_array);

// Set body
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "message": "OK - licence found and available for season"
}

Cette méthode retourne un message si la licence existe

HTTP Request

POST https://licence-api.espacetri.fftri.com/api/test-licence/<season_id>

URL Parameters

Parametre Description
season_id l'ID de la saison pour laquelle on souhaite vérifier la licence

Body Parameters

Parametre Description
licence Numéro de licence à vérifier

Récupère les informations d'un licencié


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/licence-infos/10');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);
// Create body
$json_array = [
            "gender" => "m",
            "lastname" => "XXXX",
            "birthdate" => "XXXX-XX-XX",
            "licence" => "XXXXXX"
        ];
$body = json_encode($json_array);

// Set body
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "licenseNumber": "XXXXXXXXXXXXXXXXX",
  "licenseValidationDate": "XXXX-XX-XX",
  "mutation": "NON",
  "nationality": "Fran\u00e7ais",
  "ageCategory": "V\u00e9t\u00e9ran 3",
  "club_id": 1,
  "club_name": "CLUB DE DEMO",
  "certifComp": true,
  "letterType": "C",
  "needPassCompet": false
}

Cette méthode retourne les informations du licencié

HTTP Request

POST https://licence-api.espacetri.fftri.com/api/licence-infos/<season_id>

URL Parameters

Parametre Description
season_id l'ID de la saison pour laquelle on souhaite récupérer la liste des clubs

Body Parameters

Parametre Description
gender Sexe du participant (m pour masculin, f pour féminin)
lastname Nom de famille du licencié tel qu'il est référencé dans l'espace tri
birthdate Date de naissance du licencié au format YYYY-MM-DD
licence Numéro de licence pour lequel on souhaite récupérer les informations

Pass compétition

Créer un pass compétition


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/create-pass-competition');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);
// Create body
$json_array = [
            'fftriId' => xx, // Id de l'epreuve sur l'espacetri (pas celui de la manifestation)
            "firstName" => "John", // Prénom du participant
            "lastName" => "Legend", // Nom du participant
            "birthDate" => "1988-07-23" // Date de naissance du participant
            'price' => 20 // Prix du pass compétition,
            'type' => 1, // 1 pour individuel | 2 pour relais
            'customerEmail' => 'mail@gmail.com', // Email du participant ou test@fftri.com si testEdition à 1
            'testEdition' => 0, // 0 pour le mode production, 1 pour tester la réponse de l'API
            'ituFedeId' => 12, // Id de la fédération ITU dans l'espacetri (facultatif ne pas ajouter si NULL)
            'ituLicenseNumber' => 'XXXXXXX' // Numéro de licence itu (facultatif ne pas ajouter si NULL)
            'sendInvoice' => 1, // 0 si le participant ne veut pas recevoir de facture pour le pass compétition, 1 s'il veut recevoir une facture (valeur pas défaut à 1)
            'language' => 'FR' // FR si le participant veut recevoir la facture en français, EN pour la recevoir en anglais (valeur par défaut à FR)
            'address' => 'FR' // Adresse de facturation (falcultatif pour l'instant)
            'zip' => 'FR' // Code postal de facturation (falcultatif pour l'instant)
            'city' => 'FR' // Ville de facturation (falcultatif pour l'instant)
            'country' => 'FR' // Pays de facturation (falcultatif pour l'instant)



        ];
$body = json_encode($json_array);

// Set body
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "success": "true",
  "passNumber": "XXXXXXXXXXXXXXXXX",
  "url": "https://espacetri.fftri.com/pass-competition/print-public/XXXXXXXXXXXXXXXXX",
}

Cette méthode permet de créer un pass compétition.

A partir du 26/08 à 12H, le pass compétition sera maintenant automatiquement marqué comme validé et payé dès la création. Il n'y aura plus besoin de passer par la méthode de mise à jour du pass. En attendant pour tester le fonctionnement il est possible de passer en paramètre 'isPaid' à 1 directement sur cette méthode sans passer par la méthode de mise à jour du pass.

testEdition ne créé plus de pass compétition de test mais permet juste de tester la réponse de l'API.

HTTP Request

POST https://licence-api.espacetri.fftri.com/api/create-pass-competition

Body Parameters

Parametre Description
fftriId Id de l'epreuve sur l'espacetri (pas celui de la manifestation)
firstName Prénom du participant
lastName Nom du participant
birthDate Date de naissance du participant
price Prix du pass compétition,
type 1 pour individuel, 2 pour relais
customerEmail Email du participant ou test@fftri.com si testEdition à 1
testEdition 0 pour le mode production, 1 pour tester la réponse de l'API
ituFedeId Id de la fédération ITU dans l'espacetri (facultatif ne pas ajouter si NULL)
ituLicenseNumber Numéro de licence itu (facultatif ne pas ajouter si NULL)
sendInvoice 0 si le participant ne veut pas recevoir de facture pour le pass compétition, 1 s'il veut recevoir une facture (facultatif, valeur pas défaut à 1)
language FR si le participant veut recevoir la facture en français, EN pour la recevoir en anglais (facultatif, valeur par défaut à FR)
address Adresse de facturation (falcultatif pour l'instant)
zip Code postal de facturation (falcultatif pour l'instant)
city Ville de facturation (falcultatif pour l'instant)
country Pays de facturation (falcultatif pour l'instant)

Response Parameters

Parametre Description
success true en cas de succès, false en cas d'échec.
error En cas d'échec affiche l'erreur, non présent en cas de succès.
passNumber En cas de succès affiche le numéro du pass créé, non présent en cas d'échec.
url En cas de succès affiche l'url de téléchargement du pass compétition, non présent en cas d'échec.

Mettre à jour un pass compétition


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/update-pass-competition');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);
// Create body
$json_array = [
                  'passNumber' => xx, // Numéro du pass compétition
                  'refund' => 0 // 0  si le pass n'a pas été remboursé, 1 si le pass est remboursé
                  'canceledReason' => "Remboursement" // Raison du remboursement (facultatif)
              ];

$body = json_encode($json_array);

// Set body
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "success": "true",
}

Cette méthode permet de rembourser un pass compétition.

HTTP Request

POST https://licence-api.espacetri.fftri.com/api/update-pass-competition

Body Parameters

Parametre Description
passNumber Numéro du pass compétition
refund 0 si le pass n'est pas remboursé, 1 si le pass est remboursé
canceledReason Raison du remboursement (facultatif)

Response Parameters

Parametre Description
success true en cas de succès, false en cas d'échec.
error En cas d'échec affiche l'erreur, non présent en cas de succès.

Vérifier un pass compétition


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/pass-competition/PCXXXX/XXXX');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);

// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "firstname": "John",
  "lastname": "John",
  "birthDate": "1988-07-23",
  "email": "mail@gmail.com",
  "passNumber": "PCXXXXX",
  "created": "2022-01-01",
  "statusDescription": "valid",
  "isPaid": "1",
  "refund": "0",
  "type": "1",
  "typeDescription": "individual",
  "trial": "XXXX",
  "event": "XXXX",
  "discipline": "Triathlon",
  "distance": "Jeunes 8-11",
  "date": "2022-05-01",
  "eventName": "XXXX",
  "place": "Rue de la poste",
  "city": "BIARRITZ",
  "zip": "64200",
}

Cette méthode permet de vérifier l'existence et la validité d'un pass compétition.

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/pass-competition/<pass_number>/<trial_id>

URL Parameters

Parametre Description
pass_number Numéro du pass compéttion
trial_id Id de l'epreuve sur l'espacetri (pas celui de la manifestation)

Response Parameters

Parametre Description
firstname Prénom
lastname Nom
birthDate Date de naissance
email Adresse mail
passNumber Numéro du pass compéttion
created Date de création du pass
statusDescription Statut du pass :
  • created => 'Créé'
  • valid => 'Valide'
  • used => 'Utilisé'
  • refund => 'Remboursé'
  • cancel => 'Annulé'
isPaid 0 si le pass n'est pas payé, 1 si le pass est payé
refund 0 si le pass n'est pas remboursé, 1 si le pass est remboursé
type
  • 1 => 'Individuel'
  • 2 => 'Relais'
  • 3 => 'Loisir'
typeDescription Description du type de pass
trial Id de l'épreuve
event Id de l'événement
event Id de l'événement
discipline Nom de la discipline
distance Distance de l'épreuve
date Date de l'épreuve
eventName Nom de l'événement
place Adresse de l'événement
city Ville de l'événement
zip Code postal de l'événement

Lister les pass d'une compétition


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/pass-competition-list/XXXXX/3/0/0');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);

// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "0": {
    "firstname": "John",
    "lastname": "Legend",
    "birthDate": "1988-07-23",
    "email": "mail@gmail.com",
    "passNumber": "PCXXXXX",
    "created": "2022-01-01",
    "statusDescription": "valid",
    "isPaid": "1",
    "refund": "0",
    "type": "1",
    "typeDescription": "individual",
  },
  "1": {
    "firstname": "Jane",
    "lastname": "Doe",
    "birthDate": "1978-07-01",
    "email": "mail@gmail.com",
    "passNumber": "PCXXXXX",
    "created": "2022-01-10",
    "statusDescription": "valid",
    "isPaid": "1",
    "refund": "0",
    "type": "1",
    "typeDescription": "individual",
  }
}

Cette méthode de lister les pass créés pour une compétition.

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/pass-competition-list/<trial_id>/<is_paid>[/<provider>][/<csv>]

URL Parameters

Parametre Description
trial_id Id de l'epreuve sur l'espacetri (pas celui de la manifestation)
is_paid
  • 0 : Pour les pass non payés
  • 1 : Pour les pass payés
  • 3 : Pour afficher tous les pass compétitions
provider
  • 0 : Pour afficher tous les pass compétitions
  • 1 : Pour afficher seulement les pass compétitions vendu par ce compte prestataire technique
csv
  • 0 : Pour afficher le résultat en Json
  • 1 : Pour afficher le résultat en texte formaté pour un CSV

Response Parameters

Parametre Description
firstname Prénom
lastname Nom
birthDate Date de naissance
email Adresse mail
passNumber Numéro du pass compéttion
created Date de création du pass
statusDescription Statut du pass :
  • created => 'Créé'
  • valid => 'Valide'
  • used => 'Utilisé'
  • refund => 'Remboursé'
  • cancel => 'Annulé'
isPaid 0 si le pass n'est pas payé, 1 si le pass est payé
refund 0 si le pass n'est pas remboursé, 1 si le pass est remboursé
type
  • 1 => 'Individuel'
  • 2 => 'Relais'
  • 3 => 'Loisir'
typeDescription Description du type de pass

Epreuves

Récupérer les épreuves d'un organisateur


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/get-trials-by-orga/ORGAXXXXX/6512ad43d9cea6e02d990b0a82652dca');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "10286": {
        "id_event": "10286",
        "name_event": "CHTRIMAN GRAVELINES",
        "date_start_event": "2022-07-01",
        "date_end_event": "2022-07-03",
        "league_id": "2"
        "league": "HAUTS DE FRANCE"
        "status": "2"
        "trials": {
            "31732": {
              "id_trial": "31732",
              "name_trial": "DUATHLON 111",
              "date_trial": "2022-07-03",
              "discipline": "Duathlon",
              "distance": "S"
              "format": "Ind."
              "label_trial": "Mixité"
              "pass_price": "5"
              "second_pass_price": null
            }
            "31728": {
              "id_trial": "31728",
              "name_trial": "CHTRI JEUNES 10/13",
              "date_trial": "2022-07-03",
              "discipline": "Triathlon",
              "distance": "Jeunes 10-13"
              "format": "Ind."
              "label_trial": "Mixité;Triathlon Durable"
              "pass_price": "2"
              "second_pass_price": null
            }
        }
    }
}

          

Cette méthode retourne la liste des épreuves à venir pour un organisateur identifié par un nom d'utilisateur et une clé API trouvable sur la page d'accueil de leur compte espaceTri.

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/get-trials-by-orga/<login>/<key>/

URL Parameters

Parametre Description
login Nom d'utilisateur de l'organisateur sur l'espaceTri
key Clé API de l'organisateur

Response Parameters

Parametre Description
id_event Id de la manifestation
name_event Nom de la manifestation
date_start_event Date de début de la manifestation
date_end_event Date de fin de la manifestation
league_id Id de la ligue
league Nom de la ligue
status Statut de la manifestation :
  • -1 => 'Supprimée'
  • 0 => 'En cours de création'
  • 1 => 'Dates envoyées à la ligue'
  • 2 => 'Dates Acceptées par la ligue'
  • 3 => 'Retournée par la ligue pour modification'
  • 4 => 'Refusée par la ligue'
  • 5 => 'Manifestation complétée, mais non soumise à la ligue'
  • 6 => 'Manifestation complétée en attente d'approbation par la ligue'
  • 7 => 'Manifestation complétée et autorisée par la ligue'
  • 8 => 'Manifestation annulée par la ligue'
id_trial Id de l'épreuve
name_trial Nom de l'épreuve
date_trial Date de l'épreuve
lng longitude de l'adresse du club
discipline Discipline de l'épreuve
distance Distance de l'épreuve
format Format de l'épreuve :
  • Ind. => 'Individuel'
  • Relai => Relais
  • CLM => 'Contre la montre'
  • CLM EQ => Contre la montre par équipe
  • EQ => Equipe
label_trial Label de l'épreuve
pass_price Prix du pass compétition
second_pass_price Prix du second pass compétition si l'épreuve a plusieurs format (à éviter)

Fédérations ITU

Récupérer les informations d'une fédération ITU


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/itu-federation/4');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "4": {
        "name_federation": "Burkina Faso",
        "id": "4",
        "name_country": "Burkina Faso",
        "alpha2": "BF",
        "ituFree": "0"
    }
}

Cette méthode retourne les informations d'une fédération ITU

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/itu-federation/<federation_id>

Récupérer la liste des fédérations ITU affiliées


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/get-itu-affiliated-federation');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "113": {
        "id": "113",
        "country_id": "56",
        "name": "Belgian Triathlon & Duathlon Federation",
        "ituFree": "1"
    },
    "123": {
        "id": "123",
        "country_id": "276",
        "name": "Deutsche Triathlon Union",
        "ituFree": "1"
    },
    "131": {
        "id": "131",
        "country_id": "380",
        "name": "Federazione Italiana Triathlon",
        "ituFree": "1"
    },
  ...
}

Cette méthode retourne la liste des Fédérations ITU affiliées dont les adhérents bénéficie de la gratuité du pass compétition

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/get-itu-affiliated-federation

Récupérer la liste de toutes les fédérations ITU


<?php

// Get cURL resource
$ch = curl_init();

// Set url
curl_setopt($ch, CURLOPT_URL, 'https://licence-api.espacetri.fftri.com/api/itu-federations');

// Set method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

// Set options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Set headers
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-USER: username",
  "Authorization: d41d8cd98f00b204e9800998ecf8427e",
  "X-Auth-Token: 33D5BFBF2B4677259B6FE0BF49326A253AB21835",
  "Content-Type: application/json",
  "Accept: application/json",
 ]
);


// Send the request & save response to $resp
$resp = curl_exec($ch);

if(!$resp) {
  die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
} else {
  echo "Response HTTP Status Code : " . curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "\nResponse HTTP Body : " . $resp;
}

// Close request to clear up some resources
curl_close($ch);

Exemple de retour:

{
  "1": {
        "id": "1",
        "name_federation": "Fédération Algérienne de Triathlon",
        "name_country": "Algérie",
        "alpha2": "DZ",
        "ituFree": "0"
    },
    "2": {
        "id": "2",
        "name_federation": "Association de Triathlon Benin",
        "name_country": "Bénin",
        "alpha2": "BJ",
        "ituFree": "0"
    },
    "3": {
        "id": "3",
        "name_federation": "Botswana Triathlon Society",
        "name_country": "Botswana",
        "alpha2": "BW",
        "ituFree": "0"
    },
    "4": {
        "id": "4",
        "name_federation": "Burkina Faso",
        "name_country": "Burkina Faso",
        "alpha2": "BF",
        "ituFree": "0"
    },
  ...
}

Cette méthode retourne la liste de toutes les fédérations itu

HTTP Request

GET https://licence-api.espacetri.fftri.com/api/itu-federations

php