Electronic invoicing easy, fast and with high security standards
Automates sending, signing, receiving and digital storage of electronic invoices via API
All the knowledge you need
Here you can find some advice to consider to approach this API. If you prefer, we provide code samples, OAS3 documentation, the ability to try the API live via the Swagger UI or import the entire collection into Postman. We also offer a Sandbox environment where you can experiment with all kinds of requests completely free of charge.
Useful tips to start with
SDI Electronic Invoicing
Get the token in the appropriate section before you start.
Use the the online tool or generate it via API. Set the expire date, a usefull name and now add a bunch of scopes to limit the possible actions your token can do.
Configure the company
Configure the company with /business_registry_configurations, choosing between regular, signed, or signed and archived invoices. If you choose to enable archiving, the credentials will be sent to the email address provided during configuration. Note that the email address and VAT number are unique. This operation should only be performed when setting up the company for the first time.
Configure notifications to manage approvals and rejections
Configure callbacks with /api_configurations, setting one or more of these options if needed: 'supplier-invoice' (passive invoice), 'customer-invoice' (active invoice), 'customer-notification' (reject or accept notification), 'legal-storage-missing-vat', 'legal-storage-receipt' (archival receipt). In this way, you will receive a call with the invoice object directly to the URL you provided.
This operation should only be performed when setting up the company for the first time.
If you are interested in the passive cycle, follow this guide first: https://openapi.it/en/blog/register-recipient-code-italian-revenue-agency.html
This operation should only be performed when setting up the company for the first time.
If you are interested in the passive cycle, follow this guide first: https://openapi.it/en/blog/register-recipient-code-italian-revenue-agency.html
Send the first invoice
Use the endpoints
/invoices,
/invoices_signature,
/invoices_legal_storage, or
/invoices_signature_legal_storage
based on your needs. They allow you to send the invoice in either XML (compatible with the XML invoicing standard) or JSON format.
Once the invoice is sent, the notification will be received at the URL specified in the notification configuration.
The response to an invoice send will contain a uuid that can be used later to retrieve the invoice /invoices, any notifications /invoices_notifications, or download the invoice /invoices_download
Once the invoice is sent, the notification will be received at the URL specified in the notification configuration.
The response to an invoice send will contain a uuid that can be used later to retrieve the invoice /invoices, any notifications /invoices_notifications, or download the invoice /invoices_download
- Oas file url https://console.openapi.com/oas/en/sdi.openapi.json
- Fork or import with Postman
- Production domain sdi.openapi.it
- Sandbox domain test.sdi.openapi.it
-
Production Scopes 21
- GET sdi.openapi.it/invoices
- POST sdi.openapi.it/invoices
- GET sdi.openapi.it/invoices_download
- DELETE sdi.openapi.it/business_registries
- POST sdi.openapi.it/business_registry_configurations
- POST sdi.openapi.it/api_configurations
- DELETE sdi.openapi.it/api_configurations
- GET sdi.openapi.it/api_configurations
- DELETE sdi.openapi.it/business_registry_configurations
- GET sdi.openapi.it/business_registry_configurations
- GET sdi.openapi.it/invoices_notifications
- POST sdi.openapi.it/supplier_invoice_imports
- POST sdi.openapi.it/customer_invoice_imports
- GET sdi.openapi.it/invoices_stats
- PATCH sdi.openapi.it/business_registry_configurations
- POST sdi.openapi.it/invoices_signature
- POST sdi.openapi.it/invoices_legal_storage
- POST sdi.openapi.it/invoices_signature_legal_storage
- POST sdi.openapi.it/supplier_invoice_imports_legal_storage
- POST sdi.openapi.it/customer_invoice_imports_legal_storage
- POST sdi.openapi.it/simulate-supplier-invoice
-
Sandbox Scopes 20
- GET test.sdi.openapi.it/invoices
- POST test.sdi.openapi.it/invoices
- GET test.sdi.openapi.it/invoices_download
- POST test.sdi.openapi.it/business_registry_configurations
- POST test.sdi.openapi.it/api_configurations
- DELETE test.sdi.openapi.it/api_configurations
- GET test.sdi.openapi.it/api_configurations
- DELETE test.sdi.openapi.it/business_registry_configurations
- GET test.sdi.openapi.it/business_registry_configurations
- GET test.sdi.openapi.it/invoices_notifications
- POST test.sdi.openapi.it/supplier_invoice_imports
- POST test.sdi.openapi.it/customer_invoice_imports
- GET test.sdi.openapi.it/invoices_stats
- PATCH test.sdi.openapi.it/business_registry_configurations
- POST test.sdi.openapi.it/invoices_signature
- POST test.sdi.openapi.it/invoices_legal_storage
- POST test.sdi.openapi.it/invoices_signature_legal_storage
- POST test.sdi.openapi.it/supplier_invoice_imports_legal_storage
- POST test.sdi.openapi.it/customer_invoice_imports_legal_storage
- POST test.sdi.openapi.it/simulate