Digital, Electronic, Massive Signatures and Digital Identities all available in one API
All signature, electronic, advanced, qualified and digital identity solutions in real time
All the knowledge you need
Here you can find some advice to consider to approach this API. If you prefer, we provide code samples, OAS3 documentation, the ability to try the API live via the Swagger UI or import the entire collection into Postman. We also offer a Sandbox environment where you can experiment with all kinds of requests completely free of charge.
Get the token in the appropriate section before you start.
- Oas file url https://console.openapi.com/oas/en/firmadigitale.openapi.json
- Fork or import with Postman
- Production domain ws.firmadigitale.com
- Sandbox domain test.ws.firmadigitale.com
-
Production Scopes 9
- GET ws.firmadigitale.com/richiesta
- POST ws.firmadigitale.com/richiesta
- GET ws.firmadigitale.com/prodotti
- PATCH ws.firmadigitale.com/richiesta
- POST ws.firmadigitale.com/firma_elettronica
- GET ws.firmadigitale.com/firma_elettronica
- GET ws.firmadigitale.com/firma_elettronica_ui
- POST ws.firmadigitale.com/firma_elettronica_ui
- GET ws.firmadigitale.com/spid_personale
-
Sandbox Scopes 9
- GET test.ws.firmadigitale.com/prodotti
- POST test.ws.firmadigitale.com/firma_elettronica
- GET test.ws.firmadigitale.com/richiesta
- POST test.ws.firmadigitale.com/richiesta
- PATCH test.ws.firmadigitale.com/richiesta
- GET test.ws.firmadigitale.com/firma_elettronica
- GET test.ws.firmadigitale.com/firma_elettronica_ui
- POST test.ws.firmadigitale.com/firma_elettronica_ui
- GET test.ws.firmadigitale.com/spid_personale
Firma Digitale (1.0.0)
Servizio web che consente di acquistare o rinnovare le firme digitali Infocert o Aruba e di ottenere identità digitali.
List of products
This method shows you the list of all our products
Authorizations:
Responses
Response Schema: application/json
Array of objects (Prodotto) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/prodotti"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": [
- {
- "nome": "Spid - Identità Digitale",
- "tipo": "Infocert",
- "codice_prodotto": "SPID",
- "prezzo": 14.2
- {
- "nome": "Rinnovo Certificato Firma",
- "tipo": "Infocert",
- "codice_prodotto": "RINFIR",
- "prezzo": 9
- {
- "nome": "Business Key",
- "tipo": "Infocert",
- "codice_prodotto": "KEY",
- "prezzo": 40
- {
- "nome": "Lettore Smart Card USB",
- "tipo": "Infocert",
- "codice_prodotto": "LETTORE",
- "prezzo": 13,
- "vergine": true
- {
- "nome": "Kit Firma Digitale",
- "tipo": "Infocert",
- "codice_prodotto": "KIT",
- "prezzo": 39.7
- {
- "nome": "Firma Digitale Remota Infocert",
- "tipo": "Infocert",
- "codice_prodotto": "FIRREM",
- "prezzo": 25.7
- {
- "nome": "Business Key CNS",
- "tipo": "Infocert",
- "codice_prodotto": "KEYCNS",
- "prezzo": 40.7
- {
- "nome": "Smart Card Infocert CNS",
- "tipo": "Infocert",
- "codice_prodotto": "SMARTCARDCNS",
- "prezzo": 25.7
- {
- "nome": "Rinnovo CNS Infocert",
- "tipo": "Infocert",
- "codice_prodotto": "RINCNS",
- "prezzo": 9
- {
- "nome": "Kit CNS Infocert",
- "tipo": "Infocert",
- "codice_prodotto": "KITCNS",
- "prezzo": 40.3
- {
- "nome": "Smart Card Aruba CNS",
- "tipo": "Aruba",
- "codice_prodotto": "SCARUBACNS",
- "prezzo": 22.4
- {
- "nome": "Aruba Key CNS",
- "tipo": "Aruba",
- "codice_prodotto": "ARUBAKEYCNS",
- "prezzo": 39.4
- {
- "nome": "Firma Aruba OTP Display",
- "tipo": "Aruba",
- "codice_prodotto": "OTPDIS",
- "prezzo": 25.2
- {
- "nome": "Firma Aruba OTP Mobile",
- "tipo": "Aruba",
- "codice_prodotto": "OTPMOB",
- "prezzo": 21.7
- {
- "nome": "Firma Estero",
- "tipo": "Infocert",
- "codice_prodotto": "FIREST",
- "prezzo": 49.7
- {
- "nome": "Videoriconoscimento Aruba",
- "tipo": "Aruba",
- "codice_prodotto": "VIDEORIC",
- "prezzo": 15
- {
- "nome": "Firma Digitale",
- "tipo": "Infocert",
- "codice_prodotto": "FIR",
- "prezzo": 22.7
- {
- "nome": "Spid Vergine - Identità Digitale",
- "tipo": "Infocert",
- "codice_prodotto": "SPID_V",
- "prezzo": 14.2,
- "vergine": true
- {
- "nome": "Firma Digitale Vergine",
- "tipo": "Infocert",
- "codice_prodotto": "FIR_V",
- "prezzo": 22.7,
- "vergine": true
- {
- "nome": "Business Key Vergine",
- "tipo": "Infocert",
- "codice_prodotto": "KEY_V",
- "prezzo": 40,
- "vergine": true
- {
- "nome": "Firma Digitale Remota Infocert Vergine",
- "tipo": "Infocert",
- "codice_prodotto": "FIRREM_V",
- "prezzo": 25.7,
- "vergine": true
- {
- "nome": "Business Key CNS Vergine",
- "tipo": "Infocert",
- "codice_prodotto": "KEYCNS_V",
- "prezzo": 40.7,
- "vergine": true
- {
- "nome": "Smart Card Infocert CNS Vergine",
- "tipo": "Infocert",
- "codice_prodotto": "SMARTCARDCNS_V",
- "prezzo": 25.7,
- "vergine": true
- {
- "nome": "Smart Card Infocert CNS Con Videoriconoscimento",
- "tipo": "Infocert",
- "codice_prodotto": "SMARTCARDCNS_VIDEO",
- "prezzo": 57.9
- {
- "nome": "Business Key CNS Con Videoricoscimento",
- "tipo": "Infocert",
- "codice_prodotto": "KEYCNS_VIDEO",
- "prezzo": 77.9
- {
- "nome": "Firma Digitale Remota Infocert Con Videoriconoscimento",
- "tipo": "Infocert",
- "codice_prodotto": "FIRREM_VIDEO",
- "prezzo": 63.7
- {
- "nome": "Rinnovo Firma Remota",
- "tipo": "Infocert",
- "codice_prodotto": "RINFIRREM",
- "prezzo": 19.7
- {
- "nome": "Spid Personale",
- "tipo": "Namirial",
- "codice_prodotto": "SPID_PER",
- "prezzo": 14.2
- "success": true,
- "message": "",
- "error": null
Purchase and renew digital signatures
This method allows you to purchase all the products on this web service such as smartcard readers or digital signatures
Authorizations:
path Parameters
codice_prodotto required | string Example: FIR Type of codice_prodotto you want to buy |
Request Body schema: application/json
Schemi di riferimento per categoria:
- PostBodySpid: SPID or SPID_V
- PostBodyFirmaEstero: FIREST
- PostBodyLettore: FIR_V or LETTORE or KEY_V or FIRREM_V or KEYCNS_V or SMARTCARDCNS_V
- PostBodyRinnovi: RINFIR or RINCNS or RINFIRREM
- PostBodyFirme: FIR or KIT or KEY or FIRREM or KEYCNS or KITCNS or SMARTCARDCNS
- PostBodyFirmeVideoriconoscimento: SMARTCARDCNS_VIDEO or KEYCNS_VIDEO or FIRREM_VIDEO
- PostBodyVideoriconoscimento: VIDEORIC
- PostBodyFirmeAruba: SCARUBACNS or ARUBAKEYCNS or OTPDIS or OTPMOB
assistenza | boolean assistenza al prodotto |
object (Callback) |
Responses
Response Schema: application/json
ResponseRinnovo (object) or ResponseFirmaEstero (object) or ResponseFirma (object) or ResponseLettore (object) or ResponseSpid (object) or ResponseFirmeVideoriconoscimento (object) or ResponseFirmeAruba (object) | |
success | boolean |
message | string |
error | integer |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "assistenza": true,
- "urgenza": true,
- "spedizione": "veloce",
- "anagrafica_spedizione": {
- "cellulare": "349xxxxx18",
- "destinatario": "alberto neri",
- "indirizzo_spedizione": "via rossi 2",
- "comune_spedizione": "terni",
- "provincia_spedizione": "terni",
- "cap_spedizione": "05100"
Response samples
- 200
- 400
- 402
- 406
- 428
- "data": {
- "videoriconoscimento": true,
- "documento": true,
- "anagrafica": {
- "nome": "alberto",
- "cognome": "neri",
- "cellulare": "349xxxxx18",
- "codice_fiscale": "vnxxxxxxxl1x7d",
- "data_nascita": "28/12/2000",
- "sesso": "M",
- "comune_nascita": "terni",
- "provincia_nascita": "terni",
- "nazione_nascita": "terni",
- "indirizzo_residenza": "via rossi 2",
- "comune_residenza": "terni",
- "provincia_residenza": "terni",
- "cap_residenza": "05100",
- "nazione_residenza": "italia",
- "destinatario": "alberto neri",
- "indirizzo_spedizione": "via rossi 2",
- "comune_spedizione": "terni",
- "provincia_spedizione": "terni",
- "cap_spedizione": "05100",
- "tipo_documento": "patente",
- "numero_documento": "123456",
- "soggetto_emittente": "mctc",
- "data_emissione": "05/11/1990",
- "data_scadenza": "12/12/2020"
- "callback": {
- "method": "JSON",
- "field": "data",
- "data": { }
- "codice_richiesta": "d1e4a",
- "prodotto": "Smart Card Aruba CNS",
- "codice_prodotto": "SCARUBACNS",
- "tipo": "Aruba",
- "stato": "in_registrazione",
- "timestamp": {
- "acquisto": 1602587629
- "urgenza": false,
- "quantita": 1,
- "spedizione": "ordinaria",
- "assistenza": false,
- "fornitore": {
- "ragione_sociale": "Openapi Srl",
- "sede_legale": "Viale F. Tommaso Marinetti 221 - 00143 Roma (RM)",
- "partita_iva": "07432261001",
- "legale_rappresentante": "",
- "email_assistenza": "",
- "email_contabilita": "",
- "telefono_assistenza": "",
- "sede_riconoscimento": "Piazza San Giovanni Decollato 6 - 05100 Terni (TR)"
- "firma": {
- "codice_spedizione": "",
- "pin": "",
- "puk": "",
- "numero_dispositivo": "",
- "codice_carta": "",
- "numero_busta": "",
- "codice_utente": "",
- "iut": "",
- "alias": "",
- "codice_emergenza": ""
- "id": "5f7ef1e83a716836d3152662",
- "modulo": false
- "success": true,
- "message": "",
- "error": null
List of your requests
This method shows you the list of all your requests
Authorizations:
query Parameters
codice_prodotto | string Example: codice_prodotto=FIR Type of codice_prodotto |
Responses
Response Schema: application/json
Array of objects (Richieste) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/richiesta?codice_prodotto=FIR"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- "data": [
- {
- "_id": "5f774d903a71681fce3c71d3",
- "assistenza": true,
- "urgenza": true,
- "spedizione": "veloce",
- "codice_richiesta": 1,
- "prodotto": "Firma Digitale",
- "codice_prodotto": "FIR",
- "tipo": "Infocert",
- "stato": "in_riconoscimento",
- "timestamp": {
- "acquisto": 1602587629,
- "emissione": 1602587629,
- "evasione": 1602587629,
- "scadenza": 1791890029
- "owner": "[email protected]"
- {
- "_id": "5f7b1f8b3a716857774a4362",
- "assistenza": true,
- "urgenza": false,
- "spedizione": false,
- "codice_richiesta": 6,
- "prodotto": "Rinnovo Certificato Firma",
- "codice_prodotto": "RINFIR",
- "tipo": "Infocert",
- "stato": "evasa",
- "timestamp": {
- "acquisto": 1602587629,
- "emissione": 1602587629,
- "evasione": 1602587629,
- "scadenza": 1791890029
- "owner": "[email protected]"
- "success": true,
- "message": "",
- "error": null
Specific request
This method shows you the specific request related to the id
Authorizations:
path Parameters
id required | string Example: 5f7b2e323a716857774a4373 request id |
Responses
Response Schema: application/json
ResponseRinnovo (object) or ResponseFirmaEstero (object) or ResponseFirma (object) or ResponseLettore (object) or ResponseSpid (object) or ResponseFirmeVideoriconoscimento (object) or ResponseFirmeAruba (object) | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/richiesta/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 400
- 404
The same exemple for /FIR_V /LETTORE /KEY_V /FIRREM_V /KEYCNS_V /SMARTCARDCNS_V
- "data": {
- "anagrafica_spedizione": {
- "cellulare": "349xxxxx18",
- "destinatario": "alberto neri",
- "indirizzo_spedizione": "via rossi 2",
- "comune_spedizione": "terni",
- "provincia_spedizione": "terni",
- "cap_spedizione": "05100",
- "note": ""
- "callback": {
- "method": "JSON",
- "field": "data",
- "data": { }
- "codice_richiesta": "c335c",
- "prodotto": "Smart Card Infocert CNS Vergine",
- "codice_prodotto": "SMARTCARDCNS_V",
- "tipo": "Infocert",
- "stato": "in_lavorazione",
- "assistenza": false,
- "urgenza": false,
- "spedizione": "ordinaria",
- "videoriconoscimento": false,
- "quantita": 1,
- "timestamp": {
- "acquisto": 1602587629
- "fornitore": {
- "ragione_sociale": "Openapi Srl",
- "sede_legale": "Viale F. Tommaso Marinetti 221 - 00143 Roma (RM)",
- "partita_iva": "07432261001",
- "legale_rappresentante": "",
- "email_assistenza": "",
- "email_contabilita": "",
- "telefono_assistenza": "",
- "sede_riconoscimento": "Piazza San Giovanni Decollato 6 - 05100 Terni (TR)"
- "firma": {
- "codice_spedizione": "",
- "pin": "",
- "puk": "",
- "numero_dispositivo": "",
- "codice_carta": "",
- "numero_busta": "",
- "codice_utente": "",
- "iut": "",
- "alias": "",
- "codice_emergenza": ""
- "id": "5f7ef1e83a716836d3152662",
- "modulo": false,
- "documento": false
- "success": true,
- "message": "",
- "error": null
Update request
This method allows you to upload the form and identification document
Authorizations:
path Parameters
id required | string Example: 5f7b2e323a716857774a4373 request id |
Request Body schema: application/json
documento | string File documento ID codificato in base 64 |
nome_documento | string nome del file |
modulo | string file del modulo di riconoscimento codificato in base 64 |
nome_modulo | string nome del file |
Responses
Response Schema: application/json
ResponseFirma (object) or ResponseFirmeAruba (object) | |
success | boolean |
message | string |
error | integer |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "modulo": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwGggCSABIID6CVQREYtMS40CiXi48/TCjEgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyNTgyL04gMz4+c3RyZWFtCnictVZnVFPZFj733vRCCyCd0GuQTgDpvUmRLiohCRBKgJAAKnZEBUYQEWkWkEERBxyVImNBLFgYFBRRQSfIoKCOgwUbKu8Gf+is9db7Ne9b69773W/tvc8++/w4HwDkqTR2ejYMAEjnCwVhPu706JhYOv4+QIAqUAC6QJPFzs50Cw",
- "nome_modulo": "modulo.pdf",
- "documento": "YCQEUVEC2EgTMQDCUZikUREgKxHipBKpAFpRbqRPuQ2IkZeIB8xOAwNQ8cwMI4YX0wEho3JwqzHlGBqMEcwHZhLmNuYccwM5iuWilXDmmAdsH7YaGwSNhdbiK3ENmHbsZexw9hJ7DscDqeIM8DZ4XxxMbgU3FpcCW4frg3XgxvETeBm8Xi8Mt4E74QPxrPwQnwhvhp/DH8eP4SfxH8gkAmaBEuCNyGWwCdsJlQSjhLOEYYITwlzRBmiHtGBGEzkEFcTS4mNxG7iTeIkcY4kSzIgOZHCSSmkTaQqUivpMmmM9IZMJmuT7cmhZB55I7mKfJx8lTxO/kiRoxhTPChxFBFlJ+UwpYdyn/KGSqXqU12psVQhdSe1",
- "nome_documento": "documento.pdf"
Response samples
- 200
- 400
- 404
- 406
- 428
The same exemple for /KEY /FIR /KIT /FIRREM /KEYCNS /KITCNS /SMARTCARDCNS
- "data": {
- "anagrafica": {
- "nome": "alberto",
- "cognome": "neri",
- "cellulare": "349xxxxx18",
- "codice_fiscale": "vnxxxxxxxl1x7d",
- "data_nascita": "28/12/2000",
- "sesso": "M",
- "comune_nascita": "terni",
- "provincia_nascita": "terni",
- "nazione_nascita": "terni",
- "indirizzo_residenza": "via rossi 2",
- "comune_residenza": "terni",
- "provincia_residenza": "terni",
- "cap_residenza": "05100",
- "nazione_residenza": "italia",
- "destinatario": "alberto neri",
- "indirizzo_spedizione": "via rossi 2",
- "comune_spedizione": "terni",
- "provincia_spedizione": "terni",
- "cap_spedizione": "05100",
- "tipo_documento": "patente",
- "numero_documento": "123456",
- "soggetto_emittente": "mctc",
- "data_emissione": "05/11/1990",
- "data_scadenza": "12/12/2020",
- "note": ""
- "callback": {
- "method": "JSON",
- "field": "data",
- "data": { }
- "codice_richiesta": "8417d",
- "prodotto": "Firma Digitale Remota Infocert",
- "codice_prodotto": "FIRREM",
- "tipo": "Infocert",
- "stato": "in_riconoscimento",
- "timestamp": {
- "acquisto": 1602587629,
- "registrazione": 1681226069
- "assistenza": false,
- "urgenza": false,
- "spedizione": "veloce",
- "videoriconoscimento": false,
- "quantita": 1,
- "fornitore": {
- "ragione_sociale": "Openapi Srl",
- "sede_legale": "Viale F. Tommaso Marinetti 221 - 00143 Roma (RM)",
- "partita_iva": "07432261001",
- "legale_rappresentante": "",
- "email_assistenza": "",
- "email_contabilita": "",
- "telefono_assistenza": "",
- "sede_riconoscimento": "Piazza San Giovanni Decollato 6 - 05100 Terni (TR)"
- "firma": {
- "codice_spedizione": "",
- "pin": "",
- "puk": "",
- "numero_dispositivo": "",
- "codice_carta": "",
- "numero_busta": "",
- "codice_utente": "",
- "iut": "",
- "alias": "",
- "codice_emergenza": ""
- "id": "5f7ef1e83a716836d3152662",
- "modulo": true,
- "documento": true
- "success": true,
- "message": "",
- "error": null
Download the recognition form
This method allows you to directly download the recognition form in pdf format which must then be completed and sent by raccomandata to the fornitore; it is essential to complete the evasion of a procedure for purchasing a digital signature; it is not needed for the renewal of a signature
Authorizations:
path Parameters
id required | string Example: 5f7b2e323a716857774a4373 request id |
Responses
Response Schema: application/pdf
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/richiesta/%7Bid%7D/modulo"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Request an e-signature
This service allows you to digitally sign a PDF file from multiple users with proof-of-consent.
We will provide a link, that you can easily integrate into an iframe, which will guide your users during the signing process; they will be sent a SMS on the provided phone number with an OTP to verify their identity.
The signed document is recognized by European regulations.
In order find the coordinates for your templates, please check our online tool at: https://developers.openapi.it/playground/firmadigitale/
Your request will return a status parameter, which will change every time that there is a update.
When finished is returned, your request is completed and all the members have signed the document; when refused is returned, it means that one of your signers has rejected the document intentionally.
If you register a Callback, a POST request will be submitted to your server every time the status of the request changes or one of your members has signed/refused the document. You can always check the status with a GET request
Authorizations:
Request Body schema: application/json
title | string or null È possibile fornire un titolo e una descrizione alla richiesta. Verranno mostrati nell'iframe agli utenti durante il processo di firma. |
description | string or null |
ui | string Una configurazione dell'interfaccia utente creata con /firma_elettronica_ui. |
filename | string Default: "fes_{timestamp}.pdf" |
content | string codifica base64 del file PDF |
Array of objects | |
object (FesCallback) |
Responses
Response Schema: application/json
object (FesBaseResponse) | |
success | boolean |
message | string |
error | string |
Callbacks
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "title": "string",
- "description": "string",
- "ui": "string",
- "filename": "fes_{timestamp}.pdf",
- "content": "string",
- "members": [
- {
- "firstname": "string",
- "lastname": "string",
- "email": "string",
- "phone": "string",
- "signs": [
- {
- "page": 0,
- "position": "10,15,45,35"
- "callback": {
- "field": "string",
- "headers": {
- "key": "value"
Response samples
- 200
- "filename": "example.pdf",
- "members": [
- "content": "JVBERi0xLjUKJb/3ov4KNiAwIG9iago8PCAvTGluZWFyaXplZCAxIC9MIDUwMTY4IC9IIFsgNzA4IDE0NCBdIC9PIDEwIC9FIDQ0NTc4IC9OIDIgL1QgNDk4NzIgPj4KZW5kb2JqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA..."
Callback payload samples
- "data": {
- "id": "string",
- "filename": "fes_{timestamp}.pdf",
- "title": "string",
- "description": "string",
- "members": [
- {
- "firstname": "string",
- "lastname": "string",
- "email": "string",
- "phone": "string",
- "status": "string",
- "createdAt": 0,
- "updatedAt": 0,
- "sign_link": "string"
- "status": "created",
- "download_link": "string"
List all your past and pending requests
Authorizations:
Responses
Response Schema: application/json
Array of objects (FesBaseResponse) | |
success | boolean |
message | string |
error | string |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/firma_elettronica"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": [
- {
- "id": "string",
- "filename": "fes_{timestamp}.pdf",
- "title": "string",
- "description": "string",
- "members": [
- {
- "firstname": "string",
- "lastname": "string",
- "email": "string",
- "phone": "string",
- "status": "string",
- "createdAt": 0,
- "updatedAt": 0,
- "sign_link": "string"
- "status": "created",
- "download_link": "string",
- "callback_status": "string",
- "callback": {
- "method": "string",
- "field": "string",
- "url": "string"
- "success": true,
- "message": "string",
- "error": "string"
Get information on a sign request
Authorizations:
path Parameters
id required | string Example: 923j90n02n1w51504b6ea145 |
Responses
Response Schema: application/pdf
object (FesBaseResponse) | |
success | boolean |
message | string |
error | string |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/firma_elettronica/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Download your signed document
Once the signing process is compleated you can use this endpoint to get a the base64-encoded output of you pdf file.
Authorizations:
path Parameters
id required | string Example: 923j90n02n1w51504b6ea145 |
Responses
Response Schema: application/json
content | string A base64 encoding of your SIGNED pdf file. |
success | boolean |
message | string |
error | string |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/firma_elettronica/%7Bid%7D/download"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 400
- "content": "aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQ==",
- "success": true,
- "message": "string",
- "error": "string"
Create a custom UI for e-signatures
Authorizations:
Request Body schema: application/json
name | string |
description | string |
defaultZoom | integer |
logo | string Un'immagine codificata in base 64, preceduta dallo schema URI dei dati. |
languages | Array of strings |
defaultLanguage | string |
signImageTypesAvailable | Array of strings |
enableHeaderBar | boolean |
enableHeaderBarSignAs | boolean |
enableSidebar | boolean |
enableMemberList | boolean |
enableDocumentList | boolean |
enableDocumentDownload | boolean |
enableActivities | boolean |
authenticationPopup | boolean |
enableRefuseComment | boolean |
Array of objects Personalizzare il contenuto di alcuni elementi dell'iFrame sovrascrivendo il contenuto di alcune etichette. Ogni lingua disponibile deve avere la propria stringa tradotta, altrimenti verrà mostrata l'etichetta predefinita. | |
fonts | Array of strings |
style | string Sono disponibili le seguenti classi:
|
object | |
object | |
object È possibile personalizzare l'esperienza dopo la firma, l'annullamento o un errore durante il processo. Usare redirectSuccess per reindirizzare un utente a un url quando è stato firmato. Specificare il campo url e il modo in cui aprirlo nel campo target, come un link HTML. Il booleano auto può essere utile se non si vuole reindirizzare subito dopo la firma. Se si vuole visualizzare un pulsante nell'iframe con il seguente testo: "Hai firmato con successo, clicca qui per continuare", passarlo a false. Per impostazione predefinita, con true, il reindirizzamento verrà automaticamente attivato anche quando l'evento viene attivato. È possibile personalizzare altri due reindirizzamenti: redirectCancel quando il membro rifiuta la procedura e redirectError se si verifica un errore durante il processo di firma. |
Responses
Response Schema: application/json
object (FesUiResponse) | |
success | boolean |
message | string |
error | string |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "name": "My first template for Signature-UI",
- "description": "Here is the Signature-UI template for Yousign Developers.",
- "defaultZoom": 100,
- "logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQU [...] IwU3i6foIAAAAAElFTkSuQmCC",
- "languages": [
- "fr",
- "en",
- "es",
- "de",
- "it",
- "pt",
- "nl"
- "defaultLanguage": "en",
- "signImageTypesAvailable": [
- "name",
- "draw"
- "enableHeaderBar": true,
- "enableHeaderBarSignAs": true,
- "enableSidebar": true,
- "enableMemberList": true,
- "enableDocumentList": true,
- "enableDocumentDownload": true,
- "enableActivities": true,
- "authenticationPopup": true,
- "enableRefuseComment": true,
- "labels": [
- {
- "name": "NAME OF THE LABEL",
- "languages": {
- "en": "Label en",
- "fr": "Label fr"
- "fonts": [
- "Roboto",
- "Lato"
- "style": "Just a CSS string for customize all of our iFrame.",
- "redirectCancel": {
- "target": "_top or _blank or _self or _parent",
- "auto": false
- "redirectError": {
- "target": "_top or _blank or _self or _parent",
- "auto": false
- "redirectSuccess": {
- "target": "_top or _blank or _self or _parent",
- "auto": false
Response samples
- 200
- "data": {
- "id": "62837d5796b1d9921a426f79c",
- "name": "My custom template",
- "description": ""
- "success": true,
- "message": "",
- "error": null
List all your custom UIs
Authorizations:
Responses
Response Schema: application/json
Array of objects (FesUiResponse) | |
success | boolean |
message | string |
error | string |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/firma_elettronica_ui"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": [
- {
- "id": "62837d5796b1d9921a426f79c",
- "name": "My custom template",
- "description": "Template for Mr Doe"
- {
- "id": "62837d5796b1d9921a426f79c",
- "name": "My second custom template",
- "description": "Template for Mr John"
- "success": true,
- "message": "",
- "error": null
Get custom UI for e-signatures
Authorizations:
path Parameters
id required | string Example: 923j90n02n1w51504b6ea145 The id of a UI template |
Responses
Response Schema: application/json
object (FesCreateUi) È possibile specificare le seguenti opzioni:
|
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/firma_elettronica_ui/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": {
- "name": "Test template",
- "description": null,
- "enableHeaderBar": false,
- "enableHeaderBarSignAs": false,
- "enableSidebar": false,
- "enableMemberList": true,
- "enableDocumentList": true,
- "enableDocumentDownload": true,
- "enableActivities": true,
- "enableRefuseComment": true,
- "authenticationPopup": false,
- "defaultZoom": null,
- "logo": null,
- "defaultLanguage": null,
- "signImageTypesAvailable": [ ],
- "languages": [ ],
- "labels": [ ],
- "fonts": [ ],
- "style": null,
- "redirectCancel": null,
- "redirectError": null,
- "redirectSuccess": null
- "success": true,
- "message": "",
- "error": null
Metodi che consentono di ottenere 4 tipi di spid (al momento è disponibile solo lo spid personale)
Personal spid
This method allows you to obtain a url for registering a personal spid with a duration of 1 year
Authorizations:
Responses
Response Schema: application/json
object | |
success | boolean |
message | string |
error | integer |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.firmadigitale.com/spid_personale"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 402
- 422
- "message": "",
- "success": true,
- "error": null