npm package: @invoicetronic/js-sdk
Description: The [Invoicetronic API][2] is a RESTful service that allows you to send and receive invoices through the Italian [Servizio di Interscambio (SDI)][1], or Interchange Service. The API is designed to be simple and easy to use, abstracting away SDI complexity
Latest version: 1.7.0

# JavaScript SDK for the Invoicetronic API

The [Invoicetronic API][2] is a RESTful service that allows you to send and receive invoices through the Italian [Servizio di Interscambio (SDI)][1], or Interchange Service. The API is designed to be simple and easy to use, abstracting away SDI complexity while providing complete control over the invoice send/receive process. It provides advanced features as encryption at rest, multi-language pre-flight invoice validation, multiple upload formats, webhooks, event logging, client SDKs, and CLI tools.

For more information, see  [Invoicetronic website][2]

[1]: https://www.fatturapa.gov.it/it/sistemainterscambio/cose-il-sdi/
[2]: https://invoicetronic.com/

This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.6.4
- Package version: 1.7
- Generator version: 7.20.0
- Build package: org.openapitools.codegen.languages.JavascriptClientCodegen
For more information, please visit [https://invoicetronic.com/en/contact/](https://invoicetronic.com/en/contact/)

## Installation

### For [Node.js](https://nodejs.org/)

#### npm

To publish the library as a [npm](https://www.npmjs.com/), please follow the procedure in ["Publishing npm packages"](https://docs.npmjs.com/getting-started/publishing-npm-packages).

Then install it via:

```shell
npm install @invoicetronic/js-sdk --save
```

Finally, you need to build the module:

```shell
npm run build
```

##### Local development

To use the library locally without publishing to a remote npm registry, first install the dependencies by changing into the directory containing `package.json` (and this README). Let's call this `JAVASCRIPT_CLIENT_DIR`. Then run:

```shell
npm install
```

Next, [link](https://docs.npmjs.com/cli/link) it globally in npm with the following, also from `JAVASCRIPT_CLIENT_DIR`:

```shell
npm link
```

To use the link you just defined in your project, switch to the directory you want to use your @invoicetronic/js-sdk from, and run:

```shell
npm link /path/to/<JAVASCRIPT_CLIENT_DIR>
```

Finally, you need to build the module:

```shell
npm run build
```

#### git

If the library is hosted at a git repository, e.g.https://github.com/invoicetronic/javascript-sdk
then install it via:

```shell
    npm install invoicetronic/javascript-sdk --save
```

### For browser

The library also works in the browser environment via npm and [browserify](http://browserify.org/). After following
the above steps with Node.js and installing browserify with `npm install -g browserify`,
perform the following (assuming *main.js* is your entry file):

```shell
browserify main.js > bundle.js
```

Then include *bundle.js* in the HTML pages.

### Webpack Configuration

Using Webpack you may encounter the following error: "Module not found: Error:
Cannot resolve module", most certainly you should disable AMD loader. Add/merge
the following section to your webpack config:

```javascript
module: {
  rules: [
    {
      parser: {
        amd: false
      }
    }
  ]
}
```

## Getting Started

Please follow the [installation](#installation) instruction and execute the following JS code:

```javascript
var invoicetronicSdk = require('@invoicetronic/js-sdk');

var defaultClient = invoicetronicSdk.ApiClient.instance;
// Configure HTTP basic authorization: Basic
var Basic = defaultClient.authentications['Basic'];
Basic.username = 'YOUR USERNAME'
Basic.password = 'YOUR PASSWORD'

var api = new invoicetronicSdk.CompanyApi()
var opts = {
  'page': 1, // {Number} Page number.
  'pageSize': 100, // {Number} Items per page. Cannot be greater than 200.
  'sort': "sort_example", // {String} Sort by field. Prefix with '-' for descending order.
  'q': "q_example" // {String} Full-text search across committente, prestatore, identifier, and file name.
};
api.companyGet(opts).then(function(data) {
  console.log('API called successfully. Returned data: ' + data);
}, function(error) {
  console.error(error);
});


```

## Documentation for API Endpoints

All URIs are relative to *http://localhost*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*invoicetronicSdk.CompanyApi* | [**companyGet**](docs/CompanyApi.md#companyGet) | **GET** /company | List companies
*invoicetronicSdk.CompanyApi* | [**companyIdDelete**](docs/CompanyApi.md#companyIdDelete) | **DELETE** /company/{id} | Delete a company
*invoicetronicSdk.CompanyApi* | [**companyIdGet**](docs/CompanyApi.md#companyIdGet) | **GET** /company/{id} | Get a company by id
*invoicetronicSdk.CompanyApi* | [**companyPost**](docs/CompanyApi.md#companyPost) | **POST** /company | Add a company
*invoicetronicSdk.CompanyApi* | [**companyPut**](docs/CompanyApi.md#companyPut) | **PUT** /company | Update a company
*invoicetronicSdk.CompanyApi* | [**companyVatGet**](docs/CompanyApi.md#companyVatGet) | **GET** /company/{vat} | Get a company by vat number
*invoicetronicSdk.ExportApi* | [**exportGet**](docs/ExportApi.md#exportGet) | **GET** /export | Export invoices as a ZIP archive
*invoicetronicSdk.HealthApi* | [**healthGet**](docs/HealthApi.md#healthGet) | **GET** /health | Health check
*invoicetronicSdk.LogApi* | [**logGet**](docs/LogApi.md#logGet) | **GET** /log | List events
*invoicetronicSdk.LogApi* | [**logIdGet**](docs/LogApi.md#logIdGet) | **GET** /log/{id} | Get an event by id
*invoicetronicSdk.ReceiveApi* | [**receiveGet**](docs/ReceiveApi.md#receiveGet) | **GET** /receive | List incoming invoices
*invoicetronicSdk.ReceiveApi* | [**receiveIdDelete**](docs/ReceiveApi.md#receiveIdDelete) | **DELETE** /receive/{id} | Delete an incoming invoice by id
*invoicetronicSdk.ReceiveApi* | [**receiveIdGet**](docs/ReceiveApi.md#receiveIdGet) | **GET** /receive/{id} | Get an incoming invoice by id
*invoicetronicSdk.ReceiveApi* | [**receiveIdPayloadGet**](docs/ReceiveApi.md#receiveIdPayloadGet) | **GET** /receive/{id}/payload | Get a receive invoice payload by id
*invoicetronicSdk.SendApi* | [**sendFilePost**](docs/SendApi.md#sendFilePost) | **POST** /send/file | Add an invoice by file
*invoicetronicSdk.SendApi* | [**sendGet**](docs/SendApi.md#sendGet) | **GET** /send | List invoices
*invoicetronicSdk.SendApi* | [**sendIdGet**](docs/SendApi.md#sendIdGet) | **GET** /send/{id} | Get a invoice by id
*invoicetronicSdk.SendApi* | [**sendIdPayloadGet**](docs/SendApi.md#sendIdPayloadGet) | **GET** /send/{id}/payload | Get a send invoice payload by id
*invoicetronicSdk.SendApi* | [**sendIdentifierGet**](docs/SendApi.md#sendIdentifierGet) | **GET** /send/{identifier} | Get a invoice by identifier
*invoicetronicSdk.SendApi* | [**sendJsonPost**](docs/SendApi.md#sendJsonPost) | **POST** /send/json | Add an invoice by json
*invoicetronicSdk.SendApi* | [**sendPost**](docs/SendApi.md#sendPost) | **POST** /send | Add an invoice
*invoicetronicSdk.SendApi* | [**sendValidateFilePost**](docs/SendApi.md#sendValidateFilePost) | **POST** /send/validate/file | Validate an invoice file
*invoicetronicSdk.SendApi* | [**sendValidateJsonPost**](docs/SendApi.md#sendValidateJsonPost) | **POST** /send/validate/json | Validate an invoice by json
*invoicetronicSdk.SendApi* | [**sendValidatePost**](docs/SendApi.md#sendValidatePost) | **POST** /send/validate | Validate an invoice
*invoicetronicSdk.SendApi* | [**sendValidateXmlPost**](docs/SendApi.md#sendValidateXmlPost) | **POST** /send/validate/xml | Validate an invoice by xml
*invoicetronicSdk.SendApi* | [**sendXmlPost**](docs/SendApi.md#sendXmlPost) | **POST** /send/xml | Add an invoice by xml
*invoicetronicSdk.StatusApi* | [**statusGet**](docs/StatusApi.md#statusGet) | **GET** /status | Account status
*invoicetronicSdk.UpdateApi* | [**updateGet**](docs/UpdateApi.md#updateGet) | **GET** /update | List updates
*invoicetronicSdk.UpdateApi* | [**updateIdGet**](docs/UpdateApi.md#updateIdGet) | **GET** /update/{id} | Get an update by id
*invoicetronicSdk.WebhookApi* | [**webhookGet**](docs/WebhookApi.md#webhookGet) | **GET** /webhook | List webhooks
*invoicetronicSdk.WebhookApi* | [**webhookIdDelete**](docs/WebhookApi.md#webhookIdDelete) | **DELETE** /webhook/{id} | Delete a webhook by id
*invoicetronicSdk.WebhookApi* | [**webhookIdGet**](docs/WebhookApi.md#webhookIdGet) | **GET** /webhook/{id} | Get a webhook by id
*invoicetronicSdk.WebhookApi* | [**webhookPost**](docs/WebhookApi.md#webhookPost) | **POST** /webhook | Add a webhook
*invoicetronicSdk.WebhookApi* | [**webhookPut**](docs/WebhookApi.md#webhookPut) | **PUT** /webhook | Update a webhook
*invoicetronicSdk.WebhookApi* | [**webhookhistoryGet**](docs/WebhookApi.md#webhookhistoryGet) | **GET** /webhookhistory | List webhook history items
*invoicetronicSdk.WebhookApi* | [**webhookhistoryIdGet**](docs/WebhookApi.md#webhookhistoryIdGet) | **GET** /webhookhistory/{id} | Get a webhook history item by id


## Documentation for Models

 - [invoicetronicSdk.Company](docs/Company.md)
 - [invoicetronicSdk.DocumentData](docs/DocumentData.md)
 - [invoicetronicSdk.Error](docs/Error.md)
 - [invoicetronicSdk.Event](docs/Event.md)
 - [invoicetronicSdk.ProblemDetails](docs/ProblemDetails.md)
 - [invoicetronicSdk.Receive](docs/Receive.md)
 - [invoicetronicSdk.Send](docs/Send.md)
 - [invoicetronicSdk.SendReduced](docs/SendReduced.md)
 - [invoicetronicSdk.Status](docs/Status.md)
 - [invoicetronicSdk.Update](docs/Update.md)
 - [invoicetronicSdk.WebHook](docs/WebHook.md)
 - [invoicetronicSdk.WebHookHistory](docs/WebHookHistory.md)


## Documentation for Authorization


Authentication schemes defined for the API:
### Basic

- **Type**: HTTP basic authentication