Web service that allows you to purchase or renew Infocert or Aruba digital signatures, and to obtain digital identities.
This method shows you the list of all our products
Array of objects (Prodotto) | |
| success | boolean |
| message | string |
| error | integer |
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);
{- "data": [
- {
- "nome": "Rinnovo Certificato Firma",
- "tipo": "Infocert",
- "codice_prodotto": "RINFIR",
- "prezzo": 25
}, - {
- "nome": "Firma Digitale",
- "tipo": "Infocert",
- "codice_prodotto": "FIR",
- "prezzo": 29
}, - {
- "nome": "Business Key",
- "tipo": "Infocert",
- "codice_prodotto": "KEY",
- "prezzo": 59
}, - {
- "nome": "Lettore Smart Card USB",
- "tipo": "Infocert",
- "codice_prodotto": "LETTORE",
- "prezzo": 25
}
], - "success": true,
- "message": "",
- "error": null
}This method allows you to purchase all the products on this web service such as smartcard readers or digital signatures
| codice_prodotto required | string Default: "<string>" Example: FIR Type of codice_prodotto you want to buy |
| assistenza | boolean Default: "<boolean>" product assistance |
object (Callback) |
ResponseRinnovo (object) or ResponseFirma (object) or ResponseLettore (object) or ResponseSpid (object) | |
| success | boolean |
| message | string |
| error | integer |
{- "assistenza": true,
- "urgenza": true,
- "spedizione": "veloce",
- "anagrafica": {
- "nome": "alberto",
- "cognome": "neri",
- "email": "a.neri@altravia.it",
- "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"
},
}{- "data": {
- "assistenza": true,
- "urgenza": true,
- "spedizione": "veloce",
- "anagrafica": {
- "nome": "alberto",
- "cognome": "neri",
- "email": "a.neri@altravia.it",
- "cellulare": "34xxxxx18",
- "codice_fiscale": "vnxxxxxxx2xx117d",
- "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": 12,
- "prodotto": "Firma Digitale",
- "codice_prodotto": "FIR",
- "tipo": "Infocert",
- "stato": "in_riconoscimento",
- "timestamp": {
- "acquisto": 1602587629,
- "emissione": 1602587629,
- "evasione": 1602587629,
- "scadenza": 1791890029
}, - "owner": "a.neri@altravia.com",
- "fornitore": {
- "ragione_sociale": "Altravia Servizi Srl",
- "sede_legale": "Roma - Via F.Tommaso Marinetti 221",
- "partita_iva": "07432261001",
- "legale_rappresentante": "",
- "email_assistenza": "",
- "email_contabilita": "",
- "telefono_assistenza": "",
- "sede_riconoscimento": "Roma - Via F.Tommaso Marinetti 221"
}, - "firma": {
- "codice_spedizione": "",
- "pin": "",
- "puk": "",
- "numero_dispositivo": "",
- "codice_carta": "",
- "numero_busta": "",
- "codice_utente": "",
- "iut": "",
- "alias": "",
- "codice_emergenza": ""
}, - "id": "5f7ef1e83a716836d3152662"
}, - "message": "",
- "success": true,
- "error": null
}This method shows you the list of all your requests
| codice_prodotto | string Default: "<string>" Example: codice_prodotto=FIR Type of codice_prodotto |
Array of objects (Richieste) | |
| success | boolean |
| message | string |
| error | integer |
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);
{- "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": "a.neri@altravia.com"
}, - {
- "_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": "a.neri@altravia.com"
}
], - "success": true,
- "message": "",
- "error": null
}This method shows you the specific request related to the id
| id required | string Default: "<string>" Example: 5f7b2e323a716857774a4373 request id |
ResponseRinnovo (object) or ResponseFirma (object) or ResponseLettore (object) or ResponseSpid (object) | |
| success | boolean |
| message | string |
| error | integer |
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);
{- "data": {
- "_id": "5f7b2e323a716857774a4373",
- "assistenza": true,
- "urgenza": true,
- "spedizione": "veloce",
- "anagrafica": {
- "nome": "alberto",
- "cognome": "neri",
- "email": "a.neri@altravia.it",
- "cellulare": "34xxxx018",
- "codice_fiscale": "vnnxxxxxx28lxxxd",
- "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": "POST",
- "field": "data",
- "data": { }
}, - "codice_richiesta": 9,
- "prodotto": "Firma Aruba OTP Mobile",
- "codice_prodotto": "OTPMOB",
- "tipo": "Aruba",
- "stato": "evasa",
- "timestamp": {
- "acquisto": 1602587629,
- "emissione": 1602587629,
- "evasione": 1602587629,
- "scadenza": 1791890029
}, - "owner": "a.neri@altravia.com",
- "fornitore": {
- "ragione_sociale": "Altravia Servizi Srl",
- "sede_legale": "Roma - Via F.Tommaso Marinetti 221",
- "partita_iva": "07432261001",
- "legale_rappresentante": "",
- "email_assistenza": "",
- "email_contabilita": "",
- "telefono_assistenza": "",
- "sede_riconoscimento": "Roma - Via F.Tommaso Marinetti 221"
}
}, - "message": "",
- "success": true,
- "error": null
}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
| id required | string Default: "<string>" Example: 5f7b2e323a716857774a4373 request id |
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);
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
| title | string or null Default: "<string>" You can provide a title and a description to your request. It will be shown in the iframe to the users during the signing process |
| description | string or null Default: "<string>" |
| ui | string Default: "<string>" A UI configuration created with |
| filename | string Default: "fes_{timestamp}.pdf" |
| content | string Default: "<string>" base64 encoding of your PDF file |
Array of objects = 2 items | |
object (FesCallback) |
object (FesBaseResponse) | |
| success | boolean |
| message | string |
| error | string |
{- "title": "<string>",
- "description": "<string>",
- "ui": "<string>",
- "filename": "fes_{timestamp}.pdf",
- "content": "<string>",
- "members": [
- {
- "firstname": "<string>",
- "lastname": "<string>",
- "email": "<string>",
- "phone": "<string>",
- "signs": [
- {
- "page": "<number>",
- "position": "10,15,45,35"
}, - {
- "page": "<number>",
- "position": "10,15,45,35"
}
]
}, - {
- "firstname": "<string>",
- "lastname": "<string>",
- "email": "<string>",
- "phone": "<string>",
- "signs": [
- {
- "page": "<number>",
- "position": "10,15,45,35"
}, - {
- "page": "<number>",
- "position": "10,15,45,35"
}
]
}
], - "callback": {
- "field": "<string>",
- "headers": {
- "key": "value"
}
}
}{- "filename": "example.pdf",
- "members": [
- {
- "firstname": "John",
- "lastname": "Doe",
- "email": "doe@altravia.com",
- "phone": "+39321321321"
}
], - "content": "JVBERi0xLjUKJb/3ov4KNiAwIG9iago8PCAvTGluZWFyaXplZCAxIC9MIDUwMTY4IC9IIFsgNzA4IDE0NCBdIC9PIDEwIC9FIDQ0NTc4IC9OIDIgL1QgNDk4NzIgPj4KZW5kb2JqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA..."
}{- "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"
}, - {
- "firstname": "string",
- "lastname": "string",
- "email": "string",
- "phone": "string",
- "status": "string",
- "createdAt": 0,
- "updatedAt": 0,
- "sign_link": "string"
}
], - "status": "created",
- "download_link": "string"
}
}Array of objects (FesBaseResponse) <= 2 items | |
| success | boolean |
| message | string |
| error | string |
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);
{- "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"
}, - {
- "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"
}| id | string Default: "<string>" Example: id=923j90n02n1w51504b6ea145 |
object (FesBaseResponse) | |
| success | boolean |
| message | string |
| error | string |
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?id=923j90n02n1w51504b6ea145"); 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);
Once the signing process is compleated you can use this endpoint to get a the base64-encoded output of you pdf file.
| id | string Default: "<string>" Example: id= |
| content | string A base64 encoding of your SIGNED pdf file. |
| success | boolean |
| message | string |
| error | string |
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?id="); 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);
{- "content": "aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQ==",
- "success": true,
- "message": "string",
- "error": "string"
}| name | string Default: "<string>" |
| description | string Default: "<string>" |
| defaultZoom | integer Default: "<integer>" |
| logo | string Default: "<string>" A base-64 encoded image, prefixed with the data URI scheme |
| languages | Array of strings <= 2 items |
| defaultLanguage | string Default: "<string>" |
| signImageTypesAvailable | Array of strings <= 2 items |
| enableHeaderBar | boolean Default: "<boolean>" |
| enableHeaderBarSignAs | boolean Default: "<boolean>" |
| enableSidebar | boolean Default: "<boolean>" |
| enableMemberList | boolean Default: "<boolean>" |
| enableDocumentList | boolean Default: "<boolean>" |
| enableDocumentDownload | boolean Default: "<boolean>" |
| enableActivities | boolean Default: "<boolean>" |
| authenticationPopup | boolean Default: "<boolean>" |
| enableRefuseComment | boolean Default: "<boolean>" |
Array of objects <= 2 items Customize the content of certain elements in the iFrame by overriding the content of some labels. Each available language should have its own translated string, or the default label will be shown. | |
| fonts | Array of strings <= 2 items |
| style | string Default: "<string>" The following classes are available:
|
object | |
object | |
object You can customise the experience after the signature, the cancel or an error during the process. Use redirectSuccess to redirect a user to an url when he have been signed.Specify the url field and the way to open it in the target field, like an HTML link.The auto boolean can be useful if you don't want to redirect just after the signature. If you want to display a button in the iframe with the following text : 'You have sucessfully signed, click here to continue.', pass it to false. By default, at true, the redirect will be automaticly fired when the event is fired too.You can customise 2 others redirects : redirectCancel when the member decline your procedure and redirectError if we encounter an error during the signature process. |
object (FesUiResponse) | |
| success | boolean |
| message | string |
| error | string |
{- "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
}
}{- "data": {
- "id": "62837d5796b1d9921a426f79c",
- "name": "My custom template",
- "description": ""
}, - "success": true,
- "message": "",
- "error": null
}Array of objects (FesUiResponse) | |
| success | boolean |
| message | string |
| error | string |
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);
{- "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
}| id | any The id of a UI template |
object (FesCreateUi) The following options can be specified:
|
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);
{- "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
}Methods that allow you to obtain 4 types of spid (at the moment only personal spid is available)
This method allows you to obtain a url for registering a personal spid with a duration of 1 year
object | |
| success | boolean |
| message | string |
| error | integer |
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);
{- "message": "",
- "success": true,
- "error": null
}