Des fintechs brésiliennes utilisent Claude pour l’analyse des risques des transactions PIX en temps réel — code complet, coût par transaction, latence observée et considérations relatives à la LGPD et à la BACEN. C’est le cas d’usage que je vois le plus souvent dans les fintechs brésiliennes en 2026.
Pourquoi cela fonctionne bien
L’analyse traditionnelle des risques PIX repose sur un modèle de ML entraîné sur des caractéristiques fixes (montant, fréquence, heure de la journée). Cela fonctionne, mais échoue face aux schémas subtils : « ce client effectue habituellement des virements à son frère, mais jamais de tels montants, et l’adresse IP provient d’une autre ville — il s’agit probablement d’un échange frauduleux de carte SIM ». Claude traite naturellement ce type de raisonnement contextuel.
Le code
import json
from openai import OpenAI
client = OpenAI(
api_key="sk-kn-...",
base_url="https://api.kunavo.com/v1",
)
# No Claude, um response_format json_schema é garantido na resposta; json_object não.
ANALISE = {
"type": "object",
"properties": {
"risco": {"type": "string", "enum": ["baixo", "medio", "alto"]},
"sinais": {"type": "array", "items": {"type": "string"}},
"recomendacao": {"type": "string", "enum": ["aprovar", "revisar", "bloquear"]},
"explicacao_pt_BR": {"type": "string"},
},
"required": ["risco", "sinais", "recomendacao", "explicacao_pt_BR"],
"additionalProperties": False,
}
def analisar_transacao(transacao: dict, historico: list[dict]) -> dict:
"""Detecta sinais de fraude em uma transação PIX usando Claude."""
historico_txt = "\n".join(
f"- {t['data']}: R$ {t['valor']:.2f} para {t['destinatario']} ({t['categoria']})"
for t in historico[-20:]
)
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{
"role": "system",
"content": [
{
"type": "text",
"text": (
"Você é um analista de risco de pagamentos PIX no Brasil. "
"Analise a transação atual em relação ao histórico do "
"cliente e retorne JSON: "
'{"risco": "baixo|medio|alto", '
'"sinais": ["..."], '
'"recomendacao": "aprovar|revisar|bloquear", '
'"explicacao_pt_BR": "..."}'
),
"cache_control": {"type": "ephemeral"},
},
],
},
{
"role": "user",
"content": (
f"## Transação atual\n"
f"Data: {transacao['data']}\n"
f"Valor: R$ {transacao['valor']:.2f}\n"
f"Destinatário: {transacao['destinatario']}\n"
f"Origem (IP/dispositivo): {transacao['origem']}\n\n"
f"## Histórico recente (últimas 20 transações)\n{historico_txt}"
),
},
],
response_format={"type": "json_schema",
"json_schema": {"name": "analise", "schema": ANALISE}},
max_tokens=400,
)
return json.loads(resp.choices[0].message.content)Coût par analyse : ~0,008 $ (environ 0,04 R$ au taux de change actuel). Pour une fintech traitant 100 000 transactions PIX par jour, cela représente ~4 000 R$/mois. Pour éviter une fraude coûtant en moyenne 2 000 à 5 000 R$ par cas, le ROI est extrêmement positif.
Latence
Claude Sonnet 4.6 via Kunavo depuis São Paulo (AWS sa-east-1) : P50 ~800 ms, P99 ~2 s. Pour une analyse synchrone (bloquer avant le règlement PIX), c’est suffisant ; la BACEN laisse environ 10 secondes avant l’expiration du délai. Pour des volumes très élevés, envisagez l’asynchrone : approuver d’abord, puis analyser ensuite afin de soumettre les cas suspects à une vérification manuelle.
À quoi s’attendre dans la sortie
- Risque faible : schéma cohérent, bénéficiaire connu, horaire habituel → autoriser directement
- Risque moyen : 1 à 2 signaux (montant élevé, nouveau bénéficiaire, horaire inhabituel) → bloquer et envoyer en vérification manuelle ou demander une 2FA renforcée
- Risque élevé : plusieurs signaux (échange de carte SIM suspect, tentative de faux boleto, schéma de compte mule) → bloquer et alerter immédiatement l’équipe antifraude
LGPD et BACEN — points critiques
- Pseudonymisation avant le LLM : CPF, nom complet, compte bancaire — masquez-les avant l’envoi. Le modèle voit « [CLIENT_42] a transféré X R$ à [DEST_198] »
- Ne pas entraîner le modèle sur les données : Anthropic n’utilise pas les requêtes de l’API pour l’entraînement par défaut. Pour Enterprise, vous pouvez demander la conservation nulle des données via Kunavo (sales@kunavo.com)
- Décision automatisée : la LGPD exige que le client puisse contester une décision automatisée qui l’affecte. Votre interface doit proposer un bouton « Contester » ; l’explication_pt_BR renvoyée par le modèle constitue un bon point de départ pour la réponse
- Résolution de la BACEN sur l’IA : bien qu’il n’existe pas encore de réglementation spécifique de la BACEN concernant l’utilisation des LLM pour les risques PIX (2026), les principes généraux des Circulaires 4.018 et 3.978 sur la gouvernance et la gestion des risques s’appliquent. Documentez clairement la manière dont le modèle prend ses décisions
Segmentation par montant
Il n’est pas nécessaire d’exécuter Claude Sonnet pour chaque transaction PIX. Schéma recommandé :
- PIX < 100 R$ : passage direct, sans analyse LLM
- 100 R$ - 1 000 R$ : Claude Haiku 4.5 (10 fois moins cher), analyse rapide
- 1 000 R$ - 10 000 R$ : Claude Sonnet 4.6 (analyse standard)
- > 10 000 R$ : Claude Opus 4.7 (analyse plus approfondie) + vérification humaine en parallèle
Paiement et facturation
Payez par PIX ou avec une carte internationale. Les prix sont en USD et la page de paiement affiche le montant converti en réaux. La taxe IOF de 3,5 % s’applique aux deux moyens de paiement lorsque le payeur se trouve au Brésil et que l’entreprise est étrangère. Kunavo n’émet pas de NF-e.
Prochaines étapes
- Créez un compte avec l’inscription gratuite (recharge à partir de 10 $, paiement à l’utilisation = environ 1 250 analyses pour un prototype)
- Configurez la pseudonymisation des informations personnelles dans votre backend
- Exécutez 1 000 transactions réelles (masquées) en mode shadow et comparez-les à votre modèle de ML actuel
- Itérez sur le prompt système en utilisant les faux positifs et les faux négatifs comme retours
- Passez en production uniquement après approbation de votre CRO/compliance et mise à jour de vos journaux LGPD
Documentation complète : /docs/quickstart ; guide de la mise en cache des prompts pour réduire encore les coûts de 70 % : analyse approfondie de la mise en cache des prompts.