{
    "openapi": "3.0.0",
    "info": {
        "title": "API du logiciel de facturation Invoicing.plus",
        "description": "Documentation technique - API du logiciel de facturation Invoicing.plus",
        "version": "1.0"
    },
    "servers": [
        {
            "url": "https://api.invoicing.plus/v1"
        }
    ],
    "paths": {
        "/token": {
            "post": {
                "tags": [
                    "3) Authentification"
                ],
                "summary": "Obtenir un token, le précieux sésame pour aller plus loin. Si vous n'avez pas de compte, créez-en un suivant ce lien https://invoicing.plus/register. Dès que vous l'obtenez, saisissez-le en haut à droite de cette page pour tester les appels suivants.",
                "operationId": "post.token",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "description": "Adresse email d'un utilisateur connu",
                                        "type": "string",
                                        "format": "email",
                                        "example": "demo@adminplus.fr"
                                    },
                                    "password": {
                                        "description": "Mot de passe de l'utilisateur",
                                        "type": "string",
                                        "example": "le_mot_de_passe_cest_pas_ca"
                                    },
                                    "short_token": {
                                        "description": "true = le token expire automatiquement 30 minutes après | false = permanent",
                                        "type": "boolean",
                                        "example": "false"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                }
            }
        },
        "/who-i-am": {
            "get": {
                "tags": [
                    "3) Authentification"
                ],
                "summary": "Si Invoicing.plus vous reconnez c'est qu'un bon Bearer token a été passé dans le header, votre nom s'affiche",
                "operationId": "get.who",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/revoke-token": {
            "post": {
                "tags": [
                    "3) Authentification"
                ],
                "summary": "Supprimer le token courant",
                "operationId": "post.revoke-token",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/check": {
            "get": {
                "tags": [
                    "1) Check the service"
                ],
                "summary": "Un simple appel API pour se chauffer",
                "operationId": "get.check",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/companies": {
            "get": {
                "tags": [
                    "4) Company or Companies"
                ],
                "summary": "Obtenir la liste des sociétés de l'utilisateur connecté, chaque société a un \"X-Company\" qu'il faudra utiliser dans le header \"X-Company\" dans les appels suivants.",
                "operationId": "get.companies",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/company": {
            "get": {
                "tags": [
                    "4) Company or Companies"
                ],
                "summary": "Afficher les coordonnées de la société",
                "operationId": "get.company",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/contacts": {
            "get": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Obtenir la liste des contacts de la société.",
                "operationId": "get.contacts",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/contact/:id": {
            "get": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Afficher les coordonnées du contact.",
                "operationId": "get.contact",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Modifier un contact",
                "operationId": "put.contact",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "ALPHAMATIC"
                                    },
                                    "company_name": {
                                        "type": "string",
                                        "example": "SAS ALPHAMATIC"
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "C0001"
                                    },
                                    "account_code": {
                                        "type": "string",
                                        "example": "411001"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "contact@alphamatic.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "0102030405"
                                    },
                                    "crn": {
                                        "type": "string",
                                        "example": "123456789 00012"
                                    },
                                    "vat": {
                                        "type": "string",
                                        "example": "FR62123456789"
                                    },
                                    "billing_address_1": {
                                        "type": "string",
                                        "example": "Chemin du loup"
                                    },
                                    "billing_address_2": {
                                        "type": "string",
                                        "example": "BP 234"
                                    },
                                    "billing_zip": {
                                        "type": "string",
                                        "example": "69480"
                                    },
                                    "billing_city": {
                                        "type": "string",
                                        "example": "Lucenay"
                                    },
                                    "is_web": {
                                        "type": "boolean",
                                        "example": "false"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/contact": {
            "post": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Créer un contact",
                "operationId": "post.contact",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Robin Cartoux"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "example": "Robin"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "example": "Cartoux"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "robin.cartoux@provider.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "0102030405"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/contact/:id/customer/:target": {
            "post": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Associer un contact à un client",
                "operationId": "post.attach.customer",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "target",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Contacts"
                ],
                "summary": "Dissocier un contact d'un client",
                "operationId": "post.detach.customer",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "target",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/customers": {
            "get": {
                "tags": [
                    "5) Customer or Customers"
                ],
                "summary": "Obtenir la liste des clients de la société.",
                "operationId": "get.customers",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/customer/:id": {
            "get": {
                "tags": [
                    "5) Customer or Customers"
                ],
                "summary": "Afficher les coordonnées du client.",
                "operationId": "get.customer",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "5) Customer or Customers"
                ],
                "summary": "Modifier un client",
                "operationId": "put.customer",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "ALPHAMATIC"
                                    },
                                    "company_name": {
                                        "type": "string",
                                        "example": "SAS ALPHAMATIC"
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "C0001"
                                    },
                                    "account_code": {
                                        "type": "string",
                                        "example": "411001"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "contact@alphamatic.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "0102030405"
                                    },
                                    "crn": {
                                        "type": "string",
                                        "example": "123456789 ou 12345678900012"
                                    },
                                    "nic": {
                                        "type": "string",
                                        "example": "00012"
                                    },
                                    "vat": {
                                        "type": "string",
                                        "example": "FR62123456789"
                                    },
                                    "billing_address_1": {
                                        "type": "string",
                                        "example": "Chemin du loup"
                                    },
                                    "billing_address_2": {
                                        "type": "string",
                                        "example": "BP 234"
                                    },
                                    "billing_zip": {
                                        "type": "string",
                                        "example": "69480"
                                    },
                                    "billing_city": {
                                        "type": "string",
                                        "example": "Lucenay"
                                    },
                                    "is_web": {
                                        "type": "boolean",
                                        "example": "false"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/customer": {
            "post": {
                "tags": [
                    "5) Customer or Customers"
                ],
                "summary": "Créer un client",
                "operationId": "post.customer",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "ALPHAMATIC"
                                    },
                                    "company_name": {
                                        "type": "string",
                                        "example": "SAS ALPHAMATIC"
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "C0001"
                                    },
                                    "account_code": {
                                        "type": "string",
                                        "example": "411001"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "contact@alphamatic.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "0102030405"
                                    },
                                    "crn": {
                                        "type": "string",
                                        "example": "123456789 ou 12345678900012"
                                    },
                                    "nic": {
                                        "type": "string",
                                        "example": "00012"
                                    },
                                    "vat": {
                                        "type": "string",
                                        "example": "FR62123456789"
                                    },
                                    "billing_address_1": {
                                        "type": "string",
                                        "example": "Chemin du loup"
                                    },
                                    "billing_address_2": {
                                        "type": "string",
                                        "example": "BP 234"
                                    },
                                    "billing_zip": {
                                        "type": "string",
                                        "example": "69480"
                                    },
                                    "billing_city": {
                                        "type": "string",
                                        "example": "Lucenay"
                                    },
                                    "is_web": {
                                        "type": "boolean",
                                        "example": "false"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/estimates": {
            "get": {
                "tags": [
                    "9) Estimate or Estimates"
                ],
                "summary": "Obtenir la liste de vos devis.",
                "operationId": "get.estimates",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "from_date",
                        "in": "query",
                        "description": "Filtrer les devis à partir de cette date (YYYY-MM-DD).",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to_date",
                        "in": "query",
                        "description": "Filtrer les devis jusqu'à cette date (YYYY-MM-DD).",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/estimate/{id}": {
            "get": {
                "tags": [
                    "9) Estimate or Estimates"
                ],
                "summary": "Données d'un devis",
                "operationId": "get.estimate",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/estimate": {
            "post": {
                "tags": [
                    "9) Estimate or Estimates"
                ],
                "summary": "Créer un devis",
                "operationId": "post.estimate",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_id": {
                                        "type": "number",
                                        "example": "1234"
                                    },
                                    "lines": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "is_title": {
                                                    "type": "boolean"
                                                },
                                                "item_id": {
                                                    "type": "number"
                                                },
                                                "quantity": {
                                                    "type": "number"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "example": [
                                            {
                                                "is_title": true,
                                                "title": "<h2>Joli titre</h2>"
                                            },
                                            {
                                                "item_id": 1234,
                                                "quantity": 3
                                            }
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/estimate/effortless": {
            "post": {
                "tags": [
                    "9) Estimate or Estimates"
                ],
                "summary": "Créer un devis (sans effort), le client est créé automatiquemet avec comme clé l'adresse email, les produits sont créés automatiquement avec comme clés les codes produits",
                "operationId": "post.estimate.effortless",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_email": {
                                        "type": "number",
                                        "example": "contact@alphamatic.fr"
                                    },
                                    "customer": {
                                        "type": "object",
                                        "example": {
                                            "name": "ALPHAMATIC",
                                            "company_name": "SAS ALPHAMATIC"
                                        }
                                    },
                                    "lines": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "item_code": {
                                                    "type": "string"
                                                },
                                                "is_title": {
                                                    "type": "boolean"
                                                },
                                                "item_id": {
                                                    "type": "number"
                                                },
                                                "quantity": {
                                                    "type": "number"
                                                },
                                                "price": {
                                                    "type": "number"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "example": [
                                            {
                                                "is_title": true,
                                                "title": "<h2>Joli titre</h2>"
                                            },
                                            {
                                                "item_code": 1234,
                                                "item": {
                                                    "name": "Ravioli"
                                                },
                                                "quantity": 3,
                                                "price": 9,
                                                "tax_percent": 20
                                            }
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/estimate/{id}/pdf": {
            "get": {
                "tags": [
                    "9) Estimate or Estimates"
                ],
                "summary": "Afficher le PDF d'un devis",
                "operationId": "get.estimate.pdf",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID du devis à envoyer",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ok",
                        "content": {
                            "application/pdf": {}
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    },
                    "422": {
                        "description": "Unprocessable Entity"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/invoices": {
            "get": {
                "tags": [
                    "7) Invoice or Invoices"
                ],
                "summary": "Obtenir la liste de vos factures.",
                "operationId": "get.invoices",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "from_date",
                        "in": "query",
                        "description": "Filtrer les factures à partir de cette date (YYYY-MM-DD).",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to_date",
                        "in": "query",
                        "description": "Filtrer les factures jusqu'à cette date (YYYY-MM-DD).",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/invoice/{id}": {
            "get": {
                "tags": [
                    "7) Invoice or Invoices"
                ],
                "summary": "Données d'une facture",
                "operationId": "get.invoice",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/invoice": {
            "post": {
                "tags": [
                    "7) Invoice or Invoices"
                ],
                "summary": "Créer une facture",
                "operationId": "post.invoice",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_id": {
                                        "type": "number",
                                        "example": "1234"
                                    },
                                    "lines": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "is_title": {
                                                    "type": "boolean"
                                                },
                                                "item_id": {
                                                    "type": "number"
                                                },
                                                "quantity": {
                                                    "type": "number"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "example": [
                                            {
                                                "is_title": true,
                                                "title": "<h2>Joli titre</h2>"
                                            },
                                            {
                                                "item_id": 1234,
                                                "quantity": 3
                                            }
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/invoice/effortless": {
            "post": {
                "tags": [
                    "7) Invoice or Invoices"
                ],
                "summary": "Créer une facture (sans effort), le client est créé automatiquemet avec comme clé l'adresse email, les produits sont créés automatiquement avec comme clés les codes produits",
                "operationId": "post.invoice.effortless",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_email": {
                                        "type": "number",
                                        "example": "contact@alphamatic.fr"
                                    },
                                    "customer": {
                                        "type": "object",
                                        "example": {
                                            "name": "ALPHAMATIC",
                                            "company_name": "SAS ALPHAMATIC"
                                        }
                                    },
                                    "lines": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "item_code": {
                                                    "type": "string"
                                                },
                                                "is_title": {
                                                    "type": "boolean"
                                                },
                                                "item_id": {
                                                    "type": "number"
                                                },
                                                "quantity": {
                                                    "type": "number"
                                                },
                                                "price": {
                                                    "type": "number"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "example": [
                                            {
                                                "is_title": true,
                                                "title": "<h2>Joli titre</h2>"
                                            },
                                            {
                                                "item_code": 1234,
                                                "item": {
                                                    "name": "Ravioli"
                                                },
                                                "quantity": 3,
                                                "price": 9,
                                                "tax_percent": 20
                                            }
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/invoice/{id}/validation": {
            "post": {
                "tags": [
                    "7) Invoice or Invoices"
                ],
                "summary": "Valider une facture",
                "operationId": "post.invoice.validation",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la facture à valider",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ok"
                    },
                    "404": {
                        "description": "Not Found"
                    },
                    "422": {
                        "description": "Unprocessable Entity"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/invoice/{id}/pdf": {
            "get": {
                "tags": [
                    "7) Invoice or Invoices"
                ],
                "summary": "Afficher le PDF d'une facture",
                "operationId": "get.invoice.pdf",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la facture à envoyer",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Ok",
                        "content": {
                            "application/pdf": {}
                        }
                    },
                    "404": {
                        "description": "Not Found"
                    },
                    "422": {
                        "description": "Unprocessable Entity"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/invoice/{id}/send": {
            "post": {
                "tags": [
                    "7) Invoice or Invoices"
                ],
                "summary": "Envoyer par email une facture",
                "operationId": "post.invoice.send",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la facture à envoyer",
                        "required": true
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "to": {
                                        "type": "string",
                                        "example": "email@provider.com"
                                    },
                                    "subject": {
                                        "type": "string",
                                        "example": "Votre facture"
                                    },
                                    "from_name": {
                                        "type": "string",
                                        "example": "Alfred Gaston"
                                    },
                                    "from_email": {
                                        "type": "string",
                                        "example": "alfred.gaston@provider.com"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Ok"
                    },
                    "404": {
                        "description": "Not Found"
                    },
                    "422": {
                        "description": "Unprocessable Entity"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/items": {
            "get": {
                "tags": [
                    "6) Item or Items"
                ],
                "summary": "Obtenir la liste des produits de la société.",
                "operationId": "get.items",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/item/:id": {
            "get": {
                "tags": [
                    "6) Item or Items"
                ],
                "summary": "Afficher les détails du produit",
                "operationId": "get.item",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/item": {
            "post": {
                "tags": [
                    "6) Item or Items"
                ],
                "summary": "Créer un produit",
                "operationId": "post.item",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Ravioli"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Ravioli du mercredi"
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "P001"
                                    },
                                    "account_code": {
                                        "type": "string",
                                        "example": "706001"
                                    },
                                    "price": {
                                        "type": "number",
                                        "example": "5.49"
                                    },
                                    "default_tax_id": {
                                        "type": "number",
                                        "example": "1234"
                                    },
                                    "unit_id": {
                                        "type": "number",
                                        "example": "1234"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/item/{id}": {
            "put": {
                "tags": [
                    "6) Item or Items"
                ],
                "summary": "Modifier un produit",
                "operationId": "put.item",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Ravioli"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Ravioli du mercredi"
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "P001"
                                    },
                                    "account_code": {
                                        "type": "string",
                                        "example": "706001"
                                    },
                                    "price": {
                                        "type": "number",
                                        "example": "5.49"
                                    },
                                    "default_tax_id": {
                                        "type": "number",
                                        "example": "1234"
                                    },
                                    "unit_id": {
                                        "type": "number",
                                        "example": "1234"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "404": {
                        "description": "Not Found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/pass-good-data": {
            "post": {
                "tags": [
                    "2) Learn good practices"
                ],
                "summary": "Poster des données en JSON avec le bon type, un nombre c'est un nombre, une date c'est une date...",
                "operationId": "post.pass-good-data",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_id": {
                                        "type": "integer",
                                        "example": "123"
                                    },
                                    "invoice_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "11/01/2023"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Avignon"
                                    },
                                    "lines": {
                                        "description": "Lines",
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "item_id": {
                                                    "type": "integer",
                                                    "example": "54321"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "example": "7.5"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/pass-bad-data": {
            "post": {
                "tags": [
                    "2) Learn good practices"
                ],
                "summary": "Poster des données en JSON avec le mauvais type pour voir comment ça réagit",
                "operationId": "post.pass-bad-data",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_id": {
                                        "type": "integer",
                                        "example": "123"
                                    },
                                    "invoice_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "lundi"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Avignon"
                                    },
                                    "lines": {
                                        "description": "Lines",
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "item_id": {
                                                    "type": "integer",
                                                    "example": "54321.9"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "example": "7.5"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/pass-unexpected-data": {
            "post": {
                "tags": [
                    "2) Learn good practices"
                ],
                "summary": "Poster un JSON avec des propriétés non attendues",
                "operationId": "post.pass-unexpected-data",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_id": {
                                        "type": "integer",
                                        "example": "123"
                                    },
                                    "invoice_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "11/01/2023"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Avignon"
                                    },
                                    "city": {
                                        "type": "string",
                                        "example": "Marseille"
                                    },
                                    "lines": {
                                        "description": "Lines",
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "item_id": {
                                                    "type": "integer"
                                                },
                                                "quantity": {
                                                    "type": "number"
                                                },
                                                "tax_name": {
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "example": [
                                            {
                                                "item_id": "54321",
                                                "quantity": "7.5",
                                                "tax_name": "TVA 20%"
                                            },
                                            {
                                                "item_id": "98760",
                                                "quantity": "12",
                                                "measure": "100cm",
                                                "negative": "false"
                                            }
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/pass-bad-json": {
            "post": {
                "tags": [
                    "2) Learn good practices"
                ],
                "summary": "Poster un JSON cassé pour voir comment ça réagit (il faut enlever le double quote à la fin de titi)",
                "operationId": "post.pass-bad-json",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {},
                            "example": {
                                "toto": "titi"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/payments": {
            "get": {
                "tags": [
                    "8) Payment or Payments"
                ],
                "summary": "Obtenir la liste des paiements.",
                "operationId": "get.payments",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/payment/{id}": {
            "get": {
                "tags": [
                    "8) Payment or Payments"
                ],
                "summary": "Afficher les données d'un paiement",
                "operationId": "get.payment",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/payment": {
            "post": {
                "tags": [
                    "8) Payment or Payments"
                ],
                "summary": "Créer un paiement",
                "operationId": "post.payment",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "payment_date": {
                                        "type": "string",
                                        "example": "2024-01-01"
                                    },
                                    "amount": {
                                        "type": "number",
                                        "example": "12.2"
                                    },
                                    "invoice_id": {
                                        "type": "number",
                                        "example": 1234
                                    },
                                    "payment_method_id": {
                                        "type": "number",
                                        "example": 1234
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                }
            }
        },
        "/payment-methods": {
            "get": {
                "tags": [
                    "Payment Methods"
                ],
                "summary": "Obtenir la liste des méthodes de paiements.",
                "operationId": "get.paymentMethods",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/recurring-invoices": {
            "get": {
                "tags": [
                    "Recurring Invoices"
                ],
                "summary": "Obtenir la liste de vos factures récurrentes.",
                "operationId": "get.recurring.invoices",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/recurring-invoice/{id}": {
            "get": {
                "tags": [
                    "Recurring Invoices"
                ],
                "summary": "Données d'une facture récurrente",
                "operationId": "get.recurring.invoice",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/recurring-invoice": {
            "post": {
                "tags": [
                    "Recurring Invoices"
                ],
                "summary": "Créer une facture récurrente",
                "operationId": "post.recurring.invoice",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "customer_id": {
                                        "type": "number",
                                        "example": "1234"
                                    },
                                    "lines": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "is_title": {
                                                    "type": "boolean"
                                                },
                                                "item_id": {
                                                    "type": "number"
                                                },
                                                "quantity": {
                                                    "type": "number"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "example": [
                                            {
                                                "is_title": true,
                                                "title": "<h2>Joli titre</h2>"
                                            },
                                            {
                                                "item_id": 1234,
                                                "quantity": 3
                                            }
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/tax-types": {
            "get": {
                "tags": [
                    "Tax Types"
                ],
                "summary": "Obtenir la liste des TVA.",
                "operationId": "get.taxTypes",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/tax-type": {
            "post": {
                "tags": [
                    "Tax Types"
                ],
                "summary": "Créer une TVA",
                "operationId": "post.tax-type",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "TVA 8.5 %"
                                    },
                                    "percent": {
                                        "type": "number",
                                        "example": "8.5"
                                    },
                                    "account_code": {
                                        "type": "string",
                                        "example": "445664"
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "1"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/tax-type/:id": {
            "put": {
                "tags": [
                    "Tax Types"
                ],
                "summary": "Modifier une TVA",
                "operationId": "put.tax-type",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "TVA 8.5 %"
                                    },
                                    "percent": {
                                        "type": "number",
                                        "example": "8.5"
                                    },
                                    "account_code": {
                                        "type": "string",
                                        "example": "445664"
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "1"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/units": {
            "get": {
                "tags": [
                    "Units"
                ],
                "summary": "Obtenir la liste des unités.",
                "operationId": "get.units",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/unit": {
            "post": {
                "tags": [
                    "Units"
                ],
                "summary": "Créer une unité",
                "operationId": "post.unit",
                "parameters": [
                    {
                        "name": "X-Company",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "forfait"
                                    },
                                    "plural": {
                                        "type": "string",
                                        "example": "forfaits"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK"
                    },
                    "422": {
                        "description": "Unprocessable Content"
                    },
                    "503": {
                        "description": "Service Unavailable"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "name": "bearer",
                "in": "header",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    },
    "tags": [
        {
            "name": "3) Authentification",
            "description": "3) Authentification"
        },
        {
            "name": "1) Check the service",
            "description": "1) Check the service"
        },
        {
            "name": "4) Company or Companies",
            "description": "4) Company or Companies"
        },
        {
            "name": "Contacts",
            "description": "Contacts"
        },
        {
            "name": "5) Customer or Customers",
            "description": "5) Customer or Customers"
        },
        {
            "name": "9) Estimate or Estimates",
            "description": "9) Estimate or Estimates"
        },
        {
            "name": "7) Invoice or Invoices",
            "description": "7) Invoice or Invoices"
        },
        {
            "name": "6) Item or Items",
            "description": "6) Item or Items"
        },
        {
            "name": "2) Learn good practices",
            "description": "2) Learn good practices"
        },
        {
            "name": "8) Payment or Payments",
            "description": "8) Payment or Payments"
        },
        {
            "name": "Payment Methods",
            "description": "Payment Methods"
        },
        {
            "name": "Recurring Invoices",
            "description": "Recurring Invoices"
        },
        {
            "name": "Tax Types",
            "description": "Tax Types"
        },
        {
            "name": "Units",
            "description": "Units"
        }
    ]
}