Factures périodiques

Obtenir des modèles de factures périodiques

GET /recurring/templates[/frequency/#{frequency}][/name/#{name}][/grand_total_operator/#{grand_total_operator}][/grand_total/#{grand_total}][/recurring_total_operator/#{recurring_total_operator}][/recurring_total/#{recurring_total}]

Arguments de l'URI

Argument Type Requis Valeur/Description
frequency string Une fréquence de périodicité à filtrer. Voir les valeurs possibles de frequency.
name string Un nom de modèle de facture périodique.
grand_total_operator string Voir les valeurs possibles de operator.
grand_total double Un montant total.
recurring_total_operator string Voir les valeurs possibles de operator.
recurring_total double Un montant total récurrent.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X GET https://#{subdomain}.iscriba.com/api/recurring/templates

Exemple de réponse XML

HTTP Status : 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<templates>
		<template>
			<template_id>3</template_id>
			<template_name>Template Name</template_name>
                        <summary></summary>
			<currency>EUR</currency>
			<grand_total>847.75</grand_total><!-- Total TTC -->
			<frequency>monthly</frequency>
			<frequency_specified>0</frequency_specified>
			<total_schedules>2</total_schedules>
		</template>
		<template>
			...
		</template>
	</templates>
</xml>
Haut

Obtenir un modèle de facture périodique

GET /recurring/template/id/#{template_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{template_id} du modèle de facture périodique que vous souhaitez obtenir.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X GET https://#{subdomain}.iscriba.com/api/recurring/template/id/1

Exemple de réponse XML

HTTP Status : 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<template>
		<template_id>1</template_id>
		<user_id>1</user_id>
		<template_name>Template Name</template_name>
		<summary></summary>
		<currency>EUR</currency>
		<total>710</total><!-- Total HT -->
		<global_discount_total>0</global_discount_total>
		<global_discount_percentage>0</global_discount_percentage>
		<sub_total>710</sub_total>
		<tax_total>137.2</tax_total>
		<alt_tax_total>0.55</alt_tax_total>
		<tax_name>TVA</tax_name>
		<tax_percentage>19.6</tax_percentage>
		<alt_tax_name>TVA</alt_tax_name>
		<alt_tax_percentage>5.5</alt_tax_percentage>
		<use_tax_inclusive>0</use_tax_inclusive>
		<taxation_mode>simple</taxation_mode>
		<grand_total>847.75</grand_total><!-- Total TTC -->
		<terms>0</terms>
		<custom_terms></custom_terms>
		<payment>VIR</payment>
		<payment_specified></payment_specified>
		<late_fee>0</late_fee>
		<late_fee_specified>0</late_fee_specified>
		<notes></notes>
		<frequency>monthly</frequency>
		<frequency_specified>0</frequency_specified>
		<cc_tenant>1</cc_tenant>
		<attach_pdf>1</attach_pdf>
		<lines>
			<line>
				<line_id>5</line_id>
				<item_id>11</item_id>
				<line_number>1</line_number>
				<kind>4</kind>
				<qty>1</qty>
				<description>HTC Desire HD A9191 with HTC Sense</description>
				<tax_percentage>19.6</tax_percentage>
				<alt_tax_percentage>0</alt_tax_percentage>
				<unit_price>600</unit_price>
				<reduction_percentage>0</reduction_percentage>
			</line>
			<line>
				...
			</line>
		</lines>
	</template>
</xml>
Haut

Créer un modèle de facture périodique

POST /recurring/template

Champs de la requête

Champ Type Requis Description
template_name string oui Nom du modèle.
summary string Un résumé du modèle (pour usage interne).
currency string Monnaie de la facture. La valeur par défaut est celle des paramètres de votre compte. Voir les valeurs possibles de currency.
tax_name string Nom de la taxe. La valeur par défaut est celle des paramètres de votre compte.
tax_percentage double Pourçentage de taxe. La valeur par défaut est celle des paramètres de votre compte.
alt_tax_name string Nom de la taxe alternative. La valeur par défaut est celle des paramètres de votre compte.
alt_tax_percentage double Pourçentage de taxe alternative. La valeur par défaut est celle des paramètres de votre compte.
use_tax_inclusive boolean Défini si le prix unitaire des articles inclus la taxe. La valeur par défaut est celle des paramètres de votre compte.
taxation_mode string La valeur par défaut est celle des paramètres de votre compte. Pour appliquer les taxes de façon composée il faut préciser "compound".
global_discount_percentage double Pourçentage de remise globale. La valeur par défaut est 0.
terms string Conditions de règlement. La valeur par défaut est celle des paramètres de votre compte. Voir les valeurs possibles de terms.
payment string Mode de règlement. La valeur par défaut est celle des paramètres de votre compte. Voir les valeurs possibles de payment.
late_fee double Pourçentage d'intérêt de retard. La valeur par défaut est celle des paramètres de votre compte. Voir les valeurs possibles de late_fee.
lines array oui (au moins une ligne) Les lignes de la facture.
lines[#{key}][item_id] integer Le #{item_id} de l'article de l'inventaire associé à la ligne. S'il est renseigné, les champs description et unit_price ne sont plus requis.
lines[#{key}][kind] integer Type de la ligne. La valeur par défaut est "1" pour "Service".
Voir les valeurs possibles de kind.
lines[#{key}][qty] double Quantité d'articles. Vaut 1 par défaut.
lines[#{key}][description] string oui Description de l'article.
lines[#{key}][tax] boolean Appliquer la taxe. Vaut FALSE s'il n'est pas renseigné.
lines[#{key}][alt_tax] boolean Appliquer la taxe alternative. Vaut FALSE s'il n'est pas renseigné.
lines[#{key}][unit_price] double oui Prix de l'article.
lines[#{key}][reduction_percentage] double Pourçentage de remise sur la ligne.
notes string Les notes que vous souhaitez ajouter à la facture (toutes les notes apparaissent sur le document). La valeur par défaut est celle des paramètres de votre compte.
frequency string La fréquence d'envoi de la facture périodique. La valeur par défaut est "monthly" pour "tous les mois". Voir les valeurs possible de frequency.
cc_tenant boolean Met en copie le propriétaire du compte lorsque la facture périodique est envoyée. Vaut FALSE s'il n'est pas renseigné.
attach_pdf boolean Joindre le PDF lorsque la facture périodique est envoyée. Vaut FALSE s'il n'est pas renseigné.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-d "currency=EUR&tax_name=TVA&tax_percentage=19.6&alt_tax_name=TVA&alt_tax_percentage=5.5&taxation_mode=simple&global_discount_percentage=0&terms=30END&payment=VIR&late_fee=0&lines[0][description]=Ligne de facture périodique 1&lines[0][unit_price]=10&lines[0][qty]=1&lines[1][description]=Ligne de facture périodique 2&lines[1][unit_price]=20&lines[1][qty]=2&notes=Notes de la facture périodique&frequency=weekly&attach_pdf=1"\
https://#{subdomain}.iscriba.com/api/recurring/template
	

Exemple de réponse XML

HTTP Status: 201 Created
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<template_id>1</template_id>
</xml>	
	
Haut

Modifier un modèle de facture périodique

PUT /recurring/template/id/#{template_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{template_id} du modèle de facture périodique que vous souhaitez modifier.

Champs de la requête

Identiques à créer un modèle de facture périodique excepté qu'aucun champ n'est requis. Tous les champs non intégrés à la requête resteront inchangés.

Attention : pour les champs de type array, vous devez transmettre le tableau complet si vous souhaitez ajouter, modifier ou supprimer un élément du tableau.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X PUT\
-d "frequency=yearly"\
https://#{subdomain}.iscriba.com/api/recurring/template/id/1
	

Exemple de réponse XML

HTTP Response: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<template_id>1</template_id>
</xml>	
	
Haut

Supprimer un modèle de facture périodique

DELETE /recurring/template/id/#{template_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{template_id} du modèle de facture périodique que vous souhaitez supprimer.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X DELETE https://#{subdomain}.iscriba.com/api/recurring/template/id/1
	

Exemple de réponse XML

HTTP Response: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<template_id>1</template_id>
</xml>	
	
Haut

Obtenir des programmations périodiques

GET /recurring/schedules/[/template_id/#{template_id}][/client_id/#{client_id}]

Arguments de l'URI

Argument Type Requis Valeur/Description
template_id integer Le #{template_id} du modèle de facture périodique à filtrer.
client_id integer Le #{client_id} du client associé à filtrer.

Exemple de requête avec cURL

	
curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X GET https://#{subdomain}.iscriba.com/api/recurring/schedules/template_id/9
	

Exemple de réponse XML

HTTP Status: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<schedules>
		<schedule>
			<schedule_id>4</schedule_id>
			<template_id>9</template_id>
			<client_id>26</client_id>
			<client_name>Client Name</client_name>
			<recipients>
				<recipient>37</recipient>
				<recipient>38</recipient>
			</recipients>
			<start_billing_on>2011-01-31</start_billing_on>
			<stop_billing_on>0000-00-00</stop_billing_on>
			<occurrences>0</occurrences>
			<occurrences_past>1</occurrences_past>
			<last_run>2011-02-02</last_run>
		</schedule>
		<schedule>
			...
		</schedule>
	</schedules>
</xml>
Haut

Obtenir une programmation périodique

GET /recurring/schedule/id/#{schedule_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{schedule_id} de la programmation périodique que vous souhaitez obtenir.

Exemple de requête avec cURL

	
curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X GET https://#{subdomain}.iscriba.com/api/recurring/schedule/id/1
	

Exemples de réponse XML

HTTP Status: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<schedule>
		<schedule_id>2</schedule_id>
		<template_id>3</template_id>
		<client_id>26</client_id>
		<client_name>Client Name</client_name>
		<recipients>
			<recipient>37</recipient>
		</recipients>
		<start_billing_on>2011-01-25</start_billing_on>
		<stop_billing_on>0000-00-00</stop_billing_on>
		<occurrences>0</occurrences>
		<occurrences_past>2</occurrences_past>
		<last_run>2011-03-10</last_run>
	</schedule>
</xml>
Haut

Créer une programmation périodique

POST /recurring/schedule

Champs de la requête

Champ Type Requis Description
template_id integer oui Le #{template_id} du modèle de facture périodique lié à la programmation périodique.
client_id integer oui Le #{client_id} de la société pour laquelle vous créez la programmation périodique.
recipients array Les destinataires de la facture qui sera générée périodiquement.
recipients[#{key}] integer Le #{user_id} d'un utilisateur qui recevra la facture.
start_billing_on string oui La date à laquelle commencer à générer la facture périodique. Ne peut pas être antérieur à la date courante.
stop_billing_on string La date à laquelle arrêter de générer la facture périodique. Ne peut pas être antérieur à la date courante.
occurrences integer Le nombre d'occurences avant d'arrêter de générer la facture périodique.
  • Si stop_billing_on et occurrences ne sont pas renseignés, la programmation périodique est illimitée.
  • Si stop_billing_on est renseigné, la programmation périodique s'arrête à la date indiquée.
  • Si occurrences est renseigné, la programmation périodique s'arrête après le nombre d'occurrences indiquées.

Exemple de requête avec cURL

	
curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-d "template_id=1&client_id=12&recipients[0]=5&recipients[1]=8&start_billing_on=2011-03-14&occurrences=6"\
https://#{subdomain}.iscriba.com/api/recurring/schedule
	

Exemple de réponse XML

HTTP Status: 201 Created
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<schedule_id>1</schedule_id>
</xml>	
	
Haut

Modifier une programmation périodique

PUT /recurring/schedule/id/#{schedule_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{schedule_id} de la programmation périodique que vous souhaitez modifier.

Champs de la requête

Identiques à créer une programmation périodique excepté qu'aucun champ n'est requis. Tous les champs non intégrés à la requête resteront inchangés. Les champs date et client_id ne sont pas pris en compte.

Attention : pour les champs de type array, vous devez transmettre le tableau complet si vous souhaitez ajouter, modifier ou supprimer un élément du tableau.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X PUT\
-d "recipients[0]=38"\
https://#{subdomain}.iscriba.com/api/recurring/schedule/id/1
	

Exemple de réponse XML

HTTP Response: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<schedule_id>1</schedule_id>
</xml>	
	
Haut

Supprimer une programmation périodique

DELETE /recurring/schedule/id/#{schedule_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{schedule_id} de la programmation périodique que vous souhaitez supprimer.

Exemple de requête avec cURL

	
curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X DELETE https://#{subdomain}.iscriba.com/api/recurring/schedule/id/1
	

Exemple de réponse XML

HTTP Response: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<schedule_id>1</schedule_id>
</xml>	
	
Haut