factpulse 4.0.1 → 4.0.2

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 (368) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -4
  3. data/Gemfile.lock +1 -1
  4. data/docs/AFNORPDPPAApi.md +5 -72
  5. data/docs/AsyncTasksApi.md +77 -0
  6. data/docs/ChorusProCredentials.md +8 -8
  7. data/docs/ChorusProDestination.md +1 -1
  8. data/docs/CreateAggregatedReportRequest.md +3 -1
  9. data/docs/CreateEReportingRequest.md +3 -1
  10. data/docs/ElectronicSignatureApi.md +319 -0
  11. data/docs/EncaisseeRequest.md +10 -6
  12. data/docs/{DocumentConversionApi.md → FacturXConversionApi.md} +39 -39
  13. data/docs/FacturXGenerationApi.md +239 -0
  14. data/docs/FacturXInvoice.md +1 -1
  15. data/docs/FacturXPDFXMLVerificationApi.md +225 -0
  16. data/docs/FacturXValidationApi.md +241 -0
  17. data/docs/FactureElectroniqueRestApiSchemasChorusProChorusProCredentials.md +26 -0
  18. data/docs/{EReportingApi.md → Flux10EReportingApi.md} +53 -51
  19. data/docs/{CDARCycleDeVieApi.md → Flux6InvoiceLifecycleCDARApi.md} +145 -75
  20. data/docs/GetChorusProIdRequest.md +1 -1
  21. data/docs/GetInvoiceRequest.md +1 -1
  22. data/docs/GetStructureRequest.md +1 -1
  23. data/docs/HealthApi.md +67 -0
  24. data/docs/InvoiceInput.md +4 -2
  25. data/docs/IssuerRoleCode.md +15 -0
  26. data/docs/RefuseeRequest.md +10 -6
  27. data/docs/ReportIssuer.md +24 -0
  28. data/docs/ReportSender.md +1 -1
  29. data/docs/SearchStructureRequest.md +1 -1
  30. data/docs/SubmitInvoiceRequest.md +1 -1
  31. data/factpulse.gemspec +2 -2
  32. data/lib/factpulse/api/afnorpdppa_api.rb +5 -62
  33. data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +1 -1
  34. data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +1 -1
  35. data/lib/factpulse/api/async_tasks_api.rb +85 -0
  36. data/lib/factpulse/api/chorus_pro_api.rb +1 -1
  37. data/lib/factpulse/api/client_management_api.rb +1 -1
  38. data/lib/factpulse/api/downloads_api.rb +1 -1
  39. data/lib/factpulse/api/electronic_signature_api.rb +339 -0
  40. data/lib/factpulse/api/{document_conversion_api.rb → factur_x_conversion_api.rb} +42 -42
  41. data/lib/factpulse/api/factur_x_generation_api.rb +254 -0
  42. data/lib/factpulse/api/factur_x_validation_api.rb +256 -0
  43. data/lib/factpulse/api/factur_xpdfxml_verification_api.rb +232 -0
  44. data/lib/factpulse/api/{e_reporting_api.rb → flux10_e_reporting_api.rb} +54 -51
  45. data/lib/factpulse/api/flux6_invoice_lifecycle_cdar_api.rb +670 -0
  46. data/lib/factpulse/api/health_api.rb +58 -1
  47. data/lib/factpulse/api_client.rb +1 -1
  48. data/lib/factpulse/api_error.rb +1 -1
  49. data/lib/factpulse/api_model_base.rb +1 -1
  50. data/lib/factpulse/configuration.rb +1 -1
  51. data/lib/factpulse/models/acknowledgment_status.rb +1 -1
  52. data/lib/factpulse/models/action_code_info.rb +1 -1
  53. data/lib/factpulse/models/action_codes_response.rb +1 -1
  54. data/lib/factpulse/models/additional_document.rb +1 -1
  55. data/lib/factpulse/models/afnor_acknowledgement.rb +1 -1
  56. data/lib/factpulse/models/afnor_acknowledgement_detail.rb +1 -1
  57. data/lib/factpulse/models/afnor_address_edit.rb +1 -1
  58. data/lib/factpulse/models/afnor_address_patch.rb +1 -1
  59. data/lib/factpulse/models/afnor_address_put.rb +1 -1
  60. data/lib/factpulse/models/afnor_address_read.rb +1 -1
  61. data/lib/factpulse/models/afnor_algorithm.rb +1 -1
  62. data/lib/factpulse/models/afnor_contains_operator.rb +1 -1
  63. data/lib/factpulse/models/afnor_create_directory_line_body.rb +1 -1
  64. data/lib/factpulse/models/afnor_create_directory_line_body_addressing_information.rb +1 -1
  65. data/lib/factpulse/models/afnor_create_directory_line_body_period.rb +1 -1
  66. data/lib/factpulse/models/afnor_create_routing_code_body.rb +1 -1
  67. data/lib/factpulse/models/afnor_credentials.rb +1 -1
  68. data/lib/factpulse/models/afnor_destination.rb +1 -1
  69. data/lib/factpulse/models/afnor_diffusion_status.rb +1 -1
  70. data/lib/factpulse/models/afnor_directory_line_field.rb +1 -1
  71. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb +1 -1
  72. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb +1 -1
  73. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.rb +1 -1
  74. data/lib/factpulse/models/afnor_directory_line_post201_response.rb +1 -1
  75. data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +1 -1
  76. data/lib/factpulse/models/afnor_entity_type.rb +1 -1
  77. data/lib/factpulse/models/afnor_error.rb +1 -1
  78. data/lib/factpulse/models/afnor_facility_administrative_status.rb +1 -1
  79. data/lib/factpulse/models/afnor_facility_nature.rb +1 -1
  80. data/lib/factpulse/models/afnor_facility_payload_history.rb +1 -1
  81. data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +1 -1
  82. data/lib/factpulse/models/afnor_facility_payload_included.rb +1 -1
  83. data/lib/factpulse/models/afnor_facility_type.rb +1 -1
  84. data/lib/factpulse/models/afnor_flow.rb +1 -1
  85. data/lib/factpulse/models/afnor_flow_ack_status.rb +1 -1
  86. data/lib/factpulse/models/afnor_flow_direction.rb +1 -1
  87. data/lib/factpulse/models/afnor_flow_info.rb +1 -1
  88. data/lib/factpulse/models/afnor_flow_profile.rb +1 -1
  89. data/lib/factpulse/models/afnor_flow_syntax.rb +1 -1
  90. data/lib/factpulse/models/afnor_flow_type.rb +1 -1
  91. data/lib/factpulse/models/afnor_full_flow_info.rb +1 -1
  92. data/lib/factpulse/models/afnor_health_check_response.rb +1 -1
  93. data/lib/factpulse/models/afnor_legal_unit_administrative_status.rb +1 -1
  94. data/lib/factpulse/models/afnor_legal_unit_payload_history.rb +1 -1
  95. data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +1 -1
  96. data/lib/factpulse/models/afnor_legal_unit_payload_included_no_siren.rb +1 -1
  97. data/lib/factpulse/models/afnor_platform_status.rb +1 -1
  98. data/lib/factpulse/models/afnor_processing_rule.rb +1 -1
  99. data/lib/factpulse/models/afnor_reason_code.rb +1 -1
  100. data/lib/factpulse/models/afnor_reason_code_enum.rb +1 -1
  101. data/lib/factpulse/models/afnor_recipient_platform_type.rb +1 -1
  102. data/lib/factpulse/models/afnor_result.rb +1 -1
  103. data/lib/factpulse/models/afnor_routing_code_administrative_status.rb +1 -1
  104. data/lib/factpulse/models/afnor_routing_code_field.rb +1 -1
  105. data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +1 -1
  106. data/lib/factpulse/models/afnor_routing_code_post201_response.rb +1 -1
  107. data/lib/factpulse/models/afnor_routing_code_search.rb +1 -1
  108. data/lib/factpulse/models/afnor_routing_code_search_filters.rb +1 -1
  109. data/lib/factpulse/models/afnor_routing_code_search_filters_administrative_status.rb +1 -1
  110. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_code_name.rb +1 -1
  111. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +1 -1
  112. data/lib/factpulse/models/afnor_routing_code_search_post200_response.rb +1 -1
  113. data/lib/factpulse/models/afnor_routing_code_search_sorting_inner.rb +1 -1
  114. data/lib/factpulse/models/afnor_search_directory_line.rb +1 -1
  115. data/lib/factpulse/models/afnor_search_directory_line_filters.rb +1 -1
  116. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.rb +1 -1
  117. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +1 -1
  118. data/lib/factpulse/models/afnor_search_directory_line_sorting_inner.rb +1 -1
  119. data/lib/factpulse/models/afnor_search_flow_content.rb +1 -1
  120. data/lib/factpulse/models/afnor_search_flow_filters.rb +1 -1
  121. data/lib/factpulse/models/afnor_search_flow_params.rb +1 -1
  122. data/lib/factpulse/models/afnor_search_siren.rb +1 -1
  123. data/lib/factpulse/models/afnor_search_siren_filters.rb +1 -1
  124. data/lib/factpulse/models/afnor_search_siren_filters_administrative_status.rb +1 -1
  125. data/lib/factpulse/models/afnor_search_siren_filters_business_name.rb +1 -1
  126. data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +1 -1
  127. data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +1 -1
  128. data/lib/factpulse/models/afnor_search_siren_sorting_inner.rb +1 -1
  129. data/lib/factpulse/models/afnor_search_siret.rb +1 -1
  130. data/lib/factpulse/models/afnor_search_siret_filters.rb +1 -1
  131. data/lib/factpulse/models/afnor_search_siret_filters_address_lines.rb +1 -1
  132. data/lib/factpulse/models/afnor_search_siret_filters_administrative_status.rb +1 -1
  133. data/lib/factpulse/models/afnor_search_siret_filters_country_subdivision.rb +1 -1
  134. data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +1 -1
  135. data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +1 -1
  136. data/lib/factpulse/models/afnor_search_siret_filters_name.rb +1 -1
  137. data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +1 -1
  138. data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +1 -1
  139. data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +1 -1
  140. data/lib/factpulse/models/afnor_siren_field.rb +1 -1
  141. data/lib/factpulse/models/afnor_siren_search_post200_response.rb +1 -1
  142. data/lib/factpulse/models/afnor_siret_field.rb +1 -1
  143. data/lib/factpulse/models/afnor_siret_search_post200_response.rb +1 -1
  144. data/lib/factpulse/models/afnor_sorting_order.rb +1 -1
  145. data/lib/factpulse/models/afnor_strict_operator.rb +1 -1
  146. data/lib/factpulse/models/afnor_update_patch_directory_line_body.rb +1 -1
  147. data/lib/factpulse/models/afnor_update_patch_routing_code_body.rb +1 -1
  148. data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +1 -1
  149. data/lib/factpulse/models/afnor_webhook_callback_content.rb +1 -1
  150. data/lib/factpulse/models/aggregated_payment_input.rb +1 -1
  151. data/lib/factpulse/models/aggregated_transaction_input.rb +1 -1
  152. data/lib/factpulse/models/allowance_charge.rb +1 -1
  153. data/lib/factpulse/models/allowance_charge_reason_code.rb +1 -1
  154. data/lib/factpulse/models/allowance_reason_code.rb +1 -1
  155. data/lib/factpulse/models/allowance_total_amount.rb +1 -1
  156. data/lib/factpulse/models/amount.rb +1 -1
  157. data/lib/factpulse/models/amount1.rb +1 -1
  158. data/lib/factpulse/models/amount2.rb +1 -1
  159. data/lib/factpulse/models/amount_due.rb +1 -1
  160. data/lib/factpulse/models/api_error.rb +1 -1
  161. data/lib/factpulse/models/api_profile.rb +1 -1
  162. data/lib/factpulse/models/async_task_status.rb +1 -1
  163. data/lib/factpulse/models/base_amount.rb +1 -1
  164. data/lib/factpulse/models/bounding_box_schema.rb +1 -1
  165. data/lib/factpulse/models/buyercountry.rb +2 -2
  166. data/lib/factpulse/models/celery_status.rb +1 -1
  167. data/lib/factpulse/models/certificate_info_response.rb +1 -1
  168. data/lib/factpulse/models/charge_total_amount.rb +1 -1
  169. data/lib/factpulse/models/chorus_pro_credentials.rb +27 -95
  170. data/lib/factpulse/models/chorus_pro_destination.rb +2 -2
  171. data/lib/factpulse/models/chorus_pro_result.rb +1 -1
  172. data/lib/factpulse/models/client_activate_response.rb +1 -1
  173. data/lib/factpulse/models/client_create_request.rb +1 -1
  174. data/lib/factpulse/models/client_detail.rb +1 -1
  175. data/lib/factpulse/models/client_list_response.rb +1 -1
  176. data/lib/factpulse/models/client_summary.rb +1 -1
  177. data/lib/factpulse/models/client_update_request.rb +1 -1
  178. data/lib/factpulse/models/contact.rb +1 -1
  179. data/lib/factpulse/models/convert_resume_request.rb +1 -1
  180. data/lib/factpulse/models/convert_success_response.rb +1 -1
  181. data/lib/factpulse/models/convert_validation_failed_response.rb +1 -1
  182. data/lib/factpulse/models/country_code.rb +1 -1
  183. data/lib/factpulse/models/create_aggregated_report_request.rb +13 -3
  184. data/lib/factpulse/models/create_cdar_request.rb +1 -1
  185. data/lib/factpulse/models/create_e_reporting_request.rb +13 -3
  186. data/lib/factpulse/models/currency.rb +1 -1
  187. data/lib/factpulse/models/currency_code.rb +1 -1
  188. data/lib/factpulse/models/delivery_party.rb +1 -1
  189. data/lib/factpulse/models/destination.rb +1 -1
  190. data/lib/factpulse/models/doc_type.rb +1 -1
  191. data/lib/factpulse/models/document_type_info.rb +1 -1
  192. data/lib/factpulse/models/e_reporting_flow_type.rb +1 -1
  193. data/lib/factpulse/models/e_reporting_validation_error.rb +1 -1
  194. data/lib/factpulse/models/electronic_address.rb +1 -1
  195. data/lib/factpulse/models/encaisseamount.rb +1 -1
  196. data/lib/factpulse/models/encaisseamount1.rb +1 -1
  197. data/lib/factpulse/models/encaissee_request.rb +86 -32
  198. data/lib/factpulse/models/enriched_invoice_info.rb +1 -1
  199. data/lib/factpulse/models/error_level.rb +1 -1
  200. data/lib/factpulse/models/error_source.rb +3 -2
  201. data/lib/factpulse/models/extraction_info.rb +1 -1
  202. data/lib/factpulse/models/factur_x_invoice.rb +1 -18
  203. data/lib/factpulse/models/factur_xpdf_info.rb +1 -1
  204. data/lib/factpulse/models/facture_electronique_rest_api_schemas_cdar_validation_error_response.rb +1 -1
  205. data/lib/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb +259 -0
  206. data/lib/factpulse/models/facture_electronique_rest_api_schemas_ereporting_invoice_type_code.rb +1 -1
  207. data/lib/factpulse/models/field_status.rb +1 -1
  208. data/lib/factpulse/models/file_info.rb +1 -1
  209. data/lib/factpulse/models/files_info.rb +1 -1
  210. data/lib/factpulse/models/flow_direction.rb +1 -1
  211. data/lib/factpulse/models/flow_profile.rb +1 -1
  212. data/lib/factpulse/models/flow_summary.rb +1 -1
  213. data/lib/factpulse/models/flow_syntax.rb +1 -1
  214. data/lib/factpulse/models/flow_type.rb +1 -1
  215. data/lib/factpulse/models/generate_aggregated_report_response.rb +1 -1
  216. data/lib/factpulse/models/generate_cdar_response.rb +1 -1
  217. data/lib/factpulse/models/generate_certificate_request.rb +1 -1
  218. data/lib/factpulse/models/generate_certificate_response.rb +1 -1
  219. data/lib/factpulse/models/generate_e_reporting_response.rb +1 -1
  220. data/lib/factpulse/models/get_chorus_pro_id_request.rb +2 -2
  221. data/lib/factpulse/models/get_chorus_pro_id_response.rb +1 -1
  222. data/lib/factpulse/models/get_invoice_request.rb +2 -2
  223. data/lib/factpulse/models/get_invoice_response.rb +1 -1
  224. data/lib/factpulse/models/get_structure_request.rb +2 -2
  225. data/lib/factpulse/models/get_structure_response.rb +1 -1
  226. data/lib/factpulse/models/global_allowance_amount.rb +1 -1
  227. data/lib/factpulse/models/gross_unit_price.rb +1 -1
  228. data/lib/factpulse/models/http_validation_error.rb +1 -1
  229. data/lib/factpulse/models/incoming_invoice.rb +1 -1
  230. data/lib/factpulse/models/incoming_supplier.rb +1 -1
  231. data/lib/factpulse/models/invoice_format.rb +1 -1
  232. data/lib/factpulse/models/invoice_input.rb +14 -21
  233. data/lib/factpulse/models/invoice_line.rb +1 -1
  234. data/lib/factpulse/models/invoice_line_allowance_amount.rb +1 -1
  235. data/lib/factpulse/models/invoice_note.rb +1 -1
  236. data/lib/factpulse/models/invoice_payment_input.rb +1 -1
  237. data/lib/factpulse/models/invoice_references.rb +1 -1
  238. data/lib/factpulse/models/invoice_status.rb +1 -1
  239. data/lib/factpulse/models/invoice_totals.rb +1 -1
  240. data/lib/factpulse/models/invoice_totals_prepayment.rb +1 -1
  241. data/lib/factpulse/models/invoice_type_code.rb +1 -1
  242. data/lib/factpulse/models/invoice_type_code_output.rb +1 -1
  243. data/lib/factpulse/models/invoicing_framework.rb +1 -1
  244. data/lib/factpulse/models/invoicing_framework_code.rb +1 -1
  245. data/lib/factpulse/models/issuer_role_code.rb +40 -0
  246. data/lib/factpulse/models/line_net_amount.rb +1 -1
  247. data/lib/factpulse/models/line_sub_type.rb +1 -1
  248. data/lib/factpulse/models/line_total_amount.rb +1 -1
  249. data/lib/factpulse/models/location_inner.rb +1 -1
  250. data/lib/factpulse/models/mandatory_note_schema.rb +1 -1
  251. data/lib/factpulse/models/manual_rate.rb +1 -1
  252. data/lib/factpulse/models/manual_vat_rate.rb +1 -1
  253. data/lib/factpulse/models/missing_field.rb +1 -1
  254. data/lib/factpulse/models/operation_nature.rb +1 -1
  255. data/lib/factpulse/models/output_format.rb +1 -1
  256. data/lib/factpulse/models/page_dimensions_schema.rb +1 -1
  257. data/lib/factpulse/models/payee.rb +1 -1
  258. data/lib/factpulse/models/payment_amount_by_rate.rb +1 -1
  259. data/lib/factpulse/models/payment_card.rb +1 -1
  260. data/lib/factpulse/models/payment_means.rb +1 -1
  261. data/lib/factpulse/models/pdf_validation_result_api.rb +1 -1
  262. data/lib/factpulse/models/pdp_config_response.rb +1 -1
  263. data/lib/factpulse/models/pdp_config_update_request.rb +1 -1
  264. data/lib/factpulse/models/pdp_credentials.rb +1 -1
  265. data/lib/factpulse/models/percentage.rb +1 -1
  266. data/lib/factpulse/models/postal_address.rb +1 -1
  267. data/lib/factpulse/models/price_allowance_amount.rb +1 -1
  268. data/lib/factpulse/models/price_basis_quantity.rb +1 -1
  269. data/lib/factpulse/models/processing_options.rb +1 -1
  270. data/lib/factpulse/models/processing_rule.rb +1 -1
  271. data/lib/factpulse/models/product_characteristic.rb +1 -1
  272. data/lib/factpulse/models/product_classification.rb +1 -1
  273. data/lib/factpulse/models/quantity.rb +1 -1
  274. data/lib/factpulse/models/rate.rb +1 -1
  275. data/lib/factpulse/models/rate1.rb +1 -1
  276. data/lib/factpulse/models/reason_code_info.rb +1 -1
  277. data/lib/factpulse/models/reason_codes_response.rb +1 -1
  278. data/lib/factpulse/models/recipient.rb +1 -1
  279. data/lib/factpulse/models/recipient_input.rb +1 -1
  280. data/lib/factpulse/models/refusee_request.rb +84 -30
  281. data/lib/factpulse/models/report_issuer.rb +236 -0
  282. data/lib/factpulse/models/report_period.rb +1 -1
  283. data/lib/factpulse/models/report_sender.rb +3 -3
  284. data/lib/factpulse/models/rounding_amount.rb +1 -1
  285. data/lib/factpulse/models/schematron_validation_error.rb +1 -1
  286. data/lib/factpulse/models/scheme_id.rb +1 -1
  287. data/lib/factpulse/models/search_flow_request.rb +1 -1
  288. data/lib/factpulse/models/search_flow_response.rb +1 -1
  289. data/lib/factpulse/models/search_services_response.rb +1 -1
  290. data/lib/factpulse/models/search_structure_request.rb +2 -2
  291. data/lib/factpulse/models/search_structure_response.rb +1 -1
  292. data/lib/factpulse/models/secret_status.rb +1 -1
  293. data/lib/factpulse/models/sellercountry.rb +2 -2
  294. data/lib/factpulse/models/signature_info.rb +1 -1
  295. data/lib/factpulse/models/signature_info_api.rb +1 -1
  296. data/lib/factpulse/models/signature_parameters.rb +1 -1
  297. data/lib/factpulse/models/simplified_cdar_response.rb +1 -1
  298. data/lib/factpulse/models/simplified_invoice_data.rb +1 -1
  299. data/lib/factpulse/models/status_code_info.rb +1 -1
  300. data/lib/factpulse/models/status_codes_response.rb +1 -1
  301. data/lib/factpulse/models/structure_info.rb +1 -1
  302. data/lib/factpulse/models/structure_parameters.rb +1 -1
  303. data/lib/factpulse/models/structure_service.rb +1 -1
  304. data/lib/factpulse/models/submission_mode.rb +1 -1
  305. data/lib/factpulse/models/submit_aggregated_report_request.rb +1 -1
  306. data/lib/factpulse/models/submit_cdar_request.rb +1 -1
  307. data/lib/factpulse/models/submit_cdar_response.rb +1 -1
  308. data/lib/factpulse/models/submit_cdarxml_request.rb +1 -1
  309. data/lib/factpulse/models/submit_complete_invoice_request.rb +1 -1
  310. data/lib/factpulse/models/submit_complete_invoice_response.rb +1 -1
  311. data/lib/factpulse/models/submit_e_reporting_request.rb +1 -1
  312. data/lib/factpulse/models/submit_e_reporting_response.rb +1 -1
  313. data/lib/factpulse/models/submit_flow_request.rb +1 -1
  314. data/lib/factpulse/models/submit_flow_response.rb +1 -1
  315. data/lib/factpulse/models/submit_gross_amount.rb +1 -1
  316. data/lib/factpulse/models/submit_invoice_request.rb +2 -2
  317. data/lib/factpulse/models/submit_invoice_response.rb +1 -1
  318. data/lib/factpulse/models/submit_net_amount.rb +1 -1
  319. data/lib/factpulse/models/submit_vat_amount.rb +1 -1
  320. data/lib/factpulse/models/supplementary_attachment.rb +1 -1
  321. data/lib/factpulse/models/supplier.rb +1 -1
  322. data/lib/factpulse/models/task_response.rb +1 -1
  323. data/lib/factpulse/models/tax_breakdown_input.rb +1 -1
  324. data/lib/factpulse/models/tax_due_date_type.rb +1 -1
  325. data/lib/factpulse/models/tax_representative.rb +1 -1
  326. data/lib/factpulse/models/taxable_amount.rb +1 -1
  327. data/lib/factpulse/models/taxableamount.rb +1 -1
  328. data/lib/factpulse/models/taxamount.rb +1 -1
  329. data/lib/factpulse/models/taxamount1.rb +1 -1
  330. data/lib/factpulse/models/taxamount2.rb +1 -1
  331. data/lib/factpulse/models/taxexclusiveamount.rb +1 -1
  332. data/lib/factpulse/models/taxexclusiveamount1.rb +1 -1
  333. data/lib/factpulse/models/total_gross_amount.rb +1 -1
  334. data/lib/factpulse/models/total_net_amount.rb +1 -1
  335. data/lib/factpulse/models/total_vat_amount.rb +1 -1
  336. data/lib/factpulse/models/transaction_category.rb +1 -1
  337. data/lib/factpulse/models/transmission_type_code.rb +1 -1
  338. data/lib/factpulse/models/unit_net_price.rb +1 -1
  339. data/lib/factpulse/models/unit_of_measure.rb +1 -1
  340. data/lib/factpulse/models/validate_cdar_request.rb +1 -1
  341. data/lib/factpulse/models/validate_cdar_response.rb +1 -1
  342. data/lib/factpulse/models/validate_e_reporting_request.rb +1 -1
  343. data/lib/factpulse/models/validate_e_reporting_response.rb +1 -1
  344. data/lib/factpulse/models/validation_error.rb +1 -1
  345. data/lib/factpulse/models/validation_error_detail.rb +1 -1
  346. data/lib/factpulse/models/validation_error_response.rb +1 -1
  347. data/lib/factpulse/models/validation_info.rb +1 -1
  348. data/lib/factpulse/models/validation_success_response.rb +1 -1
  349. data/lib/factpulse/models/vat_accounting_code.rb +1 -1
  350. data/lib/factpulse/models/vat_amount.rb +1 -1
  351. data/lib/factpulse/models/vat_category.rb +1 -1
  352. data/lib/factpulse/models/vat_line.rb +1 -1
  353. data/lib/factpulse/models/vat_point_date_code.rb +1 -1
  354. data/lib/factpulse/models/vat_rate.rb +1 -1
  355. data/lib/factpulse/models/verification_success_response.rb +1 -1
  356. data/lib/factpulse/models/verified_field_schema.rb +1 -1
  357. data/lib/factpulse/version.rb +2 -2
  358. data/lib/factpulse.rb +12 -8
  359. metadata +46 -37
  360. data/docs/FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md +0 -26
  361. data/docs/InvoiceProcessingApi.md +0 -855
  362. data/docs/PDFXMLVerificationApi.md +0 -443
  363. data/docs/UserApi.md +0 -74
  364. data/lib/factpulse/api/cdar_cycle_de_vie_api.rb +0 -601
  365. data/lib/factpulse/api/invoice_processing_api.rb +0 -868
  366. data/lib/factpulse/api/pdfxml_verification_api.rb +0 -442
  367. data/lib/factpulse/api/user_api.rb +0 -79
  368. data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +0 -191
@@ -0,0 +1,339 @@
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 - 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) ### ✅ Factur-X - Validation - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ 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 ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - **CDAR Messages**: Acknowledgements, invoice statuses - **PPF Statuses**: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - **Tax Declarations**: International B2B, B2C - **Flow Types**: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - **Flow Service**: Submit and search flows to PDPs - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - **Public Sector Invoicing**: Complete API for Chorus Pro ### ⏳ Async Tasks - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **Webhooks**: Automatic notifications when tasks complete ## 🔒 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://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://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://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://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://factpulse.fr/api/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://factpulse.fr/documentation-api/
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: contact@factpulse.fr
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.20.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module FactPulse
16
+ class ElectronicSignatureApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Generate a self-signed X.509 test certificate
23
+ # Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let's Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://factpulse.fr/api/v1/processing/generate-test-certificate\" \\ -H \"Authorization: Bearer eyJ0eXAi...\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"cn\": \"Test Client XYZ\", \"organization\": \"Client XYZ Ltd\", \"email\": \"contact@xyz.com\", \"validity_days\": 365 }' ``` ## Use cases - PDF signature testing in development - Electronic signature POC - Training and demos - Automated integration tests ## Technical compliance Certificate generated with: - RSA key 2048 or 4096 bits - SHA-256 algorithm - Key Usage extensions: `digitalSignature`, `contentCommitment` (non-repudiation) - Extended Key Usage extensions: `codeSigning`, `emailProtection` - Validity: 1 day to 10 years (configurable) - Format: PEM (certificate and key) - Optional: PKCS#12 (.p12)
24
+ # @param generate_certificate_request [GenerateCertificateRequest]
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [GenerateCertificateResponse]
27
+ def generate_test_certificate_api_v1_processing_generate_test_certificate_post(generate_certificate_request, opts = {})
28
+ data, _status_code, _headers = generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info(generate_certificate_request, opts)
29
+ data
30
+ end
31
+
32
+ # Generate a self-signed X.509 test certificate
33
+ # Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let's Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://factpulse.fr/api/v1/processing/generate-test-certificate\" \\ -H \"Authorization: Bearer eyJ0eXAi...\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"cn\": \"Test Client XYZ\", \"organization\": \"Client XYZ Ltd\", \"email\": \"contact@xyz.com\", \"validity_days\": 365 }' ``` ## Use cases - PDF signature testing in development - Electronic signature POC - Training and demos - Automated integration tests ## Technical compliance Certificate generated with: - RSA key 2048 or 4096 bits - SHA-256 algorithm - Key Usage extensions: `digitalSignature`, `contentCommitment` (non-repudiation) - Extended Key Usage extensions: `codeSigning`, `emailProtection` - Validity: 1 day to 10 years (configurable) - Format: PEM (certificate and key) - Optional: PKCS#12 (.p12)
34
+ # @param generate_certificate_request [GenerateCertificateRequest]
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(GenerateCertificateResponse, Integer, Hash)>] GenerateCertificateResponse data, response status code and response headers
37
+ def generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info(generate_certificate_request, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: ElectronicSignatureApi.generate_test_certificate_api_v1_processing_generate_test_certificate_post ...'
40
+ end
41
+ # verify the required parameter 'generate_certificate_request' is set
42
+ if @api_client.config.client_side_validation && generate_certificate_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'generate_certificate_request' when calling ElectronicSignatureApi.generate_test_certificate_api_v1_processing_generate_test_certificate_post"
44
+ end
45
+ # resource path
46
+ local_var_path = '/api/v1/processing/generate-test-certificate'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+ # HTTP header 'Content-Type'
56
+ content_type = @api_client.select_header_content_type(['application/json'])
57
+ if !content_type.nil?
58
+ header_params['Content-Type'] = content_type
59
+ end
60
+
61
+ # form parameters
62
+ form_params = opts[:form_params] || {}
63
+
64
+ # http body (model)
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(generate_certificate_request)
66
+
67
+ # return_type
68
+ return_type = opts[:debug_return_type] || 'GenerateCertificateResponse'
69
+
70
+ # auth_names
71
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
72
+
73
+ new_options = opts.merge(
74
+ :operation => :"ElectronicSignatureApi.generate_test_certificate_api_v1_processing_generate_test_certificate_post",
75
+ :header_params => header_params,
76
+ :query_params => query_params,
77
+ :form_params => form_params,
78
+ :body => post_body,
79
+ :auth_names => auth_names,
80
+ :return_type => return_type
81
+ )
82
+
83
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
84
+ if @api_client.config.debugging
85
+ @api_client.config.logger.debug "API called: ElectronicSignatureApi#generate_test_certificate_api_v1_processing_generate_test_certificate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
86
+ end
87
+ return data, status_code, headers
88
+ end
89
+
90
+ # Sign a PDF with client's certificate (PAdES-B-LT)
91
+ # Signs an uploaded PDF with the electronic certificate configured for the client (via client_uid from JWT). **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **eIDAS levels**: SES (self-signed), AdES (commercial CA), QES (PSCO - out of scope). **Security**: Double authentication X-Internal-Secret + JWT Bearer to retrieve the certificate. **⚠️ Legal disclaimer**: Generated signatures are electronic seals as defined by the eIDAS regulation. The level of legal validity depends on the certificate used (SES/AdES/QES). FactPulse does not provide QES qualified certificates - you must obtain a certificate from a PSCO (qualified Trust Service Provider) for maximum legal validity.
92
+ # @param pdf_file [File] PDF file to sign (will be processed and returned signed in base64)
93
+ # @param [Hash] opts the optional parameters
94
+ # @option opts [String] :reason
95
+ # @option opts [String] :location
96
+ # @option opts [String] :contact
97
+ # @option opts [String] :field_name PDF signature field name (default to 'FactPulseSignature')
98
+ # @option opts [Boolean] :use_pades_lt Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. (default to false)
99
+ # @option opts [Boolean] :use_timestamp Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) (default to true)
100
+ # @return [Object]
101
+ def sign_pdf_api_v1_processing_sign_pdf_post(pdf_file, opts = {})
102
+ data, _status_code, _headers = sign_pdf_api_v1_processing_sign_pdf_post_with_http_info(pdf_file, opts)
103
+ data
104
+ end
105
+
106
+ # Sign a PDF with client&#39;s certificate (PAdES-B-LT)
107
+ # Signs an uploaded PDF with the electronic certificate configured for the client (via client_uid from JWT). **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **eIDAS levels**: SES (self-signed), AdES (commercial CA), QES (PSCO - out of scope). **Security**: Double authentication X-Internal-Secret + JWT Bearer to retrieve the certificate. **⚠️ Legal disclaimer**: Generated signatures are electronic seals as defined by the eIDAS regulation. The level of legal validity depends on the certificate used (SES/AdES/QES). FactPulse does not provide QES qualified certificates - you must obtain a certificate from a PSCO (qualified Trust Service Provider) for maximum legal validity.
108
+ # @param pdf_file [File] PDF file to sign (will be processed and returned signed in base64)
109
+ # @param [Hash] opts the optional parameters
110
+ # @option opts [String] :reason
111
+ # @option opts [String] :location
112
+ # @option opts [String] :contact
113
+ # @option opts [String] :field_name PDF signature field name (default to 'FactPulseSignature')
114
+ # @option opts [Boolean] :use_pades_lt Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. (default to false)
115
+ # @option opts [Boolean] :use_timestamp Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) (default to true)
116
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
117
+ def sign_pdf_api_v1_processing_sign_pdf_post_with_http_info(pdf_file, opts = {})
118
+ if @api_client.config.debugging
119
+ @api_client.config.logger.debug 'Calling API: ElectronicSignatureApi.sign_pdf_api_v1_processing_sign_pdf_post ...'
120
+ end
121
+ # verify the required parameter 'pdf_file' is set
122
+ if @api_client.config.client_side_validation && pdf_file.nil?
123
+ fail ArgumentError, "Missing the required parameter 'pdf_file' when calling ElectronicSignatureApi.sign_pdf_api_v1_processing_sign_pdf_post"
124
+ end
125
+ # resource path
126
+ local_var_path = '/api/v1/processing/sign-pdf'
127
+
128
+ # query parameters
129
+ query_params = opts[:query_params] || {}
130
+
131
+ # header parameters
132
+ header_params = opts[:header_params] || {}
133
+ # HTTP header 'Accept' (if needed)
134
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
135
+ # HTTP header 'Content-Type'
136
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
137
+ if !content_type.nil?
138
+ header_params['Content-Type'] = content_type
139
+ end
140
+
141
+ # form parameters
142
+ form_params = opts[:form_params] || {}
143
+ form_params['pdf_file'] = pdf_file
144
+ form_params['reason'] = opts[:'reason'] if !opts[:'reason'].nil?
145
+ form_params['location'] = opts[:'location'] if !opts[:'location'].nil?
146
+ form_params['contact'] = opts[:'contact'] if !opts[:'contact'].nil?
147
+ form_params['field_name'] = opts[:'field_name'] if !opts[:'field_name'].nil?
148
+ form_params['use_pades_lt'] = opts[:'use_pades_lt'] if !opts[:'use_pades_lt'].nil?
149
+ form_params['use_timestamp'] = opts[:'use_timestamp'] if !opts[:'use_timestamp'].nil?
150
+
151
+ # http body (model)
152
+ post_body = opts[:debug_body]
153
+
154
+ # return_type
155
+ return_type = opts[:debug_return_type] || 'Object'
156
+
157
+ # auth_names
158
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
159
+
160
+ new_options = opts.merge(
161
+ :operation => :"ElectronicSignatureApi.sign_pdf_api_v1_processing_sign_pdf_post",
162
+ :header_params => header_params,
163
+ :query_params => query_params,
164
+ :form_params => form_params,
165
+ :body => post_body,
166
+ :auth_names => auth_names,
167
+ :return_type => return_type
168
+ )
169
+
170
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
171
+ if @api_client.config.debugging
172
+ @api_client.config.logger.debug "API called: ElectronicSignatureApi#sign_pdf_api_v1_processing_sign_pdf_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
173
+ end
174
+ return data, status_code, headers
175
+ end
176
+
177
+ # Sign a PDF asynchronously (Celery)
178
+ # Signs an uploaded PDF asynchronously via a Celery task. **Difference with /sign-pdf**: - `/sign-pdf`: Synchronous signature (blocking until completion) - `/sign-pdf-async`: Asynchronous signature (returns immediately with task_id) **Async advantages**: - No timeout for large files - No blocking of FastAPI worker - Progress tracking via task_id - Ideal for batch processing **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **⚠️ Legal disclaimer**: Same as /sign-pdf (see that endpoint's documentation).
179
+ # @param pdf_file [File] PDF file to sign (processed asynchronously)
180
+ # @param [Hash] opts the optional parameters
181
+ # @option opts [String] :callback_url
182
+ # @option opts [String] :webhook_mode Webhook content delivery: &#39;inline&#39; (base64 in payload) or &#39;download_url&#39; (temporary URL, 1h TTL) (default to 'inline')
183
+ # @option opts [String] :reason
184
+ # @option opts [String] :location
185
+ # @option opts [String] :contact
186
+ # @option opts [String] :field_name PDF signature field name (default to 'FactPulseSignature')
187
+ # @option opts [Boolean] :use_pades_lt Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. (default to false)
188
+ # @option opts [Boolean] :use_timestamp Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) (default to true)
189
+ # @return [Object]
190
+ def sign_pdf_async_api_v1_processing_sign_pdf_async_post(pdf_file, opts = {})
191
+ data, _status_code, _headers = sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info(pdf_file, opts)
192
+ data
193
+ end
194
+
195
+ # Sign a PDF asynchronously (Celery)
196
+ # Signs an uploaded PDF asynchronously via a Celery task. **Difference with /sign-pdf**: - &#x60;/sign-pdf&#x60;: Synchronous signature (blocking until completion) - &#x60;/sign-pdf-async&#x60;: Asynchronous signature (returns immediately with task_id) **Async advantages**: - No timeout for large files - No blocking of FastAPI worker - Progress tracking via task_id - Ideal for batch processing **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **⚠️ Legal disclaimer**: Same as /sign-pdf (see that endpoint&#39;s documentation).
197
+ # @param pdf_file [File] PDF file to sign (processed asynchronously)
198
+ # @param [Hash] opts the optional parameters
199
+ # @option opts [String] :callback_url
200
+ # @option opts [String] :webhook_mode Webhook content delivery: &#39;inline&#39; (base64 in payload) or &#39;download_url&#39; (temporary URL, 1h TTL) (default to 'inline')
201
+ # @option opts [String] :reason
202
+ # @option opts [String] :location
203
+ # @option opts [String] :contact
204
+ # @option opts [String] :field_name PDF signature field name (default to 'FactPulseSignature')
205
+ # @option opts [Boolean] :use_pades_lt Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. (default to false)
206
+ # @option opts [Boolean] :use_timestamp Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) (default to true)
207
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
208
+ def sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info(pdf_file, opts = {})
209
+ if @api_client.config.debugging
210
+ @api_client.config.logger.debug 'Calling API: ElectronicSignatureApi.sign_pdf_async_api_v1_processing_sign_pdf_async_post ...'
211
+ end
212
+ # verify the required parameter 'pdf_file' is set
213
+ if @api_client.config.client_side_validation && pdf_file.nil?
214
+ fail ArgumentError, "Missing the required parameter 'pdf_file' when calling ElectronicSignatureApi.sign_pdf_async_api_v1_processing_sign_pdf_async_post"
215
+ end
216
+ # resource path
217
+ local_var_path = '/api/v1/processing/sign-pdf-async'
218
+
219
+ # query parameters
220
+ query_params = opts[:query_params] || {}
221
+
222
+ # header parameters
223
+ header_params = opts[:header_params] || {}
224
+ # HTTP header 'Accept' (if needed)
225
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
226
+ # HTTP header 'Content-Type'
227
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
228
+ if !content_type.nil?
229
+ header_params['Content-Type'] = content_type
230
+ end
231
+
232
+ # form parameters
233
+ form_params = opts[:form_params] || {}
234
+ form_params['pdf_file'] = pdf_file
235
+ form_params['callback_url'] = opts[:'callback_url'] if !opts[:'callback_url'].nil?
236
+ form_params['webhook_mode'] = opts[:'webhook_mode'] if !opts[:'webhook_mode'].nil?
237
+ form_params['reason'] = opts[:'reason'] if !opts[:'reason'].nil?
238
+ form_params['location'] = opts[:'location'] if !opts[:'location'].nil?
239
+ form_params['contact'] = opts[:'contact'] if !opts[:'contact'].nil?
240
+ form_params['field_name'] = opts[:'field_name'] if !opts[:'field_name'].nil?
241
+ form_params['use_pades_lt'] = opts[:'use_pades_lt'] if !opts[:'use_pades_lt'].nil?
242
+ form_params['use_timestamp'] = opts[:'use_timestamp'] if !opts[:'use_timestamp'].nil?
243
+
244
+ # http body (model)
245
+ post_body = opts[:debug_body]
246
+
247
+ # return_type
248
+ return_type = opts[:debug_return_type] || 'Object'
249
+
250
+ # auth_names
251
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
252
+
253
+ new_options = opts.merge(
254
+ :operation => :"ElectronicSignatureApi.sign_pdf_async_api_v1_processing_sign_pdf_async_post",
255
+ :header_params => header_params,
256
+ :query_params => query_params,
257
+ :form_params => form_params,
258
+ :body => post_body,
259
+ :auth_names => auth_names,
260
+ :return_type => return_type
261
+ )
262
+
263
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
264
+ if @api_client.config.debugging
265
+ @api_client.config.logger.debug "API called: ElectronicSignatureApi#sign_pdf_async_api_v1_processing_sign_pdf_async_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
266
+ end
267
+ return data, status_code, headers
268
+ end
269
+
270
+ # Validate electronic signatures of a PDF
271
+ # Validates electronic signatures present in an uploaded PDF. **Verifications performed**: - Presence of signatures - Document integrity (not modified since signing) - Certificate validity - Chain of trust (if available) - Presence of timestamp (PAdES-B-T) - Validation data (PAdES-B-LT) **Supported standards**: PAdES-B-B, PAdES-B-T, PAdES-B-LT, ISO 32000-2. **⚠️ Note**: This validation is technical (cryptographic integrity). Legal validity depends on the eIDAS level of the certificate (SES/AdES/QES) and the context of use.
272
+ # @param pdf_file [File] PDF file to validate (will be analyzed to detect and validate signatures)
273
+ # @param [Hash] opts the optional parameters
274
+ # @return [Object]
275
+ def validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post(pdf_file, opts = {})
276
+ data, _status_code, _headers = validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info(pdf_file, opts)
277
+ data
278
+ end
279
+
280
+ # Validate electronic signatures of a PDF
281
+ # Validates electronic signatures present in an uploaded PDF. **Verifications performed**: - Presence of signatures - Document integrity (not modified since signing) - Certificate validity - Chain of trust (if available) - Presence of timestamp (PAdES-B-T) - Validation data (PAdES-B-LT) **Supported standards**: PAdES-B-B, PAdES-B-T, PAdES-B-LT, ISO 32000-2. **⚠️ Note**: This validation is technical (cryptographic integrity). Legal validity depends on the eIDAS level of the certificate (SES/AdES/QES) and the context of use.
282
+ # @param pdf_file [File] PDF file to validate (will be analyzed to detect and validate signatures)
283
+ # @param [Hash] opts the optional parameters
284
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
285
+ def validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info(pdf_file, opts = {})
286
+ if @api_client.config.debugging
287
+ @api_client.config.logger.debug 'Calling API: ElectronicSignatureApi.validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post ...'
288
+ end
289
+ # verify the required parameter 'pdf_file' is set
290
+ if @api_client.config.client_side_validation && pdf_file.nil?
291
+ fail ArgumentError, "Missing the required parameter 'pdf_file' when calling ElectronicSignatureApi.validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post"
292
+ end
293
+ # resource path
294
+ local_var_path = '/api/v1/processing/validate-pdf-signature'
295
+
296
+ # query parameters
297
+ query_params = opts[:query_params] || {}
298
+
299
+ # header parameters
300
+ header_params = opts[:header_params] || {}
301
+ # HTTP header 'Accept' (if needed)
302
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
303
+ # HTTP header 'Content-Type'
304
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
305
+ if !content_type.nil?
306
+ header_params['Content-Type'] = content_type
307
+ end
308
+
309
+ # form parameters
310
+ form_params = opts[:form_params] || {}
311
+ form_params['pdf_file'] = pdf_file
312
+
313
+ # http body (model)
314
+ post_body = opts[:debug_body]
315
+
316
+ # return_type
317
+ return_type = opts[:debug_return_type] || 'Object'
318
+
319
+ # auth_names
320
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
321
+
322
+ new_options = opts.merge(
323
+ :operation => :"ElectronicSignatureApi.validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post",
324
+ :header_params => header_params,
325
+ :query_params => query_params,
326
+ :form_params => form_params,
327
+ :body => post_body,
328
+ :auth_names => auth_names,
329
+ :return_type => return_type
330
+ )
331
+
332
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
333
+ if @api_client.config.debugging
334
+ @api_client.config.logger.debug "API called: ElectronicSignatureApi#validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
335
+ end
336
+ return data, status_code, headers
337
+ end
338
+ end
339
+ end
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  #FactPulse REST API
3
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://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://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://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://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://factpulse.fr/api/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://factpulse.fr/documentation-api/
4
+ # REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Factur-X - 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) ### ✅ Factur-X - Validation - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ 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 ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - **CDAR Messages**: Acknowledgements, invoice statuses - **PPF Statuses**: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - **Tax Declarations**: International B2B, B2C - **Flow Types**: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - **Flow Service**: Submit and search flows to PDPs - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - **Public Sector Invoicing**: Complete API for Chorus Pro ### Async Tasks - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **Webhooks**: Automatic notifications when tasks complete ## 🔒 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://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://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://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://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://factpulse.fr/api/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://factpulse.fr/documentation-api/
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
7
  Contact: contact@factpulse.fr
@@ -13,40 +13,40 @@ Generator version: 7.20.0-SNAPSHOT
13
13
  require 'cgi'
14
14
 
15
15
  module FactPulse
16
- class DocumentConversionApi
16
+ class FacturXConversionApi
17
17
  attr_accessor :api_client
18
18
 
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Convertir un document en Factur-X (mode asynchrone)
23
- # Lance une conversion asynchrone via Celery. ## Workflow 1. **Upload** : Le document est envoyé en multipart/form-data 2. **Task Celery** : La tâche est mise en file d'attente 3. **Callback** : Notification par webhook à la fin ## Réponses possibles - **202** : Tâche acceptée, en cours de traitement - **400** : Fichier invalide
24
- # @param file [File] Document à convertir (PDF, DOCX, XLSX, JPG, PNG)
22
+ # Convert a document to Factur-X (async mode)
23
+ # Launch an asynchronous conversion via Celery. ## Workflow 1. **Upload**: Document is sent as multipart/form-data 2. **Celery Task**: Task is queued for processing 3. **Callback**: Webhook notification on completion ## Possible responses - **202**: Task accepted, processing - **400**: Invalid file
24
+ # @param file [File] Document to convert (PDF, DOCX, XLSX, JPG, PNG)
25
25
  # @param [Hash] opts the optional parameters
26
- # @option opts [String] :output Format de sortie: pdf, xml, both (default to 'pdf')
26
+ # @option opts [String] :output Output format: pdf, xml, both (default to 'pdf')
27
27
  # @option opts [String] :callback_url
28
- # @option opts [String] :webhook_mode Mode de livraison du contenu: &#39;inline&#39; (base64 dans webhook) ou &#39;download_url&#39; (URL temporaire 1h) (default to 'inline')
28
+ # @option opts [String] :webhook_mode Content delivery mode: &#39;inline&#39; (base64 in webhook) or &#39;download_url&#39; (temporary URL, 1h TTL) (default to 'inline')
29
29
  # @return [Object]
30
30
  def convert_document_async_api_v1_convert_async_post(file, opts = {})
31
31
  data, _status_code, _headers = convert_document_async_api_v1_convert_async_post_with_http_info(file, opts)
32
32
  data
33
33
  end
34
34
 
35
- # Convertir un document en Factur-X (mode asynchrone)
36
- # Lance une conversion asynchrone via Celery. ## Workflow 1. **Upload** : Le document est envoyé en multipart/form-data 2. **Task Celery** : La tâche est mise en file d&#39;attente 3. **Callback** : Notification par webhook à la fin ## Réponses possibles - **202** : Tâche acceptée, en cours de traitement - **400** : Fichier invalide
37
- # @param file [File] Document à convertir (PDF, DOCX, XLSX, JPG, PNG)
35
+ # Convert a document to Factur-X (async mode)
36
+ # Launch an asynchronous conversion via Celery. ## Workflow 1. **Upload**: Document is sent as multipart/form-data 2. **Celery Task**: Task is queued for processing 3. **Callback**: Webhook notification on completion ## Possible responses - **202**: Task accepted, processing - **400**: Invalid file
37
+ # @param file [File] Document to convert (PDF, DOCX, XLSX, JPG, PNG)
38
38
  # @param [Hash] opts the optional parameters
39
- # @option opts [String] :output Format de sortie: pdf, xml, both (default to 'pdf')
39
+ # @option opts [String] :output Output format: pdf, xml, both (default to 'pdf')
40
40
  # @option opts [String] :callback_url
41
- # @option opts [String] :webhook_mode Mode de livraison du contenu: &#39;inline&#39; (base64 dans webhook) ou &#39;download_url&#39; (URL temporaire 1h) (default to 'inline')
41
+ # @option opts [String] :webhook_mode Content delivery mode: &#39;inline&#39; (base64 in webhook) or &#39;download_url&#39; (temporary URL, 1h TTL) (default to 'inline')
42
42
  # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
43
43
  def convert_document_async_api_v1_convert_async_post_with_http_info(file, opts = {})
44
44
  if @api_client.config.debugging
45
- @api_client.config.logger.debug 'Calling API: DocumentConversionApi.convert_document_async_api_v1_convert_async_post ...'
45
+ @api_client.config.logger.debug 'Calling API: FacturXConversionApi.convert_document_async_api_v1_convert_async_post ...'
46
46
  end
47
47
  # verify the required parameter 'file' is set
48
48
  if @api_client.config.client_side_validation && file.nil?
49
- fail ArgumentError, "Missing the required parameter 'file' when calling DocumentConversionApi.convert_document_async_api_v1_convert_async_post"
49
+ fail ArgumentError, "Missing the required parameter 'file' when calling FacturXConversionApi.convert_document_async_api_v1_convert_async_post"
50
50
  end
51
51
  # resource path
52
52
  local_var_path = '/api/v1/convert/async'
@@ -81,7 +81,7 @@ module FactPulse
81
81
  auth_names = opts[:debug_auth_names] || ['HTTPBearer']
82
82
 
83
83
  new_options = opts.merge(
84
- :operation => :"DocumentConversionApi.convert_document_async_api_v1_convert_async_post",
84
+ :operation => :"FacturXConversionApi.convert_document_async_api_v1_convert_async_post",
85
85
  :header_params => header_params,
86
86
  :query_params => query_params,
87
87
  :form_params => form_params,
@@ -92,13 +92,13 @@ module FactPulse
92
92
 
93
93
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
94
94
  if @api_client.config.debugging
95
- @api_client.config.logger.debug "API called: DocumentConversionApi#convert_document_async_api_v1_convert_async_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
95
+ @api_client.config.logger.debug "API called: FacturXConversionApi#convert_document_async_api_v1_convert_async_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
96
96
  end
97
97
  return data, status_code, headers
98
98
  end
99
99
 
100
- # Télécharger un fichier généré
101
- # Télécharge le fichier Factur-X PDF ou XML généré. ## Fichiers disponibles - `facturx.pdf` : PDF/A-3 avec XML embarqué - `facturx.xml` : XML CII seul (Cross Industry Invoice) Les fichiers sont disponibles pendant 24 heures après génération.
100
+ # Download a generated file
101
+ # Download the generated Factur-X PDF or XML file. ## Available files - `facturx.pdf`: PDF/A-3 with embedded XML - `facturx.xml`: XML CII only (Cross Industry Invoice) Files are available for 24 hours after generation.
102
102
  # @param conversion_id [String] Conversion ID returned by POST /convert (UUID format)
103
103
  # @param filename [String] File to download: &#39;facturx.pdf&#39; or &#39;facturx.xml&#39;
104
104
  # @param [Hash] opts the optional parameters
@@ -108,23 +108,23 @@ module FactPulse
108
108
  data
109
109
  end
110
110
 
111
- # Télécharger un fichier généré
112
- # Télécharge le fichier Factur-X PDF ou XML généré. ## Fichiers disponibles - &#x60;facturx.pdf&#x60; : PDF/A-3 avec XML embarqué - &#x60;facturx.xml&#x60; : XML CII seul (Cross Industry Invoice) Les fichiers sont disponibles pendant 24 heures après génération.
111
+ # Download a generated file
112
+ # Download the generated Factur-X PDF or XML file. ## Available files - &#x60;facturx.pdf&#x60;: PDF/A-3 with embedded XML - &#x60;facturx.xml&#x60;: XML CII only (Cross Industry Invoice) Files are available for 24 hours after generation.
113
113
  # @param conversion_id [String] Conversion ID returned by POST /convert (UUID format)
114
114
  # @param filename [String] File to download: &#39;facturx.pdf&#39; or &#39;facturx.xml&#39;
115
115
  # @param [Hash] opts the optional parameters
116
116
  # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
117
117
  def download_file_api_v1_convert_conversion_id_download_filename_get_with_http_info(conversion_id, filename, opts = {})
118
118
  if @api_client.config.debugging
119
- @api_client.config.logger.debug 'Calling API: DocumentConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get ...'
119
+ @api_client.config.logger.debug 'Calling API: FacturXConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get ...'
120
120
  end
121
121
  # verify the required parameter 'conversion_id' is set
122
122
  if @api_client.config.client_side_validation && conversion_id.nil?
123
- fail ArgumentError, "Missing the required parameter 'conversion_id' when calling DocumentConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get"
123
+ fail ArgumentError, "Missing the required parameter 'conversion_id' when calling FacturXConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get"
124
124
  end
125
125
  # verify the required parameter 'filename' is set
126
126
  if @api_client.config.client_side_validation && filename.nil?
127
- fail ArgumentError, "Missing the required parameter 'filename' when calling DocumentConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get"
127
+ fail ArgumentError, "Missing the required parameter 'filename' when calling FacturXConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get"
128
128
  end
129
129
  # resource path
130
130
  local_var_path = '/api/v1/convert/{conversion_id}/download/{filename}'.sub('{' + 'conversion_id' + '}', CGI.escape(conversion_id.to_s)).sub('{' + 'filename' + '}', CGI.escape(filename.to_s))
@@ -150,7 +150,7 @@ module FactPulse
150
150
  auth_names = opts[:debug_auth_names] || ['HTTPBearer']
151
151
 
152
152
  new_options = opts.merge(
153
- :operation => :"DocumentConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get",
153
+ :operation => :"FacturXConversionApi.download_file_api_v1_convert_conversion_id_download_filename_get",
154
154
  :header_params => header_params,
155
155
  :query_params => query_params,
156
156
  :form_params => form_params,
@@ -161,13 +161,13 @@ module FactPulse
161
161
 
162
162
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
163
163
  if @api_client.config.debugging
164
- @api_client.config.logger.debug "API called: DocumentConversionApi#download_file_api_v1_convert_conversion_id_download_filename_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
164
+ @api_client.config.logger.debug "API called: FacturXConversionApi#download_file_api_v1_convert_conversion_id_download_filename_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
165
165
  end
166
166
  return data, status_code, headers
167
167
  end
168
168
 
169
- # Vérifier le statut d'une conversion
170
- # Retourne le statut actuel d'une conversion asynchrone.
169
+ # Check conversion status
170
+ # Returns the current status of an asynchronous conversion.
171
171
  # @param conversion_id [String] Conversion ID returned by POST /convert (UUID format)
172
172
  # @param [Hash] opts the optional parameters
173
173
  # @return [Hash<String, Object>]
@@ -176,18 +176,18 @@ module FactPulse
176
176
  data
177
177
  end
178
178
 
179
- # Vérifier le statut d&#39;une conversion
180
- # Retourne le statut actuel d&#39;une conversion asynchrone.
179
+ # Check conversion status
180
+ # Returns the current status of an asynchronous conversion.
181
181
  # @param conversion_id [String] Conversion ID returned by POST /convert (UUID format)
182
182
  # @param [Hash] opts the optional parameters
183
183
  # @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
184
184
  def get_conversion_status_api_v1_convert_conversion_id_status_get_with_http_info(conversion_id, opts = {})
185
185
  if @api_client.config.debugging
186
- @api_client.config.logger.debug 'Calling API: DocumentConversionApi.get_conversion_status_api_v1_convert_conversion_id_status_get ...'
186
+ @api_client.config.logger.debug 'Calling API: FacturXConversionApi.get_conversion_status_api_v1_convert_conversion_id_status_get ...'
187
187
  end
188
188
  # verify the required parameter 'conversion_id' is set
189
189
  if @api_client.config.client_side_validation && conversion_id.nil?
190
- fail ArgumentError, "Missing the required parameter 'conversion_id' when calling DocumentConversionApi.get_conversion_status_api_v1_convert_conversion_id_status_get"
190
+ fail ArgumentError, "Missing the required parameter 'conversion_id' when calling FacturXConversionApi.get_conversion_status_api_v1_convert_conversion_id_status_get"
191
191
  end
192
192
  # resource path
193
193
  local_var_path = '/api/v1/convert/{conversion_id}/status'.sub('{' + 'conversion_id' + '}', CGI.escape(conversion_id.to_s))
@@ -213,7 +213,7 @@ module FactPulse
213
213
  auth_names = opts[:debug_auth_names] || ['HTTPBearer']
214
214
 
215
215
  new_options = opts.merge(
216
- :operation => :"DocumentConversionApi.get_conversion_status_api_v1_convert_conversion_id_status_get",
216
+ :operation => :"FacturXConversionApi.get_conversion_status_api_v1_convert_conversion_id_status_get",
217
217
  :header_params => header_params,
218
218
  :query_params => query_params,
219
219
  :form_params => form_params,
@@ -224,13 +224,13 @@ module FactPulse
224
224
 
225
225
  data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
226
226
  if @api_client.config.debugging
227
- @api_client.config.logger.debug "API called: DocumentConversionApi#get_conversion_status_api_v1_convert_conversion_id_status_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
227
+ @api_client.config.logger.debug "API called: FacturXConversionApi#get_conversion_status_api_v1_convert_conversion_id_status_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
228
228
  end
229
229
  return data, status_code, headers
230
230
  end
231
231
 
232
- # Reprendre une conversion avec corrections
233
- # Reprend une conversion après complétion des données manquantes ou correction des erreurs. L'extraction OCR est conservée, les données sont mises à jour avec les corrections, puis une nouvelle validation Schematron est effectuée.
232
+ # Resume a conversion with corrections
233
+ # Resume a conversion after completing missing data or correcting errors. The OCR extraction is preserved, data is updated with corrections, then a new Schematron validation is performed.
234
234
  # @param conversion_id [String] Conversion ID returned by POST /convert (UUID format)
235
235
  # @param convert_resume_request [ConvertResumeRequest]
236
236
  # @param [Hash] opts the optional parameters
@@ -240,23 +240,23 @@ module FactPulse
240
240
  data
241
241
  end
242
242
 
243
- # Reprendre une conversion avec corrections
244
- # Reprend une conversion après complétion des données manquantes ou correction des erreurs. L&#39;extraction OCR est conservée, les données sont mises à jour avec les corrections, puis une nouvelle validation Schematron est effectuée.
243
+ # Resume a conversion with corrections
244
+ # Resume a conversion after completing missing data or correcting errors. The OCR extraction is preserved, data is updated with corrections, then a new Schematron validation is performed.
245
245
  # @param conversion_id [String] Conversion ID returned by POST /convert (UUID format)
246
246
  # @param convert_resume_request [ConvertResumeRequest]
247
247
  # @param [Hash] opts the optional parameters
248
248
  # @return [Array<(ConvertSuccessResponse, Integer, Hash)>] ConvertSuccessResponse data, response status code and response headers
249
249
  def resume_conversion_api_v1_convert_conversion_id_resume_post_with_http_info(conversion_id, convert_resume_request, opts = {})
250
250
  if @api_client.config.debugging
251
- @api_client.config.logger.debug 'Calling API: DocumentConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post ...'
251
+ @api_client.config.logger.debug 'Calling API: FacturXConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post ...'
252
252
  end
253
253
  # verify the required parameter 'conversion_id' is set
254
254
  if @api_client.config.client_side_validation && conversion_id.nil?
255
- fail ArgumentError, "Missing the required parameter 'conversion_id' when calling DocumentConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post"
255
+ fail ArgumentError, "Missing the required parameter 'conversion_id' when calling FacturXConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post"
256
256
  end
257
257
  # verify the required parameter 'convert_resume_request' is set
258
258
  if @api_client.config.client_side_validation && convert_resume_request.nil?
259
- fail ArgumentError, "Missing the required parameter 'convert_resume_request' when calling DocumentConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post"
259
+ fail ArgumentError, "Missing the required parameter 'convert_resume_request' when calling FacturXConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post"
260
260
  end
261
261
  # resource path
262
262
  local_var_path = '/api/v1/convert/{conversion_id}/resume'.sub('{' + 'conversion_id' + '}', CGI.escape(conversion_id.to_s))
@@ -287,7 +287,7 @@ module FactPulse
287
287
  auth_names = opts[:debug_auth_names] || ['HTTPBearer']
288
288
 
289
289
  new_options = opts.merge(
290
- :operation => :"DocumentConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post",
290
+ :operation => :"FacturXConversionApi.resume_conversion_api_v1_convert_conversion_id_resume_post",
291
291
  :header_params => header_params,
292
292
  :query_params => query_params,
293
293
  :form_params => form_params,
@@ -298,7 +298,7 @@ module FactPulse
298
298
 
299
299
  data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
300
300
  if @api_client.config.debugging
301
- @api_client.config.logger.debug "API called: DocumentConversionApi#resume_conversion_api_v1_convert_conversion_id_resume_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
301
+ @api_client.config.logger.debug "API called: FacturXConversionApi#resume_conversion_api_v1_convert_conversion_id_resume_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
302
302
  end
303
303
  return data, status_code, headers
304
304
  end