e-invoice-api 0.1.0.pre.alpha.5

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.
Files changed (233) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +57 -0
  4. data/README.md +285 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/e_invoice_api/client.rb +94 -0
  7. data/lib/e_invoice_api/errors.rb +192 -0
  8. data/lib/e_invoice_api/file_part.rb +55 -0
  9. data/lib/e_invoice_api/internal/documents_number_page.rb +96 -0
  10. data/lib/e_invoice_api/internal/transport/base_client.rb +555 -0
  11. data/lib/e_invoice_api/internal/transport/pooled_net_requester.rb +209 -0
  12. data/lib/e_invoice_api/internal/type/array_of.rb +162 -0
  13. data/lib/e_invoice_api/internal/type/base_model.rb +482 -0
  14. data/lib/e_invoice_api/internal/type/base_page.rb +55 -0
  15. data/lib/e_invoice_api/internal/type/boolean.rb +71 -0
  16. data/lib/e_invoice_api/internal/type/converter.rb +292 -0
  17. data/lib/e_invoice_api/internal/type/enum.rb +148 -0
  18. data/lib/e_invoice_api/internal/type/file_input.rb +103 -0
  19. data/lib/e_invoice_api/internal/type/hash_of.rb +182 -0
  20. data/lib/e_invoice_api/internal/type/request_parameters.rb +42 -0
  21. data/lib/e_invoice_api/internal/type/union.rb +236 -0
  22. data/lib/e_invoice_api/internal/type/unknown.rb +75 -0
  23. data/lib/e_invoice_api/internal/util.rb +914 -0
  24. data/lib/e_invoice_api/internal.rb +20 -0
  25. data/lib/e_invoice_api/models/certificate.rb +34 -0
  26. data/lib/e_invoice_api/models/currency_code.rb +28 -0
  27. data/lib/e_invoice_api/models/document_attachment_create.rb +33 -0
  28. data/lib/e_invoice_api/models/document_create.rb +521 -0
  29. data/lib/e_invoice_api/models/document_create_params.rb +14 -0
  30. data/lib/e_invoice_api/models/document_delete_params.rb +14 -0
  31. data/lib/e_invoice_api/models/document_delete_response.rb +16 -0
  32. data/lib/e_invoice_api/models/document_direction.rb +15 -0
  33. data/lib/e_invoice_api/models/document_response.rb +418 -0
  34. data/lib/e_invoice_api/models/document_retrieve_params.rb +14 -0
  35. data/lib/e_invoice_api/models/document_send_params.rb +44 -0
  36. data/lib/e_invoice_api/models/document_state.rb +18 -0
  37. data/lib/e_invoice_api/models/document_type.rb +15 -0
  38. data/lib/e_invoice_api/models/documents/attachment_add_params.rb +22 -0
  39. data/lib/e_invoice_api/models/documents/attachment_delete_params.rb +22 -0
  40. data/lib/e_invoice_api/models/documents/attachment_delete_response.rb +18 -0
  41. data/lib/e_invoice_api/models/documents/attachment_list_params.rb +16 -0
  42. data/lib/e_invoice_api/models/documents/attachment_list_response.rb +11 -0
  43. data/lib/e_invoice_api/models/documents/attachment_retrieve_params.rb +22 -0
  44. data/lib/e_invoice_api/models/documents/document_attachment.rb +44 -0
  45. data/lib/e_invoice_api/models/documents/ubl_get_params.rb +16 -0
  46. data/lib/e_invoice_api/models/documents/ubl_get_response.rb +72 -0
  47. data/lib/e_invoice_api/models/inbox_list_credit_notes_params.rb +30 -0
  48. data/lib/e_invoice_api/models/inbox_list_invoices_params.rb +30 -0
  49. data/lib/e_invoice_api/models/inbox_list_params.rb +78 -0
  50. data/lib/e_invoice_api/models/lookup_retrieve_params.rb +26 -0
  51. data/lib/e_invoice_api/models/lookup_retrieve_response.rb +491 -0
  52. data/lib/e_invoice_api/models/outbox_list_draft_documents_params.rb +30 -0
  53. data/lib/e_invoice_api/models/outbox_list_received_documents_params.rb +78 -0
  54. data/lib/e_invoice_api/models/paginated_document_response.rb +39 -0
  55. data/lib/e_invoice_api/models/payment_detail_create.rb +33 -0
  56. data/lib/e_invoice_api/models/ubl_document_validation.rb +97 -0
  57. data/lib/e_invoice_api/models/unit_of_measure_code.rb +104 -0
  58. data/lib/e_invoice_api/models/validate_validate_json_params.rb +14 -0
  59. data/lib/e_invoice_api/models/validate_validate_peppol_id_params.rb +26 -0
  60. data/lib/e_invoice_api/models/validate_validate_peppol_id_response.rb +80 -0
  61. data/lib/e_invoice_api/models/validate_validate_ubl_params.rb +20 -0
  62. data/lib/e_invoice_api/models/webhook_create_params.rb +32 -0
  63. data/lib/e_invoice_api/models/webhook_delete_params.rb +14 -0
  64. data/lib/e_invoice_api/models/webhook_delete_response.rb +18 -0
  65. data/lib/e_invoice_api/models/webhook_list_params.rb +14 -0
  66. data/lib/e_invoice_api/models/webhook_list_response.rb +8 -0
  67. data/lib/e_invoice_api/models/webhook_response.rb +42 -0
  68. data/lib/e_invoice_api/models/webhook_retrieve_params.rb +14 -0
  69. data/lib/e_invoice_api/models/webhook_update_params.rb +32 -0
  70. data/lib/e_invoice_api/models.rb +105 -0
  71. data/lib/e_invoice_api/request_options.rb +77 -0
  72. data/lib/e_invoice_api/resources/documents/attachments.rb +109 -0
  73. data/lib/e_invoice_api/resources/documents/ubl.rb +35 -0
  74. data/lib/e_invoice_api/resources/documents.rb +188 -0
  75. data/lib/e_invoice_api/resources/inbox.rb +101 -0
  76. data/lib/e_invoice_api/resources/lookup.rb +43 -0
  77. data/lib/e_invoice_api/resources/outbox.rb +76 -0
  78. data/lib/e_invoice_api/resources/validate.rb +168 -0
  79. data/lib/e_invoice_api/resources/webhooks.rb +117 -0
  80. data/lib/e_invoice_api/version.rb +5 -0
  81. data/lib/e_invoice_api.rb +107 -0
  82. data/manifest.yaml +15 -0
  83. data/rbi/e_invoice_api/client.rbi +64 -0
  84. data/rbi/e_invoice_api/errors.rbi +162 -0
  85. data/rbi/e_invoice_api/file_part.rbi +37 -0
  86. data/rbi/e_invoice_api/internal/documents_number_page.rbi +28 -0
  87. data/rbi/e_invoice_api/internal/transport/base_client.rbi +298 -0
  88. data/rbi/e_invoice_api/internal/transport/pooled_net_requester.rbi +80 -0
  89. data/rbi/e_invoice_api/internal/type/array_of.rbi +104 -0
  90. data/rbi/e_invoice_api/internal/type/base_model.rbi +304 -0
  91. data/rbi/e_invoice_api/internal/type/base_page.rbi +43 -0
  92. data/rbi/e_invoice_api/internal/type/boolean.rbi +56 -0
  93. data/rbi/e_invoice_api/internal/type/converter.rbi +162 -0
  94. data/rbi/e_invoice_api/internal/type/enum.rbi +82 -0
  95. data/rbi/e_invoice_api/internal/type/file_input.rbi +59 -0
  96. data/rbi/e_invoice_api/internal/type/hash_of.rbi +104 -0
  97. data/rbi/e_invoice_api/internal/type/request_parameters.rbi +31 -0
  98. data/rbi/e_invoice_api/internal/type/union.rbi +116 -0
  99. data/rbi/e_invoice_api/internal/type/unknown.rbi +56 -0
  100. data/rbi/e_invoice_api/internal/util.rbi +487 -0
  101. data/rbi/e_invoice_api/internal.rbi +18 -0
  102. data/rbi/e_invoice_api/models/certificate.rbi +54 -0
  103. data/rbi/e_invoice_api/models/currency_code.rbi +34 -0
  104. data/rbi/e_invoice_api/models/document_attachment_create.rbi +57 -0
  105. data/rbi/e_invoice_api/models/document_create.rbi +638 -0
  106. data/rbi/e_invoice_api/models/document_create_params.rbi +30 -0
  107. data/rbi/e_invoice_api/models/document_delete_params.rbi +30 -0
  108. data/rbi/e_invoice_api/models/document_delete_response.rbi +26 -0
  109. data/rbi/e_invoice_api/models/document_direction.rbi +22 -0
  110. data/rbi/e_invoice_api/models/document_response.rbi +504 -0
  111. data/rbi/e_invoice_api/models/document_retrieve_params.rbi +30 -0
  112. data/rbi/e_invoice_api/models/document_send_params.rbi +65 -0
  113. data/rbi/e_invoice_api/models/document_state.rbi +24 -0
  114. data/rbi/e_invoice_api/models/document_type.rbi +21 -0
  115. data/rbi/e_invoice_api/models/documents/attachment_add_params.rbi +43 -0
  116. data/rbi/e_invoice_api/models/documents/attachment_delete_params.rbi +43 -0
  117. data/rbi/e_invoice_api/models/documents/attachment_delete_response.rbi +28 -0
  118. data/rbi/e_invoice_api/models/documents/attachment_list_params.rbi +34 -0
  119. data/rbi/e_invoice_api/models/documents/attachment_list_response.rbi +15 -0
  120. data/rbi/e_invoice_api/models/documents/attachment_retrieve_params.rbi +43 -0
  121. data/rbi/e_invoice_api/models/documents/document_attachment.rbi +72 -0
  122. data/rbi/e_invoice_api/models/documents/ubl_get_params.rbi +34 -0
  123. data/rbi/e_invoice_api/models/documents/ubl_get_response.rbi +97 -0
  124. data/rbi/e_invoice_api/models/inbox_list_credit_notes_params.rbi +60 -0
  125. data/rbi/e_invoice_api/models/inbox_list_invoices_params.rbi +60 -0
  126. data/rbi/e_invoice_api/models/inbox_list_params.rbi +105 -0
  127. data/rbi/e_invoice_api/models/lookup_retrieve_params.rbi +45 -0
  128. data/rbi/e_invoice_api/models/lookup_retrieve_response.rbi +852 -0
  129. data/rbi/e_invoice_api/models/outbox_list_draft_documents_params.rbi +60 -0
  130. data/rbi/e_invoice_api/models/outbox_list_received_documents_params.rbi +108 -0
  131. data/rbi/e_invoice_api/models/paginated_document_response.rbi +56 -0
  132. data/rbi/e_invoice_api/models/payment_detail_create.rbi +56 -0
  133. data/rbi/e_invoice_api/models/ubl_document_validation.rbi +159 -0
  134. data/rbi/e_invoice_api/models/unit_of_measure_code.rbi +149 -0
  135. data/rbi/e_invoice_api/models/validate_validate_json_params.rbi +30 -0
  136. data/rbi/e_invoice_api/models/validate_validate_peppol_id_params.rbi +45 -0
  137. data/rbi/e_invoice_api/models/validate_validate_peppol_id_response.rbi +141 -0
  138. data/rbi/e_invoice_api/models/validate_validate_ubl_params.rbi +41 -0
  139. data/rbi/e_invoice_api/models/webhook_create_params.rbi +54 -0
  140. data/rbi/e_invoice_api/models/webhook_delete_params.rbi +30 -0
  141. data/rbi/e_invoice_api/models/webhook_delete_response.rbi +27 -0
  142. data/rbi/e_invoice_api/models/webhook_list_params.rbi +27 -0
  143. data/rbi/e_invoice_api/models/webhook_list_response.rbi +11 -0
  144. data/rbi/e_invoice_api/models/webhook_response.rbi +57 -0
  145. data/rbi/e_invoice_api/models/webhook_retrieve_params.rbi +30 -0
  146. data/rbi/e_invoice_api/models/webhook_update_params.rbi +51 -0
  147. data/rbi/e_invoice_api/models.rbi +70 -0
  148. data/rbi/e_invoice_api/request_options.rbi +59 -0
  149. data/rbi/e_invoice_api/resources/documents/attachments.rbi +58 -0
  150. data/rbi/e_invoice_api/resources/documents/ubl.rbi +24 -0
  151. data/rbi/e_invoice_api/resources/documents.rbi +164 -0
  152. data/rbi/e_invoice_api/resources/inbox.rbi +93 -0
  153. data/rbi/e_invoice_api/resources/lookup.rbi +31 -0
  154. data/rbi/e_invoice_api/resources/outbox.rbi +72 -0
  155. data/rbi/e_invoice_api/resources/validate.rbi +145 -0
  156. data/rbi/e_invoice_api/resources/webhooks.rbi +72 -0
  157. data/rbi/e_invoice_api/version.rbi +5 -0
  158. data/sig/e_invoice_api/client.rbs +36 -0
  159. data/sig/e_invoice_api/errors.rbs +101 -0
  160. data/sig/e_invoice_api/file_part.rbs +21 -0
  161. data/sig/e_invoice_api/internal/documents_number_page.rbs +17 -0
  162. data/sig/e_invoice_api/internal/transport/base_client.rbs +131 -0
  163. data/sig/e_invoice_api/internal/transport/pooled_net_requester.rbs +45 -0
  164. data/sig/e_invoice_api/internal/type/array_of.rbs +48 -0
  165. data/sig/e_invoice_api/internal/type/base_model.rbs +102 -0
  166. data/sig/e_invoice_api/internal/type/base_page.rbs +24 -0
  167. data/sig/e_invoice_api/internal/type/boolean.rbs +26 -0
  168. data/sig/e_invoice_api/internal/type/converter.rbs +56 -0
  169. data/sig/e_invoice_api/internal/type/enum.rbs +32 -0
  170. data/sig/e_invoice_api/internal/type/file_input.rbs +25 -0
  171. data/sig/e_invoice_api/internal/type/hash_of.rbs +48 -0
  172. data/sig/e_invoice_api/internal/type/request_parameters.rbs +19 -0
  173. data/sig/e_invoice_api/internal/type/union.rbs +52 -0
  174. data/sig/e_invoice_api/internal/type/unknown.rbs +26 -0
  175. data/sig/e_invoice_api/internal/util.rbs +185 -0
  176. data/sig/e_invoice_api/internal.rbs +9 -0
  177. data/sig/e_invoice_api/models/certificate.rbs +26 -0
  178. data/sig/e_invoice_api/models/currency_code.rbs +42 -0
  179. data/sig/e_invoice_api/models/document_attachment_create.rbs +39 -0
  180. data/sig/e_invoice_api/models/document_create.rbs +403 -0
  181. data/sig/e_invoice_api/models/document_create_params.rbs +15 -0
  182. data/sig/e_invoice_api/models/document_delete_params.rbs +15 -0
  183. data/sig/e_invoice_api/models/document_delete_response.rbs +13 -0
  184. data/sig/e_invoice_api/models/document_direction.rbs +14 -0
  185. data/sig/e_invoice_api/models/document_response.rbs +358 -0
  186. data/sig/e_invoice_api/models/document_retrieve_params.rbs +15 -0
  187. data/sig/e_invoice_api/models/document_send_params.rbs +46 -0
  188. data/sig/e_invoice_api/models/document_state.rbs +17 -0
  189. data/sig/e_invoice_api/models/document_type.rbs +14 -0
  190. data/sig/e_invoice_api/models/documents/attachment_add_params.rbs +26 -0
  191. data/sig/e_invoice_api/models/documents/attachment_delete_params.rbs +26 -0
  192. data/sig/e_invoice_api/models/documents/attachment_delete_response.rbs +15 -0
  193. data/sig/e_invoice_api/models/documents/attachment_list_params.rbs +17 -0
  194. data/sig/e_invoice_api/models/documents/attachment_list_response.rbs +10 -0
  195. data/sig/e_invoice_api/models/documents/attachment_retrieve_params.rbs +26 -0
  196. data/sig/e_invoice_api/models/documents/document_attachment.rbs +48 -0
  197. data/sig/e_invoice_api/models/documents/ubl_get_params.rbs +17 -0
  198. data/sig/e_invoice_api/models/documents/ubl_get_response.rbs +69 -0
  199. data/sig/e_invoice_api/models/inbox_list_credit_notes_params.rbs +32 -0
  200. data/sig/e_invoice_api/models/inbox_list_invoices_params.rbs +32 -0
  201. data/sig/e_invoice_api/models/inbox_list_params.rbs +65 -0
  202. data/sig/e_invoice_api/models/lookup_retrieve_params.rbs +23 -0
  203. data/sig/e_invoice_api/models/lookup_retrieve_response.rbs +365 -0
  204. data/sig/e_invoice_api/models/outbox_list_draft_documents_params.rbs +32 -0
  205. data/sig/e_invoice_api/models/outbox_list_received_documents_params.rbs +65 -0
  206. data/sig/e_invoice_api/models/paginated_document_response.rbs +40 -0
  207. data/sig/e_invoice_api/models/payment_detail_create.rbs +35 -0
  208. data/sig/e_invoice_api/models/ubl_document_validation.rbs +98 -0
  209. data/sig/e_invoice_api/models/unit_of_measure_code.rbs +192 -0
  210. data/sig/e_invoice_api/models/validate_validate_json_params.rbs +15 -0
  211. data/sig/e_invoice_api/models/validate_validate_peppol_id_params.rbs +23 -0
  212. data/sig/e_invoice_api/models/validate_validate_peppol_id_response.rbs +65 -0
  213. data/sig/e_invoice_api/models/validate_validate_ubl_params.rbs +24 -0
  214. data/sig/e_invoice_api/models/webhook_create_params.rbs +34 -0
  215. data/sig/e_invoice_api/models/webhook_delete_params.rbs +15 -0
  216. data/sig/e_invoice_api/models/webhook_delete_response.rbs +13 -0
  217. data/sig/e_invoice_api/models/webhook_list_params.rbs +15 -0
  218. data/sig/e_invoice_api/models/webhook_list_response.rbs +7 -0
  219. data/sig/e_invoice_api/models/webhook_response.rbs +42 -0
  220. data/sig/e_invoice_api/models/webhook_retrieve_params.rbs +15 -0
  221. data/sig/e_invoice_api/models/webhook_update_params.rbs +32 -0
  222. data/sig/e_invoice_api/models.rbs +65 -0
  223. data/sig/e_invoice_api/request_options.rbs +36 -0
  224. data/sig/e_invoice_api/resources/documents/attachments.rbs +32 -0
  225. data/sig/e_invoice_api/resources/documents/ubl.rbs +14 -0
  226. data/sig/e_invoice_api/resources/documents.rbs +76 -0
  227. data/sig/e_invoice_api/resources/inbox.rbs +31 -0
  228. data/sig/e_invoice_api/resources/lookup.rbs +12 -0
  229. data/sig/e_invoice_api/resources/outbox.rbs +25 -0
  230. data/sig/e_invoice_api/resources/validate.rbs +62 -0
  231. data/sig/e_invoice_api/resources/webhooks.rbs +36 -0
  232. data/sig/e_invoice_api/version.rbs +3 -0
  233. metadata +290 -0
@@ -0,0 +1,168 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EInvoiceAPI
4
+ module Resources
5
+ class Validate
6
+ # Validate if the JSON document can be converted to a valid UBL document
7
+ #
8
+ # @overload validate_json(amount_due: nil, attachments: nil, billing_address: nil, billing_address_recipient: nil, currency: nil, customer_address: nil, customer_address_recipient: nil, customer_email: nil, customer_id: nil, customer_name: nil, customer_tax_id: nil, direction: nil, document_type: nil, due_date: nil, invoice_date: nil, invoice_id: nil, invoice_total: nil, items: nil, note: nil, payment_details: nil, payment_term: nil, previous_unpaid_balance: nil, purchase_order: nil, remittance_address: nil, remittance_address_recipient: nil, service_address: nil, service_address_recipient: nil, service_end_date: nil, service_start_date: nil, shipping_address: nil, shipping_address_recipient: nil, state: nil, subtotal: nil, tax_details: nil, total_discount: nil, total_tax: nil, vendor_address: nil, vendor_address_recipient: nil, vendor_email: nil, vendor_name: nil, vendor_tax_id: nil, request_options: {})
9
+ #
10
+ # @param amount_due [Float, String, nil]
11
+ #
12
+ # @param attachments [Array<EInvoiceAPI::Models::DocumentAttachmentCreate>, nil]
13
+ #
14
+ # @param billing_address [String, nil]
15
+ #
16
+ # @param billing_address_recipient [String, nil]
17
+ #
18
+ # @param currency [Symbol, EInvoiceAPI::Models::CurrencyCode] Currency of the invoice
19
+ #
20
+ # @param customer_address [String, nil]
21
+ #
22
+ # @param customer_address_recipient [String, nil]
23
+ #
24
+ # @param customer_email [String, nil]
25
+ #
26
+ # @param customer_id [String, nil]
27
+ #
28
+ # @param customer_name [String, nil]
29
+ #
30
+ # @param customer_tax_id [String, nil]
31
+ #
32
+ # @param direction [Symbol, EInvoiceAPI::Models::DocumentDirection]
33
+ #
34
+ # @param document_type [Symbol, EInvoiceAPI::Models::DocumentType]
35
+ #
36
+ # @param due_date [Date, nil]
37
+ #
38
+ # @param invoice_date [Date, nil]
39
+ #
40
+ # @param invoice_id [String, nil]
41
+ #
42
+ # @param invoice_total [Float, String, nil]
43
+ #
44
+ # @param items [Array<EInvoiceAPI::Models::DocumentCreate::Item>, nil]
45
+ #
46
+ # @param note [String, nil]
47
+ #
48
+ # @param payment_details [Array<EInvoiceAPI::Models::PaymentDetailCreate>, nil]
49
+ #
50
+ # @param payment_term [String, nil]
51
+ #
52
+ # @param previous_unpaid_balance [Float, String, nil]
53
+ #
54
+ # @param purchase_order [String, nil]
55
+ #
56
+ # @param remittance_address [String, nil]
57
+ #
58
+ # @param remittance_address_recipient [String, nil]
59
+ #
60
+ # @param service_address [String, nil]
61
+ #
62
+ # @param service_address_recipient [String, nil]
63
+ #
64
+ # @param service_end_date [Date, nil]
65
+ #
66
+ # @param service_start_date [Date, nil]
67
+ #
68
+ # @param shipping_address [String, nil]
69
+ #
70
+ # @param shipping_address_recipient [String, nil]
71
+ #
72
+ # @param state [Symbol, EInvoiceAPI::Models::DocumentState]
73
+ #
74
+ # @param subtotal [Float, String, nil]
75
+ #
76
+ # @param tax_details [Array<EInvoiceAPI::Models::DocumentCreate::TaxDetail>, nil]
77
+ #
78
+ # @param total_discount [Float, String, nil]
79
+ #
80
+ # @param total_tax [Float, String, nil]
81
+ #
82
+ # @param vendor_address [String, nil]
83
+ #
84
+ # @param vendor_address_recipient [String, nil]
85
+ #
86
+ # @param vendor_email [String, nil]
87
+ #
88
+ # @param vendor_name [String, nil]
89
+ #
90
+ # @param vendor_tax_id [String, nil]
91
+ #
92
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
93
+ #
94
+ # @return [EInvoiceAPI::Models::UblDocumentValidation]
95
+ #
96
+ # @see EInvoiceAPI::Models::ValidateValidateJsonParams
97
+ def validate_json(params = {})
98
+ parsed, options = EInvoiceAPI::ValidateValidateJsonParams.dump_request(params)
99
+ @client.request(
100
+ method: :post,
101
+ path: "api/validate/json",
102
+ body: parsed,
103
+ model: EInvoiceAPI::UblDocumentValidation,
104
+ options: options
105
+ )
106
+ end
107
+
108
+ # Some parameter documentations has been truncated, see
109
+ # {EInvoiceAPI::Models::ValidateValidatePeppolIDParams} for more details.
110
+ #
111
+ # Validate if a Peppol ID exists in the Peppol network and retrieve supported
112
+ # document types. The peppol_id must be in the form of `<scheme>:<id>`. The scheme
113
+ # is a 4-digit code representing the identifier scheme, and the id is the actual
114
+ # identifier value. For example, for a Belgian company it is `0208:0123456789`
115
+ # (where 0208 is the scheme for Belgian enterprises, followed by the 10 digits of
116
+ # the official BTW / KBO number).
117
+ #
118
+ # @overload validate_peppol_id(peppol_id:, request_options: {})
119
+ #
120
+ # @param peppol_id [String] Peppol ID in the format `<scheme>:<id>`. Example: `0208:1018265814` for a Belgia
121
+ #
122
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
123
+ #
124
+ # @return [EInvoiceAPI::Models::ValidateValidatePeppolIDResponse]
125
+ #
126
+ # @see EInvoiceAPI::Models::ValidateValidatePeppolIDParams
127
+ def validate_peppol_id(params)
128
+ parsed, options = EInvoiceAPI::ValidateValidatePeppolIDParams.dump_request(params)
129
+ @client.request(
130
+ method: :get,
131
+ path: "api/validate/peppol-id",
132
+ query: parsed,
133
+ model: EInvoiceAPI::Models::ValidateValidatePeppolIDResponse,
134
+ options: options
135
+ )
136
+ end
137
+
138
+ # Validate the correctness of a UBL document
139
+ #
140
+ # @overload validate_ubl(file:, request_options: {})
141
+ #
142
+ # @param file [Pathname, StringIO, IO, String, EInvoiceAPI::FilePart]
143
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
144
+ #
145
+ # @return [EInvoiceAPI::Models::UblDocumentValidation]
146
+ #
147
+ # @see EInvoiceAPI::Models::ValidateValidateUblParams
148
+ def validate_ubl(params)
149
+ parsed, options = EInvoiceAPI::ValidateValidateUblParams.dump_request(params)
150
+ @client.request(
151
+ method: :post,
152
+ path: "api/validate/ubl",
153
+ headers: {"content-type" => "multipart/form-data"},
154
+ body: parsed,
155
+ model: EInvoiceAPI::UblDocumentValidation,
156
+ options: options
157
+ )
158
+ end
159
+
160
+ # @api private
161
+ #
162
+ # @param client [EInvoiceAPI::Client]
163
+ def initialize(client:)
164
+ @client = client
165
+ end
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EInvoiceAPI
4
+ module Resources
5
+ class Webhooks
6
+ # Create a new webhook
7
+ #
8
+ # @overload create(events:, url:, enabled: nil, request_options: {})
9
+ #
10
+ # @param events [Array<String>]
11
+ # @param url [String]
12
+ # @param enabled [Boolean]
13
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
14
+ #
15
+ # @return [EInvoiceAPI::Models::WebhookResponse]
16
+ #
17
+ # @see EInvoiceAPI::Models::WebhookCreateParams
18
+ def create(params)
19
+ parsed, options = EInvoiceAPI::WebhookCreateParams.dump_request(params)
20
+ @client.request(
21
+ method: :post,
22
+ path: "api/webhooks/",
23
+ body: parsed,
24
+ model: EInvoiceAPI::WebhookResponse,
25
+ options: options
26
+ )
27
+ end
28
+
29
+ # Get a webhook by ID
30
+ #
31
+ # @overload retrieve(webhook_id, request_options: {})
32
+ #
33
+ # @param webhook_id [String]
34
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
35
+ #
36
+ # @return [EInvoiceAPI::Models::WebhookResponse]
37
+ #
38
+ # @see EInvoiceAPI::Models::WebhookRetrieveParams
39
+ def retrieve(webhook_id, params = {})
40
+ @client.request(
41
+ method: :get,
42
+ path: ["api/webhooks/%1$s", webhook_id],
43
+ model: EInvoiceAPI::WebhookResponse,
44
+ options: params[:request_options]
45
+ )
46
+ end
47
+
48
+ # Update a webhook by ID
49
+ #
50
+ # @overload update(webhook_id, enabled: nil, events: nil, url: nil, request_options: {})
51
+ #
52
+ # @param webhook_id [String]
53
+ # @param enabled [Boolean, nil]
54
+ # @param events [Array<String>, nil]
55
+ # @param url [String, nil]
56
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
57
+ #
58
+ # @return [EInvoiceAPI::Models::WebhookResponse]
59
+ #
60
+ # @see EInvoiceAPI::Models::WebhookUpdateParams
61
+ def update(webhook_id, params = {})
62
+ parsed, options = EInvoiceAPI::WebhookUpdateParams.dump_request(params)
63
+ @client.request(
64
+ method: :put,
65
+ path: ["api/webhooks/%1$s", webhook_id],
66
+ body: parsed,
67
+ model: EInvoiceAPI::WebhookResponse,
68
+ options: options
69
+ )
70
+ end
71
+
72
+ # Get all webhooks for the current tenant
73
+ #
74
+ # @overload list(request_options: {})
75
+ #
76
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
77
+ #
78
+ # @return [Array<EInvoiceAPI::Models::WebhookResponse>]
79
+ #
80
+ # @see EInvoiceAPI::Models::WebhookListParams
81
+ def list(params = {})
82
+ @client.request(
83
+ method: :get,
84
+ path: "api/webhooks/",
85
+ model: EInvoiceAPI::Internal::Type::ArrayOf[EInvoiceAPI::WebhookResponse],
86
+ options: params[:request_options]
87
+ )
88
+ end
89
+
90
+ # Delete a webhook
91
+ #
92
+ # @overload delete(webhook_id, request_options: {})
93
+ #
94
+ # @param webhook_id [String]
95
+ # @param request_options [EInvoiceAPI::RequestOptions, Hash{Symbol=>Object}, nil]
96
+ #
97
+ # @return [EInvoiceAPI::Models::WebhookDeleteResponse]
98
+ #
99
+ # @see EInvoiceAPI::Models::WebhookDeleteParams
100
+ def delete(webhook_id, params = {})
101
+ @client.request(
102
+ method: :delete,
103
+ path: ["api/webhooks/%1$s", webhook_id],
104
+ model: EInvoiceAPI::Models::WebhookDeleteResponse,
105
+ options: params[:request_options]
106
+ )
107
+ end
108
+
109
+ # @api private
110
+ #
111
+ # @param client [EInvoiceAPI::Client]
112
+ def initialize(client:)
113
+ @client = client
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EInvoiceAPI
4
+ VERSION = "0.1.0.pre.alpha.5"
5
+ end
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Standard libraries.
4
+ # rubocop:disable Lint/RedundantRequireStatement
5
+ require "English"
6
+ require "cgi"
7
+ require "date"
8
+ require "erb"
9
+ require "etc"
10
+ require "json"
11
+ require "net/http"
12
+ require "pathname"
13
+ require "rbconfig"
14
+ require "securerandom"
15
+ require "set"
16
+ require "stringio"
17
+ require "time"
18
+ require "uri"
19
+ # rubocop:enable Lint/RedundantRequireStatement
20
+
21
+ # We already ship the preferred sorbet manifests in the package itself.
22
+ # `tapioca` currently does not offer us a way to opt out of unnecessary compilation.
23
+ if Object.const_defined?(:Tapioca) &&
24
+ caller.chain([$PROGRAM_NAME]).chain(ARGV).any?(/tapioca/) &&
25
+ ARGV.none?(/dsl/)
26
+ return
27
+ end
28
+
29
+ # Gems.
30
+ require "connection_pool"
31
+
32
+ # Package files.
33
+ require_relative "e_invoice_api/version"
34
+ require_relative "e_invoice_api/internal/util"
35
+ require_relative "e_invoice_api/internal/type/converter"
36
+ require_relative "e_invoice_api/internal/type/unknown"
37
+ require_relative "e_invoice_api/internal/type/boolean"
38
+ require_relative "e_invoice_api/internal/type/file_input"
39
+ require_relative "e_invoice_api/internal/type/enum"
40
+ require_relative "e_invoice_api/internal/type/union"
41
+ require_relative "e_invoice_api/internal/type/array_of"
42
+ require_relative "e_invoice_api/internal/type/hash_of"
43
+ require_relative "e_invoice_api/internal/type/base_model"
44
+ require_relative "e_invoice_api/internal/type/base_page"
45
+ require_relative "e_invoice_api/internal/type/request_parameters"
46
+ require_relative "e_invoice_api/internal"
47
+ require_relative "e_invoice_api/request_options"
48
+ require_relative "e_invoice_api/file_part"
49
+ require_relative "e_invoice_api/errors"
50
+ require_relative "e_invoice_api/internal/transport/base_client"
51
+ require_relative "e_invoice_api/internal/transport/pooled_net_requester"
52
+ require_relative "e_invoice_api/client"
53
+ require_relative "e_invoice_api/internal/documents_number_page"
54
+ require_relative "e_invoice_api/models/document_create"
55
+ require_relative "e_invoice_api/models/certificate"
56
+ require_relative "e_invoice_api/models/currency_code"
57
+ require_relative "e_invoice_api/models/document_attachment_create"
58
+ require_relative "e_invoice_api/models/document_create_params"
59
+ require_relative "e_invoice_api/models/document_delete_params"
60
+ require_relative "e_invoice_api/models/document_delete_response"
61
+ require_relative "e_invoice_api/models/document_direction"
62
+ require_relative "e_invoice_api/models/document_response"
63
+ require_relative "e_invoice_api/models/document_retrieve_params"
64
+ require_relative "e_invoice_api/models/documents/attachment_add_params"
65
+ require_relative "e_invoice_api/models/documents/attachment_delete_params"
66
+ require_relative "e_invoice_api/models/documents/attachment_delete_response"
67
+ require_relative "e_invoice_api/models/documents/attachment_list_params"
68
+ require_relative "e_invoice_api/models/documents/attachment_list_response"
69
+ require_relative "e_invoice_api/models/documents/attachment_retrieve_params"
70
+ require_relative "e_invoice_api/models/documents/document_attachment"
71
+ require_relative "e_invoice_api/models/documents/ubl_get_params"
72
+ require_relative "e_invoice_api/models/documents/ubl_get_response"
73
+ require_relative "e_invoice_api/models/document_send_params"
74
+ require_relative "e_invoice_api/models/document_state"
75
+ require_relative "e_invoice_api/models/document_type"
76
+ require_relative "e_invoice_api/models/inbox_list_credit_notes_params"
77
+ require_relative "e_invoice_api/models/inbox_list_invoices_params"
78
+ require_relative "e_invoice_api/models/inbox_list_params"
79
+ require_relative "e_invoice_api/models/lookup_retrieve_params"
80
+ require_relative "e_invoice_api/models/lookup_retrieve_response"
81
+ require_relative "e_invoice_api/models/outbox_list_draft_documents_params"
82
+ require_relative "e_invoice_api/models/outbox_list_received_documents_params"
83
+ require_relative "e_invoice_api/models/paginated_document_response"
84
+ require_relative "e_invoice_api/models/payment_detail_create"
85
+ require_relative "e_invoice_api/models/ubl_document_validation"
86
+ require_relative "e_invoice_api/models/unit_of_measure_code"
87
+ require_relative "e_invoice_api/models/validate_validate_json_params"
88
+ require_relative "e_invoice_api/models/validate_validate_peppol_id_params"
89
+ require_relative "e_invoice_api/models/validate_validate_peppol_id_response"
90
+ require_relative "e_invoice_api/models/validate_validate_ubl_params"
91
+ require_relative "e_invoice_api/models/webhook_create_params"
92
+ require_relative "e_invoice_api/models/webhook_delete_params"
93
+ require_relative "e_invoice_api/models/webhook_delete_response"
94
+ require_relative "e_invoice_api/models/webhook_list_params"
95
+ require_relative "e_invoice_api/models/webhook_list_response"
96
+ require_relative "e_invoice_api/models/webhook_response"
97
+ require_relative "e_invoice_api/models/webhook_retrieve_params"
98
+ require_relative "e_invoice_api/models/webhook_update_params"
99
+ require_relative "e_invoice_api/models"
100
+ require_relative "e_invoice_api/resources/documents"
101
+ require_relative "e_invoice_api/resources/documents/attachments"
102
+ require_relative "e_invoice_api/resources/documents/ubl"
103
+ require_relative "e_invoice_api/resources/inbox"
104
+ require_relative "e_invoice_api/resources/lookup"
105
+ require_relative "e_invoice_api/resources/outbox"
106
+ require_relative "e_invoice_api/resources/validate"
107
+ require_relative "e_invoice_api/resources/webhooks"
data/manifest.yaml ADDED
@@ -0,0 +1,15 @@
1
+ dependencies:
2
+ - English
3
+ - cgi
4
+ - date
5
+ - erb
6
+ - etc
7
+ - json
8
+ - net/http
9
+ - pathname
10
+ - rbconfig
11
+ - securerandom
12
+ - set
13
+ - stringio
14
+ - time
15
+ - uri
@@ -0,0 +1,64 @@
1
+ # typed: strong
2
+
3
+ module EInvoiceAPI
4
+ class Client < EInvoiceAPI::Internal::Transport::BaseClient
5
+ DEFAULT_MAX_RETRIES = 2
6
+
7
+ DEFAULT_TIMEOUT_IN_SECONDS = T.let(60.0, Float)
8
+
9
+ DEFAULT_INITIAL_RETRY_DELAY = T.let(0.5, Float)
10
+
11
+ DEFAULT_MAX_RETRY_DELAY = T.let(8.0, Float)
12
+
13
+ sig { returns(String) }
14
+ attr_reader :api_key
15
+
16
+ sig { returns(EInvoiceAPI::Resources::Documents) }
17
+ attr_reader :documents
18
+
19
+ sig { returns(EInvoiceAPI::Resources::Inbox) }
20
+ attr_reader :inbox
21
+
22
+ sig { returns(EInvoiceAPI::Resources::Outbox) }
23
+ attr_reader :outbox
24
+
25
+ sig { returns(EInvoiceAPI::Resources::Validate) }
26
+ attr_reader :validate
27
+
28
+ sig { returns(EInvoiceAPI::Resources::Lookup) }
29
+ attr_reader :lookup
30
+
31
+ sig { returns(EInvoiceAPI::Resources::Webhooks) }
32
+ attr_reader :webhooks
33
+
34
+ # @api private
35
+ sig { override.returns(T::Hash[String, String]) }
36
+ private def auth_headers
37
+ end
38
+
39
+ # Creates and returns a new client for interacting with the API.
40
+ sig do
41
+ params(
42
+ api_key: T.nilable(String),
43
+ base_url: T.nilable(String),
44
+ max_retries: Integer,
45
+ timeout: Float,
46
+ initial_retry_delay: Float,
47
+ max_retry_delay: Float
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ # Defaults to `ENV["E_INVOICE_API_KEY"]`
52
+ api_key: ENV["E_INVOICE_API_KEY"],
53
+ # Override the default base URL for the API, e.g.,
54
+ # `"https://api.example.com/v2/"`. Defaults to `ENV["E_INVOICE_BASE_URL"]`
55
+ base_url: ENV["E_INVOICE_BASE_URL"],
56
+ # Max number of retries to attempt after a failed retryable request.
57
+ max_retries: EInvoiceAPI::Client::DEFAULT_MAX_RETRIES,
58
+ timeout: EInvoiceAPI::Client::DEFAULT_TIMEOUT_IN_SECONDS,
59
+ initial_retry_delay: EInvoiceAPI::Client::DEFAULT_INITIAL_RETRY_DELAY,
60
+ max_retry_delay: EInvoiceAPI::Client::DEFAULT_MAX_RETRY_DELAY
61
+ )
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,162 @@
1
+ # typed: strong
2
+
3
+ module EInvoiceAPI
4
+ module Errors
5
+ class Error < StandardError
6
+ sig { returns(T.nilable(StandardError)) }
7
+ attr_accessor :cause
8
+ end
9
+
10
+ class ConversionError < EInvoiceAPI::Errors::Error
11
+ end
12
+
13
+ class APIError < EInvoiceAPI::Errors::Error
14
+ sig { returns(URI::Generic) }
15
+ attr_accessor :url
16
+
17
+ sig { returns(T.nilable(Integer)) }
18
+ attr_accessor :status
19
+
20
+ sig { returns(T.nilable(T.anything)) }
21
+ attr_accessor :body
22
+
23
+ # @api private
24
+ sig do
25
+ params(
26
+ url: URI::Generic,
27
+ status: T.nilable(Integer),
28
+ body: T.nilable(Object),
29
+ request: NilClass,
30
+ response: NilClass,
31
+ message: T.nilable(String)
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ url:,
36
+ status: nil,
37
+ body: nil,
38
+ request: nil,
39
+ response: nil,
40
+ message: nil
41
+ )
42
+ end
43
+ end
44
+
45
+ class APIConnectionError < EInvoiceAPI::Errors::APIError
46
+ sig { void }
47
+ attr_accessor :status
48
+
49
+ sig { void }
50
+ attr_accessor :body
51
+
52
+ # @api private
53
+ sig do
54
+ params(
55
+ url: URI::Generic,
56
+ status: NilClass,
57
+ body: NilClass,
58
+ request: NilClass,
59
+ response: NilClass,
60
+ message: T.nilable(String)
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ url:,
65
+ status: nil,
66
+ body: nil,
67
+ request: nil,
68
+ response: nil,
69
+ message: "Connection error."
70
+ )
71
+ end
72
+ end
73
+
74
+ class APITimeoutError < EInvoiceAPI::Errors::APIConnectionError
75
+ # @api private
76
+ sig do
77
+ params(
78
+ url: URI::Generic,
79
+ status: NilClass,
80
+ body: NilClass,
81
+ request: NilClass,
82
+ response: NilClass,
83
+ message: T.nilable(String)
84
+ ).returns(T.attached_class)
85
+ end
86
+ def self.new(
87
+ url:,
88
+ status: nil,
89
+ body: nil,
90
+ request: nil,
91
+ response: nil,
92
+ message: "Request timed out."
93
+ )
94
+ end
95
+ end
96
+
97
+ class APIStatusError < EInvoiceAPI::Errors::APIError
98
+ # @api private
99
+ sig do
100
+ params(
101
+ url: URI::Generic,
102
+ status: Integer,
103
+ body: T.nilable(Object),
104
+ request: NilClass,
105
+ response: NilClass,
106
+ message: T.nilable(String)
107
+ ).returns(T.attached_class)
108
+ end
109
+ def self.for(url:, status:, body:, request:, response:, message: nil)
110
+ end
111
+
112
+ sig { returns(Integer) }
113
+ attr_accessor :status
114
+
115
+ # @api private
116
+ sig do
117
+ params(
118
+ url: URI::Generic,
119
+ status: Integer,
120
+ body: T.nilable(Object),
121
+ request: NilClass,
122
+ response: NilClass,
123
+ message: T.nilable(String)
124
+ ).returns(T.attached_class)
125
+ end
126
+ def self.new(url:, status:, body:, request:, response:, message: nil)
127
+ end
128
+ end
129
+
130
+ class BadRequestError < EInvoiceAPI::Errors::APIStatusError
131
+ HTTP_STATUS = 400
132
+ end
133
+
134
+ class AuthenticationError < EInvoiceAPI::Errors::APIStatusError
135
+ HTTP_STATUS = 401
136
+ end
137
+
138
+ class PermissionDeniedError < EInvoiceAPI::Errors::APIStatusError
139
+ HTTP_STATUS = 403
140
+ end
141
+
142
+ class NotFoundError < EInvoiceAPI::Errors::APIStatusError
143
+ HTTP_STATUS = 404
144
+ end
145
+
146
+ class ConflictError < EInvoiceAPI::Errors::APIStatusError
147
+ HTTP_STATUS = 409
148
+ end
149
+
150
+ class UnprocessableEntityError < EInvoiceAPI::Errors::APIStatusError
151
+ HTTP_STATUS = 422
152
+ end
153
+
154
+ class RateLimitError < EInvoiceAPI::Errors::APIStatusError
155
+ HTTP_STATUS = 429
156
+ end
157
+
158
+ class InternalServerError < EInvoiceAPI::Errors::APIStatusError
159
+ HTTP_STATUS = T.let((500..), T::Range[Integer])
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module EInvoiceAPI
4
+ class FilePart
5
+ sig { returns(T.any(Pathname, StringIO, IO, String)) }
6
+ attr_reader :content
7
+
8
+ sig { returns(T.nilable(String)) }
9
+ attr_reader :content_type
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :filename
13
+
14
+ # @api private
15
+ sig { returns(String) }
16
+ private def read
17
+ end
18
+
19
+ sig { params(a: T.anything).returns(String) }
20
+ def to_json(*a)
21
+ end
22
+
23
+ sig { params(a: T.anything).returns(String) }
24
+ def to_yaml(*a)
25
+ end
26
+
27
+ sig do
28
+ params(
29
+ content: T.any(Pathname, StringIO, IO, String),
30
+ filename: T.nilable(String),
31
+ content_type: T.nilable(String)
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(content, filename: nil, content_type: nil)
35
+ end
36
+ end
37
+ end