invoicetronic_sdk 1.7 → 1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/Gemfile.lock +2 -2
- data/README.md +19 -5
- data/docs/Company.md +5 -5
- data/docs/Event.md +4 -4
- data/docs/ModelSend.md +20 -18
- data/docs/Receive.md +16 -16
- data/docs/ReceiveApi.md +3 -3
- data/docs/SendApi.md +24 -12
- data/docs/SendReduced.md +3 -1
- data/docs/Status.md +5 -1
- data/docs/Update.md +4 -4
- data/docs/WebHook.md +13 -11
- data/docs/WebHookHistory.md +7 -5
- data/docs/WebhookApi.md +7 -7
- data/invoicetronic_sdk.gemspec +2 -2
- data/lib/invoicetronic_sdk/api/company_api.rb +2 -2
- data/lib/invoicetronic_sdk/api/export_api.rb +2 -2
- data/lib/invoicetronic_sdk/api/health_api.rb +2 -2
- data/lib/invoicetronic_sdk/api/log_api.rb +2 -2
- data/lib/invoicetronic_sdk/api/receive_api.rb +8 -8
- data/lib/invoicetronic_sdk/api/send_api.rb +52 -14
- data/lib/invoicetronic_sdk/api/status_api.rb +2 -2
- data/lib/invoicetronic_sdk/api/update_api.rb +2 -2
- data/lib/invoicetronic_sdk/api/webhook_api.rb +12 -12
- data/lib/invoicetronic_sdk/api_client.rb +3 -3
- data/lib/invoicetronic_sdk/api_error.rb +2 -2
- data/lib/invoicetronic_sdk/api_model_base.rb +2 -2
- data/lib/invoicetronic_sdk/configuration.rb +2 -2
- data/lib/invoicetronic_sdk/models/company.rb +4 -4
- data/lib/invoicetronic_sdk/models/document_data.rb +2 -2
- data/lib/invoicetronic_sdk/models/error.rb +2 -2
- data/lib/invoicetronic_sdk/models/event.rb +3 -3
- data/lib/invoicetronic_sdk/models/model_send.rb +30 -7
- data/lib/invoicetronic_sdk/models/problem_details.rb +2 -2
- data/lib/invoicetronic_sdk/models/receive.rb +6 -6
- data/lib/invoicetronic_sdk/models/send_reduced.rb +52 -7
- data/lib/invoicetronic_sdk/models/status.rb +26 -6
- data/lib/invoicetronic_sdk/models/update.rb +3 -3
- data/lib/invoicetronic_sdk/models/web_hook.rb +21 -10
- data/lib/invoicetronic_sdk/models/web_hook_history.rb +16 -5
- data/lib/invoicetronic_sdk/version.rb +3 -3
- data/lib/invoicetronic_sdk.rb +2 -2
- data/spec/api/company_api_spec.rb +2 -2
- data/spec/api/export_api_spec.rb +2 -2
- data/spec/api/health_api_spec.rb +2 -2
- data/spec/api/log_api_spec.rb +2 -2
- data/spec/api/receive_api_spec.rb +5 -5
- data/spec/api/send_api_spec.rb +14 -8
- data/spec/api/status_api_spec.rb +2 -2
- data/spec/api/update_api_spec.rb +2 -2
- data/spec/api/webhook_api_spec.rb +7 -7
- data/spec/models/company_spec.rb +2 -2
- data/spec/models/document_data_spec.rb +2 -2
- data/spec/models/error_spec.rb +2 -2
- data/spec/models/event_spec.rb +2 -2
- data/spec/models/model_send_spec.rb +12 -2
- data/spec/models/problem_details_spec.rb +2 -2
- data/spec/models/receive_spec.rb +2 -2
- data/spec/models/send_reduced_spec.rb +12 -2
- data/spec/models/status_spec.rb +14 -2
- data/spec/models/update_spec.rb +2 -2
- data/spec/models/web_hook_history_spec.rb +8 -2
- data/spec/models/web_hook_spec.rb +8 -2
- data/spec/spec_helper.rb +2 -2
- data/vendor/bundle/ruby/3.3.0/cache/psych-5.4.0.gem +0 -0
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-13.0.0/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.5.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/io-console-0.8.2/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/jaro_winkler-1.5.6/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/gem_make.out +10 -10
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/psych.so +0 -0
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.2.0/gem_make.out +5 -5
- data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/README.md +2 -2
- data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_parser.c +14 -3
- data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/versions.rb +1 -1
- data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych.so +0 -0
- data/vendor/bundle/ruby/3.3.0/specifications/{psych-5.3.1.gemspec → psych-5.4.0.gemspec} +2 -2
- metadata +74 -74
- data/vendor/bundle/ruby/3.3.0/cache/psych-5.3.1.gem +0 -0
- /data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/gem.build_complete +0 -0
- /data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/{psych-5.3.1 → psych-5.4.0}/mkmf.log +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/CONTRIBUTING.md +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/LICENSE +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/Makefile +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/depend +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/extconf.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.c +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych.h +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.c +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_emitter.h +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_parser.h +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.c +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_to_ruby.h +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.c +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/ext/psych/psych_yaml_tree.h +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/class_loader.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/coder.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/core_ext.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/exception.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handler.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/document_stream.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/handlers/recorder.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/ruby_events.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/stream.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/tree_builder.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/json/yaml_events.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/alias.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/document.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/mapping.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/node.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/scalar.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/sequence.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes/stream.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/nodes.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/omap.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/parser.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/scalar_scanner.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/set.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/stream.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/streaming.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/syntax_error.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/tree_builder.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/depth_first.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/emitter.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/json_tree.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/to_ruby.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/visitor.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors/yaml_tree.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/visitors.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych/y.rb +0 -0
- /data/vendor/bundle/ruby/3.3.0/gems/{psych-5.3.1 → psych-5.4.0}/lib/psych.rb +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 26528c2b72851b8fb80fa975a54ec6ce01f0fcaa22ec0e857f35ae63d9c57a4a
|
|
4
|
+
data.tar.gz: 1917ebcb258bf9d1c47283766f831962d56eb16d53dd6402fe055f8bbddab890
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 546eb1877c9bc3ad20524bb3dabe8937aa80be36c2bdb61801e31271ba0b0b67a1b8fc1b1f3e5a33796894d8d7c3adeda23528226af256df235c9c0d44266d69
|
|
7
|
+
data.tar.gz: af27a9504e4d19069967b21071e6f7913b20c52b9b74f6425d1763a774b9bc1bb3430a189b6d65805294c3192a5d729b06143c0d3b329cbf16afd906b54ec53a
|
data/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# Changelog\n\n## [1.
|
|
1
|
+
# Changelog\n\n## [1.9.0] - 2026-07-07\nSee main repository changelog for details.
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
invoicetronic_sdk (1.
|
|
4
|
+
invoicetronic_sdk (1.9)
|
|
5
5
|
typhoeus (~> 1.0, >= 1.0.1)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -42,7 +42,7 @@ GEM
|
|
|
42
42
|
pry-byebug (3.12.0)
|
|
43
43
|
byebug (~> 13.0)
|
|
44
44
|
pry (>= 0.13, < 0.17)
|
|
45
|
-
psych (5.
|
|
45
|
+
psych (5.4.0)
|
|
46
46
|
date
|
|
47
47
|
stringio
|
|
48
48
|
racc (1.8.1)
|
data/README.md
CHANGED
|
@@ -4,13 +4,27 @@ The [Invoicetronic API][2] is a RESTful service that allows you to send and rece
|
|
|
4
4
|
|
|
5
5
|
For more information, see [Invoicetronic website][2]
|
|
6
6
|
|
|
7
|
+
## Before you start
|
|
8
|
+
|
|
9
|
+
For the full integration guide, tutorials, SDKs and quickstarts, see the **[Documentation](https://invoicetronic.com/en/docs/)**. A few cross-cutting topics worth knowing before integrating:
|
|
10
|
+
|
|
11
|
+
- **[Prerequisites](https://invoicetronic.com/en/docs/prerequisites/)** — what you need to start in Sandbox and what's required to move to production.
|
|
12
|
+
- **[API Keys](https://invoicetronic.com/en/docs/apikeys/)** — how `ik_live_` and `ik_test_` keys select the environment.
|
|
13
|
+
- **[Sandbox](https://invoicetronic.com/en/docs/sandbox/)** — free test environment that mirrors the live workflow, with no credits consumed.
|
|
14
|
+
- **[Rate Limiting](https://invoicetronic.com/en/docs/ratelimiting/)** — per-second, per-minute and per-day limits; how to handle `429 Too Many Requests`.
|
|
15
|
+
- **[Pagination](https://invoicetronic.com/en/docs/pagination/)** — `page` and `page_size` parameters and the `Invoicetronic-Total-Count` response header.
|
|
16
|
+
- **[CORS](https://invoicetronic.com/en/docs/cors/)** — calling the API from the browser; allowed origins are configured per key.
|
|
17
|
+
- **[Webhooks](https://invoicetronic.com/en/docs/webhooks/)** — real-time event notifications with HMAC-SHA256 signature validation.
|
|
18
|
+
- **[Localization](https://invoicetronic.com/en/docs/accept-language/)** — use the `Accept-Language` header to receive error messages in Italian, English or German.
|
|
19
|
+
|
|
7
20
|
[1]: https://www.fatturapa.gov.it/it/sistemainterscambio/cose-il-sdi/
|
|
8
21
|
[2]: https://invoicetronic.com/
|
|
9
22
|
|
|
23
|
+
|
|
10
24
|
This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|
11
25
|
|
|
12
|
-
- API version: 1.
|
|
13
|
-
- Package version: 1.
|
|
26
|
+
- API version: 1.14.0
|
|
27
|
+
- Package version: 1.9
|
|
14
28
|
- Generator version: 7.20.0
|
|
15
29
|
- Build package: org.openapitools.codegen.languages.RubyClientCodegen
|
|
16
30
|
For more information, please visit [https://invoicetronic.com/en/contact/](https://invoicetronic.com/en/contact/)
|
|
@@ -28,16 +42,16 @@ gem build invoicetronic_sdk.gemspec
|
|
|
28
42
|
Then either install the gem locally:
|
|
29
43
|
|
|
30
44
|
```shell
|
|
31
|
-
gem install ./invoicetronic_sdk-1.
|
|
45
|
+
gem install ./invoicetronic_sdk-1.9.gem
|
|
32
46
|
```
|
|
33
47
|
|
|
34
|
-
(for development, run `gem install --dev ./invoicetronic_sdk-1.
|
|
48
|
+
(for development, run `gem install --dev ./invoicetronic_sdk-1.9.gem` to install the development dependencies)
|
|
35
49
|
|
|
36
50
|
or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
|
|
37
51
|
|
|
38
52
|
Finally add this to the Gemfile:
|
|
39
53
|
|
|
40
|
-
gem 'invoicetronic_sdk', '~> 1.
|
|
54
|
+
gem 'invoicetronic_sdk', '~> 1.9'
|
|
41
55
|
|
|
42
56
|
### Install from Git
|
|
43
57
|
|
data/docs/Company.md
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique identifier.
|
|
8
|
-
| **created** | **Time** | Creation date. It is set automatically. | [optional] |
|
|
9
|
-
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional] |
|
|
10
|
-
| **user_id** | **Integer** | User id. | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier. For POST requests, leave it at `0` — the server will assign one automatically. For PUT requests, set it to the id of the record you want to update. | [optional] |
|
|
8
|
+
| **created** | **Time** | Creation date. It is set automatically. | [optional][readonly] |
|
|
9
|
+
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional][readonly] |
|
|
10
|
+
| **user_id** | **Integer** | User id. It is set automatically based on the authenticated user. | [optional][readonly] |
|
|
11
11
|
| **vat** | **String** | Vat number. Must include the country code. | |
|
|
12
12
|
| **fiscal_code** | **String** | Fiscal code. In most cases it's the same as the vat number. | |
|
|
13
13
|
| **name** | **String** | Name | |
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
require 'invoicetronic_sdk'
|
|
19
19
|
|
|
20
20
|
instance = Invoicetronic_Sdk::Company.new(
|
|
21
|
-
id:
|
|
21
|
+
id: 0,
|
|
22
22
|
created: null,
|
|
23
23
|
version: null,
|
|
24
24
|
user_id: null,
|
data/docs/Event.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique identifier.
|
|
8
|
-
| **created** | **Time** | Creation date. It is set automatically. | [optional] |
|
|
9
|
-
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier. For POST requests, leave it at `0` — the server will assign one automatically. For PUT requests, set it to the id of the record you want to update. | [optional] |
|
|
8
|
+
| **created** | **Time** | Creation date. It is set automatically. | [optional][readonly] |
|
|
9
|
+
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional][readonly] |
|
|
10
10
|
| **user_id** | **Integer** | User id. | [optional] |
|
|
11
11
|
| **api_key_id** | **Integer** | Api key id. | [optional] |
|
|
12
12
|
| **company_id** | **Integer** | Company id. | [optional] |
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
require 'invoicetronic_sdk'
|
|
29
29
|
|
|
30
30
|
instance = Invoicetronic_Sdk::Event.new(
|
|
31
|
-
id:
|
|
31
|
+
id: 0,
|
|
32
32
|
created: null,
|
|
33
33
|
version: null,
|
|
34
34
|
user_id: null,
|
data/docs/ModelSend.md
CHANGED
|
@@ -4,23 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique identifier.
|
|
8
|
-
| **created** | **Time** | Creation date. It is set automatically. | [optional] |
|
|
9
|
-
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional] |
|
|
10
|
-
| **user_id** | **Integer** | User id. | [optional] |
|
|
11
|
-
| **company_id** | **Integer** | Company id.
|
|
12
|
-
| **committente** | **String** | VAT number of the Cessionario/Committente (customer). This is automatically set based on the recipient's VAT number. | [optional] |
|
|
13
|
-
| **prestatore** | **String** | VAT number of the Cedente/Prestatore (vendor). This is automatically set based on the sender's VAT number. | [optional] |
|
|
14
|
-
| **identifier** | **String** | SDI identifier. This is set by the SDI and is guaranteed to be unique within the SDI system. | [optional] |
|
|
15
|
-
| **file_name** | **String** | Xml file name. | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier. For POST requests, leave it at `0` — the server will assign one automatically. For PUT requests, set it to the id of the record you want to update. | [optional] |
|
|
8
|
+
| **created** | **Time** | Creation date. It is set automatically. | [optional][readonly] |
|
|
9
|
+
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional][readonly] |
|
|
10
|
+
| **user_id** | **Integer** | User id. It is set automatically based on the authenticated user. | [optional][readonly] |
|
|
11
|
+
| **company_id** | **Integer** | Company id. It is set automatically based on the VAT number extracted from the invoice payload (the sender for `send`, the recipient for `receive`). | [optional][readonly] |
|
|
12
|
+
| **committente** | **String** | VAT number of the Cessionario/Committente (customer). This is automatically set based on the recipient's VAT number. | [optional][readonly] |
|
|
13
|
+
| **prestatore** | **String** | VAT number of the Cedente/Prestatore (vendor). This is automatically set based on the sender's VAT number. | [optional][readonly] |
|
|
14
|
+
| **identifier** | **String** | SDI identifier. This is set by the SDI and is guaranteed to be unique within the SDI system. | [optional][readonly] |
|
|
15
|
+
| **file_name** | **String** | Xml file name. If not provided on send, it will be auto-generated. | [optional] |
|
|
16
16
|
| **format** | **String** | SDI format (FPA12, FPR12, FSM10, ...) | [optional] |
|
|
17
17
|
| **payload** | **String** | Xml payload. This is the actual xml content, as string. On send, it can be base64 encoded. If it's not, it will be encoded before sending. It is guaranteed to be encrypted at rest. | |
|
|
18
|
-
| **last_update** | **Time** | Last update from SDI. | [optional] |
|
|
19
|
-
| **date_sent** | **Time** | When the invoice was sent to SDI. | [optional] |
|
|
20
|
-
| **documents** | [**Array<DocumentData>**](DocumentData.md) | The invoices included in the payload. This is set by the system, based on the xml content. | [optional] |
|
|
18
|
+
| **last_update** | **Time** | Last update from SDI. | [optional][readonly] |
|
|
19
|
+
| **date_sent** | **Time** | When the invoice was sent to SDI. | [optional][readonly] |
|
|
20
|
+
| **documents** | [**Array<DocumentData>**](DocumentData.md) | The invoices included in the payload. This is set by the system, based on the xml content. | [optional][readonly] |
|
|
21
21
|
| **encoding** | **String** | Whether the payload is Base64 encoded or a plain XML (text). | [optional] |
|
|
22
|
-
| **nome_committente** | **String** | Business name of the committente (client/buyer) extracted from the invoice XML. | [optional] |
|
|
22
|
+
| **nome_committente** | **String** | Business name of the committente (client/buyer) extracted from the invoice XML. | [optional][readonly] |
|
|
23
23
|
| **meta_data** | **Hash<String, String>** | Optional metadata, as json. | [optional] |
|
|
24
|
+
| **latest_state** | **String** | Current SDI state of the invoice. Reflects the most recent update received from SDI. Null when no update has been received yet. | [optional][readonly] |
|
|
24
25
|
| **company** | [**Company**](Company.md) | | [optional] |
|
|
25
26
|
|
|
26
27
|
## Example
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
require 'invoicetronic_sdk'
|
|
30
31
|
|
|
31
32
|
instance = Invoicetronic_Sdk::ModelSend.new(
|
|
32
|
-
id:
|
|
33
|
+
id: 0,
|
|
33
34
|
created: null,
|
|
34
35
|
version: null,
|
|
35
36
|
user_id: null,
|
|
@@ -37,15 +38,16 @@ instance = Invoicetronic_Sdk::ModelSend.new(
|
|
|
37
38
|
committente: null,
|
|
38
39
|
prestatore: null,
|
|
39
40
|
identifier: null,
|
|
40
|
-
file_name:
|
|
41
|
-
format:
|
|
42
|
-
payload:
|
|
41
|
+
file_name: IT01180680397ITRON_00001.xml,
|
|
42
|
+
format: FPR12,
|
|
43
|
+
payload: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cDpGYXR0dXJhRWxldHRyb25pY2EgLi4uPjwvcDpGYXR0dXJhRWxldHRyb25pY2E+,
|
|
43
44
|
last_update: null,
|
|
44
45
|
date_sent: null,
|
|
45
46
|
documents: null,
|
|
46
47
|
encoding: null,
|
|
47
48
|
nome_committente: null,
|
|
48
|
-
meta_data:
|
|
49
|
+
meta_data: {"order_id":"ORD-123"},
|
|
50
|
+
latest_state: null,
|
|
49
51
|
company: null
|
|
50
52
|
)
|
|
51
53
|
```
|
data/docs/Receive.md
CHANGED
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique identifier.
|
|
8
|
-
| **created** | **Time** | Creation date. It is set automatically. | [optional] |
|
|
9
|
-
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional] |
|
|
10
|
-
| **user_id** | **Integer** | User id. | [optional] |
|
|
11
|
-
| **company_id** | **Integer** | Company id.
|
|
12
|
-
| **committente** | **String** | VAT number of the Cessionario/Committente (customer). This is automatically set based on the recipient's VAT number. | [optional] |
|
|
13
|
-
| **prestatore** | **String** | VAT number of the Cedente/Prestatore (vendor). This is automatically set based on the sender's VAT number. | [optional] |
|
|
14
|
-
| **identifier** | **String** | SDI identifier. This is set by the SDI and is guaranteed to be unique within the SDI system. | [optional] |
|
|
15
|
-
| **file_name** | **String** | Xml file name. | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier. For POST requests, leave it at `0` — the server will assign one automatically. For PUT requests, set it to the id of the record you want to update. | [optional] |
|
|
8
|
+
| **created** | **Time** | Creation date. It is set automatically. | [optional][readonly] |
|
|
9
|
+
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional][readonly] |
|
|
10
|
+
| **user_id** | **Integer** | User id. It is set automatically based on the authenticated user. | [optional][readonly] |
|
|
11
|
+
| **company_id** | **Integer** | Company id. It is set automatically based on the VAT number extracted from the invoice payload (the sender for `send`, the recipient for `receive`). | [optional][readonly] |
|
|
12
|
+
| **committente** | **String** | VAT number of the Cessionario/Committente (customer). This is automatically set based on the recipient's VAT number. | [optional][readonly] |
|
|
13
|
+
| **prestatore** | **String** | VAT number of the Cedente/Prestatore (vendor). This is automatically set based on the sender's VAT number. | [optional][readonly] |
|
|
14
|
+
| **identifier** | **String** | SDI identifier. This is set by the SDI and is guaranteed to be unique within the SDI system. | [optional][readonly] |
|
|
15
|
+
| **file_name** | **String** | Xml file name. If not provided on send, it will be auto-generated. | [optional] |
|
|
16
16
|
| **format** | **String** | SDI format (FPA12, FPR12, FSM10, ...) | [optional] |
|
|
17
17
|
| **payload** | **String** | Xml payload. This is the actual xml content, as string. On send, it can be base64 encoded. If it's not, it will be encoded before sending. It is guaranteed to be encrypted at rest. | |
|
|
18
|
-
| **last_update** | **Time** | Last update from SDI. | [optional] |
|
|
19
|
-
| **date_sent** | **Time** | When the invoice was sent to SDI. | [optional] |
|
|
20
|
-
| **documents** | [**Array<DocumentData>**](DocumentData.md) | The invoices included in the payload. This is set by the system, based on the xml content. | [optional] |
|
|
18
|
+
| **last_update** | **Time** | Last update from SDI. | [optional][readonly] |
|
|
19
|
+
| **date_sent** | **Time** | When the invoice was sent to SDI. | [optional][readonly] |
|
|
20
|
+
| **documents** | [**Array<DocumentData>**](DocumentData.md) | The invoices included in the payload. This is set by the system, based on the xml content. | [optional][readonly] |
|
|
21
21
|
| **encoding** | **String** | Whether the payload is Base64 encoded or a plain XML (text). | [optional] |
|
|
22
22
|
| **nome_prestatore** | **String** | Business name of the prestatore (supplier/seller) extracted from the invoice XML. | [optional] |
|
|
23
23
|
| **is_read** | **Boolean** | Whether the invoice has been read at least once. Set to true only when the invoice is requested with include_payload=true. | [optional] |
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
require 'invoicetronic_sdk'
|
|
30
30
|
|
|
31
31
|
instance = Invoicetronic_Sdk::Receive.new(
|
|
32
|
-
id:
|
|
32
|
+
id: 0,
|
|
33
33
|
created: null,
|
|
34
34
|
version: null,
|
|
35
35
|
user_id: null,
|
|
@@ -37,9 +37,9 @@ instance = Invoicetronic_Sdk::Receive.new(
|
|
|
37
37
|
committente: null,
|
|
38
38
|
prestatore: null,
|
|
39
39
|
identifier: null,
|
|
40
|
-
file_name:
|
|
41
|
-
format:
|
|
42
|
-
payload:
|
|
40
|
+
file_name: IT01180680397ITRON_00001.xml,
|
|
41
|
+
format: FPR12,
|
|
42
|
+
payload: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cDpGYXR0dXJhRWxldHRyb25pY2EgLi4uPjwvcDpGYXR0dXJhRWxldHRyb25pY2E+,
|
|
43
43
|
last_update: null,
|
|
44
44
|
date_sent: null,
|
|
45
45
|
documents: null,
|
data/docs/ReceiveApi.md
CHANGED
|
@@ -16,7 +16,7 @@ All URIs are relative to *http://localhost*
|
|
|
16
16
|
|
|
17
17
|
List incoming invoices
|
|
18
18
|
|
|
19
|
-
Retrieve a paginated list of receive invoices. Results can be filtered by various criteria such as company, date ranges, sender, document number, and free-text search (`q`). Returns invoice metadata; set `include_payload` to true to include the full invoice content. Invoices are marked as read (`is_read` = true) only when `include_payload` is true. **Receive** invoices are inbound purchase invoices received from suppliers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 24 hours in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/).
|
|
19
|
+
Retrieve a paginated list of receive invoices. Results can be filtered by various criteria such as company, date ranges, sender, document number, and free-text search (`q`). Returns invoice metadata; set `include_payload` to true to include the full invoice content. Invoices are marked as read (`is_read` = true) only when `include_payload` is true. **Receive** invoices are inbound purchase invoices received from suppliers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 24 hours in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). Inbound invoices are routed to your account via the recipient VAT number, so the recipient company must exist in Invoicetronic for the invoice to be matched. If an invoice arrives before its company has been registered, it is held by our SDI infrastructure and automatically re-processed once the company is created—no invoice is lost. See [Prerequisites](https://invoicetronic.com/en/docs/prerequisites/) for the recommended setup order.
|
|
20
20
|
|
|
21
21
|
### Examples
|
|
22
22
|
|
|
@@ -122,7 +122,7 @@ end
|
|
|
122
122
|
|
|
123
123
|
Delete an incoming invoice by id
|
|
124
124
|
|
|
125
|
-
Permanently delete a receive invoice by its internal id. This action cannot be undone. **Receive** invoices are inbound purchase invoices received from suppliers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 24 hours in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/).
|
|
125
|
+
Permanently delete a receive invoice by its internal id. This action cannot be undone. **Receive** invoices are inbound purchase invoices received from suppliers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 24 hours in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). Inbound invoices are routed to your account via the recipient VAT number, so the recipient company must exist in Invoicetronic for the invoice to be matched. If an invoice arrives before its company has been registered, it is held by our SDI infrastructure and automatically re-processed once the company is created—no invoice is lost. See [Prerequisites](https://invoicetronic.com/en/docs/prerequisites/) for the recommended setup order.
|
|
126
126
|
|
|
127
127
|
### Examples
|
|
128
128
|
|
|
@@ -192,7 +192,7 @@ end
|
|
|
192
192
|
|
|
193
193
|
Get an incoming invoice by id
|
|
194
194
|
|
|
195
|
-
Retrieve an incoming invoice by its internal id. The `id` is unique and assigned by the system when the invoice is received. Returns invoice metadata; set `include_payload` to true to include the full invoice content. The invoice is marked as read (`is_read` = true) only when `include_payload` is true. **Receive** invoices are inbound purchase invoices received from suppliers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 24 hours in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/).
|
|
195
|
+
Retrieve an incoming invoice by its internal id. The `id` is unique and assigned by the system when the invoice is received. Returns invoice metadata; set `include_payload` to true to include the full invoice content. The invoice is marked as read (`is_read` = true) only when `include_payload` is true. **Receive** invoices are inbound purchase invoices received from suppliers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 24 hours in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). Inbound invoices are routed to your account via the recipient VAT number, so the recipient company must exist in Invoicetronic for the invoice to be matched. If an invoice arrives before its company has been registered, it is held by our SDI infrastructure and automatically re-processed once the company is created—no invoice is lost. See [Prerequisites](https://invoicetronic.com/en/docs/prerequisites/) for the recommended setup order.
|
|
196
196
|
|
|
197
197
|
### Examples
|
|
198
198
|
|
data/docs/SendApi.md
CHANGED
|
@@ -24,7 +24,7 @@ All URIs are relative to *http://localhost*
|
|
|
24
24
|
|
|
25
25
|
Add an invoice by file
|
|
26
26
|
|
|
27
|
-
Add a new invoice by uploading a file. Supported formats are XML (FatturaPA) and P7M (signed). The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com).
|
|
27
|
+
Add a new invoice by uploading a file. Supported formats are XML (FatturaPA) and P7M (signed). The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com). ### Idempotency To protect against duplicate submissions caused by network retries, you can send an optional `Idempotency-Key` header with any unique, client-generated value (up to 255 characters). - The first request with a given key is processed normally, and its response (status, body and `Location`) is stored for 24 hours. - Any subsequent request that reuses the same key within that window replays the original response instead of sending a second invoice to SDI. - If a request with the same key is still being processed, the retry receives `409 Conflict`. - If the same key is reused with a **different** invoice payload, the request is rejected with `422 Unprocessable Entity`: a given key must always map to the same request. Keys are scoped per account, so different accounts can use the same key value without interfering. If the idempotency store is temporarily unavailable, the request is processed normally without idempotency protection.
|
|
28
28
|
|
|
29
29
|
### Examples
|
|
30
30
|
|
|
@@ -42,7 +42,8 @@ api_instance = Invoicetronic_Sdk::SendApi.new
|
|
|
42
42
|
file = File.new('/path/to/some/file') # File |
|
|
43
43
|
opts = {
|
|
44
44
|
validate: true, # Boolean | Validate the document first, and reject it on failure.
|
|
45
|
-
signature: 'None' # String | Whether to digitally sign the document.
|
|
45
|
+
signature: 'None', # String | Whether to digitally sign the document.
|
|
46
|
+
idempotency_key: 'idempotency_key_example' # String | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice.
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
begin
|
|
@@ -79,6 +80,7 @@ end
|
|
|
79
80
|
| **file** | **File** | | |
|
|
80
81
|
| **validate** | **Boolean** | Validate the document first, and reject it on failure. | [optional][default to false] |
|
|
81
82
|
| **signature** | **String** | Whether to digitally sign the document. | [optional][default to 'Auto'] |
|
|
83
|
+
| **idempotency_key** | **String** | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice. | [optional] |
|
|
82
84
|
|
|
83
85
|
### Return type
|
|
84
86
|
|
|
@@ -100,7 +102,7 @@ end
|
|
|
100
102
|
|
|
101
103
|
List invoices
|
|
102
104
|
|
|
103
|
-
Retrieve a paginated list of send invoices. Results can be filtered by various criteria such as company, date ranges, document number, and free-text search (`q`). Returns invoice metadata; set `include_payload` to true to include the full invoice content. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/).
|
|
105
|
+
Retrieve a paginated list of send invoices. Results can be filtered by various criteria such as company, date ranges, document number, current SDI state (`latest_state`), and free-text search (`q`). Use `ids` to fetch specific Send records in a single call (comma-separated, up to 100). Returns invoice metadata; set `include_payload` to true to include the full invoice content. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/).
|
|
104
106
|
|
|
105
107
|
### Examples
|
|
106
108
|
|
|
@@ -128,7 +130,9 @@ opts = {
|
|
|
128
130
|
document_date_from: Time.parse('2013-10-20T19:20:30+01:00'), # Time | UTC ISO 8601 (2024-11-29T12:34:56Z)
|
|
129
131
|
document_date_to: Time.parse('2013-10-20T19:20:30+01:00'), # Time | UTC ISO 8601 (2024-11-29T12:34:56Z)
|
|
130
132
|
document_number: 'document_number_example', # String | Document number.
|
|
133
|
+
latest_state: 'Inviato', # String | Filter by the most recent SDI state for the invoice. Matches the `latest_state` field exposed inline on each Send.
|
|
131
134
|
include_payload: true, # Boolean | Include payload in the response. Defaults to false.
|
|
135
|
+
ids: 'ids_example', # String | Comma-separated list of Send ids (max 100). Filters the collection to the matching rows; unknown or unauthorized ids are silently skipped.
|
|
132
136
|
page: 56, # Integer | Page number.
|
|
133
137
|
page_size: 56, # Integer | Items per page. Cannot be greater than 200.
|
|
134
138
|
sort: 'sort_example', # String | Sort by field. Prefix with '-' for descending order.
|
|
@@ -178,7 +182,9 @@ end
|
|
|
178
182
|
| **document_date_from** | **Time** | UTC ISO 8601 (2024-11-29T12:34:56Z) | [optional] |
|
|
179
183
|
| **document_date_to** | **Time** | UTC ISO 8601 (2024-11-29T12:34:56Z) | [optional] |
|
|
180
184
|
| **document_number** | **String** | Document number. | [optional] |
|
|
185
|
+
| **latest_state** | **String** | Filter by the most recent SDI state for the invoice. Matches the `latest_state` field exposed inline on each Send. | [optional] |
|
|
181
186
|
| **include_payload** | **Boolean** | Include payload in the response. Defaults to false. | [optional] |
|
|
187
|
+
| **ids** | **String** | Comma-separated list of Send ids (max 100). Filters the collection to the matching rows; unknown or unauthorized ids are silently skipped. | [optional] |
|
|
182
188
|
| **page** | **Integer** | Page number. | [optional][default to 1] |
|
|
183
189
|
| **page_size** | **Integer** | Items per page. Cannot be greater than 200. | [optional][default to 100] |
|
|
184
190
|
| **sort** | **String** | Sort by field. Prefix with '-' for descending order. | [optional] |
|
|
@@ -421,7 +427,7 @@ end
|
|
|
421
427
|
|
|
422
428
|
Add an invoice by json
|
|
423
429
|
|
|
424
|
-
Add a new invoice using a FatturaPA JSON representation. The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com).
|
|
430
|
+
Add a new invoice using a FatturaPA JSON representation. Property names mirror the FatturaPA XML schema (PascalCase, e.g. `FatturaElettronicaHeader`). The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com). ### Idempotency To protect against duplicate submissions caused by network retries, you can send an optional `Idempotency-Key` header with any unique, client-generated value (up to 255 characters). - The first request with a given key is processed normally, and its response (status, body and `Location`) is stored for 24 hours. - Any subsequent request that reuses the same key within that window replays the original response instead of sending a second invoice to SDI. - If a request with the same key is still being processed, the retry receives `409 Conflict`. - If the same key is reused with a **different** invoice payload, the request is rejected with `422 Unprocessable Entity`: a given key must always map to the same request. Keys are scoped per account, so different accounts can use the same key value without interfering. If the idempotency store is temporarily unavailable, the request is processed normally without idempotency protection.
|
|
425
431
|
|
|
426
432
|
### Examples
|
|
427
433
|
|
|
@@ -439,7 +445,8 @@ api_instance = Invoicetronic_Sdk::SendApi.new
|
|
|
439
445
|
body = { ... } # Object |
|
|
440
446
|
opts = {
|
|
441
447
|
validate: true, # Boolean | Validate the document first, and reject it on failure.
|
|
442
|
-
signature: 'None' # String | Whether to digitally sign the document.
|
|
448
|
+
signature: 'None', # String | Whether to digitally sign the document.
|
|
449
|
+
idempotency_key: 'idempotency_key_example' # String | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice.
|
|
443
450
|
}
|
|
444
451
|
|
|
445
452
|
begin
|
|
@@ -476,6 +483,7 @@ end
|
|
|
476
483
|
| **body** | **Object** | | |
|
|
477
484
|
| **validate** | **Boolean** | Validate the document first, and reject it on failure. | [optional][default to false] |
|
|
478
485
|
| **signature** | **String** | Whether to digitally sign the document. | [optional][default to 'Auto'] |
|
|
486
|
+
| **idempotency_key** | **String** | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice. | [optional] |
|
|
479
487
|
|
|
480
488
|
### Return type
|
|
481
489
|
|
|
@@ -497,7 +505,7 @@ end
|
|
|
497
505
|
|
|
498
506
|
Add an invoice
|
|
499
507
|
|
|
500
|
-
Add a new invoice using a structured Send object. The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com).
|
|
508
|
+
Add a new invoice using a structured Send object. The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com). ### Idempotency To protect against duplicate submissions caused by network retries, you can send an optional `Idempotency-Key` header with any unique, client-generated value (up to 255 characters). - The first request with a given key is processed normally, and its response (status, body and `Location`) is stored for 24 hours. - Any subsequent request that reuses the same key within that window replays the original response instead of sending a second invoice to SDI. - If a request with the same key is still being processed, the retry receives `409 Conflict`. - If the same key is reused with a **different** invoice payload, the request is rejected with `422 Unprocessable Entity`: a given key must always map to the same request. Keys are scoped per account, so different accounts can use the same key value without interfering. If the idempotency store is temporarily unavailable, the request is processed normally without idempotency protection.
|
|
501
509
|
|
|
502
510
|
### Examples
|
|
503
511
|
|
|
@@ -512,10 +520,11 @@ Invoicetronic_Sdk.configure do |config|
|
|
|
512
520
|
end
|
|
513
521
|
|
|
514
522
|
api_instance = Invoicetronic_Sdk::SendApi.new
|
|
515
|
-
model_send = Invoicetronic_Sdk::ModelSend.new({payload: '
|
|
523
|
+
model_send = Invoicetronic_Sdk::ModelSend.new({payload: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cDpGYXR0dXJhRWxldHRyb25pY2EgLi4uPjwvcDpGYXR0dXJhRWxldHRyb25pY2E+'}) # ModelSend |
|
|
516
524
|
opts = {
|
|
517
525
|
validate: true, # Boolean | Validate the document first, and reject it on failure.
|
|
518
|
-
signature: 'None' # String | Whether to digitally sign the document.
|
|
526
|
+
signature: 'None', # String | Whether to digitally sign the document.
|
|
527
|
+
idempotency_key: 'idempotency_key_example' # String | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice.
|
|
519
528
|
}
|
|
520
529
|
|
|
521
530
|
begin
|
|
@@ -552,6 +561,7 @@ end
|
|
|
552
561
|
| **model_send** | [**ModelSend**](ModelSend.md) | | |
|
|
553
562
|
| **validate** | **Boolean** | Validate the document first, and reject it on failure. | [optional][default to false] |
|
|
554
563
|
| **signature** | **String** | Whether to digitally sign the document. | [optional][default to 'Auto'] |
|
|
564
|
+
| **idempotency_key** | **String** | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice. | [optional] |
|
|
555
565
|
|
|
556
566
|
### Return type
|
|
557
567
|
|
|
@@ -642,7 +652,7 @@ nil (empty response body)
|
|
|
642
652
|
|
|
643
653
|
Validate an invoice by json
|
|
644
654
|
|
|
645
|
-
Validate a JSON invoice without sending it to SDI. Use this to check for errors before actual submission. Returns validation results with any errors found. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/).
|
|
655
|
+
Validate a FatturaPA JSON invoice without sending it to SDI. Property names mirror the FatturaPA XML schema (PascalCase, e.g. `FatturaElettronicaHeader`). Use this to check for errors before actual submission. Returns validation results with any errors found. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/).
|
|
646
656
|
|
|
647
657
|
### Examples
|
|
648
658
|
|
|
@@ -726,7 +736,7 @@ Invoicetronic_Sdk.configure do |config|
|
|
|
726
736
|
end
|
|
727
737
|
|
|
728
738
|
api_instance = Invoicetronic_Sdk::SendApi.new
|
|
729
|
-
model_send = Invoicetronic_Sdk::ModelSend.new({payload: '
|
|
739
|
+
model_send = Invoicetronic_Sdk::ModelSend.new({payload: 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cDpGYXR0dXJhRWxldHRyb25pY2EgLi4uPjwvcDpGYXR0dXJhRWxldHRyb25pY2E+'}) # ModelSend |
|
|
730
740
|
|
|
731
741
|
begin
|
|
732
742
|
# Validate an invoice
|
|
@@ -849,7 +859,7 @@ nil (empty response body)
|
|
|
849
859
|
|
|
850
860
|
Add an invoice by xml
|
|
851
861
|
|
|
852
|
-
Add a new invoice using a raw XML document in FatturaPA format. The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com).
|
|
862
|
+
Add a new invoice using a raw XML document in FatturaPA format. The invoice will be signed (if requested), validated (if requested), and queued for delivery to SDI. Status updates from SDI will be available in the `update` endpoint. **Send** invoices are outbound sales invoices transmitted to customers through Italy's SDI (Sistema di Interscambio). Preserved for two years in the live environment and 15 days in the [Sandbox](https://invoicetronic.com/en/docs/sandbox/). You can also upload invoices via the [Dashboard](https://dashboard.invoicetronic.com). ### Idempotency To protect against duplicate submissions caused by network retries, you can send an optional `Idempotency-Key` header with any unique, client-generated value (up to 255 characters). - The first request with a given key is processed normally, and its response (status, body and `Location`) is stored for 24 hours. - Any subsequent request that reuses the same key within that window replays the original response instead of sending a second invoice to SDI. - If a request with the same key is still being processed, the retry receives `409 Conflict`. - If the same key is reused with a **different** invoice payload, the request is rejected with `422 Unprocessable Entity`: a given key must always map to the same request. Keys are scoped per account, so different accounts can use the same key value without interfering. If the idempotency store is temporarily unavailable, the request is processed normally without idempotency protection.
|
|
853
863
|
|
|
854
864
|
### Examples
|
|
855
865
|
|
|
@@ -867,7 +877,8 @@ api_instance = Invoicetronic_Sdk::SendApi.new
|
|
|
867
877
|
body = { ... } # Object |
|
|
868
878
|
opts = {
|
|
869
879
|
validate: true, # Boolean | Validate the document first, and reject it on failure.
|
|
870
|
-
signature: 'None' # String | Whether to digitally sign the document.
|
|
880
|
+
signature: 'None', # String | Whether to digitally sign the document.
|
|
881
|
+
idempotency_key: 'idempotency_key_example' # String | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice.
|
|
871
882
|
}
|
|
872
883
|
|
|
873
884
|
begin
|
|
@@ -904,6 +915,7 @@ end
|
|
|
904
915
|
| **body** | **Object** | | |
|
|
905
916
|
| **validate** | **Boolean** | Validate the document first, and reject it on failure. | [optional][default to false] |
|
|
906
917
|
| **signature** | **String** | Whether to digitally sign the document. | [optional][default to 'Auto'] |
|
|
918
|
+
| **idempotency_key** | **String** | Optional client-generated key that makes the submission idempotent. Retrying the same request with the same key within 24 hours returns the original response instead of creating a duplicate invoice. | [optional] |
|
|
907
919
|
|
|
908
920
|
### Return type
|
|
909
921
|
|
data/docs/SendReduced.md
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
| **meta_data** | **Hash<String, String>** | Optional metadata, as json. | [optional] |
|
|
10
10
|
| **documents** | [**Array<DocumentData>**](DocumentData.md) | The invoices included in the payload. | [optional] |
|
|
11
11
|
| **date_sent** | **Time** | When the invoice was sent to SDI. | [optional] |
|
|
12
|
+
| **latest_state** | **String** | Current SDI state of the invoice. Reflects the most recent update received from SDI. | [optional] |
|
|
12
13
|
|
|
13
14
|
## Example
|
|
14
15
|
|
|
@@ -20,7 +21,8 @@ instance = Invoicetronic_Sdk::SendReduced.new(
|
|
|
20
21
|
prestatore: null,
|
|
21
22
|
meta_data: null,
|
|
22
23
|
documents: null,
|
|
23
|
-
date_sent: null
|
|
24
|
+
date_sent: null,
|
|
25
|
+
latest_state: null
|
|
24
26
|
)
|
|
25
27
|
```
|
|
26
28
|
|
data/docs/Status.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **operation_left** | **Integer** | Operations (invoices and validations) left. | [optional] |
|
|
8
8
|
| **signature_left** | **Integer** | Signatures left. | [optional] |
|
|
9
|
+
| **has_active_seat** | **Boolean** | Whether the current API key has an active Desk seat. | [optional] |
|
|
10
|
+
| **is_sub_key** | **Boolean** | Whether the current API key is a sub-key (restricted key). | [optional] |
|
|
9
11
|
|
|
10
12
|
## Example
|
|
11
13
|
|
|
@@ -14,7 +16,9 @@ require 'invoicetronic_sdk'
|
|
|
14
16
|
|
|
15
17
|
instance = Invoicetronic_Sdk::Status.new(
|
|
16
18
|
operation_left: null,
|
|
17
|
-
signature_left: null
|
|
19
|
+
signature_left: null,
|
|
20
|
+
has_active_seat: null,
|
|
21
|
+
is_sub_key: null
|
|
18
22
|
)
|
|
19
23
|
```
|
|
20
24
|
|
data/docs/Update.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique identifier.
|
|
8
|
-
| **created** | **Time** | Creation date. It is set automatically. | [optional] |
|
|
9
|
-
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier. For POST requests, leave it at `0` — the server will assign one automatically. For PUT requests, set it to the id of the record you want to update. | [optional] |
|
|
8
|
+
| **created** | **Time** | Creation date. It is set automatically. | [optional][readonly] |
|
|
9
|
+
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional][readonly] |
|
|
10
10
|
| **user_id** | **Integer** | User id. | [optional] |
|
|
11
11
|
| **company_id** | **Integer** | Company id. | [optional] |
|
|
12
12
|
| **send_id** | **Integer** | Send id. This is the id of the sent invoice to which this update refers to. | [optional] |
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
require 'invoicetronic_sdk'
|
|
25
25
|
|
|
26
26
|
instance = Invoicetronic_Sdk::Update.new(
|
|
27
|
-
id:
|
|
27
|
+
id: 0,
|
|
28
28
|
created: null,
|
|
29
29
|
version: null,
|
|
30
30
|
user_id: null,
|
data/docs/WebHook.md
CHANGED
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique identifier.
|
|
8
|
-
| **created** | **Time** | Creation date. It is set automatically. | [optional] |
|
|
9
|
-
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional] |
|
|
10
|
-
| **user_id** | **Integer** | User id. | [optional] |
|
|
11
|
-
| **company_id** | **Integer** |
|
|
7
|
+
| **id** | **Integer** | Unique identifier. For POST requests, leave it at `0` — the server will assign one automatically. For PUT requests, set it to the id of the record you want to update. | [optional] |
|
|
8
|
+
| **created** | **Time** | Creation date. It is set automatically. | [optional][readonly] |
|
|
9
|
+
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional][readonly] |
|
|
10
|
+
| **user_id** | **Integer** | User id. It is set automatically based on the authenticated user. | [optional][readonly] |
|
|
11
|
+
| **company_id** | **Integer** | Optional company id. If set, the webhook is restricted to events for that company; if omitted, it fires for all companies on the account. | [optional] |
|
|
12
12
|
| **url** | **String** | The url of your application's endpoint that will receive a POST request when the webhook is fired. | |
|
|
13
13
|
| **enabled** | **Boolean** | Whether the webhook is enabled. On creation, this is set to `true`. | [optional] |
|
|
14
14
|
| **secret** | **String** | The secret used to generate webhook signatures, only returned on creation. You should store this value securely and validate it on every call, to ensure that the caller is InvoicetronicApi. | [optional] |
|
|
15
15
|
| **description** | **String** | An optional description. | [optional] |
|
|
16
16
|
| **events** | **Array<String>** | List of events that trigger the webhook. See Invoicetronic.SupportedEvents.Available for a list of valid event names. | [optional] |
|
|
17
|
+
| **failure_notified_at** | **Time** | Timestamp of the last failure notification email sent for this webhook. Set by the notifier service; reset to null on successful delivery. | [optional][readonly] |
|
|
17
18
|
|
|
18
19
|
## Example
|
|
19
20
|
|
|
@@ -21,16 +22,17 @@
|
|
|
21
22
|
require 'invoicetronic_sdk'
|
|
22
23
|
|
|
23
24
|
instance = Invoicetronic_Sdk::WebHook.new(
|
|
24
|
-
id:
|
|
25
|
+
id: 0,
|
|
25
26
|
created: null,
|
|
26
27
|
version: null,
|
|
27
28
|
user_id: null,
|
|
28
|
-
company_id:
|
|
29
|
-
url:
|
|
29
|
+
company_id: 1,
|
|
30
|
+
url: https://example.com/webhooks/invoicetronic,
|
|
30
31
|
enabled: null,
|
|
31
|
-
secret:
|
|
32
|
-
description:
|
|
33
|
-
events:
|
|
32
|
+
secret: wh_sec_1a2b3c4d5e6f7g8h9i0j,
|
|
33
|
+
description: Production webhook,
|
|
34
|
+
events: ["send.add","receive.add"],
|
|
35
|
+
failure_notified_at: null
|
|
34
36
|
)
|
|
35
37
|
```
|
|
36
38
|
|
data/docs/WebHookHistory.md
CHANGED
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **Integer** | Unique identifier.
|
|
8
|
-
| **created** | **Time** | Creation date. It is set automatically. | [optional] |
|
|
9
|
-
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional] |
|
|
7
|
+
| **id** | **Integer** | Unique identifier. For POST requests, leave it at `0` — the server will assign one automatically. For PUT requests, set it to the id of the record you want to update. | [optional] |
|
|
8
|
+
| **created** | **Time** | Creation date. It is set automatically. | [optional][readonly] |
|
|
9
|
+
| **version** | **Integer** | Row version, for optimistic concurrency. It is set automatically. | [optional][readonly] |
|
|
10
10
|
| **web_hook_id** | **Integer** | Webhook id. | [optional] |
|
|
11
11
|
| **user_id** | **Integer** | User id. | [optional] |
|
|
12
12
|
| **event** | **String** | Event name. | [optional] |
|
|
13
|
-
| **status_code** | **Integer** |
|
|
13
|
+
| **status_code** | **Integer** | HTTP status code returned by the webhook endpoint. A value of 0 means the request could not be completed due to a network error (e.g., DNS resolution failure, connection refused, or timeout). This typically indicates that the endpoint URL is misconfigured or no longer exists. | [optional] |
|
|
14
|
+
| **error** | **String** | Error description, if any. Null when the delivery is successful (2xx). Contains the exception message for network errors (status code 0) or the response body for non-2xx HTTP responses. | [optional] |
|
|
14
15
|
| **date_time** | **Time** | Date and time of the request. | [optional] |
|
|
15
16
|
| **success** | **Boolean** | Whether the request was successful. | [optional][readonly] |
|
|
16
17
|
|
|
@@ -20,13 +21,14 @@
|
|
|
20
21
|
require 'invoicetronic_sdk'
|
|
21
22
|
|
|
22
23
|
instance = Invoicetronic_Sdk::WebHookHistory.new(
|
|
23
|
-
id:
|
|
24
|
+
id: 0,
|
|
24
25
|
created: null,
|
|
25
26
|
version: null,
|
|
26
27
|
web_hook_id: null,
|
|
27
28
|
user_id: null,
|
|
28
29
|
event: null,
|
|
29
30
|
status_code: null,
|
|
31
|
+
error: null,
|
|
30
32
|
date_time: null,
|
|
31
33
|
success: null
|
|
32
34
|
)
|