Richiedi il certificato

Nella chiamata precedente ti avevamo restituito una serie di clausole da mostrare all'utente. In questa chiamata potrai comunicarci l'accettazione di queste clausole. Passeremo queste scelte alla Certification Authority che rilascerà un certificato che servirà a firmare digitalmente il contratto.

Non ti preoccupare, ci occupiamo noi di gestire certificato e authority, così puoi concentrarti sulla scrittura del codice che darà valore alla tua piattaforma 😊

Una volta effettuata questa chiamata, l'utente riceverà un codice di conferma sul numero di cellulare fornito (denominato OTP, che sta per One Time Password). Questo codice servirà per confermare la firma, nella successiva chiamata API.

Richiesta

Endpoint

Sandbox: http://api.sandbox.soisy.it/api/shops/{shopId}/requests/{fiscalCode}/request-signature-certificate
Produzione: https://api.soisy.it/api/shops/{shopId}/requests/{fiscalCode}/request-signature-certificate

Metodi accettati

POST

Autenticazione

Questa API richiede l'autenticazione tramite shopId e header X-Auth-Token.

Prerequisiti

Per accedere a questo endpoint è necessario aver richiesto i termini del contratto.

Parametri

Parametro Obbligatorio Tipo Formato Descrizione
clauses Oggetto Le clausole accettate dall'utente. Vedi esempio.

Con la richiesta dovrai trasmettere tutte le clausole recuperate con la chiamata precedente. Il valore true indica che il cliente ha accettato le varie clausole.

{
    "clauses": {
        "termAndCondition": true,
        "misleadingClaims": true,
    }
}

Risposta

L'API restituisce un oggetto JSON contenente una lista di contratti da firmare. Ogni contratto contiene una lista di clausole che il cliente dovrà espressamente accettare.

Le clausole restituite da questa API dovranno essere esplicitamente inviate, con un valore true, nella successiva chiamata di firma del contratto.

Codici HTTP di risposta

Codice Descrizione
201 Risorsa creata
400 Errore di sintassi o di dominio
403 Impossibile autenticare la richiesta
500 Errore di sistema

Risposta valida

{
    "contracts": [
        {
             "contractId": "ABC-1234-DEF",
             "type": "soisy",
             "version": "v4",
             "clauses": {
                 "termsAndConditions": "Termini e condizioni",
                 "privacyPolicy": "Informativa privacy",
                 "sddStatement": "Modulo SDD",
             }
        }
    ]
}

Risposta di errore

L'oggetto JSON restituito in caso di errore varia a seconda del codice HTTP di risposta.

Errore 400

La descrizione dell'errore messaggio cambierà a seconda dell'errore generato dalla Certification Authority.

 {
     "errors": {
         "domain": [
             {messaggio}
         ]
      }
 }

Errore 403

La richiesta inviata contiene delle credenziali non valide. Controlla lo shopId e l'header X-Auth-Token. Trovi maggiori info sulle credenziali nel paragrafo dell'autenticazione.

 {
     "errors": {
         "domain": [
             "The user has no access to this resource"
         ]
      }
 }

Errore 500

Le risposte con questo codice HTTP indicano che si è verificato un errore di sistema.

{
    "errors": {
        "system": [
            {messaggio}
        ]
    }
}