Limiti attuali
Quello che questo servizio non fa, o fa in un modo che conviene conoscere prima di costruirci sopra. Niente qui è nascosto dietro una trattativa commerciale.
Come si comporta
| Limite | Che cosa significa in pratica |
|---|---|
| La generazione è sincrona, a meno che tu chieda la coda | La richiesta resta aperta finché il PDF è pronto: da 0,2 a circa 3 secondi per un documento tipico. Usa un timeout del client di almeno 120 secondi: sotto carico una chiamata può aspettare il suo turno, e il servizio risponde sempre entro quel tempo, con il PDF o con un codice da riprovare. Se preferisci non aspettare, chiedi la coda ("queueIfBusy": true oppure Prefer: respond-async) e interroga un id di lavoro: vedi Quando la piattaforma è occupata. La composizione in blocco è asincrona per scelta: invii un lotto e interroghi un lavoro. |
| La concorrenza ha un tetto, ed è ripartita | L'impaginazione è limitata a un numero fisso di documenti contemporanei. Una richiesta che non può partire subito aspetta qualche secondo un posto; oltre, o quando la fila è piena, è rifiutata con SERVER_BUSY, QUEUE_CAPACITY_EXCEEDED oppure — se la tua organizzazione ha già in impaginazione tutti i documenti che un'organizzazione può avere — TENANT_CONCURRENCY_LIMIT_REACHED. Tutti e tre portano Retry-After e non è stato addebitato nulla: riprovare dopo l'intervallo indicato è la risposta giusta. I documenti piccoli passano per primi, ma uno grande che ha aspettato sale, così non resta mai a secco. Le chiamate isTest sono frenate prima di tutto il resto (TEST_CAPACITY_TEMPORARILY_LIMITED) perché le prove non rallentino mai una chiamata di produzione. |
| Il contatore al minuto è in memoria | Il limite di frequenza è applicato (vedi Esiti e codici di errore), ma la finestra al minuto si azzera quando l'applicazione riparte. Un rilascio dà per poco a ogni organizzazione una finestra nuova. Può solo allentare il limite, e solo per qualche minuto. |
| I link di download sono firmati e durano poco | Un documento generato si scarica con la chiave API e l'id del documento, oppure con un link di download firmato che crei apposta (POST /api/v1/compose/documents/{id}/download-links) e consegni a un browser o a chi non ha una chiave. Un link dura 1 ora per impostazione predefinita e si può chiedere fino al massimo della tua organizzazione (48 ore se non ne impostiamo un altro, mai più di sette giorni); una richiesta più lunga è rifiutata, mai accorciata. Si può revocare subito, o rendere monouso. Vedi Link di download firmati. |
| Il corpo di una richiesta è al massimo di 25 MB | 25 MB sono 26.214.400 byte. Tutto ciò che è più grande è rifiutato alla porta con PAYLOAD_TOO_LARGE (1803, HTTP 413), prima di arrivare al servizio: su /api/* con il solito corpo di errore JSON. Nulla è stato ricevuto, conservato o addebitato. Nessun limite della tua organizzazione è più alto: anche un modello è al massimo di 25 MB, e il payload, un file caricato e un file in blocco hanno i loro limiti sotto questo. Un file mandato in base64 dentro un corpo JSON cresce di circa un terzo, quindi un modello mandato così ci sta se è sotto circa 18 MB. |
| Un acquisto di credito è al massimo di 1.000,00 EUR, IVA esclusa | Uno più grande è rifiutato con PURCHASE_AMOUNT_TOO_LARGE (1815) prima che parta qualsiasi pagamento. Fai più acquisti, oppure contattaci per un importo maggiore: vedi Credito, prezzi e IVA. |
| Gli orari sono in UTC nell'API | Ogni orario in una risposta dell'API o in un webhook è UTC (ISO 8601). La console, le email, il certificato di completamento e le esportazioni scrivono gli orari nella localizzazione della tua organizzazione: vedi Orari e fusi. |
| La formattazione di numeri e date è tua | Manda stringhe già formattate come devono apparire. Il modello decide dove va un valore e quanto spazio ha, non come è punteggiato un numero — vedi Far stare un valore. |
Che cosa non è ancora costruito
Il quadro completo, con quello che arriverà: che cosa c'è, che cosa arriverà, che cosa non c'è.
| Manca | Che cosa fare invece |
|---|---|
La validazione JSON Schema è un sottoinsieme limitato, e warn per impostazione predefinita | Una versione di modello può avere uno jsonSchema; un payload che lo viola genera un avviso (PAYLOAD_SCHEMA_VIOLATIONS) oppure, con payloadValidation: "reject", è rifiutato prima di addebitare qualsiasi cosa. Senza schema nulla è controllato, e un campo scritto male esce vuoto — ma ti viene detto: la risposta porta un avviso TEMPLATE_FIELDS_MISSING. Le parole chiave fuori dal sottoinsieme supportato, e i $ref remoti, sono rifiutati al caricamento: vedi l'elenco. |
| Nessun server MCP | Indica al tuo agente /llms-full.txt — vedi Integrare con un agente AI. Un endpoint e nessun SDK si integrano facilmente a mano. |
| Nessuna firma FEA o FEQ | Rifiutate invece che approssimate: vedi Livelli di firma. Si produce una firma elettronica semplice (FES), se vuoi con sigillo e marca temporale qualificata, e la risposta dice quale. |
Che cosa succede ai tuoi documenti
| Conservazione | Che cosa succede |
|---|---|
| I documenti generati sono cancellati dopo 12 mesi | Applicato, da una pulizia che gira una volta al giorno. La registrazione della generazione resta — che cosa è stato fatto, da quale modello e versione, quando, quanto grande — così la cronologia del consumo e le fatture restano intatte; il PDF invece se ne va. Scarica e conserva ciò che ti serve tenere. |
| I documenti di prova sono cancellati dopo 7 giorni | Un documento prodotto da una chiamata isTest è lavoro vero su un'impaginazione vera, ma non prova nulla, quindi si tiene una settimana. |
| Quello che hai inviato è conservato 12 mesi | Il payload di una generazione (quello che mostra Dettagli nella console) è cancellato con la stessa pulizia annuale, e non viene mai registrato quando la chiamata è dataless. |
| I file caricati sono conservati 30 giorni | Un'immagine o un PDF caricati per usarli con fileId si conservano 30 giorni dal caricamento (salvo un periodo diverso impostato per la tua organizzazione); ricaricare gli stessi byte sposta la data in avanti. GET /api/v1/usage indica il periodo in limits.storedFilesDays. |
| Il testo delle nostre email ed SMS è conservato da 7 a 30 giorni | Il testo di un codice di accesso o di firma e di un link di conferma è tolto 7 giorni dopo l'invio; il testo di un'email di firma (invito, promemoria, copia, avviso) 30 giorni dopo la chiusura della sua busta; qualsiasi altra email 30 giorni dopo l'invio. La registrazione del messaggio (a chi è andato, a che cosa serviva, se è arrivato, quando) è cancellata 12 mesi dopo l'invio. Non tocca mai le prove di firma qui sotto. |
| Le prove di firma si conservano molto più a lungo | La copia sigillata di una busta firmata e il suo registro degli eventi seguono un calendario di dieci anni, perché è l'obbligo legato a loro e non una comodità. È una politica a sé con una pulizia a sé — vedi Che cosa vede il firmatario. |
| Puoi chiederci di non conservare nulla | "dataless": true compone il documento e non registra né il payload né il PDF. La risposta è l'unica copia che esisterà mai. Costa lo stesso: il lavoro è stato fatto. Vedi Comporre senza lasciare traccia. |
I tuoi numeri sono nella tua console. La frequenza al
minuto, il payload, il modello e il file caricato più grandi, le pagine di un
documento, la dotazione di prova giornaliera e quanto può durare un link di download sono per
organizzazione, e quelli che valgono per te sono mostrati in
Riferimento → Limiti invece di essere dedotti da questa pagina.
Un programma legge gli stessi numeri in limits di
GET /api/v1/usage
(fra gli altri assetBytes, downloadLinks, storedFilesDays).