Aller au contenu principal

Python SDK

Le SDK Python public MOCOSAG est en cours de préparation. En attendant, utilisez requests ou httpx directement 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é :

UsageMéthodeChemin
Lister les policyholdersGET/directory/v0/policyholders
Évaluer une décision de couverturePOST/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 :

CodeAction recommandée
401Renouveler le token d'accès
403Vérifier les scopes OAuth2
409Ne pas rejouer avec une autre charge utile sous la même clé d'idempotence
422Corriger les règles métier ou les champs invalides
429Respecter le header Retry-After
500, 502, 503, 504Ré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 Client sync et un AsyncClient ;
  • 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.