factpulse 4.0.3 → 4.1.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 (415) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -4
  3. data/Gemfile.lock +2 -2
  4. data/docs/AFNORErrorDetail.md +26 -0
  5. data/docs/AsyncTasksApi.md +225 -0
  6. data/docs/ClientManagementApi.md +20 -20
  7. data/docs/ConversionErrorResult.md +30 -0
  8. data/docs/ConversionExtractionInfo.md +20 -0
  9. data/docs/ConversionPendingInputResult.md +30 -0
  10. data/docs/ConversionSuccessTaskResult.md +36 -0
  11. data/docs/ConversionTaskStatus.md +22 -0
  12. data/docs/ConversionTaskStatusResult.md +85 -0
  13. data/docs/ConversionValidationFailedResult.md +34 -0
  14. data/docs/DownloadsApi.md +4 -4
  15. data/docs/FacturXConversionApi.md +75 -0
  16. data/docs/FacturXInvoice.md +1 -1
  17. data/docs/FacturXPDFXMLVerificationApi.md +75 -0
  18. data/docs/FacturXValidationApi.md +0 -81
  19. data/docs/FactureElectroniqueModelsInvoiceTypeCode.md +15 -0
  20. data/docs/Flux6InvoiceLifecycleCDARApi.md +82 -0
  21. data/docs/GenerationSuccessResult.md +24 -0
  22. data/docs/GenerationTaskStatus.md +22 -0
  23. data/docs/GenerationTaskStatusResult.md +79 -0
  24. data/docs/HealthApi.md +0 -124
  25. data/docs/{FacturXGenerationApi.md → InvoiceGenerationApi.md} +21 -21
  26. data/docs/InvoiceInput.md +1 -1
  27. data/docs/InvoiceLifecycle.md +24 -0
  28. data/docs/InvoicingFramework.md +1 -1
  29. data/docs/LifecycleEvent.md +38 -0
  30. data/docs/LifecycleResponse.md +22 -0
  31. data/docs/ParseApi.md +161 -0
  32. data/docs/ParseFacturXResponse.md +26 -0
  33. data/docs/ReferencesApi.md +74 -0
  34. data/docs/SignatureSuccessResult.md +34 -0
  35. data/docs/SignatureTaskStatus.md +22 -0
  36. data/docs/SignatureTaskStatusResult.md +79 -0
  37. data/docs/SimplifiedInvoiceData.md +1 -1
  38. data/docs/SubmitCompleteInvoiceResponse.md +3 -1
  39. data/docs/Supplier.md +1 -1
  40. data/docs/TaskErrorResult.md +26 -0
  41. data/docs/VATEXCodeInfo.md +24 -0
  42. data/docs/VATEXCodesResponse.md +22 -0
  43. data/docs/ValidationApi.md +88 -0
  44. data/docs/ValidationSuccessTaskResult.md +20 -0
  45. data/docs/ValidationTaskStatus.md +22 -0
  46. data/docs/ValidationTaskStatusResult.md +79 -0
  47. data/docs/VerificationSuccessTaskResult.md +20 -0
  48. data/docs/VerificationTypedTaskStatus.md +22 -0
  49. data/docs/VerificationTypedTaskStatusResult.md +79 -0
  50. data/factpulse.gemspec +3 -3
  51. data/lib/factpulse/api/afnorpdppa_api.rb +2 -2
  52. data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +2 -2
  53. data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +2 -2
  54. data/lib/factpulse/api/async_tasks_api.rb +191 -2
  55. data/lib/factpulse/api/chorus_pro_api.rb +2 -2
  56. data/lib/factpulse/api/client_management_api.rb +22 -22
  57. data/lib/factpulse/api/downloads_api.rb +6 -6
  58. data/lib/factpulse/api/electronic_signature_api.rb +2 -2
  59. data/lib/factpulse/api/factur_x_conversion_api.rb +65 -2
  60. data/lib/factpulse/api/factur_x_validation_api.rb +2 -77
  61. data/lib/factpulse/api/factur_xpdfxml_verification_api.rb +65 -2
  62. data/lib/factpulse/api/flux10_e_reporting_api.rb +2 -2
  63. data/lib/factpulse/api/flux6_invoice_lifecycle_cdar_api.rb +85 -2
  64. data/lib/factpulse/api/health_api.rb +2 -116
  65. data/lib/factpulse/api/{factur_x_generation_api.rb → invoice_generation_api.rb} +23 -23
  66. data/lib/factpulse/api/parse_api.rb +163 -0
  67. data/lib/factpulse/api/references_api.rb +82 -0
  68. data/lib/factpulse/api/validation_api.rb +97 -0
  69. data/lib/factpulse/api_client.rb +2 -2
  70. data/lib/factpulse/api_error.rb +2 -2
  71. data/lib/factpulse/api_model_base.rb +2 -2
  72. data/lib/factpulse/configuration.rb +2 -2
  73. data/lib/factpulse/models/acknowledgment_status.rb +2 -2
  74. data/lib/factpulse/models/action_code_info.rb +2 -2
  75. data/lib/factpulse/models/action_codes_response.rb +2 -2
  76. data/lib/factpulse/models/additional_document.rb +2 -2
  77. data/lib/factpulse/models/afnor_acknowledgement.rb +2 -2
  78. data/lib/factpulse/models/afnor_acknowledgement_detail.rb +2 -2
  79. data/lib/factpulse/models/afnor_address_edit.rb +2 -2
  80. data/lib/factpulse/models/afnor_address_patch.rb +2 -2
  81. data/lib/factpulse/models/afnor_address_put.rb +2 -2
  82. data/lib/factpulse/models/afnor_address_read.rb +2 -2
  83. data/lib/factpulse/models/afnor_algorithm.rb +2 -2
  84. data/lib/factpulse/models/afnor_contains_operator.rb +2 -2
  85. data/lib/factpulse/models/afnor_create_directory_line_body.rb +2 -2
  86. data/lib/factpulse/models/afnor_create_directory_line_body_addressing_information.rb +2 -2
  87. data/lib/factpulse/models/afnor_create_directory_line_body_period.rb +2 -2
  88. data/lib/factpulse/models/afnor_create_routing_code_body.rb +2 -2
  89. data/lib/factpulse/models/afnor_credentials.rb +2 -2
  90. data/lib/factpulse/models/afnor_destination.rb +2 -2
  91. data/lib/factpulse/models/afnor_diffusion_status.rb +2 -2
  92. data/lib/factpulse/models/afnor_directory_line_field.rb +2 -2
  93. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb +2 -2
  94. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb +2 -2
  95. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.rb +2 -2
  96. data/lib/factpulse/models/afnor_directory_line_post201_response.rb +2 -2
  97. data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +2 -2
  98. data/lib/factpulse/models/afnor_entity_type.rb +2 -2
  99. data/lib/factpulse/models/afnor_error.rb +2 -2
  100. data/lib/factpulse/models/afnor_error_detail.rb +237 -0
  101. data/lib/factpulse/models/afnor_facility_administrative_status.rb +2 -2
  102. data/lib/factpulse/models/afnor_facility_nature.rb +2 -2
  103. data/lib/factpulse/models/afnor_facility_payload_history.rb +2 -2
  104. data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +2 -2
  105. data/lib/factpulse/models/afnor_facility_payload_included.rb +2 -2
  106. data/lib/factpulse/models/afnor_facility_type.rb +2 -2
  107. data/lib/factpulse/models/afnor_flow.rb +2 -2
  108. data/lib/factpulse/models/afnor_flow_ack_status.rb +2 -2
  109. data/lib/factpulse/models/afnor_flow_direction.rb +2 -2
  110. data/lib/factpulse/models/afnor_flow_info.rb +2 -2
  111. data/lib/factpulse/models/afnor_flow_profile.rb +2 -2
  112. data/lib/factpulse/models/afnor_flow_syntax.rb +2 -2
  113. data/lib/factpulse/models/afnor_flow_type.rb +2 -2
  114. data/lib/factpulse/models/afnor_full_flow_info.rb +2 -2
  115. data/lib/factpulse/models/afnor_health_check_response.rb +2 -2
  116. data/lib/factpulse/models/afnor_legal_unit_administrative_status.rb +2 -2
  117. data/lib/factpulse/models/afnor_legal_unit_payload_history.rb +2 -2
  118. data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +2 -2
  119. data/lib/factpulse/models/afnor_legal_unit_payload_included_no_siren.rb +2 -2
  120. data/lib/factpulse/models/afnor_platform_status.rb +2 -2
  121. data/lib/factpulse/models/afnor_processing_rule.rb +2 -2
  122. data/lib/factpulse/models/afnor_reason_code.rb +2 -2
  123. data/lib/factpulse/models/afnor_reason_code_enum.rb +2 -2
  124. data/lib/factpulse/models/afnor_recipient_platform_type.rb +2 -2
  125. data/lib/factpulse/models/afnor_result.rb +2 -2
  126. data/lib/factpulse/models/afnor_routing_code_administrative_status.rb +2 -2
  127. data/lib/factpulse/models/afnor_routing_code_field.rb +2 -2
  128. data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +2 -2
  129. data/lib/factpulse/models/afnor_routing_code_post201_response.rb +2 -2
  130. data/lib/factpulse/models/afnor_routing_code_search.rb +2 -2
  131. data/lib/factpulse/models/afnor_routing_code_search_filters.rb +2 -2
  132. data/lib/factpulse/models/afnor_routing_code_search_filters_administrative_status.rb +2 -2
  133. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_code_name.rb +2 -2
  134. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +2 -2
  135. data/lib/factpulse/models/afnor_routing_code_search_post200_response.rb +2 -2
  136. data/lib/factpulse/models/afnor_routing_code_search_sorting_inner.rb +2 -2
  137. data/lib/factpulse/models/afnor_search_directory_line.rb +2 -2
  138. data/lib/factpulse/models/afnor_search_directory_line_filters.rb +2 -2
  139. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.rb +2 -2
  140. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +2 -2
  141. data/lib/factpulse/models/afnor_search_directory_line_sorting_inner.rb +2 -2
  142. data/lib/factpulse/models/afnor_search_flow_content.rb +2 -2
  143. data/lib/factpulse/models/afnor_search_flow_filters.rb +2 -2
  144. data/lib/factpulse/models/afnor_search_flow_params.rb +2 -2
  145. data/lib/factpulse/models/afnor_search_siren.rb +2 -2
  146. data/lib/factpulse/models/afnor_search_siren_filters.rb +2 -2
  147. data/lib/factpulse/models/afnor_search_siren_filters_administrative_status.rb +2 -2
  148. data/lib/factpulse/models/afnor_search_siren_filters_business_name.rb +2 -2
  149. data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +2 -2
  150. data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +2 -2
  151. data/lib/factpulse/models/afnor_search_siren_sorting_inner.rb +2 -2
  152. data/lib/factpulse/models/afnor_search_siret.rb +2 -2
  153. data/lib/factpulse/models/afnor_search_siret_filters.rb +2 -2
  154. data/lib/factpulse/models/afnor_search_siret_filters_address_lines.rb +2 -2
  155. data/lib/factpulse/models/afnor_search_siret_filters_administrative_status.rb +2 -2
  156. data/lib/factpulse/models/afnor_search_siret_filters_country_subdivision.rb +2 -2
  157. data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +2 -2
  158. data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +2 -2
  159. data/lib/factpulse/models/afnor_search_siret_filters_name.rb +2 -2
  160. data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +2 -2
  161. data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +2 -2
  162. data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +2 -2
  163. data/lib/factpulse/models/afnor_siren_field.rb +2 -2
  164. data/lib/factpulse/models/afnor_siren_search_post200_response.rb +2 -2
  165. data/lib/factpulse/models/afnor_siret_field.rb +2 -2
  166. data/lib/factpulse/models/afnor_siret_search_post200_response.rb +2 -2
  167. data/lib/factpulse/models/afnor_sorting_order.rb +2 -2
  168. data/lib/factpulse/models/afnor_strict_operator.rb +2 -2
  169. data/lib/factpulse/models/afnor_update_patch_directory_line_body.rb +2 -2
  170. data/lib/factpulse/models/afnor_update_patch_routing_code_body.rb +2 -2
  171. data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +2 -2
  172. data/lib/factpulse/models/afnor_webhook_callback_content.rb +2 -2
  173. data/lib/factpulse/models/aggregated_payment_input.rb +2 -2
  174. data/lib/factpulse/models/aggregated_transaction_input.rb +2 -2
  175. data/lib/factpulse/models/allowance_charge.rb +2 -2
  176. data/lib/factpulse/models/allowance_charge_reason_code.rb +2 -2
  177. data/lib/factpulse/models/allowance_reason_code.rb +2 -2
  178. data/lib/factpulse/models/allowance_total_amount.rb +2 -2
  179. data/lib/factpulse/models/amount.rb +2 -2
  180. data/lib/factpulse/models/amount1.rb +2 -2
  181. data/lib/factpulse/models/amount2.rb +2 -2
  182. data/lib/factpulse/models/amount_due.rb +2 -2
  183. data/lib/factpulse/models/api_error.rb +2 -2
  184. data/lib/factpulse/models/api_profile.rb +2 -2
  185. data/lib/factpulse/models/async_task_status.rb +2 -2
  186. data/lib/factpulse/models/base_amount.rb +2 -2
  187. data/lib/factpulse/models/bounding_box_schema.rb +2 -2
  188. data/lib/factpulse/models/buyercountry.rb +2 -2
  189. data/lib/factpulse/models/celery_status.rb +2 -2
  190. data/lib/factpulse/models/certificate_info_response.rb +2 -2
  191. data/lib/factpulse/models/charge_total_amount.rb +2 -2
  192. data/lib/factpulse/models/chorus_pro_credentials.rb +2 -2
  193. data/lib/factpulse/models/chorus_pro_destination.rb +2 -2
  194. data/lib/factpulse/models/chorus_pro_result.rb +2 -2
  195. data/lib/factpulse/models/client_activate_response.rb +2 -2
  196. data/lib/factpulse/models/client_create_request.rb +2 -2
  197. data/lib/factpulse/models/client_detail.rb +2 -2
  198. data/lib/factpulse/models/client_list_response.rb +2 -2
  199. data/lib/factpulse/models/client_summary.rb +2 -2
  200. data/lib/factpulse/models/client_update_request.rb +2 -2
  201. data/lib/factpulse/models/contact.rb +2 -2
  202. data/lib/factpulse/models/conversion_error_result.rb +277 -0
  203. data/lib/factpulse/models/conversion_extraction_info.rb +176 -0
  204. data/lib/factpulse/models/conversion_pending_input_result.rb +344 -0
  205. data/lib/factpulse/models/conversion_success_task_result.rb +355 -0
  206. data/lib/factpulse/models/conversion_task_status.rb +223 -0
  207. data/lib/factpulse/models/conversion_task_status_result.rb +59 -0
  208. data/lib/factpulse/models/conversion_validation_failed_result.rb +348 -0
  209. data/lib/factpulse/models/convert_resume_request.rb +2 -2
  210. data/lib/factpulse/models/convert_success_response.rb +2 -2
  211. data/lib/factpulse/models/convert_validation_failed_response.rb +2 -2
  212. data/lib/factpulse/models/country_code.rb +2 -2
  213. data/lib/factpulse/models/create_aggregated_report_request.rb +2 -2
  214. data/lib/factpulse/models/create_cdar_request.rb +2 -2
  215. data/lib/factpulse/models/create_e_reporting_request.rb +2 -2
  216. data/lib/factpulse/models/currency.rb +2 -2
  217. data/lib/factpulse/models/currency_code.rb +2 -2
  218. data/lib/factpulse/models/delivery_party.rb +2 -2
  219. data/lib/factpulse/models/destination.rb +2 -2
  220. data/lib/factpulse/models/doc_type.rb +2 -2
  221. data/lib/factpulse/models/document_type_info.rb +2 -2
  222. data/lib/factpulse/models/e_reporting_flow_type.rb +2 -2
  223. data/lib/factpulse/models/e_reporting_validation_error.rb +2 -2
  224. data/lib/factpulse/models/electronic_address.rb +2 -2
  225. data/lib/factpulse/models/encaisseamount.rb +2 -2
  226. data/lib/factpulse/models/encaisseamount1.rb +2 -2
  227. data/lib/factpulse/models/encaissee_request.rb +2 -2
  228. data/lib/factpulse/models/enriched_invoice_info.rb +2 -2
  229. data/lib/factpulse/models/error_level.rb +2 -2
  230. data/lib/factpulse/models/error_source.rb +2 -2
  231. data/lib/factpulse/models/extraction_info.rb +2 -2
  232. data/lib/factpulse/models/factur_x_invoice.rb +3 -19
  233. data/lib/factpulse/models/factur_xpdf_info.rb +2 -2
  234. data/lib/factpulse/models/facture_electronique_models_invoice_type_code.rb +54 -0
  235. data/lib/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb +2 -2
  236. data/lib/factpulse/models/facture_electronique_rest_api_schemas_validation_validation_error_response.rb +2 -2
  237. data/lib/factpulse/models/field_status.rb +2 -2
  238. data/lib/factpulse/models/file_info.rb +2 -2
  239. data/lib/factpulse/models/files_info.rb +2 -2
  240. data/lib/factpulse/models/flow_direction.rb +2 -2
  241. data/lib/factpulse/models/flow_profile.rb +2 -2
  242. data/lib/factpulse/models/flow_summary.rb +2 -2
  243. data/lib/factpulse/models/flow_syntax.rb +2 -2
  244. data/lib/factpulse/models/flow_type.rb +2 -2
  245. data/lib/factpulse/models/generate_aggregated_report_response.rb +2 -2
  246. data/lib/factpulse/models/generate_cdar_response.rb +2 -2
  247. data/lib/factpulse/models/generate_certificate_request.rb +2 -2
  248. data/lib/factpulse/models/generate_certificate_response.rb +2 -2
  249. data/lib/factpulse/models/generate_e_reporting_response.rb +2 -2
  250. data/lib/factpulse/models/generation_success_result.rb +230 -0
  251. data/lib/factpulse/models/generation_task_status.rb +223 -0
  252. data/lib/factpulse/models/generation_task_status_result.rb +55 -0
  253. data/lib/factpulse/models/get_chorus_pro_id_request.rb +2 -2
  254. data/lib/factpulse/models/get_chorus_pro_id_response.rb +2 -2
  255. data/lib/factpulse/models/get_invoice_request.rb +2 -2
  256. data/lib/factpulse/models/get_invoice_response.rb +2 -2
  257. data/lib/factpulse/models/get_structure_request.rb +2 -2
  258. data/lib/factpulse/models/get_structure_response.rb +2 -2
  259. data/lib/factpulse/models/global_allowance_amount.rb +2 -2
  260. data/lib/factpulse/models/gross_unit_price.rb +2 -2
  261. data/lib/factpulse/models/http_validation_error.rb +2 -2
  262. data/lib/factpulse/models/incoming_invoice.rb +2 -2
  263. data/lib/factpulse/models/incoming_supplier.rb +2 -2
  264. data/lib/factpulse/models/invoice_format.rb +2 -2
  265. data/lib/factpulse/models/invoice_input.rb +3 -3
  266. data/lib/factpulse/models/invoice_lifecycle.rb +215 -0
  267. data/lib/factpulse/models/invoice_line.rb +2 -2
  268. data/lib/factpulse/models/invoice_line_allowance_amount.rb +2 -2
  269. data/lib/factpulse/models/invoice_note.rb +2 -2
  270. data/lib/factpulse/models/invoice_payment_input.rb +2 -2
  271. data/lib/factpulse/models/invoice_references.rb +2 -2
  272. data/lib/factpulse/models/invoice_status.rb +2 -2
  273. data/lib/factpulse/models/invoice_totals.rb +2 -2
  274. data/lib/factpulse/models/invoice_totals_prepayment.rb +2 -2
  275. data/lib/factpulse/models/invoice_type_code.rb +8 -19
  276. data/lib/factpulse/models/invoice_type_code_output.rb +2 -2
  277. data/lib/factpulse/models/invoicing_framework.rb +3 -20
  278. data/lib/factpulse/models/invoicing_framework_code.rb +2 -2
  279. data/lib/factpulse/models/issuer_role_code.rb +2 -2
  280. data/lib/factpulse/models/key_rotation_request.rb +2 -2
  281. data/lib/factpulse/models/key_rotation_response.rb +2 -2
  282. data/lib/factpulse/models/lifecycle_event.rb +300 -0
  283. data/lib/factpulse/models/lifecycle_response.rb +205 -0
  284. data/lib/factpulse/models/line_net_amount.rb +2 -2
  285. data/lib/factpulse/models/line_sub_type.rb +2 -2
  286. data/lib/factpulse/models/line_total_amount.rb +2 -2
  287. data/lib/factpulse/models/location_inner.rb +2 -2
  288. data/lib/factpulse/models/mandatory_note_schema.rb +2 -2
  289. data/lib/factpulse/models/manual_rate.rb +2 -2
  290. data/lib/factpulse/models/manual_vat_rate.rb +2 -2
  291. data/lib/factpulse/models/missing_field.rb +2 -2
  292. data/lib/factpulse/models/operation_nature.rb +2 -2
  293. data/lib/factpulse/models/output_format.rb +5 -3
  294. data/lib/factpulse/models/page_dimensions_schema.rb +2 -2
  295. data/lib/factpulse/models/parse_factur_x_response.rb +249 -0
  296. data/lib/factpulse/models/payee.rb +2 -2
  297. data/lib/factpulse/models/payment_amount_by_rate.rb +2 -2
  298. data/lib/factpulse/models/payment_card.rb +2 -2
  299. data/lib/factpulse/models/payment_means.rb +2 -2
  300. data/lib/factpulse/models/pdf_validation_result_api.rb +2 -2
  301. data/lib/factpulse/models/pdp_config_response.rb +2 -2
  302. data/lib/factpulse/models/pdp_config_update_request.rb +2 -2
  303. data/lib/factpulse/models/pdp_credentials.rb +2 -2
  304. data/lib/factpulse/models/percentage.rb +2 -2
  305. data/lib/factpulse/models/postal_address.rb +2 -2
  306. data/lib/factpulse/models/price_allowance_amount.rb +2 -2
  307. data/lib/factpulse/models/price_basis_quantity.rb +2 -2
  308. data/lib/factpulse/models/processing_options.rb +2 -2
  309. data/lib/factpulse/models/processing_rule.rb +2 -2
  310. data/lib/factpulse/models/product_characteristic.rb +2 -2
  311. data/lib/factpulse/models/product_classification.rb +2 -2
  312. data/lib/factpulse/models/quantity.rb +2 -2
  313. data/lib/factpulse/models/rate.rb +2 -2
  314. data/lib/factpulse/models/rate1.rb +2 -2
  315. data/lib/factpulse/models/reason_code_info.rb +2 -2
  316. data/lib/factpulse/models/reason_codes_response.rb +2 -2
  317. data/lib/factpulse/models/recipient.rb +2 -2
  318. data/lib/factpulse/models/recipient_input.rb +2 -2
  319. data/lib/factpulse/models/refusee_request.rb +2 -2
  320. data/lib/factpulse/models/report_issuer.rb +2 -2
  321. data/lib/factpulse/models/report_period.rb +2 -2
  322. data/lib/factpulse/models/report_sender.rb +2 -2
  323. data/lib/factpulse/models/rounding_amount.rb +2 -2
  324. data/lib/factpulse/models/schematron_validation_error.rb +2 -2
  325. data/lib/factpulse/models/scheme_id.rb +2 -2
  326. data/lib/factpulse/models/search_flow_request.rb +2 -2
  327. data/lib/factpulse/models/search_flow_response.rb +2 -2
  328. data/lib/factpulse/models/search_services_response.rb +2 -2
  329. data/lib/factpulse/models/search_structure_request.rb +2 -2
  330. data/lib/factpulse/models/search_structure_response.rb +2 -2
  331. data/lib/factpulse/models/secret_status.rb +2 -2
  332. data/lib/factpulse/models/sellercountry.rb +2 -2
  333. data/lib/factpulse/models/signature_info.rb +2 -2
  334. data/lib/factpulse/models/signature_info_api.rb +2 -2
  335. data/lib/factpulse/models/signature_parameters.rb +2 -2
  336. data/lib/factpulse/models/signature_success_result.rb +394 -0
  337. data/lib/factpulse/models/signature_task_status.rb +223 -0
  338. data/lib/factpulse/models/signature_task_status_result.rb +55 -0
  339. data/lib/factpulse/models/simplified_cdar_response.rb +2 -2
  340. data/lib/factpulse/models/simplified_invoice_data.rb +3 -3
  341. data/lib/factpulse/models/status_code_info.rb +2 -2
  342. data/lib/factpulse/models/status_codes_response.rb +2 -2
  343. data/lib/factpulse/models/structure_info.rb +2 -2
  344. data/lib/factpulse/models/structure_parameters.rb +2 -2
  345. data/lib/factpulse/models/structure_service.rb +2 -2
  346. data/lib/factpulse/models/submission_mode.rb +2 -2
  347. data/lib/factpulse/models/submit_aggregated_report_request.rb +2 -2
  348. data/lib/factpulse/models/submit_cdar_request.rb +2 -2
  349. data/lib/factpulse/models/submit_cdar_response.rb +2 -2
  350. data/lib/factpulse/models/submit_cdarxml_request.rb +2 -2
  351. data/lib/factpulse/models/submit_complete_invoice_request.rb +2 -2
  352. data/lib/factpulse/models/submit_complete_invoice_response.rb +33 -4
  353. data/lib/factpulse/models/submit_e_reporting_request.rb +2 -2
  354. data/lib/factpulse/models/submit_e_reporting_response.rb +2 -2
  355. data/lib/factpulse/models/submit_flow_request.rb +2 -2
  356. data/lib/factpulse/models/submit_flow_response.rb +2 -2
  357. data/lib/factpulse/models/submit_gross_amount.rb +2 -2
  358. data/lib/factpulse/models/submit_invoice_request.rb +2 -2
  359. data/lib/factpulse/models/submit_invoice_response.rb +2 -2
  360. data/lib/factpulse/models/submit_net_amount.rb +2 -2
  361. data/lib/factpulse/models/submit_vat_amount.rb +2 -2
  362. data/lib/factpulse/models/supplementary_attachment.rb +2 -2
  363. data/lib/factpulse/models/supplier.rb +4 -18
  364. data/lib/factpulse/models/task_error_result.rb +257 -0
  365. data/lib/factpulse/models/task_response.rb +2 -2
  366. data/lib/factpulse/models/tax_breakdown_input.rb +2 -2
  367. data/lib/factpulse/models/tax_due_date_type.rb +2 -2
  368. data/lib/factpulse/models/tax_representative.rb +2 -2
  369. data/lib/factpulse/models/taxable_amount.rb +2 -2
  370. data/lib/factpulse/models/taxableamount.rb +2 -2
  371. data/lib/factpulse/models/taxamount.rb +2 -2
  372. data/lib/factpulse/models/taxamount1.rb +2 -2
  373. data/lib/factpulse/models/taxamount2.rb +2 -2
  374. data/lib/factpulse/models/taxexclusiveamount.rb +2 -2
  375. data/lib/factpulse/models/taxexclusiveamount1.rb +2 -2
  376. data/lib/factpulse/models/total_gross_amount.rb +2 -2
  377. data/lib/factpulse/models/total_net_amount.rb +2 -2
  378. data/lib/factpulse/models/total_vat_amount.rb +2 -2
  379. data/lib/factpulse/models/transaction_category.rb +2 -2
  380. data/lib/factpulse/models/transmission_type_code.rb +2 -2
  381. data/lib/factpulse/models/unit_net_price.rb +2 -2
  382. data/lib/factpulse/models/unit_of_measure.rb +17 -3
  383. data/lib/factpulse/models/validate_cdar_request.rb +2 -2
  384. data/lib/factpulse/models/validate_cdar_response.rb +2 -2
  385. data/lib/factpulse/models/validate_e_reporting_request.rb +2 -2
  386. data/lib/factpulse/models/validate_e_reporting_response.rb +2 -2
  387. data/lib/factpulse/models/validation_error.rb +2 -2
  388. data/lib/factpulse/models/validation_error_detail.rb +2 -2
  389. data/lib/factpulse/models/validation_error_response.rb +2 -2
  390. data/lib/factpulse/models/validation_info.rb +2 -2
  391. data/lib/factpulse/models/validation_success_response.rb +2 -2
  392. data/lib/factpulse/models/validation_success_task_result.rb +210 -0
  393. data/lib/factpulse/models/validation_task_status.rb +223 -0
  394. data/lib/factpulse/models/validation_task_status_result.rb +55 -0
  395. data/lib/factpulse/models/vat_accounting_code.rb +2 -2
  396. data/lib/factpulse/models/vat_amount.rb +2 -2
  397. data/lib/factpulse/models/vat_category.rb +2 -2
  398. data/lib/factpulse/models/vat_line.rb +2 -2
  399. data/lib/factpulse/models/vat_point_date_code.rb +2 -2
  400. data/lib/factpulse/models/vat_rate.rb +2 -2
  401. data/lib/factpulse/models/vatex_code_info.rb +247 -0
  402. data/lib/factpulse/models/vatex_codes_response.rb +204 -0
  403. data/lib/factpulse/models/verification_success_response.rb +2 -2
  404. data/lib/factpulse/models/verification_success_task_result.rb +210 -0
  405. data/lib/factpulse/models/verification_typed_task_status.rb +223 -0
  406. data/lib/factpulse/models/verification_typed_task_status_result.rb +55 -0
  407. data/lib/factpulse/models/verified_field_schema.rb +2 -2
  408. data/lib/factpulse/models/webhook_secret_delete_response.rb +2 -2
  409. data/lib/factpulse/models/webhook_secret_generate_response.rb +2 -2
  410. data/lib/factpulse/models/webhook_secret_status_response.rb +2 -2
  411. data/lib/factpulse/version.rb +3 -3
  412. data/lib/factpulse.rb +34 -4
  413. metadata +121 -61
  414. data/docs/FactureElectroniqueRestApiSchemasEreportingInvoiceTypeCode.md +0 -15
  415. data/lib/factpulse/models/facture_electronique_rest_api_schemas_ereporting_invoice_type_code.rb +0 -43
@@ -1,12 +1,12 @@
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 - 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/
4
+ # REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - **Formats**: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - **Profiles** (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - **UBL**: Always EN16931 compliant - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - **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
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.20.0-SNAPSHOT
9
+ Generator version: 7.21.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -1,12 +1,12 @@
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 - 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/
4
+ # REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - **Formats**: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - **Profiles** (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - **UBL**: Always EN16931 compliant - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - **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
8
8
  Generated by: https://openapi-generator.tech
9
- Generator version: 7.20.0-SNAPSHOT
9
+ Generator version: 7.21.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -0,0 +1,394 @@
1
+ =begin
2
+ #FactPulse REST API
3
+
4
+ # REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - **Formats**: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - **Profiles** (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - **UBL**: Always EN16931 compliant - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - **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.21.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FactPulse
17
+ # Successful result from task_sign_pdf_from_bytes.
18
+ class SignatureSuccessResult < ApiModelBase
19
+ attr_accessor :status
20
+
21
+ attr_accessor :content_b64
22
+
23
+ attr_accessor :filename
24
+
25
+ attr_accessor :size_bytes
26
+
27
+ attr_accessor :is_signed
28
+
29
+ attr_accessor :signature_count
30
+
31
+ attr_accessor :signer_cn
32
+
33
+ attr_accessor :signing_date
34
+
35
+ attr_accessor :validation_details
36
+
37
+ class EnumAttributeValidator
38
+ attr_reader :datatype
39
+ attr_reader :allowable_values
40
+
41
+ def initialize(datatype, allowable_values)
42
+ @allowable_values = allowable_values.map do |value|
43
+ case datatype.to_s
44
+ when /Integer/i
45
+ value.to_i
46
+ when /Float/i
47
+ value.to_f
48
+ else
49
+ value
50
+ end
51
+ end
52
+ end
53
+
54
+ def valid?(value)
55
+ !value || allowable_values.include?(value)
56
+ end
57
+ end
58
+
59
+ # Attribute mapping from ruby-style variable name to JSON key.
60
+ def self.attribute_map
61
+ {
62
+ :'status' => :'status',
63
+ :'content_b64' => :'content_b64',
64
+ :'filename' => :'filename',
65
+ :'size_bytes' => :'size_bytes',
66
+ :'is_signed' => :'is_signed',
67
+ :'signature_count' => :'signature_count',
68
+ :'signer_cn' => :'signer_cn',
69
+ :'signing_date' => :'signing_date',
70
+ :'validation_details' => :'validation_details'
71
+ }
72
+ end
73
+
74
+ # Returns attribute mapping this model knows about
75
+ def self.acceptable_attribute_map
76
+ attribute_map
77
+ end
78
+
79
+ # Returns all the JSON keys this model knows about
80
+ def self.acceptable_attributes
81
+ acceptable_attribute_map.values
82
+ end
83
+
84
+ # Attribute type mapping.
85
+ def self.openapi_types
86
+ {
87
+ :'status' => :'String',
88
+ :'content_b64' => :'String',
89
+ :'filename' => :'String',
90
+ :'size_bytes' => :'Integer',
91
+ :'is_signed' => :'Boolean',
92
+ :'signature_count' => :'Integer',
93
+ :'signer_cn' => :'String',
94
+ :'signing_date' => :'String',
95
+ :'validation_details' => :'Hash<String, Object>'
96
+ }
97
+ end
98
+
99
+ # List of attributes with nullable: true
100
+ def self.openapi_nullable
101
+ Set.new([
102
+ ])
103
+ end
104
+
105
+ # Initializes the object
106
+ # @param [Hash] attributes Model attributes in the form of hash
107
+ def initialize(attributes = {})
108
+ if (!attributes.is_a?(Hash))
109
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FactPulse::SignatureSuccessResult` initialize method"
110
+ end
111
+
112
+ # check to see if the attribute exists and convert string to symbol for hash key
113
+ acceptable_attribute_map = self.class.acceptable_attribute_map
114
+ attributes = attributes.each_with_object({}) { |(k, v), h|
115
+ if (!acceptable_attribute_map.key?(k.to_sym))
116
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FactPulse::SignatureSuccessResult`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
117
+ end
118
+ h[k.to_sym] = v
119
+ }
120
+
121
+ if attributes.key?(:'status')
122
+ self.status = attributes[:'status']
123
+ else
124
+ self.status = 'SUCCESS'
125
+ end
126
+
127
+ if attributes.key?(:'content_b64')
128
+ self.content_b64 = attributes[:'content_b64']
129
+ else
130
+ self.content_b64 = nil
131
+ end
132
+
133
+ if attributes.key?(:'filename')
134
+ self.filename = attributes[:'filename']
135
+ else
136
+ self.filename = nil
137
+ end
138
+
139
+ if attributes.key?(:'size_bytes')
140
+ self.size_bytes = attributes[:'size_bytes']
141
+ else
142
+ self.size_bytes = nil
143
+ end
144
+
145
+ if attributes.key?(:'is_signed')
146
+ self.is_signed = attributes[:'is_signed']
147
+ else
148
+ self.is_signed = nil
149
+ end
150
+
151
+ if attributes.key?(:'signature_count')
152
+ self.signature_count = attributes[:'signature_count']
153
+ else
154
+ self.signature_count = nil
155
+ end
156
+
157
+ if attributes.key?(:'signer_cn')
158
+ self.signer_cn = attributes[:'signer_cn']
159
+ else
160
+ self.signer_cn = nil
161
+ end
162
+
163
+ if attributes.key?(:'signing_date')
164
+ self.signing_date = attributes[:'signing_date']
165
+ else
166
+ self.signing_date = nil
167
+ end
168
+
169
+ if attributes.key?(:'validation_details')
170
+ if (value = attributes[:'validation_details']).is_a?(Hash)
171
+ self.validation_details = value
172
+ end
173
+ else
174
+ self.validation_details = nil
175
+ end
176
+ end
177
+
178
+ # Show invalid properties with the reasons. Usually used together with valid?
179
+ # @return Array for valid properties with the reasons
180
+ def list_invalid_properties
181
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
182
+ invalid_properties = Array.new
183
+ if @content_b64.nil?
184
+ invalid_properties.push('invalid value for "content_b64", content_b64 cannot be nil.')
185
+ end
186
+
187
+ if @filename.nil?
188
+ invalid_properties.push('invalid value for "filename", filename cannot be nil.')
189
+ end
190
+
191
+ if @size_bytes.nil?
192
+ invalid_properties.push('invalid value for "size_bytes", size_bytes cannot be nil.')
193
+ end
194
+
195
+ if @is_signed.nil?
196
+ invalid_properties.push('invalid value for "is_signed", is_signed cannot be nil.')
197
+ end
198
+
199
+ if @signature_count.nil?
200
+ invalid_properties.push('invalid value for "signature_count", signature_count cannot be nil.')
201
+ end
202
+
203
+ if @signer_cn.nil?
204
+ invalid_properties.push('invalid value for "signer_cn", signer_cn cannot be nil.')
205
+ end
206
+
207
+ if @signing_date.nil?
208
+ invalid_properties.push('invalid value for "signing_date", signing_date cannot be nil.')
209
+ end
210
+
211
+ if @validation_details.nil?
212
+ invalid_properties.push('invalid value for "validation_details", validation_details cannot be nil.')
213
+ end
214
+
215
+ invalid_properties
216
+ end
217
+
218
+ # Check to see if the all the properties in the model are valid
219
+ # @return true if the model is valid
220
+ def valid?
221
+ warn '[DEPRECATED] the `valid?` method is obsolete'
222
+ status_validator = EnumAttributeValidator.new('String', ["SUCCESS"])
223
+ return false unless status_validator.valid?(@status)
224
+ return false if @content_b64.nil?
225
+ return false if @filename.nil?
226
+ return false if @size_bytes.nil?
227
+ return false if @is_signed.nil?
228
+ return false if @signature_count.nil?
229
+ return false if @signer_cn.nil?
230
+ return false if @signing_date.nil?
231
+ return false if @validation_details.nil?
232
+ true
233
+ end
234
+
235
+ # Custom attribute writer method checking allowed values (enum).
236
+ # @param [Object] status Object to be assigned
237
+ def status=(status)
238
+ validator = EnumAttributeValidator.new('String', ["SUCCESS"])
239
+ unless validator.valid?(status)
240
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
241
+ end
242
+ @status = status
243
+ end
244
+
245
+ # Custom attribute writer method with validation
246
+ # @param [Object] content_b64 Value to be assigned
247
+ def content_b64=(content_b64)
248
+ if content_b64.nil?
249
+ fail ArgumentError, 'content_b64 cannot be nil'
250
+ end
251
+
252
+ @content_b64 = content_b64
253
+ end
254
+
255
+ # Custom attribute writer method with validation
256
+ # @param [Object] filename Value to be assigned
257
+ def filename=(filename)
258
+ if filename.nil?
259
+ fail ArgumentError, 'filename cannot be nil'
260
+ end
261
+
262
+ @filename = filename
263
+ end
264
+
265
+ # Custom attribute writer method with validation
266
+ # @param [Object] size_bytes Value to be assigned
267
+ def size_bytes=(size_bytes)
268
+ if size_bytes.nil?
269
+ fail ArgumentError, 'size_bytes cannot be nil'
270
+ end
271
+
272
+ @size_bytes = size_bytes
273
+ end
274
+
275
+ # Custom attribute writer method with validation
276
+ # @param [Object] is_signed Value to be assigned
277
+ def is_signed=(is_signed)
278
+ if is_signed.nil?
279
+ fail ArgumentError, 'is_signed cannot be nil'
280
+ end
281
+
282
+ @is_signed = is_signed
283
+ end
284
+
285
+ # Custom attribute writer method with validation
286
+ # @param [Object] signature_count Value to be assigned
287
+ def signature_count=(signature_count)
288
+ if signature_count.nil?
289
+ fail ArgumentError, 'signature_count cannot be nil'
290
+ end
291
+
292
+ @signature_count = signature_count
293
+ end
294
+
295
+ # Custom attribute writer method with validation
296
+ # @param [Object] signer_cn Value to be assigned
297
+ def signer_cn=(signer_cn)
298
+ if signer_cn.nil?
299
+ fail ArgumentError, 'signer_cn cannot be nil'
300
+ end
301
+
302
+ @signer_cn = signer_cn
303
+ end
304
+
305
+ # Custom attribute writer method with validation
306
+ # @param [Object] signing_date Value to be assigned
307
+ def signing_date=(signing_date)
308
+ if signing_date.nil?
309
+ fail ArgumentError, 'signing_date cannot be nil'
310
+ end
311
+
312
+ @signing_date = signing_date
313
+ end
314
+
315
+ # Custom attribute writer method with validation
316
+ # @param [Object] validation_details Value to be assigned
317
+ def validation_details=(validation_details)
318
+ if validation_details.nil?
319
+ fail ArgumentError, 'validation_details cannot be nil'
320
+ end
321
+
322
+ @validation_details = validation_details
323
+ end
324
+
325
+ # Checks equality by comparing each attribute.
326
+ # @param [Object] Object to be compared
327
+ def ==(o)
328
+ return true if self.equal?(o)
329
+ self.class == o.class &&
330
+ status == o.status &&
331
+ content_b64 == o.content_b64 &&
332
+ filename == o.filename &&
333
+ size_bytes == o.size_bytes &&
334
+ is_signed == o.is_signed &&
335
+ signature_count == o.signature_count &&
336
+ signer_cn == o.signer_cn &&
337
+ signing_date == o.signing_date &&
338
+ validation_details == o.validation_details
339
+ end
340
+
341
+ # @see the `==` method
342
+ # @param [Object] Object to be compared
343
+ def eql?(o)
344
+ self == o
345
+ end
346
+
347
+ # Calculates hash code according to all attributes.
348
+ # @return [Integer] Hash code
349
+ def hash
350
+ [status, content_b64, filename, size_bytes, is_signed, signature_count, signer_cn, signing_date, validation_details].hash
351
+ end
352
+
353
+ # Builds the object from hash
354
+ # @param [Hash] attributes Model attributes in the form of hash
355
+ # @return [Object] Returns the model itself
356
+ def self.build_from_hash(attributes)
357
+ return nil unless attributes.is_a?(Hash)
358
+ attributes = attributes.transform_keys(&:to_sym)
359
+ transformed_hash = {}
360
+ openapi_types.each_pair do |key, type|
361
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
362
+ transformed_hash["#{key}"] = nil
363
+ elsif type =~ /\AArray<(.*)>/i
364
+ # check to ensure the input is an array given that the attribute
365
+ # is documented as an array but the input is not
366
+ if attributes[attribute_map[key]].is_a?(Array)
367
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
368
+ end
369
+ elsif !attributes[attribute_map[key]].nil?
370
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
371
+ end
372
+ end
373
+ new(transformed_hash)
374
+ end
375
+
376
+ # Returns the object in the form of hash
377
+ # @return [Hash] Returns the object in the form of hash
378
+ def to_hash
379
+ hash = {}
380
+ self.class.attribute_map.each_pair do |attr, param|
381
+ value = self.send(attr)
382
+ if value.nil?
383
+ is_nullable = self.class.openapi_nullable.include?(attr)
384
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
385
+ end
386
+
387
+ hash[param] = _to_hash(value)
388
+ end
389
+ hash
390
+ end
391
+
392
+ end
393
+
394
+ end