Etiquetas y borrado de datos
Etiquetas (POST /v1/labels)
Cuando confirmes qué pasó con un evento o un jugador, avísanos. Las etiquetas miden qué tan bien funcionan tus reglas (y, en el futuro, entrenarán modelos).
curl -s "$SAFEGATE_URL/v1/labels" \
-H "Authorization: Bearer $SAFEGATE_KEY" -H "Content-Type: application/json" \
-d '{"event_id": "evt_…", "label": "chargeback", "source": "chargeback", "occurred_at": "2026-10-20T15:00:00Z"}'
| Campo | Valores |
|---|---|
event_id y/o user_id |
Al menos uno |
label |
fraud, legit, chargeback, bonus_abuse, multi_account, ato, money_laundering, other |
source |
manual_review, chargeback, customer_report, internal_rule |
occurred_at |
Cuándo ocurrió (no cuándo lo supiste) |
notes |
Texto libre, máx. 1,000. No pongas datos personales aquí. |
Etiqueta también los casos buenos (legit): sin ellos no podemos medir falsos positivos. Las decisiones de los analistas en el panel ya crean etiquetas automáticamente.
Borrado de datos (DELETE /v1/subjects/{user_id})
Para atender una solicitud de cancelación (derechos ARCO) de un jugador, con una llave admin:
curl -s -X DELETE "$SAFEGATE_URL/v1/subjects/jugador_123" -H "Authorization: Bearer $SAFEGATE_ADMIN_KEY"
Desvincula al jugador de sus eventos (los eventos se conservan sin identificarlo, para facturación) y borra sus etiquetas, enlaces de dispositivo, datos de casos y contadores de velocidad. Regresa un comprobante:
{"erasure_id": "era_…", "environment": "live", "erased_at": "…",
"counts": {"events_unlinked": 12, "labels_deleted": 1, "device_links_deleted": 2,
"case_rows_deleted": 3, "velocity_sets_deleted": 4}}
El comprobante no contiene el id del jugador. Repetir la llamada es seguro. También se envía el webhook subject.erased.
Retención
Los datos de casos (la solicitud completa de los eventos en revisión) se borran automáticamente a los 180 días.