Run with Postman

Ufficio Postale (1.0.0)

This web service allows the delivery of postal products like Raccomandate, Telegrammi, Posta Prioritaria through Poste Italiane

  1. Create a new mail with a POST request
  2. Check the prices and confirm it with a PATCH, or use autoconfirm: true
  3. Receive the status updates of your mail by providing a callback url

Note: There are some limitations regarding the size of a PDF document. Please read the 'document' field in the description of the endpoint that you want to use.

Error handling

When a sending error occurs, the response will include a message and a data.wrong_fields: []: each element of wrong_fields is a string which indicates where the error was generated from. This makes it very easy to integrate in your front-end form, where you can highlight the wrong entries

Testing

When using the Sandbox environment, you will receive update callbacks a short time after creating the request with placeholder content. It is also possible, for some products, to force the execution of the callback in the sandbox environment.

Ufficio Postale

Get pricings

Returns a list of prices for various kinds of services

Authorizations:

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/pricing/");

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

OK

{
  • "data": [
    ],
  • "success": true,
  • "message": "",
  • "error": null
}

Get pricing for a specific service

Returns pricing information for the specified postal service.

Authorizations:
path Parameters
service
required
string
Default: "<string>"
Enum: "atti_giudiziari" "raccomandate" "telegrammi" "ordinarie" "ordinarie" "prioritarie" "telegrammi_estero" "raccomandate_estero" "ordinarie_estero" "prioritarie_estero"

The specific postal service to get pricing for.

Responses

Response Schema: application/json
object (PricingData)
success
boolean

Indicates whether the request was successful

message
string

Additional information or status message

error
object or null

Error details, if any. Null if the request was successful

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/pricing/%7Bservice%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
Example
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Get countries list

Returns a list of countries with available postal services. You can optionally filter by service type by adding a path parameter. Available service types are: telegramma_estero, raccomandata_estero, ordinaria_estero, prioritaria_estero.

Example: /nazioni/telegramma_estero

This will return only countries where the specified service is available, including the pricing zone.

Zone information:

  • For raccomandata_estero, ordinaria_estero, and prioritaria_estero: Zones range from 1 to 3.
  • For telegramma_estero: Zones range from A to H.

The zone determines the pricing tier for each country and service. For detailed pricing information, please refer to the /pricing/ endpoint.

Authorizations:
path Parameters
service
required
string
Default: "<string>"
Enum: "telegramma_estero" "raccomandata_estero" "ordinaria_estero" "prioritaria_estero"

Optional. Filter countries by specific postal service.

Responses

Response Schema: application/json
object
success
boolean

Indicates if the request was successful

message
string

Additional information about the response

error
object or null

Error details, if any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/nazioni/%7Bservice%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
Example
{
  • "data": {
    },
  • "success": true,
  • "message": "",
  • "error": null
}

Get full countries list

Returns a list of all countries with their available postal services.

Authorizations:

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/nazioni/");

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 all cover configurations

Retrieves a list of all cover configurations created

Authorizations:

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/covers/");

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
}

Create a new cover

Create a new cover for postal services including Registered Mail, Priority Mail, and Ordinary Mail.

You can insert either custom text or an image, the image must be in a supported format (e.g., JPEG, PNG)

You can find details and examples of the individual field in the schema

Example Cover PDF

Authorizations:
Request Body schema: application/json
object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

string or string
mittente
string <base64>
Default: "<base64>"

Text or Base64 encoded image of the sender's logo. Recommended size is 340 x 79 pixels.Image of the sender's logo.

  • It must be an image that includes all essential details of the sender, such as: - First and last name (or company name) - Complete address - Postal code - City and state/province - Any contacts (phone, email) - VAT number or Tax ID (if applicable) The image must be in a supported format (e.g., JPEG, PNG) and of appropriate dimensions for display in the document.

    Example

string or string
string or string
string or string
string or string

Responses

Response Schema: application/json
object
success
boolean

Indicates if the request was successful.

message
string

Additional message regarding the request.

error
string or null

Error message if an error occurred, null otherwise.

Request samples

Content type
application/json
{
  • "callback": {
    },
  • "header": "<string>",
  • "mittente": "<base64>",
  • "dettaglioMittente": "<string>",
  • "body": "<string>",
  • "footer": "<string>",
  • "dettaglioLettera": "<string>"
}

Response samples

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

Get specific cover configuration

Retrieves the configuration of a specific cover by its ID. Optionally can download the preview if the status is READY.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

Unique identifier of the cover

Responses

Response Schema: application/json
object
success
boolean

Indicates if the request was successful

message
string

Additional message regarding the request

error
string or null

Error message if an error occurred, null otherwise

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/covers/%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
}

Get specific cover preview

Retrieves the configuration of a specific cover by its ID. Optionally can download the preview if the status is READY.If the cover status is READY, returns the preview for download instead of the configuration

Authorizations:
path Parameters
id
required
string
Default: "<string>"

Unique identifier of the cover

Responses

Response Schema: application/pdf
string <binary>

Preview PDF file (only when preview=true and status is READY)

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/covers/%7Bid%7D/preview");

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
{
  • "success": false,
  • "message": "No configuration found",
  • "error": 1045,
  • "data": null
}

List of addresses

Authorizations:
query Parameters
cap
string
Default: "<string>"
Example: cap=05100
comune
string
Default: "<string>"
Example: comune=terni
dug
string
Default: "<string>"
Example: dug=via

Responses

Response Schema: application/json
data
Array of strings <= 2 items
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/indirizzi/?cap=05100&comune=terni&dug=via");

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": null
}

List of all available dugs

(denomiazioni urbanistiche generiche)

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/dug/");

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": "1 Risultato",
  • "success": true,
  • "error": null
}

Track your product

Authorizations:
path Parameters
id
required
string
Default: "<string>"

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/tracking/%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": "1 Risultati",
  • "success": true,
  • "error": null
}

Get information about a postal code Deprecated

Authorizations:
path Parameters
code
required
string
Default: "<string>"
Example: 05100

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/comuni/05100");

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

OK

{
  • "data": [
    ],
  • "message": "1 Risultati",
  • "success": true,
  • "error": null
}

Telegrammi

Get information about a telegram

Authorizations:
path Parameters
id
required
string
Default: "<string>"
query Parameters
state
string
Default: "<string>"
Example: state=NEW

If the option has been set, it returns a specifc schema with state equal to the one requested

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/telegrammi/%7Bid%7D?state=NEW");

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
}

Confirm send of a telegram

Confirm sending a telegram that was created with "autoconfirm = false"

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Request Body schema: application/json
confirmed
boolean
Default: "<boolean>"

Responses

Request samples

Content type
application/json
{
  • "confirmed": true
}

Response samples

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

Download accettazione Telegrammi

Download the "accettazione" receipt if requested at the time of submission .

  • Acceptance is the process that certifies the acknowledgment of a request by the system. During this phase, the data provided by the user is validated, and if correct, an acceptance receipt is generated. This receipt is a digital document that formally confirms the acceptance of the request and marks the starting point for subsequent processing.

The acceptance receipt includes:

  • The date and time of acceptance.
  • Details about the requested service, the sender, and the recipient.
  • A digital signature and timestamp, ensuring its legal validity.

Acceptance is a fundamental step to guarantee traceability, transparency, and legal compliance for the services provided.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/telegrammi/%7Bid%7D/accettazione");

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/pdf
pdf

List your telegrams

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/telegrammi/");

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": "1 Risultati",
  • "success": true,
  • "error": null
}

Create your request

Send a telegram. You should provide information about the sender and the receiver(s) in the post body. Additionally, the "autoconfirm" parameter can be set to false to save the telegram for a later confirmation with a PATCH request, while you do custom logic with the response.

This endpoint now supports sending foreign telegrams. Here are the key details:

  • Foreign Telegram Support: You can now send telegrams to international destinations.
  • Single Recipient: Foreign telegrams are limited to one recipient only.
  • Address Format: For foreign telegrams, it's crucial to write the complete address within the 'indirizzo' (address) field as shown in the example.
  • Province Setting: The 'provincia' (province) field will be automatically set to 'EE' (estero/foreign) for foreign addresses.
  • Pricing Information: To check the rates for foreign telegrams, you can use the /pricing/ endpoint.
  • Available Options: All options specific to foreign telegrams are listed in the schema. Any additional options not listed will be ignored.
  • List of Countries: For a list of countries to which you can send foreign telegrams, please refer to the /nazioni/ endpoint.

Please refer to the schema for the complete list of fields and options available for both domestic and foreign telegrams.

Authorizations:
Request Body schema: application/json
Array of telegramma_options (object) or telegramma_foreign_options (object) <= 2 items [ items ]
object
Array of recipient (object) or foreign_recipient (object) <= 2 items [ items ]
object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

documento
any (documentoTelegramma)

The "document" field must be an array with a single element of type text. No other types of content such as HTML, PDF, URL, or base64 are allowed. The text within the array must not exceed 8100 Characters and 2000 words.

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
object or null

Callbacks

Request samples

Content type
application/json
Example
{
  • "mittente": {
    },
  • "destinatari": [
    ],
  • "documento": [
    ],
  • "opzioni": {
    },
  • "callback": {}
}

Response samples

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

Callback payload samples

Callback
POST: {$request.body#/opzioni/callback_url}
Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": {
    },
  • "documento": [
    ],
  • "opzioni": {
    },
  • "prodotto": "string",
  • "creation_timestamp": 0,
  • "update_timestamp": 0,
  • "username": "string",
  • "confirmed": true,
  • "state": "string",
  • "documento_validato": {
    },
  • "pricing": {
    },
  • "confirmed_timestamp": 0,
  • "id": "string"
}

Atti Giudiziari

This product offers a tracking code

Download archiviazione Atti Giudiziari

Download the archival document when it is ready. You can check the status here. The documents will be digitally signed by the responsible representative of Poste Italiane, timestamped, and stored in a dedicated document management system.

NB: The client declares compliance with the provisions of Law No. 53 of January 21, 1994, particularly regarding the management and preservation of digitally archived documents. Specifically:

  • The client is responsible for downloading the digital archive of the document within 2 months from its availability.
  • The client assumes full responsibility for retaining this copy, as it will not be stored in our archives beyond the specified timeframe.
  • Failure to download or properly retain the document will result in the loss of the archived version, and no recovery will be possible from our systems.
Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

IdDestinatario
required
string
Default: "<string>"

You can check the destinatari.id [here](https://console.openapi.com/it/apis/ufficiopostale/documentation#/Atti Giudiziari/get_raccomandate__id_).

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/atti_giudiziari/%7Bid%7D/destinatari/%7BIdDestinatario%7D/archiviazione");

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/pdf
pdf

Download Digital Return Receipt (AR Digitale)

Downloads the Return Receipt (Avviso di Ricevimento - AR) in digital format for a specific recipient of a Judicial Act (Atto Giudiziario).

The Digital Return Receipt (Avviso di Ricevimento Digitale - AR Digitale) is a legally valid electronic document that certifies the notification of the act. It is produced only if the digital return receipt option was enabled during submission. The returned document is digitally signed and timestamped.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of the Judicial Act request (Atto Giudiziario).

IdDestinatario
required
string
Default: "<string>"

ID of the recipient for whom the Digital Return Receipt (AR Digitale) is requested. It can be found in the destinatari object of the GET /atti_giudiziari/{id} response.

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.ufficiopostale.com/atti_giudiziari/%7Bid%7D/destinatari/%7BIdDestinatario%7D/ardigitale");

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
{
  • "success": false,
  • "message": "Digital Return Receipt not found or not yet available.",
  • "error": 2017,
  • "data": null
}

Download accettazione Atti Giudiziari

Download the "accettazione" receipt if requested at the time of submission .

  • Acceptance is the process that certifies the acknowledgment of a request by the system. During this phase, the data provided by the user is validated, and if correct, an acceptance receipt is generated. This receipt is a digital document that formally confirms the acceptance of the request and marks the starting point for subsequent processing.

The acceptance receipt includes:

  • The date and time of acceptance.
  • Details about the requested service, the sender, and the recipient.
  • A digital signature and timestamp, ensuring its legal validity.

Acceptance is a fundamental step to guarantee traceability, transparency, and legal compliance for the services provided.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/atti_giudiziari/%7Bid%7D/accettazione");

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/pdf
pdf

Get information about a Atto Giudiziaro

Check the NumeroRaccomandata field in the recipient object if you need the tracking number

Authorizations:
path Parameters
id
required
string
Default: "<string>"
query Parameters
state
string
Default: "<string>"
Example: state=NEW

If the option has been set, it returns a specifc schema with state equal to the one requested

callback
string
Default: "<string>"
Example: callback=<empty string>

Simulates the progress of the shipment status: every time that this endpoint is called, your request progresses the the next shipping status.
If specified in the request, you will receive callback updates.
Please note that this option is avaialble ONLY for the sandbox environment

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/atti_giudiziari/%7Bid%7D?state=NEW&callback=%3Cempty%20string%3E");

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
}

Confirm send Atti Giudiziari

Confirm sending a atto_giudiziaro that was created with "autoconfirm = false"

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Request Body schema: application/json
confirmed
boolean
Default: "<boolean>"

Responses

Request samples

Content type
application/json
{
  • "confirmed": true
}

Response samples

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

List your Atti Giudiziari

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/atti_giudiziari/");

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": "1 Risultati",
  • "success": true,
  • "error": null
}

Create your request

A "Atto Giudiziario" is a legal document used to formally notify a judicial action, such as summons, payment orders, or court rulings. Italian law requires these documents to be sent via a special registered mail service that ensures:

  • Delivery traceability.
  • Issuance of a return receipt (Avviso di Ricevimento, AR).
  • Legal validity of the delivery, as required by law.
  • Sending a Judicial Act through an API allows companies to automate and centrally manage the process of sending, confirming, and tracking, while maintaining compliance with regulations regarding judicial notifications.

Send an "Atto Giudiziario" with the following requirements:

  • Delivery is limited to the national territory, with a maximum weight of 2 kg.
  • Shipments to foreign destinations, including Vatican City and San Marino, are not allowed.
  • Shipments cannot be directed to P.O. Boxes.
  • Delivery occurs within 5 business days, plus an additional 2 days for printing.
  • A single national rate applies to all shipments within the territory, regardless of logistical destination.
  • The recipient of the return receipt (23L) must have the same name as the sender.
  • The "AR" option is mandatory and can be set to true, or an object with the AR recipient's details can be provided.
    • IMPORTANT: The recipient’s name must match the sender of the "Atto Giudiziario."
  • The "autoconfirm" parameter can be set to false to save the Raccomandata for later confirmation via a PATCH request, allowing for custom handling of the response.

Check the NumeroRaccomandata field in the recipient object if you need the tracking number

NB: The client declares compliance with the provisions of Law No. 53 of January 21, 1994, particularly regarding the management and preservation of digitally archived documents. Specifically:

  • The client is responsible for downloading the digital archive of the document within 2 months from its availability.
  • The client assumes full responsibility for retaining this copy, as it will not be stored in our archives beyond the specified timeframe.
  • Failure to download or properly retain the document will result in the loss of the archived version, and no recovery will be possible from our systems.
Authorizations:
Request Body schema: application/json
object (atti_giudiziari_options)
object (atti_giudiziari_sender_object)
object (atti_giudiziari_recipient_object)
Array of strings or string (documento)

The document can either be a string or an array of strings in plain text.
The strings can either be:

  • Plain text
  • Formatted in HTML, with style, header tags etc..
  • An URL pointing to either a webpage, a PDF or an image file (urls must start with http). The content is deduced from the "Content-Type" header
  • A base64-encoded PDF file. Encoded strings are deducted by the base64 content header data:application/pdf;base64,: basically, in order to mark a string as a base64-encoded content, you should prepend the aforementioned string to the output.
    The request will return an error if the decoding process fails on the server
The service analyses the "documento" (document) field, merges all the strings/document/images in different pages, compresses it slightly (if possible) and generates a single PDF file.

The maximum size for a PDF document, after our compression, is 5 MB for every products execept Posta 4 PRO, Posta Massiva and Raccomandata Smart (these 3 products accept up to 15 MB maximum).

The maximum number of pages is currently 50, or 100 is using the fronteretro option.

object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
object or null

Callbacks

Request samples

Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": [
    ],
  • "documento": [
    ],
  • "opzioni": {
    }
}

Response samples

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

Callback payload samples

Callback
POST: {$request.body#/opzioni/callback_url}
Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": {
    },
  • "documento": [
    ],
  • "opzioni": {
    },
  • "prodotto": "string",
  • "creation_timestamp": 0,
  • "update_timestamp": 0,
  • "username": "string",
  • "confirmed": true,
  • "state": "string",
  • "documento_validato": {
    },
  • "pricing": {
    },
  • "confirmed_timestamp": 0,
  • "id": "string"
}

Raccomandate

This product offers a tracking code

List your Raccomandate

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/raccomandate/");

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": "1 Risultati",
  • "success": true,
  • "error": null
}

Create your request

Send a Raccomandata. You should provide information about the sender and the receiver(s) in the post body. Additionally, the "autoconfirm" parameter can be set to false to save the Raccomandata for a later confirmation with a PATCH request, while you do custom logic with the response. Check the NumeroRaccomandata field in the recipient object if you need the tracking number

This endpoint now supports sending international registered mail. Here are the key details:

  • International Raccomandata Support: You can now send registered mail to international destinations.
  • Multiple Recipients: Foreign Raccomandata are limited to one recipient only. recipients.
  • Address Format: For international registered mail, ensure you provide the complete address within the appropriate fields as shown in the example.
  • Province Setting: For international addresses, the 'provincia' (province) field should be left empty or set according to the destination country's format.
  • Pricing Information: To check the rates for international registered mail, you can use the /pricing/ endpoint.
  • Available Options: All options specific to international registered mail are listed in the schema. Any additional options not listed will be ignored.
  • List of Countries: For a list of countries to which you can send international registered mail, please refer to the /nazioni/ endpoint. This endpoint provides both pricing information and the list of available countries for international services.

Please refer to the schema for the complete list of fields and options available for both domestic and international registered mail.

Authorizations:
Request Body schema: application/json
Array of raccomandata_options (object) or ForeignRaccomandataOption (object) <= 2 items [ items ]
object (common_sender_object)
Array of (Recipient or Casella postale (Recipient (object) or Casella postale (object))) or ForeignRecipient (object) <= 2 items [ items ]
object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Array of strings or string (documento)

The document can either be a string or an array of strings in plain text.
The strings can either be:

  • Plain text
  • Formatted in HTML, with style, header tags etc..
  • An URL pointing to either a webpage, a PDF or an image file (urls must start with http). The content is deduced from the "Content-Type" header
  • A base64-encoded PDF file. Encoded strings are deducted by the base64 content header data:application/pdf;base64,: basically, in order to mark a string as a base64-encoded content, you should prepend the aforementioned string to the output.
    The request will return an error if the decoding process fails on the server
The service analyses the "documento" (document) field, merges all the strings/document/images in different pages, compresses it slightly (if possible) and generates a single PDF file.

The maximum size for a PDF document, after our compression, is 5 MB for every products execept Posta 4 PRO, Posta Massiva and Raccomandata Smart (these 3 products accept up to 15 MB maximum).

The maximum number of pages is currently 50, or 100 is using the fronteretro option.

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
object or null

Callbacks

Request samples

Content type
application/json
Example
{
  • "mittente": {
    },
  • "destinatari": [
    ],
  • "documento": [
    ],
  • "opzioni": {
    }
}

Response samples

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

Callback payload samples

Callback
POST: {$request.body#/opzioni/callback_url}
Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": {
    },
  • "documento": [
    ],
  • "opzioni": {
    },
  • "prodotto": "string",
  • "creation_timestamp": 0,
  • "update_timestamp": 0,
  • "username": "string",
  • "confirmed": true,
  • "state": "string",
  • "documento_validato": {
    },
  • "pricing": {
    },
  • "confirmed_timestamp": 0,
  • "id": "string"
}

Download archiviazione Raccomandata

Download the archival document when it is ready. You can check the status here. The documents will be digitally signed by the responsible representative of Poste Italiane, timestamped, and stored in a dedicated document management system.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

IdDestinatario
required
string
Default: "<string>"

You can check the destinatari.id here.

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/raccomandate/%7Bid%7D/destinatari/%7BIdDestinatario%7D/archiviazione");

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/pdf
pdf

Download accettazione Raccomandate

Download the "accettazione" receipt if requested at the time of submission .

  • Acceptance is the process that certifies the acknowledgment of a request by the system. During this phase, the data provided by the user is validated, and if correct, an acceptance receipt is generated. This receipt is a digital document that formally confirms the acceptance of the request and marks the starting point for subsequent processing.

The acceptance receipt includes:

  • The date and time of acceptance.
  • Details about the requested service, the sender, and the recipient.
  • A digital signature and timestamp, ensuring its legal validity.

Acceptance is a fundamental step to guarantee traceability, transparency, and legal compliance for the services provided.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/raccomandate/%7Bid%7D/accettazione");

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/pdf
pdf

Get information about a Raccomandata

Check the NumeroRaccomandata field in the recipient object if you need the tracking number

Authorizations:
path Parameters
id
required
string
Default: "<string>"
query Parameters
state
string
Default: "<string>"
Example: state=NEW

If the option has been set, it returns a specifc schema with state equal to the one requested

callback
string
Default: "<string>"
Example: callback=<empty string>

Simulates the progress of the shipment status: every time that this endpoint is called, your request progresses the the next shipping status.
If specified in the request, you will receive callback updates.
Please note that this option is avaialble ONLY for the sandbox environment

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/raccomandate/%7Bid%7D?state=NEW&callback=%3Cempty%20string%3E");

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
}

Confirm send Posta Raccomandate

Confirm sending a Raccomandata that was created with "autoconfirm = false"

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Request Body schema: application/json
confirmed
boolean
Default: "<boolean>"

Responses

Request samples

Content type
application/json
{
  • "confirmed": true
}

Response samples

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

Posta Prioritaria

This product offers a code to track status updates

List your requests

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/prioritarie/");

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": "1 Risultati",
  • "success": true,
  • "error": null
}

Create your request

Send a priority mail. You should provide information about the sender and the receiver(s) in the post body. Additionally, the "autoconfirm" parameter can be set to false to save the mail for a later confirmation with a PATCH request, while you do custom logic with the response. Check the IdRicevuta field in the recipient object if you need the tracking number

This endpoint now supports sending foreign Prioritaria. Here are the key details:

  • Foreign Prioritaria Support: You can now send Prioritaria to international destinations.
  • Single Recipient: Foreign Prioritaria are limited to one recipient only.
  • Address Format: For foreign Prioritaria, it's crucial to write the complete address within the 'indirizzo' (address) field as shown in the example.
  • Province Setting: The 'provincia' (province) field will be automatically set to 'EE' (estero/foreign) for foreign addresses.
  • Pricing Information: To check the rates for foreign Prioritaria, you can use the /pricing/ endpoint.
  • Available Options: All options specific to foreign Prioritaria are listed in the schema. Any additional options not listed will be ignored.
  • List of Countries: For a list of countries to which you can send foreign Prioritaria, please refer to the /nazioni/ endpoint.

Please refer to the schema for the complete list of fields and options available for both domestic and foreign priority mail.

Authorizations:
Request Body schema: application/json
Array of posta_options (object) or ForeignPostaOption (object) <= 2 items [ items ]
Array of (Recipient or Casella postale (Recipient (object) or Casella postale (object))) or ForeignRecipient (object) <= 2 items [ items ]
object
Array of strings or string (documento)

The document can either be a string or an array of strings in plain text.
The strings can either be:

  • Plain text
  • Formatted in HTML, with style, header tags etc..
  • An URL pointing to either a webpage, a PDF or an image file (urls must start with http). The content is deduced from the "Content-Type" header
  • A base64-encoded PDF file. Encoded strings are deducted by the base64 content header data:application/pdf;base64,: basically, in order to mark a string as a base64-encoded content, you should prepend the aforementioned string to the output.
    The request will return an error if the decoding process fails on the server
The service analyses the "documento" (document) field, merges all the strings/document/images in different pages, compresses it slightly (if possible) and generates a single PDF file.

The maximum size for a PDF document, after our compression, is 5 MB for every products execept Posta 4 PRO, Posta Massiva and Raccomandata Smart (these 3 products accept up to 15 MB maximum).

The maximum number of pages is currently 50, or 100 is using the fronteretro option.

object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
object or null

Callbacks

Request samples

Content type
application/json
Example
{
  • "mittente": {
    },
  • "destinatari": [
    ],
  • "documento": [
    ],
  • "opzioni": {
    }
}

Response samples

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

Callback payload samples

Callback
POST: {$request.body#/opzioni/callback_url}
Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": {
    },
  • "documento": [
    ],
  • "opzioni": {
    },
  • "prodotto": "string",
  • "creation_timestamp": 0,
  • "update_timestamp": 0,
  • "username": "string",
  • "confirmed": true,
  • "state": "string",
  • "documento_validato": {
    },
  • "pricing": {
    },
  • "confirmed_timestamp": 0,
  • "id": "string"
}

Download accettazione Posta Prioritaria

Download the "accettazione" receipt if requested at the time of submission .

  • Acceptance is the process that certifies the acknowledgment of a request by the system. During this phase, the data provided by the user is validated, and if correct, an acceptance receipt is generated. This receipt is a digital document that formally confirms the acceptance of the request and marks the starting point for subsequent processing.

The acceptance receipt includes:

  • The date and time of acceptance.
  • Details about the requested service, the sender, and the recipient.
  • A digital signature and timestamp, ensuring its legal validity.

Acceptance is a fundamental step to guarantee traceability, transparency, and legal compliance for the services provided.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/prioritarie/%7Bid%7D/accettazione");

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/pdf
pdf

Download archiviazione Prioritarie

Download the archival document when it is ready. You can check the status here. The documents will be digitally signed by the responsible representative of Poste Italiane, timestamped, and stored in a dedicated document management system.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

IdDestinatario
required
string
Default: "<string>"

You can check the destinatari.id here.

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/prioritarie/%7Bid%7D/destinatari/%7BIdDestinatario%7D/archiviazione");

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/pdf
pdf

Get information about a single priority mail

Authorizations:
path Parameters
id
required
string
Default: "<string>"
query Parameters
state
string
Default: "<string>"
Example: state=NEW

If the option has been set, it returns a specifc schema with state equal to the one requested

callback
string
Default: "<string>"

Simulates the progress of the shipment status: every time that this endpoint is called, your request progresses the the next shipping status.
If specified in the request, you will receive callback updates.
Please note that this option is avaialble ONLY for the sandbox environment

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/prioritarie/%7Bid%7D?state=NEW&callback=SOME_STRING_VALUE");

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
}

Confirm send Posta Prioritaria

Confirm sending a mail that was created with "autoconfirm = false"

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Request Body schema: application/json
confirmed
boolean
Default: "<boolean>"

Responses

Request samples

Content type
application/json
{
  • "confirmed": true
}

Response samples

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

Posta Ordinaria

List your requests

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/ordinarie/");

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": "1 Risultati",
  • "success": true,
  • "error": null
}

Create your request

Send a standard mail. You should provide information about the sender and the receiver(s) in the post body. Additionally, the "autoconfirm" parameter can be set to false to save the mail for a later confirmation with a PATCH request, while you do custom logic with the response.

This endpoint now supports sending foreign Ordinaria. Here are the key details:

  • Foreign Ordinaria Support: You can now send Ordinaria to international destinations.
  • Single Recipient: Foreign Ordinaria are limited to one recipient only.
  • Address Format: For foreign Ordinaria, it's crucial to write the complete address within the 'indirizzo' (address) field as shown in the example.
  • Province Setting: The 'provincia' (province) field will be automatically set to 'EE' (estero/foreign) for foreign addresses.
  • Pricing Information: To check the rates for foreign Ordinaria, you can use the /pricing/ endpoint.
  • Available Options: All options specific to foreign Ordinaria are listed in the schema. Any additional options not listed will be ignored.
  • List of Countries: For a list of countries to which you can send foreign Ordinaria, please refer to the /nazioni/ endpoint.

Please refer to the schema for the complete list of fields and options available for both domestic and foreign standard mail.

Authorizations:
Request Body schema: application/json
Array of posta_options (object) or ForeignPostaOption (object) <= 2 items [ items ]
object
Array of (Recipient or Casella postale (Recipient (object) or Casella postale (object))) or ForeignRecipient (object) <= 2 items [ items ]
object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Array of strings or string (documento)

The document can either be a string or an array of strings in plain text.
The strings can either be:

  • Plain text
  • Formatted in HTML, with style, header tags etc..
  • An URL pointing to either a webpage, a PDF or an image file (urls must start with http). The content is deduced from the "Content-Type" header
  • A base64-encoded PDF file. Encoded strings are deducted by the base64 content header data:application/pdf;base64,: basically, in order to mark a string as a base64-encoded content, you should prepend the aforementioned string to the output.
    The request will return an error if the decoding process fails on the server
The service analyses the "documento" (document) field, merges all the strings/document/images in different pages, compresses it slightly (if possible) and generates a single PDF file.

The maximum size for a PDF document, after our compression, is 5 MB for every products execept Posta 4 PRO, Posta Massiva and Raccomandata Smart (these 3 products accept up to 15 MB maximum).

The maximum number of pages is currently 50, or 100 is using the fronteretro option.

Responses

Response Schema: application/json
Array of objects[ items ]
success
boolean
message
string
error
object or null

Callbacks

Request samples

Content type
application/json
Example
{
  • "mittente": {
    },
  • "destinatari": [
    ],
  • "documento": [
    ],
  • "opzioni": {
    }
}

Response samples

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

Callback payload samples

Callback
POST: {$request.body#/opzioni/callback_url}
Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": {
    },
  • "documento": [
    ],
  • "opzioni": {
    },
  • "prodotto": "string",
  • "creation_timestamp": 0,
  • "update_timestamp": 0,
  • "username": "string",
  • "confirmed": true,
  • "state": "string",
  • "documento_validato": {
    },
  • "pricing": {
    },
  • "confirmed_timestamp": 0,
  • "id": "string"
}

Download accettazione Posta Ordinaria

Download the "accettazione" receipt if requested at the time of submission .

  • Acceptance is the process that certifies the acknowledgment of a request by the system. During this phase, the data provided by the user is validated, and if correct, an acceptance receipt is generated. This receipt is a digital document that formally confirms the acceptance of the request and marks the starting point for subsequent processing.

The acceptance receipt includes:

  • The date and time of acceptance.
  • Details about the requested service, the sender, and the recipient.
  • A digital signature and timestamp, ensuring its legal validity.

Acceptance is a fundamental step to guarantee traceability, transparency, and legal compliance for the services provided.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/ordinarie/%7Bid%7D/accettazione");

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/pdf
pdf

Download archiviazione Ordinaria

Download the archival document when it is ready. You can check the status here. The documents will be digitally signed by the responsible representative of Poste Italiane, timestamped, and stored in a dedicated document management system.

Authorizations:
path Parameters
id
required
string
Default: "<string>"

ID of request

IdDestinatario
required
string
Default: "<string>"

You can check the destinatari.id here.

Responses

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/ordinarie/%7Bid%7D/destinatari/%7BIdDestinatario%7D/archiviazione");

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/pdf
pdf

Get information about a single mail

Authorizations:
path Parameters
id
required
string
Default: "<string>"
query Parameters
state
string
Default: "<string>"
Example: state=NEW

If the option has been set, it returns a specifc schema with state equal to the one requested

Responses

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

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/ordinarie/%7Bid%7D?state=NEW");

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
}

Confirm send Posta Ordinaria

Confirm sending a mail that was created with "autoconfirm = false"

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Request Body schema: application/json
confirmed
boolean
Default: "<boolean>"

Responses

Request samples

Content type
application/json
{
  • "confirmed": true
}

Response samples

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

Raccomandata Smart

List your raccomandate_smart

List your raccomandate_smart

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
message
string
success
boolean
error
any

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/raccomandate_smart/");

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": "1 Risultati",
  • "success": true,
  • "error": null
}

Create your request

Send a Raccomandata Smart. You should provide information about the sender and the receiver(s) in the post body. Additionally, the "autoconfirm" parameter can be set to false to save it for a later confirmation with a PATCH request, while you do custom logic with the response.

Authorizations:
Request Body schema: application/json
object
object
Recipient (object) or Casella postale (object) (Recipient or Casella postale)

It is mandatory to enter the full name(nome, cognome) or business name(ragione sociale).

Array of strings or string (documento)

The document can either be a string or an array of strings in plain text.
The strings can either be:

  • Plain text
  • Formatted in HTML, with style, header tags etc..
  • An URL pointing to either a webpage, a PDF or an image file (urls must start with http). The content is deduced from the "Content-Type" header
  • A base64-encoded PDF file. Encoded strings are deducted by the base64 content header data:application/pdf;base64,: basically, in order to mark a string as a base64-encoded content, you should prepend the aforementioned string to the output.
    The request will return an error if the decoding process fails on the server
The service analyses the "documento" (document) field, merges all the strings/document/images in different pages, compresses it slightly (if possible) and generates a single PDF file.

The maximum size for a PDF document, after our compression, is 5 MB for every products execept Posta 4 PRO, Posta Massiva and Raccomandata Smart (these 3 products accept up to 15 MB maximum).

The maximum number of pages is currently 50, or 100 is using the fronteretro option.

object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Responses

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

Callbacks

Request samples

Content type
application/json
{
  • "mittente": [
    ],
  • "destinatari": [
    ],
  • "opzioni": {
    },
  • "callback": {}
}

Response samples

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

Callback payload samples

Callback
POST: {$request.body#/opzioni/callback_url}
Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": {
    },
  • "documento": [
    ],
  • "opzioni": {
    },
  • "prodotto": "string",
  • "creation_timestamp": 0,
  • "update_timestamp": 0,
  • "username": "string",
  • "confirmed": true,
  • "state": "string",
  • "documento_validato": {
    },
  • "pricing": {
    },
  • "confirmed_timestamp": 0,
  • "id": "string"
}

List your single raccomandata smart

List your single raccomandata smart

Authorizations:
path Parameters
id
required
string
Default: "<string>"
query Parameters
state
string
Default: "<string>"
Example: state=NEW

If the option has been set, it returns a specifc schema with state equal to the one requested

Responses

Response Schema: application/json
object (ExampleState)
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.ufficiopostale.com/raccomandate_smart/%7Bid%7D?state=NEW");

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
}

Confirm send Raccomandata Smart

Confirm sending a mail that was created with "autoconfirm = false"

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Request Body schema: application/json
confirmed
boolean
Default: "<boolean>"

Responses

Request samples

Content type
application/json
{
  • "confirmed": true
}

Response samples

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

Posta Massiva

List your posta_massiva

List your posta_massiva

Authorizations:

Responses

Response Schema: application/json
Array of objects[ items ]
message
string
success
boolean
error
integer

Request samples

CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://ws.ufficiopostale.com/posta_massiva/");

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": "3 Risultati",
  • "success": true,
  • "error": null
}

Create your request

Send a posta_massiva. You should provide information about the sender and the receiver(s) in the post body. Additionally, the "autoconfirm" parameter can be set to false to save it for a later confirmation with a PATCH request, while you do custom logic with the response.

Authorizations:
Request Body schema: application/json
object
object
Recipient (object) or Casella postale (object) (Recipient or Casella postale)

It is mandatory to enter the full name(nome, cognome) or business name(ragione sociale).

Array of strings or string (documento)

The document can either be a string or an array of strings in plain text.
The strings can either be:

  • Plain text
  • Formatted in HTML, with style, header tags etc..
  • An URL pointing to either a webpage, a PDF or an image file (urls must start with http). The content is deduced from the "Content-Type" header
  • A base64-encoded PDF file. Encoded strings are deducted by the base64 content header data:application/pdf;base64,: basically, in order to mark a string as a base64-encoded content, you should prepend the aforementioned string to the output.
    The request will return an error if the decoding process fails on the server
The service analyses the "documento" (document) field, merges all the strings/document/images in different pages, compresses it slightly (if possible) and generates a single PDF file.

The maximum size for a PDF document, after our compression, is 5 MB for every products execept Posta 4 PRO, Posta Massiva and Raccomandata Smart (these 3 products accept up to 15 MB maximum).

The maximum number of pages is currently 50, or 100 is using the fronteretro option.

object (callback)

This is our standardized OpenAPI callback system. It enables the configuration of parameters for receiving notifications about status updates of asynchronous requests to this endpoint.

Responses

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

Callbacks

Request samples

Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": [
    ],
  • "documento": [
    ],
  • "opzioni": {
    }
}

Response samples

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

Callback payload samples

Callback
POST: {$request.body#/opzioni/callback_url}
Content type
application/json
{
  • "mittente": {
    },
  • "destinatari": {
    },
  • "documento": [
    ],
  • "opzioni": {
    },
  • "prodotto": "string",
  • "creation_timestamp": 0,
  • "update_timestamp": 0,
  • "username": "string",
  • "confirmed": true,
  • "state": "string",
  • "documento_validato": {
    },
  • "pricing": {
    },
  • "confirmed_timestamp": 0,
  • "id": "string"
}

List your single posta_massiva

List your single posta_massiva

Authorizations:
path Parameters
id
required
string
Default: "<string>"
query Parameters
state
string
Default: "<string>"
Example: state=NEW

If the option has been set, it returns a specifc schema with state equal to the one requested

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.ufficiopostale.com/posta_massiva/%7Bid%7D?state=NEW");

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
}

Confirm send Posta Massiva

Confirm sending a mail that was created with "autoconfirm = false"

Authorizations:
path Parameters
id
required
string
Default: "<string>"
Request Body schema: application/json
confirmed
boolean
Default: "<boolean>"

Responses

Request samples

Content type
application/json
{
  • "confirmed": true
}

Response samples

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