API Reference / Account

Account

Gli account sono le aziende (o organizzazioni) con cui lavori: il contenitore a cui si collegano contatti, trattative e attività. Espongono la CRUD completa più export, import massivo e ripristino.

Prima di iniziare

Envelope delle risposte, codici di errore, limit/offset, ordinamento e advanced_filters sono comuni a tutte le risorse: vedi Introduzione alle API. Ogni richiesta richiede l'header Authorization: Bearer <accessToken>.

01L'oggetto Account

Ogni account restituito dall'API ha questa forma. Le date sono stringhe ISO 8601 in UTC; i campi non leggibili dal tuo ruolo vengono omessi dalla risposta.

AttributoTipoDescrizione
idintegerIdentificativo univoco dell'account.
namestringRagione sociale.
emailstring | nullEmail aziendale.
phonestring | nullTelefono.
websitestring | nullSito web.
industrystring | nullSettore merceologico.
statusstring | nullStato applicativo (valore libero).
owner_user_idinteger | nullUtente proprietario del record.
assigned_user_idinteger | nullUtente assegnatario.
created_byinteger | nullUtente che ha creato il record.
updated_byinteger | nullUltimo utente che l'ha modificato.
is_deletedbooleantrue se in cestino (soft delete).
created_atstringData/ora di creazione (ISO 8601).
updated_atstringData/ora ultima modifica (ISO 8601).
json · l'oggetto Account
{
  "id": 128,
  "name": "Acme S.r.l.",
  "email": "info@acme.it",
  "phone": "+39 02 1234567",
  "website": "https://acme.it",
  "industry": "Manifatturiero",
  "status": "cliente",
  "owner_user_id": 7,
  "assigned_user_id": 7,
  "created_by": 7,
  "updated_by": 7,
  "is_deleted": false,
  "created_at": "2026-07-07T15:24:00.000Z",
  "updated_at": "2026-07-07T15:24:00.000Z"
}

02Endpoint

MetodoPathAzioneCosa fa
GET/api/accountsreadElenco paginato e filtrabile.
GET/api/accounts/:idreadUn singolo account.
GET/api/accounts/:id/historyreadStorico modifiche del record.
GET/api/accounts/lookupreadOpzioni per i campi lookup (id + etichetta).
POST/api/accountscreateCrea un account.
PATCH/api/accounts/:idupdateModifica parziale.
PATCH/api/accounts/bulkupdateAggiornamento massivo.
DELETE/api/accounts/:iddeleteSoft delete.
POST/api/accounts/:id/restoreupdateRipristina un record eliminato.
GET/api/accounts/export.csv · .xlsxexportEsporta l'elenco filtrato.
POST/api/accounts/import/preview · /executecreateImport CSV.

03Elencare gli account

GET /api/accounts bearer richiesto

Restituisce gli account visibili all'utente (secondo lo scope del ruolo), paginati.

Parametri query
ParametroTipoDescrizione
limitintegeropzionaleRighe per pagina. Default 50, max 200.
offsetintegeropzionaleRighe da saltare (default 0).
sort_bystringopzionaleColonna di ordinamento (es. name, created_at).
sort_dirstringopzionaleasc o desc.
advanced_filtersstring (JSON)opzionaleArray di condizioni: vedi Filtri avanzati.
Richiesta
curl "https://crm.tuodominio.it/api/accounts?limit=2&sort_by=created_at&sort_dir=desc" \
  -H "Authorization: Bearer <accessToken>"
const res = await fetch("https://crm.tuodominio.it/api/accounts?limit=2&sort_by=created_at&sort_dir=desc", {
  headers: { Authorization: `Bearer ${accessToken}` },
});
const { data } = await res.json();
Risposta · 200
json
{
  "success": true,
  "data": {
    "items": [ { "id": 128, "name": "Acme S.r.l.",  }, { "id": 127,  } ],
    "pagination": { "limit": 2, "offset": 0, "count": 2, "sortBy": "created_at", "sortDir": "desc" }
  }
}

04Recuperare un account

GET /api/accounts/:id bearer richiesto
Parametri path
ParametroTipoDescrizione
idintegerId dell'account.
Esiti
StatoCorpo
200{ success: true, data: { …account } }
404NOT_FOUND: inesistente o fuori dal tuo scope.

05Creare un account

POST /api/accounts bearer richiesto
Parametri body
CampoTipoNote
namestringrichiestoRagione sociale. 1–255 caratteri.
emailstringopzionaleEmail aziendale, validata.
phonestringopzionaleMax 40 caratteri.
websitestringopzionaleMax 255.
industrystringopzionaleSettore. Max 120.
statusstringopzionaleStato libero. Max 40.
owner_user_idintegeropzionaleProprietario. Assegnabile solo a sé o a un sottoposto nella gerarchia dei ruoli (admin: chiunque). Vedi Utenti e team.
assigned_user_idintegeropzionaleUtente assegnatario.
Richiesta
curl -X POST https://crm.tuodominio.it/api/accounts \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Acme S.r.l.", "industry": "Manifatturiero", "email": "info@acme.it" }'
const res = await fetch("https://crm.tuodominio.it/api/accounts", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${accessToken}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ name: "Acme S.r.l.", industry: "Manifatturiero", email: "info@acme.it" }),
});
const { data } = await res.json();
Risposta · 201
json
{ "success": true, "data": { "id": 128, "name": "Acme S.r.l.", "is_deleted": false,  } }
Esiti
StatoCodiceQuando
201·Account creato; nel corpo l'oggetto completo.
422VALIDATION_ERRORname mancante o campo fuori misura.
403FORBIDDENCampo non scrivibile dal ruolo (nei details l'elenco dei campi negati).

06Aggiornare un account

PATCH/api/accounts/:idbearer richiesto

Modifica parziale: invia solo i campi da cambiare (gli stessi del body di creazione, tutti opzionali). Risponde 200 con l'oggetto aggiornato, 404 se fuori scope, 422 in validazione.

curl
curl -X PATCH https://crm.tuodominio.it/api/accounts/128 \
  -H "Authorization: Bearer <accessToken>" \
  -H "Content-Type: application/json" \
  -d '{ "status": "cliente" }'

07Eliminare e ripristinare

DELETE/api/accounts/:idbearer richiesto

Soft delete: il record viene marcato eliminato (is_deleted: true), non cancellato. Risponde 200 { deleted: true, id }.

POST/api/accounts/:id/restorebearer richiesto

Ripristina un account eliminato (richiede il permesso update). Risponde 200 con l'oggetto ripristinato.

08Aggiornamento massivo

PATCH/api/accounts/bulkbearer richiesto

Applica gli stessi valori a una lista di record. Gli id fuori dal tuo scope vengono saltati; la risposta riporta quanti record sono stati effettivamente aggiornati.

Body
json
{ "ids": [12, 15, 22], "changes": { "status": "cliente" } }
Risposta · 200
json
{ "success": true, "data": { "requested": 3, "updated": 2 } }

09Import ed export