API Billeweb

Pour échanger des données avec votre propre système
L'API est soumise au principe de "fair use". Son utilisation est monitorée. Merci de stocker les données sur votre système et de récuperer les données "participants" de facon incrémentale.

Identification

Vous devez être connecté pour obtenir ou visualiser votre clé.

Si vous souhaitez inclure votre clé d'identification dans l'url de la requète, utilisez la chaine suivante :
user=[user]&key=[key]&version=1

Si vous souhaitez passer les identifiants via le header http "Authorization" utilisez la chaine suivante :
Basic [base64_token]

Si vous utilisez User : [user] Key :[key]

Fonctions disponibles


Exemple d'utilisation GET en PHP

Exemple d'utilisation POSTen PHP

Exemple en utilisant un encodage json

GET /api/events

Lister les événements
Paramètres
  • "past" : inclure les événements passés (1 ou 0, 0 par défaut)
  • "online" : inclure uniquement les événements publié (1 ou 0, 0 par défaut)
  • "description" : inclure la description (1 ou 0, 0 par défaut)
Exemple de requète
https://www.billetweb.fr/api/events?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1&past=1
Exemple de résultat
	[
	    {
	        "id": "1235",
	        "ext_id": "soiree",
	        "name": "Retro future shock",
	        "start": "2015-12-31 20:00:00",
	        "end": "2016-01-01 00:00:00",
	        "multiple": "1",
	        "place": "Champs-\u00c9lys\u00e9es, Paris, France",
	        "shop": "https://www.billetweb.fr/shop.php?event=soiree",
	        "online": "1",
	        "tax": "20",
	        "tags": ["toto", "titi", "tata"],
	        "description": "text or < htmlcode >",
	        "image": "https://www.billetweb.fr/files/event/1235.jpg"
	        "cover": "https://www.billetweb.fr/files/cover/1235.jpg"
	    }
	]

GET /api/event/:id/attendees

Retourne les billets vendus
Paramètres
  • "last_update" : retourne les entrées qui ont été modifiées suite à cette date (sec UNIX)
  • "since" : retourne les entrées qui ont été modifiées durant les "since" dernières minutes
  • "to" : retourne les entrées qui ont été modifiées avant cette date (sec UNIX)
  • "session" : filtrer sur un identifiant de séance en particulier
  • "used" : filtrer sur l'état composté ou non (0 pour non composté, 1 pour composté, 2 pour sorti, 3 pour expiré)
  • "ticket" : filtrer sur un identifiant de tarif en particulier
  • "email" : filtrer sur un acheteur en particulier
  • "ext_id" : filtrer sur un identifiant de billet en particulier
  • "barcode" : filtrer sur un code barre en particulier (Attention à bien constater la différence de retour lecture entre QR code et EAN13)
  • "disabled" : 1 pour inclure les billets remboursés ou annulés, 2 pour inclure seulement les billets rembourés ou annulés (attention : dans le cas du remboursement partiel d'une commande, un billet peut être remboursé (disabled=1) et sa commande payée (order_paid=1)
Exemple de requète
https://www.billetweb.fr/api/event/1000/attendees?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1&last_update=1471467631
Exemple de résultat
	[
	    {
	        "id": "656087",
	        "ext_id": "T356-3899-E1000",
	        "barcode": "4475320",
	        "used": "1",
	        "lane": "controle n°1", email de l'opérateur ou nom de la file
	        "used_date": "2016-06-15 22:39:24",
	        "firstname": "Prénom",
	        "name": "Nom",
	        "ticket": "Plein tarif",
	        "ticket_id": "12693",
	        "category": "Catégorie 1 > Or",
	        "price": "1.00",
	        "seating_location": "Tribune C > Rang 1 > Siège 2",
	        "last_update": "2016-03-02 10:41:36",
	        "reduction_code": "PROMO12",
	        "authorization_code": "",
	        "pass": "0",
	        "disabled": "0", 1 pour billet remboursé, 0 sinon
	        "product_management: "http://www.billetweb.fr/my_order.php?xxx",
	        "product_download: "http://www.billetweb.fr/download.php?xxx",
	        "order_id": "264751",
	        "order_ext_id": "C425-1306-E4170",
	        "order_firstname": "Prénom",
	        "order_name": "Nom",
	        "order_email": "[email protected]",
	        "order_date": "2016-03-02 10:41:36",
	        "order_paid": "1", 1 pour payé, 0 pour remboursé ou réservation non payée
	        "order_payment_type": "web",
	        "order_origin": "web",
	        "order_price": "1.00",
	        "order_session": "656087",
	        "session_start": "2016-02-01 20:00:00",
	        "order_accreditation: "0", 1 pour en attente, 2 pour refusé, 3 pour accepté
	        "order_management: "http://www.billetweb.fr/my_order.php?xxx",
	        "language" : "fr",
	        "custom": {
	            "champs perso billet": "exemple"
	        }
	        "custom_order": {
	             "champs perso commande": "exemple"
	        }
	    },
	    ...
	 ]

GET /api/event/:id/waiting

Contenu de la liste d'attente
Exemple de requète
https://www.billetweb.fr/api/event/1000/waiting?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
	[
	    {
	        "id": "24",
	        "date": "2023-12-28 23:46:01",
	        "ticket": "0", id ou 0 si liste d'attent globale
	        "session": "398792",
	        "firstname": "Jean",
	        "name": "José",
	        "email": "[email protected]",
	        "phone": "",
	        "custom": "", votre champ custo si définit
	        "quantity": "2",
	        "notified": "0", 1 si email envoyé, 0 sinon
	        "notify_date": "0000-00-00 00:00:00"
	    },
	    {
	        "id": "456",
	        "date": "2023-12-28 23:47:01",
	        ...
	    },
	 ]

POST/api/event/:id/clone

Créer un événement en dupliquant un événement existant
Cette méthode permet de créer un nouvel événement en se basant sur un modèle (un événement existant que vous aurez déja personnalisé). Attention : Elle doit être utilisée pour créer des événements au contenu distincts et nous fixons une limite de faire use à 100 appels par an (contactez nous si besoin de discuter du sujet). Si vous souhaitez juste ajouter une autre date/séance à un événement existant, vous devez utiliser le mode séance et la méthode dates_updates et non cette méthode.

Exemples d'utilisation admises : Théatre, salles de concerts, etc
Exemples d'utilisation non admises : Programmer un cours chaque semaine => utilisez le mode séance
Paramètres
  • "name" : obligatoire, Nom du nouvel événement (100 caractères max)
  • "place" : optionnel, Lieu du nouvel événement (85 caractères max)
  • "start" : date de début de l'événement en sec UNIX (inutile si vous utilisez le mode séance)
  • "end" : optionnel, date de fin de l'événement en sec UNIX (inutile si vous utilisez le mode séance)
  • "clone_dates" : 1 ou 0, 0 par défaut : duplique les séances de l'événement modèle (si vous utilisez le mode séance)
  • "clone_lists" : 1 ou 0, 1 par défaut : dupliquer les opérations liées à l'événement original dans le nouvel événement (réductions, abonnement, liste de filtrage, etc)
  • "clone_seating" : 1 ou 0, 1 par défaut : dupliquer le plan de placement numéroté (si vous utilisez du placement)

{

		 {
	        "name": "Nom du nouvel événement",
	        "start": "1583247094",
		 },

}

POST/api/event/:id/delete

Créer un événement en dupliquant un événement existant
Cette méthode permet de supprimer un événement. L'événement doit être non cloturé et ne pas contenir de billets afin d'être supprimable

POST/api/event/:id/update

Modifier un événement
Paramètres

Cette requète attend un tableau d'objets sous le paramètre "data".
Les champs suivants sont optionnels et permettent de modifier certains paramètres seulement:
  • "status" : 1 pour publié, 0 pour hors ligne
  • "description" : description de l'événement sous format HTML ou texte
  • "title" : titre de l'événement (100 caractères max)
  • "location" : lieu de l'événement (85 caractères max)
  • "toptitle" : sur-titre de l'événement (70 caractères max)
  • "tags" : un tableau de mots clés (ex "rock" ou "style:rock" si vous utilisez les filtres)
  • "quota" : nombre maximum de billets disponibles
  • "quota_message" : message une fois l'événement complet
  • "confirmation_message" : message de confirmation d'achat
{
	"data"=> [
		 {
	        "description": "
This is a test
", "status": "1", }, ... ] }

GET /api/event/:id/dates

Lister les séances pour un événement
Paramètres
  • "past" : inclure les séances passées (1 ou 0, 0 par défaut)
  • "last_update" : retourne les entrées qui ont été modifiées suite à cette date (sec UNIX)
  • "disabled" : filtrer par état (0 = ouvert, 1 = masqué, 2 = guichet, 3 = web, 4 = lien, 5 = annulé)
  • "past_by" : (en nombre de jours) séances terminées depuis X jours
Exemple de requète
https://www.billetweb.fr/api/event/1000/dates?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
	[
	    {
	        "id": "656087",
	        "start": "2016-01-01 20:00:00",
	        "end": "2016-01-01 22:00:00",
	        "name": "",
	        "place": "",
	        "description": "",
	        "instructions": "",
	        "disabled": "0",
	        "last_update": "0000-00-00 00:00:00",
	        "quota": "10",
	        "total_sales": "0",
			"tickets":  {
				"123": "123",
				"124": "124"
			},
	    },
	     {
	        "id": "656087",
	        "start": "2016-02-01 20:00:00",
	        "end": "2016-02-01 22:00:00",
	        "name": "",
	        "place": "",
	        "description": "",
	        "instructions": "",
	        "disabled": "0",
	        "last_update": "0000-00-00 00:00:00",
	        "quota": "0",
	        "total_sales": "10",
			"tickets":  {
				"123": "123",
				"124": "124"
			},
	    },
	 ]

POST/api/event/:id/dates_update

Créer ou modifier une ou plusieurs séances
Paramètres
Cette requète attend un tableau d'objets sous le paramètre "data". Seul id est obligatoire afin de pouvoir créer ou modifier facilement une ou plusieurs séance existante.

  • "id" : 0 si nouvelle séance à créer, identifiant si séance existante à modifier
  • "start" : date de début de séance en sec UNIX
  • "end" : date de début de séance en sec UNIX
  • "name" : nom de la séance (75 caractères max)
  • "place" : lieu de la séance (75 caractères max)
  • "description" : description de la séance (1000 caractères max)
  • "instructions" : instructions (prends le dessus sur les instructions générales de l'événement)
  • "quota" : quantité max pour cette séance (>0)
  • "tickets" : tableau d'identifiants des tarifs à mettre en vente ou "all" pour tous les activer
  • "disabled" : visibilité (0 = ouvert, 1 = masqué, 2 = guichet, 3 = web, 4 = lien seul, 5 = annulé)<
  • "delete" : 1 permet de supprimer la séance (si elle ne contient aucun billet)

{
	"data"=> [
		 {
	        "id": "0",
	        "start": "1583247094",
	        "tickets": "all",
		 },
		 ...
		]
}

POST/api/event/:id/dates_flush

Supprimer les commandes d'une ou plusieurs séances
Paramètres

Cette requète attend un tableau d'identifiants de séance sous le paramètre "data". Seules les commandes hors paiement carte bancaire sont supprimées.
{
	"data"=> [
		 123,
		 124,
		]
}

GET /api/event/:id/avail

Lister la disponibilité d'un événement
Paramètres
  • "temp" : optionnel, inclure ou non les paniers en cours (1 ou 0, 0 par défaut)
  • "past" : optionnel, inclure les séances passées (1 ou 0, 0 par défaut)
  • "session" : si mode séance, id de la séance ou heure de début (si unique)
Si vous utilisez le mode séance sans spécifier d'identifiant de séance, la disponibilité au global de toutes les séances est retourné (date, quota vendu, quota restant).
Si un quota n'est pas défini ou qu'un ticket est disponible sans limite, -1 est retourné
Gardez bien en tête que la somme des disponibilités de tarifs d'une catégorie peut être supérieur à la capacité de la catégorie en elle même.
Exemple de requète
https://www.billetweb.fr/api/event/1000/avail?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
	[
	    {
	    	"type": "event",
	        "status": "",
	        "avail": "-1",
	        "quota": "-1",
	    },
	     {
	        "type": "category",
	        "id": "123",
	        "parent":"0",
	        "name": "Catégorie 1",
	        "fullname": "Catégorie 1",
	        "avail": "180",
	        "quota": "200",
	    },
	     {
	        "type": "ticket",
	        "id": "124",
	        "parent":"123",
	        "name": "Tarif 1",
	        "fullname": "Catégorie 1 > Tarif 1",
	        "avail": "90",
	        "quota": "100",
	    },
	 ]

GET /api/event/:id/tickets

Liste des tarifs pour un événement
Exemple de requète
https://www.billetweb.fr/api/event/1000/tickets?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
	[
	    {
	        "id": "123",
	        "name" : "Nom du tarif 1",
	        "full_name": "Catégorie > Nom du tarif 1",
	        "price": "2.00",
	        "category" : "Catégorie",
	        "description" : "lorem ipsum",
	        "visibility" : 0, (0 = visible, 1 = web seulement, 2 = guichet uniquement, 3 = lien secret seulement, 4 = masqué),
	        "sales_start" : "",
	        "sales_end" : "",
	        "quota" : "100",
	        "label" : "Offre spéciale",
	        "form" : "123",
	        "tax" : "10", (vient écraser le taux de l'événement si défini)
	        "commission" : "0.31", (commission sur vente en ligne pour ce tarif)
	    },
	    {
	        "id": "456",
	        "name": "Catégorie > Nom du tarif 2"
	        ...
	    },
	 ]

POST/api/event/:id/tickets_update

Créer ou modifier un ou plusieurs tarifs
Paramètres
Cette requète attend un tableau d'objets sous le paramètre "data". Seul id et name sont obligatoires afin de pouvoir créer ou modifier facilement un ou plusieurs tarifs existants. Vous noterez que ces méthodes n'exploitent qu'une petite partie des options relatives aux tarifs disponibles via le backoffice.

  • "id" : 0 si nouveau tarif à créer, identifiant si tarif existant à modifier
  • "name" : nom du tarif (100 caractères max)
  • "price" : prix du tarif (>=0)
  • "description" : description de la séance (1000 caractères max)
  • "quota" : quantité max pour cette séance (>=0 avec 0 pour pas de quota)
  • "visibility" : visibilité du tarif (0 = visible, 1 = web seulement, 2 = guichet uniquement, 3 = lien secret seulement, 4 = masqué)
  • "sales_start" : date de début de vente en sec UNIX pour ce tarif
  • "sales_end" : date de début de vente en sec UNIX pour ce tarif
  • "label" : étiquette spéciale (25 caractères max)
  • "instructions" : instructions spécifique à ce tarif
  • "form" : identifiant du formulaire partagé à utiliser
  • "delete" : 1 permet de supprimer le tarif (si il n'y a pas/plus de billets/produits de ce type dans l'événement)

{
	"data"=> [
		 {
	     		"id": "0",
	    		"name: "Mon premier tarif",
	     		"price": "20.49",
	     		"description": "Voici une description"
		 },
		  {
	       		"id": "0",
	      		"name: "Mon second tarif",
	      		"price": "30.49",
	     		"description": "Voici une seconde description"
		 },
		]
}

GET /api/forms

Liste des formulaires partagés
Exemple de requète
https://www.billetweb.fr/api/forms?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
	[
	    {
	        "id": "123",
	        "name" : "Nom du formulaire partagé 1",
	    },
	    {
	        "id": "456",
	        "name": "Nom du formulaire partagé 2"
	        ...
	    },
	 ]

POST/api/event/:id/check

Composter un ou des billets
"id" : id billet
"used" : état (0 pour non composté, 1 pour composté, 2 pour sorti)
"lane" : nom du poste de contrôle (optionnel)
"used_date_unix" : heure du compostage en sec UNIX (optionnel)
{
	"data"=> [
		{
			"id" : id billet 
			"used" : état (0 pour non composté, 1 pour composté, 2 pour sorti)
			"lane" : nom du poste de contrôle (optionnel)
			"used_date_unix" : heure du compostage en sec UNIX (optionnel)
		 },
		...
	]
}

GET /api/attendees

Retourne les billets vendus tous événements confondus
Paramètres
  • "last_update" : retourne les entrées qui ont été modifiées suite à cette date (sec UNIX)
  • "since" : retourne les entrées qui ont été modifiées durant les "since" dernières minutes
  • "to" : retourne les entrées qui ont été modifiées avant cette date (sec UNIX)
  • "tag" : filtrer les billets des événements contenant un mot clé (caractères alphanumérique seulement)
  • "futur" : 1 pour inclure seulement les événements non terminés
  • "email" : filtrer sur un acheteur en particulier
  • "ticket" : filtrer sur un identifiant de tarif en particulier
  • "session" : filtrer sur un identifiant de séance en particulier
  • "used" : filtrer sur l'état composté ou non (0 pour non composté, 1 pour composté, 2 pour sorti, 3 pour expiré)
  • "disabled" : 1 pour inclure les billets remboursés ou annulés, 2 pour afficher seulement les billets rembourés ou annulés (attention : dans le cas du remboursement partiel d'une commande, un billet peut être remboursé (disabled=1) et sa commande payée (order_paid=1)
Exemple de requète
https://www.billetweb.fr/api/attendees?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1&last_update=1471467631
Exemple de résultat
	[
	    {
	     	"event" =>"123",
	     	"event_name" => "Event 12",
	     	"event_start" =>"2016-03-02 10:41:36",
	        "id": "656087",
	        "ext_id": "T356-3899-E1000",
	        "barcode": "4475320",
	        "used": "1",
	        "lane": "controle n°1", email de l'opérateur ou nom de la file
	        "used_date": "2016-06-15 22:39:24",
	        "firstname": "Prénom",
	        "name": "Nom",
	        "ticket": "Plein tarif",
	        "ticket_id": "12693",
	        "category": "Catégorie 1 > Or",
	        "price": "1.00",
	        "seating_location": "Tribune C > Rang 1 > Siège 2",
	        "last_update": "2016-03-02 10:41:36",
	        "reduction_code": "PROMO12",
	        "authorization_code": "",
	        "pass": "0",
	        "disabled": "0", 1 pour billet remboursé, 0 sinon
	        "product_management: "http://www.billetweb.fr/my_order.php?xxx",
	        "product_download: "http://www.billetweb.fr/download.php?xxx",
	        "order_id": "264751",
	        "order_ext_id": "C425-1306-E4170",
	        "order_firstname": "Prénom",
	        "order_name": "Nom",
	        "order_email": "[email protected]",
	        "order_date": "2016-03-02 10:41:36",
	        "order_paid": "1", 1 pour payé, 0 pour remboursé ou réservation non payée
	        "order_payment_type": "web",
	        "order_origin": "web",
	        "order_price": "1.00",
	        "order_session": "656087",
	        "session_start": "2016-02-01 20:00:00",
	        "order_accreditation: "0", 1 pour en attente, 2 pour refusé, 3 pour accepté
	        "order_management: "http://www.billetweb.fr/my_order.php?xxx",
	        "language" : "fr",
	        "custom": {
	            "champs perso billet": "exemple"
	        }
	        "custom_order": {
	             "champs perso commande": "exemple"
	        }
	    },
	    ...
	 ]

POST/api/event/:id/add_order

Ajoute une ou plusieurs commandes composées de un ou plusieurs produits
Cette fonction fonctionne sur des commandes basiques (pas de pass avec choix, pas de pack, pas de placement). Les paramètres non gras sont optionnels.

{
	"data"=> [
		    {
		        "name": "y",
		        "firstname": "x",
		        "email": "[email protected]",
		        "session": "123", id ou date de début de la séance (YYYY-MM-DD HH:MM)  si unique dans l'événement
		        "custom": {
		            "8": "75008",
		        },
		        "request_id":"X1",identifiant interne à votre système qu'on vous retourne dans la réponse
		        "payment_type": "card", obligatoire | 'card', 'cash', 'check', 'other' ou votre id personnalisé
		        "products":[
		        	{
		        		"ticket": "Plein tarif", obligatoire | id ou nom si unique dans l'événement
		        		"barcode": "12345678",
		          		"name": "y",
				        "firstname": "x",
				        "email": "[email protected]",
				        "price": "5.52",
				        "lane": "entree 1",
				        "used": "1", 0,1,2,3
				        "reference": "abc",
				        "custom": {
				            "11": "15/08/1976",
				        },
				        "request_id":"Y1",identifiant interne à votre système qu'on vous retourne dans la réponse
		        	},
		        	{
				        ...
				    },
		        ]
		    },
		    {
		        ...
		    },
	 ]
}
				

Exemple de résultat
[
  		{
      		"id": "billetweb_internal_order_id_1",
      		"request_id": "X1",
      		 "products":[
      		 	'billetweb_internal_product_id_1',
      		 	'billetweb_internal_product_id_2',
      		 ],
      		 'products_eq':[
      		 	{'Y1':'billetweb_internal_product_id_1'},
      		 	{'Y2':'billetweb_internal_product_id_2'},
      		 ]
      	},
      	{
      		"id": "billetweb_internal_order_id_2",
      		"request_id": "X2",
      		 "products":[
      		 	'billetweb_internal_product_id_3',
      		 	'billetweb_internal_product_id_4',
      		 ],
      		 'products_eq':[
      		 	{'Y3':'billetweb_internal_product_id_3'},
      		 	{'Y4':'billetweb_internal_product_id_4'},
      		 ]
      	},
]

POST/api/event/:id/delete_order

Supprimer une ou plusieurs commandes hors ligne
{
	"data"=> [
			123,
			124,
		]
}
				

POST/api/event/:id/pay_order

Marquer une réservation comme payée (paiement hors ligne)
Paramètres
  • "payment_type" : 'reservation' (défaut), 'other', 'card', 'cash', 'check' ou votre id personnalisé
  • "notification" : 1 pour envoyer l'email de confirmation avec billets à l'acheteur, 0 ou vide pour ne rien envoyer
{
	"data"=> [
		 {
			"id": "1234567",
	   		"payment_type": "other",
			"notification": "1",
		 },
		 ...
		]
}
				

POST/api/event/:id/unpay_order

Marquer une réservation comme non payée (paiement hors ligne)
Paramètres
    N'utilisez cette commande que pour annuler une commande. Le passage en non payé va libérer des ressources qui pourraient ne jamais être récupérée si vous la marqué payée à nouveau (placement, réductions, liste de filtrage)
{
	"data"=> [
		 {
			"id": "1234567",
		 },
		 ...
		]
}
				

POST/api/event/:id/pay_request

Demander le paiement d'un une réservation
Paramètres
    Pour envoyer par e-mail une demande de paiement de la réservation (un rappel)
{
	"data"=> [
		 {
			"id": "1234567",
		 },
		 ...
		]
}
				

POST/api/event/:id/update_order

Modifier les informations de certaines commandes ou valider ou refuser l'accréditation
Paramètres pour valider une accréditation
  • "id" : numéro de la commande
  • "accredited" : 3 pour valider l'accréditation ou le paiement, 2 pour refuser l'accréditation
  • "notification" : 1 pour envoyer un email à l'acheteur, 0 ou vide pour ne rien envoyer
{
	"data"=> [
		 {
			"id": "1234567",
	   		"accredited": "3",
			"notification": "1",

		 },
		 {
			"id": "1234566",
	   		"accredited": "3",
			"notification": "1",
		 },
		]
}


Paramètres pour modifier les informations d'une commande
  • "id" : numéro de la commande
  • "name" : nouveau nom de la commande
  • "firstname" : nouveau prénom de la commande
  • "custom" : tableau contenant les champs personnalisés
{
"data"=> [
		{
			"id": "1234567",
			"name": "x",
			"firstname": "y",
			"custom" : [{
				"392" : "Ma réponse custo",
				"393" : "Valeur 1-Valeur 2-Valeur 3",
			}],
		},
		{
			"id": "1234566",
			"name": "z",
			"firstname": "a",
		},
	]
}

POST/api/event/:id/update_product

Modifier les données de certains billets ou produits
Paramètres
  • "id" : numéro du billet/produit
  • "name" : nouveau nom du billet/produit
  • "firstname" : nouveau prénom du billet/produit
  • "custom" : tableau contenant les champs personnalisés
{
	"data"=> [
		{
			"id": "1234567",
			"name": "x",
			"firstname": "y",
			"custom" : [{
				"392" : "Ma réponse custo",
				"393" : "Valeur 1-Valeur 2-Valeur 3",
			}],
		},
		{
			"id": "1234566",
			"name": "z",
			"firstname": "a",
		},
	]
}



POST/api/event/:id/poster

Ajouter ou modifier l'affiche de l'événement
Image carrée ou portrait. 200px minimum. Elle sera automatiquement redimensionnée et rognée.
Exemple de requète CURL en PHP

$ch = curl_init("https://www.billetweb.fr/api/event/1000/poster?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1");
$cfile = new CURLFile("/path/to/my_file.jpg",'image/jpeg','my_file.jpg');
$data = array('image' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
				

POST/api/event/:id/cover

Ajouter ou modifier l'affiche de l'événement
Image paysage. 1040px minimum. Pas de hauteur imposée. Elle sera automatiquement redimensionnée et rognée.
Exemple de requète CURL en PHP

$ch = curl_init("https://www.billetweb.fr/api/event/1000/cover?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1");
$cfile = new CURLFile("/path/to/my_file.jpg",'image/jpeg','my_file.jpg');
$data = array('image' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
				

GET /api/accounting

Retourne l'historique comptable global des opérations de ventes ou remboursement
Paramètres
  • "canal" : (optionnel) limiter aux ventes web ("web") ou aux vente hors ligne ("other")
  • "start" : retourne les entrées qui ont été modifiées après cette date (sec UNIX)
  • "end" : (optionnel) retourne les entrées qui ont été modifiées avant cette date (sec UNIX)
Exemple de requète
https://www.billetweb.fr/api/accounting?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1&start=1471467631
Valeur paramètre retour
  • "type" : 'product_pay' ou 'product_refund'
  • "payment_type" : 'reservation' (défaut), 'other', 'card', 'cash', 'check' ou votre id personnalisé
Exemple de résultat
[
    {,
        "date": "2021-12-26 12:15:32",
        "event": "123456",
        "order": "12345678",
        "product":"123456789",
        "ext_id": "T356-3899-E1000",
        "email" : "[email protected]"
        "session": "0",
        "ticket": "123",
        "price": "5.00",
        "type": "product_pay",
        "payment_type": "web",
        "tax_rate": "20",
        "tax_amount": "1",
        "fees":"0.35",
    },
    {
        ...
    },
 ]
 				

GET /api/payouts

Lister les virements existants
Exemple de requète
https://www.billetweb.fr/api/payouts?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
ou
https://www.billetweb.fr/api/payouts/2018-01-16/?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
[
    {
        "id": "123",
        "date": "2014-01-01",
        "amount": "795.04",
        "account": "NAME",
        "iban": "FR1420041010050500013M0260",
        "swift": "XXXXXXX",
    },
    {
        ...
    },
 ]


				

GET /api/payout/[:id|date]/data

Détail d'un virement
Exemple de requète
https://www.billetweb.fr/api/payout/100/?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
ou
https://www.billetweb.fr/api/payout/2018-01-16/?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
[
    {
        "id": "10000",
        "ext_id": "T001-0002-E12",
        "date": "2013-12-26 12:15:32",
        "order_id":"123456",
        "event": "12",
        "price": "10",
        "tax_rate": "20",
        "tax_amount": "2",
        "fees": "0.49",
    },
    {
        ...
    },
 ]


				 

GET /api/date_changes

Lister les changements de séance
Paramètres
  • "start" : retourne les entrées qui ont été modifiées après cette date (sec UNIX)
  • "end" : (optionnel) retourne les entrées qui ont été modifiées avant cette date (sec UNIX)
Exemple de requète
https://www.billetweb.fr/api/date_changes?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1&start=1606783191
Exemple de résultat
[
    {
        "date": "2020-12-04 01:38:47",
        "order": "123456"
        "old_session_date": "2020-12-17 00:00:00"
        "new_session_date": "2020-12-04 05:00:00"
    },
   ...
 ]


				

GET /api/lists

Lister les listes existantes
Exemple de requète
https://www.billetweb.fr/api/lists?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
[
    {
        "id": "123",
        "name": "Abonnés 2016"
    },
    {
        "id": "456",
        "name": "Abonnés 2017"
    },
 ]
				

GET /api/lists/:id/data

Obtenir le contenu d'une liste
Exemple de requète
https://www.billetweb.fr/api/list/1000/data?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
[
	    ["[email protected]","Jean","Dupont","10/02/1969"],
	    ["[email protected]","Pierre","Richard",25/05/1965"],
]
				 

POST/api/list/:id/replace

Remplace le contenu d'une liste
{
	"data"=> [
				["[email protected]","Jean","Dupont"],
				["[email protected]"],
				...
			]
}
				 

POST/api/list/:id/push

Ajoute une entrée dans une liste
{
	"data"=> [
			["[email protected]","Jean","Dupont"],
			["[email protected]"],
			...
			]
}
				 

GET /api/campaigns

Lister les campagnes existantes
Exemple de requète
https://www.billetweb.fr/api/campaigns?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
[
    {
        "id": "123",
        "name": "Réduction de 5€ sur X,Y,Z",
        "list":"12456",
    },
    {
        "id": "456",
        "name": "Réduction de 10€ sur A,B",
        "list":"12456",
    },
 ]
				

GET /api/campaigns/:id/data

Obtenir le contenu d'une campagne
Exemple de requète
https://www.billetweb.fr/api/campaign/1000/data?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Paramètres (optionnels)
  • "filter" : Filtrer sur une clé (key) en particulier
Exemple de résultat
[
	    {
        "key": "[email protected]",
        "used": "2",
        "max": "5",
        "context":"",
        "list_col_1": "Jean",
        "list_col_2": "Dupont",
        "list_col_3": "",
        "list_col_4": "",
        "list_col_5": "",
      },
       {
        "key": "[email protected]",
        "used": "1",
        "max": "7",
        "context":"",
        "list_col_1": "",
        "list_col_2": "",
        "list_col_3": "",
        "list_col_4": "",
        "list_col_5": "",
      },
]
				 

GET/api/crm/contacts

Retourne les contacts présent dans le CRM
Paramètres (optionnels)
  • "last_update" : retourne les entrées qui ont été modifiées suite à cette date (sec UNIX)
  • "since" : retourne les entrées qui ont été modifiées durant les "since" dernières minutes
  • "to" : retourne les entrées qui ont été modifiées avant cette date (sec UNIX)
  • "email" : filtrer sur un acheteur en particulier
  • "segment" : filtrer sur un identifiant de segment particulier (voir méthode /crm/segments)
Exemple de requète
https://www.billetweb.fr/api/crm/contacts?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1&
Exemple de résultat
[
    "[email protected]": {
	        "id": "1023936",
	        "email": "[email protected]",
	        "name": "ANDRE ",
	        "firstname": "Alice",
	        "added_on": "2022-04-21 15:54:06",
	        "last_update": "2022-04-21 15:54:06",
	        "trans_count": "2",
	        "trans_total": "15",
	        "trans_first": "2020-02-02",
	        "trans_last": "2021-06-16",
	        "product_count": "2",
	        "product_price_max": "15",
	        "product_price_average": "8"
	        "custom": {
	            "Pays": "fr",
	            "Code postal": "38000"
	        }
	    },
    },
    "[email protected]": {
	        "id": "1023937",
	        "email": "[email protected]",
	        "name": "XXX",
	        "firstname": "xxx",
	        "added_on": "2022-04-21 15:54:06",
	        "last_update": "2022-04-21 15:54:06",
	        "trans_count": "2",
	        "trans_total": "12",
	        "trans_first": "2022-02-02",
	        "trans_last": "2022-06-16",
	        "product_count": "3",
	        "product_price_max": "15",
	        "product_price_average": "8"
	        "custom": {
	            "Pays": "es",
	            "Code postal": "1212"
	        }
	    },
    },
   ...
 ]
  

GET /api/crm/segments

Lister les segments existants
Exemple de requète
https://www.billetweb.fr/api/crm/segments?user=1&key=eccbc87e4b5ce2fe28308fd9f2a7baf3&version=1
Exemple de résultat
[
    {
        "id": "111",
        "name": "Acheteurs de plus de 5 achats",
        "created_on": "2020-02-05 17:45:35",
        "last_sync": "0000-00-00 00:00:00",
    },
    {
        "id": "112",
        "name": "Acheteur avec un seul achat",
        "created_on": "2020-03-06 12:25:35",
        "last_sync": "0000-00-00 00:00:00",
    },
 ]