Run with Postman

Firma Digitale

Web service that allows you to purchase or renew Infocert or Aruba digital signatures, and to obtain digital identities.

Prodotti

Method that allows you to see all available products and their prices

List of products

This method shows you the list of all our products

Authorizations:
bearerAuth

Responses

Response Schema: application/json
Array of objects (Prodotto)
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{
  • "data": [
    ],
  • "success": true,
  • "message": "",
  • "error": null
}

Firme

Methods that allows you to purchase and renew various digital signatures

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:
bearerAuth
path Parameters
codice_prodotto
required
string
Default: "<string>"
Example: FIR

Type of codice_prodotto you want to buy

Request Body schema: application/json
One of
assistenza
boolean
Default: "<boolean>"

product assistance

object (Callback)

Responses

Response Schema: application/json
ResponseRinnovo (object) or ResponseFirma (object) or ResponseLettore (object) or ResponseSpid (object)
success
boolean
message
string
error
integer

Request samples

Content type
application/json
{
  • "assistenza": true,
  • "urgenza": true,
  • "spedizione": "veloce",
  • "anagrafica": {
    },
  • "callback": {}
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": "",
  • "success": true,
  • "error": null
}

Richieste

Methods to see all your requests

List of your requests

This method shows you the list of all your requests

Authorizations:
bearerAuth
query Parameters
codice_prodotto
string
Default: "<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

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

Content type
application/json
{
  • "data": [
    ],
  • "success": true,
  • "message": "",
  • "error": null
}

Specific request

This method shows you the specific request related to the id

Authorizations:
bearerAuth
path Parameters
id
required
string
Default: "<string>"
Example: 5f7b2e323a716857774a4373

request id

Responses

Response Schema: application/json
ResponseRinnovo (object) or ResponseFirma (object) or ResponseLettore (object) or ResponseSpid (object)
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{
  • "data": {
    },
  • "message": "",
  • "success": true,
  • "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:
bearerAuth
path Parameters
id
required
string
Default: "<string>"
Example: 5f7b2e323a716857774a4373

request id

Responses

Response Schema: application/pdf
string <binary>

Request samples

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);

Firma elettronica

Methods that allows you to digitally sign PDF document with REST APIs.

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:
bearerAuth
Request Body schema: application/json
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 /firma_elettronica_ui

filename
string
Default: "fes_{timestamp}.pdf"
content
string
Default: "<string>"

base64 encoding of your PDF file

Array of objects = 2 items
object (FesCallback)

Responses

Response Schema: application/json
object (FesBaseResponse)
success
boolean
message
string
error
string

Callbacks

Request samples

Content type
application/json
{
  • "title": "<string>",
  • "description": "<string>",
  • "ui": "<string>",
  • "filename": "fes_{timestamp}.pdf",
  • "content": "<string>",
  • "members": [
    ],
  • "callback": {}
}

Response samples

Content type
application/json
{
  • "filename": "example.pdf",
  • "members": [
    ],
  • "content": "JVBERi0xLjUKJb/3ov4KNiAwIG9iago8PCAvTGluZWFyaXplZCAxIC9MIDUwMTY4IC9IIFsgNzA4IDE0NCBdIC9PIDEwIC9FIDQ0NTc4IC9OIDIgL1QgNDk4NzIgPj4KZW5kb2JqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA..."
}

Callback payload samples

Callback
POST: your_url
Content type
application/json
{
  • "data": {
    }
}

List all your past and pending requests

Authorizations:
bearerAuth

Responses

Response Schema: application/json
Array of objects (FesBaseResponse) <= 2 items
success
boolean
message
string
error
string

Request samples

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

Content type
application/json
{
  • "data": [
    ],
  • "success": true,
  • "message": "string",
  • "error": "string"
}

Get information on a sign request

Authorizations:
bearerAuth
query Parameters
id
string
Default: "<string>"
Example: id=923j90n02n1w51504b6ea145

Responses

Response Schema: application/pdf
object (FesBaseResponse)
success
boolean
message
string
error
string

Request samples

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);

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:
bearerAuth
query Parameters
id
string
Default: "<string>"
Example: id=

Responses

Response Schema: application/json
content
string

A base64 encoding of your SIGNED pdf file.

success
boolean
message
string
error
string

Request samples

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);

Response samples

Content type
application/json
{
  • "content": "aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQ==",
  • "success": true,
  • "message": "string",
  • "error": "string"
}

Create a custom UI for e-signatures

Authorizations:
bearerAuth
Request Body schema: application/json
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:

  • sign-ui-title
  • sign-ui-title-label
  • sign-ui-title-underline
  • sign-ui-avatar
  • sign-ui-avatar--primary
  • sign-ui-avatar--success
  • sign-ui-avatar--error
  • sign-ui-alert
  • sign-ui-alert--primary
  • sign-ui-alert--secondary
  • sign-ui-alert--warning
  • sign-ui-alert--success
  • sign-ui-alert--error
  • sign-ui-procedure-detail-info
  • sign-ui-activity-title
  • sign-ui-confirm-box-valid
  • sign-ui-button-sign-confirm
  • sign-ui-procedure-name
  • sign-ui-documents-list
  • sign-ui-signers-list
  • sign-ui-button-next-document
  • sign-ui-button-refuse
  • sign-ui-button-validate
  • sign-ui-button-sign
  • sign-ui-button-validate-cancel
  • sign-ui-button-validate-confirm
  • sign-ui-button-refuse-cancel
  • sign-ui-button-refuse-confirm
  • sign-ui-stamp
  • sign-ui-actions-banner
  • sign-ui-waiting
  • sign-ui-waiting-circle-bg
  • sign-ui-waiting-circle-active
  • sign-ui-waiting-circle-text

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.

Responses

Response Schema: application/json
object (FesUiResponse)
success
boolean
message
string
error
string

Request samples

Content type
application/json
{
  • "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": [
    ],
  • "defaultLanguage": "en",
  • "signImageTypesAvailable": [
    ],
  • "enableHeaderBar": true,
  • "enableHeaderBarSignAs": true,
  • "enableSidebar": true,
  • "enableMemberList": true,
  • "enableDocumentList": true,
  • "enableDocumentDownload": true,
  • "enableActivities": true,
  • "authenticationPopup": true,
  • "enableRefuseComment": true,
  • "labels": [
    ],
  • "fonts": [
    ],
  • "style": "Just a CSS string for customize all of our iFrame.",
  • "redirectCancel": {},
  • "redirectError": {},
  • "redirectSuccess": {}
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

List all your custom UIs

Authorizations:
bearerAuth

Responses

Response Schema: application/json
Array of objects (FesUiResponse)
success
boolean
message
string
error
string

Request samples

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

Content type
application/json
{
  • "data": [
    ],
  • "success": true,
  • "message": "",
  • "error": null
}

Get custom UI for e-signatures

Authorizations:
bearerAuth
path Parameters
id
any

The id of a UI template

Responses

Response Schema: application/json
object (FesCreateUi)

The following options can be specified:

  • enableHeaderBar can display or not the header bar of the iFrame. The default value is true.
  • enableHeaderBarSignAs can display or not the bar just below the header bar to mention the name of the signer. The default value is true.
  • enableSidebar can display or not the sidebar, where you can find documents and signers just on the left of the document viewer. The default value is true.
  • enableMemberList is located in the sidebar. You can display or not the members list (signers or validators of the procedure). The default value is true.
  • enableDocumentList is located in the sidebar. You can display or not documents list. The default value is true.
  • enableDocumentDownload is located in the document list. You can authorize or not to download document by your users. The default value is true.
  • enableActivities is located in the sidebar. You can access to activities feed that display who sign, validate or comment the procedure. The default value is true.
  • authenticationPopup For signing, a user will be redirected to a view which will request a security b. You can change it just by a popup on the document's viewer by turning this field to true. The default value is false.
  • enableRefuseComment can display or not the popup which contains the comment asked when the participant refuse the procedure. The default value is true.

Request samples

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

Content type
application/json
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

SPID

Methods that allow you to obtain 4 types of spid (at the moment only personal spid is available)

Personal spid

This method allows you to obtain a url for registering a personal spid with a duration of 1 year

Authorizations:
bearerAuth

Responses

Response Schema: application/json
object
success
boolean
message
string
error
integer

Request samples

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

Content type
application/json
{}