DoConure

Come chiedo le firme in un ordine preciso?

Imposta hasSigningOrder: true e assegna un numero a ogni firmatario. Due firmatari con lo stesso numero firmano come un unico gruppo — il numero successivo non viene avvisato finché ogni firmatario del gruppo precedente non ha finito:

"signers": {
  "A": { "email": "reviewer@acme.example", "fullName": "First reviewer",
         "order": 1, "fields": [ /* ... */ ] },
  "B": { "email": "approver@acme.example", "fullName": "Final approver",
         "order": 2, "fields": [ /* ... */ ] }
},
"settings": {
  "documentId": "...", "subject": "...",
  "hasSigningOrder": true
}

Vuoi invece che i due firmino in parallelo, in coppia, prima di una terza persona? Assegna a entrambi "order": 1 e alla terza persona "order": 2. Lasciare hasSigningOrder al valore predefinito false equivale a dare a tutti lo stesso numero: nessun ordine, tutti avvisati insieme — e in quel caso order non deve essere impostato affatto (non verrebbe mai rispettato, quindi la richiesta viene rifiutata anziché ignorarlo in silenzio).

Deve firmare tutto il gruppo o basta uno?

Ogni firmatario accetta anche un groupMode, che da solo non significa nulla — descrive il gruppo formato da un order condiviso, quindi tutti i firmatari con lo stesso numero devono essere d'accordo sul valore (oppure lasciarlo non impostato e lasciare che sia un altro del gruppo a deciderlo):

ValoreSignificato
"AND" (predefinito)Tutti quelli che condividono questo order devono firmare prima che il gruppo successivo venga avvisato — il comportamento che questo prodotto ha sempre avuto, ed è ciò che ottieni omettendo groupMode.
"OR"Basta la prima firma del gruppo. Tutti gli altri ancora in attesa nel gruppo vengono indicati come "skipped" nella risposta, il loro link smette subito di funzionare e il gruppo successivo viene avvisato immediatamente. Un link saltato apre una pagina che dice che il link non è più valido, e non vi si può fare nulla; una richiesta già partita da quella pagina viene rifiutata con RECIPIENT_NOT_REQUIRED.

La forma tipica — due approvatori nominati, ne basta uno qualsiasi — è un solo gruppo con due firmatari:

"signers": {
  "A": { "email": "finance-a@acme.example", "fullName": "Approver A",
         "order": 1, "groupMode": "OR", "fields": [ /* ... */ ] },
  "B": { "email": "finance-b@acme.example", "fullName": "Approver B",
         "order": 1, "groupMode": "OR", "fields": [ /* ... */ ] }
},
"settings": { "hasSigningOrder": true }

Entrambi condividono "order": 1 — un solo gruppo — ed entrambi indicano "OR": chiunque dei due firmi per primo soddisfa il gruppo, il link dell'altro smette di funzionare, e non c'è un secondo gruppo da attendere. Se invece metti i due approvatori su valori di order diversi (sempre un firmatario ciascuno) ottieni due gruppi in sequenza, non una coppia in OR — è l'ordine a formare un gruppo, groupMode dice solo come si comporta.

Un limite sulla forma, non solo sul totale. MAX_RECIPIENTS (20) limita già ogni busta, ma una busta con ordine di firma è limitata anche in altri due modi contemporaneamente: al massimo 5 valori distinti di order (gruppi) e al massimo 4 firmatari per ciascun valore. Sono lo stesso tetto di 5×4 = 20 visto dalla forma anziché dal totale, e superarne uno restituisce un semplice 422 che indica quale limite e quale valore — con settings.hasSigningOrder a false entrambi i controlli vengono saltati, perché non c'è alcun gruppo da limitare.

Riferimento completo delle impostazioni: Solo firma.