sdk/sdk-contract-common.md

SDK Contract Common

Inicialización común

{
  "operationId": "otp_op_123",
  "sdkToken": "jwt",
  "target": {
    "phone": "+525512345678",
    "email": "cliente@mail.com"
  },
  "preferredChannel": "whatsapp",
  "autoSend": true
}

target es opcional. Puede venir:

Al construir un target debe existir al menos teléfono o email; para una sesión sin destino se usa target: null. WhatsApp/SMS requieren teléfono y Email requiere correo. El SDK no inventa valores faltantes y el backend mantiene la decisión autoritativa.

  • phone + email
  • phone only
  • email only
  • vacío

Callbacks

  • onReady
  • onConfigLoaded
  • onTargetRequired
  • onOtpSending
  • onOtpSent
  • onFallbackInProgress
  • onFallbackTargetMissing
  • onOtpVerifying
  • onVerificationSuccess
  • onVerificationFailed
  • onExpired
  • onBlocked
  • onCancelled
  • onError

Estados UI

  • loading config
  • validating access
  • target capture
  • channel selector
  • sending
  • fallback in progress
  • waiting for code
  • verifying
  • success
  • error

Estado de transporte por plataforma

La documentación de cada SDK debe distinguir mock, sandbox y producción. Android 0.1.0 utiliza la misma fachada create(...): la configuración elige mock o transporte HTTP real. Cancelar una solicitud local desconecta el transporte e impide su callback; cancelar la operación es una acción de dominio independiente.