ETSManager API
Gestione accessi adminAPI 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.
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.
| Parametro | Significato |
|---|---|
| resource | Codice della categoria restituito dal catalogo. |
| limit / offset | Da 1 a 100 record per pagina; offset iniziale 0. |
| id | Identificativo principale del record (id, socio_id, id_squadra o la chiave della categoria). |
| camp_id | Filtra per Camp, se disponibile per la categoria. Non amplia i Camp concessi. |
| member_id / team_id | Filtra per socio o squadra, se disponibili. |
| updated_since | YYYY-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.
- 401: chiave assente, errata, sospesa, revocata o scaduta.
- 403: categoria, campi o download non autorizzati.
- 404: categoria o documento non disponibile.
- 400: filtro non valido.
- 429: limite richieste raggiunto; rispetta
Retry-After.
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
| resource | Dati |
|---|---|
organization | Associazione |
operator_accounts | Utenti amministrativi (senza credenziali) |
subscriptions | Abbonamenti dell’associazione |
person_roles | Ruoli associati alle persone |
upgrade_requests | Richieste abbonamento |
Soci
| resource | Dati |
|---|---|
members | Soci e atleti |
member_health | Dati sanitari e visita medica soci |
guardians | Genitori e tutori |
membership_fees | Quote associative |
membership_register | Libro soci |
families | Collegamenti famiglie e fratelli |
sibling_discounts | Sconti fratelli |
member_requests | Richieste iscrizione soci |
Documenti
| resource | Dati |
|---|---|
member_documents | Documenti soci (metadati) |
member_photos | Foto atleti |
collaborator_documents | Documenti collaboratori (metadati) |
organization_documents | Documenti dell’associazione |
project_documents | Documenti dei movimenti progetto |
blsd_documents | Documenti BLSD (metadati) |
Sport
| resource | Dati |
|---|---|
member_sports | Attività sportive soci |
team_members | Roster e iscrizioni corsi |
teams | Squadre |
seasons | Stagioni sportive |
training_sessions | Allenamenti e orari corsi |
matches | Calendario gare e risultati |
match_notes | Note amministrative gare |
callups | Convocazioni gare |
callup_members | Atleti convocati e risposte |
course_weekdays | Giorni di frequenza corsi |
training_attendance | Presenze agli allenamenti |
match_artwork | Grafiche gare (metadati) |
match_artwork_options | Opzioni delle grafiche gare |
statbasket_sync_status | Stato collegamento StatBasket |
Camp
| resource | Dati |
|---|---|
camps | Camp |
camp_formulas | Formule e prezzi Camp |
camp_periods | Periodi e settimane Camp |
camp_registrations | Iscritti Camp |
camp_health | Allergie, emergenze e note Camp |
camp_registration_details | Dati aggiuntivi iscrizione Camp |
camp_documents | Documenti Camp (metadati) |
camp_payments | Incassi e rate Camp |
camp_invoices | Fatture totali Camp |
camp_credit_notes | Note di credito Camp |
camp_invoice_history | Storico fatture e note di credito Camp |
camp_accounting | Collegamento Camp a Prima Nota |
camp_consents | Privacy e consensi Camp |
camp_image_consents | Consensi foto e video Camp |
camp_image_checks | Verifica liberatorie Camp |
camp_regulation_consents | Accettazioni regolamento Camp |
camp_regulation_readings | Prove di lettura regolamento Camp |
camp_history | Storico partecipazioni ai Camp |
camp_athlete_profiles | Taglia, altezza e peso atleti Camp |
camp_bank_details | Coordinate bancarie Camp |
camp_promotions | Promozioni e sconti percentuali Camp |
camp_discount_settings | Impostazioni sconti Camp |
camp_fixed_discounts | Sconti fissi formule Camp |
camp_discount_notes | Note degli sconti Camp |
camp_bank_accounts | Conti bancari Camp |
camp_bank_movements | Movimenti bancari Camp |
camp_bank_matches | Abbinamenti bancari e rate Camp |
camp_document_audit | Storico caricamenti documenti Camp |
camp_formula_audit | Storico modifiche formule Camp |
camp_message_links | Collegamenti conversazioni Camp |
camp_annual_offers | Promozioni annuali Camp |
camp_payment_links | Collegamenti rate e iscrizioni Camp |
camp_fee_history | Storico quote e sconti personali Camp |
camp_reminder_history | Storico richieste dati genitori Camp |
camp_import_batches | Importazioni storico Camp |
Amministrazione
| resource | Dati |
|---|---|
payments | Pagamenti e quote sportive |
receipts | Ricevute pagamenti |
annual_receipts | Ricevute quote annuali |
donations | Erogazioni liberali e donazioni |
access_logs | Registro accessi area riservata |
invoices | Fatture collegate ai pagamenti sportivi |
bank_reconciliation | Conciliazione bancaria generale |
member_invoices | Fatture soci |
billing_customers | Collegamenti anagrafici Fatture in Cloud |
legacy_donations | Liberalità storiche |
installment_plans | Piani di rateizzazione soci |
athlete_fees | Quote atleti |
member_fees | Quote soci storiche |
legacy_payments | Pagamenti storici |
legacy_member_payments | Pagamenti soci storici |
Contabilità
| resource | Dati |
|---|---|
accounting_entries | Prima Nota e movimenti rendiconto |
accounting_items | Voci di bilancio |
accounting_closures | Chiusure rendiconto annuale |
season_closures | Chiusure anno sportivo |
projects | Progetti |
project_entries | Movimenti dei progetti |
legacy_accounting | Movimenti contabili storici |
economic_movements | Movimenti economici |
professional_accounting | Contabilizzazioni compensi |
Sponsorizzazioni
| resource | Dati |
|---|---|
sponsors | Sponsor |
sponsor_contracts | Contratti sponsor |
Collaboratori
| resource | Dati |
|---|---|
collaborators | Collaboratori |
collaborator_contracts | Contratti collaboratori |
collaborator_assignments | Designazioni collaboratori |
collaborator_tax | Anagrafica fiscale collaboratori |
external_fees | Compensi percepiti da altri enti |
payslips | Cedolini |
f24 | Modelli F24 |
f24_lines | Righe F24 |
tax_certificates | Certificazioni uniche |
uniemens | Flussi UNIEMENS |
uniemens_details | Dettagli UNIEMENS |
collaborator_teams | Squadre associate ai collaboratori |
collaborator_declarations | Autodichiarazioni collaboratori |
collaborator_contract_teams | Squadre dei contratti collaboratori |
collaborator_refunds | Rimborsi spese collaboratori |
employer_inps | Posizioni INPS dell’associazione |
collaborator_associations | Collegamenti collaboratori e associazioni |
collaborator_fees | Compensi collaboratori |
collaborator_tax_history | Storico fiscale collaboratori |
collaborator_movements | Movimenti economici collaboratori |
collaborator_requests | Richieste iscrizione collaboratori |
observer_assignments | Designazioni osservatori UDC |
uniemens_receipts | Ricevute UNIEMENS |
Volontari
| resource | Dati |
|---|---|
volunteers | Volontari |
volunteer_refunds | Rimborsi volontari |
Organi sociali
| resource | Dati |
|---|---|
board_meetings | Convocazioni CDA |
board_minutes | Verbali CDA |
assemblies | Assemblee soci |
assembly_minutes | Verbali assemblee |
meetings | Riunioni e conviviali |
meeting_responses | Risposte alle riunioni |
board_members | Consiglio direttivo |
Messaggi
| resource | Dati |
|---|---|
message_threads | Conversazioni |
messages | Messaggi 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.