Python SDK
Le SDK Python public MOCOSAG est en cours de préparation. En attendant, utilisez
requestsouhttpxdirectement sur les chemins OpenAPI ci-dessous.
Les exemples utilisent l'environnement sandbox :
export MOCOSAG_BASE_URL="https://sandbox.api.mocosag.com"
export MOCOSAG_ACCESS_TOKEN="<access_token>"
Pour obtenir un token, consultez le guide OAuth2.
Chemins utilisés
Les exemples ci-dessous sont alignés sur le contrat OpenAPI publié :
| Usage | Méthode | Chemin |
|---|---|---|
| Lister les policyholders | GET | /directory/v0/policyholders |
| Évaluer une décision de couverture | POST | /coverage/v0/coverage/decisions |
Avec requests (sync)
pip install requests
import os
import uuid
import requests
BASE_URL = os.environ.get("MOCOSAG_BASE_URL", "https://sandbox.api.mocosag.com")
TOKEN = os.environ["MOCOSAG_ACCESS_TOKEN"]
headers = {
"Authorization": f"Bearer {TOKEN}",
"X-Request-Id": str(uuid.uuid4()),
}
response = requests.get(
f"{BASE_URL}/directory/v0/policyholders",
headers=headers,
params={
"limit": 20,
"offset": 0,
"includeContracts": "true",
"search": "CNAMGS",
},
timeout=10,
)
response.raise_for_status()
payload = response.json()
for policyholder in payload["items"]:
print(policyholder)
Avec httpx (async)
pip install httpx
import os
import uuid
import httpx
BASE_URL = os.environ.get("MOCOSAG_BASE_URL", "https://sandbox.api.mocosag.com")
TOKEN = os.environ["MOCOSAG_ACCESS_TOKEN"]
headers = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
"X-Request-Id": str(uuid.uuid4()),
}
command = {
"mode": "SIMULATE",
"insuredId": "11111111-1111-4111-8111-111111111111",
"serviceDate": "2026-05-26",
"contractHints": ["22222222-2222-4222-8222-222222222222"],
"items": [
{
"itemCode": "CONS-GEN",
"quantity": 1,
"unitPrice": 5000,
"categoryCode": "CONSULTATION",
"diagnosisCode": "Z00.0",
}
],
}
async with httpx.AsyncClient(base_url=BASE_URL, timeout=10) as client:
response = await client.post(
"/coverage/v0/coverage/decisions",
headers=headers,
json=command,
)
response.raise_for_status()
decision = response.json()
print(decision["decisionId"])
Erreurs et retries
Les endpoints MOCOSAG utilisent des codes HTTP standards :
| Code | Action recommandée |
|---|---|
401 | Renouveler le token d'accès |
403 | Vérifier les scopes OAuth2 |
409 | Ne pas rejouer avec une autre charge utile sous la même clé d'idempotence |
422 | Corriger les règles métier ou les champs invalides |
429 | Respecter le header Retry-After |
500, 502, 503, 504 | Réessayer avec backoff exponentiel |
Pour les requêtes POST, envoyez une valeur Idempotency-Key stable par tentative logique. Rejouer la même clé avec la même charge utile permet au backend de dédupliquer la demande ; rejouer la même clé avec une charge utile différente doit être traité comme une erreur de conflit.
Future SDK publique
La cible du SDK public est un package Python unique, par exemple mocosag, avec :
- un
Clientsync et unAsyncClient; - des sous-clients par domaine (
directory,coverage,onboarding, etc.) ; - l'authentification OAuth2 intégrée ;
- des exceptions Python typées pour les erreurs MOCOSAG ;
- la gestion des timeouts, retries, headers de corrélation et clés d'idempotence.
Cette API n'est pas encore publiée. Tant que le package public n'est pas livré, les intégrations serveur-à-serveur doivent utiliser les appels HTTP documentés ci-dessus.