/** * Contratos del onboarding de pasarelas de pago (ADR-028). * * Espejo reducido del backend: solo lo que una app necesita para conectar la * cuenta de una organización y saber si puede cobrar. */ /** Estado del ciclo de vida de una credencial OAuth. */ export type OAuthStatus = 'never' | 'connected' | 'expired' | 'revoked'; /** * Respuesta de `connection-status`. No expone el token: solo un enmascarado * informativo, porque la UI nunca necesita el secreto. */ export interface ConnectionStatusResponse { operationId: string; connected: boolean; oauthStatus: OAuthStatus; connectedAt?: string; maskedToken?: string; } /** Respuesta de `oauth/authorize-url`. */ export interface OAuthAuthorizeURLResponse { operationId: string; authorizeUrl: string; /** CSRF. El caller lo guarda antes de redirigir y lo compara al volver. */ state: string; } /** Configuración del cliente de pagos. */ export interface ValtechPaymentsConfig { /** Base del backend, sin barra final (ej. `https://api-dev.myvaltech.com`). */ apiUrl: string; /** Prefijo de la API de pagos. Default `/v1/payments`. */ paymentsPrefix?: string; }