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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0061473ad13efd96d8c31a87f167aa5c1d8722e43f960266fce4a50b66adee83
4
- data.tar.gz: 6d066ab2f7b58959051286436f2a7f5d267873d105ba5fffa8b715a31f6bf57a
3
+ metadata.gz: ed5220794155d6c2396f8f0d804472921e343e24de4da8a14e39e4635ab3140c
4
+ data.tar.gz: 4e967d6bd2992759be3e9c26e35f78832fb033c84b676166507ecf434d857b7a
5
5
  SHA512:
6
- metadata.gz: 3d4487a0f6b114af93c883946f6b5ac51973de38f8de2161e5d125e42e505c14dd6f06f6f1ff9a5c48cf5baaea86971ab626f60af374f7de5aa72ff4c239e9c6
7
- data.tar.gz: acec505dcfe90e493a3b5b61b3a479ef507935d5ad7888988f338f64b603a3520ab42a21788ff4c8f441ee2256888b1e2554de46e7e8c9fb2bc04b7b6815197d
6
+ metadata.gz: 24aee2a48d55854a1695d7e4602f05ae00da5f31e567657b3c168610299ee4640594c448e6c4f8f99a87da7308c98e2345bd02e4e9ca7c348afaa345bc717acc
7
+ data.tar.gz: 1c3ece1e7befab53f5998e15a469064262e9e6aceabe3a7012c4fa478a46309ad9cfb9c966f04141b881c2d43b020d468ebea1d8f5eff412c1cfdcccbcddc6fa
data/CHANGELOG.md CHANGED
@@ -7,11 +7,11 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ## [4.0.1] - 2026-01-20
10
+ ## [4.0.2] - 2026-01-24
11
11
 
12
12
  ### Fixed
13
- - Gestion post multipart
13
+ - Meilleures conformité validation/génération erportings
14
14
 
15
15
 
16
- [Unreleased]: https://github.com/factpulse/sdk-ruby/compare/v4.0.1...HEAD
17
- [4.0.1]: https://github.com/factpulse/sdk-ruby/releases/tag/v4.0.1
16
+ [Unreleased]: https://github.com/factpulse/sdk-ruby/compare/v4.0.2...HEAD
17
+ [4.0.2]: https://github.com/factpulse/sdk-ruby/releases/tag/v4.0.2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- factpulse (4.0.1)
4
+ factpulse (4.0.2)
5
5
  typhoeus (~> 1.0, >= 1.0.1)
6
6
 
7
7
  GEM
@@ -4,75 +4,8 @@ All URIs are relative to *https://factpulse.fr*
4
4
 
5
5
  | Method | HTTP request | Description |
6
6
  | ------ | ------------ | ----------- |
7
- | [**get_afnor_credentials_api_v1_afnor_credentials_get**](AFNORPDPPAApi.md#get_afnor_credentials_api_v1_afnor_credentials_get) | **GET** /api/v1/afnor/credentials | Retrieve stored AFNOR credentials |
8
7
  | [**get_flux_entrant_api_v1_afnor_incoming_flows_flow_id_get**](AFNORPDPPAApi.md#get_flux_entrant_api_v1_afnor_incoming_flows_flow_id_get) | **GET** /api/v1/afnor/incoming-flows/{flow_id} | Retrieve and extract an incoming invoice |
9
- | [**oauth_token_proxy_api_v1_afnor_oauth_token_post**](AFNORPDPPAApi.md#oauth_token_proxy_api_v1_afnor_oauth_token_post) | **POST** /api/v1/afnor/oauth/token | OAuth2 endpoint for AFNOR authentication |
10
-
11
-
12
- ## get_afnor_credentials_api_v1_afnor_credentials_get
13
-
14
- > Object get_afnor_credentials_api_v1_afnor_credentials_get
15
-
16
- Retrieve stored AFNOR credentials
17
-
18
- Retrieves stored AFNOR/PDP credentials for the JWT's client_uid. This endpoint is used by the SDK in 'stored' mode to retrieve credentials before performing AFNOR OAuth itself.
19
-
20
- ### Examples
21
-
22
- ```ruby
23
- require 'time'
24
- require 'factpulse'
25
- # setup authorization
26
- FactPulse.configure do |config|
27
- # Configure Bearer authorization: HTTPBearer
28
- config.access_token = 'YOUR_BEARER_TOKEN'
29
- end
30
-
31
- api_instance = FactPulse::AFNORPDPPAApi.new
32
-
33
- begin
34
- # Retrieve stored AFNOR credentials
35
- result = api_instance.get_afnor_credentials_api_v1_afnor_credentials_get
36
- p result
37
- rescue FactPulse::ApiError => e
38
- puts "Error when calling AFNORPDPPAApi->get_afnor_credentials_api_v1_afnor_credentials_get: #{e}"
39
- end
40
- ```
41
-
42
- #### Using the get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info variant
43
-
44
- This returns an Array which contains the response data, status code and headers.
45
-
46
- > <Array(Object, Integer, Hash)> get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info
47
-
48
- ```ruby
49
- begin
50
- # Retrieve stored AFNOR credentials
51
- data, status_code, headers = api_instance.get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info
52
- p status_code # => 2xx
53
- p headers # => { ... }
54
- p data # => Object
55
- rescue FactPulse::ApiError => e
56
- puts "Error when calling AFNORPDPPAApi->get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info: #{e}"
57
- end
58
- ```
59
-
60
- ### Parameters
61
-
62
- This endpoint does not need any parameter.
63
-
64
- ### Return type
65
-
66
- **Object**
67
-
68
- ### Authorization
69
-
70
- [HTTPBearer](../README.md#HTTPBearer)
71
-
72
- ### HTTP request headers
73
-
74
- - **Content-Type**: Not defined
75
- - **Accept**: application/json
8
+ | [**oauth_token_proxy_api_v1_afnor_oauth_token_post**](AFNORPDPPAApi.md#oauth_token_proxy_api_v1_afnor_oauth_token_post) | **POST** /api/v1/afnor/oauth/token | Test PDP OAuth2 credentials |
76
9
 
77
10
 
78
11
  ## get_flux_entrant_api_v1_afnor_incoming_flows_flow_id_get
@@ -152,9 +85,9 @@ end
152
85
 
153
86
  > Object oauth_token_proxy_api_v1_afnor_oauth_token_post
154
87
 
155
- OAuth2 endpoint for AFNOR authentication
88
+ Test PDP OAuth2 credentials
156
89
 
157
- OAuth2 proxy endpoint to obtain an AFNOR access token. Proxies to AFNOR mock (sandbox) or real PDP depending on MOCK_AFNOR_BASE_URL. This endpoint is public (no Django auth required) as it is called by the AFNOR SDK.
90
+ OAuth2 proxy to validate PDP credentials. Use this endpoint to verify that OAuth credentials (client_id, client_secret) are valid before saving a PDP configuration. This endpoint is public (no authentication required).
158
91
 
159
92
  ### Examples
160
93
 
@@ -165,7 +98,7 @@ require 'factpulse'
165
98
  api_instance = FactPulse::AFNORPDPPAApi.new
166
99
 
167
100
  begin
168
- # OAuth2 endpoint for AFNOR authentication
101
+ # Test PDP OAuth2 credentials
169
102
  result = api_instance.oauth_token_proxy_api_v1_afnor_oauth_token_post
170
103
  p result
171
104
  rescue FactPulse::ApiError => e
@@ -181,7 +114,7 @@ This returns an Array which contains the response data, status code and headers.
181
114
 
182
115
  ```ruby
183
116
  begin
184
- # OAuth2 endpoint for AFNOR authentication
117
+ # Test PDP OAuth2 credentials
185
118
  data, status_code, headers = api_instance.oauth_token_proxy_api_v1_afnor_oauth_token_post_with_http_info
186
119
  p status_code # => 2xx
187
120
  p headers # => { ... }
@@ -0,0 +1,77 @@
1
+ # FactPulse::AsyncTasksApi
2
+
3
+ All URIs are relative to *https://factpulse.fr*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**get_task_status_api_v1_processing_tasks_task_id_status_get**](AsyncTasksApi.md#get_task_status_api_v1_processing_tasks_task_id_status_get) | **GET** /api/v1/processing/tasks/{task_id}/status | Get task generation status |
8
+
9
+
10
+ ## get_task_status_api_v1_processing_tasks_task_id_status_get
11
+
12
+ > <AsyncTaskStatus> get_task_status_api_v1_processing_tasks_task_id_status_get(task_id)
13
+
14
+ Get task generation status
15
+
16
+ Retrieves the progress status of an invoice generation task. ## Possible states The `status` field uses the `CeleryStatus` enum with values: - **PENDING, STARTED, SUCCESS, FAILURE, RETRY** See the `CeleryStatus` schema documentation for details. ## Business result When `status=\"SUCCESS\"`, the `result` field contains: - `status`: \"SUCCESS\" or \"ERROR\" (business result) - `content_b64`: Base64 encoded content (if success) - `errorCode`, `errorMessage`, `details`: AFNOR format (if business error) ## Usage Poll this endpoint every 2-3 seconds until `status` is `SUCCESS` or `FAILURE`.
17
+
18
+ ### Examples
19
+
20
+ ```ruby
21
+ require 'time'
22
+ require 'factpulse'
23
+ # setup authorization
24
+ FactPulse.configure do |config|
25
+ # Configure Bearer authorization: HTTPBearer
26
+ config.access_token = 'YOUR_BEARER_TOKEN'
27
+ end
28
+
29
+ api_instance = FactPulse::AsyncTasksApi.new
30
+ task_id = 'task_id_example' # String | Celery task ID returned by async endpoints (UUID format)
31
+
32
+ begin
33
+ # Get task generation status
34
+ result = api_instance.get_task_status_api_v1_processing_tasks_task_id_status_get(task_id)
35
+ p result
36
+ rescue FactPulse::ApiError => e
37
+ puts "Error when calling AsyncTasksApi->get_task_status_api_v1_processing_tasks_task_id_status_get: #{e}"
38
+ end
39
+ ```
40
+
41
+ #### Using the get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info variant
42
+
43
+ This returns an Array which contains the response data, status code and headers.
44
+
45
+ > <Array(<AsyncTaskStatus>, Integer, Hash)> get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info(task_id)
46
+
47
+ ```ruby
48
+ begin
49
+ # Get task generation status
50
+ data, status_code, headers = api_instance.get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info(task_id)
51
+ p status_code # => 2xx
52
+ p headers # => { ... }
53
+ p data # => <AsyncTaskStatus>
54
+ rescue FactPulse::ApiError => e
55
+ puts "Error when calling AsyncTasksApi->get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info: #{e}"
56
+ end
57
+ ```
58
+
59
+ ### Parameters
60
+
61
+ | Name | Type | Description | Notes |
62
+ | ---- | ---- | ----------- | ----- |
63
+ | **task_id** | **String** | Celery task ID returned by async endpoints (UUID format) | |
64
+
65
+ ### Return type
66
+
67
+ [**AsyncTaskStatus**](AsyncTaskStatus.md)
68
+
69
+ ### Authorization
70
+
71
+ [HTTPBearer](../README.md#HTTPBearer)
72
+
73
+ ### HTTP request headers
74
+
75
+ - **Content-Type**: Not defined
76
+ - **Accept**: application/json
77
+
@@ -4,11 +4,11 @@
4
4
 
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
- | **piste_client_id** | **String** | PISTE Client ID (government API portal) | |
8
- | **piste_client_secret** | **String** | PISTE Client Secret | |
9
- | **chorus_pro_login** | **String** | Chorus Pro login | |
10
- | **chorus_pro_password** | **String** | Chorus Pro password | |
11
- | **sandbox** | **Boolean** | Use sandbox environment (true) or production (false) | [optional][default to true] |
7
+ | **piste_client_id** | **String** | | [optional] |
8
+ | **piste_client_secret** | **String** | | [optional] |
9
+ | **chorus_login** | **String** | | [optional] |
10
+ | **chorus_password** | **String** | | [optional] |
11
+ | **sandbox_mode** | **Boolean** | [MODE 2] Use sandbox mode (default: True) | [optional][default to true] |
12
12
 
13
13
  ## Example
14
14
 
@@ -18,9 +18,9 @@ require 'factpulse'
18
18
  instance = FactPulse::ChorusProCredentials.new(
19
19
  piste_client_id: null,
20
20
  piste_client_secret: null,
21
- chorus_pro_login: null,
22
- chorus_pro_password: null,
23
- sandbox: null
21
+ chorus_login: null,
22
+ chorus_password: null,
23
+ sandbox_mode: null
24
24
  )
25
25
  ```
26
26
 
@@ -5,7 +5,7 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **type** | **String** | | [optional][default to &#39;chorus_pro&#39;] |
8
- | **credentials** | [**FactureElectroniqueRestApiSchemasProcessingChorusProCredentials**](FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md) | | [optional] |
8
+ | **credentials** | [**ChorusProCredentials**](ChorusProCredentials.md) | | [optional] |
9
9
 
10
10
  ## Example
11
11
 
@@ -7,7 +7,8 @@
7
7
  | **report_id** | **String** | Report identifier (generated by caller) | |
8
8
  | **report_name** | **String** | | [optional] |
9
9
  | **transmission_type** | [**TransmissionTypeCode**](TransmissionTypeCode.md) | Transmission type: IN&#x3D;Initial, RE&#x3D;Rectificative (TT-4) | [optional] |
10
- | **sender** | [**ReportSender**](ReportSender.md) | Report sender/declarant | |
10
+ | **sender** | [**ReportSender**](ReportSender.md) | Report sender (PA transmitting the report) | |
11
+ | **issuer** | [**ReportIssuer**](ReportIssuer.md) | | [optional] |
11
12
  | **period** | [**ReportPeriod**](ReportPeriod.md) | Reporting period | |
12
13
  | **invoices** | [**Array&lt;InvoiceInput&gt;**](InvoiceInput.md) | | [optional] |
13
14
  | **transactions** | [**Array&lt;AggregatedTransactionInput&gt;**](AggregatedTransactionInput.md) | | [optional] |
@@ -24,6 +25,7 @@ instance = FactPulse::CreateAggregatedReportRequest.new(
24
25
  report_name: null,
25
26
  transmission_type: null,
26
27
  sender: null,
28
+ issuer: null,
27
29
  period: null,
28
30
  invoices: null,
29
31
  transactions: null,
@@ -8,7 +8,8 @@
8
8
  | **report_name** | **String** | | [optional] |
9
9
  | **flow_type** | [**EReportingFlowType**](EReportingFlowType.md) | E-Reporting flux type (for internal routing) | |
10
10
  | **transmission_type** | [**TransmissionTypeCode**](TransmissionTypeCode.md) | Transmission type (TT-4 TypeCode): IN&#x3D;Initial, RE&#x3D;Rectificative | [optional] |
11
- | **sender** | [**ReportSender**](ReportSender.md) | Report sender (declarant) | |
11
+ | **sender** | [**ReportSender**](ReportSender.md) | Report sender (PA transmitting the report) | |
12
+ | **issuer** | [**ReportIssuer**](ReportIssuer.md) | | [optional] |
12
13
  | **period** | [**ReportPeriod**](ReportPeriod.md) | Reporting period | |
13
14
  | **invoices** | [**Array&lt;InvoiceInput&gt;**](InvoiceInput.md) | | [optional] |
14
15
  | **transactions** | [**Array&lt;AggregatedTransactionInput&gt;**](AggregatedTransactionInput.md) | | [optional] |
@@ -26,6 +27,7 @@ instance = FactPulse::CreateEReportingRequest.new(
26
27
  flow_type: null,
27
28
  transmission_type: null,
28
29
  sender: null,
30
+ issuer: null,
29
31
  period: null,
30
32
  invoices: null,
31
33
  transactions: null,
@@ -0,0 +1,319 @@
1
+ # FactPulse::ElectronicSignatureApi
2
+
3
+ All URIs are relative to *https://factpulse.fr*
4
+
5
+ | Method | HTTP request | Description |
6
+ | ------ | ------------ | ----------- |
7
+ | [**generate_test_certificate_api_v1_processing_generate_test_certificate_post**](ElectronicSignatureApi.md#generate_test_certificate_api_v1_processing_generate_test_certificate_post) | **POST** /api/v1/processing/generate-test-certificate | Generate a self-signed X.509 test certificate |
8
+ | [**sign_pdf_api_v1_processing_sign_pdf_post**](ElectronicSignatureApi.md#sign_pdf_api_v1_processing_sign_pdf_post) | **POST** /api/v1/processing/sign-pdf | Sign a PDF with client&#39;s certificate (PAdES-B-LT) |
9
+ | [**sign_pdf_async_api_v1_processing_sign_pdf_async_post**](ElectronicSignatureApi.md#sign_pdf_async_api_v1_processing_sign_pdf_async_post) | **POST** /api/v1/processing/sign-pdf-async | Sign a PDF asynchronously (Celery) |
10
+ | [**validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post**](ElectronicSignatureApi.md#validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post) | **POST** /api/v1/processing/validate-pdf-signature | Validate electronic signatures of a PDF |
11
+
12
+
13
+ ## generate_test_certificate_api_v1_processing_generate_test_certificate_post
14
+
15
+ > <GenerateCertificateResponse> generate_test_certificate_api_v1_processing_generate_test_certificate_post(generate_certificate_request)
16
+
17
+ Generate a self-signed X.509 test certificate
18
+
19
+ 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)
20
+
21
+ ### Examples
22
+
23
+ ```ruby
24
+ require 'time'
25
+ require 'factpulse'
26
+ # setup authorization
27
+ FactPulse.configure do |config|
28
+ # Configure Bearer authorization: HTTPBearer
29
+ config.access_token = 'YOUR_BEARER_TOKEN'
30
+ end
31
+
32
+ api_instance = FactPulse::ElectronicSignatureApi.new
33
+ generate_certificate_request = FactPulse::GenerateCertificateRequest.new # GenerateCertificateRequest |
34
+
35
+ begin
36
+ # Generate a self-signed X.509 test certificate
37
+ result = api_instance.generate_test_certificate_api_v1_processing_generate_test_certificate_post(generate_certificate_request)
38
+ p result
39
+ rescue FactPulse::ApiError => e
40
+ puts "Error when calling ElectronicSignatureApi->generate_test_certificate_api_v1_processing_generate_test_certificate_post: #{e}"
41
+ end
42
+ ```
43
+
44
+ #### Using the generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info variant
45
+
46
+ This returns an Array which contains the response data, status code and headers.
47
+
48
+ > <Array(<GenerateCertificateResponse>, Integer, Hash)> generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info(generate_certificate_request)
49
+
50
+ ```ruby
51
+ begin
52
+ # Generate a self-signed X.509 test certificate
53
+ data, status_code, headers = api_instance.generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info(generate_certificate_request)
54
+ p status_code # => 2xx
55
+ p headers # => { ... }
56
+ p data # => <GenerateCertificateResponse>
57
+ rescue FactPulse::ApiError => e
58
+ puts "Error when calling ElectronicSignatureApi->generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info: #{e}"
59
+ end
60
+ ```
61
+
62
+ ### Parameters
63
+
64
+ | Name | Type | Description | Notes |
65
+ | ---- | ---- | ----------- | ----- |
66
+ | **generate_certificate_request** | [**GenerateCertificateRequest**](GenerateCertificateRequest.md) | | |
67
+
68
+ ### Return type
69
+
70
+ [**GenerateCertificateResponse**](GenerateCertificateResponse.md)
71
+
72
+ ### Authorization
73
+
74
+ [HTTPBearer](../README.md#HTTPBearer)
75
+
76
+ ### HTTP request headers
77
+
78
+ - **Content-Type**: application/json
79
+ - **Accept**: application/json
80
+
81
+
82
+ ## sign_pdf_api_v1_processing_sign_pdf_post
83
+
84
+ > Object sign_pdf_api_v1_processing_sign_pdf_post(pdf_file, opts)
85
+
86
+ Sign a PDF with client's certificate (PAdES-B-LT)
87
+
88
+ 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.
89
+
90
+ ### Examples
91
+
92
+ ```ruby
93
+ require 'time'
94
+ require 'factpulse'
95
+ # setup authorization
96
+ FactPulse.configure do |config|
97
+ # Configure Bearer authorization: HTTPBearer
98
+ config.access_token = 'YOUR_BEARER_TOKEN'
99
+ end
100
+
101
+ api_instance = FactPulse::ElectronicSignatureApi.new
102
+ pdf_file = File.new('/path/to/some/file') # File | PDF file to sign (will be processed and returned signed in base64)
103
+ opts = {
104
+ reason: 'reason_example', # String |
105
+ location: 'location_example', # String |
106
+ contact: 'contact_example', # String |
107
+ field_name: 'field_name_example', # String | PDF signature field name
108
+ use_pades_lt: true, # Boolean | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access.
109
+ use_timestamp: true # Boolean | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T)
110
+ }
111
+
112
+ begin
113
+ # Sign a PDF with client's certificate (PAdES-B-LT)
114
+ result = api_instance.sign_pdf_api_v1_processing_sign_pdf_post(pdf_file, opts)
115
+ p result
116
+ rescue FactPulse::ApiError => e
117
+ puts "Error when calling ElectronicSignatureApi->sign_pdf_api_v1_processing_sign_pdf_post: #{e}"
118
+ end
119
+ ```
120
+
121
+ #### Using the sign_pdf_api_v1_processing_sign_pdf_post_with_http_info variant
122
+
123
+ This returns an Array which contains the response data, status code and headers.
124
+
125
+ > <Array(Object, Integer, Hash)> sign_pdf_api_v1_processing_sign_pdf_post_with_http_info(pdf_file, opts)
126
+
127
+ ```ruby
128
+ begin
129
+ # Sign a PDF with client's certificate (PAdES-B-LT)
130
+ data, status_code, headers = api_instance.sign_pdf_api_v1_processing_sign_pdf_post_with_http_info(pdf_file, opts)
131
+ p status_code # => 2xx
132
+ p headers # => { ... }
133
+ p data # => Object
134
+ rescue FactPulse::ApiError => e
135
+ puts "Error when calling ElectronicSignatureApi->sign_pdf_api_v1_processing_sign_pdf_post_with_http_info: #{e}"
136
+ end
137
+ ```
138
+
139
+ ### Parameters
140
+
141
+ | Name | Type | Description | Notes |
142
+ | ---- | ---- | ----------- | ----- |
143
+ | **pdf_file** | **File** | PDF file to sign (will be processed and returned signed in base64) | |
144
+ | **reason** | **String** | | [optional] |
145
+ | **location** | **String** | | [optional] |
146
+ | **contact** | **String** | | [optional] |
147
+ | **field_name** | **String** | PDF signature field name | [optional][default to &#39;FactPulseSignature&#39;] |
148
+ | **use_pades_lt** | **Boolean** | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. | [optional][default to false] |
149
+ | **use_timestamp** | **Boolean** | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) | [optional][default to true] |
150
+
151
+ ### Return type
152
+
153
+ **Object**
154
+
155
+ ### Authorization
156
+
157
+ [HTTPBearer](../README.md#HTTPBearer)
158
+
159
+ ### HTTP request headers
160
+
161
+ - **Content-Type**: multipart/form-data
162
+ - **Accept**: application/json
163
+
164
+
165
+ ## sign_pdf_async_api_v1_processing_sign_pdf_async_post
166
+
167
+ > Object sign_pdf_async_api_v1_processing_sign_pdf_async_post(pdf_file, opts)
168
+
169
+ Sign a PDF asynchronously (Celery)
170
+
171
+ 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).
172
+
173
+ ### Examples
174
+
175
+ ```ruby
176
+ require 'time'
177
+ require 'factpulse'
178
+ # setup authorization
179
+ FactPulse.configure do |config|
180
+ # Configure Bearer authorization: HTTPBearer
181
+ config.access_token = 'YOUR_BEARER_TOKEN'
182
+ end
183
+
184
+ api_instance = FactPulse::ElectronicSignatureApi.new
185
+ pdf_file = File.new('/path/to/some/file') # File | PDF file to sign (processed asynchronously)
186
+ opts = {
187
+ callback_url: 'callback_url_example', # String |
188
+ webhook_mode: 'webhook_mode_example', # String | Webhook content delivery: 'inline' (base64 in payload) or 'download_url' (temporary URL, 1h TTL)
189
+ reason: 'reason_example', # String |
190
+ location: 'location_example', # String |
191
+ contact: 'contact_example', # String |
192
+ field_name: 'field_name_example', # String | PDF signature field name
193
+ use_pades_lt: true, # Boolean | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access.
194
+ use_timestamp: true # Boolean | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T)
195
+ }
196
+
197
+ begin
198
+ # Sign a PDF asynchronously (Celery)
199
+ result = api_instance.sign_pdf_async_api_v1_processing_sign_pdf_async_post(pdf_file, opts)
200
+ p result
201
+ rescue FactPulse::ApiError => e
202
+ puts "Error when calling ElectronicSignatureApi->sign_pdf_async_api_v1_processing_sign_pdf_async_post: #{e}"
203
+ end
204
+ ```
205
+
206
+ #### Using the sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info variant
207
+
208
+ This returns an Array which contains the response data, status code and headers.
209
+
210
+ > <Array(Object, Integer, Hash)> sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info(pdf_file, opts)
211
+
212
+ ```ruby
213
+ begin
214
+ # Sign a PDF asynchronously (Celery)
215
+ data, status_code, headers = api_instance.sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info(pdf_file, opts)
216
+ p status_code # => 2xx
217
+ p headers # => { ... }
218
+ p data # => Object
219
+ rescue FactPulse::ApiError => e
220
+ puts "Error when calling ElectronicSignatureApi->sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info: #{e}"
221
+ end
222
+ ```
223
+
224
+ ### Parameters
225
+
226
+ | Name | Type | Description | Notes |
227
+ | ---- | ---- | ----------- | ----- |
228
+ | **pdf_file** | **File** | PDF file to sign (processed asynchronously) | |
229
+ | **callback_url** | **String** | | [optional] |
230
+ | **webhook_mode** | **String** | Webhook content delivery: &#39;inline&#39; (base64 in payload) or &#39;download_url&#39; (temporary URL, 1h TTL) | [optional][default to &#39;inline&#39;] |
231
+ | **reason** | **String** | | [optional] |
232
+ | **location** | **String** | | [optional] |
233
+ | **contact** | **String** | | [optional] |
234
+ | **field_name** | **String** | PDF signature field name | [optional][default to &#39;FactPulseSignature&#39;] |
235
+ | **use_pades_lt** | **Boolean** | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. | [optional][default to false] |
236
+ | **use_timestamp** | **Boolean** | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) | [optional][default to true] |
237
+
238
+ ### Return type
239
+
240
+ **Object**
241
+
242
+ ### Authorization
243
+
244
+ [HTTPBearer](../README.md#HTTPBearer)
245
+
246
+ ### HTTP request headers
247
+
248
+ - **Content-Type**: multipart/form-data
249
+ - **Accept**: application/json
250
+
251
+
252
+ ## validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post
253
+
254
+ > Object validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post(pdf_file)
255
+
256
+ Validate electronic signatures of a PDF
257
+
258
+ 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.
259
+
260
+ ### Examples
261
+
262
+ ```ruby
263
+ require 'time'
264
+ require 'factpulse'
265
+ # setup authorization
266
+ FactPulse.configure do |config|
267
+ # Configure Bearer authorization: HTTPBearer
268
+ config.access_token = 'YOUR_BEARER_TOKEN'
269
+ end
270
+
271
+ api_instance = FactPulse::ElectronicSignatureApi.new
272
+ pdf_file = File.new('/path/to/some/file') # File | PDF file to validate (will be analyzed to detect and validate signatures)
273
+
274
+ begin
275
+ # Validate electronic signatures of a PDF
276
+ result = api_instance.validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post(pdf_file)
277
+ p result
278
+ rescue FactPulse::ApiError => e
279
+ puts "Error when calling ElectronicSignatureApi->validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post: #{e}"
280
+ end
281
+ ```
282
+
283
+ #### Using the validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info variant
284
+
285
+ This returns an Array which contains the response data, status code and headers.
286
+
287
+ > <Array(Object, Integer, Hash)> validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info(pdf_file)
288
+
289
+ ```ruby
290
+ begin
291
+ # Validate electronic signatures of a PDF
292
+ data, status_code, headers = api_instance.validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info(pdf_file)
293
+ p status_code # => 2xx
294
+ p headers # => { ... }
295
+ p data # => Object
296
+ rescue FactPulse::ApiError => e
297
+ puts "Error when calling ElectronicSignatureApi->validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info: #{e}"
298
+ end
299
+ ```
300
+
301
+ ### Parameters
302
+
303
+ | Name | Type | Description | Notes |
304
+ | ---- | ---- | ----------- | ----- |
305
+ | **pdf_file** | **File** | PDF file to validate (will be analyzed to detect and validate signatures) | |
306
+
307
+ ### Return type
308
+
309
+ **Object**
310
+
311
+ ### Authorization
312
+
313
+ [HTTPBearer](../README.md#HTTPBearer)
314
+
315
+ ### HTTP request headers
316
+
317
+ - **Content-Type**: multipart/form-data
318
+ - **Accept**: application/json
319
+
@@ -6,14 +6,16 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **invoice_id** | **String** | Identifiant de la facture (BT-1) | |
8
8
  | **invoice_issue_date** | **Date** | Date d&#39;émission de la facture (YYYY-MM-DD) | |
9
+ | **invoice_buyer_siren** | **String** | SIREN de l&#39;acheteur (destinataire du statut) | |
10
+ | **invoice_buyer_electronic_address** | **String** | Adresse électronique de l&#39;acheteur (MDT-73) | |
11
+ | **amount** | [**Amount**](Amount.md) | | |
12
+ | **currency** | **String** | Code devise ISO 4217 | [optional][default to &#39;EUR&#39;] |
9
13
  | **sender_siren** | **String** | | [optional] |
10
- | **flow_type** | **String** | Type de flux: SupplierInvoiceLC (acheteur) ou CustomerInvoiceLC (vendeur) | [optional][default to &#39;SupplierInvoiceLC&#39;] |
14
+ | **flow_type** | **String** | Type de flux (CustomerInvoiceLC pour facture émise) | [optional][default to &#39;CustomerInvoiceLC&#39;] |
11
15
  | **pdp_flow_service_url** | **String** | | [optional] |
12
16
  | **pdp_token_url** | **String** | | [optional] |
13
17
  | **pdp_client_id** | **String** | | [optional] |
14
18
  | **pdp_client_secret** | **String** | | [optional] |
15
- | **amount** | [**Amount**](Amount.md) | | |
16
- | **currency** | **String** | Code devise ISO 4217 | [optional][default to &#39;EUR&#39;] |
17
19
 
18
20
  ## Example
19
21
 
@@ -23,14 +25,16 @@ require 'factpulse'
23
25
  instance = FactPulse::EncaisseeRequest.new(
24
26
  invoice_id: null,
25
27
  invoice_issue_date: null,
28
+ invoice_buyer_siren: null,
29
+ invoice_buyer_electronic_address: null,
30
+ amount: null,
31
+ currency: null,
26
32
  sender_siren: null,
27
33
  flow_type: null,
28
34
  pdp_flow_service_url: null,
29
35
  pdp_token_url: null,
30
36
  pdp_client_id: null,
31
- pdp_client_secret: null,
32
- amount: null,
33
- currency: null
37
+ pdp_client_secret: null
34
38
  )
35
39
  ```
36
40