Devis

Obtenir des devis

GET /estimates/estimates[/status/#{status}][/start_date/#{start_date}][/end_date/#{end_date}][/clients/#{clients}][/tags/#{tags}][/number/#{number}][/amount_total_operator/#{amount_total_operator}][/amount_total/#{amount_total}][/currency/#{currency}][/user/#{user_id}]

Arguments de l'URI

Argument Type Requis Valeur/Description
status string Un ou des statuts à filtrer. Vous pouvez passer plusieurs statuts en même temps en les séparant par ":".
Par exemple : /status/draft:sent:unsigned
Voir les valeurs possibles de status.
start_date date Si l'argument n'est pas renseigné, la valeur par défaut est le premier jour du mois courant.
end_date date Si l'argument n'est pas renseigné, la valeur par défaut est le dernier jour du mois courant.
clients string Un ou des clients à filtrer. Vous pouvez passer plusieurs clients en même temps en les séparant par ":".
Par exemple : /clients/Client%20Name:Another%20Client%20Name
tags string Un ou des tags à filtrer. Vous pouvez passer plusieurs tags en même temps en les séparant par ":".
Par exemple : /tags/Tag%201:Tag%202
number string Tout ou partie d'un numéro de devis à filtrer (équivalent à la fonction MySQL "LIKE '#{number}%'".
amount_total_operator string Voir les valeurs possibles de operator.
amount_total double Un montant total.
currency string Voir les valeurs possibles de currency.
user integer Le #{user_id} de l'utilisateur pour lequel filtrer les résultats.

Exemple de requête avec cURL

	
curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X GET https://#{subdomain}.iscriba.com/api/estimates/estimates/status/draft:sent/currency/EUR
	

Exemple de réponse XML

HTTP Status: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<estimates>
		<estimate>
			<estimate_id>6</estimate_id>
			<company_name>Company Name</company_name>
			<client_id>15</client_id>
			<estimate_number>D10110001</estimate_number>
			<date_estimate>2010-11-25</date_estimate>
			<related_purchaseorder_id></related_purchaseorder_id>
			<invoice_number></invoice_number>
			<related_invoice_id></related_invoice_id>
			<related_invoice_status></related_invoice_status>
			<validity_base>2010-11-25</validity_base>
			<validity>15</validity>
			<total>142.97</total><!-- Total HT -->
			<grand_total>171</grand_total><!-- Total TTC -->
			<currency>EUR</currency>
			<status>draft</status>
			<status_extra>auto</status_extra>
		</estimate>
		<estimate>
		...
		</estimate>
	</estimates>
</xml>
	
Haut

Obtenir un devis

GET /estimates/estimate/id/#{estimate_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis 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/estimates/estimate/id/5
	

Exemple de réponse XML

HTTP Status: 200 OK
<xml>
	<estimate>
		<estimate_id>5</estimate_id>
		<user_id>1</user_id>
		<company_id>1</company_id>
		<company_name>Company Name</company_name>
		<summary></summary>
		<client_id>2</client_id>
		<client_name>Client Name</client_name>
		<client_language>french</client_language>
		<client_tax_id>FR12123123123</client_tax_id>
		<estimate_number>D10090005</estimate_number>
		<date_creation>2010-09-29 15:03:17</date_creation>
		<date_estimate>2010-09-29</date_estimate>
		<total>600</total><!-- Total HT -->
		<global_discount_total>0</global_discount_total>
		<global_discount_percentage>0</global_discount_percentage>
		<sub_total>600</sub_total><!-- Sous-total HT -->
		<tax_total>117.6</tax_total>
		<alt_tax_total>0</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>717.6</grand_total><!-- Total TTC -->
		<currency>EUR</currency>
		<terms>0</terms>
		<custom_terms></custom_terms>
		<due_date>2010-09-29</due_date>
		<payment>VIR</payment>
		<payment_specified></payment_specified>
		<late_fee>0</late_fee>
		<late_fee_specified>0</late_fee_specified>
		<billing_address>
			<name>Client Name</name>
			<address1></address1>
			<address2></address2>
			<address3></address3>
			<address4></address4>
			<city></city>
			<state></state>
			<postalcode></postalcode>
			<country></country>
		</billing_address>
		<validity_base>2010-09-29</validity_base><!-- date à utiliser pour le calcul de la validité -->
		<validity>15</validity>
		<introductory_text></introductory_text>
		<terms_of_agreement></terms_of_agreement>
		<status>unsigned</status>
		<status_extra>auto</status_extra><!-- si "status" vaut "unsigned" et "status_extra" vaut "auto", cela signifie que le devis a le statut "expiré", sinon le statut est "non signé" quand status_extra vaut "manual" -->
		<lines>
			<line>
				<item_id>3</item_id>
				<line_id>8</line_id>
				<line_number>1</line_number>
				<kind>1</kind>
				<qty>3</qty>
				<description>Lorem ipsum dolor sit amet</description>
				<tax_percentage>19.6</tax_percentage>
				<alt_tax_percentage>0</alt_tax_percentage>
				<unit_price>200</unit_price>
				<reduction_percentage>0</reduction_percentage>
			</line>
		</lines>
	</estimate>
</xml>
	
Haut

Obtenir un devis au format PDF

GET /estimates/estimate/id/#{estimate_id}/format/pdf

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis 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/estimates/estimate/id/5/format/pdf
	

Exemple de réponse XML

HTTP Status: 200 OK
Content-Type: application/pdf
%PDF-1.4

...

%%EOF
	
Haut

Créer un devis

POST /estimates/estimate

Champs de la requête

Champ Type Requis Description
date date oui Date du devis. Ne peut pas être antérieur à la date du dernier devis créé.
client_id integer oui Le #{client_id} de la société pour laquelle vous créez le devis.
summary string Un résumé du devis (pour usage interne).
currency string Monnaie du devis. La valeur par défaut est celle des paramètres de votre compte. Voir les valeurs possibles de currency.
address array Ce champ sert à personnaliser l'adresse de facturation. Si vous ne le transmettez pas, l'adresse par défaut du client est utilisée.
address[address1] string Ligne d'adresse 1.
address[address2] string Ligne d'adresse 2.
address[address3] string Ligne d'adresse 3.
address[address4] string Ligne d'adresse 4.
address[city] string Ville.
address[state] string Région/Etat.
address[postalcode] string Code postal.
address[country] string Pays. Voir les valeurs possibles de country.
validity integer Un nombre de jours pour déterminer la durée de validité du devis. La valeur par défaut est celle des paramètres de votre compte.
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.
introductory_text string Utilisez ce champ pour ajouter une introduction à votre devis. Ce champ n'apparait pas sur le document si vous le laissez vide.
lines array oui (au moins une ligne) Les lignes du devis.
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.
terms_of_agreement string Utilisez ce champ pour ajouter des conditions d'accord au devis. Ce champ n'apparait pas sur le document si vous le laissez vide.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-d "date=2010-11-08&client_id=14&currency=EUR&address[address1]=Ligne d'adresse 1&address[address2]=Ligne d'addresse 2&address[city]=Ville&address[postalcode]=01234&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 devis 1&lines[0][unit_price]=10&lines[0][qty]=1&lines[1][description]=Ligne de devis 2&lines[1][unit_price]=20&lines[1][qty]=2"\
https://#{subdomain}.iscriba.com/api/estimates/estimate
	

Exemple de réponse XML

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

Modifier un devis

PUT /estimates/estimate/id/#{estimate_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis que vous souhaitez modifier.

Champs de la requête

Identiques à créer un devis 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 "introductory_text=Lorem ipsum dolor sit amet"\
https://#{subdomain}.iscriba.com/api/estimates/estimate/id/1
	

Exemple de réponse XML

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

Mettre à jour le statut d'un devis

PUT /estimates/estimate_status/id/#{estimate_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis dont vous souhaitez modifier le statut.

Champs de la requête

Champ Type Requis Description
status string oui Voir les valeurs possibles de status.
"signed" générera automatiquement un bon de commande lié au devis, iScriba fournira l'id du bon de commande généré dans la réponse.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X PUT\
-d "status=signed"\
https://#{subdomain}.iscriba.com/api/estimates/estimate_status/id/1
	

Exemple de réponse XML

HTTP Response: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<estimate>
		<id>1</id>
		<status>signed</status>
		<purchaseorder_id>5</purchaseorder_id><!-- ce noeud est présent uniquement lorsque le nouveau statut est "signed" -->
	</estimate>
</xml>	
	
Haut

Supprimer un devis

DELETE /estimates/estimate/id/#{estimate_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis 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/estimates/estimate/id/1
	

Exemple de réponse XML

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

GET /estimates/estimate_related_comments/id/#{estimate_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis dont vous souhaitez obtenir les commentaires liés.

Exemple de requête avec cURL

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

Exemple de réponse XML

HTTP Status: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<estimate_related_comments>
		<estimate_related_comment>
			<comment_id>13</comment_id>
			<estimate_id>19</estimate_id>
			<user_id>1</user_id>
			<firstname>John</firstname>
			<lastname>Doe</lastname>
			<title></title>
			<subtitle></subtitle>
			<content>Lorem ipsum dolor sit amet.</content>
			<date>2010-12-23</date>
			<type>post</type>
			<is_public>0</is_public>
		</estimate_related_comment>
		<estimate_related_comment>
		...
		</estimate_related_comment>
	</estimate_related_comments>
</xml>
	
Haut

Créer un commentaire lié à un devis

POST /estimates/estimate_related_comment

Champs de la requête

Champ Type Requis Description
estimate_id integer oui Le #{estimate_id} du devis auquel sera lié le commentaire.
content string oui Le contenu du commentaire (seul le texte brut est autorisé).
is_public boolean Défini si le commentaire est visible par le client. La valeur par défaut est TRUE (le commentaire est public).

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-d "estimate_id=10&content=Lorem ipsum dolor sit amet.&is_public=0"\
https://#{subdomain}.iscriba.com/api/estimates/estimate_related_comment
	

Exemple de réponse XML

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

DELETE /estimates/estimate_related_comment/id/#{comment_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{comment_id} du commentaire 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/estimates/estimate_related_comment/id/1
	

Exemple de réponse XML

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

GET /estimates/estimate_related_documents/id/#{estimate_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis dont vous souhaitez obtenir les documents liés.

Exemple de requête avec cURL

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

Exemple de réponse XML

HTTP Status: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<estimate_related_documents>
		<estimate_related_document>
			<id>4</id>
			<number>BC10090004</number>
			<date_creation>2010-09-29 15:03:25</date_creation>
			<date>2010-09-29</date>
			<total>717.6</total><!-- Total TTC -->
			<currency>EUR</currency>
			<type></type>
			<kind>purchaseorder</kind>
			<status>draft</status>
		</estimate_related_document>
		<estimate_related_document>
			...
		</estimate_related_document>
	</estimate_related_documents>
</xml>
	
Haut

GET /estimates/estimate_related_tags/id/#{estimate_id}

Arguments de l'URI

Argument Type Requis Valeur
id integer oui Le #{estimate_id} du devis dont vous souhaitez obtenir les tags liés.

Exemple de requête avec cURL

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

Exemple de réponse XML

HTTP Status: 200 OK
<?xml version="1.0" encoding="utf-8"?>
<xml>
	<estimate_related_tags>
		<estimate_related_tag>
			<tag_id>5</tag_id>
			<tag_name>lorem</tag_name>
		</estimate_related_tag>
		<estimate_related_tag>
		...
		</estimate_related_tag>
	</estimate_related_tags>
</xml>
	
Haut

Créer un tag lié à un devis

POST /estimates/estimate_related_tag

Champs de la requête

Champ Type Requis Description
estimate_id integer oui Le #{estimate_id} du devis auquel sera lié le tag.
tag string oui Le nom du tag.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-d "estimate_id=10&tag=Votre-tag"\
https://#{subdomain}.iscriba.com/api/estimates/estimate_related_tag
	

Exemple de réponse XML

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

DELETE /estimates/estimate_related_tag/estimate_id/#{estimate_id}/tag_id/#{tag_id}

Arguments de l'URI

Argument Type Requis Valeur
estimate_id integer oui Le #{estimate_id} du devis auquel est associé le tag.
tag_id integer oui Le #{tag_id} du tag lié au devis.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-X DELETE https://#{subdomain}.iscriba.com/api/estimates/estimate_related_tag/estimate_id/1/tag_id/1
	

Exemple de réponse XML

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

Créer une facture unique à partir d'un devis

POST /estimates/estimate_to_invoice

Champs de la requête

Champ Type Requis Description
estimate_id integer oui Le #{estimate_id} du devis à partir duquel la facture sera créée.
date date oui Date de la facture. Ne peut pas être antérieur à la date de la dernière facture créée.
notes string Les notes que vous souhaitez ajouter à la facture (toutes les notes apparaissent sur le document).
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.

Exemple de requête avec cURL

curl -u #:#{password}'\
-H 'User-Agent: #{user_agent}'\
-d "estimate_id=10&date=2011-01-01"\
https://#{subdomain}.iscriba.com/api/estimates/estimate_to_invoice
	

Exemple de réponse XML

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