ETSManager API

Gestione accessi admin

API in sola lettura per sviluppatori e integrazioni.

L’admin dell’associazione crea una chiave e autorizza le categorie, i singoli campi, gli eventuali Camp e il download dei file. Le credenziali si ricevono direttamente dall’admin. Nessun dato è pubblico e non è prevista una registrazione autonoma che conceda accesso ai dati.

Specifica OpenAPI JSON

Autenticazione

Invia la chiave nell’header Authorization: Bearer CHIAVE_API. Usa HTTPS e custodisci la chiave nel backend della tua applicazione. Non inserirla nell’URL, nei siti pubblici o nel codice distribuito ai visitatori.

curl --header "Authorization: Bearer CHIAVE_API" \
  "https://www.etsmanager.it/api/v1/catalog.php"

Scoprire i dati autorizzati

GET /api/v1/catalog.php restituisce soltanto le categorie e i campi concessi alla tua chiave, con i filtri Camp e l’eventuale permesso di download. Il catalogo si adatta ai moduli effettivamente presenti nel gestionale. I permessi vengono verificati a ogni richiesta.

Estrarre i dati

curl --header "Authorization: Bearer CHIAVE_API" \
  "https://www.etsmanager.it/api/v1/data.php?resource=camp_registrations&limit=50&offset=0"
{
  "data": [
    {"id": 123, "nome": "ESEMPIO", "cognome": "TEST"}
  ],
  "meta": {
    "resource": "camp_registrations",
    "count": 1,
    "limit": 50,
    "offset": 0,
    "next_offset": null
  }
}

I campi dell’esempio compaiono soltanto se autorizzati. Per leggere tutto l’elenco, ripeti la richiesta usando next_offset finché diventa null. Ogni pagina contiene al massimo 100 record. L’associazione è sempre determinata dalla chiave: non può essere cambiata con un parametro.

ParametroSignificato
resourceCodice della categoria restituito dal catalogo.
limit / offsetDa 1 a 100 record per pagina; offset iniziale 0.
idIdentificativo principale del record (id, socio_id, id_squadra o la chiave della categoria).
camp_idFiltra per Camp, se disponibile per la categoria. Non amplia i Camp concessi.
member_id / team_idFiltra per socio o squadra, se disponibili.
updated_sinceYYYY-MM-DD HH:MM:SS, per i dataset con updated_at. Usa la stessa convenzione dei timestamp restituiti dal gestionale.

Documenti

I dataset documentali restituiscono i metadati autorizzati. Il contenuto del file richiede un permesso aggiuntivo: GET /api/v1/download.php?resource=camp_documents&id=123. Per categorie con più allegati puoi aggiungere file=NOME_CAMPO_FILE. Il catalogo specifica i tipi di file disponibili quando il download è autorizzato. I percorsi interni non vengono restituiti. Limite: 20 MB per file, nei formati supportati.

Metodi e risposte

Solo GET e HEAD. POST, PUT, PATCH e DELETE sono rifiutati con HTTP 405. Non esistono operazioni per modificare dati, emettere fatture, registrare pagamenti o inviare messaggi.

Marketing Rixalto dei Camp

Usa una chiave dedicata alla sola categoria camp_marketing_contacts, con Camp selezionati esplicitamente e scadenza. Il flusso è distinto dalle chiavi operative e non può essere combinato con altri dataset. L’admin verifica accordi e informativa prima di autorizzarlo; nessuna chiave o condivisione viene creata automaticamente.

GET /api/v1/data.php?resource=camp_marketing_contacts&limit=50&offset=0
Authorization: Bearer CHIAVE_MARKETING

Restituisce solo nome, cognome ed email dell’adulto dichiarante, se selezionati dall’admin, un contatto_id opaco e la prova minima della scelta (identificativo, testo e impronta, versione dell’informativa e sua impronta, data e scadenza). I dati del partecipante minorenne, telefono, codice fiscale, note, salute, documenti e pagamenti non sono esposti. La dichiarazione di maggiore età è registrata; non equivale a una verifica documentale dell’identità.

Sono inclusi solo i consensi registrati con la conferma separata dell’adulto, attivi e non scaduti (massimo 24 mesi). I consensi storici non vengono dedotti dall’anagrafica o abilitati in blocco: l’adulto può confermarli nella propria area riservata. Il comando Seleziona tutto del modulo non seleziona il marketing. Una nuova iscrizione senza spunta non revoca scelte precedenti; una revoca esplicita nell’area riservata vale per tutti i Camp con la stessa email. Aggiornamenti a salute, immagini o nuove iscrizioni non rinnovano il termine di un consenso già attivo.

L’email identifica il contatto adulto nell’associazione; i duplicati tra Camp sono riuniti. Le revoche hanno effetto anche se inserite in un Camp diverso da quelli concessi alla chiave. I parametri camp_id, id, member_id, team_id e updated_since non sono ammessi per questo flusso: i Camp sono quelli scelti dall’admin. Esegui scansioni complete paginate, non incrementali.

GET /api/v1/camp_marketing_exclusions.php?limit=50&offset=0
Authorization: Bearer CHIAVE_MARKETING

{ "data": [{ "contatto_id": "IDENTIFICATIVO_OPACO", "stato": "da_escludere" }] }

Le esclusioni contengono soltanto identificativi già consegnati a quella stessa chiave/applicazione e ora non più utilizzabili: revoca, scadenza, rimozione del collegamento al Camp o modifica dei permessi. Non contengono email o dati di persone mai comunicate al client. Sono ripetute finché il contatto resta escluso. Lo storico delle consegne è un registro tecnico, non una modifica ai dati di iscrizione.

Il CRM deve applicare tutte le pagine delle esclusioni e completare una sincronizzazione dei contatti attivi prima di ogni campagna. Se una richiesta fallisce, la chiave è sospesa/scaduta/revocata, o non è possibile completare la verifica, sospendi gli invii del flusso. Le API sono letture dello stato al momento della richiesta, non webhook né notifiche automatiche al CRM. Per nuove chiavi/client ricostruisci la lista autorizzata integralmente; non aggiungerla senza controlli a vecchie liste. La rotazione della chiave sullo stesso client mantiene lo storico delle consegne. Un nuovo consenso esplicito ha un diverso consenso_id; non riattivare contatti soppressi sulla sola base di una vecchia copia.

Categorie del gestionale

La disponibilità dipende dai moduli installati. Anagrafiche, consensi, dati sanitari, contabilità e documenti sono categorie distinte. La presenza di una categoria qui non concede alcun accesso.

Associazione
resourceDati
organizationAssociazione
operator_accountsUtenti amministrativi (senza credenziali)
subscriptionsAbbonamenti dell’associazione
person_rolesRuoli associati alle persone
upgrade_requestsRichieste abbonamento
Soci
resourceDati
membersSoci e atleti
member_healthDati sanitari e visita medica soci
guardiansGenitori e tutori
membership_feesQuote associative
membership_registerLibro soci
familiesCollegamenti famiglie e fratelli
sibling_discountsSconti fratelli
member_requestsRichieste iscrizione soci
Documenti
resourceDati
member_documentsDocumenti soci (metadati)
member_photosFoto atleti
collaborator_documentsDocumenti collaboratori (metadati)
organization_documentsDocumenti dell’associazione
project_documentsDocumenti dei movimenti progetto
blsd_documentsDocumenti BLSD (metadati)
Sport
resourceDati
member_sportsAttività sportive soci
team_membersRoster e iscrizioni corsi
teamsSquadre
seasonsStagioni sportive
training_sessionsAllenamenti e orari corsi
matchesCalendario gare e risultati
match_notesNote amministrative gare
callupsConvocazioni gare
callup_membersAtleti convocati e risposte
course_weekdaysGiorni di frequenza corsi
training_attendancePresenze agli allenamenti
match_artworkGrafiche gare (metadati)
match_artwork_optionsOpzioni delle grafiche gare
statbasket_sync_statusStato collegamento StatBasket
Camp
resourceDati
campsCamp
camp_formulasFormule e prezzi Camp
camp_periodsPeriodi e settimane Camp
camp_registrationsIscritti Camp
camp_healthAllergie, emergenze e note Camp
camp_registration_detailsDati aggiuntivi iscrizione Camp
camp_documentsDocumenti Camp (metadati)
camp_paymentsIncassi e rate Camp
camp_invoicesFatture totali Camp
camp_credit_notesNote di credito Camp
camp_invoice_historyStorico fatture e note di credito Camp
camp_accountingCollegamento Camp a Prima Nota
camp_consentsPrivacy e consensi Camp
camp_image_consentsConsensi foto e video Camp
camp_image_checksVerifica liberatorie Camp
camp_regulation_consentsAccettazioni regolamento Camp
camp_regulation_readingsProve di lettura regolamento Camp
camp_historyStorico partecipazioni ai Camp
camp_athlete_profilesTaglia, altezza e peso atleti Camp
camp_bank_detailsCoordinate bancarie Camp
camp_promotionsPromozioni e sconti percentuali Camp
camp_discount_settingsImpostazioni sconti Camp
camp_fixed_discountsSconti fissi formule Camp
camp_discount_notesNote degli sconti Camp
camp_bank_accountsConti bancari Camp
camp_bank_movementsMovimenti bancari Camp
camp_bank_matchesAbbinamenti bancari e rate Camp
camp_document_auditStorico caricamenti documenti Camp
camp_formula_auditStorico modifiche formule Camp
camp_message_linksCollegamenti conversazioni Camp
camp_annual_offersPromozioni annuali Camp
camp_payment_linksCollegamenti rate e iscrizioni Camp
camp_fee_historyStorico quote e sconti personali Camp
camp_reminder_historyStorico richieste dati genitori Camp
camp_import_batchesImportazioni storico Camp
Amministrazione
resourceDati
paymentsPagamenti e quote sportive
receiptsRicevute pagamenti
annual_receiptsRicevute quote annuali
donationsErogazioni liberali e donazioni
access_logsRegistro accessi area riservata
invoicesFatture collegate ai pagamenti sportivi
bank_reconciliationConciliazione bancaria generale
member_invoicesFatture soci
billing_customersCollegamenti anagrafici Fatture in Cloud
legacy_donationsLiberalità storiche
installment_plansPiani di rateizzazione soci
athlete_feesQuote atleti
member_feesQuote soci storiche
legacy_paymentsPagamenti storici
legacy_member_paymentsPagamenti soci storici
Contabilità
resourceDati
accounting_entriesPrima Nota e movimenti rendiconto
accounting_itemsVoci di bilancio
accounting_closuresChiusure rendiconto annuale
season_closuresChiusure anno sportivo
projectsProgetti
project_entriesMovimenti dei progetti
legacy_accountingMovimenti contabili storici
economic_movementsMovimenti economici
professional_accountingContabilizzazioni compensi
Sponsorizzazioni
resourceDati
sponsorsSponsor
sponsor_contractsContratti sponsor
Collaboratori
resourceDati
collaboratorsCollaboratori
collaborator_contractsContratti collaboratori
collaborator_assignmentsDesignazioni collaboratori
collaborator_taxAnagrafica fiscale collaboratori
external_feesCompensi percepiti da altri enti
payslipsCedolini
f24Modelli F24
f24_linesRighe F24
tax_certificatesCertificazioni uniche
uniemensFlussi UNIEMENS
uniemens_detailsDettagli UNIEMENS
collaborator_teamsSquadre associate ai collaboratori
collaborator_declarationsAutodichiarazioni collaboratori
collaborator_contract_teamsSquadre dei contratti collaboratori
collaborator_refundsRimborsi spese collaboratori
employer_inpsPosizioni INPS dell’associazione
collaborator_associationsCollegamenti collaboratori e associazioni
collaborator_feesCompensi collaboratori
collaborator_tax_historyStorico fiscale collaboratori
collaborator_movementsMovimenti economici collaboratori
collaborator_requestsRichieste iscrizione collaboratori
observer_assignmentsDesignazioni osservatori UDC
uniemens_receiptsRicevute UNIEMENS
Volontari
resourceDati
volunteersVolontari
volunteer_refundsRimborsi volontari
Organi sociali
resourceDati
board_meetingsConvocazioni CDA
board_minutesVerbali CDA
assembliesAssemblee soci
assembly_minutesVerbali assemblee
meetingsRiunioni e conviviali
meeting_responsesRisposte alle riunioni
board_membersConsiglio direttivo
Messaggi
resourceDati
message_threadsConversazioni
messagesMessaggi e comunicazioni

Le API precedenti per associazioni, squadre, gare e Camp restano disponibili alle chiavi legacy con i relativi permessi. Le nuove chiavi di lettura usano catalog.php, data.php e download.php.