veil

Attiva o spegni gli avvisi via email di una scheda

Una chiave attiva della scheda attiva gli avvisi, con la lingua delle email, o li spegne. Il corpo è {"on": true, "lang": "en" o "it"} oppure {"on": false}, con nonce e timestamp.

PUT/v1/identities/{n}/notices
Accesso
Richiesta firmata
Client
Client locale o server

Parametri#

NomePosizioneSignificato
nObbligatorioPercorsoNumero della scheda.

Questa chiamata richiede anche le intestazioni comuni di firma, nonce e timestamp. Prepara e firma request.json prima di usare l’esempio. Firma delle richieste

Esempi di richiesta#

cURL
curl -fsS -X PUT \
  -H "X-Public-Key: $PUBLIC_KEY" \
  -H "X-Signature: $REQUEST_SIGNATURE" --json @request.json \
  "https://veil.rip/v1/identities/CARD_NUMBER/notices"

Risposta#

HTTP 200application/json

Lo stato degli avvisi della scheda: se sono attivi, la lingua, dove vanno le email e quali eventi ne mandano una.

CampoTipoSignificato
nintegerNumero della scheda.
onbooleanSe la scheda ha attivato gli avvisi.
langstring | nullLingua delle email, en o it, quando sono attivi.
sincestring | nullQuando il proprietario li ha attivati.
lastSentAtstring | nullQuando è partito l’ultimo avviso.
emailstring | nullDove vanno le email: l’indirizzo email verificato più vecchio della scheda, letto quando parte ognuna. Null se non ce n’è.
mailbooleanSe questo server può mandare email.
eventsarray<string>Gli eventi per cui parte un avviso: takeover, device_added, device_revoked, backup_missing, proof_failing, key_idle, e canary_due per i proprietari dell’organizzazione Veil.
dailyCapintegerEmail al massimo per scheda e per giorno UTC; gli avvisi in più partono in un riepilogo.

Intestazioni della risposta#

IntestazioneValoreSignificato
Content-Typeapplication/jsonUsa il tipo dichiarato per scegliere come leggere il corpo.
DateHTTP dateOra del server. Confrontala con il tuo orologio per firmare le richieste.
Retry-Afterinteger seconds, on rate_limited or busyAttendi almeno questo intervallo prima di riprovare. Altri codici 429/503 non lo includono necessariamente.

Note d’uso#

  • Per attivarli serve un collegamento email verificato sulla scheda. Gli avvisi vanno al suo indirizzo verificato più vecchio, un’email per evento, in testo semplice, con l’indirizzo della scheda, il perché e un link per fermarli; al massimo 3 per scheda per giorno UTC, poi un riepilogo. Niente di firmato cambia.
  • Spegnerli cancella lo stato e ogni avviso in attesa. Riattivarli riparte da capo.

Errori#

Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori

HTTPCodiceSignificato e cosa fare
400invalid_json

Il corpo non è un oggetto JSON, contiene chiavi duplicate o dati finali.

Invia un solo oggetto JSON valido con Content-Type application/json.

400invalid_parameter

Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo.

Correggi il campo indicato in error.message prima di inviare di nuovo.

403key_mismatch

La chiave di firma non è autorizzata per questa scheda o operazione.

Usa una chiave di dispositivo attiva con il ruolo di titolare o membro richiesto.

404not_found

La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.

Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.

413payload_too_large

Il corpo della richiesta supera il limite in byte dell’endpoint.

Riduci il corpo codificato. La gestione delle chiavi API ammette al massimo 8 KiB.

422no_verified_email

La scheda non ha un collegamento email verificato, quindi non c’è dove mandare gli avvisi.

Collega prima un indirizzo email alla scheda, poi attiva gli avvisi.

422not_for_organizations

Gli avvisi sono per la scheda di una persona. Un’organizzazione non ne ha di suoi.

Ogni proprietario li attiva sulla propria scheda.

503no_mail_transport

Questo server non può mandare email.

Non c’è niente da riprovare: il server non ha un trasporto di posta.

Errori comuni delle richieste
HTTPCodiceSignificato e cosa fare
400invalid_nonce

Il nonce della richiesta firmata ha un formato errato.

Genera un nuovo nonce da 16 a 128 caratteri usando lettere, cifre, _ o -.

400invalid_signature_alg

X-Signature-Alg non è supportato.

Usa un algoritmo di firma supportato e la codifica corretta per chiave e firma.

400invalid_timestamp

Il timestamp della richiesta firmata non è espresso in millisecondi Unix.

Usa un timestamp Unix intero in millisecondi e firma la richiesta corretta.

401invalid_signature

La firma della richiesta HTTP non è valida.

Firma metodo, percorso e byte del corpo esatti, senza modificarli dopo.

401missing_signature

La richiesta richiede una firma del dispositivo e le intestazioni mancano o non sono leggibili.

Invia X-Public-Key, X-Signature e i metadati della richiesta firmata. Una chiave API non sostituisce la firma del dispositivo.

401stale_timestamp

Il timestamp firmato è fuori dalla finestra temporale ammessa.

Confronta l’intestazione Date del server con il tuo orologio, poi genera nuovi nonce, timestamp e firma.

403key_banned

La chiave del dispositivo che firma è sospesa dallo staff di Veil.

Usa una chiave attiva autorizzata o chiedi allo staff di riesaminare la restrizione.

409replayed_nonce

La chiave di firma ha già usato questo nonce.

Controlla se la richiesta precedente è riuscita prima di crearne una nuova firmata.

429rate_limited

È stato superato un limite anonimo, delle richieste firmate o della chiave API.

Attendi almeno i secondi indicati da Retry-After. Condividi coda e budget dei tentativi tra i tuoi processi.

500internal_error

Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.

Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.

503busy

L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.

Attendi i secondi indicati da Retry-After e riprova con attese crescenti e un limite.