Invia Scontrini Elettronici all'Agenzia delle Entrate in modo semplice, veloce e con elevati standard di sicurezza.
Automatizza l’invio dei documenti commerciali tramite API in tempo reale.
Tutte le informazioni di cui hai bisogno
Qui trovi qualche consiglio da prendere in considerazione per approcciare a questa API. Se preferisci forniamo esempi di codice, documentazione in OAS3, la possibilità di provare l'API dal vivo con la Swagger UI oppure importare l'intera collezione in Postman. Offriamo inoltre un ambiente di Sandbox dove puoi sperimentare tutte le API gratuitamente.
Prendi il token nell'apposita sezione prima di cominciare.
Configura l'azienda
POST /IT-configurations
Questo endpoint permette di creare una nuova configurazione per l'azienda. È possibile anche specificare le credenziali e gli URL di callback per ricevere notifiche sugli scontrini.
Visualizzazione delle configurazioni
GET /IT-configurations
Questo endpoint consente di ottenere l'elenco delle configurazioni registrate per l'azienda, comprese le credenziali e le callback impostate.
Aggiornamento di una configurazione esistente
PATCH /IT-configurations/{fiscal_id}
Questo endpoint consente di aggiornare le credenziali, aggiungere opzioni e modificare gli URL di callback associati a una configurazione esistente.
Eliminazione di una configurazione
DELETE /IT-configurations/{fiscal_id}
Questo endpoint permette di eliminare una configurazione. Nota: se sono già stati inviati scontrini con questa configurazione, non sarà più possibile eliminarla.
Gestione degli scontrini
Creazione di un nuovo scontrino
POST /IT-receipts
Questo endpoint permette di inviare un nuovo scontrino elettronico. Il sistema genererà un id per identificare univocamente lo scontrino e invierà una notifica all'URL configurato.
Registrazione di un reso
PATCH /IT-receipts/{id}
Se un cliente restituisce un prodotto, questo endpoint consente di aggiornare lo scontrino esistente e generarne uno per registrare il reso.
Annullamento di uno scontrino
DELETE /IT-receipts/{id}
Questo endpoint consente di annullare uno scontrino precedentemente inviato, generando uno scontrino di annullamento. Il sistema invierà una notifica di annullamento all'URL configurato.
Visualizzazione degli scontrini
GET /IT-receipts
Questo endpoint restituisce l'elenco degli scontrini registrati, con la possibilità di filtrare per data, importo o altri parametri.
- Oas file url https://console.openapi.com/oas/it/invoice.openapi.json
- Fork or import with Postman
- Production domain invoice.openapi.com
- Sandbox domain test.invoice.openapi.com
-
Production Scopes 8
- POST invoice.openapi.com/IT-configurations
- PATCH invoice.openapi.com/IT-configurations
- GET invoice.openapi.com/IT-configurations
- DELETE invoice.openapi.com/IT-configurations
- POST invoice.openapi.com/IT-receipts
- GET invoice.openapi.com/IT-receipts
- DELETE invoice.openapi.com/IT-receipts
- PATCH invoice.openapi.com/IT-receipts
-
Sandbox Scopes 8
- POST test.invoice.openapi.com/IT-configurations
- PATCH test.invoice.openapi.com/IT-configurations
- GET test.invoice.openapi.com/IT-configurations
- DELETE test.invoice.openapi.com/IT-configurations
- POST test.invoice.openapi.com/IT-receipts
- GET test.invoice.openapi.com/IT-receipts
- DELETE test.invoice.openapi.com/IT-receipts
- PATCH test.invoice.openapi.com/IT-receipts
Invoice (1.0.0)
API per la gestione delle configurazioni delle fatture e delle ricevute digitali nel rispetto della normativa fiscale. Questo servizio consente alle aziende di configurare le impostazioni di fatturazione e gestire le ricevute, garantendo la conformità agli standard dell'Agenzia delle Entrate per la fatturazione elettronica e la trasmissione delle ricevute digitali. Supporta lo scambio sicuro di dati, l'invio di ricevute in tempo reale e l'aggiornamento della configurazione per i requisiti di rendicontazione fiscale.
IMPORTANTE: Si ricorda che non è possibile inviare ricevute tra le 23:55 e le 00:00 (fuso orario italiano) all'Agenzia delle Entrate. Per questo motivo, tutte le ricevute inviate in questa fascia oraria saranno inviate nel primo momento disponibile, ovvero nei primi minuti del nuovo giorno.
NB: È necessario abilitare il codice fiscale inserito nella configurazione alla voce receipts_authentication-taxCode per l'invio delle ricevute. Seguire la procedura descritta in questo link.
Recuperare tutte le configurazioni IT.
Recupera tutte le configurazioni IT associate all'utente. Questo endpoint restituisce un elenco di configurazioni, compresi i dettagli fiscali e le impostazioni di notifica API. Consente alle aziende di gestire l'integrazione con l'autorità fiscale e di monitorare gli eventi relativi alle ricevute.
Authorizations:
Responses
Response Schema: application/json
Array of objects (ITConfigurationResponse) |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://invoice.openapi.com/IT-configurations"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": [
- {
- "fiscal_id": "YourCompanyFiscal_id",
- "name": "nameCompany",
- "receipts_authentication": null,
- "taxCode": "FHHWMF96L52D111B",
- "api_configurations": [
- {
- "event": "receipt",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-error",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- "receipts": true,
- "active": true,
- "create_timestamp": 1738323790,
- "id": "679ca42e**********016f18"
- {
- "fiscal_id": "YourCompanyFiscal_id2",
- "name": "nameCompany2",
- "receipts_authentication": {
- "taxCode": "FHHWMF96L52D111B"
- "api_configurations": [
- {
- "event": "receipt",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-credentials",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-retry",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-error",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- "receipts": true,
- "active": true,
- "create_timestamp": 1738318895,
- "id": "679ca42e**********016df7"
- "success": true,
- "message": "",
- "error": null
Creare una nuova configurazione IT.
La configurazione IT è uno strumento utilizzato per impostare e gestire i dati aziendali per la propria attività. Funziona come un'entità che rappresenta un'azienda gestita dal proprio account. Attraverso questa configurazione è possibile personalizzare diverse impostazioni
IMPORTANTE: Per ricevere le notifiche, è necessario inserire le api_configurazioni e impostare l'evento come indicato negli schemi. Sarà sempre possibile aggiornare i dati con la configurazione PATCH IT
Per l'invio di ricevute, è necessario abilitare l'opzione receipts a true.
Per impostazione predefinita, saranno tutte impostate su false.
Sarà possibile configurare gratuitamente fino a 10 aziende al giorno, successivamente verrà applicato il prezzo indicato
Authorizations:
Request Body schema: application/json
fiscal_id required | string L'identificativo fiscale univoco (partita IVA o codice fiscale) dell'azienda registrata presso l'Agenzia delle Entrate. |
name required | string Il nome della società o dell'ente associato all'ID fiscale. |
email required | string <email> L'indirizzo e-mail utilizzato per le comunicazioni e le notifiche. Non può essere modificato dopo la creazione della configurazione. |
receipts | boolean Indica se il sistema deve gestire le ricevute digitali. |
object Credenziali di autenticazione richieste per l'invio della ricevuta digitale. | |
Array of objects non-empty Configurazione di callback basati su eventi per la ricezione di notifiche. |
Responses
Response Schema: application/json
object | |
success | boolean |
message | string |
error | string or null |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "fiscal_id": "YourCompanyFiscal_id",
- "name": "nameCompany",
- "receipts": true,
- "receipts_authentication": {
- "taxCode": "FHHWMF96L52D111B",
- "password": "1234567891****d",
- "pin": "1********4"
- "api_configurations": [
Response samples
- 200
- 409
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "name": "nameCompany",
- "receipts_authentication": {
- "taxCode": "FHHWMF96L52D111B"
- "api_configurations": [
- {
- "event": "receipt",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-credentials",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-retry",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-error",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- "receipts": true,
- "active": true,
- "create_timestamp": 1738318895,
- "id": "679ca42e**********016df7"
- "success": true,
- "message": "",
- "error": null
Recuperare una singola configurazione IT in base al codice fiscale.
Questo endpoint restituisce i dettagli di una configurazione individuale, compresi i dettagli fiscali e le impostazioni di notifica API. Consente alle aziende di gestire l'integrazione con l'Agenzia delle entrate e di monitorare gli eventi relativi alle ricevute
Authorizations:
path Parameters
fiscal_id required | string |
Responses
Response Schema: application/json
object | |
success | boolean |
message | string |
error | string or null |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://invoice.openapi.com/IT-configurations/%7Bfiscal_id%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- "data": {
- "fiscal_id": "YourCompanyFiscal_id2",
- "name": "nameCompany2",
- "receipts_authentication": {
- "taxCode": "FHHWMF96L52D111B"
- "api_configurations": [
- {
- "event": "receipt",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-credentials",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-retry",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-error",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- "receipts": true,
- "active": true,
- "create_timestamp": 1738318895,
- "id": "679ca42e**********016df7"
- "success": true,
- "message": "",
- "error": null
Aggiornare una configurazione IT esistente.
Questo servizio consente di modificare o aggiornare i dati di autenticazione nel caso in cui siano scaduti. È anche possibile aggiornare le configurazioni dell'API. Se non si desidera più ricevere notifiche per un evento specifico, è sufficiente impostare il callback a null.
NB: Le credenziali nella ricezione_autenticazione devono essere aggiornate ogni 90 giorni (per l'Agenzia delle entrate).
Authorizations:
path Parameters
fiscal_id required | string |
Request Body schema: application/json
receipts | boolean Indica se il sistema deve gestire le ricevute digitali. |
object Credenziali di autenticazione richieste per l'invio della ricevuta digitale. | |
Array of objects non-empty Configurazione di callback basati su eventi per la ricezione di notifiche. |
Responses
Response Schema: application/json
object | |
success | boolean |
message | string |
error | string or null |
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "receipts": true,
- "receipts_authentication": {
- "taxCode": "FHHWMF96L52D111B",
- "password": "1234567891****d",
- "pin": "1********4"
- "api_configurations": [
Response samples
- 200
- 400
- 409
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "name": "nameCompany",
- "receipts_authentication": {
- "taxCode": "FHHWMF96L52D111B"
- "api_configurations": [
- {
- "event": "receipt",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-credentials",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-retry",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- {
- "event": "receipt-error",
- "callback": {
- "method": "JSON",
- "user_id": "",
- "username": "",
- "field": "data",
- "headers": { },
- "data": { },
- "retry": 0,
- "scope": null,
- "domain": null,
- "custom": null
- "receipts": true,
- "active": true,
- "create_timestamp": 1738318895,
- "id": "679ca42e**********016df7"
- "success": true,
- "message": "",
- "error": null
Eliminare una configurazione IT in base al codice fiscale.
Questo servizio consente di eliminare la configurazione.
Nota: La configurazione può essere eliminata solo se non sono state inviate ricevute. Le ricevute possono essere inviate tramite l'endpoint POST /IT-receipts. Una volta inviate le ricevute, la configurazione non può essere eliminata.
Authorizations:
path Parameters
fiscal_id required | string |
Responses
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_easy_setopt(hnd, CURLOPT_URL, "https://invoice.openapi.com/IT-configurations/%7Bfiscal_id%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- 404
- "data": "null",
- "success": true,
- "message": "Deleted configuration for id: YourCompanyFiscal_id",
- "error": null
Recuperare tutte le ricevute IT.
Questo endpoint recupera un elenco di ricevute IT, consentendo di filtrare in base a vari parametri. Gli utenti possono filtrare i risultati in base a ID fiscale, numero_documento, stato, type, data_creazione, data_documento e ID_receipt_genitore.
Le opzioni di paginazione includono il salto per specificare il numero di record da omettere e il limite per definire il numero massimo di record restituiti (con un tetto massimo di 100).
tax_id, status e type supportano valori multipli separandoli con una virgola (ad esempio, fiscal_id_1,fiscal_id_2).
status valori validi: nuovo, riprovato, inviato, pronto, fallito, annullato.
type valori validi: sale, return, void.
created_at e document_date devono seguire il formato YYYY-MM-DD.
Questo endpoint restituisce una risposta JSON strutturata contenente le ricevute corrispondenti.
Authorizations:
query Parameters
fiscal_id | string Filtrare le ricevute per ID fiscale. |
document_number | string Filtrare le ricevute per numero di documento. |
status | Array of strings Items Enum: "new" "retry" "submitted" "ready" "failed" "voided" Filtrare le ricevute in base allo stato. È possibile fornire più valori, separati da virgole. |
type | Array of strings Items Enum: "sale" "return" "void" Filtrare le ricevute per tipo. È possibile fornire più valori, separati da virgole. |
created_at | string <date> Filtrare le ricevute per data di creazione (formato AAAA-MM-GG). |
document_date | string <date> Filtrare le ricevute per data del documento (formato AAAA-MM-GG). |
parent_receipt_id | string Filtrare le ricevute in base all'ID della ricevuta del genitore. |
skip | integer >= 0 Numero di record da saltare per la paginazione. |
limit | integer [ 1 .. 100 ] Numero di record da restituire (max 100). |
Responses
Response Schema: application/json
Array of objects (ResponseReturnReceipt) |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://invoice.openapi.com/IT-receipts?fiscal_id=SOME_STRING_VALUE&document_number=SOME_STRING_VALUE&status=SOME_ARRAY_VALUE&type=SOME_ARRAY_VALUE&created_at=SOME_STRING_VALUE&document_date=SOME_STRING_VALUE&parent_receipt_id=SOME_STRING_VALUE&skip=SOME_INTEGER_VALUE&limit=SOME_INTEGER_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
- 200
- "data": [
- {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "id": "489432",
- "quantity": 11,
- "description": "test definitivo",
- "gross_price": 10,
- "vat_rate": "22",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 1,
- "taxable_amount": 8.19672131,
- "net_taxable_amount": 8.19672131,
- "vat_amount": 1.80327868,
- "total_amount": 10,
- "unit_discount": 0,
- "sku": "product1"
- "cash_payment_amount": 4.5,
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": null,
- "lottery_code": null,
- "created_at": "2025-01-31T16:29:52.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 10,
- "document_number": "OPENAPI2025/0000-4712",
- "document_date": "2025-01-31T16:30:00.000Z",
- "transaction_id": "4712",
- "create_timestamp": 1738340991,
- "parent_receipt_id": "6as******************b52",
- "status": "ready",
- "type": "return",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 8.19672132,
- "total_uncollected_amount": 0,
- "total_vat_amount": 1.80327868,
- "update_timestamp": 1738341005,
- "id": "679ca42e**********016f18",
- "tags": [
- "es1",
- "es2"
- {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "id": "250652",
- "quantity": 11,
- "description": "test definitivo",
- "gross_price": 10,
- "vat_rate": "22",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 0,
- "taxable_amount": 90.16393442,
- "net_taxable_amount": 90.16393442,
- "vat_amount": 19.83606558,
- "total_amount": 110,
- "unit_discount": 0,
- "sku": "product2"
- "cash_payment_amount": 4.5,
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": "string",
- "lottery_code": null,
- "created_at": "2025-01-31T16:07:19.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 110,
- "document_number": "OPENAPI2025/0000-4711",
- "document_date": "2025-01-31T16:07:26.000Z",
- "transaction_id": "4711",
- "create_timestamp": 1738339638,
- "status": "ready",
- "type": "sale",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 90.16393442,
- "total_uncollected_amount": 0,
- "total_vat_amount": 19.83606558,
- "update_timestamp": 1738341005,
- "id": "6as******************b52"
- {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "id": "200170",
- "quantity": 11,
- "description": "test definitivo",
- "gross_price": 10,
- "vat_rate": "22",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 0,
- "taxable_amount": 90.16393442,
- "net_taxable_amount": 90.16393442,
- "vat_amount": 19.83606558,
- "total_amount": 110,
- "unit_discount": 0,
- "sku": "product3"
- "cash_payment_amount": 4.5,
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": "string",
- "lottery_code": null,
- "created_at": "2025-01-31T14:08:20.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 110,
- "document_number": "OPENAPI2025/0000-4706",
- "document_date": "2025-01-31T14:08:28.000Z",
- "transaction_id": "4706",
- "create_timestamp": 1738332500,
- "status": "ready",
- "type": "sale",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 90.16393442,
- "total_uncollected_amount": 0,
- "total_vat_amount": 19.83606558,
- "update_timestamp": 1738332518,
- "id": "671skdjapsj78*********23"
- "success": true,
- "message": "",
- "error": null
Creare una nuova ricevuta.
Questo servizio consente di creare una Smart Electronic Receipt per una vendita online. La Smart Receipt sostituisce l'emissione di una ricevuta attraverso un registratore di cassa telematico ed è ideale per le transazioni online.
A differenza della fattura elettronica B2C, la Smart Electronic Receipt non richiede il codice fiscale del cliente. Interagisce direttamente con il portale fiscale dello Stato (cassetto fiscale) per generare e conservare lo scontrino, agendo come proxy per l'utente.
Importante: Prima di utilizzare questo servizio, è necessario impostare una configurazione informatica che rappresenti la "Partita IVA" che invia le ricevute. Assicurarsi che il campo ricevute: true sia incluso nel corpo della richiesta di configurazione IT.
Ambiente sandbox: Il sandbox simula la comunicazione con il portale dell'Agenzia delle Entrate. In questo ambiente verranno simulati gli identificativi delle Smart Receipt. Le credenziali reali per la configurazione IT del mittente non sono necessarie nell'ambiente sandbox, mentre sono necessarie per l'ambiente di produzione.
NB: È importante impostare i seguenti eventi per i callback:
- receipt: Questo evento viene attivato quando una nuova ricevuta viene inviata e pronta
- ricevuta-credenziali: Questo evento viene attivato quando ci sono aggiornamenti sulle credenziali
- receipt-retry:Questo evento viene attivato quando la comunicazione con il portale dell'Agenzia delle Entrate non è andata a buon fine e si tenterà di inviare nuovamente la ricevuta
- questo evento viene attivato quando il portale dell'Agenzia delle Entrate segnala un errore*
- appointee Questo evento viene generato quando il processo di assegnazione di una nomina per le ricevute intelligenti è riuscito
Questo perché i dettagli della ricevuta saranno aggiornati in base al type dell'evento.
Prima di inviare un documento al portale dell'Agenzia delle Entrate, OpenaApi esegue alcuni controlli sui dati inviati. Se c'è qualcosa di sbagliato nei dati inviati
Authorizations:
Request Body schema: application/json
fiscal_id required | string Il numero di partita IVA dell'azienda che emette la ricevuta, senza il prefisso del paese. |
required | Array of objects Elenco degli articoli della ricevuta. |
invoice_issuing | boolean Flag che indica se verrà emessa una fattura. |
services_uncollected_amount | number Importo non riscosso in euro per servizi. |
goods_uncollected_amount | number Importo non riscosso in euro per le merci consegnate. |
electronic_payment_amount | number Importo pagato elettronicamente in EUR. |
ticket_restaurant_payment_amount | number Importo pagato con il ticket restaurant in EUR. |
ticket_restaurant_quantity | integer Numero di buoni pasto utilizzati. |
discount | number Lo sconto viene applicato al momento del pagamento ma non modifica l'importo imponibile. |
lottery_code | string Codice della lotteria che consente al cliente di partecipare alla lotteria degli scontrini. Il codice della lotteria deve essere composto da 8 caratteri alfanumerici. Il codice della lotteria non può essere utilizzato se l'importo totale è inferiore a 1,00 euro o se il pagamento non è stato completamente elettronico" |
linked_receipt | string Riferimento a una ricevuta collegata, se applicabile. |
cash_payment_amount required | number Importo pagato in contanti in euro. |
tags | Array of objects È possibile inserire i dettagli della ricevuta. |
Responses
Response Schema: application/json
object | |
success | boolean Indica se l'operazione è andata a buon fine. |
message | string Messaggio aggiuntivo relativo all'operazione. |
error | string or null Messaggio di errore, se applicabile. |
Callbacks
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "quantity": 11,
- "description": "test",
- "unit_price": 10,
- "vat_rate_code": "22",
- "discount": 0,
- "complimentary": true,
- "sku": "product1"
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "lottery_code": "1a3v5g7f",
- "linked_receipt": "string",
- "cash_payment_amount": 4.5,
- "tags": [
- [
- "store1",
- "store2"
Response samples
- 200
- 400
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "quantity": 11,
- "description": "test ultimate",
- "unit_price": 10,
- "vat_rate_code": "22",
- "complimentary": true,
- "discount": 0,
- "sku": "product1"
- "cash_payment_amount": 4.5,
- "id": "679cd95***************23",
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": "string",
- "lottery_code": null,
- "created_at": "2025-01-31T14:08:20.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 0,
- "document_number": "",
- "document_date": null,
- "transaction_id": null,
- "create_timestamp": 1738332500,
- "status": "new",
- "type": "sale",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 0,
- "total_uncollected_amount": 0,
- "total_vat_amount": 0,
- "update_timestamp": 1738341000,
- "tags": [
- [
- "store1",
- "store2"
- "success": true,
- "message": "",
- "error": null
Callback payload samples
Nel callback, verranno restituiti i vari tipi e stati della ricevuta. Questa è la risposta in cui la ricevuta è stata emessa con successo ed è pronta.
- "data": {
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "id": "200170",
- "quantity": 10,
- "description": "prodotto",
- "gross_price": 10,
- "vat_rate": "22",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 0,
- "taxable_amount": 90.16393442,
- "net_taxable_amount": 90.16393442,
- "vat_amount": 19.83606558,
- "total_amount": 110,
- "unit_discount": 0
- "cash_payment_amount": 100,
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": "string",
- "lottery_code": null,
- "created_at": "2025-01-31T14:08:20.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 110,
- "document_number": "OPENAPI2025/0000-4706",
- "document_date": "2025-01-31T14:08:28.000Z",
- "transaction_id": "4706",
- "create_timestamp": 1738332500,
- "status": "ready",
- "type": "sale",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 90.16393442,
- "total_uncollected_amount": 0,
- "total_vat_amount": 19.83606558,
- "update_timestamp": 1738332518,
- "id": "679c**********1111111111"
- "custom": null
Recupera una singola ricevuta per ID.
Recupera i dettagli di una singola ricevuta utilizzando il suo identificativo univoco. L'ID della ricevuta deve essere fornito nel percorso della richiesta.
Authorizations:
path Parameters
id required | string Example: 679cd95***************23 |
Responses
Response Schema: application/json
object |
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET"); curl_easy_setopt(hnd, CURLOPT_URL, "https://invoice.openapi.com/IT-receipts/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "id": "'200170'",
- "quantity": 10,
- "description": "product",
- "gross_price": 10,
- "vat_rate": "'22'",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 0,
- "taxable_amount": 90.16393442,
- "net_taxable_amount": 90.16393442,
- "vat_amount": 19.83606558,
- "total_amount": 110,
- "unit_discount": 0,
- "sku": "product1"
- "cash_payment_amount": 100,
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": "string",
- "lottery_code": null,
- "created_at": "2025-01-31T14:08:20.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 110,
- "document_number": "OPENAPI2025/0000-4706",
- "document_date": "2025-01-31T14:08:28.000Z",
- "transaction_id": "4706",
- "create_timestamp": 1738332500,
- "status": "ready",
- "type": "sale",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 90.16393442,
- "total_uncollected_amount": 0,
- "total_vat_amount": 19.83606558,
- "update_timestamp": 1738332518,
- "id": "679c**********1111111111"
Restituire uno o più articoli da uno scontrino.
Questo endpoint consente di restituire uno o più articoli di uno specifico scontrino. L'ID della ricevuta è fornito nel percorso, mentre gli articoli da restituire sono specificati nel corpo della richiesta con i rispettivi ID e quantità.
NB: La risposta di questo endpoint è una nuova ricevuta collegata alla precedente. Viene impostata una nuova chiave, parent_receipt_id, che sarà popolata con l'ID della ricevuta da cui vengono effettuati i resi.
Authorizations:
path Parameters
id required | string Example: 679c***6d00d0***b23 Identificatore univoco della ricevuta da aggiornare. |
Request Body schema: application/json
Array of objects Elenco degli articoli da restituire. |
Responses
Response Schema: application/json
object |
Callbacks
Request samples
- Payload
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
- "items": [
- {
- "id": "374813",
- "quantity": 2
Response samples
- 200
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- { }
- "cash_payment_amount": 0,
- "id": "112ss95***************2",
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": null,
- "lottery_code": null,
- "created_at": "2025-01-31T16:29:52.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": null,
- "document_number": "",
- "document_date": null,
- "transaction_id": null,
- "create_timestamp": 1738340991,
- "parent_receipt_id": "679cf5377be****b540a2b52",
- "status": "new",
- "type": "return",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 0,
- "total_uncollected_amount": 0,
- "total_vat_amount": 0,
- "update_timestamp": 1738341000,
- "tags": [
- "store1",
- "store2"
Callback payload samples
Nel callback, verranno restituiti i vari tipi e stati della ricevuta. Questa è la risposta in cui la ricevuta è stata emessa con successo ed è pronta.
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "id": "250652",
- "quantity": 1,
- "description": "prodotto",
- "gross_price": 10,
- "vat_rate": "22",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 1,
- "taxable_amount": 90.16393442,
- "net_taxable_amount": 90.16393442,
- "vat_amount": 19.83606558,
- "total_amount": 110,
- "unit_discount": 0
- "cash_payment_amount": 0,
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": "string",
- "lottery_code": null,
- "created_at": "2025-01-31T16:07:19.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 110,
- "document_number": "OPENAPI2025/0000-4711",
- "document_date": "2025-01-31T16:07:26.000Z",
- "transaction_id": "4711",
- "create_timestamp": 1738339638,
- "status": "ready",
- "type": "sale",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 90.16393442,
- "total_uncollected_amount": 0,
- "total_vat_amount": 19.83606558,
- "update_timestamp": 1738341005,
- "id": "679cf5377be****b540a2b52"
- "custom": null
Eliminare una ricevuta per ID.
Questo endpoint consente di annullare una ricevuta entro 24 ore dalla sua presentazione. Il sistema genererà una nuova ricevuta di annullamento collegata a quella originale attraverso il parametro parent_receipt_id.
La ricevuta di annullamento rifletterà l'annullamento della transazione originale mantenendo la tracciabilità.
In caso di successo, la risposta includerà i dettagli della nuova ricevuta di annullamento creata.
Authorizations:
path Parameters
id required | string Example: 6a9**************d077b23 |
Responses
Response Schema: application/json
object | |
message | string Messaggio di conferma per la ricevuta annullata. |
success | boolean Indica se l'operazione di annullamento è andata a buon fine. |
error | string or null Messaggio di errore in caso di fallimento, nullo in caso di successo. |
Callbacks
Request samples
- C + Libcurl
- Csharp + Restsharp
- Go + Native
- Java + Okhttp
- Java + Unirest
- Javascript + Jquery
- Javascript + Xhr
- Node + Native
- Node + Request
- Node + Unirest
- Objc + Nsurlsession
- Ocaml + Cohttp
- Php + Curl
- Php + Http1
- Php + Http2
- Python + Python3
- Python + Requests
- Ruby + Native
- Shell + Curl
- Shell + Httpie
- Shell + Wget
- Swift + Nsurlsession
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_easy_setopt(hnd, CURLOPT_URL, "https://invoice.openapi.com/IT-receipts/%7Bid%7D"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); CURLcode ret = curl_easy_perform(hnd);
Response samples
- 200
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": {
- "id": "'200170'",
- "quantity": 10,
- "description": "product",
- "gross_price": 10,
- "vat_rate": "'22'",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 0,
- "taxable_amount": 90.16393442,
- "net_taxable_amount": 90.16393442,
- "vat_amount": 19.83606558,
- "total_amount": 110,
- "unit_discount": 0,
- "sku": "product1"
- "cash_payment_amount": 4.5,
- "id": "6b7****************03b8d2",
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": null,
- "lottery_code": null,
- "created_at": "2025-01-31T16:29:52.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": null,
- "document_number": "",
- "document_date": null,
- "transaction_id": null,
- "create_timestamp": 1738340991,
- "parent_receipt_id": "6a9**************d077b23",
- "status": "new",
- "type": "return",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 0,
- "total_uncollected_amount": 0,
- "total_vat_amount": 0,
- "update_timestamp": 1738341000
- "message": "voided receipt: 6a9**************d077b23",
- "success": true,
- "error": "nulll"
Callback payload samples
Nel callback vengono restituiti i vari tipi e stati della ricevuta. Questa è la risposta se la ricevuta è stata annullata con successo.
- "data": {
- "fiscal_id": "YourCompanyFiscal_id",
- "items": [
- {
- "id": "250652",
- "quantity": 11,
- "description": "prodotto",
- "gross_price": 10,
- "vat_rate": "22",
- "gross_discount": 0,
- "complimentary": true,
- "unit_price": 8.19672131,
- "return": 0,
- "taxable_amount": 90.16393442,
- "net_taxable_amount": 90.16393442,
- "vat_amount": 19.83606558,
- "total_amount": 110,
- "unit_discount": 0
- "cash_payment_amount": 4.5,
- "invoice_issuing": false,
- "services_uncollected_amount": 0,
- "goods_uncollected_amount": 0,
- "electronic_payment_amount": 0,
- "ticket_restaurant_payment_amount": 0,
- "ticket_restaurant_quantity": 0,
- "discount": 0,
- "linked_receipt": "string",
- "lottery_code": null,
- "created_at": "2025-01-31T16:07:19.000Z",
- "error_message": null,
- "error_code": null,
- "total_amount": 110,
- "document_number": "OPENAPI2025/0000-4711",
- "document_date": "2025-01-31T16:07:26.000Z",
- "transaction_id": "4711",
- "create_timestamp": 1738339638,
- "status": "voided",
- "type": "sale",
- "deductible_amount": 0,
- "total_discount": 0,
- "total_gross_discount": 0,
- "total_taxable_amount": 90.16393442,
- "total_uncollected_amount": 0,
- "total_vat_amount": 19.83606558,
- "update_timestamp": 1738341005,
- "id": "679cf5377be****b540a2b52"
- "custom": null