Un'unica APIper il condominioe tutto il resto
REST su ogni risorsa, webhook in tempo reale, spec OpenAPI. Collega contabilità, ticket, assemblee e fatturazione ai tuoi strumenti: commercialista, BI, automazioni su misura.
$ curl amministra.pro/api/v1/condominiums \ -H "Authorization: Bearer ap_live_…" { "data": [ { "id": "cond_7fa2", "nome": "Condominio Aurora", "unita": 24 }, ], "total": 137 }
Bearer token,
niente altro
- 1Crea una API key
Da Impostazioni, API. Scegli lo scope: sola lettura o lettura e scrittura.
- 2Identifica l’organization
L'header
X-Organization-Idlega ogni chiamata a una sola organization. - 3Chiama gli endpoint
Passa il token come Bearer nell'header
Authorizationdi ogni request.
Authorization: Bearer ap_live_xxxxxxxxxxxxxxxxxxxx X-Organization-Id: org_xxxxxxxxxxxx
Ogni risorsa del gestionale
Endpoint sotto /api/v1, tutti scoped all'organization della tua API key.
- GET
/condominiumsCondomini gestiti - GET
/condominiums/{id}/residentsAnagrafe condomini - GET
/condominiums/{id}/unitsUnità immobiliari e millesimi - GET
/condominiums/{id}/rateRate condominiali - GET
/condominiums/{id}/expensesSpese condominiali - GET
/condominiums/{id}/assembliesAssemblee condominiali - GET
/condominiums/{id}/documentsDocumenti del condominio - POST
/condominiums/{id}/maintenanceTicket manutenzione - GET
/suppliersFornitori - GET
/ems/eventsEventi e iscrizioni EMS
Rate limit predefinito 100 richieste al minuto per API key. Ogni risposta porta gli header X-RateLimit-Limit e X-RateLimit-Remaining.
Dalla prima request al deploy
curl https://amministra.pro/api/v1/condominiums \ -H "Authorization: Bearer ap_live_xxx" \ -H "X-Organization-Id: org_xxx"
import fetch from 'node-fetch';
const res = await fetch(
'https://amministra.pro/api/v1/condominiums/cond_xxx/maintenance',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.AMP_API_KEY}`,
'X-Organization-Id': process.env.AMP_ORG_ID,
},
body: JSON.stringify({
titolo: 'Perdita acqua box 3',
descrizione: 'Allagamento box auto interno 3',
priorita: 'urgente',
fornitoreId: 'forn_xxx',
}),
},
);
const ticket = await res.json();
console.log('Ticket creato:', ticket.id);import express from 'express';
import crypto from 'crypto';
const app = express();
app.use(express.raw({ type: 'application/json' }));
app.post('/amp-webhook', (req, res) => {
// 1. Verifica la firma
const signature = req.header('X-Webhook-Signature');
const expected = crypto
.createHmac('sha256', process.env.AMP_WEBHOOK_SECRET)
.update(req.body)
.digest('hex');
if (signature !== expected) return res.status(401).send('Invalid signature');
// 2. Gestisci l'evento
const payload = JSON.parse(req.body.toString());
switch (payload.event) {
case 'payment.overdue':
console.log('Rata scaduta:', payload.data);
break;
case 'ticket.created':
console.log('Nuovo ticket:', payload.data);
break;
}
res.status(200).send('ok');
});
app.listen(3000);Importa lo schema completo in Postman, Insomnia o Bruno.
27 eventi,
in tempo reale
Configurali da Impostazioni, API e webhook. Ogni payload è firmato HMAC-SHA256 nell'header X-Webhook-Signature: verificalo sempre prima di processare.
{
"event": "payment.overdue",
"timestamp": "2026-05-08T10:30:00Z",
"data": {
"rataId": "rata_xxx",
"condominoId": "res_xxx",
"condominoNome": "Mario Rossi",
"importo": 450.00,
"dataScadenza": "2026-05-01",
"giorniRitardo": 7
}
}payment.receivedPagamento registratopayment.overdueRata oltre la scadenzaticket.createdNuovo ticket manutenzioneticket.updatedTicket aggiornatoassembly.scheduledAssemblea convocataassembly.completedAssemblea conclusadocument.uploadedNuovo documento caricatoexpense.createdSpesa registrataresident.createdNuovo condomino anagrafatocontatore.letturaLettura contatore acquisitacomunicazione.inviataComunicazione PEC o email inviataesercizio.approvedBilancio approvato in assembleasnapshot.createdSnapshot contabile creatoparcellazione.generatedParcellazione generataspid.loginAccesso SPID effettuatoaudit.criticalEvento di audit criticoiot.alertAllerta da sensore IoTcondominio.createdNuovo condominio creatocondominio.updatedCondominio aggiornatoems.registration.createdIscrizione a evento creataems.registration.updatedIscrizione a evento aggiornataems.registration.cancelledIscrizione a evento annullataems.checkinCheck-in a evento registratoems.event.publishedEvento pubblicatoems.event.updatedEvento aggiornatoems.event.archivedEvento archiviatoems.order.paidOrdine evento pagato
Integrazioni su misura?
Per scope speciali, partnership tecniche o un endpoint che ancora non trovi, scrivici. Rispondiamo agli sviluppatori, non ai ticket.
