factpulse 3.0.5 → 3.0.6

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 (207) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -3
  3. data/Gemfile.lock +1 -1
  4. data/docs/AdditionalDocument.md +26 -0
  5. data/docs/AllowanceCharge.md +32 -0
  6. data/docs/AllowanceTotalAmount.md +15 -0
  7. data/docs/{APIProfile.md → Amount.md} +2 -2
  8. data/docs/{DocumentType.md → BaseAmount.md} +2 -2
  9. data/docs/ChargeTotalAmount.md +15 -0
  10. data/docs/Contact.md +24 -0
  11. data/docs/ConvertErrorResponse.md +26 -0
  12. data/docs/ConvertPendingInputResponse.md +32 -0
  13. data/docs/ConvertResumeRequest.md +18 -0
  14. data/docs/ConvertSuccessResponse.md +36 -0
  15. data/docs/ConvertValidationFailedResponse.md +34 -0
  16. data/docs/DeliveryParty.md +24 -0
  17. data/docs/DocumentConversionApi.md +373 -0
  18. data/docs/DocumentTypeInfo.md +22 -0
  19. data/docs/ExtractionInfo.md +24 -0
  20. data/docs/FacturXInvoice.md +29 -1
  21. data/docs/FacturXProfile.md +15 -0
  22. data/docs/FileInfo.md +20 -0
  23. data/docs/FilesInfo.md +20 -0
  24. data/docs/GrossUnitPrice.md +15 -0
  25. data/docs/IncomingInvoice.md +1 -1
  26. data/docs/InvoiceLine.md +43 -9
  27. data/docs/InvoiceProcessingApi.md +8 -8
  28. data/docs/InvoiceReferences.md +26 -6
  29. data/docs/InvoiceTotals.md +10 -2
  30. data/docs/LineTotalAmount.md +15 -0
  31. data/docs/MissingField.md +28 -0
  32. data/docs/Payee.md +5 -1
  33. data/docs/PaymentCard.md +20 -0
  34. data/docs/Percentage.md +15 -0
  35. data/docs/PostalAddress.md +5 -1
  36. data/docs/PriceAllowanceAmount.md +15 -0
  37. data/docs/PriceBasisQuantity.md +15 -0
  38. data/docs/ProcessingOptions.md +3 -3
  39. data/docs/ProductCharacteristic.md +20 -0
  40. data/docs/ProductClassification.md +22 -0
  41. data/docs/Recipient.md +7 -1
  42. data/docs/RoundingAmount.md +15 -0
  43. data/docs/Supplier.md +17 -1
  44. data/docs/TaxRepresentative.md +22 -0
  45. data/docs/VATLine.md +2 -0
  46. data/docs/VATPointDateCode.md +15 -0
  47. data/docs/ValidationInfo.md +28 -0
  48. data/docs/VatRate.md +15 -0
  49. data/factpulse.gemspec +1 -1
  50. data/lib/factpulse/api/afnorpdppa_api.rb +1 -1
  51. data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +1 -1
  52. data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +1 -1
  53. data/lib/factpulse/api/chorus_pro_api.rb +1 -1
  54. data/lib/factpulse/api/document_conversion_api.rb +378 -0
  55. data/lib/factpulse/api/health_api.rb +1 -1
  56. data/lib/factpulse/api/invoice_processing_api.rb +9 -9
  57. data/lib/factpulse/api/pdfxml_verification_api.rb +1 -1
  58. data/lib/factpulse/api/user_api.rb +1 -1
  59. data/lib/factpulse/api_client.rb +1 -1
  60. data/lib/factpulse/api_error.rb +1 -1
  61. data/lib/factpulse/api_model_base.rb +1 -1
  62. data/lib/factpulse/configuration.rb +1 -1
  63. data/lib/factpulse/models/acknowledgment_status.rb +1 -1
  64. data/lib/factpulse/models/additional_document.rb +206 -0
  65. data/lib/factpulse/models/afnor_credentials.rb +1 -1
  66. data/lib/factpulse/models/afnor_destination.rb +1 -1
  67. data/lib/factpulse/models/afnor_health_check_response.rb +1 -1
  68. data/lib/factpulse/models/afnor_result.rb +1 -1
  69. data/lib/factpulse/models/allowance_charge.rb +252 -0
  70. data/lib/factpulse/models/allowance_reason_code.rb +1 -1
  71. data/lib/factpulse/models/allowance_total_amount.rb +104 -0
  72. data/lib/factpulse/models/amount.rb +104 -0
  73. data/lib/factpulse/models/amount_due.rb +2 -2
  74. data/lib/factpulse/models/api_error.rb +1 -1
  75. data/lib/factpulse/models/async_task_status.rb +1 -1
  76. data/lib/factpulse/models/base_amount.rb +104 -0
  77. data/lib/factpulse/models/bounding_box_schema.rb +1 -1
  78. data/lib/factpulse/models/celery_status.rb +1 -1
  79. data/lib/factpulse/models/certificate_info_response.rb +1 -1
  80. data/lib/factpulse/models/charge_total_amount.rb +104 -0
  81. data/lib/factpulse/models/chorus_pro_destination.rb +1 -1
  82. data/lib/factpulse/models/chorus_pro_result.rb +1 -1
  83. data/lib/factpulse/models/contact.rb +179 -0
  84. data/lib/factpulse/models/convert_error_response.rb +224 -0
  85. data/lib/factpulse/models/convert_pending_input_response.rb +322 -0
  86. data/lib/factpulse/models/convert_resume_request.rb +151 -0
  87. data/lib/factpulse/models/convert_success_response.rb +360 -0
  88. data/lib/factpulse/models/convert_validation_failed_response.rb +334 -0
  89. data/lib/factpulse/models/delivery_party.rb +179 -0
  90. data/lib/factpulse/models/destination.rb +1 -1
  91. data/lib/factpulse/models/document_type_info.rb +220 -0
  92. data/lib/factpulse/models/electronic_address.rb +1 -1
  93. data/lib/factpulse/models/enriched_invoice_info.rb +1 -1
  94. data/lib/factpulse/models/error_level.rb +1 -1
  95. data/lib/factpulse/models/error_source.rb +1 -1
  96. data/lib/factpulse/models/extraction_info.rb +217 -0
  97. data/lib/factpulse/models/factur_x_invoice.rb +150 -6
  98. data/lib/factpulse/models/{api_profile.rb → factur_x_profile.rb} +4 -4
  99. data/lib/factpulse/models/factur_xpdf_info.rb +1 -1
  100. data/lib/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb +5 -5
  101. data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +1 -1
  102. data/lib/factpulse/models/field_status.rb +1 -1
  103. data/lib/factpulse/models/file_info.rb +161 -0
  104. data/lib/factpulse/models/files_info.rb +159 -0
  105. data/lib/factpulse/models/flow_direction.rb +1 -1
  106. data/lib/factpulse/models/flow_profile.rb +1 -1
  107. data/lib/factpulse/models/flow_summary.rb +1 -1
  108. data/lib/factpulse/models/flow_syntax.rb +1 -1
  109. data/lib/factpulse/models/flow_type.rb +1 -1
  110. data/lib/factpulse/models/generate_certificate_request.rb +6 -6
  111. data/lib/factpulse/models/generate_certificate_response.rb +1 -1
  112. data/lib/factpulse/models/get_chorus_pro_id_request.rb +2 -2
  113. data/lib/factpulse/models/get_chorus_pro_id_response.rb +1 -1
  114. data/lib/factpulse/models/get_invoice_request.rb +2 -2
  115. data/lib/factpulse/models/get_invoice_response.rb +1 -1
  116. data/lib/factpulse/models/get_structure_request.rb +3 -3
  117. data/lib/factpulse/models/get_structure_response.rb +1 -1
  118. data/lib/factpulse/models/global_allowance_amount.rb +2 -2
  119. data/lib/factpulse/models/gross_unit_price.rb +104 -0
  120. data/lib/factpulse/models/http_validation_error.rb +1 -1
  121. data/lib/factpulse/models/incoming_invoice.rb +2 -2
  122. data/lib/factpulse/models/incoming_supplier.rb +1 -1
  123. data/lib/factpulse/models/invoice_format.rb +1 -1
  124. data/lib/factpulse/models/invoice_line.rb +209 -25
  125. data/lib/factpulse/models/invoice_line_allowance_amount.rb +2 -2
  126. data/lib/factpulse/models/invoice_note.rb +1 -1
  127. data/lib/factpulse/models/invoice_references.rb +119 -16
  128. data/lib/factpulse/models/invoice_status.rb +1 -1
  129. data/lib/factpulse/models/invoice_totals.rb +52 -12
  130. data/lib/factpulse/models/invoice_totals_prepayment.rb +2 -2
  131. data/lib/factpulse/models/invoice_type_code.rb +1 -1
  132. data/lib/factpulse/models/invoicing_framework.rb +1 -1
  133. data/lib/factpulse/models/invoicing_framework_code.rb +1 -1
  134. data/lib/factpulse/models/line_net_amount.rb +2 -2
  135. data/lib/factpulse/models/line_total_amount.rb +104 -0
  136. data/lib/factpulse/models/mandatory_note_schema.rb +1 -1
  137. data/lib/factpulse/models/manual_rate.rb +2 -2
  138. data/lib/factpulse/models/manual_vat_rate.rb +2 -2
  139. data/lib/factpulse/models/missing_field.rb +269 -0
  140. data/lib/factpulse/models/operation_nature.rb +1 -1
  141. data/lib/factpulse/models/output_format.rb +1 -1
  142. data/lib/factpulse/models/page_dimensions_schema.rb +1 -1
  143. data/lib/factpulse/models/payee.rb +28 -6
  144. data/lib/factpulse/models/payment_card.rb +159 -0
  145. data/lib/factpulse/models/payment_means.rb +1 -1
  146. data/lib/factpulse/models/pdf_validation_result_api.rb +1 -1
  147. data/lib/factpulse/models/pdp_credentials.rb +6 -6
  148. data/lib/factpulse/models/percentage.rb +104 -0
  149. data/lib/factpulse/models/postal_address.rb +27 -7
  150. data/lib/factpulse/models/price_allowance_amount.rb +104 -0
  151. data/lib/factpulse/models/price_basis_quantity.rb +104 -0
  152. data/lib/factpulse/models/processing_options.rb +10 -10
  153. data/lib/factpulse/models/product_characteristic.rb +193 -0
  154. data/lib/factpulse/models/product_classification.rb +186 -0
  155. data/lib/factpulse/models/quantity.rb +2 -2
  156. data/lib/factpulse/models/recipient.rb +39 -7
  157. data/lib/factpulse/models/rounding_amount.rb +104 -0
  158. data/lib/factpulse/models/scheme_id.rb +12 -6
  159. data/lib/factpulse/models/search_flow_request.rb +8 -8
  160. data/lib/factpulse/models/search_flow_response.rb +1 -1
  161. data/lib/factpulse/models/search_services_response.rb +1 -1
  162. data/lib/factpulse/models/search_structure_request.rb +5 -5
  163. data/lib/factpulse/models/search_structure_response.rb +1 -1
  164. data/lib/factpulse/models/signature_info.rb +1 -1
  165. data/lib/factpulse/models/signature_info_api.rb +1 -1
  166. data/lib/factpulse/models/signature_parameters.rb +1 -1
  167. data/lib/factpulse/models/simplified_invoice_data.rb +1 -1
  168. data/lib/factpulse/models/structure_info.rb +1 -1
  169. data/lib/factpulse/models/structure_parameters.rb +1 -1
  170. data/lib/factpulse/models/structure_service.rb +1 -1
  171. data/lib/factpulse/models/submission_mode.rb +1 -1
  172. data/lib/factpulse/models/submit_complete_invoice_request.rb +1 -1
  173. data/lib/factpulse/models/submit_complete_invoice_response.rb +1 -1
  174. data/lib/factpulse/models/submit_flow_request.rb +7 -7
  175. data/lib/factpulse/models/submit_flow_response.rb +1 -1
  176. data/lib/factpulse/models/submit_gross_amount.rb +1 -1
  177. data/lib/factpulse/models/submit_invoice_request.rb +14 -14
  178. data/lib/factpulse/models/submit_invoice_response.rb +1 -1
  179. data/lib/factpulse/models/submit_net_amount.rb +1 -1
  180. data/lib/factpulse/models/submit_vat_amount.rb +1 -1
  181. data/lib/factpulse/models/supplementary_attachment.rb +1 -1
  182. data/lib/factpulse/models/supplier.rb +89 -7
  183. data/lib/factpulse/models/task_response.rb +1 -1
  184. data/lib/factpulse/models/tax_representative.rb +220 -0
  185. data/lib/factpulse/models/taxable_amount.rb +2 -2
  186. data/lib/factpulse/models/total_gross_amount.rb +2 -2
  187. data/lib/factpulse/models/total_net_amount.rb +2 -2
  188. data/lib/factpulse/models/total_vat_amount.rb +2 -2
  189. data/lib/factpulse/models/unit_net_price.rb +2 -2
  190. data/lib/factpulse/models/unit_of_measure.rb +1 -1
  191. data/lib/factpulse/models/validation_error.rb +1 -1
  192. data/lib/factpulse/models/validation_error_detail.rb +1 -1
  193. data/lib/factpulse/models/validation_error_loc_inner.rb +1 -1
  194. data/lib/factpulse/models/validation_error_response.rb +1 -1
  195. data/lib/factpulse/models/validation_info.rb +255 -0
  196. data/lib/factpulse/models/validation_success_response.rb +1 -1
  197. data/lib/factpulse/models/vat_accounting_code.rb +1 -1
  198. data/lib/factpulse/models/vat_amount.rb +2 -2
  199. data/lib/factpulse/models/vat_category.rb +1 -1
  200. data/lib/factpulse/models/vat_line.rb +13 -3
  201. data/lib/factpulse/models/{document_type.rb → vat_point_date_code.rb} +8 -10
  202. data/lib/factpulse/models/vat_rate.rb +104 -0
  203. data/lib/factpulse/models/verification_success_response.rb +1 -1
  204. data/lib/factpulse/models/verified_field_schema.rb +1 -1
  205. data/lib/factpulse/version.rb +2 -2
  206. data/lib/factpulse.rb +34 -3
  207. metadata +68 -6
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -48,6 +48,34 @@ module FactPulse
48
48
 
49
49
  attr_accessor :payee
50
50
 
51
+ attr_accessor :delivery_party
52
+
53
+ attr_accessor :tax_representative
54
+
55
+ attr_accessor :delivery_date
56
+
57
+ attr_accessor :billing_period_start
58
+
59
+ attr_accessor :billing_period_end
60
+
61
+ attr_accessor :payment_reference
62
+
63
+ attr_accessor :creditor_reference_id
64
+
65
+ attr_accessor :direct_debit_mandate_id
66
+
67
+ attr_accessor :debtor_iban
68
+
69
+ attr_accessor :payment_terms
70
+
71
+ attr_accessor :allowances_charges
72
+
73
+ attr_accessor :additional_documents
74
+
75
+ attr_accessor :buyer_accounting_reference
76
+
77
+ attr_accessor :payment_card
78
+
51
79
  class EnumAttributeValidator
52
80
  attr_reader :datatype
53
81
  attr_reader :allowable_values
@@ -88,7 +116,21 @@ module FactPulse
88
116
  :'comment' => :'comment',
89
117
  :'current_user_id' => :'current_user_id',
90
118
  :'supplementary_attachments' => :'supplementary_attachments',
91
- :'payee' => :'payee'
119
+ :'payee' => :'payee',
120
+ :'delivery_party' => :'delivery_party',
121
+ :'tax_representative' => :'tax_representative',
122
+ :'delivery_date' => :'delivery_date',
123
+ :'billing_period_start' => :'billing_period_start',
124
+ :'billing_period_end' => :'billing_period_end',
125
+ :'payment_reference' => :'payment_reference',
126
+ :'creditor_reference_id' => :'creditor_reference_id',
127
+ :'direct_debit_mandate_id' => :'direct_debit_mandate_id',
128
+ :'debtor_iban' => :'debtor_iban',
129
+ :'payment_terms' => :'payment_terms',
130
+ :'allowances_charges' => :'allowances_charges',
131
+ :'additional_documents' => :'additional_documents',
132
+ :'buyer_accounting_reference' => :'buyer_accounting_reference',
133
+ :'payment_card' => :'payment_card'
92
134
  }
93
135
  end
94
136
 
@@ -120,7 +162,21 @@ module FactPulse
120
162
  :'comment' => :'String',
121
163
  :'current_user_id' => :'Integer',
122
164
  :'supplementary_attachments' => :'Array<SupplementaryAttachment>',
123
- :'payee' => :'Payee'
165
+ :'payee' => :'Payee',
166
+ :'delivery_party' => :'DeliveryParty',
167
+ :'tax_representative' => :'TaxRepresentative',
168
+ :'delivery_date' => :'String',
169
+ :'billing_period_start' => :'String',
170
+ :'billing_period_end' => :'String',
171
+ :'payment_reference' => :'String',
172
+ :'creditor_reference_id' => :'String',
173
+ :'direct_debit_mandate_id' => :'String',
174
+ :'debtor_iban' => :'String',
175
+ :'payment_terms' => :'String',
176
+ :'allowances_charges' => :'Array<AllowanceCharge>',
177
+ :'additional_documents' => :'Array<AdditionalDocument>',
178
+ :'buyer_accounting_reference' => :'String',
179
+ :'payment_card' => :'PaymentCard'
124
180
  }
125
181
  end
126
182
 
@@ -130,7 +186,21 @@ module FactPulse
130
186
  :'comment',
131
187
  :'current_user_id',
132
188
  :'supplementary_attachments',
133
- :'payee'
189
+ :'payee',
190
+ :'delivery_party',
191
+ :'tax_representative',
192
+ :'delivery_date',
193
+ :'billing_period_start',
194
+ :'billing_period_end',
195
+ :'payment_reference',
196
+ :'creditor_reference_id',
197
+ :'direct_debit_mandate_id',
198
+ :'debtor_iban',
199
+ :'payment_terms',
200
+ :'allowances_charges',
201
+ :'additional_documents',
202
+ :'buyer_accounting_reference',
203
+ :'payment_card'
134
204
  ])
135
205
  end
136
206
 
@@ -237,6 +307,66 @@ module FactPulse
237
307
  if attributes.key?(:'payee')
238
308
  self.payee = attributes[:'payee']
239
309
  end
310
+
311
+ if attributes.key?(:'delivery_party')
312
+ self.delivery_party = attributes[:'delivery_party']
313
+ end
314
+
315
+ if attributes.key?(:'tax_representative')
316
+ self.tax_representative = attributes[:'tax_representative']
317
+ end
318
+
319
+ if attributes.key?(:'delivery_date')
320
+ self.delivery_date = attributes[:'delivery_date']
321
+ end
322
+
323
+ if attributes.key?(:'billing_period_start')
324
+ self.billing_period_start = attributes[:'billing_period_start']
325
+ end
326
+
327
+ if attributes.key?(:'billing_period_end')
328
+ self.billing_period_end = attributes[:'billing_period_end']
329
+ end
330
+
331
+ if attributes.key?(:'payment_reference')
332
+ self.payment_reference = attributes[:'payment_reference']
333
+ end
334
+
335
+ if attributes.key?(:'creditor_reference_id')
336
+ self.creditor_reference_id = attributes[:'creditor_reference_id']
337
+ end
338
+
339
+ if attributes.key?(:'direct_debit_mandate_id')
340
+ self.direct_debit_mandate_id = attributes[:'direct_debit_mandate_id']
341
+ end
342
+
343
+ if attributes.key?(:'debtor_iban')
344
+ self.debtor_iban = attributes[:'debtor_iban']
345
+ end
346
+
347
+ if attributes.key?(:'payment_terms')
348
+ self.payment_terms = attributes[:'payment_terms']
349
+ end
350
+
351
+ if attributes.key?(:'allowances_charges')
352
+ if (value = attributes[:'allowances_charges']).is_a?(Array)
353
+ self.allowances_charges = value
354
+ end
355
+ end
356
+
357
+ if attributes.key?(:'additional_documents')
358
+ if (value = attributes[:'additional_documents']).is_a?(Array)
359
+ self.additional_documents = value
360
+ end
361
+ end
362
+
363
+ if attributes.key?(:'buyer_accounting_reference')
364
+ self.buyer_accounting_reference = attributes[:'buyer_accounting_reference']
365
+ end
366
+
367
+ if attributes.key?(:'payment_card')
368
+ self.payment_card = attributes[:'payment_card']
369
+ end
240
370
  end
241
371
 
242
372
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -394,7 +524,21 @@ module FactPulse
394
524
  comment == o.comment &&
395
525
  current_user_id == o.current_user_id &&
396
526
  supplementary_attachments == o.supplementary_attachments &&
397
- payee == o.payee
527
+ payee == o.payee &&
528
+ delivery_party == o.delivery_party &&
529
+ tax_representative == o.tax_representative &&
530
+ delivery_date == o.delivery_date &&
531
+ billing_period_start == o.billing_period_start &&
532
+ billing_period_end == o.billing_period_end &&
533
+ payment_reference == o.payment_reference &&
534
+ creditor_reference_id == o.creditor_reference_id &&
535
+ direct_debit_mandate_id == o.direct_debit_mandate_id &&
536
+ debtor_iban == o.debtor_iban &&
537
+ payment_terms == o.payment_terms &&
538
+ allowances_charges == o.allowances_charges &&
539
+ additional_documents == o.additional_documents &&
540
+ buyer_accounting_reference == o.buyer_accounting_reference &&
541
+ payment_card == o.payment_card
398
542
  end
399
543
 
400
544
  # @see the `==` method
@@ -406,7 +550,7 @@ module FactPulse
406
550
  # Calculates hash code according to all attributes.
407
551
  # @return [Integer] Hash code
408
552
  def hash
409
- [invoice_number, payment_due_date, invoice_date, submission_mode, recipient, supplier, invoicing_framework, references, totals, invoice_lines, vat_lines, notes, comment, current_user_id, supplementary_attachments, payee].hash
553
+ [invoice_number, payment_due_date, invoice_date, submission_mode, recipient, supplier, invoicing_framework, references, totals, invoice_lines, vat_lines, notes, comment, current_user_id, supplementary_attachments, payee, delivery_party, tax_representative, delivery_date, billing_period_start, billing_period_end, payment_reference, creditor_reference_id, direct_debit_mandate_id, debtor_iban, payment_terms, allowances_charges, additional_documents, buyer_accounting_reference, payment_card].hash
410
554
  end
411
555
 
412
556
  # Builds the object from hash
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -14,7 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module FactPulse
17
- class APIProfile
17
+ class FacturXProfile
18
18
  MINIMUM = "MINIMUM".freeze
19
19
  BASIC = "BASIC".freeze
20
20
  EN16931 = "EN16931".freeze
@@ -35,8 +35,8 @@ module FactPulse
35
35
  # @param [String] The enum value in the form of the string
36
36
  # @return [String] The enum value
37
37
  def build_from_hash(value)
38
- return value if APIProfile.all_vars.include?(value)
39
- raise "Invalid ENUM value #{value} for class #APIProfile"
38
+ return value if FacturXProfile.all_vars.include?(value)
39
+ raise "Invalid ENUM value #{value} for class #FacturXProfile"
40
40
  end
41
41
  end
42
42
  end
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -34,10 +34,10 @@ module FactPulse
34
34
  # Attribute mapping from ruby-style variable name to JSON key.
35
35
  def self.attribute_map
36
36
  {
37
- :'piste_client_id' => :'piste_client_id',
38
- :'piste_client_secret' => :'piste_client_secret',
39
- :'chorus_pro_login' => :'chorus_pro_login',
40
- :'chorus_pro_password' => :'chorus_pro_password',
37
+ :'piste_client_id' => :'pisteClientId',
38
+ :'piste_client_secret' => :'pisteClientSecret',
39
+ :'chorus_pro_login' => :'chorusProLogin',
40
+ :'chorus_pro_password' => :'chorusProPassword',
41
41
  :'sandbox' => :'sandbox'
42
42
  }
43
43
  end
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -0,0 +1,161 @@
1
+ =begin
2
+ #FactPulse REST API
3
+
4
+ # REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Factur-X Invoice Generation - **Formats**: XML only or PDF/A-3 with embedded XML - **Profiles**: MINIMUM, BASIC, EN16931, EXTENDED - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT) - **🆕 Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Validation and Compliance - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata, electronic signatures - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) - **Asynchronous Processing**: Celery support for heavy validations (VeraPDF) ### 📡 AFNOR PDP/PA Integration (XP Z12-013) - **Flow Submission**: Send invoices to Partner Dematerialization Platforms - **Flow Search**: View submitted invoices - **Download**: Retrieve PDF/A-3 with XML - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user (stored credentials or zero-storage) ### ✍️ PDF Electronic Signature - **Standards**: PAdES-B-B, PAdES-B-T (RFC 3161 timestamping), PAdES-B-LT (long-term archival) - **eIDAS Levels**: SES (self-signed), AdES (commercial CA), QES (QTSP) - **Validation**: Cryptographic integrity and certificate verification - **Certificate Generation**: Self-signed X.509 certificates for testing ### 🔄 Asynchronous Processing - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **No timeout**: Ideal for large files or heavy validations ## 🔒 Authentication All requests require a **JWT token** in the Authorization header: ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### How to obtain a JWT token? #### 🔑 Method 1: `/api/token/` API (Recommended) **URL:** `https://www.factpulse.fr/api/token/` This method is **recommended** for integration in your applications and CI/CD workflows. **Prerequisites:** Having set a password on your account **For users registered via email/password:** - You already have a password, use it directly **For users registered via OAuth (Google/GitHub):** - You must first set a password at: https://www.factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://www.factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\" }' ``` **Optional `client_uid` parameter:** To select credentials for a specific client (PA/PDP, Chorus Pro, signing certificates), add `client_uid`: ```bash curl -X POST https://www.factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\", \"client_uid\": \"550e8400-e29b-41d4-a716-446655440000\" }' ``` The `client_uid` will be included in the JWT and allow the API to automatically use: - AFNOR/PDP credentials configured for this client - Chorus Pro credentials configured for this client - Electronic signature certificates configured for this client **Response:** ```json { \"access\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\", // Access token (validity: 30 min) \"refresh\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\" // Refresh token (validity: 7 days) } ``` **Advantages:** - ✅ Full automation (CI/CD, scripts) - ✅ Programmatic token management - ✅ Refresh token support for automatic access renewal - ✅ Easy integration in any language/tool #### 🖥️ Method 2: Dashboard Generation (Alternative) **URL:** https://www.factpulse.fr/dashboard/ This method is suitable for quick tests or occasional use via the graphical interface. **How it works:** - Log in to the dashboard - Use the \"Generate Test Token\" or \"Generate Production Token\" buttons - Works for **all** users (OAuth and email/password), without requiring a password **Token types:** - **Test Token**: 24h validity, 1000 calls/day quota (free) - **Production Token**: 7 days validity, quota based on your plan **Advantages:** - ✅ Quick for API testing - ✅ No password required - ✅ Simple visual interface **Disadvantages:** - ❌ Requires manual action - ❌ No refresh token - ❌ Less suited for automation ### 📚 Full Documentation For more information on authentication and API usage: https://www.factpulse.fr/documentation-api/
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FactPulse
17
+ # Informations sur un fichier genere (contenu inline en base64).
18
+ class FileInfo < ApiModelBase
19
+ attr_accessor :content_b64
20
+
21
+ # Taille en bytes
22
+ attr_accessor :size_bytes
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'content_b64' => :'content_b64',
28
+ :'size_bytes' => :'size_bytes'
29
+ }
30
+ end
31
+
32
+ # Returns attribute mapping this model knows about
33
+ def self.acceptable_attribute_map
34
+ attribute_map
35
+ end
36
+
37
+ # Returns all the JSON keys this model knows about
38
+ def self.acceptable_attributes
39
+ acceptable_attribute_map.values
40
+ end
41
+
42
+ # Attribute type mapping.
43
+ def self.openapi_types
44
+ {
45
+ :'content_b64' => :'String',
46
+ :'size_bytes' => :'Integer'
47
+ }
48
+ end
49
+
50
+ # List of attributes with nullable: true
51
+ def self.openapi_nullable
52
+ Set.new([
53
+ :'content_b64',
54
+ ])
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FactPulse::FileInfo` initialize method"
62
+ end
63
+
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ acceptable_attribute_map = self.class.acceptable_attribute_map
66
+ attributes = attributes.each_with_object({}) { |(k, v), h|
67
+ if (!acceptable_attribute_map.key?(k.to_sym))
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FactPulse::FileInfo`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
69
+ end
70
+ h[k.to_sym] = v
71
+ }
72
+
73
+ if attributes.key?(:'content_b64')
74
+ self.content_b64 = attributes[:'content_b64']
75
+ end
76
+
77
+ if attributes.key?(:'size_bytes')
78
+ self.size_bytes = attributes[:'size_bytes']
79
+ else
80
+ self.size_bytes = 0
81
+ end
82
+ end
83
+
84
+ # Show invalid properties with the reasons. Usually used together with valid?
85
+ # @return Array for valid properties with the reasons
86
+ def list_invalid_properties
87
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
88
+ invalid_properties = Array.new
89
+ invalid_properties
90
+ end
91
+
92
+ # Check to see if the all the properties in the model are valid
93
+ # @return true if the model is valid
94
+ def valid?
95
+ warn '[DEPRECATED] the `valid?` method is obsolete'
96
+ true
97
+ end
98
+
99
+ # Checks equality by comparing each attribute.
100
+ # @param [Object] Object to be compared
101
+ def ==(o)
102
+ return true if self.equal?(o)
103
+ self.class == o.class &&
104
+ content_b64 == o.content_b64 &&
105
+ size_bytes == o.size_bytes
106
+ end
107
+
108
+ # @see the `==` method
109
+ # @param [Object] Object to be compared
110
+ def eql?(o)
111
+ self == o
112
+ end
113
+
114
+ # Calculates hash code according to all attributes.
115
+ # @return [Integer] Hash code
116
+ def hash
117
+ [content_b64, size_bytes].hash
118
+ end
119
+
120
+ # Builds the object from hash
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ # @return [Object] Returns the model itself
123
+ def self.build_from_hash(attributes)
124
+ return nil unless attributes.is_a?(Hash)
125
+ attributes = attributes.transform_keys(&:to_sym)
126
+ transformed_hash = {}
127
+ openapi_types.each_pair do |key, type|
128
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
129
+ transformed_hash["#{key}"] = nil
130
+ elsif type =~ /\AArray<(.*)>/i
131
+ # check to ensure the input is an array given that the attribute
132
+ # is documented as an array but the input is not
133
+ if attributes[attribute_map[key]].is_a?(Array)
134
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
135
+ end
136
+ elsif !attributes[attribute_map[key]].nil?
137
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
138
+ end
139
+ end
140
+ new(transformed_hash)
141
+ end
142
+
143
+ # Returns the object in the form of hash
144
+ # @return [Hash] Returns the object in the form of hash
145
+ def to_hash
146
+ hash = {}
147
+ self.class.attribute_map.each_pair do |attr, param|
148
+ value = self.send(attr)
149
+ if value.nil?
150
+ is_nullable = self.class.openapi_nullable.include?(attr)
151
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
152
+ end
153
+
154
+ hash[param] = _to_hash(value)
155
+ end
156
+ hash
157
+ end
158
+
159
+ end
160
+
161
+ end
@@ -0,0 +1,159 @@
1
+ =begin
2
+ #FactPulse REST API
3
+
4
+ # REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Factur-X Invoice Generation - **Formats**: XML only or PDF/A-3 with embedded XML - **Profiles**: MINIMUM, BASIC, EN16931, EXTENDED - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT) - **🆕 Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Validation and Compliance - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata, electronic signatures - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) - **Asynchronous Processing**: Celery support for heavy validations (VeraPDF) ### 📡 AFNOR PDP/PA Integration (XP Z12-013) - **Flow Submission**: Send invoices to Partner Dematerialization Platforms - **Flow Search**: View submitted invoices - **Download**: Retrieve PDF/A-3 with XML - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user (stored credentials or zero-storage) ### ✍️ PDF Electronic Signature - **Standards**: PAdES-B-B, PAdES-B-T (RFC 3161 timestamping), PAdES-B-LT (long-term archival) - **eIDAS Levels**: SES (self-signed), AdES (commercial CA), QES (QTSP) - **Validation**: Cryptographic integrity and certificate verification - **Certificate Generation**: Self-signed X.509 certificates for testing ### 🔄 Asynchronous Processing - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **No timeout**: Ideal for large files or heavy validations ## 🔒 Authentication All requests require a **JWT token** in the Authorization header: ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### How to obtain a JWT token? #### 🔑 Method 1: `/api/token/` API (Recommended) **URL:** `https://www.factpulse.fr/api/token/` This method is **recommended** for integration in your applications and CI/CD workflows. **Prerequisites:** Having set a password on your account **For users registered via email/password:** - You already have a password, use it directly **For users registered via OAuth (Google/GitHub):** - You must first set a password at: https://www.factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://www.factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\" }' ``` **Optional `client_uid` parameter:** To select credentials for a specific client (PA/PDP, Chorus Pro, signing certificates), add `client_uid`: ```bash curl -X POST https://www.factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\", \"client_uid\": \"550e8400-e29b-41d4-a716-446655440000\" }' ``` The `client_uid` will be included in the JWT and allow the API to automatically use: - AFNOR/PDP credentials configured for this client - Chorus Pro credentials configured for this client - Electronic signature certificates configured for this client **Response:** ```json { \"access\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\", // Access token (validity: 30 min) \"refresh\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\" // Refresh token (validity: 7 days) } ``` **Advantages:** - ✅ Full automation (CI/CD, scripts) - ✅ Programmatic token management - ✅ Refresh token support for automatic access renewal - ✅ Easy integration in any language/tool #### 🖥️ Method 2: Dashboard Generation (Alternative) **URL:** https://www.factpulse.fr/dashboard/ This method is suitable for quick tests or occasional use via the graphical interface. **How it works:** - Log in to the dashboard - Use the \"Generate Test Token\" or \"Generate Production Token\" buttons - Works for **all** users (OAuth and email/password), without requiring a password **Token types:** - **Test Token**: 24h validity, 1000 calls/day quota (free) - **Production Token**: 7 days validity, quota based on your plan **Advantages:** - ✅ Quick for API testing - ✅ No password required - ✅ Simple visual interface **Disadvantages:** - ❌ Requires manual action - ❌ No refresh token - ❌ Less suited for automation ### 📚 Full Documentation For more information on authentication and API usage: https://www.factpulse.fr/documentation-api/
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FactPulse
17
+ # Fichiers generes.
18
+ class FilesInfo < ApiModelBase
19
+ attr_accessor :facturx_pdf
20
+
21
+ attr_accessor :xml
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'facturx_pdf' => :'facturx_pdf',
27
+ :'xml' => :'xml'
28
+ }
29
+ end
30
+
31
+ # Returns attribute mapping this model knows about
32
+ def self.acceptable_attribute_map
33
+ attribute_map
34
+ end
35
+
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ acceptable_attribute_map.values
39
+ end
40
+
41
+ # Attribute type mapping.
42
+ def self.openapi_types
43
+ {
44
+ :'facturx_pdf' => :'FileInfo',
45
+ :'xml' => :'FileInfo'
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ :'facturx_pdf',
53
+ :'xml'
54
+ ])
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FactPulse::FilesInfo` initialize method"
62
+ end
63
+
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ acceptable_attribute_map = self.class.acceptable_attribute_map
66
+ attributes = attributes.each_with_object({}) { |(k, v), h|
67
+ if (!acceptable_attribute_map.key?(k.to_sym))
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FactPulse::FilesInfo`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
69
+ end
70
+ h[k.to_sym] = v
71
+ }
72
+
73
+ if attributes.key?(:'facturx_pdf')
74
+ self.facturx_pdf = attributes[:'facturx_pdf']
75
+ end
76
+
77
+ if attributes.key?(:'xml')
78
+ self.xml = attributes[:'xml']
79
+ end
80
+ end
81
+
82
+ # Show invalid properties with the reasons. Usually used together with valid?
83
+ # @return Array for valid properties with the reasons
84
+ def list_invalid_properties
85
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
86
+ invalid_properties = Array.new
87
+ invalid_properties
88
+ end
89
+
90
+ # Check to see if the all the properties in the model are valid
91
+ # @return true if the model is valid
92
+ def valid?
93
+ warn '[DEPRECATED] the `valid?` method is obsolete'
94
+ true
95
+ end
96
+
97
+ # Checks equality by comparing each attribute.
98
+ # @param [Object] Object to be compared
99
+ def ==(o)
100
+ return true if self.equal?(o)
101
+ self.class == o.class &&
102
+ facturx_pdf == o.facturx_pdf &&
103
+ xml == o.xml
104
+ end
105
+
106
+ # @see the `==` method
107
+ # @param [Object] Object to be compared
108
+ def eql?(o)
109
+ self == o
110
+ end
111
+
112
+ # Calculates hash code according to all attributes.
113
+ # @return [Integer] Hash code
114
+ def hash
115
+ [facturx_pdf, xml].hash
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def self.build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ attributes = attributes.transform_keys(&:to_sym)
124
+ transformed_hash = {}
125
+ openapi_types.each_pair do |key, type|
126
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
127
+ transformed_hash["#{key}"] = nil
128
+ elsif type =~ /\AArray<(.*)>/i
129
+ # check to ensure the input is an array given that the attribute
130
+ # is documented as an array but the input is not
131
+ if attributes[attribute_map[key]].is_a?(Array)
132
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
133
+ end
134
+ elsif !attributes[attribute_map[key]].nil?
135
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
136
+ end
137
+ end
138
+ new(transformed_hash)
139
+ end
140
+
141
+ # Returns the object in the form of hash
142
+ # @return [Hash] Returns the object in the form of hash
143
+ def to_hash
144
+ hash = {}
145
+ self.class.attribute_map.each_pair do |attr, param|
146
+ value = self.send(attr)
147
+ if value.nil?
148
+ is_nullable = self.class.openapi_nullable.include?(attr)
149
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
150
+ end
151
+
152
+ hash[param] = _to_hash(value)
153
+ end
154
+ hash
155
+ end
156
+
157
+ end
158
+
159
+ end
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.18.0-SNAPSHOT
9
+ Generator version: 7.19.0-SNAPSHOT
10
10
 
11
11
  =end
12
12