Aller au contenu principal

API de Scan de Billets

L'API de Scan de Billets vous permet de scanner et de valider des billets à l'aide d'appareils mobiles. Cette API est conçue pour être utilisée avec l'application mobile de scan TiBillet.

Points de Terminaison

Appairer un Appareil

GET /scan/{token}/pair

Ce point de terminaison est utilisé pour appairer un appareil mobile avec le système TiBillet. Le token est généré lors de la création d'un nouvel appareil de scan dans l'interface d'administration.

Réponse

{
"success": true,
"message": "Device successfully paired",
"api_key": "VOTRE_CLE_API",
"device_uuid": "12345678-1234-5678-1234-567812345678",
"device_name": "Scanner Entrée"
}

Tester la Connexion API

GET /scan/test_api/

Ce point de terminaison est utilisé pour tester si la clé API est valide et si la connexion au serveur fonctionne.

En-têtes

NomRequisDescription
AuthorizationOuiClé API au format : Api-Key VOTRE_CLE_API

Réponse

{
"success": true,
"message": "API key is valid",
"device_info": {
"uuid": "12345678-1234-5678-1234-567812345678",
"name": "Scanner Entrée",
"claimed": true,
"archived": false
},
"server_info": {
"tenant": "Organisation Exemple",
"domain": "exemple.tibillet.org",
"timestamp": "2023-06-15T14:30:45.123456+00:00"
}
}

Vérifier le Statut d'un Billet

POST /scan/check_ticket/

Ce point de terminaison est utilisé pour vérifier le statut d'un billet sans le scanner.

En-têtes

NomRequisDescription
AuthorizationOuiClé API au format : Api-Key VOTRE_CLE_API
Content-TypeOuiDoit être application/json

Corps de la Requête

{
"qrcode_data": "DONNEES_ENCODEES_BASE64:SIGNATURE"
}

Réponse

{
"success": true,
"message": "Ticket information retrieved",
"ticket": {
"uuid": "12345678-1234-5678-1234-567812345678",
"status": "Valide et non scanné",
"is_scanned": false,
"event": "Événement Exemple",
"first_name": "Jean",
"last_name": "Dupont",
"price": "Entrée Générale",
"product": "Billet de Concert",
"scanned_by": null
},
"reservation": {
"uuid": "87654321-8765-4321-8765-432187654321",
"tickets_count": 2
}
}

Scanner un Billet

POST /scan/ticket/

Ce point de terminaison est utilisé pour scanner et valider un billet.

En-têtes

NomRequisDescription
AuthorizationOuiClé API au format : Api-Key VOTRE_CLE_API
Content-TypeOuiDoit être application/json

Corps de la Requête

{
"qrcode_data": "DONNEES_ENCODEES_BASE64:SIGNATURE"
}

Réponse (Succès)

{
"success": true,
"message": "Ticket successfully scanned",
"ticket": {
"uuid": "12345678-1234-5678-1234-567812345678",
"status": "Valide et scanné",
"event": "Événement Exemple",
"first_name": "Jean",
"last_name": "Dupont",
"price": "Entrée Générale",
"product": "Billet de Concert"
},
"reservation": {
"uuid": "87654321-8765-4321-8765-432187654321",
"tickets_count": 2
}
}

Réponse (Déjà Scanné)

{
"success": false,
"message": "Ticket already scanned",
"ticket": {
"uuid": "12345678-1234-5678-1234-567812345678",
"status": "Valide et scanné",
"event": "Événement Exemple",
"first_name": "Jean",
"last_name": "Dupont",
"price": "Entrée Générale",
"product": "Billet de Concert",
"scanned_by": "98765432-9876-5432-9876-543298765432"
},
"reservation": {
"uuid": "87654321-8765-4321-8765-432187654321",
"tickets_count": 2
}
}

Exemples de Code

Appairer un Appareil

# Le token est obtenu à partir du QR code dans l'interface d'administration
TOKEN="votre_token_ici"

curl -X GET "https://exemple.tibillet.org/scan/${TOKEN}/pair"

Tester la Connexion API

API_KEY="votre_cle_api_ici"

curl -X GET "https://exemple.tibillet.org/scan/test_api/" \
-H "Authorization: Api-Key ${API_KEY}"

Vérifier le Statut d'un Billet

API_KEY="votre_cle_api_ici"
QRCODE_DATA="donnees_encodees_base64:signature"

curl -X POST "https://exemple.tibillet.org/scan/check_ticket/" \
-H "Authorization: Api-Key ${API_KEY}" \
-H "Content-Type: application/json" \
-d "{\"qrcode_data\": \"${QRCODE_DATA}\"}"

Scanner un Billet

API_KEY="votre_cle_api_ici"
QRCODE_DATA="donnees_encodees_base64:signature"

curl -X POST "https://exemple.tibillet.org/scan/ticket/" \
-H "Authorization: Api-Key ${API_KEY}" \
-H "Content-Type: application/json" \
-d "{\"qrcode_data\": \"${QRCODE_DATA}\"}"