Frameworks
Flask — Intégration Scell.io
Sync via requests + extension Flask
Scell.io ne publie PAS de SDK Python officiel. Pour Flask, utiliser `requests.Session()` (sync) initialisé dans `app.config` et accessible via `current_app`. Pour les workloads lourds, déléguer à Celery. Pas de magie : appel HTTP direct vers `https://api.scell.io/api/v1/invoices` avec `X-API-Key`.
À retenir
- `requests.Session()` partagée dans `app.config`
- Pas de SDK Python — appel HTTP direct
- Pour async/queue : Celery + broker Redis
- `SCELL_API_KEY` via `os.environ` (pas dans le code)
- Compatible Flask 2.x et 3.x
Exemple de code
import os, requests
from flask import Flask, request, jsonify, current_app
app = Flask(__name__)
app.config['SCELL'] = requests.Session()
app.config['SCELL'].headers.update({'X-API-Key': os.environ['SCELL_API_KEY']})
@app.post('/invoice')
def create_invoice():
body = request.get_json()
r = current_app.config['SCELL'].post(
'https://api.scell.io/api/v1/invoices',
json={'format': 'factur-x', 'lines': [{'description': body['label'], 'quantity': 1, 'unit_price': body['amount'], 'vat_rate': 20.0}]},
timeout=30,
)
return jsonify(r.json()), r.status_code