Toutes les requêtes doivent se faire en HTTPS vers l'URL: https://app.factomos.com/api/api.php
cette URL ne prend que deux paramètres token et crequest en POST crequest étant la chaîne cryptée représentant la suite des paramètres POST
Pour crypter cette chaîne il faut utiliser le paramètre secret qui doit absolument rester confidentiel.
Pour l'utilisation de l'API, Factomos vous fournit donc le couple
token: xxxxxx secret: yyyyyy
Fonction de cryptage / décryptage en PHP :
function factomos_encode($secretKey, $str) {
return urlencode(base64_encode(mcrypt_encrypt(
MCRYPT_RIJNDAEL_128,
md5($secretKey),
$str,
MCRYPT_MODE_CFB,
$secretKey
)));
}
function factomos_decode($secretKey, $str, $urldecode = false) {
if($urldecode) {
$str = urldecode($str);
}
return mcrypt_decrypt(
MCRYPT_RIJNDAEL_128,
md5($secretKey),
base64_decode($str),
MCRYPT_MODE_CFB,
$secretKey
);
}
$key correspond au paramètre secret et $str à la chaîne cryptée qu'il faut passer dans le champ (POST) crequest.
Exemple de requête : POST vers https://app.factomos.com/api/api.php
avec les paramètres suivants:
- token=xxxxxx
- crequest=dfgsdfjghsd
ou dfgsdfjghsd serait le cryptage de la chaîne suivante : action=getClient&client_id=766
Le retour se fait au format JSON (une fois qu'il est décrypté) Exemple de retour :
{
"error": {
"code": -1,
"message": "Missing Token"
}
}
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
Url: https://app.factomos.com/api/test/ Cette page permet de tester tous les appels API et voir les retours
POST REQUEST
- action=createAccount (OBLIGATOIRE)
- username, Identifiant du compte Factomos, ce doit être une adresse email valide (OBLIGATOIRE)
- password, Mot de passe, (OPTIONNEL, si pas présendev.cron.dailyt un mot de passe sera généré aléatoirement)
- name, Nom de la société, (OPTIONNEL)
- company_type, Structure juridique parmi : (OPTIONNEL)
- Agessa
- Association
- Auto-Entrepreneur
- E.U.R.L.
- Entreprise-Individuelle
- MDA
- Profession-Liberale
- S.A.
- S.A.R.L.
- S.A.S.
- S.A.S.U.
- S.C.I.
- S.N.C.
- S.E.L.A.R.L.
- company_address, Adresse de la société (OPTIONNEL)
- zipcode, Code postal de la société (OPTIONNEL)
- city, Ville de la société (OPTIONNEL)
- country, Pays de la société, ex: France (OPTIONNEL)
- phone_number, Téléphone de la société (OPTIONNEL)
- fax_number, Fax de la société (OPTIONNEL)
- company_email, Email de la société (OPTIONNEL, si pas présent, alors l'email sera copié du champ username)
- company_website, Site web de la société (OPTIONNEL)
- capital, Capital de la société, ex: 5000€ (OPTIONNEL)
- siret, Numéro de siret de la société (OPTIONNEL)
- vat_percentage, Taux de TVA par défaut, ex: 20 (OPTIONNEL, si pas présent le taux sera 0)
- vat_number, Numéro de TVA intra-communautaire (OPTIONNEL)
- tva_enable, Activation de la TVA (0/1) (OPTIONNEL, si pas présent égale à 0)
On peut aussi rajouter les paramètres suivants pour créer un couple token/secret API pour ce user spécifique
- app_name: le nom de l’appli
- app_description: une courte description de l’appli.
- app_icon: URL de l'icône de l'application (40px x 40px), optionnel
- webhook_url: URL qui va être notifiée via un POST (cf # 8.) à chaque action faite dans Factomos
- company_id, l'identifiant de la société,
- password, si aucun mot de passe n'était présent dans la requête alors celui-ci sera présent avec une valeur générée aléatoirement
- auth_token, Token d'authentification utilisable une fois (cf # 5.)
Si des paramètres API ont été rajoutés à la requête alors on aura les paramètres suivants dans la réponse:
- api_key, Clé API (token)
- api_secret, Clé secrète (pour crypter / décrypter les requêtes API)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-29 | Missing parameter username | Le Champ "username" est manquant, or il est obligatoire |
-30 | Username not available | L'identifiant n'est pas disponible car un compte Factomos existe déjà avec ce dernier |
POST REQUEST
- action=createAccount
- username=mail@mail.com
- name=World Company
- company_type=S.A.R.L.
JSON RESULT
{
"company_id":"1",
"password":"my_password_generated",
"auth_token":"MY_TOKEN_GENERATED",
"error":{
"code":0,
"message":"OK"
}
}
POST REQUEST
- action=createAccount
- username=mail@mail.com
- name=World Company
- company_type=S.A.R.L.
- app_name=My Application
- app_description=CRM Application very simple
- app_icon=http://myapplication.com/icon.png
- webhook_url=http://myapplication.com/web_hook.php
JSON RESULT
{
"company_id":"1",
"password":"my_password_generated",
"auth_token":"MY_TOKEN_GENERATED",
"api_key":"MY_API_KEY_GENERATED",
"api_secret":"MY_API_SECRET_GENERATED",
"error":{
"code":0,
"message":"OK"
}
}
POST REQUEST
- action=deleteAccount (OBLIGATOIRE)
- company_id, Identifiant du compte Factomos à supprimer (OBLIGATOIRE)
- aucun
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-33 | Action not authorized | Cette action n'est autorisée que pour les partenaires Factomos (contactez-nous) |
-35 | Missing parameter company_id | Le Champ "company_id" est manquant, or il est obligatoire |
-36 | Account not found | Le compte avec l'identifiant "company_id" n'existe pas dans la base |
POST REQUEST
- action=deleteAccount
- company_id=9999
JSON RESULT
{
"error":{
"code":0,
"message":"OK"
}
}
POST REQUEST
- action=updateAccount (OBLIGATOIRE)
- company_id, Identifiant du compte Factomos à supprimer (OBLIGATOIRE)
- subscription_status, Statut du compte (active, readonly, blocked) (OBLIGATOIRE)
- aucun
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-33 | Action not authorized | Cette action n'est autorisée que pour les partenaires Factomos (contactez-nous) |
-35 | Missing parameter company_id | Le Champ "company_id" est manquant, or il est obligatoire |
-36 | Account not found | Le compte avec l'identifiant "company_id" n'existe pas dans la base |
-37 | Missing parameter subscription_status | Le Champ "subscription_status" est manquant, or il est obligatoire |
-38 | Parameter subscription_status invalid | Le Champ "subscription_status" est invalide, il doit être égal à une des valeurs suivantes : active, readonly, blocked |
POST REQUEST
- action=updateAccount
- company_id=9999
- subscription_status=readonly
JSON RESULT
{
"error":{
"code":0,
"message":"OK"
}
}
POST REQUEST
- action=getConnectionToken (OBLIGATOIRE)
- auth_token, token d'authentification valable une seule fois
Ce token d'authentification peut être utilisé de deux manières
- dans l'entête HTTP "x-auth-token", ce qui permet par exemple de faire un POST pour créer un devis ou une facture en étant directement connecté
- dans une requête HTTP POST vers
https://app.factomos.com/api/session/create/<auth_token>
, ce qui va renvoyer un JSON comme suit:
JSON RESULT
{
"error":{
"code":0,
"message":"OK"
}
}
La session ainsi créée est détruite au bout de 6 heures d'inactivité, ou en faisant un HTTP POST vers https://app.factomos.com/api/session/delete/<auth_token>
Code d'erreurs du CREATE SESSION ou DELETE SESSION https://app.factomos.com/api/session/(create/delete)/<auth_token>
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-31 | Missing auth_token | Le Champ "auth_token" est manquant, or il est obligatoire |
-32 | Invalid auth_token | Le auth_token est invalide, il n'existe pas dans la base Factomos |
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-28 | Your Token is not associated with a Factomos account | Le token utilisé n'es pas associé à un compte Factomos |
POST REQUEST
- action=getConnectionToken
- mode=normal
JSON RESULT
{
"auth_token":"MY_TOKEN_GENERATED",
"error":{
"code":0,
"message":"OK"
}
}
HTTP GET vers l'URL https://app.factomos.com/api/session/check
JSON RESULT
{
"error":{
"code":0,
"message":""
},
"user":{
"id":"568",
"username":"contact@factomos.com",
"company_id":"550",
"app_domain":"app.factomos.com"
}
}
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-34 | No session | Il n'y a pas de session en cours |
Il faut créer un bouton du genre = « Connecter avec Factomos » qui doit faire l’action suivante :
window.open('https://app.factomos.com/api/authorize.php?app_callback=https%3A%2F%2Fdev.factomos.com%2Fapi%2Ftest%2Fcallback.php&app_name=My%20Application&app_description=Ceci%20est%20mon%20application&webhook_url=xxxx', '', 'width=399, height=400')
Les paramètres dans l’URL sont les suivants :
- app_callback : une page chez vous qui va récupérer le token et la clé secrète via un POST (api_key, et api_secret)
- app_name: le nom de l’appli
- app_description: une courte description de l’appli.
- app_icon: URL de l'icône de l'application (40px x 40px), optionnel
- webhook_url: URL qui va être notifiée via un POST (cf # 8.) à chaque action faite dans Factomos
Ceci va ouvrir une popup d’authentification, si le login et le mot de passe sont corrects, alors FACTOMOS va faire un POST vers l’url de call_back en envoyant les paramètres api_key, et api_secret. Ensuite le popup est fermé
A chaque action, un contenu JSON va être envoyé en RAW POST vers l'URL de webhook qui a été précisée lors de la connexion de l'appli tierce.
INVOICE
- "create_invoice" => "Création d'une facture",
- "delete_invoice" => "Suppression d'une facture",
- "update_invoice" => "Modification d'une facture",
- "add_invoice_payment" => "Ajout d'un règlement",
- "update_invoice_payment" => "Modification d'un règlement",
- "delete_invoice_payment" => "Suppression d'un règlement",
- "create_avoir" => "Création d'un avoir",
- "send_invoice" => "Envoi facture par mail",
ESTIMATE
- "create_estimate" => "Création d'un devis",
- "update_estimate" => "Modification d'un devis",
- "delete_estimate" => "Suppression d'un devis",
- "send_estimate" => "Envoi d'un devis par mail",
- "estimate_status_gained" => "Devis accepté",
- "estimate_status_gainedwithoutinvoice" => "Devis accepté (sans créer de facture)",
- "estimate_status_gainedwithacompte" => "Devis accepté (avec accompte)",
- "estimate_status_lost" => "Devis refusé",
- "estimate_status_pending" => "Devis en attente",
CONTACT
- "create_contact" => "Ajout d'un contact",
- "update_contact" => "Modification d'un contact",
- "delete_contact" => "Suppression d'un contact",
SERVICE
- "create_service" => "Ajout d'une prestation",
- "update_service" => "Modification d'une prestation",
- "archive_service" => "Archivage d'une prestation",
- "delete_service" => "Suppression d'une prestation",
- "update_stock" => "Modification du stock",
PROFIL
- "create_template_email" => "Création template email",
- "update_template_email" => "Modification template email",
- "delete_template_email" => "Suppression template email",
- "create_design" => "Création template design",
- "update_design" => "Modification template design",
- "delete_design" => "Suppression template design",
{
"company_id":<company_id>,
"notification_type":<notification_type>,
"result":{
"id":<id>,
"error":{
"code":<code>,
"message":<message>
}
},
"custom":<custom>,
}
company_id
, Id du compte Factomosnotification_type
, Une des actions de la liste précédente (create_invoice, create_estimate, ...)result
, Objet comprenant le retour lié à l'action notifiéeresult.id
, Id de l'objet concerné par l'actionresult.error.code
, Code d'erreur lié à l'action, 0 si tout est OKresult.error.message
, Message d'erreur lié à l'action, "OK" si tout est OKcustom
, Ce champ est présent s'il a été ajouté lors de l'action
Dans le cas d'une transformation de devis en facture, le JSON comprend aussi le champ result.invoice_id
qui correspond à l'id de la facture créée
Voici un exemple de POST lors de la création d'un devis.
{
"company_id":"550",
"notification_type":"create_estimate",
"result":{
"id":"5782",
"error":{
"code":0,
"message":"OK"
}
},
"custom":"id=3",
}
Faire un POST vers la page https://app.factomos.com/creer-devis avec les paramètres suivants :
client_id
id du client (ce champ est prioritaire par rapport au champ client_company_nameclient_company_name
(société du client, Factomos va essayer de le retrouver automatiquement uniquement à l’identique)estimate_attention
(Champ « à l'attention de » du devis)objet
(Champ « objet » du devis)estimate_comment
(Champ « commentaire » du devis)custom
, un champ pour y mettre vos variables, ce dernier sera renvoyé tel quel dans la notification au webhook
- action=getClient, (OBLIGATOIRE)
- client_id=<id_du_client>, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-8 | Missing parameter client_id | Le Champ "client_id" est manquant, or il est obligatoire |
-9 | Client not found | Le client avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=getClient
- client_id=67
JSON RESULT
{
"client": {
"client_id":"5782",
"company_id":"1",
"client_company_name":"name",
"client_business_category":"",
"client_reference":"reference",
"description":"description",
"client_address":"address",
"client_address_more":"address more",
"client_zipcode":"zipcode",
"client_city":"city",
"client_country":"country",
"number_tva":"tva",
"number_siret":"siret",
"client_website":"website",
"client_email":"email",
"client_contact_firstname":"",
"client_contact_lastname":"contact",
"client_phonenumber":"phone",
"client_contact_title":"",
"category":"client",
"client_other":"",
"client_lang":"en",
"client_keyword":"keyword",
"client_code_analytic":"9NAMEFRO"
},
"error":{
"code":0,
"message":"OK"
}
}
- action=createClient, (OBLIGATOIRE)
- category, (OBLIGATOIRE) Must be one of the following values (client, fournisseur, prospect)
- client_company_name, (OBLIGATOIRE)
- client_reference
- client_contact_lastname
- client_email
- client_phonenumber
- client_address
- client_address_more
- client_zipcode
- client_city
- client_country
- client_lang
- number_siret
- number_tva
- client_website
- client_keyword
- description
- client_id: l'identifiant du client
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-11 | Missing parameter category | Le Champ "category" est manquant, or il est obligatoire |
-12 | Missing parameter client_company_name | Le Champ "client_company_name" est manquant, or il est obligatoire |
POST REQUEST
- action=createClient
- category=client, Must be one of the following values (client, fournisseur, prospect)
- client_company_name=name
- client_reference=reference
- client_contact_lastname=greg
- client_email=g@tfs.im
- client_phonenumber=012345789
- client_address=address
- client_address_more=address more
- client_zipcode=zipcode
- client_city=city
- client_country=country
- client_lang=fr
- number_siret=0123456
- number_tva=987654
- client_website=http://tfs.im
- client_keyword=agency
- description=description
JSON RESULT
{
"client_id":"5782",
"error":{
"code":0,
"message":"OK"
}
}
- action=editClient, (OBLIGATOIRE)
- client_id, (OBLIGATOIRE)
- category
- client_company_name
- client_reference
- client_contact_lastname
- client_email
- client_phonenumber
- client_address
- client_address_more
- client_zipcode
- client_city
- client_country
- client_lang
- number_siret
- number_tva
- client_website
- client_keyword
- description
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-8 | Missing parameter client_id | Le Champ "client_id" est manquant, or il est obligatoire |
-9 | Client not found | Le client avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=editClient
- client_id=123
- category=client
- client_company_name=name
- client_reference=reference
- client_contact_lastname=greg
- client_email=g@tfs.im
- client_phonenumber=012345789
- client_address=address
- client_address_more=address more
- client_zipcode=zipcode
- client_city=city
- client_country=country
- client_lang=fr
- number_siret=0123456
- number_tva=987654
- client_website=http://tfs.im
- client_keyword=agency
- description=description
JSON RESULT
{
"error":{
"code":0,
"message":"OK"
}
}
- action=getService, (OBLIGATOIRE)
- service_id=<id_du_service>, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-13 | Missing parameter service_id | Le Champ "service_id" est manquant, or il est obligatoire |
-14 | Service not found | Le service avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=getService
- service_id=67
JSON RESULT
{
"service":{
"service_id":"8",
"company_id":"1",
"category":"produits",
"service_name":"Abonnement au service Pictomos",
"description":"Abonnement au service Pictomos ",
"unit":"mois",
"price":"8.27758979797363",
"vat":"19.6",
"service_code_analytic":"706000001",
"archived":"0"
},
"error":{
"code":0,
"message":"OK"
}
}
- action=createService, (OBLIGATOIRE)
- category
- service_name, (OBLIGATOIRE)
- description
- unit
- price, (OBLIGATOIRE)
- service_id: l'identifiant du service (prestation)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-15 | Missing parameter service_name | Le Champ "service_name" est manquant, or il est obligatoire |
-16 | Missing parameter price | Le Champ "price" est manquant, or il est obligatoire |
-27 | The category of the service must be one of the following (services, produits) | Le champ "category" doit obligatoirement avoir une des valeurs suivantes : 'produits', ou 'services' |
POST REQUEST
- action=createService
- category=my category
- service_name=my service
- description=my description
- unit=jour
- price=150
JSON RESULT
{
"service_id":"5782",
"error":{
"code":0,
"message":"OK"
}
}
- action=createInvoice, (OBLIGATOIRE)
- client_id, (OBLIGATOIRE)
- invoice_attention
- objet
- invoice_date
- vat_enable (0 / 1)
- invoice_vat
- payment_condition_enable
- payment_amount
- payment_term
- invoice_comment
- line_service_id[], (value 75 for TITLES), (OBLIGATOIRE)
- line_description[],
- line_quantity[], (OBLIGATOIRE)
- line_price[],
- invoice_comment (optional)
- figures_total_withvat (To force the vat and total with vat calculation on a specific value), it's optional
- invoice_paid (0: No, 1: Yes)
- template_id
- invoice_id, l'identifiant de la facture,
- invoice_formated_number, le numéro de facture (chrono),
- invoice_document_key, la clé vous permettant de construire le lien vers la facture, en rajoutant devant https://app.factomos.com/ (exemple de lien : https://app.factomos.com/i5u5pHLyBI4pizucVdo6)
- invoice_date, date de la facture au format YYYY-MM-DD
- client_id, l'identifiant du client
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-9 | Missing parameter client_id | Le Champ "client_id" est manquant, or il est obligatoire |
-10 | Client not found | Le client avec cet id n'existe pas dans la base Factomos |
-14 | Service not found | Le service avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=createInvoice
- client_id=19
- invoice_date=2012-05-01
- invoice_attention=Monsieur Test
- objet=Facture abonnement
- invoice_vat=19.6
- payment_condition_enable=1
- payment_amount=100
- payment_term=2012-06-01
- line_service_id[]=19
- line_description[]=Abonnement Pictomos
- line_quantity[]=12
- line_price[]=9.5
JSON RESULT
{
"invoice_id":"5782",
"invoice_formated_number":"F1465",
"invoice_document_key":"i5u5pHLyBI4pizucVdo6",
"invoice_date":"2012-05-01",
"client_id":"19",
"error":{
"code":0,
"message":"OK"
}
}
Lien vers la facture : https://app.factomos.com/i5u5pHLyBI4pizucVdo6
- action=getInvoice, (OBLIGATOIRE)
- invoice_id=<invoice_id>, (OBLIGATOIRE)
- Tout l'objet "invoice" qui correspond à la facture
- à l'intérieur de cet objet il y a le champ "document_key" qui correspond à la clé vous permettant de construire le lien vers la facture, en rajoutant devant https://app.factomos.com/ (exemple de lien : https://app.factomos.com/i5u5pHLyBI4pizucVdo6)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-17 | Missing parameter invoice_id | Le Champ "invoice_id" est manquant, or il est obligatoire |
-20 | Invoice not found | La facture avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=getInvoice
- invoice_id=67
JSON RESULT
{
"invoice":{
"invoice_formated_number":"F09100013",
"articleList":[
{
"service_id":"4017",
"company_id":"550",
"category":"services",
"service_name":"Prise de son",
"description":"- Mixette\r\n- Micro\r\n- Perche + bonette",
"unit":"jour",
"price":"950",
"supplier_price":"0",
"is_with_vat":"0",
"vat":"5.5",
"service_code_analytic":"706000003",
"archived":"0",
"invoice_id":"6829",
"quantity":"10",
"remise":"0",
"invoice_price":"950",
"comment":"- Mixette\r\n- Micro\r\n- Perche + bonette",
"unitDiscount":"euro",
"invoice_order":"0",
"percent":"0",
"total_ht":"9500"
},
{
"service_id":"4017",
"company_id":"550",
"category":"services",
"service_name":"Prise de son",
"description":"- Mixette\r\n- Micro\r\n- Perche + bonette",
"unit":"jour",
"price":"950",
"supplier_price":"0",
"is_with_vat":"0",
"vat":"5.5",
"service_code_analytic":"706000003",
"archived":"0",
"invoice_id":"6829",
"quantity":"12",
"remise":"0",
"invoice_price":"950",
"comment":"- Mixette\r\n- Micro\r\n- Perche + bonette",
"unitDiscount":"euro",
"invoice_order":"1",
"percent":"0",
"total_ht":"11400"
},
{
"service_id":"4024",
"company_id":"550",
"category":"services",
"service_name":"Techniciens",
"description":"- Production\r\n- R\u00e9alisation\r\n- Image\r\n- Son\r\n- Montage\r\n- R\u00e9gie\r\n- D\u00e9coration costume, maquillage",
"unit":"semaine",
"price":"1300",
"supplier_price":"0",
"is_with_vat":"0",
"vat":"5.5",
"service_code_analytic":"706000010",
"archived":"0",
"invoice_id":"6829",
"quantity":"4",
"remise":"0",
"invoice_price":"1300",
"comment":"- Production\r\n- R\u00e9alisation\r\n- Image\r\n- Son\r\n- Montage\r\n- R\u00e9gie\r\n- D\u00e9coration costume, maquillage",
"unitDiscount":"euro",
"invoice_order":"2",
"percent":"0",
"total_ht":"5200"
}
],
"client_id":"546",
"invoice_status":"paid",
"document_key":"ib2cVKO9u4svZxfLS790",
"document_title":"Facture",
"estimate_id":"0",
"exists":true,
"payment_term_fr":"00\/00\/00",
"id":"6829",
"client_company_name":"Extracrea",
"unix_timestamp":"1284242400",
"invoice_type":"invoice",
"invoice_formated_year":"2010",
"invoice_paid_mention":"0",
"figures_total_withoutvat":"26100",
"figures_total_vat":"5115.6",
"figures_total_withvat":"31215.6",
"figures_paid":"31215.6",
"figures_due":"0",
"invoice_format":"F%m%y%04d"
},
"error":{
"code":0,
"message":"OK"
}
}
Permet de récupérer une liste de facture au maximum 50 (avec un index de pagination).
Voici la liste des statuts disponibles :
- 'avoir' : facture d'avoir,
- 'later' : facture en retard de règlement,
- 'paid' : facture réglée entièrement,
- 'paid-avoir' : facture soldée entièrement par un avoir,
- 'partially-paid' : facture réglée en partie,
- 'partially-paid-avoir' : facture soldée en partie par un avoir,
- 'pending' : facture en attente de réglement
- action=listInvoice, (OBLIGATOIRE)
- invoice_status=<invoice_id>, (OBLIGATOIRE)
- page_index=<page_index>, (OPTIONNEL)
- Des infos sur la pagination dans l'objet 'pagination'
- Un tableau des factures
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-39 | Missing parameter invoice_status | Le Champ "invoice_status" est manquant, or il est obligatoire |
-40 | Invalid parameter invoice_status | Le Champ "invoice_status" est invalide, il doit correspondre à une des valeurs suivantes : 'avoir', 'later', 'paid', 'paid-avoir', 'partially-paid', 'partially-paid-avoir', 'pending' |
-41 | Invalid parameter page_index | Le Champ "page_index" est invalide, il ne doit pas être suppérieur au nombre total de factures |
POST REQUEST
- action=listInvoice
- invoice_status=later
- page_index=50
JSON RESULT
{
"pagination":{
"first_row":"50",
"last_row":53,
"total_invoices":54
},
"invoices":[
{
"invoice_formated_number":"F06150193",
"client_id":"76577",
"articleList":[
],
"invoice_status":"later",
"document_key":false,
"document_title":"Facture",
"estimate_id":"0",
"exists":true,
"payment_amount_total":"0",
"id":"154735",
"invoice_type":"invoice",
"invoice_formated_year":"2015",
"client_company_name":"Bob",
"invoice_paid_mention":"pay_before",
"is_exported":"1",
"is_recurring":"0",
"figures_total_withoutvat":"-150",
"figures_total_vat":"-30",
"figures_total_withvat":"-180",
"figures_paid":"0",
"figures_due":"-180",
"downpayment_percent":"0",
"downpayment_amount":"0",
"downpayment_paid_mention":"paid",
"downpayment_term":null,
"invoice_tags":"",
"unix_timestamp":"1434664800",
"payment_term_fr":"19\/07\/15"
},
{
"invoice_formated_number":"F06150191",
"client_id":"53037",
"articleList":[
],
"invoice_status":"later",
"document_key":false,
"document_title":"Facture",
"estimate_id":"0",
"exists":true,
"payment_amount_total":"0",
"id":"154718",
"invoice_type":"invoice",
"invoice_formated_year":"2015",
"client_company_name":"Atelier du Sourcil",
"invoice_paid_mention":"pay_before",
"is_exported":"1",
"is_recurring":"0",
"figures_total_withoutvat":"18.43",
"figures_total_vat":"3.69",
"figures_total_withvat":"22.12",
"figures_paid":"0",
"figures_due":"22.12",
"downpayment_percent":"0",
"downpayment_amount":"0",
"downpayment_paid_mention":"paid",
"downpayment_term":null,
"invoice_tags":"",
"unix_timestamp":"1434664800",
"payment_term_fr":"19\/07\/15"
},
{
"invoice_formated_number":"F06150189",
"client_id":"4458",
"articleList":[
],
"invoice_status":"later",
"document_key":false,
"document_title":"Facture",
"estimate_id":"0",
"exists":true,
"payment_amount_total":"0",
"id":"154714",
"invoice_type":"invoice",
"invoice_formated_year":"2015",
"client_company_name":"Pampy",
"invoice_paid_mention":"pay_before",
"is_exported":"1",
"is_recurring":"0",
"figures_total_withoutvat":"400",
"figures_total_vat":"80",
"figures_total_withvat":"480",
"figures_paid":"0",
"figures_due":"480",
"downpayment_percent":"0",
"downpayment_amount":"0",
"downpayment_paid_mention":"paid",
"downpayment_term":null,
"invoice_tags":"",
"unix_timestamp":"1434664800",
"payment_term_fr":"19\/07\/15"
},
{
"invoice_formated_number":"F06150187",
"client_id":"6230",
"articleList":[
],
"invoice_status":"later",
"document_key":false,
"document_title":"FACTURE D'ACOMPTE",
"estimate_id":"41091",
"exists":true,
"payment_amount_total":"0",
"id":"154251",
"invoice_type":"down-payment",
"invoice_formated_year":"2015",
"client_company_name":"FMI",
"invoice_paid_mention":"pay_before",
"is_exported":"1",
"is_recurring":"0",
"figures_total_withoutvat":"416.67",
"figures_total_vat":"83.33",
"figures_total_withvat":"500",
"figures_paid":"0",
"figures_due":"500",
"downpayment_percent":"0",
"downpayment_amount":"0",
"downpayment_paid_mention":"paid",
"downpayment_term":null,
"invoice_tags":"",
"unix_timestamp":"1434492000",
"payment_term_fr":"17\/07\/15"
}
],
"error":{
"code":0,
"message":"OK"
}
}
- action=editInvoice, (OBLIGATOIRE)
- invoice_id, (OBLIGATOIRE)
- client_id, (OBLIGATOIRE)
- invoice_date
- invoice_attention
- objet
- invoice_vat
- payment_condition_enable
- payment_amount
- payment_term
- invoice_comment
- line_service_id[] (value 75 for TITLES), (OBLIGATOIRE)
- line_description[]
- line_quantity[], (OBLIGATOIRE)
- line_price[]
- invoice_comment
- figures_total_withvat (To force the vat and total with vat calculation on a specific value), it's optional
- invoice_paid (0: No, 1: Yes)
- invoice_id, l'identifiant de la facture,
- invoice_formated_number, le numéro de facture (chrono),
- invoice_document_key, la clé vous permettant de construire le lien vers la facture (https://app.factomos.com/<invoice_document_key>)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-9 | Missing parameter client_id | Le Champ "client_id" est manquant, or il est obligatoire |
-10 | Client not found | Le client avec cet id n'existe pas dans la base Factomos |
-14 | Service not found | Le service avec cet id n'existe pas dans la base Factomos |
-17 | Missing parameter invoice_id | Le Champ "invoice_id" est manquant, or il est obligatoire |
-20 | Invoice not found | La facture avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=editInvoice
- invoice_id=4624
- client_id=19
- invoice_date=2012-05-01
- invoice_attention=Monsieur Test
- objet=Facture abonnement
- invoice_vat=19.6
- payment_condition_enable=1
- payment_amount=100
- payment_term=2012-06-01
- line_service_id[]=19
- line_description[]=Abonnement Pictomos
- line_quantity[]=12
- line_price[]=9.5
JSON RESULT
{
"invoice_id":"5782",
"invoice_formated_number":"5782",
"invoice_document_key":"5782",
"error":{
"code":0,
"message":"OK"
}
}
- action=sendInvoice, (OBLIGATOIRE)
- invoice_id, (OBLIGATOIRE)
- email_template_id
- email_to
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-17 | Missing parameter invoice_id | Le Champ "invoice_id" est manquant, or il est obligatoire |
-20 | Invoice not found | La facture avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=sendInvoice
- invoice_id=my invoice id
- email_template_id=my email template id
- email_to=my client email
JSON RESULT
{
"error":{
"code":0,
"message":"OK"
}
}
- action=getInvoiceMailHistory, (OBLIGATOIRE)
- invoice_id=<invoice_id>, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-17 | Missing parameter invoice_id | Le Champ "invoice_id" est manquant, or il est obligatoire |
-20 | Invoice not found | La facture avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=getInvoiceMailHistory
- invoice_id=999
JSON RESULT
{
"invoice-emails":[
{"id":"77","invoice_id":"555","template_type":"reminder3","email_to":"mail@example.com","email_subject":"my subject","email_content":"my content","email_date":"2015-11-02 12:49:31","email_attachment":"","email_viewed":"0"},
{"id":"88","invoice_id":"555","template_type":"reminder3","email_to":"mail@example.com","email_subject":"my subject2","email_content":"my content 2","email_date":"2015-11-02 12:49:31","email_attachment":"","email_viewed":"0"}
],
"error":{
"code":0,
"message":"OK"
}
}
- action=listEmailTemplates, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
POST REQUEST
- action=listEmailTemplates
JSON RESULT
{
"email-templates":[
{"id":"333","company_id":"550","signature_id":"444","template_name":"Envoi devis","template_type":"estimate","template_subject":"xcvxvvxc","template_message":"sdfsfsdf","template_attachment_doc":"0"}
{"id":"335","company_id":"550","signature_id":"445","template_name":"Envoi facture","template_type":"invoice","template_subject":"xcvxvvxc","template_message":"sdfsfsdf","template_attachment_doc":"0"},
],
"error":{
"code":0,
"message":"OK"
}
}
- action=createPayment, (OBLIGATOIRE)
- invoice_id, (OBLIGATOIRE)
- montant, (OBLIGATOIRE)
- type (cb, check, especes, paypal, virement, other), (OBLIGATOIRE)
- reference
- payment_date
- numero_remise
- numero_cheque
- action=editPayment, (OBLIGATOIRE)
- payment_id (optional it the invoice has only one payment)
- invoice_id, (OBLIGATOIRE)
- montant
- type (cb, check, especes, paypal, virement, other)
- reference
- payment_date
- numero_remise
- numero_cheque
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-17 | Missing parameter invoice_id | Le Champ "invoice_id" est manquant, or il est obligatoire |
-20 | Invoice not found | La facture avec cet id n'existe pas dans la base Factomos |
-21 | Several payments for this invoice, you have to add the parameter payment_id | Vous devez ajouter le champ "payment_id" car il y a plusieurs règlements pour cette facture |
- action=deleteAllPayments, (OBLIGATOIRE)
- invoice_id, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-17 | Missing parameter invoice_id | Le Champ "invoice_id" est manquant, or il est obligatoire |
-20 | Invoice not found | La facture avec cet id n'existe pas dans la base Factomos |
- action=createExpense, (OBLIGATOIRE)
- date
- supplier_id, (OBLIGATOIRE)
- invoice_number
- vat
- amount, (OBLIGATOIRE)
- payment_type (cb, check, virement, prelevement, especes, tip, other), (OBLIGATOIRE)
- payment_reference
- comment
- expense_id: l'identifiant de la dépense
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-18 | Missing parameter amount | Le Champ "amount" est manquant, or il est obligatoire |
-19 | Missing parameter payment_type | Le Champ "payment_type" est manquant, or il est obligatoire |
-21 | Missing parameter supplier_id | Le Champ "supplier_id" est manquant, or il est obligatoire |
POST REQUEST
- action=createExpense
- date=2012-12-10
- supplier_id
- invoice_number
- vat
- amount
- payment_type (cb, check, virement, prelevement, especes, tip, other)
- payment_reference
- comment
JSON RESULT
{
"expense_id":"5782",
"error":{
"code":0,
"message":"OK"
}
}
- action=editExpense, (OBLIGATOIRE)
- expense_id, (OBLIGATOIRE)
- date
- supplier_id, (OBLIGATOIRE)
- invoice_number
- vat
- amount, (OBLIGATOIRE)
- payment_type (cb, check, virement, prelevement, especes, tip, other), (OBLIGATOIRE)
- payment_reference
- comment
- expense_id: l'identifiant de la dépense
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-18 | Missing parameter amount | Le Champ "amount" est manquant, or il est obligatoire |
-19 | Missing parameter payment_type | Le Champ "payment_type" est manquant, or il est obligatoire |
-21 | Missing parameter supplier_id | Le Champ "supplier_id" est manquant, or il est obligatoire |
-23 | Missing parameter expense_id | Le Champ "expense_id" est manquant, or il est obligatoire |
-24 | Expense not found | La dépense avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=editExpense
- expense_id=5
- date=2012-12-10
- supplier_id
- invoice_number
- vat
- amount
- payment_type (cb, check, virement, prelevement, especes, tip, other)
- payment_reference
- comment
JSON RESULT
{
"expense_id":"5782",
"error":{
"code":0,
"message":"OK"
}
}
- action=getExpense, (OBLIGATOIRE)
- expense_id, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-23 | Missing parameter expense_id | Le Champ "expense_id" est manquant, or il est obligatoire |
-24 | Expense not found | La dépense avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=editExpense
- expense_id=5
JSON RESULT
{
"expense":{
"exists":true,
"expense_id":"25245",
"date":"2014-02-25",
"supplier_id":"15728",
"invoice_number":"IN-81450-2",
"vat":"0",
"amount":"3.66",
"payment_type":"check",
"payment_reference":"ref",
"comment":"CARTES DE VISITE 2"
},
"error":{
"code":0,
"message":"OK"
}
}
- action=getEstimate, (OBLIGATOIRE)
- estimate_id=<estimate_id>, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-25 | Missing parameter estimate_id | Le Champ "estimate_id" est manquant, or il est obligatoire |
-26 | Estimate not found | Le devis avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=getEstimate
- estimate_id=67
JSON RESULT
{
"estimate":{
"estimate_formated_number":"D14050050",
"articleList":[
{
"service_id":"4023",
"company_id":"550",
"category":"services",
"service_name":"D\u00e9cors, d\u00e9guisements",
"description":"- Meubles\r\n- Maquillage\r\n- Costumes",
"unit":"forfait",
"price":"650",
"supplier_price":"0",
"is_with_vat":"0",
"vat":"5.5",
"service_code_analytic":"706000009",
"archived":"0",
"stock":"0",
"image":"",
"reference":"",
"estimate_id":"19709",
"quantity":"1",
"remise":"0",
"estimate_price":"650",
"comment":"- Meubles\r\n- Maquillage\r\n- Costumes",
"estimate_order":"0",
"id":"19709",
"template_id":"1247",
"estimate_number":"50",
"estimate_formated_number":"D14050050",
"client_id":"8827",
"client_company_name":"C.E.R.T.O.S",
"estimate_status":"pending",
"estimate_vat":"0",
"document_title":"Devis",
"several_vat":"1",
"company_vat":"20",
"tva_enable":"1",
"estimate_date":"2014-05-13",
"estimate_action_date":null,
"estimate_attention":"David Ravalet",
"objet":"",
"estimate_comment":"",
"estimate_sentmail":"1",
"with_precompte":"0",
"figures_total_withoutvat":"650",
"figures_total_vat":"35.75",
"figures_total_withvat":"685.75",
"document_lang":"fr",
"date_update":"0000-00-00 00:00:00",
"percent":"0",
"total_ht":"650"
}
],
"estimate_status":"pending",
"document_title":"Devis",
"document_key":"e2e8CSzakvh4DecbG9k5",
"exists":true,
"id":"19709",
"estimate_number":"50",
"unix_timestamp":"1399932000",
"figures_total_withoutvat":"650",
"figures_total_vat":"35.75",
"figures_total_withvat":"685.75",
"estimate_format":"D%y%m%04d"
},
"error":{
"code":0,
"message":"OK"
}
}
- action=createEstimate, (OBLIGATOIRE)
- client_id, (OBLIGATOIRE)
- estimate_attention
- objet
- estimate_vat
- line_service_id[] (value 75 for TITLES), (OBLIGATOIRE)
- line_description[],
- line_quantity[], (OBLIGATOIRE)
- line_price[],
- estimate_comment (optional)
- figures_total_withvat (To force the vat and total with vat calculation on a specific value), it's optional
- template_id
- estimate_id, l'identifiant du devis,
- estimate_formated_number, le numéro de devis (chrono),
- estimate_document_key, la clé vous permettant de construire le lien vers le devis, en rajoutant devant https://app.factomos.com/ (exemple de lien : https://app.factomos.com/e5u5pHLyBI4pizucVdo6)
- estimate_date, date du devis au format YYYY-MM-DD
- client_id, l'identifiant du client
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-9 | Missing parameter client_id | Le Champ "client_id" est manquant, or il est obligatoire |
-10 | Client not found | Le client avec cet id n'existe pas dans la base Factomos |
-14 | Service not found | Le service avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=createEstimate
- client_id=19
- estimate_date=2012-05-01
- estimate_attention=Monsieur Test
- objet=Site Artiste
- estimate_vat=19.6
- line_service_id[]=19
- line_description[]=Abonnement Pictomos
- line_quantity[]=12
- line_price[]=9.5
JSON RESULT
{
"estimate_id":"5782",
"estimate_formated_number":"F1465",
"estimate_document_key":"e5u5pHLyBI4pizucVdo6",
"estimate_date":"2012-05-01",
"client_id":"19",
"error":{
"code":0,
"message":"OK"
}
}
Lien vers le devis : https://app.factomos.com/e5u5pHLyBI4pizucVdo6
- action=transformEstimate, (OBLIGATOIRE)
- estimate_id=<estimate_id>, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-25 | Missing parameter estimate_id | Le Champ "estimate_id" est manquant, or il est obligatoire |
-26 | Estimate not found | Le devis avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=transformEstimate
- estimate_id=67
JSON RESULT
{
"invoice_id":"5782",
"invoice_formated_number":"F1465",
"invoice_document_key":"i5u5pHLyBI4pizucVdo6",
"invoice_date":"2012-05-01",
"client_id":"19",
"error":{
"code":0,
"message":"OK"
}
}
- action=createCreditNote, (OBLIGATOIRE)
- invoice_id=<invoice_id>, (OBLIGATOIRE)
Code d'erreur | Message d'erreur | Description |
---|---|---|
0 | Pas d'erreur, la requête s'est bien passée | |
-1 | Missing Token | Le Champ "token" est manquant, or il est obligatoire |
-2 | Missing Crypted Request | Le Champ "crequest" est manquant, or il est obligatoire |
-3 | Invalid Token | Le Token est invalide, il n'existe pas dans la base Factomos |
-4 | Too many API calls for the day | Vous avez dépassé le nombre maximum d'appels API pour la journée (par défaut limité à 500) |
-5 | Invalid Crypted Request | La requête n'a pas pu être décryptée, le champ crequest est invalide |
-6 | Action not found or invalid | Le Champ "action" est manquant, or il est obligatoire |
-17 | Missing parameter invoice_id | Le Champ "invoice_id" est manquant, or il est obligatoire |
-20 | Invoice not found | La facture avec cet id n'existe pas dans la base Factomos |
POST REQUEST
- action=createCreditNote
- invoice_id=67
JSON RESULT
{
"invoice_id":"5782",
"invoice_formated_number":"F1465",
"invoice_document_key":"i5u5pHLyBI4pizucVdo6",
"invoice_date":"2012-05-01",
"client_id":"19",
"error":{
"code":0,
"message":"OK"
}
}