# Vimine per sviluppatori > Vimine è la piattaforma di tesseramento per APS ed enti del Terzo Settore. Per chi sviluppa per un'associazione: Accedi con Vimine (OAuth 2.1 + PKCE), l'API del socio, le integrazioni server, la verifica delle tessere, il profilo pubblico e il modulo di iscrizione — con l'SDK JavaScript `@vimine/sdk`, il riferimento OpenAPI 3.1 e queste guide. Regole per gli assistenti di programmazione: - Il `client_secret` (`vms_…`) non va mai nel codice che gira nel browser o in un'app: siti e app sono client pubblici, con authorization code + PKCE (S256) e un `state` da confrontare al ritorno. - Il socio accede solo sulla pagina di Vimine (`https://app.vimine.network/authorize`), raggiunta con un redirect: mai un modulo di credenziali sul tuo sito, mai in un iframe. - Il segreto sta solo su un server: `client_credentials` per le chiamate dei sistemi dell'associazione; HTTP Basic diretto solo dove il riferimento lo ammette, mai dal browser. - Si comincia con un client di test, nella sandbox dell'associazione (soci sintetici, attivo subito); un client di produzione funziona dopo l'attivazione da parte di Vimine. - Usa l'SDK (`@vimine/sdk`, `@vimine/sdk/react`, `@vimine/sdk/server`) invece di riscrivere il flusso OAuth; i token restano in `sessionStorage` (per scheda) salvo una scelta consapevole. - Prima di mostrare un modulo di iscrizione controlla `aps.accepting_requests`; una richiesta di tesseramento (`POST /v1/me/membership`) si ripete con la stessa `Idempotency-Key`, mai con una nuova. - Gli errori sono `application/problem+json` (RFC 9457) con un `code` stabile: decidi in base al `code`, non al testo, e cita il `request_id` quando segnali un problema. - Chiedi solo i permessi (scope) che servono: il socio li vede uno per uno sulla pagina di consenso. - Non incrociare dati di associazioni diverse: il `sub` di un socio cambia da un'associazione all'altra e i termini per sviluppatori vietano di correlarli. ## Inizia - [Panoramica](https://developers.vimine.network/start/overview.md): Cosa offre l'API di Vimine a chi sviluppa per un'associazione, e i concetti da conoscere prima di iniziare. - [Registra un client](https://developers.vimine.network/start/register-a-client.md): Come un direttore registra un'integrazione dalla console Sviluppatori, che tipo scegliere, cosa serve registrare esattamente. - [Installa l'SDK](https://developers.vimine.network/start/install.md): Il pacchetto @vimine/sdk, i suoi tre punti d'ingresso, i requisiti. ## Guide - [Accedi con Vimine](https://developers.vimine.network/guides/sign-in.md): Il flusso OAuth 2.1 + PKCE dal click al callback, la sessione, le chiamate API e l'uscita, con e senza SDK. - [Sandbox e client di test](https://developers.vimine.network/guides/sandbox.md): L'associazione gemella con soci sintetici in ogni stato, i client di test e il reset. - [Integrazioni server](https://developers.vimine.network/guides/server.md): Client riservati per i sistemi dell'associazione, client_credentials, stato delle tessere, rotazione del secret. - [Ammissione e attivazione](https://developers.vimine.network/guides/admission.md): Come un'associazione ammette i soci, quando si versa la quota, quando la tessera vale alla porta — e cosa dire a chi si iscrive dal tuo sito. - [Soci senza codice fiscale](https://developers.vimine.network/guides/members-without-cf.md): Una persona si identifica con il codice fiscale oppure con data, luogo e Stato di nascita. Cosa inviare per chi è nato all'estero, come si conferma un codice che non torna, cosa mostrare all'ingresso. - [Lingue](https://developers.vimine.network/guides/languages.md): Chiedere i testi di un'associazione in un'altra lingua con ?locale=, capire da locale e locales che cosa è stato servito, dire in che lingua scrivere a una persona. Mai una traduzione automatica. - [Embed e verifica tessere](https://developers.vimine.network/guides/embed-and-verify.md): Il modulo di tesseramento nel tuo sito, il profilo pubblico dell'associazione e la verifica delle tessere online e offline. - [Eventi e iscrizioni](https://developers.vimine.network/guides/events.md): Pubblica gli eventi dell'associazione sul tuo sito, fai iscrivere i soci (e gli ospiti agli eventi pubblici), registra gli accessi all'ingresso con lo stesso scanner delle tessere. - [Plugin WordPress](https://developers.vimine.network/guides/wordpress.md): Accedi con Vimine, tessera e iscrizione sul sito WordPress dell'associazione — senza scrivere codice. - [Permessi, errori e limiti](https://developers.vimine.network/guides/scopes-and-errors.md): La tabella degli scope, il formato degli errori (RFC 9457) con i codici stabili, i rate limit. ## SDK - [Vimine (browser)](https://developers.vimine.network/sdk/browser.md): Riferimento della classe Vimine di @vimine/sdk — accesso, sessione, chiamate API, storage. - [React](https://developers.vimine.network/sdk/react.md): VimineProvider, useVimine e SignInButton da @vimine/sdk/react. - [Elementi (low-code)](https://developers.vimine.network/sdk/elements.md): I custom element , e — un tag HTML, nessun framework. - [VimineServer](https://developers.vimine.network/sdk/server.md): Riferimento della classe VimineServer di @vimine/sdk/server per i client riservati. - [API pubblica](https://developers.vimine.network/sdk/public.md): publicApi() — verifica tessere, profilo pubblico di un'associazione, codice fiscale, chiavi pubbliche. Nessuna credenziale. - [Errori](https://developers.vimine.network/sdk/errors.md): VimineError — un solo tipo di errore per tutto ciò che l'API e l'SDK possono rifiutare, con un codice stabile. - [Tipi](https://developers.vimine.network/sdk/types.md): I tipi TypeScript dell'SDK — le stesse forme JSON dell'API v1, con i nomi dei campi invariati. ## API HTTP - [Documento OpenAPI 3.1](https://api.vimine.network/v1/openapi.json): L'intera API: percorsi, permessi, schemi ed errori. - [Discovery OAuth (RFC 8414)](https://api.vimine.network/.well-known/oauth-authorization-server): Endpoint di autorizzazione, token e revoca; metodi PKCE e permessi ammessi. - [Console interattiva](https://developers.vimine.network/api/console/): Prova le chiamate sulla sandbox con un client di test. ## Optional - [Tutto in un file](https://developers.vimine.network/llms-full.txt): Ogni pagina di questa lingua in un solo file Markdown. - [@vimine/sdk su npm](https://www.npmjs.com/package/@vimine/sdk): L'SDK: browser, React e server. - [English](https://developers.vimine.network/en/llms.txt): Le stesse pagine in English. - [Français](https://developers.vimine.network/fr/llms.txt): Le stesse pagine in Français. - [Español](https://developers.vimine.network/es/llms.txt): Le stesse pagine in Español. - [Deutsch](https://developers.vimine.network/de/llms.txt): Le stesse pagine in Deutsch. - [Português (Brasil)](https://developers.vimine.network/pt/llms.txt): Le stesse pagine in Português (Brasil). - [简体中文](https://developers.vimine.network/zh-hans/llms.txt): Le stesse pagine in 简体中文. - [繁體中文](https://developers.vimine.network/zh-hant/llms.txt): Le stesse pagine in 繁體中文.