Vai al contenuto principale

API di Era

Endpoint, autenticazione, paginazione e limiti dell'API Era, con richieste pronte da copiare.

Ultimo aggiornamento: 8 ottobre 2026

Ancora in beta

Questi endpoint funzionano già oggi, ma l'API è ancora in evoluzione, quindi alcuni dettagli potrebbero cambiare. Controlla la data dell'ultimo aggiornamento in alto per vedere quando questa pagina è stata rivista l'ultima volta.

Avvio rapido

Prima di iniziare ti serve un account Era con almeno un istituto collegato: senza una connessione questi endpoint non hanno niente da restituire.

  1. 1

    Accedi a Era e collega un istituto, se non l'hai già fatto.

  2. 2

    Apri le tue chiavi API nella dashboard e creane una. All'inizio la maggior parte degli scope è spuntata; quelli che possono spostare denaro, fare operazioni di investimento, modificare la tua fatturazione, eliminare i tuoi documenti o creare altre chiavi no. Togli la spunta a quelli che non ti servono. Per leggere serve banking:read, per modificare qualsiasi cosa serve banking:write. Scegli anche una scadenza; non esiste un'opzione senza scadenza.

  3. 3

    Copia la chiave e conservala in un posto sicuro, come un gestore di segreti. Viene mostrata una volta sola: se la perdi, creane una nuova.

  4. 4

    Mandala in un header insieme alla tua richiesta.

cURL
curl "https://forge.era.app/api/banking/transactions?page=1&pageSize=20" \
  -H "X-API-Key: fmk_your_key_here"
Risposta · 200
{
  "transactions": [ … ],
  "pagination": {
    "currentPage": 1,
    "pageSize": 20,
    "totalItems": 412,
    "totalPages": 21
  },
  "historyWindowApplied": true,
  "historyWindowFloorDate": "2026-06-28",
  "historyWindowHiddenCount": 137,
  "historyWindowEarliestDate": "2024-03-02",
  "historyWindowDegraded": false
}

Scrivi il tuo client? Generalo dal documento OpenAPI all'indirizzo https://forge.era.app/api/openapi/public.json. Descrive ogni endpoint di questa pagina — ogni campo, ogni stato e ogni tipo di filtro e azione delle regole — ed è l'API stessa a servirlo, quindi non resta indietro.

Endpoint

Diciassette endpoint: otto in lettura e nove in scrittura.

Autenticazione

Invia la tua chiave in uno di questi due modi:

Metodi di autenticazione
Header
X-API-Key: fmk_your_key_here
Token bearer
Authorization: Bearer fmk_your_key_here

Ogni richiesta è cifrata con TLS.

Le chiavi scadono, e quando ne crei una scegli tu tra quanto. La durata massima disponibile è di 90 giorni sul piano gratuito e di 365 su uno a pagamento: non esiste un'opzione senza scadenza, quindi qualsiasi cosa tu costruisca su questo ha bisogno di un piano per ruotare la chiave prima che scada.

Header di risposta

Gli header X-RateLimit-* riportano il tuo budget giornaliero, quindi li vedrai solo su un piano che ne pubblica uno. Per ora è solo il piano gratuito. Anche lì, considerali facoltativi: una risposta senza vuol dire che il conteggio è sconosciuto, non che qualcosa sia andato storto. Ogni 429 porta Retry-After.

Header di risposta
X-RateLimit-Limit
Il budget giornaliero del tuo piano. Inviato solo sui piani che pubblicano un budget giornaliero, e mai su un 429 da un altro limite.
X-RateLimit-Remaining
Quanto resta del tuo budget giornaliero. Mai sotto lo zero. Inviato solo sui piani che pubblicano un budget giornaliero, e mai su un 429 da un altro limite.
X-RateLimit-Reset
Quando il tuo budget giornaliero libera una richiesta, come timestamp Unix in secondi. Non è quando si ricarica l'intero budget: il budget scorre, quindi le richieste tornano una alla volta. Inviato solo sui piani che pubblicano un budget giornaliero, e mai su un 429 da un altro limite. Il tetto di burst al minuto non ha un header suo. Vedi Limiti
Retry-Aftersolo su un 429
Ogni 429 porta Retry-After: aspetta quei secondi, poi riprova. Un 429 che porta anche gli header X-RateLimit-* è stato rifiutato dal budget giornaliero del piano gratuito. Un 429 senza è stato rifiutato da un altro limite, come il tetto di burst al minuto. Retry-After può andare da un secondo a 24 ore. Vedi Limiti

Errori

L'API restituisce questi codici di stato di errore:

  • 400

    Input malformato: un parametro sbagliato, un aggiornamento massivo vuoto o con più di 100 elementi, una scrittura che imposta e cancella lo stesso campo nella stessa chiamata, o una regola che non sta in piedi. Eliminare, attivare o disattivare una regola rifiuta anche qualsiasi chiave di query che non accetta, e il 400 la nomina. Creare un tag con un nome che hai già, o una categoria con uno slug già usato da una categoria visibile che hai creato, è anch'esso un 400, non un 409.

  • 401

    Nessuna chiave, o una che non si può interpretare. Inviala nell'intestazione X-API-Key o come token bearer.

  • 402

    Una quota del piano è d'intralcio. Oggi succede solo quando crei una categoria o una regola di schema. Aspettare non la sblocca, un piano più grande sì. Chiamare troppo in fretta è invece un 429.

  • 403

    La chiave non porta lo scope di cui questa chiamata ha bisogno — oppure, su una delle due scritture di transazioni, l'id appartiene a qualcun altro o non esiste affatto. L'API non distingue i due casi. Una regola della libreria di Era risponde 403 quando provi a eliminarla, o a cambiarne nome, descrizione, priorità, date o applicationScope. Cambiarne i filtri, le azioni o il gruppo dà invece un 400.

  • 404

    Qualcosa che non esiste. L'endpoint del saldo lo restituisce senza corpo per un accountGroupKey che non indica alcun account, o che non ha nemmeno la forma di una chiave. Gli endpoint delle regole lo restituiscono per una chiave di regola che non è tua. Le transazioni non restituiscono mai 404 — vedi 403.

  • 409

    Qualcos'altro ha cambiato la riga mentre stavi scrivendo — per una regola, è una version che non è più quella attuale. Rileggila e reinvia la tua scrittura. Su una regola, un 409 può anche voler dire che le sue azioni farebbero scattare le regole in un circolo; in quel caso cambia le azioni. Quando crei una categoria, un 409 arriva solo se un'altra richiesta prende lo stesso slug nello stesso momento — magari un tuo stesso nuovo tentativo. In ogni caso quello slug ora è occupato: usa la categoria che ce l'ha, o manda un altro slug.

  • 429

    Troppe richieste. Hai esaurito il budget giornaliero sul piano gratuito o raggiunto un altro limite, come il tetto di burst al minuto. Retry-After dice quanto aspettare, da un secondo a 24 ore, e, a differenza di un 402, aspettare libera la tua prossima richiesta. In Limiti trovi i numeri pubblicati e cosa ti dice un 429.

Forme di errore

La maggior parte degli errori torna nella stessa forma: statusCode, message e un oggetto errors che indica cosa non andava. Non tutti: un 401, e il 404 dell'endpoint del saldo, tornano senza alcun corpo, quindi leggi lo stato prima del corpo.

Esempio
{
  "statusCode": 403,
  "message": "One or more errors occurred!",
  "errors": {
    "generalErrors": ["Transaction does not belong to the authenticated user"]
  }
}

Errori comuni

  • Impostare un campo e cancellarlo nella stessa scrittura — 400.

  • Più di 100 id in un aggiornamento massivo — 400, e non cambia nulla. Meno di uno è lo stesso.

  • Una transazione che non è tua, o che non esiste — 403, mai 404. Quindi la risposta non ti dice mai se un id esiste, solo che non è tuo da vedere.

  • Qualcos'altro ha cambiato la riga per primo — 409.

Limiti

Due degli endpoint documentati limitano quanto puoi chiedere in una singola chiamata. Gli altri no.

Nessun tetto per chiamata non vuol dire illimitato. Le chiavi continuano a scadere, le scritture hanno comunque limiti di lunghezza dei campi, la creazione di una categoria o di una regola di schema può raggiungere una quota del piano, il tuo piano può comunque nascondere lo storico più vecchio, e ogni chiamata conta nei limiti di frequenza del tuo piano, descritti più sotto.

  • Account, saldo, riepilogo, gli elenchi di categorie e tag, la creazione di una categoria, la creazione di un tag, la scrittura di una singola transazione e ogni endpoint delle regole non hanno alcun limite di volume per chiamata. Ricevi l'intero insieme, oppure la singola riga che hai indicato — tranne l'anteprima di una regola, che conta le corrispondenze ma ne restituisce al massimo 50 chiavi e 10 campioni.

  • pageSize viene limitato, non rifiutato: chiedine più di 100 e ricevi 100 righe con un 200, chiedine meno di una e ne ricevi una. Leggi pagination.pageSize nella risposta invece di fidarti di ciò che hai inviato.

  • La scrittura massiva delle transazioni è limitata a 100 id, e a differenza di pageSize viene rifiutata anziché limitata: invia 101 e ricevi un 400, senza che nulla cambi.

  • Le chiavi scadono secondo il programma che scegli alla creazione — fino a 90 giorni nel piano gratuito, 365 in uno a pagamento. Non esiste un'opzione senza scadenza.

  • Il tuo piano può applicare un limite di finestra della cronologia che nasconde le transazioni più vecchie. La risposta delle transazioni porta i campi historyWindow che dicono se un limite si è applicato e dove è caduto.

Rate limit

Era pubblica due limiti di frequenza. Ogni piano ha un tetto di burst: un limite di richieste in qualsiasi minuto mobile. Il piano gratuito ha in più un budget giornaliero: un limite di richieste in qualsiasi arco mobile di 24 ore. Una richiesta smette di contare nel tetto di burst un minuto dopo che l'hai fatta, e nel budget giornaliero un giorno dopo. I piani a pagamento per ora non hanno un budget giornaliero pubblicato. Se superi uno dei due, o qualsiasi altro limite applicato dall'API, la chiamata torna con 429.

I limiti appartengono al tuo account, non a una chiave. Ogni chiave REST che crei attinge allo stesso tetto di burst e, sul piano gratuito, allo stesso budget giornaliero, quindi una seconda chiave non ti dà più chiamate. Le chiamate agli strumenti MCP sono contate a parte, quindi le chiamate REST e quelle MCP non consumano mai i limiti delle altre.

Limiti di frequenza per piano
PianoBudget giornalieroTetto di burst
Basic100 al giorno10 al minuto
OrganizeNessuno30 al minuto
AutomateNessuno60 al minuto
OptimizeNessuno60 al minuto
OperateNessuno120 al minuto

Per ora, i piani a pagamento non hanno un budget giornaliero pubblicato.

I piani a pagamento seguono anche l'uso ragionevole: l'API è pensata per script, dashboard e integrazioni sui tuoi dati finanziari, con un volume adatto a una persona.

Nessun header riporta il tetto di burst, su nessun piano, quindi regola il ritmo sulla tabella. Sul piano gratuito, X-RateLimit-Remaining può segnare ben più di zero subito prima che un burst torni con 429.

Cosa ti dice un 429

Quale limite ti ha rifiutato. Un 429 con gli header X-RateLimit-* viene dal budget giornaliero del piano gratuito; uno senza, da un altro limite, come il tetto di burst. Il body è in formato problem-details, e il suo campo detail dice quando si libera la tua prossima richiesta. Se ti ha rifiutato il budget giornaliero o il tetto di burst, nomina anche quel limite, quanto consente e il piano che lo alza o lo toglie, oppure che sei già sul più alto. È scritto per le persone, quindi leggi gli header invece di analizzarlo.

Risposta 429, budget giornaliero
{
  "type": "https://httpstatuses.com/429",
  "title": "Too Many Requests",
  "status": 429,
  "detail": "You've used up your daily budget of 100 requests. Your next request frees up at 2026-09-16T09:00:00Z. The Organize plan removes it."
}

Ogni 429 contiene anche Retry-After: un numero intero di secondi, da un secondo a 24 ore. L'attesa del tetto di burst è al massimo un minuto; il budget giornaliero del piano gratuito può chiedere tutte le 24 ore. Una chiamata rifiutata non conta in nessun limite, ma non riprovare prima del tempo: aspetta che scada Retry-After a ogni 429. Con il budget giornaliero e il tetto di burst, un tentativo anticipato viene rifiutato di nuovo, e quando l'attesa finisce si libera una richiesta, non tutto il limite. Inviala e leggi cosa torna: un altro Retry-After se viene rifiutata oppure, sul piano gratuito, gli header una volta servita.

I limiti di frequenza non proteggono una chiave che hai perso di vista. Una chiave trapelata attinge agli stessi limiti di ogni altra chiave del tuo account, e può fare tutto ciò che i suoi scope consentono. Revocarla non rimborsa le chiamate che ha già fatto. Se hai un dubbio su una chiave, revocala. Vedi Sicurezza e gestione delle chiavi più sotto.

Convenzioni

I campi delle risposte sono in camelCase. I nomi dei parametri di query non distinguono maiuscole e minuscole, ma per il resto vanno scritti esattamente come li mostra questa pagina, quindi pageSize e PageSize funzionano entrambi. La specifica pubblicata ne scrive la maggior parte in PascalCase. La maggior parte degli endpoint ignora una chiave di query che non accetta, quindi un filtro scritto male semplicemente non filtra: controlla cosa torna indietro. Le chiamate per eliminare, attivare e disattivare una regola sono l'eccezione: rifiutano qualsiasi altra chiave con un 400 che la nomina. Invia revert_retroactively con il trattino basso — revertRetroactively viene rifiutato — e solo nell'eliminazione e nella disattivazione, perché l'attivazione accetta solo version.

Un campo che indica un giorno di calendario è in formato YYYY-MM-DD. Un campo che indica un istante è in ISO 8601 con l'offset.

pageSize viene limitato, non rifiutato. Chiedi 500 e ottieni 100 righe e un 200, non un errore; chiedine meno di una e ne ottieni una. page ha un minimo ma non un massimo: sotto uno diventa la prima pagina, e oltre l'ultima ottieni una pagina vuota con un 200, non l'ultima. Leggi quindi pagination.currentPage, pagination.pageSize e pagination.totalPages invece di fidarti di quello che hai mandato.

Una risposta può portare campi che questa pagina non elenca. Ignora quelli che non riconosci invece di fallire: è questo che tiene in piedi il tuo client mentre l'API cresce.

REST è semplice HTTP, quindi per chiamarlo non serve nessun SDK: va bene qualsiasi linguaggio con un client HTTP. Non c'è niente da installare.

Versioni e modifiche

L'API è in beta, quindi quello che è documentato qui può cambiare: un endpoint, un campo o il comportamento di una chiamata.

Non c'è un numero di versione nel percorso né un header di versione. Ogni endpoint ha una sola versione attiva, ed è quella documentata qui.

Changelog

Cosa è cambiato nella Era Developer Platform, inclusa l'API Era, dal più recente. Non ci sono email né feed, quindi controlla il changelog quando pianifichi lavoro sull'API.

Sicurezza e gestione delle chiavi

Approvare un agente crea una chiave

Quando approvi un agente tramite OAuth, Era crea una chiave API per lui. Finisce nella stessa lista della dashboard delle chiavi che crei tu, con un nome che Era genera dal nome del client stesso.

Come viene chiamata

Auto -- Claude

Porta esattamente gli scope che hai approvato su quella schermata, e nient'altro. Revocala dalla dashboard e l'agente non potrà ottenere nuovo accesso finché non lo approvi di nuovo. Un token che ha già continua a funzionare fino alla scadenza, al massimo un'ora.

Le scritture compaiono nel tuo registro attività, le letture no

La creazione e la revoca di una chiave compaiono entrambe nel tuo registro attività, e lo stesso vale per ogni chiamata a uno strumento che un agente fa tramite MCP. Compare anche una scrittura REST — come la modifica che ha fatto, per esempio un tag creato o una transazione modificata. Una lettura REST non crea alcuna voce. Era registra queste voci su ogni piano, ma per leggere il registro completo serve Organize o superiore: sotto vedi solo le voci più recenti. Le voci di una scrittura indicano il tuo account, non la chiave che ha fatto la modifica.

Se hai un dubbio su una chiave, revocala. Una chiave creata da te smette di funzionare su REST e su MCP dalla sua richiesta successiva. La chiave di un agente smette subito di ottenere nuovo accesso, e qualsiasi token che ha già scade entro un'ora. Crearne una nuova richiede un minuto.

Altre cose da sapere prima di affidarti a una chiave.
Gli scope sono grossolani
banking:read copre molto più delle letture di questa pagina — lo stesso scope copre anche il resto delle letture del tuo account: saldi, partecipazioni, connessioni, spese. Un unico scope, non esiste un'opzione più stretta. Anche gli scope di scrittura sono nel menu, come quelli di lettura — quindi tratta qualsiasi chiave come una password. Agisce come il tuo account Era, non come una sua parte.
banking:write modifica Era, non la tua banca
banking:write modifica solo ciò che Era conserva, non ciò che ha la tua banca. Non può spostare denaro né fare pagamenti. Come banking:read, banking:write è un unico scope ampio. Copre le modifiche che puoi fare tu stesso in Era, come la categoria, il nome del commerciante, la nota e lo stato di revisione di una transazione; categorie, tag e regole di automazione; i nomi che Era mostra per i tuoi conti e quali conti vedi; e i conti manuali con i loro saldi e le loro transazioni. Può avviare una nuova connessione, ma l'accesso alla tua banca lo fai sempre tu, nel flusso del fornitore e non tramite la chiave. Può chiedere una nuova sincronizzazione, che si limita a leggere, o scollegare un istituto. Scollegarlo chiude il collegamento di Era, e il tuo conto in banca resta aperto e invariato.
Gli scope non si aggiornano
Gli scope di una chiave si fissano nel momento in cui la crei e non cambiano più. Questo conta per tutto ciò che uno scope copre ma che non è ancora attivo: concedi social:write oggi e la chiave ce l'ha ancora quando arrivano le viste condivise. Concedi quello che stai usando adesso, non quello che potresti usare più avanti.
Nessuna approvazione richiesta
Creare una chiave non passa da nessuna revisione né lista d'attesa: nessuno in Era approva la richiesta. Viene scritta nel tuo registro attività non appena la crei, quindi una chiave che non riconosci è facile da individuare.
Le credenziali della banca restano fuori portata
Una chiave non può arrivare alle credenziali della tua banca, perché Era non le ha mai. Le inserisci nel flusso di connessione gestito dal fornitore di dati, non in una schermata di Era: quello che Era conserva dopo è un token di accesso per singola connessione, cifrato a riposo con AES-256, che puoi buttare via scollegando l'istituto.
Era conserva solo un hash della tua chiave
La tua chiave è fatta di 256 bit di dati casuali. Era la sottopone a hash SHA-256 e conserva solo l'hash, quindi se la perdi, revocala e creane un'altra.

Risorse principali

Conti

GET/banking/accounts
Scope necessariobanking:read

Tutti i conti che riesci a vedere, su ogni istituto collegato, con accanto il conteggio di quelli rimasti fuori: excludedAccountCount, diviso in tierExcludedAccountCount per i conti che il limite di conti del tuo piano lascia fuori e userExcludedAccountCount per quelli che hai nascosto. accountLimit è quanti conti mostra il tuo piano alla volta, su tutte le tue connessioni. accountLimitLift indica il piano più economico con spazio per tutti i conti che non hai nascosto, ed è null quando il tuo piano non lascia fuori niente. Ogni conto porta con sé il suo accountGroupKey — il valore che l'endpoint del saldo accetta nel percorso — e il connectionId a cui appartiene, quindi è da questa chiamata che si parte. Accetta connectionId per restringere a una sola connessione (i conteggi si restringono con lui, accountLimit e accountLimitLift no) e includeExcluded per far rientrare i conti che il tuo piano lascia fuori e quelli che hai nascosto.

Parametri di query
connectionIdfacoltativo
Restringe l'elenco ai conti di una sola connessione.
includeExcludedfacoltativo
Include anche i conti che il tuo piano lascia fuori e quelli che hai nascosto, con i saldi trattenuti. Il campo visibility di ogni riga ti dice quale dei due: tierExcluded o userExcluded, e visible per gli altri. L'endpoint del saldo scrive questi valori in modo diverso, quindi non usare lo stesso parser per entrambi. excludedAccountCount torna comunque quando questo è true, e quei conti sono già nella lista, quindi non sommare le due cose. Il default è false.
Risposta · 200
{
  "accounts": [
    {
      "accountGroupKey": "uagr_7f3c9a21",
      "connectionId": "ucon_4b19e02c",
      "name": "Everyday Checking",
      "currentBalance": 4820.16,
      "supportsTransactions": true,
      …
    }
  ],
  "excludedAccountCount": 1
}

Su un conto che hai nascosto o che il tuo piano esclude, i campi del saldo tornano null e non zero: null vuol dire trattenuto, non vuoto. supportsTransactions è null nello stesso spirito: vuol dire che Era non può dirlo, mai che la risposta sia no. Lo stesso vale per i campi del piano: se Era non è riuscita a leggere il tuo piano in quella chiamata, tierExcludedAccountCount, userExcludedAccountCount, accountLimit e accountLimitLift tornano tutti null. accountLimit è null anche su un piano senza limite di conti, e accountLimitLift quando nessun piano ha più spazio o quando il tuo piano non lascia fuori niente.

Saldo di un conto

GET/banking/accounts/{accountId}/balance
Scope necessariobanking:read

One account's balance, with the credit fields filled in when the account is a liability. The path takes that account's accountGroupKey — the same value /banking/accounts returns for it. The key is not checked for shape before the lookup, so a malformed key and an unknown one answer the same way.

Risposta · 200
{
  "accountGroupKey": "uagr_7f3c9a21",
  "currentBalance": 4820.16,
  "availableBalance": 4712.03,
  "creditLimit": null,
  "currencyCode": "USD",
  "availableCredit": null,
  "asOf": "2026-08-11T09:32:00Z",
  "visibility": null
}

Un conto nascosto, o uno la cui connessione è stata interrotta, risponde comunque 200 — con i campi del saldo a null. Un 404 significa che il conto davvero non c'è, oppure che la chiave non aveva la forma di una chiave. Qui tieni d'occhio il campo visibility: è null quando il conto è visibile, tier_excluded quando il limite di conti del tuo piano lo lascia fuori, user_excluded quando l'hai nascosto tu e connection_severed quando la sua connessione è stata interrotta. Con tier_excluded, accountLimit è il limite del tuo piano e accountLimitLift indica il piano più economico con spazio per tutti i conti che non hai nascosto, questo compreso. accountLimitLift è null in ogni altro stato, e con connection_severed anche accountLimit è null.

Riepilogo dei conti

GET/banking/accounts/summary
Scope necessariobanking:read

I totali sui conti che riesci a vedere, per impostazione predefinita quelli reali: totalAssets, totalLiabilities e netWorthHint, che è il primo meno il secondo. Passa simulationModes per scegliere quali modalità contano: l'elenco dei conti e i totali coprono solo quelle che indichi. includedSimulationModes indica quali modalità coprono, in ogni risposta. simulationExcludedAccountCount conta i conti che riesci a vedere e che sono stati lasciati fuori a causa della loro modalità. totalHiddenCount è un conteggio a parte: i conti che il tuo piano o la tua impostazione di visibilità nasconde, in qualsiasi modalità, e mai quelli che simulationModes ha lasciato fuori.

Parametri di query
simulationModesfacoltativo
Quali tipi di conto sommare: live per i soldi veri, paper per il conto di prova di un broker, scenario per uno ipotetico. Ripeti il parametro per chiederne più di uno, come in simulationModes=live&simulationModes=paper. Se lo ometti, vengono sommati solo i conti reali. Un valore vuoto o sconosciuto viene rifiutato con un 400 che elenca quelli consentiti.
Risposta · 200
{
  "userId": "7d1c0b93a8e24f60",
  "accounts": [ … ],
  "totalVisibleCount": 6,
  "totalHiddenCount": 2,
  "totalAssets": 48210.75,
  "totalLiabilities": 9327.40,
  "netWorthHint": 38883.35,
  "includedSimulationModes": [ "live" ],
  "simulationExcludedAccountCount": 0,
  "computedAt": "2026-08-11T09:32:00Z"
}

netWorthHint conta solo i conti presenti in questa risposta, e due conteggi ti dicono cosa lascia fuori. simulationExcludedAccountCount sono i conti fuori dalle modalità richieste. totalHiddenCount sono i conti che ti vengono nascosti in qualsiasi modalità. Si divide in due: tierExcludedAccountCount per quelli che il limite di conti del tuo piano lascia fuori, e userExcludedAccountCount per quelli che hai nascosto tu. Entrambi sono null se Era non è riuscita a leggere il tuo piano in quella chiamata. accountLimitLift indica il piano più economico che riporta dentro i primi, ed è null quando non ce ne sono. Tratta netWorthHint come una cifra di partenza, non come un patrimonio netto definitivo.

Transazioni

GET/banking/transactions
Scope necessariobanking:read

Le tue transazioni, una pagina alla volta, avvolte in un contenitore che porta accanto i conteggi di paginazione. Accetta page e pageSize (100 è il massimo), più filtri opzionali per conto, intervallo di date, regole applicate e tag assegnati.

Parametri di query
accountIdfacoltativo
Restringe alle transazioni di un conto, tramite il suo accountGroupKey.
fromDatefacoltativo
Solo transazioni da questa data in poi.
toDatefacoltativo
Solo transazioni fino a questa data.
pagefacoltativo
Numero di pagina, a partire da 1. Il default è 1; qualsiasi valore sotto 1 viene letto come 1, e una pagina oltre l'ultima torna vuota.
pageSizefacoltativo
Righe per pagina. Il default è 50, limitato tra 1 e 100.
sortByfacoltativo
Campo per l'ordinamento: transactionDate, amount, description, category o merchantName.
sortDirectionfacoltativo
asc o desc. Il default è decrescente.
categoryKeysfacoltativo
Only transactions in these categories, by their fcat_ keys. Takes a list, not a single key, and a transaction matches if its effective category is any one of them. Send the literal "uncategorized" to select the transactions that have no category at all.
searchfacoltativo
Ricerca full-text su commerciante, descrizione, categoria, nome del conto e importo.
ruleIdsfacoltativo
Solo transazioni toccate da una regola di automazione, tramite la chiave della regola.
tagKeysfacoltativo
Solo transazioni che portano uno di questi tag.
reviewStatusesfacoltativo
needs_review, reviewed o flagged. Accetta un elenco; una transazione corrisponde se il suo stato di revisione è uno di questi.
includeChildrenfacoltativo
With a category filter set, also include transactions in the subcategories of every key you passed. Defaults to false.
includePendingfacoltativo
Restituisce anche gli addebiti in sospeso degli ultimi 7 giorni, contrassegnati con isPending. Il default è false. Le righe in sospeso sono di sola lettura.
Risposta · 200
{
  "transactions": [ … ],
  "pagination": {
    "currentPage": 1,
    "pageSize": 20,
    "totalItems": 412,
    "totalPages": 21
  },
  "historyWindowApplied": true,
  "historyWindowFloorDate": "2026-06-28",
  "historyWindowHiddenCount": 137,
  "historyWindowEarliestDate": "2024-03-02",
  "historyWindowDegraded": false
}

Non c'è nessuna chiamata che legga una singola transazione tramite il suo id. GET /banking/transactions/{id} risponde 405 con Allow: PUT, perché quel percorso serve solo a modificare una transazione. Per leggerne una, chiedi l'elenco con filtri che la restringano — accountId impostato sul suo accountGroupKey, fromDate e toDate entrambi impostati sulla sua transactionDate, e search sul nome del commerciante o sull'importo — poi trovala tramite il suo id in ciò che torna indietro. Se è un addebito in sospeso recente, aggiungi includePending.

Il tuo piano può applicare un limite alla finestra di cronologia, che nasconde le transazioni più vecchie di quella soglia. È per questo che la risposta porta con sé i campi historyWindow: historyWindowApplied ti dice che un limite ha davvero nascosto qualcosa, historyWindowFloorDate è dove è caduto, historyWindowHiddenCount è quante righe ci sono dietro e historyWindowEarliestDate è fin dove arriva davvero la tua cronologia. Senza di loro un risultato corto è indistinguibile da un conto senza transazioni più vecchie. Due di questi cambiano il codice che scrivi: historyWindowHiddenCount può essere null anche quando un limite è stato applicato, quindi leggi null come sconosciuto e non come zero; e quando historyWindowDegraded è true, su quella lettura Era non è riuscita a confermare il tuo piano, quindi la data del limite è una stima e non un dato certo. Su una lettura a pagamento con il piano confermato non si applica nessun limite e historyWindowApplied torna false. Anche il limite di conti del tuo piano lascia fuori delle transazioni: tierExcludedAccountCount ti dice quanti dei tuoi conti tiene fuori da questa lettura, e userExcludedAccountCount quanti ne hai nascosti, entrambi ristretti al conto su cui filtri, se ne filtri uno. Entrambi sono null quando Era non è riuscita a leggere il tuo piano in quella chiamata.

Scorrere una cronologia lunga consuma richieste. Il tuo piano limita quanto velocemente puoi chiamare e, sul piano gratuito, quante chiamate hai al giorno; i piani a pagamento funzionano con un uso ragionevole. In Limiti trovi i numeri per piano, gli header di limite e cosa ti dice un 429.

Modifica una transazione

Su una transazione puoi sovrascrivere quattro cose: la sua categoria, il nome del commerciante, una nota tua e il suo stato di revisione. Manda solo quelle che stai cambiando — tutto ciò che ometti resta com'è. L'id nel percorso è la chiave utgr_ della transazione. Serve banking:write invece di banking:read, ma modifica solo la copia della transazione in Era: quella nella tua banca resta com'era.

PUT/banking/transactions/{id}
Scope necessariobanking:write
Corpo della richiesta
categoryKeyfacoltativo
La chiave fcat_ della categoria da assegnare. Ometti il campo e la transazione conserva la categoria che ha.
merchantNamefacoltativo
Un nome del commerciante scelto da te, fino a 1000 caratteri. Ometti il campo e il nome attuale resta invariato.
descriptionfacoltativo
Una nota tua su questa transazione, fino a 5000 caratteri. Ometti il campo e la nota attuale resta invariata.
clearCategoryfacoltativo
Rimuove la tua sovrascrittura della categoria, così torna a valere la categorizzazione di Era. Il default è false.
clearMerchantNamefacoltativo
Rimuove la tua sovrascrittura del nome del commerciante, così torna il nome che ha mandato la tua banca. Il default è false.
clearDescriptionfacoltativo
Rimuove la tua sovrascrittura della descrizione, così torna la descrizione che ha mandato la tua banca. Il default è false.
reviewStatusfacoltativo
Impostalo su needs_review, reviewed o flagged.
clearReviewStatusfacoltativo
Rimuove la tua sovrascrittura dello stato di revisione. Il default è false.
Risposta · 200
{
  "transaction": { … }
}

Ricevi indietro l'intera transazione aggiornata, nella stessa forma restituita dall'elenco qui sopra — non ripetuta qui, perché è grande e cambia ancora finché l'API è in beta. Impostare un campo e cancellarlo nella stessa chiamata dà 400. Una transazione che non è tua, o che non esiste affatto, dà 403 — l'API non distingue i due casi. E se qualcos'altro ha modificato la stessa riga mentre stavi scrivendo, ricevi 409: rileggila e rimandala. Per rileggerla più tardi, usa l'elenco qui sopra: questo percorso accetta solo PUT, e un GET su di esso risponde 405.

Modifica fino a 100 alla volta

Le stesse quattro sovrascritture, applicate a un elenco di transazioni in un'unica chiamata. Ogni id nell'elenco riceve le stesse modifiche — non c'è variazione per singola transazione. Serve banking:write invece di banking:read, ma modifica solo le copie di quelle transazioni in Era: quelle nella tua banca restano com'erano.

PUT/banking/transactions/bulk
Scope necessariobanking:write
Corpo della richiesta
transactionIds
Le chiavi utgr_ delle transazioni da modificare. Almeno una, e non più di 100. Oltre 100 viene rifiutato invece che troncato — a differenza di pageSize qui sopra, ricevi un 400 e non cambia nulla.
categoryKeyfacoltativo
La chiave fcat_ della categoria da assegnare. Ometti il campo e la transazione conserva la categoria che ha.
merchantNamefacoltativo
Un nome del commerciante scelto da te, fino a 1000 caratteri. Ometti il campo e il nome attuale resta invariato.
descriptionfacoltativo
Una nota tua su questa transazione, fino a 5000 caratteri. Ometti il campo e la nota attuale resta invariata.
clearCategoryfacoltativo
Rimuove la tua sovrascrittura della categoria, così torna a valere la categorizzazione di Era. Il default è false.
clearMerchantNamefacoltativo
Rimuove la tua sovrascrittura del nome del commerciante, così torna il nome che ha mandato la tua banca. Il default è false.
clearDescriptionfacoltativo
Rimuove la tua sovrascrittura della descrizione, così torna la descrizione che ha mandato la tua banca. Il default è false.
reviewStatusfacoltativo
Impostalo su needs_review, reviewed o flagged.
clearReviewStatusfacoltativo
Rimuove la tua sovrascrittura dello stato di revisione. Il default è false.
Risposta · 200
{
  "transactions": [ … ]
}

Ricevi indietro le transazioni aggiornate, nella stessa forma restituita dall'elenco qui sopra. Impostare un campo e cancellarlo nella stessa chiamata dà 400, e lo stesso vale per un elenco vuoto. Un elenco che contiene una transazione che non è tua, o che non esiste affatto, dà 403 per l'intera chiamata — non viene modificato nulla. Se qualcos'altro ha modificato una di quelle righe mentre stavi scrivendo, ricevi 409: rileggile e rimandale.

Categorie

GET/banking/categories
Scope necessariobanking:read

L'intera tassonomia delle categorie: ogni insieme di categorie, con le sue sottocategorie annidate dentro. La tassonomia è condivisa, non è per singolo conto.

Risposta · 200
{
  "packs": [
    {
      "packSlug": "default",
      "packName": "Era default categories",
      "isDefault": true,
      "categories": [
        {
          "projectionKey": "fcat_food_dining",
          "categoryName": "Food & dining",
          "isTopLevel": true,
          "children": [ … ]
        }
      ]
    }
  ],
  "meterLimit": 25,
  "canCreateCustomCategories": true
}

Aggiungi una categoria

Una categoria definita dall'utente sotto un genitore esistente. Serve banking:write invece di banking:read, ma modifica solo le tue categorie in Era: nella tua banca non cambia nulla.

POST
Scope necessariobanking:write
Corpo della richiesta
slug
Identificatore adatto a un URL — lettere minuscole, numeri e trattini, da 2 a 50 caratteri, e unico tra tutte le categorie visibili che hai creato, non solo sotto una stessa categoria padre. Lo slug di una categoria che hai nascosto o eliminato non è occupato: crearne una con esso fa tornare quella categoria, con la sua vecchia chiave.
parentCategoryKey
La chiave fcat_ della categoria sotto cui questa viene annidata.
name
Nome visualizzato.
descriptionfacoltativo
Descrizione facoltativa.
iconNamefacoltativo
Nome icona facoltativo.
spendingTypefacoltativo
Classificazione di spesa facoltativa.
displayOrderfacoltativo
Posizione d'ordine facoltativa tra le categorie sorelle.
assignmentEligibilityfacoltativo
Regola facoltativa su quali transazioni può ricevere questa categoria.
sourceSystemKeysfacoltativo
Elenco facoltativo di chiavi di categorie esistenti le cui transazioni dovranno essere instradate qui d'ora in poi.
applyRetroactivelyfacoltativo
Se true, rivaluta anche le transazioni passate secondo il nuovo instradamento. Il default è false.
Risposta · 201
{
  "categoryKey": "fcat_side_hustle_9f2a",
  "overlayProjectionKey": "fcov_9f2a1c",
  "action": "created",
  "isQuotaExceeded": false,
  "createdMappingRuleKeys": [ … ],
  …
}

La risposta porta anche retroactiveAffectedCount, mergeSourcesHiddenCount e mergeSourcesTotalCount, che questa pagina non tratta, più isQuotaExceeded, quotaExceededMessage e meterGate, che su una categoria creata valgono sempre false, null e null. Se la quota del tuo piano rifiuta la creazione, ricevi invece un 402 senza nessuno di quei campi: il suo corpo è statusCode, message ed errors.generalErrors, la cui unica voce ti dice quale limite hai raggiunto. Creare una categoria con uno slug già usato da una delle categorie visibili che hai creato dà 400, non 409. Il 409 che questa chiamata dichiara è riservato a una corsa rara: due richieste che creano lo stesso slug nello stesso momento. In entrambi i casi quello slug è occupato: mandane un altro o usa la categoria che ce l'ha.

Tag

GET/banking/tags
Scope necessariobanking:read

Tutti i tag del tuo account, in un unico elenco. Nessuna paginazione: una sola risposta li restituisce tutti.

Parametri di query
tagTypefacoltativo
Filtra per origine del tag: user, system o auto.
includeDeletedfacoltativo
Include i tag eliminati. Il default è false.
Risposta · 200
{
  "tags": [
    {
      "tagKey": "utag_9c2f01ab",
      "name": "business-expense",
      "displayName": "Business expense",
      "tagType": "user",
      "color": "#6DC6BA",
      "transactionCount": 42
    }
  ]
}

Crea un tag

Un nuovo tag, normalizzato: senza spazi all'inizio e alla fine, in minuscolo e con ogni sequenza di spazi trasformata in un solo trattino. Serve banking:write invece di banking:read, ma modifica solo i tuoi tag in Era: nella tua banca non cambia nulla. I tag di sistema non si possono creare tramite l'API; i tag user e auto sì.

POST
Scope necessariobanking:write
Corpo della richiesta
name
Il nome canonico del tag.
displayNamefacoltativo
Nome visualizzato facoltativo. Il default è il nome canonico.
tagTypefacoltativo
user or auto. Defaults to user. system is refused — it is reserved for tags Era creates itself.
colorfacoltativo
Colore esadecimale facoltativo per la visualizzazione.
iconfacoltativo
Nome icona facoltativo.
Risposta · 201
{
  "tag": {
    "tagKey": "utag_9c2f01ab",
    "name": "business-expense",
    "displayName": "Business expense",
    "tagType": "user",
    "version": 1,
    "createdAt": "2026-08-26T09:15:00Z"
  }
}

Creare un tag che hai già dà 400, non 409, con un errore che lo nomina. I nomi vengono confrontati dopo la normalizzazione, quindi Coffee Shop e coffee-shop sono lo stesso tag. Per usarlo, cercalo nell'elenco qui sopra invece di crearlo di nuovo.

Regole

GET/banking/rules
Scope necessariobanking:read

Tutte le regole di automazione del tuo account — quelle che hai creato tu e quelle che Era ti ha impostato dalla sua libreria di regole — ciascuna con le sue condizioni (filters), ciò che fa (actions), se è attiva e la sua versione. Nessuna paginazione: una sola risposta le restituisce tutte. Le regole disattivate restano fuori, a meno che tu non le chieda.

Parametri di query
includeInactivefacoltativo
Restituisce anche le regole disattivate. Il default è false.
Risposta · 200
{
  "rules": [
    {
      "id": "rule_4c1e7a90",
      "ruleName": "Coffee shops",
      "isActive": true,
      "version": 3,
      "priority": 10,
      "filters": [{ "type": "merchant_match", "pattern": "Blue Bottle", "mode": "contains" }],
      "actions": [{ "type": "set_category", "categoryKey": "fcat_coffee_shops", "categoryDisplayName": "Coffee shops" }],
      "source": "user",
      "matchedTransactionCount": 42,
      …
    }
  ]
}

filters e actions sono elenchi di oggetti tipizzati. Ognuno indica il suo tipo in un campo type — merchant_match o category tra i filtri, set_category o add_tag tra le azioni — e il documento OpenAPI collegato nell'avvio rapido elenca ogni tipo con i campi che accetta.

Crea una regola

Una nuova regola di automazione: condizioni che selezionano transazioni, e cosa succede a ognuna di quelle che le soddisfano. Da quel momento gira su ogni nuova transazione e, se lo chiedi, anche su quelle che hai già. Serve banking:write invece di banking:read, ma modifica solo le tue regole e transazioni in Era: nella tua banca non cambia nulla.

POST
Scope necessariobanking:write
Corpo della richiesta
ruleName
Un nome per la regola.
descriptionfacoltativo
Una nota facoltativa su a cosa serve la regola.
priorityfacoltativo
Dove gira la regola tra le altre: la più alta va per prima, e quando due regole imposterebbero la stessa cosa su una transazione vince la più alta. Il default è zero.
filters
Le condizioni, come elenco di oggetti filtro tipizzati — ognuno indica il suo tipo in un campo type. Una transazione deve soddisfarle tutte; annida filtri and, or e not per combinarle diversamente. Almeno una. Un filtro account_type che indica tipi di conto funziona solo su una regola di schema; su una regola di transazione viene rifiutato con un 400.
actions
Cosa succede a ogni transazione che la regola intercetta, come elenco di oggetti azione tipizzati: impostare una categoria, aggiungere o togliere un tag, rinominare il commerciante, riscrivere la descrizione, impostare uno stato di revisione, nasconderla o segnarla come trasferimento. Almeno una, e non più di una per tipo, tranne le azioni sui tag. Ogni tag deve già esistere e può comparire una sola volta.
isActivefacoltativo
Se la regola parte attiva. Il default è true.
applyRetroactivelyfacoltativo
Applica la regola anche alle transazioni che hai già, non solo a quelle nuove. Ha effetto solo se la regola parte attiva. Il default è false.
appliesFromfacoltativo
Solo le transazioni in questa data o successive.
appliesTofacoltativo
Solo le transazioni in questa data o precedenti.
applicationScopefacoltativo
Quando gira la regola: prospective solo per le transazioni nuove, retroactive quando viene applicata a quelle esistenti, o both. Il default è both.
ruleScopefacoltativo
transaction, il default, valuta le transazioni una alla volta. pattern individua uno schema su più transazioni — un addebito ricorrente, una coppia di trasferimenti — descritto da patternSpec.
triggerModefacoltativo
Per una regola di schema, quando cercare lo schema: onEachTransaction, onBatchComplete, onSchedule o onDemand. Il default è onEachTransaction.
patternSpecfacoltativo
Per una regola di schema, lo schema da cercare, come oggetto tipizzato. Obbligatorio quando ruleScope è pattern.
windowDaysfacoltativo
Per una regola di schema, quanti giorni indietro guardare per il resto dello schema, tra 1 e 365. Obbligatorio quando ruleScope è pattern.
windowLookaheadDaysfacoltativo
Per una regola di schema, quanti giorni avanti guardare per il resto dello schema.
windowExcludeTriggerAccountfacoltativo
Per una regola di schema, esclude dalla ricerca il conto della transazione che ha avviato il controllo. Il default è false.
groupfacoltativo
Il gruppo in cui archiviare la regola: spendingHabits, problemsAndAnomalies, incomeAndTransfers, subscriptionsAndRecurring o taxAndRecordKeeping. Omettilo per non archiviarla in nessuno. categoryMapping è riservato alle regole che crea Era stessa, e viene rifiutato con un 400.
Risposta · 201
{
  "rule": { … },
  "retroactiveStatus": "completed",
  "affectedTransactionCount": 18
}

retroactiveStatus è null, a meno che tu non abbia chiesto alla chiamata di applicare la regola alle transazioni che avevi già, o di annullare ciò che ha fatto. completed vuol dire che quel lavoro è finito prima della risposta; in_progress, che è ancora in corso, quindi affectedTransactionCount non è ancora definitivo; queue_full, che la coda era piena e non è partito — la modifica alla regola è stata comunque salvata; partial_success, che solo una parte è andata a buon fine — alcune modifiche non sono state salvate, o solo una parte del lavoro è stata messa in coda.

Prova una regola

Prova le condizioni di una regola sulle tue transazioni recenti e ti dice cosa intercetterebbero, senza salvare nulla: quante corrispondono su quante controllate, fino a 50 delle chiavi delle corrispondenze e fino a 10 campioni. Una regola di transazione controlla gli ultimi 90 giorni, al massimo 5000 transazioni, e i suoi campioni riportano commerciante, importo e data. I campioni di una regola di schema riportano detectionReason, il motivo per cui lo schema è stato rilevato (che può essere vuoto), e nessun commerciante, importo o data. Non viene scritto nulla, quindi basta banking:read.

POST/banking/rules/preview
Scope necessariobanking:read
Corpo della richiesta
filters
Le condizioni, come elenco di oggetti filtro tipizzati — ognuno indica il suo tipo in un campo type. Una transazione deve soddisfarle tutte; annida filtri and, or e not per combinarle diversamente. Almeno una. Un filtro account_type che indica tipi di conto funziona solo su una regola di schema; su una regola di transazione viene rifiutato con un 400.
ruleScopefacoltativo
transaction, il default, valuta le transazioni una alla volta. pattern individua uno schema su più transazioni — un addebito ricorrente, una coppia di trasferimenti — descritto da patternSpec.
patternSpecfacoltativo
Per una regola di schema, lo schema da cercare, come oggetto tipizzato. Obbligatorio quando ruleScope è pattern.
windowDaysfacoltativo
Per una regola di schema, quanti giorni indietro guardare per il resto dello schema, tra 1 e 365. Obbligatorio quando ruleScope è pattern.
Risposta · 200
{
  "matchCount": 12,
  "totalEvaluated": 418,
  "matchingGroupKeys": ["utgr_5d0e2b77", … ],
  "sampleMatches": [
    {
      "groupKey": "utgr_5d0e2b77",
      "merchantName": "Blue Bottle Coffee",
      "amount": -6.25,
      "currency": "USD",
      "transactionDate": "2026-09-12"
    },
    …
  ]
}

Modifica una regola

Sostituisce la definizione di una regola con quella che mandi, quindi manda ogni campo che vuoi mantenere — non solo quelli che cambi. Il ruleId nel percorso è l'id che restituisce l'elenco delle regole, e version deve essere quella che hai letto per ultima. Su una regola della libreria di Era può cambiare solo userOverrides: rimanda tutto il resto come te l'ha restituito l'elenco. Serve banking:write invece di banking:read, ma modifica solo le tue regole e transazioni in Era: nella tua banca non cambia nulla.

PUT/banking/rules/{ruleId}
Scope necessariobanking:write
Corpo della richiesta
versionfacoltativo
La versione della regola come l'hai letta l'ultima volta. Deve corrispondere alla versione attuale, altrimenti la chiamata viene rifiutata con un 409 — ometterla quindi non salta il controllo, lo fa fallire.
ruleName
Un nome per la regola.
descriptionfacoltativo
Una nota facoltativa su a cosa serve la regola.
priorityfacoltativo
Dove gira la regola tra le altre: la più alta va per prima, e quando due regole imposterebbero la stessa cosa su una transazione vince la più alta. Il default è zero.
filters
Le condizioni, come elenco di oggetti filtro tipizzati — ognuno indica il suo tipo in un campo type. Una transazione deve soddisfarle tutte; annida filtri and, or e not per combinarle diversamente. Almeno una. Un filtro account_type che indica tipi di conto funziona solo su una regola di schema; su una regola di transazione viene rifiutato con un 400.
actions
Cosa succede a ogni transazione che la regola intercetta, come elenco di oggetti azione tipizzati: impostare una categoria, aggiungere o togliere un tag, rinominare il commerciante, riscrivere la descrizione, impostare uno stato di revisione, nasconderla o segnarla come trasferimento. Almeno una, e non più di una per tipo, tranne le azioni sui tag. Ogni tag deve già esistere e può comparire una sola volta.
applyRetroactivelyfacoltativo
Riapplica la regola modificata alle transazioni che hai già, annullando prima ciò che la vecchia versione aveva fatto. Il default è false.
appliesFromfacoltativo
Solo le transazioni in questa data o successive.
appliesTofacoltativo
Solo le transazioni in questa data o precedenti.
applicationScopefacoltativo
Quando gira la regola: prospective solo per le transazioni nuove, retroactive quando viene applicata a quelle esistenti, o both. Il default è both.
userOverridesfacoltativo
Su una regola della libreria di Era, i tuoi valori per le impostazioni che ti lascia regolare, come oggetto tipizzato dello stesso tipo dello schema della regola. Ignorato sulle regole che hai creato tu.
groupfacoltativo
Il gruppo in cui archiviare la regola, dallo stesso elenco che accetta la creazione. La modifica sostituisce l'intera definizione, quindi ometterlo toglie il gruppo alla regola — manda il gruppo attuale per mantenerlo. Su una regola della libreria di Era, omettilo o manda il gruppo che ha già.
Risposta · 200
{
  "rule": { … },
  "retroactiveStatus": null,
  "affectedTransactionCount": 0
}

retroactiveStatus è null, a meno che tu non abbia chiesto alla chiamata di applicare la regola alle transazioni che avevi già, o di annullare ciò che ha fatto. completed vuol dire che quel lavoro è finito prima della risposta; in_progress, che è ancora in corso, quindi affectedTransactionCount non è ancora definitivo; queue_full, che la coda era piena e non è partito — la modifica alla regola è stata comunque salvata; partial_success, che solo una parte è andata a buon fine — alcune modifiche non sono state salvate, o solo una parte del lavoro è stata messa in coda.

Attiva una regola

Riattiva una regola, così torna a girare sulle nuove transazioni. Attivare una regola già attiva non cambia nulla. Le regole della libreria di Era si attivano e disattivano come le tue. Serve banking:write invece di banking:read, ma modifica solo le tue regole e transazioni in Era: nella tua banca non cambia nulla.

POST/banking/rules/{ruleId}/enable
Scope necessariobanking:write
Parametri di query
versionfacoltativo
La versione della regola come l'hai letta l'ultima volta. Omettila per saltare il controllo; se la mandi, la chiamata viene rifiutata con un 409 quando la regola è cambiata nel frattempo.
Risposta · 200
{
  "rule": { … },
  "retroactiveStatus": null,
  "affectedTransactionCount": 0
}

Disattiva una regola

Disattiva una regola, così smette di girare sulle nuove transazioni. Mantiene la sua definizione, e ciò che ha già fatto resta, a meno che tu non lo chieda indietro con revert_retroactively. Disattivare una regola già disattivata la lascia disattivata. Serve banking:write invece di banking:read, ma modifica solo le tue regole e transazioni in Era: nella tua banca non cambia nulla.

POST/banking/rules/{ruleId}/disable
Scope necessariobanking:write
Parametri di query
versionfacoltativo
La versione della regola come l'hai letta l'ultima volta. Omettila per saltare il controllo; se la mandi, la chiamata viene rifiutata con un 409 quando la regola è cambiata nel frattempo.
revert_retroactivelyfacoltativo
Annulla anche ciò che la regola ha già fatto alle tue transazioni — le categorie, i tag e le altre modifiche che ha applicato. Il default è false, che lascia quelle modifiche al loro posto.
Risposta · 200
{
  "rule": { … },
  "retroactiveStatus": null,
  "affectedTransactionCount": 0
}

retroactiveStatus è null, a meno che tu non abbia chiesto alla chiamata di applicare la regola alle transazioni che avevi già, o di annullare ciò che ha fatto. completed vuol dire che quel lavoro è finito prima della risposta; in_progress, che è ancora in corso, quindi affectedTransactionCount non è ancora definitivo; queue_full, che la coda era piena e non è partito — la modifica alla regola è stata comunque salvata; partial_success, che solo una parte è andata a buon fine — alcune modifiche non sono state salvate, o solo una parte del lavoro è stata messa in coda.

Elimina una regola

Elimina una regola per sempre. Per fermare una regola senza perderla, disattivala invece. Il ruleId nel percorso è l'id che restituisce l'elenco delle regole, e version deve essere quella che hai letto per ultima. Le regole della libreria di Era non si possono eliminare, solo disattivare. Serve banking:write invece di banking:read, ma modifica solo le tue regole e transazioni in Era: nella tua banca non cambia nulla. Chiedere a un'eliminazione di fare revert_retroactively è un solo tentativo: se torna queue_full, la regola non c'è già più e non resta nulla su cui riprovare. Per eliminare una regola e annullare ciò che ha fatto, disattivala prima con revert_retroactively — puoi ripeterlo finché non viene accettato — e poi eliminala.

DELETE/banking/rules/{ruleId}
Scope necessariobanking:write
Parametri di query
versionfacoltativo
La versione della regola come l'hai letta l'ultima volta. Deve corrispondere alla versione attuale, altrimenti la chiamata viene rifiutata con un 409 — ometterla quindi non salta il controllo, lo fa fallire.
revert_retroactivelyfacoltativo
Annulla anche ciò che la regola ha già fatto alle tue transazioni — le categorie, i tag e le altre modifiche che ha applicato. Il default è false, che lascia quelle modifiche al loro posto.
Risposta · 200
{
  "success": true,
  "retroactiveStatus": null,
  "affectedTransactionCount": 0
}

retroactiveStatus è null, a meno che tu non abbia chiesto alla chiamata di applicare la regola alle transazioni che avevi già, o di annullare ciò che ha fatto. completed vuol dire che quel lavoro è finito prima della risposta; in_progress, che è ancora in corso, quindi affectedTransactionCount non è ancora definitivo; queue_full, che la coda era piena e non è partito — la modifica alla regola è stata comunque salvata; partial_success, che solo una parte è andata a buon fine — alcune modifiche non sono state salvate, o solo una parte del lavoro è stata messa in coda.

Era Financial Advisors LLC è un consulente per gli investimenti registrato presso la SEC (CRD #334404). La registrazione non implica un determinato livello di competenza o formazione. I servizi di consulenza sugli investimenti sono discrezionali e assistiti dall'AI; non sostituiscono una consulenza finanziaria personalizzata. I servizi di intermediazione e custodia sono forniti da Alpaca Securities LLC, un'entità separata e membro di FINRA/SIPC. I conti Era Thesis ed Era Agency sono attualmente disponibili solo per i residenti negli Stati Uniti; Era Context collega conti negli Stati Uniti, nel Regno Unito, in Canada, in Francia, in Germania, in Spagna e in oltre 40 Paesi in tutto. Nulla su questo sito costituisce un'offerta o una sollecitazione ad acquistare o vendere titoli. I rendimenti passati non garantiscono risultati futuri. Consulta la nostra Form ADV e la Form CRS prima di investire.

Scarica su App StoreDisponibile su Google Play
era© 2026 Tinwell Labs Inc. DBA Era