factpulse 4.1.2 → 4.4.0

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 (485) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -4
  3. data/Gemfile.lock +12 -10
  4. data/README.md +7 -1
  5. data/docs/AFNORContainsOrStartWithOperator.md +15 -0
  6. data/docs/{AFNORFacilityNature.md → AFNORContainsOrStrictOperator.md} +2 -2
  7. data/docs/AFNORContainsOrStrictOrStartWithOperator.md +15 -0
  8. data/docs/AFNORCoreFlowInfo.md +26 -0
  9. data/docs/{AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCode.md → AFNORDirectoryLinePayloadLegalUnitFacilityRoutingCode.md} +9 -5
  10. data/docs/AFNORDirectoryLinePayloadStatusLegalUnitFacilityRoutingCode.md +36 -0
  11. data/docs/AFNORDirectoryLineSearchPost200Response.md +2 -2
  12. data/docs/{AFNORContainsOperator.md → AFNORDirectoryLineStatus.md} +2 -2
  13. data/docs/AFNORError.md +4 -4
  14. data/docs/AFNORFacilityPayloadHistory.md +3 -3
  15. data/docs/AFNORFacilityPayloadIncluded.md +2 -2
  16. data/docs/AFNORFlow.md +18 -16
  17. data/docs/AFNORFlowExtension.md +26 -0
  18. data/docs/AFNORFlowInfo.md +3 -3
  19. data/docs/AFNORFlowInfoExtension.md +18 -0
  20. data/docs/AFNORFullFlowInfo.md +8 -8
  21. data/docs/AFNORFullFlowInfoExtension.md +20 -0
  22. data/docs/AFNORLegalUnitPayloadHistory.md +3 -1
  23. data/docs/AFNORLegalUnitPayloadIncluded.md +3 -1
  24. data/docs/AFNORPDPPADirectoryServiceApi.md +4 -648
  25. data/docs/AFNORPDPPAFlowServiceApi.md +190 -1
  26. data/docs/AFNORRoutingCodeSearch.md +3 -3
  27. data/docs/AFNORRoutingCodeSearchFiltersRoutingCodeName.md +1 -1
  28. data/docs/AFNORRoutingCodeSearchFiltersRoutingIdentifier.md +1 -1
  29. data/docs/AFNORRoutingCodeSearchPost200Response.md +1 -1
  30. data/docs/AFNORSearchDirectoryLine.md +5 -3
  31. data/docs/AFNORSearchDirectoryLineFiltersAddressingIdentifier.md +1 -1
  32. data/docs/AFNORSearchDirectoryLineFiltersAddressingSuffix.md +1 -1
  33. data/docs/AFNORSearchDirectoryLineSortingInner.md +2 -2
  34. data/docs/AFNORSearchFlowContent.md +3 -1
  35. data/docs/AFNORSearchFlowFilters.md +1 -1
  36. data/docs/AFNORSearchFlowParams.md +3 -1
  37. data/docs/AFNORSearchSiren.md +2 -2
  38. data/docs/AFNORSearchSirenFiltersBusinessName.md +1 -1
  39. data/docs/AFNORSearchSirenFiltersSiren.md +1 -1
  40. data/docs/AFNORSearchSirenSortingInner.md +2 -2
  41. data/docs/AFNORSearchSiret.md +3 -3
  42. data/docs/AFNORSearchSiretFiltersAddressLines.md +1 -1
  43. data/docs/AFNORSearchSiretFiltersCountrySubdivision.md +1 -1
  44. data/docs/AFNORSearchSiretFiltersFacilityType.md +1 -1
  45. data/docs/AFNORSearchSiretFiltersLocality.md +1 -1
  46. data/docs/AFNORSearchSiretFiltersName.md +1 -1
  47. data/docs/AFNORSearchSiretFiltersPostalCode.md +1 -1
  48. data/docs/AFNORSearchSiretFiltersSiret.md +1 -1
  49. data/docs/AFNORSearchSiretSortingInner.md +2 -2
  50. data/docs/AFNORSirenInstructions.md +18 -0
  51. data/docs/AFNORSirenSearchPost200Response.md +1 -1
  52. data/docs/AFNORSiretInstructions.md +18 -0
  53. data/docs/AFNORSiretSearchPost200Response.md +1 -1
  54. data/docs/{AFNORDiffusionStatus.md → AFNORStrictOrStartWithOperator.md} +2 -2
  55. data/docs/AFNORUniqueDirectoryLineStatus.md +15 -0
  56. data/docs/AFNORWebhook.md +30 -0
  57. data/docs/AFNORWebhookIdParam.md +22 -0
  58. data/docs/AFNORWebhookParams.md +24 -0
  59. data/docs/AllowanceCharge.md +1 -1
  60. data/docs/{AFNORAlgorithm.md → Amounteur.md} +2 -2
  61. data/docs/ClientManagementApi.md +231 -0
  62. data/docs/CreateCDARRequest.md +3 -1
  63. data/docs/DeliveryParty.md +2 -2
  64. data/docs/ElectronicAddressInput.md +20 -0
  65. data/docs/ElectronicAddressOutput.md +20 -0
  66. data/docs/EncaisseeRequest.md +3 -1
  67. data/docs/FactureElectroniqueRestApiSchemasCdarValidationErrorResponse.md +24 -0
  68. data/docs/Flux10EReportingApi.md +18 -8
  69. data/docs/Flux6InvoiceLifecycleCDARApi.md +39 -19
  70. data/docs/IncomingSupplier.md +4 -2
  71. data/docs/InvoiceGenerationApi.md +14 -8
  72. data/docs/InvoiceInput.md +4 -0
  73. data/docs/Invoicedata.md +49 -0
  74. data/docs/LifecycleEvent.md +2 -0
  75. data/docs/Payee.md +2 -2
  76. data/docs/PaymentAmountByRate.md +4 -2
  77. data/docs/PostalAddressInput.md +30 -0
  78. data/docs/PostalAddressOutput.md +30 -0
  79. data/docs/ProcessingOptions.md +1 -1
  80. data/docs/Recipient.md +3 -3
  81. data/docs/ReportSender.md +2 -0
  82. data/docs/SimplifiedInvoiceData.md +2 -2
  83. data/docs/SubmitCDARRequest.md +2 -0
  84. data/docs/SubmitCompleteInvoiceRequest.md +1 -1
  85. data/docs/SuperPDPConnectURLResponse.md +18 -0
  86. data/docs/SuperPDPDisconnectResponse.md +20 -0
  87. data/docs/SuperPDPStatusResponse.md +26 -0
  88. data/docs/Supplier.md +5 -3
  89. data/docs/TaxBreakdownInput.md +7 -1
  90. data/docs/TaxRepresentative.md +1 -1
  91. data/docs/{AFNORPlatformStatus.md → Taxamounteur.md} +2 -2
  92. data/docs/ValidateCDARResponse.md +2 -2
  93. data/docs/ValidationErrorResponse.md +2 -8
  94. data/factpulse.gemspec +1 -1
  95. data/lib/factpulse/api/afnorpdppa_api.rb +1 -1
  96. data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +4 -622
  97. data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +178 -1
  98. data/lib/factpulse/api/async_tasks_api.rb +1 -1
  99. data/lib/factpulse/api/chorus_pro_api.rb +1 -1
  100. data/lib/factpulse/api/client_management_api.rb +196 -1
  101. data/lib/factpulse/api/downloads_api.rb +1 -1
  102. data/lib/factpulse/api/electronic_signature_api.rb +1 -1
  103. data/lib/factpulse/api/factur_x_conversion_api.rb +1 -1
  104. data/lib/factpulse/api/factur_x_validation_api.rb +1 -1
  105. data/lib/factpulse/api/factur_xpdfxml_verification_api.rb +1 -1
  106. data/lib/factpulse/api/flux10_e_reporting_api.rb +10 -1
  107. data/lib/factpulse/api/flux6_invoice_lifecycle_cdar_api.rb +25 -3
  108. data/lib/factpulse/api/health_api.rb +1 -1
  109. data/lib/factpulse/api/invoice_generation_api.rb +9 -3
  110. data/lib/factpulse/api/parse_api.rb +1 -1
  111. data/lib/factpulse/api/references_api.rb +1 -1
  112. data/lib/factpulse/api/validation_api.rb +1 -1
  113. data/lib/factpulse/api_client.rb +1 -1
  114. data/lib/factpulse/api_error.rb +1 -1
  115. data/lib/factpulse/api_model_base.rb +1 -1
  116. data/lib/factpulse/configuration.rb +1 -1
  117. data/lib/factpulse/helpers/client.rb +42 -5
  118. data/lib/factpulse/models/acknowledgment_status.rb +1 -1
  119. data/lib/factpulse/models/action_code_info.rb +1 -1
  120. data/lib/factpulse/models/action_codes_response.rb +1 -1
  121. data/lib/factpulse/models/additional_document.rb +1 -1
  122. data/lib/factpulse/models/afnor_acknowledgement.rb +1 -1
  123. data/lib/factpulse/models/afnor_acknowledgement_detail.rb +1 -1
  124. data/lib/factpulse/models/afnor_address_read.rb +1 -1
  125. data/lib/factpulse/models/{afnor_diffusion_status.rb → afnor_contains_or_start_with_operator.rb} +7 -7
  126. data/lib/factpulse/models/{afnor_contains_operator.rb → afnor_contains_or_strict_operator.rb} +6 -5
  127. data/lib/factpulse/models/afnor_contains_or_strict_or_start_with_operator.rb +41 -0
  128. data/lib/factpulse/models/{afnor_routing_code_post201_response.rb → afnor_core_flow_info.rb} +104 -62
  129. data/lib/factpulse/models/afnor_credentials.rb +1 -1
  130. data/lib/factpulse/models/afnor_destination.rb +1 -1
  131. data/lib/factpulse/models/afnor_directory_line_field.rb +2 -3
  132. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.rb +1 -1
  133. data/lib/factpulse/models/{afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb → afnor_directory_line_payload_legal_unit_facility_routing_code.rb} +86 -15
  134. data/lib/factpulse/models/{afnor_create_directory_line_body_addressing_information.rb → afnor_directory_line_payload_status_legal_unit_facility_routing_code.rb} +106 -17
  135. data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +5 -3
  136. data/lib/factpulse/models/afnor_directory_line_status.rb +41 -0
  137. data/lib/factpulse/models/afnor_entity_type.rb +1 -1
  138. data/lib/factpulse/models/afnor_error.rb +31 -40
  139. data/lib/factpulse/models/afnor_error_detail.rb +1 -1
  140. data/lib/factpulse/models/afnor_facility_administrative_status.rb +1 -1
  141. data/lib/factpulse/models/afnor_facility_payload_history.rb +12 -12
  142. data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +1 -1
  143. data/lib/factpulse/models/afnor_facility_payload_included.rb +11 -11
  144. data/lib/factpulse/models/afnor_facility_type.rb +1 -1
  145. data/lib/factpulse/models/afnor_flow.rb +257 -62
  146. data/lib/factpulse/models/afnor_flow_ack_status.rb +1 -1
  147. data/lib/factpulse/models/afnor_flow_direction.rb +1 -1
  148. data/lib/factpulse/models/{afnor_update_patch_routing_code_body.rb → afnor_flow_extension.rb} +104 -67
  149. data/lib/factpulse/models/afnor_flow_info.rb +26 -10
  150. data/lib/factpulse/models/{afnor_create_directory_line_body_period.rb → afnor_flow_info_extension.rb} +27 -32
  151. data/lib/factpulse/models/afnor_flow_profile.rb +3 -2
  152. data/lib/factpulse/models/afnor_flow_syntax.rb +1 -1
  153. data/lib/factpulse/models/afnor_flow_type.rb +9 -3
  154. data/lib/factpulse/models/afnor_full_flow_info.rb +85 -52
  155. data/lib/factpulse/models/afnor_full_flow_info_extension.rb +202 -0
  156. data/lib/factpulse/models/afnor_health_check_response.rb +1 -1
  157. data/lib/factpulse/models/afnor_legal_unit_administrative_status.rb +1 -1
  158. data/lib/factpulse/models/afnor_legal_unit_payload_history.rb +14 -5
  159. data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +14 -5
  160. data/lib/factpulse/models/afnor_processing_rule.rb +6 -2
  161. data/lib/factpulse/models/afnor_reason_code.rb +1 -1
  162. data/lib/factpulse/models/afnor_reason_code_enum.rb +1 -1
  163. data/lib/factpulse/models/afnor_recipient_platform_type.rb +1 -1
  164. data/lib/factpulse/models/afnor_result.rb +1 -1
  165. data/lib/factpulse/models/afnor_routing_code_administrative_status.rb +1 -1
  166. data/lib/factpulse/models/afnor_routing_code_field.rb +2 -3
  167. data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +1 -1
  168. data/lib/factpulse/models/afnor_routing_code_search.rb +1 -1
  169. data/lib/factpulse/models/afnor_routing_code_search_filters.rb +1 -1
  170. data/lib/factpulse/models/afnor_routing_code_search_filters_administrative_status.rb +1 -1
  171. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_code_name.rb +2 -2
  172. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +2 -2
  173. data/lib/factpulse/models/afnor_routing_code_search_post200_response.rb +4 -2
  174. data/lib/factpulse/models/afnor_routing_code_search_sorting_inner.rb +1 -1
  175. data/lib/factpulse/models/afnor_search_directory_line.rb +35 -2
  176. data/lib/factpulse/models/afnor_search_directory_line_filters.rb +1 -1
  177. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.rb +2 -2
  178. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +2 -2
  179. data/lib/factpulse/models/afnor_search_directory_line_sorting_inner.rb +8 -8
  180. data/lib/factpulse/models/afnor_search_flow_content.rb +34 -2
  181. data/lib/factpulse/models/afnor_search_flow_filters.rb +7 -6
  182. data/lib/factpulse/models/afnor_search_flow_params.rb +13 -3
  183. data/lib/factpulse/models/afnor_search_siren.rb +1 -1
  184. data/lib/factpulse/models/afnor_search_siren_filters.rb +1 -1
  185. data/lib/factpulse/models/afnor_search_siren_filters_administrative_status.rb +1 -1
  186. data/lib/factpulse/models/afnor_search_siren_filters_business_name.rb +2 -2
  187. data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +1 -1
  188. data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +2 -2
  189. data/lib/factpulse/models/afnor_search_siren_sorting_inner.rb +8 -8
  190. data/lib/factpulse/models/afnor_search_siret.rb +1 -1
  191. data/lib/factpulse/models/afnor_search_siret_filters.rb +1 -1
  192. data/lib/factpulse/models/afnor_search_siret_filters_address_lines.rb +2 -2
  193. data/lib/factpulse/models/afnor_search_siret_filters_administrative_status.rb +1 -1
  194. data/lib/factpulse/models/afnor_search_siret_filters_country_subdivision.rb +2 -2
  195. data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +2 -2
  196. data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +2 -2
  197. data/lib/factpulse/models/afnor_search_siret_filters_name.rb +2 -2
  198. data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +2 -2
  199. data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +2 -2
  200. data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +8 -8
  201. data/lib/factpulse/models/afnor_siren_field.rb +3 -3
  202. data/lib/factpulse/models/{afnor_update_patch_directory_line_body.rb → afnor_siren_instructions.rb} +13 -12
  203. data/lib/factpulse/models/afnor_siren_search_post200_response.rb +4 -2
  204. data/lib/factpulse/models/afnor_siret_field.rb +4 -5
  205. data/lib/factpulse/models/{afnor_webhook_callback_content.rb → afnor_siret_instructions.rb} +13 -12
  206. data/lib/factpulse/models/afnor_siret_search_post200_response.rb +4 -2
  207. data/lib/factpulse/models/afnor_sorting_order.rb +1 -1
  208. data/lib/factpulse/models/afnor_strict_operator.rb +1 -1
  209. data/lib/factpulse/models/{afnor_facility_nature.rb → afnor_strict_or_start_with_operator.rb} +7 -7
  210. data/lib/factpulse/models/{afnor_platform_status.rb → afnor_unique_directory_line_status.rb} +4 -4
  211. data/lib/factpulse/models/afnor_webhook.rb +250 -0
  212. data/lib/factpulse/models/{afnor_create_directory_line_body.rb → afnor_webhook_id_param.rb} +26 -17
  213. data/lib/factpulse/models/{afnor_legal_unit_payload_included_no_siren.rb → afnor_webhook_params.rb} +44 -36
  214. data/lib/factpulse/models/aggregated_payment_input.rb +1 -1
  215. data/lib/factpulse/models/aggregated_transaction_input.rb +1 -1
  216. data/lib/factpulse/models/allowance_charge.rb +2 -2
  217. data/lib/factpulse/models/allowance_charge_reason_code.rb +1 -1
  218. data/lib/factpulse/models/allowance_reason_code.rb +1 -1
  219. data/lib/factpulse/models/allowance_total_amount.rb +1 -1
  220. data/lib/factpulse/models/amount.rb +2 -2
  221. data/lib/factpulse/models/amount1.rb +2 -2
  222. data/lib/factpulse/models/amount2.rb +2 -2
  223. data/lib/factpulse/models/amount_due.rb +1 -1
  224. data/lib/factpulse/models/amounteur.rb +104 -0
  225. data/lib/factpulse/models/api_error.rb +1 -1
  226. data/lib/factpulse/models/api_profile.rb +1 -1
  227. data/lib/factpulse/models/async_task_status.rb +1 -1
  228. data/lib/factpulse/models/base_amount.rb +1 -1
  229. data/lib/factpulse/models/bounding_box_schema.rb +1 -1
  230. data/lib/factpulse/models/buyercountry.rb +1 -1
  231. data/lib/factpulse/models/celery_status.rb +1 -1
  232. data/lib/factpulse/models/certificate_info_response.rb +1 -1
  233. data/lib/factpulse/models/charge_total_amount.rb +1 -1
  234. data/lib/factpulse/models/chorus_pro_credentials.rb +1 -1
  235. data/lib/factpulse/models/chorus_pro_destination.rb +1 -1
  236. data/lib/factpulse/models/chorus_pro_result.rb +1 -1
  237. data/lib/factpulse/models/client_activate_response.rb +1 -1
  238. data/lib/factpulse/models/client_create_request.rb +1 -1
  239. data/lib/factpulse/models/client_detail.rb +1 -1
  240. data/lib/factpulse/models/client_list_response.rb +1 -1
  241. data/lib/factpulse/models/client_summary.rb +1 -1
  242. data/lib/factpulse/models/client_update_request.rb +1 -1
  243. data/lib/factpulse/models/contact.rb +1 -1
  244. data/lib/factpulse/models/conversion_error_result.rb +1 -1
  245. data/lib/factpulse/models/conversion_extraction_info.rb +1 -1
  246. data/lib/factpulse/models/conversion_pending_input_result.rb +1 -1
  247. data/lib/factpulse/models/conversion_success_task_result.rb +1 -1
  248. data/lib/factpulse/models/conversion_task_status.rb +1 -1
  249. data/lib/factpulse/models/conversion_task_status_result.rb +1 -1
  250. data/lib/factpulse/models/conversion_validation_failed_result.rb +1 -1
  251. data/lib/factpulse/models/convert_resume_request.rb +1 -1
  252. data/lib/factpulse/models/convert_success_response.rb +1 -1
  253. data/lib/factpulse/models/convert_validation_failed_response.rb +1 -1
  254. data/lib/factpulse/models/country_code.rb +1 -1
  255. data/lib/factpulse/models/create_aggregated_report_request.rb +1 -1
  256. data/lib/factpulse/models/create_cdar_request.rb +18 -6
  257. data/lib/factpulse/models/create_e_reporting_request.rb +1 -1
  258. data/lib/factpulse/models/currency.rb +1 -1
  259. data/lib/factpulse/models/currency_code.rb +1 -1
  260. data/lib/factpulse/models/delivery_party.rb +3 -3
  261. data/lib/factpulse/models/destination.rb +1 -1
  262. data/lib/factpulse/models/doc_type.rb +1 -1
  263. data/lib/factpulse/models/document_type_info.rb +1 -1
  264. data/lib/factpulse/models/e_reporting_flow_type.rb +1 -1
  265. data/lib/factpulse/models/e_reporting_validation_error.rb +1 -1
  266. data/lib/factpulse/models/electronic_address.rb +2 -2
  267. data/lib/factpulse/models/{afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb → electronic_address_input.rb} +37 -17
  268. data/lib/factpulse/models/electronic_address_output.rb +198 -0
  269. data/lib/factpulse/models/encaisseamount.rb +1 -1
  270. data/lib/factpulse/models/encaisseamount1.rb +1 -1
  271. data/lib/factpulse/models/encaissee_request.rb +15 -3
  272. data/lib/factpulse/models/enriched_invoice_info.rb +1 -1
  273. data/lib/factpulse/models/error_level.rb +1 -1
  274. data/lib/factpulse/models/error_source.rb +1 -1
  275. data/lib/factpulse/models/extraction_info.rb +1 -1
  276. data/lib/factpulse/models/factur_x_invoice.rb +1 -1
  277. data/lib/factpulse/models/factur_xpdf_info.rb +1 -1
  278. data/lib/factpulse/models/facture_electronique_models_invoice_type_code.rb +1 -1
  279. data/lib/factpulse/models/{afnor_directory_line_post201_response.rb → facture_electronique_rest_api_schemas_cdar_validation_error_response.rb} +64 -36
  280. data/lib/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb +1 -1
  281. data/lib/factpulse/models/field_status.rb +1 -1
  282. data/lib/factpulse/models/file_info.rb +1 -1
  283. data/lib/factpulse/models/files_info.rb +1 -1
  284. data/lib/factpulse/models/flow_direction.rb +1 -1
  285. data/lib/factpulse/models/flow_profile.rb +3 -2
  286. data/lib/factpulse/models/flow_summary.rb +1 -1
  287. data/lib/factpulse/models/flow_syntax.rb +1 -1
  288. data/lib/factpulse/models/flow_type.rb +9 -3
  289. data/lib/factpulse/models/generate_aggregated_report_response.rb +1 -1
  290. data/lib/factpulse/models/generate_cdar_response.rb +1 -1
  291. data/lib/factpulse/models/generate_certificate_request.rb +1 -1
  292. data/lib/factpulse/models/generate_certificate_response.rb +1 -1
  293. data/lib/factpulse/models/generate_e_reporting_response.rb +1 -1
  294. data/lib/factpulse/models/generation_success_result.rb +1 -1
  295. data/lib/factpulse/models/generation_task_status.rb +1 -1
  296. data/lib/factpulse/models/generation_task_status_result.rb +1 -1
  297. data/lib/factpulse/models/get_chorus_pro_id_request.rb +1 -1
  298. data/lib/factpulse/models/get_chorus_pro_id_response.rb +1 -1
  299. data/lib/factpulse/models/get_invoice_request.rb +1 -1
  300. data/lib/factpulse/models/get_invoice_response.rb +1 -1
  301. data/lib/factpulse/models/get_structure_request.rb +1 -1
  302. data/lib/factpulse/models/get_structure_response.rb +1 -1
  303. data/lib/factpulse/models/global_allowance_amount.rb +1 -1
  304. data/lib/factpulse/models/gross_unit_price.rb +1 -1
  305. data/lib/factpulse/models/http_validation_error.rb +1 -1
  306. data/lib/factpulse/models/incoming_invoice.rb +1 -1
  307. data/lib/factpulse/models/incoming_supplier.rb +14 -4
  308. data/lib/factpulse/models/invoice_format.rb +1 -1
  309. data/lib/factpulse/models/invoice_input.rb +22 -2
  310. data/lib/factpulse/models/invoice_lifecycle.rb +1 -1
  311. data/lib/factpulse/models/invoice_line.rb +1 -1
  312. data/lib/factpulse/models/invoice_line_allowance_amount.rb +1 -1
  313. data/lib/factpulse/models/invoice_note.rb +1 -1
  314. data/lib/factpulse/models/invoice_payment_input.rb +1 -1
  315. data/lib/factpulse/models/invoice_references.rb +1 -1
  316. data/lib/factpulse/models/invoice_status.rb +1 -1
  317. data/lib/factpulse/models/invoice_totals.rb +1 -1
  318. data/lib/factpulse/models/invoice_totals_prepayment.rb +1 -1
  319. data/lib/factpulse/models/invoice_type_code.rb +1 -1
  320. data/lib/factpulse/models/invoice_type_code_output.rb +1 -1
  321. data/lib/factpulse/models/invoicedata.rb +105 -0
  322. data/lib/factpulse/models/invoicing_framework.rb +1 -1
  323. data/lib/factpulse/models/invoicing_framework_code.rb +1 -1
  324. data/lib/factpulse/models/issuer_role_code.rb +1 -1
  325. data/lib/factpulse/models/key_rotation_request.rb +1 -1
  326. data/lib/factpulse/models/key_rotation_response.rb +1 -1
  327. data/lib/factpulse/models/lifecycle_event.rb +12 -2
  328. data/lib/factpulse/models/lifecycle_response.rb +1 -1
  329. data/lib/factpulse/models/line_net_amount.rb +1 -1
  330. data/lib/factpulse/models/line_sub_type.rb +1 -1
  331. data/lib/factpulse/models/line_total_amount.rb +1 -1
  332. data/lib/factpulse/models/location_inner.rb +1 -1
  333. data/lib/factpulse/models/mandatory_note_schema.rb +1 -1
  334. data/lib/factpulse/models/manual_rate.rb +1 -1
  335. data/lib/factpulse/models/manual_vat_rate.rb +1 -1
  336. data/lib/factpulse/models/missing_field.rb +1 -1
  337. data/lib/factpulse/models/operation_nature.rb +1 -1
  338. data/lib/factpulse/models/output_format.rb +1 -1
  339. data/lib/factpulse/models/page_dimensions_schema.rb +1 -1
  340. data/lib/factpulse/models/parse_factur_x_response.rb +1 -1
  341. data/lib/factpulse/models/payee.rb +3 -3
  342. data/lib/factpulse/models/payment_amount_by_rate.rb +15 -5
  343. data/lib/factpulse/models/payment_card.rb +1 -1
  344. data/lib/factpulse/models/payment_means.rb +1 -1
  345. data/lib/factpulse/models/pdf_validation_result_api.rb +1 -1
  346. data/lib/factpulse/models/pdp_config_response.rb +1 -1
  347. data/lib/factpulse/models/pdp_config_update_request.rb +1 -1
  348. data/lib/factpulse/models/pdp_credentials.rb +1 -1
  349. data/lib/factpulse/models/percentage.rb +1 -1
  350. data/lib/factpulse/models/postal_address.rb +7 -7
  351. data/lib/factpulse/models/postal_address_input.rb +209 -0
  352. data/lib/factpulse/models/postal_address_output.rb +209 -0
  353. data/lib/factpulse/models/price_allowance_amount.rb +1 -1
  354. data/lib/factpulse/models/price_basis_quantity.rb +1 -1
  355. data/lib/factpulse/models/processing_options.rb +2 -2
  356. data/lib/factpulse/models/processing_rule.rb +6 -2
  357. data/lib/factpulse/models/product_characteristic.rb +1 -1
  358. data/lib/factpulse/models/product_classification.rb +1 -1
  359. data/lib/factpulse/models/quantity.rb +1 -1
  360. data/lib/factpulse/models/rate.rb +1 -1
  361. data/lib/factpulse/models/rate1.rb +1 -1
  362. data/lib/factpulse/models/reason_code_info.rb +1 -1
  363. data/lib/factpulse/models/reason_codes_response.rb +1 -1
  364. data/lib/factpulse/models/recipient.rb +4 -4
  365. data/lib/factpulse/models/recipient_input.rb +1 -1
  366. data/lib/factpulse/models/refusee_request.rb +1 -1
  367. data/lib/factpulse/models/report_issuer.rb +1 -1
  368. data/lib/factpulse/models/report_period.rb +1 -1
  369. data/lib/factpulse/models/report_sender.rb +12 -2
  370. data/lib/factpulse/models/rounding_amount.rb +1 -1
  371. data/lib/factpulse/models/schematron_validation_error.rb +1 -1
  372. data/lib/factpulse/models/scheme_id.rb +1 -1
  373. data/lib/factpulse/models/search_flow_request.rb +1 -1
  374. data/lib/factpulse/models/search_flow_response.rb +1 -1
  375. data/lib/factpulse/models/search_services_response.rb +1 -1
  376. data/lib/factpulse/models/search_structure_request.rb +1 -1
  377. data/lib/factpulse/models/search_structure_response.rb +1 -1
  378. data/lib/factpulse/models/secret_status.rb +1 -1
  379. data/lib/factpulse/models/sellercountry.rb +1 -1
  380. data/lib/factpulse/models/signature_info.rb +1 -1
  381. data/lib/factpulse/models/signature_info_api.rb +1 -1
  382. data/lib/factpulse/models/signature_parameters.rb +1 -1
  383. data/lib/factpulse/models/signature_success_result.rb +1 -1
  384. data/lib/factpulse/models/signature_task_status.rb +1 -1
  385. data/lib/factpulse/models/signature_task_status_result.rb +1 -1
  386. data/lib/factpulse/models/simplified_cdar_response.rb +1 -1
  387. data/lib/factpulse/models/simplified_invoice_data.rb +4 -4
  388. data/lib/factpulse/models/status_code_info.rb +1 -1
  389. data/lib/factpulse/models/status_codes_response.rb +1 -1
  390. data/lib/factpulse/models/structure_info.rb +1 -1
  391. data/lib/factpulse/models/structure_parameters.rb +1 -1
  392. data/lib/factpulse/models/structure_service.rb +1 -1
  393. data/lib/factpulse/models/submission_mode.rb +1 -1
  394. data/lib/factpulse/models/submit_aggregated_report_request.rb +1 -1
  395. data/lib/factpulse/models/submit_cdar_request.rb +14 -2
  396. data/lib/factpulse/models/submit_cdar_response.rb +1 -1
  397. data/lib/factpulse/models/submit_cdarxml_request.rb +1 -1
  398. data/lib/factpulse/models/submit_complete_invoice_request.rb +2 -3
  399. data/lib/factpulse/models/submit_complete_invoice_response.rb +1 -1
  400. data/lib/factpulse/models/submit_e_reporting_request.rb +1 -1
  401. data/lib/factpulse/models/submit_e_reporting_response.rb +1 -1
  402. data/lib/factpulse/models/submit_flow_request.rb +1 -1
  403. data/lib/factpulse/models/submit_flow_response.rb +1 -1
  404. data/lib/factpulse/models/submit_gross_amount.rb +1 -1
  405. data/lib/factpulse/models/submit_invoice_request.rb +1 -1
  406. data/lib/factpulse/models/submit_invoice_response.rb +1 -1
  407. data/lib/factpulse/models/submit_net_amount.rb +1 -1
  408. data/lib/factpulse/models/submit_vat_amount.rb +1 -1
  409. data/lib/factpulse/models/{facture_electronique_rest_api_schemas_validation_validation_error_response.rb → super_pdp_connect_url_response.rb} +22 -24
  410. data/lib/factpulse/models/super_pdp_disconnect_response.rb +193 -0
  411. data/lib/factpulse/models/super_pdp_status_response.rb +208 -0
  412. data/lib/factpulse/models/supplementary_attachment.rb +1 -1
  413. data/lib/factpulse/models/supplier.rb +15 -5
  414. data/lib/factpulse/models/task_error_result.rb +1 -1
  415. data/lib/factpulse/models/task_response.rb +1 -1
  416. data/lib/factpulse/models/tax_breakdown_input.rb +35 -5
  417. data/lib/factpulse/models/tax_due_date_type.rb +1 -1
  418. data/lib/factpulse/models/tax_representative.rb +2 -2
  419. data/lib/factpulse/models/taxable_amount.rb +1 -1
  420. data/lib/factpulse/models/taxableamount.rb +1 -1
  421. data/lib/factpulse/models/taxamount.rb +1 -1
  422. data/lib/factpulse/models/taxamount1.rb +1 -1
  423. data/lib/factpulse/models/taxamount2.rb +1 -1
  424. data/lib/factpulse/models/{afnor_algorithm.rb → taxamounteur.rb} +84 -23
  425. data/lib/factpulse/models/taxexclusiveamount.rb +1 -1
  426. data/lib/factpulse/models/taxexclusiveamount1.rb +1 -1
  427. data/lib/factpulse/models/total_gross_amount.rb +1 -1
  428. data/lib/factpulse/models/total_net_amount.rb +1 -1
  429. data/lib/factpulse/models/total_vat_amount.rb +1 -1
  430. data/lib/factpulse/models/transaction_category.rb +1 -1
  431. data/lib/factpulse/models/transmission_type_code.rb +1 -1
  432. data/lib/factpulse/models/unit_net_price.rb +1 -1
  433. data/lib/factpulse/models/unit_of_measure.rb +1 -1
  434. data/lib/factpulse/models/validate_cdar_request.rb +1 -1
  435. data/lib/factpulse/models/validate_cdar_response.rb +3 -3
  436. data/lib/factpulse/models/validate_e_reporting_request.rb +1 -1
  437. data/lib/factpulse/models/validate_e_reporting_response.rb +1 -1
  438. data/lib/factpulse/models/validation_error.rb +1 -1
  439. data/lib/factpulse/models/validation_error_detail.rb +1 -1
  440. data/lib/factpulse/models/validation_error_response.rb +21 -68
  441. data/lib/factpulse/models/validation_info.rb +1 -1
  442. data/lib/factpulse/models/validation_success_response.rb +1 -1
  443. data/lib/factpulse/models/validation_success_task_result.rb +1 -1
  444. data/lib/factpulse/models/validation_task_status.rb +1 -1
  445. data/lib/factpulse/models/validation_task_status_result.rb +1 -1
  446. data/lib/factpulse/models/vat_accounting_code.rb +1 -1
  447. data/lib/factpulse/models/vat_amount.rb +1 -1
  448. data/lib/factpulse/models/vat_category.rb +1 -1
  449. data/lib/factpulse/models/vat_line.rb +1 -1
  450. data/lib/factpulse/models/vat_point_date_code.rb +1 -1
  451. data/lib/factpulse/models/vat_rate.rb +1 -1
  452. data/lib/factpulse/models/vatex_code_info.rb +1 -1
  453. data/lib/factpulse/models/vatex_codes_response.rb +1 -1
  454. data/lib/factpulse/models/verification_success_response.rb +1 -1
  455. data/lib/factpulse/models/verification_success_task_result.rb +1 -1
  456. data/lib/factpulse/models/verification_typed_task_status.rb +1 -1
  457. data/lib/factpulse/models/verification_typed_task_status_result.rb +1 -1
  458. data/lib/factpulse/models/verified_field_schema.rb +1 -1
  459. data/lib/factpulse/models/webhook_secret_delete_response.rb +1 -1
  460. data/lib/factpulse/models/webhook_secret_generate_response.rb +1 -1
  461. data/lib/factpulse/models/webhook_secret_status_response.rb +1 -1
  462. data/lib/factpulse/version.rb +2 -2
  463. data/lib/factpulse.rb +29 -23
  464. metadata +58 -46
  465. data/docs/AFNORAddressEdit.md +0 -30
  466. data/docs/AFNORAddressPatch.md +0 -30
  467. data/docs/AFNORAddressPut.md +0 -30
  468. data/docs/AFNORCreateDirectoryLineBody.md +0 -20
  469. data/docs/AFNORCreateDirectoryLineBodyAddressingInformation.md +0 -24
  470. data/docs/AFNORCreateDirectoryLineBodyPeriod.md +0 -20
  471. data/docs/AFNORCreateRoutingCodeBody.md +0 -32
  472. data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodePlatform.md +0 -20
  473. data/docs/AFNORDirectoryLinePost201Response.md +0 -22
  474. data/docs/AFNORLegalUnitPayloadIncludedNoSiren.md +0 -22
  475. data/docs/AFNORRoutingCodePost201Response.md +0 -22
  476. data/docs/AFNORUpdatePatchDirectoryLineBody.md +0 -18
  477. data/docs/AFNORUpdatePatchRoutingCodeBody.md +0 -24
  478. data/docs/AFNORUpdatePutRoutingCodeBody.md +0 -24
  479. data/docs/AFNORWebhookCallbackContent.md +0 -18
  480. data/docs/FactureElectroniqueRestApiSchemasValidationValidationErrorResponse.md +0 -18
  481. data/lib/factpulse/models/afnor_address_edit.rb +0 -353
  482. data/lib/factpulse/models/afnor_address_patch.rb +0 -386
  483. data/lib/factpulse/models/afnor_address_put.rb +0 -435
  484. data/lib/factpulse/models/afnor_create_routing_code_body.rb +0 -412
  485. data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +0 -289
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -145,14 +145,16 @@ module FactPulse
145
145
  end
146
146
 
147
147
  # [Simplified] Get lifecycle events for invoices
148
- # Returns lifecycle events (CDAR) grouped by invoice reference. **How it works (AFNOR XP Z12-013 compliant):** 1. Searches lifecycle flows on the PDP by flowType + flowDirection + date range 2. Downloads and parses each CDAR XML to extract the invoice reference 3. Groups events by invoice, sorted chronologically **Parameters:** - `days`: Number of days to look back (default: 7) - `invoiceId`: Optional filter on a specific invoice reference **Authentication:** JWT Bearer (recommended) or PDP credentials as query parameters.
148
+ # Returns lifecycle events (CDAR) grouped by invoice reference. **How it works (AFNOR XP Z12-013 compliant):** 1. Searches lifecycle flows on the PDP by flowType + flowDirection + date range 2. Downloads and parses each CDAR XML to extract the invoice reference 3. Groups events by invoice, sorted chronologically **Parameters:** - `days`: Number of days to look back (default: 7) - `invoiceId`: Optional filter on a specific invoice reference - `flowDirection`: `All` (default), `In` (statuses received from the counterparty) or `Out` (statuses issued by you or your PA, e.g. 202/203) **Authentication:** JWT Bearer (recommended) or PDP credentials as query parameters.
149
149
  # @param [Hash] opts the optional parameters
150
150
  # @option opts [Integer] :days Number of days to look back (default to 7)
151
151
  # @option opts [String] :invoice_id Filter by invoice reference
152
+ # @option opts [String] :flow_direction All (default), In (received statuses) or Out (issued statuses) (default to 'All')
152
153
  # @option opts [String] :pdp_flow_service_url PDP Flow Service URL
153
154
  # @option opts [String] :pdp_token_url PDP OAuth token URL
154
155
  # @option opts [String] :pdp_client_id PDP Client ID
155
156
  # @option opts [String] :pdp_client_secret PDP Client Secret
157
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
156
158
  # @return [LifecycleResponse]
157
159
  def get_lifecycle_api_v1_cdar_lifecycle_get(opts = {})
158
160
  data, _status_code, _headers = get_lifecycle_api_v1_cdar_lifecycle_get_with_http_info(opts)
@@ -160,14 +162,16 @@ module FactPulse
160
162
  end
161
163
 
162
164
  # [Simplified] Get lifecycle events for invoices
163
- # Returns lifecycle events (CDAR) grouped by invoice reference. **How it works (AFNOR XP Z12-013 compliant):** 1. Searches lifecycle flows on the PDP by flowType + flowDirection + date range 2. Downloads and parses each CDAR XML to extract the invoice reference 3. Groups events by invoice, sorted chronologically **Parameters:** - `days`: Number of days to look back (default: 7) - `invoiceId`: Optional filter on a specific invoice reference **Authentication:** JWT Bearer (recommended) or PDP credentials as query parameters.
165
+ # Returns lifecycle events (CDAR) grouped by invoice reference. **How it works (AFNOR XP Z12-013 compliant):** 1. Searches lifecycle flows on the PDP by flowType + flowDirection + date range 2. Downloads and parses each CDAR XML to extract the invoice reference 3. Groups events by invoice, sorted chronologically **Parameters:** - `days`: Number of days to look back (default: 7) - `invoiceId`: Optional filter on a specific invoice reference - `flowDirection`: `All` (default), `In` (statuses received from the counterparty) or `Out` (statuses issued by you or your PA, e.g. 202/203) **Authentication:** JWT Bearer (recommended) or PDP credentials as query parameters.
164
166
  # @param [Hash] opts the optional parameters
165
167
  # @option opts [Integer] :days Number of days to look back (default to 7)
166
168
  # @option opts [String] :invoice_id Filter by invoice reference
169
+ # @option opts [String] :flow_direction All (default), In (received statuses) or Out (issued statuses) (default to 'All')
167
170
  # @option opts [String] :pdp_flow_service_url PDP Flow Service URL
168
171
  # @option opts [String] :pdp_token_url PDP OAuth token URL
169
172
  # @option opts [String] :pdp_client_id PDP Client ID
170
173
  # @option opts [String] :pdp_client_secret PDP Client Secret
174
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
171
175
  # @return [Array<(LifecycleResponse, Integer, Hash)>] LifecycleResponse data, response status code and response headers
172
176
  def get_lifecycle_api_v1_cdar_lifecycle_get_with_http_info(opts = {})
173
177
  if @api_client.config.debugging
@@ -181,6 +185,10 @@ module FactPulse
181
185
  fail ArgumentError, 'invalid value for "opts[:"days"]" when calling Flux6InvoiceLifecycleCDARApi.get_lifecycle_api_v1_cdar_lifecycle_get, must be greater than or equal to 1.'
182
186
  end
183
187
 
188
+ allowable_values = ["In", "Out", "All"]
189
+ if @api_client.config.client_side_validation && opts[:'flow_direction'] && !allowable_values.include?(opts[:'flow_direction'])
190
+ fail ArgumentError, "invalid value for \"flow_direction\", must be one of #{allowable_values}"
191
+ end
184
192
  # resource path
185
193
  local_var_path = '/api/v1/cdar/lifecycle'
186
194
 
@@ -188,6 +196,7 @@ module FactPulse
188
196
  query_params = opts[:query_params] || {}
189
197
  query_params[:'days'] = opts[:'days'] if !opts[:'days'].nil?
190
198
  query_params[:'invoiceId'] = opts[:'invoice_id'] if !opts[:'invoice_id'].nil?
199
+ query_params[:'flowDirection'] = opts[:'flow_direction'] if !opts[:'flow_direction'].nil?
191
200
  query_params[:'pdpFlowServiceUrl'] = opts[:'pdp_flow_service_url'] if !opts[:'pdp_flow_service_url'].nil?
192
201
  query_params[:'pdpTokenUrl'] = opts[:'pdp_token_url'] if !opts[:'pdp_token_url'].nil?
193
202
  query_params[:'pdpClientId'] = opts[:'pdp_client_id'] if !opts[:'pdp_client_id'].nil?
@@ -197,6 +206,7 @@ module FactPulse
197
206
  header_params = opts[:header_params] || {}
198
207
  # HTTP header 'Accept' (if needed)
199
208
  header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
209
+ header_params[:'Organization-Id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
200
210
 
201
211
  # form parameters
202
212
  form_params = opts[:form_params] || {}
@@ -345,6 +355,7 @@ module FactPulse
345
355
  # Generate a CDAR message and submit it to the PA/PDP platform. **Authentication strategies:** 1. **JWT with client_uid** (recommended): PDP credentials retrieved from backend 2. **Zero-storage**: Provide pdpFlowServiceUrl, pdpClientId, pdpClientSecret in the request **Flow types (flowType):** - `CustomerInvoiceLC`: Client-side lifecycle (buyer) - `SupplierInvoiceLC`: Supplier-side lifecycle (seller)
346
356
  # @param submit_cdar_request [SubmitCDARRequest]
347
357
  # @param [Hash] opts the optional parameters
358
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
348
359
  # @return [SubmitCDARResponse]
349
360
  def submit_cdar_api_v1_cdar_submit_post(submit_cdar_request, opts = {})
350
361
  data, _status_code, _headers = submit_cdar_api_v1_cdar_submit_post_with_http_info(submit_cdar_request, opts)
@@ -355,6 +366,7 @@ module FactPulse
355
366
  # Generate a CDAR message and submit it to the PA/PDP platform. **Authentication strategies:** 1. **JWT with client_uid** (recommended): PDP credentials retrieved from backend 2. **Zero-storage**: Provide pdpFlowServiceUrl, pdpClientId, pdpClientSecret in the request **Flow types (flowType):** - &#x60;CustomerInvoiceLC&#x60;: Client-side lifecycle (buyer) - &#x60;SupplierInvoiceLC&#x60;: Supplier-side lifecycle (seller)
356
367
  # @param submit_cdar_request [SubmitCDARRequest]
357
368
  # @param [Hash] opts the optional parameters
369
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
358
370
  # @return [Array<(SubmitCDARResponse, Integer, Hash)>] SubmitCDARResponse data, response status code and response headers
359
371
  def submit_cdar_api_v1_cdar_submit_post_with_http_info(submit_cdar_request, opts = {})
360
372
  if @api_client.config.debugging
@@ -379,6 +391,7 @@ module FactPulse
379
391
  if !content_type.nil?
380
392
  header_params['Content-Type'] = content_type
381
393
  end
394
+ header_params[:'Organization-Id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
382
395
 
383
396
  # form parameters
384
397
  form_params = opts[:form_params] || {}
@@ -413,6 +426,7 @@ module FactPulse
413
426
  # Submit a pre-generated CDAR XML message to the PA/PDP platform. Useful for submitting XML generated by other systems. **Validation:** The XML is validated against XSD and Schematron BR-FR-CDV rules BEFORE submission. Invalid XML will be rejected with detailed error messages. **Authentication strategies:** 1. **JWT with client_uid** (recommended): PDP credentials retrieved from backend 2. **Zero-storage**: Provide pdpFlowServiceUrl, pdpClientId, pdpClientSecret in the request
414
427
  # @param submit_cdarxml_request [SubmitCDARXMLRequest]
415
428
  # @param [Hash] opts the optional parameters
429
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
416
430
  # @return [SubmitCDARResponse]
417
431
  def submit_cdar_xml_api_v1_cdar_submit_xml_post(submit_cdarxml_request, opts = {})
418
432
  data, _status_code, _headers = submit_cdar_xml_api_v1_cdar_submit_xml_post_with_http_info(submit_cdarxml_request, opts)
@@ -423,6 +437,7 @@ module FactPulse
423
437
  # Submit a pre-generated CDAR XML message to the PA/PDP platform. Useful for submitting XML generated by other systems. **Validation:** The XML is validated against XSD and Schematron BR-FR-CDV rules BEFORE submission. Invalid XML will be rejected with detailed error messages. **Authentication strategies:** 1. **JWT with client_uid** (recommended): PDP credentials retrieved from backend 2. **Zero-storage**: Provide pdpFlowServiceUrl, pdpClientId, pdpClientSecret in the request
424
438
  # @param submit_cdarxml_request [SubmitCDARXMLRequest]
425
439
  # @param [Hash] opts the optional parameters
440
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
426
441
  # @return [Array<(SubmitCDARResponse, Integer, Hash)>] SubmitCDARResponse data, response status code and response headers
427
442
  def submit_cdar_xml_api_v1_cdar_submit_xml_post_with_http_info(submit_cdarxml_request, opts = {})
428
443
  if @api_client.config.debugging
@@ -447,6 +462,7 @@ module FactPulse
447
462
  if !content_type.nil?
448
463
  header_params['Content-Type'] = content_type
449
464
  end
465
+ header_params[:'Organization-Id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
450
466
 
451
467
  # form parameters
452
468
  form_params = opts[:form_params] || {}
@@ -481,6 +497,7 @@ module FactPulse
481
497
  # **Simplified endpoint for OD** - Submit a PAID status (212) for an **ISSUED** invoice. This status is **mandatory for PPF** (BR-FR-CDV-14 requires the paid amount). **Use case:** The **seller** confirms payment receipt for an invoice they issued. **Who issues this status?** - **Issuer (IssuerTradeParty):** The seller (SE = Seller) who received payment - **Recipient (RecipientTradeParty):** The buyer (BY = Buyer) who paid **Reference:** XP Z12-014 Annex B, example UC1_F202500003_07-CDV-212_Encaissee.xml **Authentication:** JWT Bearer (recommended) or PDP credentials in request.
482
498
  # @param encaissee_request [EncaisseeRequest]
483
499
  # @param [Hash] opts the optional parameters
500
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
484
501
  # @return [SimplifiedCDARResponse]
485
502
  def submit_encaissee_api_v1_cdar_encaissee_post(encaissee_request, opts = {})
486
503
  data, _status_code, _headers = submit_encaissee_api_v1_cdar_encaissee_post_with_http_info(encaissee_request, opts)
@@ -491,6 +508,7 @@ module FactPulse
491
508
  # **Simplified endpoint for OD** - Submit a PAID status (212) for an **ISSUED** invoice. This status is **mandatory for PPF** (BR-FR-CDV-14 requires the paid amount). **Use case:** The **seller** confirms payment receipt for an invoice they issued. **Who issues this status?** - **Issuer (IssuerTradeParty):** The seller (SE &#x3D; Seller) who received payment - **Recipient (RecipientTradeParty):** The buyer (BY &#x3D; Buyer) who paid **Reference:** XP Z12-014 Annex B, example UC1_F202500003_07-CDV-212_Encaissee.xml **Authentication:** JWT Bearer (recommended) or PDP credentials in request.
492
509
  # @param encaissee_request [EncaisseeRequest]
493
510
  # @param [Hash] opts the optional parameters
511
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
494
512
  # @return [Array<(SimplifiedCDARResponse, Integer, Hash)>] SimplifiedCDARResponse data, response status code and response headers
495
513
  def submit_encaissee_api_v1_cdar_encaissee_post_with_http_info(encaissee_request, opts = {})
496
514
  if @api_client.config.debugging
@@ -515,6 +533,7 @@ module FactPulse
515
533
  if !content_type.nil?
516
534
  header_params['Content-Type'] = content_type
517
535
  end
536
+ header_params[:'Organization-Id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
518
537
 
519
538
  # form parameters
520
539
  form_params = opts[:form_params] || {}
@@ -549,6 +568,7 @@ module FactPulse
549
568
  # **Simplified endpoint for OD** - Submit a REFUSED status (210) for a **RECEIVED** invoice. This status is **mandatory for PPF** (BR-FR-CDV-15 requires a reason code). **Use case:** The **buyer** refuses an invoice they received. **Who issues this status?** - **Issuer (IssuerTradeParty):** The buyer (BY = Buyer) refusing the invoice - **Recipient (RecipientTradeParty):** The seller (SE = Seller) who issued the invoice **Reference:** XP Z12-014 Annex B, example UC3_F202500005_04-CDV-210_Refusee.xml **Allowed reason codes (BR-FR-CDV-CL-09):** - `TX_TVA_ERR`: Incorrect VAT rate - `MONTANTTOTAL_ERR`: Incorrect total amount - `CALCUL_ERR`: Calculation error - `NON_CONFORME`: Non-compliant - `DOUBLON`: Duplicate - `DEST_ERR`: Wrong recipient - `TRANSAC_INC`: Incomplete transaction - `EMMET_INC`: Unknown issuer - `CONTRAT_TERM`: Contract terminated - `DOUBLE_FACT`: Double billing - `CMD_ERR`: Order error - `ADR_ERR`: Address error - `REF_CT_ABSENT`: Missing contract reference **Authentication:** JWT Bearer (recommended) or PDP credentials in request.
550
569
  # @param refusee_request [RefuseeRequest]
551
570
  # @param [Hash] opts the optional parameters
571
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
552
572
  # @return [SimplifiedCDARResponse]
553
573
  def submit_refusee_api_v1_cdar_refusee_post(refusee_request, opts = {})
554
574
  data, _status_code, _headers = submit_refusee_api_v1_cdar_refusee_post_with_http_info(refusee_request, opts)
@@ -559,6 +579,7 @@ module FactPulse
559
579
  # **Simplified endpoint for OD** - Submit a REFUSED status (210) for a **RECEIVED** invoice. This status is **mandatory for PPF** (BR-FR-CDV-15 requires a reason code). **Use case:** The **buyer** refuses an invoice they received. **Who issues this status?** - **Issuer (IssuerTradeParty):** The buyer (BY &#x3D; Buyer) refusing the invoice - **Recipient (RecipientTradeParty):** The seller (SE &#x3D; Seller) who issued the invoice **Reference:** XP Z12-014 Annex B, example UC3_F202500005_04-CDV-210_Refusee.xml **Allowed reason codes (BR-FR-CDV-CL-09):** - &#x60;TX_TVA_ERR&#x60;: Incorrect VAT rate - &#x60;MONTANTTOTAL_ERR&#x60;: Incorrect total amount - &#x60;CALCUL_ERR&#x60;: Calculation error - &#x60;NON_CONFORME&#x60;: Non-compliant - &#x60;DOUBLON&#x60;: Duplicate - &#x60;DEST_ERR&#x60;: Wrong recipient - &#x60;TRANSAC_INC&#x60;: Incomplete transaction - &#x60;EMMET_INC&#x60;: Unknown issuer - &#x60;CONTRAT_TERM&#x60;: Contract terminated - &#x60;DOUBLE_FACT&#x60;: Double billing - &#x60;CMD_ERR&#x60;: Order error - &#x60;ADR_ERR&#x60;: Address error - &#x60;REF_CT_ABSENT&#x60;: Missing contract reference **Authentication:** JWT Bearer (recommended) or PDP credentials in request.
560
580
  # @param refusee_request [RefuseeRequest]
561
581
  # @param [Hash] opts the optional parameters
582
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
562
583
  # @return [Array<(SimplifiedCDARResponse, Integer, Hash)>] SimplifiedCDARResponse data, response status code and response headers
563
584
  def submit_refusee_api_v1_cdar_refusee_post_with_http_info(refusee_request, opts = {})
564
585
  if @api_client.config.debugging
@@ -583,6 +604,7 @@ module FactPulse
583
604
  if !content_type.nil?
584
605
  header_params['Content-Type'] = content_type
585
606
  end
607
+ header_params[:'Organization-Id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
586
608
 
587
609
  # form parameters
588
610
  form_params = opts[:form_params] || {}
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -110,9 +110,10 @@ module FactPulse
110
110
  end
111
111
 
112
112
  # Submit a complete invoice (generation + signature + submission)
113
- # Unified endpoint to submit a complete invoice to different destinations. **Facture prête pour Flux 2** - Génère une facture Factur-X complète avec signature optionnelle et soumission vers Chorus Pro ou PDP AFNOR. **Automated workflow:** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Destination credentials - 2 modes available:** **Mode 1 - Retrieval via JWT (recommended):** - Credentials are retrieved automatically via the JWT `client_uid` - Do not provide the `credentials` field in `destination` - Zero-trust architecture: no secrets in the payload - Example: `\"destination\": {\"type\": \"chorus_pro\"}` **Mode 2 - Credentials in the payload:** - Provide credentials directly in the payload - Useful for tests or third-party integrations - Example: `\"destination\": {\"type\": \"chorus_pro\", \"credentials\": {...}}` **Electronic signature (optional) - 2 modes available:** **Mode 1 - Stored certificate (recommended):** - Certificate is retrieved automatically via the JWT `client_uid` - No key to provide in the payload - PAdES-B-LT signature with timestamp (eIDAS compliant) - Example: `\"signature\": {\"reason\": \"Factur-X compliance\"}` **Mode 2 - Keys in the payload (for tests):** - Provide `key_pem` and `cert_pem` directly - PEM format accepted: raw or base64 - Useful for tests or special cases without stored certificate - Example: `\"signature\": {\"key_pem\": \"-----BEGIN...\", \"cert_pem\": \"-----BEGIN...\"}` If `key_pem` and `cert_pem` are provided → Mode 2 Otherwise → Mode 1 (certificate retrieved via `client_uid`)
113
+ # Unified endpoint to submit a complete invoice to different destinations. **Facture prête pour Flux 2** - Génère une facture Factur-X complète avec signature optionnelle et soumission vers Chorus Pro ou PDP AFNOR. **Automated workflow:** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Two accepted `invoiceData` formats, detected automatically** (same rule as `/generate-invoice`): - **Simplified format** (`number` + `lines`): totals, VAT and dates are computed. Any field of the complete model may be added on top (`deliveryDate` BT-72, `deliveryParty` BG-15, `paymentReference` BT-83, `supplier.bic` BT-86, ...). - **Complete format** (`invoiceLines` present): full `FacturXInvoice` structure, used as provided. A non-compliant invoice is **not submitted**: the Schematron errors are returned as a 400 `SCHEMATRON_VALIDATION_FAILED`, rather than a 200 followed by an asynchronous rejection by the PA. This includes the empty-element rule (PEPPOL-EN16931-R008), which the PAs apply as blocking. **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Destination credentials - 2 modes available:** **Mode 1 - Retrieval via JWT (recommended):** - Credentials are retrieved automatically via the JWT `client_uid` - Do not provide the `credentials` field in `destination` - Zero-trust architecture: no secrets in the payload - Example: `\"destination\": {\"type\": \"chorus_pro\"}` **Mode 2 - Credentials in the payload:** - Provide credentials directly in the payload - Useful for tests or third-party integrations - Example: `\"destination\": {\"type\": \"chorus_pro\", \"credentials\": {...}}` **Electronic signature (optional) - 2 modes available:** **Mode 1 - Stored certificate (recommended):** - Certificate is retrieved automatically via the JWT `client_uid` - No key to provide in the payload - PAdES-B-LT signature with timestamp (eIDAS compliant) - Example: `\"signature\": {\"reason\": \"Factur-X compliance\"}` **Mode 2 - Keys in the payload (for tests):** - Provide `key_pem` and `cert_pem` directly - PEM format accepted: raw or base64 - Useful for tests or special cases without stored certificate - Example: `\"signature\": {\"key_pem\": \"-----BEGIN...\", \"cert_pem\": \"-----BEGIN...\"}` If `key_pem` and `cert_pem` are provided → Mode 2 Otherwise → Mode 1 (certificate retrieved via `client_uid`)
114
114
  # @param submit_complete_invoice_request [SubmitCompleteInvoiceRequest]
115
115
  # @param [Hash] opts the optional parameters
116
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
116
117
  # @return [SubmitCompleteInvoiceResponse]
117
118
  def submit_complete_invoice_api_v1_processing_invoices_submit_complete_post(submit_complete_invoice_request, opts = {})
118
119
  data, _status_code, _headers = submit_complete_invoice_api_v1_processing_invoices_submit_complete_post_with_http_info(submit_complete_invoice_request, opts)
@@ -120,9 +121,10 @@ module FactPulse
120
121
  end
121
122
 
122
123
  # Submit a complete invoice (generation + signature + submission)
123
- # Unified endpoint to submit a complete invoice to different destinations. **Facture prête pour Flux 2** - Génère une facture Factur-X complète avec signature optionnelle et soumission vers Chorus Pro ou PDP AFNOR. **Automated workflow:** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Destination credentials - 2 modes available:** **Mode 1 - Retrieval via JWT (recommended):** - Credentials are retrieved automatically via the JWT &#x60;client_uid&#x60; - Do not provide the &#x60;credentials&#x60; field in &#x60;destination&#x60; - Zero-trust architecture: no secrets in the payload - Example: &#x60;\&quot;destination\&quot;: {\&quot;type\&quot;: \&quot;chorus_pro\&quot;}&#x60; **Mode 2 - Credentials in the payload:** - Provide credentials directly in the payload - Useful for tests or third-party integrations - Example: &#x60;\&quot;destination\&quot;: {\&quot;type\&quot;: \&quot;chorus_pro\&quot;, \&quot;credentials\&quot;: {...}}&#x60; **Electronic signature (optional) - 2 modes available:** **Mode 1 - Stored certificate (recommended):** - Certificate is retrieved automatically via the JWT &#x60;client_uid&#x60; - No key to provide in the payload - PAdES-B-LT signature with timestamp (eIDAS compliant) - Example: &#x60;\&quot;signature\&quot;: {\&quot;reason\&quot;: \&quot;Factur-X compliance\&quot;}&#x60; **Mode 2 - Keys in the payload (for tests):** - Provide &#x60;key_pem&#x60; and &#x60;cert_pem&#x60; directly - PEM format accepted: raw or base64 - Useful for tests or special cases without stored certificate - Example: &#x60;\&quot;signature\&quot;: {\&quot;key_pem\&quot;: \&quot;-----BEGIN...\&quot;, \&quot;cert_pem\&quot;: \&quot;-----BEGIN...\&quot;}&#x60; If &#x60;key_pem&#x60; and &#x60;cert_pem&#x60; are provided → Mode 2 Otherwise → Mode 1 (certificate retrieved via &#x60;client_uid&#x60;)
124
+ # Unified endpoint to submit a complete invoice to different destinations. **Facture prête pour Flux 2** - Génère une facture Factur-X complète avec signature optionnelle et soumission vers Chorus Pro ou PDP AFNOR. **Automated workflow:** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Two accepted &#x60;invoiceData&#x60; formats, detected automatically** (same rule as &#x60;/generate-invoice&#x60;): - **Simplified format** (&#x60;number&#x60; + &#x60;lines&#x60;): totals, VAT and dates are computed. Any field of the complete model may be added on top (&#x60;deliveryDate&#x60; BT-72, &#x60;deliveryParty&#x60; BG-15, &#x60;paymentReference&#x60; BT-83, &#x60;supplier.bic&#x60; BT-86, ...). - **Complete format** (&#x60;invoiceLines&#x60; present): full &#x60;FacturXInvoice&#x60; structure, used as provided. A non-compliant invoice is **not submitted**: the Schematron errors are returned as a 400 &#x60;SCHEMATRON_VALIDATION_FAILED&#x60;, rather than a 200 followed by an asynchronous rejection by the PA. This includes the empty-element rule (PEPPOL-EN16931-R008), which the PAs apply as blocking. **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Destination credentials - 2 modes available:** **Mode 1 - Retrieval via JWT (recommended):** - Credentials are retrieved automatically via the JWT &#x60;client_uid&#x60; - Do not provide the &#x60;credentials&#x60; field in &#x60;destination&#x60; - Zero-trust architecture: no secrets in the payload - Example: &#x60;\&quot;destination\&quot;: {\&quot;type\&quot;: \&quot;chorus_pro\&quot;}&#x60; **Mode 2 - Credentials in the payload:** - Provide credentials directly in the payload - Useful for tests or third-party integrations - Example: &#x60;\&quot;destination\&quot;: {\&quot;type\&quot;: \&quot;chorus_pro\&quot;, \&quot;credentials\&quot;: {...}}&#x60; **Electronic signature (optional) - 2 modes available:** **Mode 1 - Stored certificate (recommended):** - Certificate is retrieved automatically via the JWT &#x60;client_uid&#x60; - No key to provide in the payload - PAdES-B-LT signature with timestamp (eIDAS compliant) - Example: &#x60;\&quot;signature\&quot;: {\&quot;reason\&quot;: \&quot;Factur-X compliance\&quot;}&#x60; **Mode 2 - Keys in the payload (for tests):** - Provide &#x60;key_pem&#x60; and &#x60;cert_pem&#x60; directly - PEM format accepted: raw or base64 - Useful for tests or special cases without stored certificate - Example: &#x60;\&quot;signature\&quot;: {\&quot;key_pem\&quot;: \&quot;-----BEGIN...\&quot;, \&quot;cert_pem\&quot;: \&quot;-----BEGIN...\&quot;}&#x60; If &#x60;key_pem&#x60; and &#x60;cert_pem&#x60; are provided → Mode 2 Otherwise → Mode 1 (certificate retrieved via &#x60;client_uid&#x60;)
124
125
  # @param submit_complete_invoice_request [SubmitCompleteInvoiceRequest]
125
126
  # @param [Hash] opts the optional parameters
127
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
126
128
  # @return [Array<(SubmitCompleteInvoiceResponse, Integer, Hash)>] SubmitCompleteInvoiceResponse data, response status code and response headers
127
129
  def submit_complete_invoice_api_v1_processing_invoices_submit_complete_post_with_http_info(submit_complete_invoice_request, opts = {})
128
130
  if @api_client.config.debugging
@@ -147,6 +149,7 @@ module FactPulse
147
149
  if !content_type.nil?
148
150
  header_params['Content-Type'] = content_type
149
151
  end
152
+ header_params[:'Organization-Id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
150
153
 
151
154
  # form parameters
152
155
  form_params = opts[:form_params] || {}
@@ -183,6 +186,7 @@ module FactPulse
183
186
  # @param [Hash] opts the optional parameters
184
187
  # @option opts [String] :callback_url Webhook URL for async notification when submission completes.
185
188
  # @option opts [String] :webhook_mode Webhook content delivery: &#39;inline&#39; (base64 in payload) or &#39;download_url&#39; (temporary URL, 1h TTL) (default to 'inline')
189
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
186
190
  # @return [TaskResponse]
187
191
  def submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post(submit_complete_invoice_request, opts = {})
188
192
  data, _status_code, _headers = submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post_with_http_info(submit_complete_invoice_request, opts)
@@ -195,6 +199,7 @@ module FactPulse
195
199
  # @param [Hash] opts the optional parameters
196
200
  # @option opts [String] :callback_url Webhook URL for async notification when submission completes.
197
201
  # @option opts [String] :webhook_mode Webhook content delivery: &#39;inline&#39; (base64 in payload) or &#39;download_url&#39; (temporary URL, 1h TTL) (default to 'inline')
202
+ # @option opts [String] :organization_id Organization ID relayed to the PDP (AFNOR XP Z12-013 delegation / multi-tenancy). Required by some PDPs to select the client space.
198
203
  # @return [Array<(TaskResponse, Integer, Hash)>] TaskResponse data, response status code and response headers
199
204
  def submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post_with_http_info(submit_complete_invoice_request, opts = {})
200
205
  if @api_client.config.debugging
@@ -221,6 +226,7 @@ module FactPulse
221
226
  if !content_type.nil?
222
227
  header_params['Content-Type'] = content_type
223
228
  end
229
+ header_params[:'Organization-Id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
224
230
 
225
231
  # form parameters
226
232
  form_params = opts[:form_params] || {}
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -3,7 +3,11 @@
3
3
  # FactPulse SDK - Thin HTTP wrapper with auto-polling.
4
4
  #
5
5
  # Usage:
6
- # client = FactPulseClient.new('email', 'password', 'client_uid')
6
+ # client = FactPulse::Client.new(email: 'email', password: 'password', client_uid: 'client_uid')
7
+ # # or with a pre-obtained JWT (e.g. dashboard test token):
8
+ # client = FactPulse::Client.new(token: 'eyJ...')
9
+ # # positional form (backward compatible):
10
+ # client = FactPulse::Client.new('email', 'password', 'client_uid')
7
11
  #
8
12
  # # POST /api/v1/processing/invoices/submit-complete-async
9
13
  # result = client.post('processing/invoices/submit-complete-async',
@@ -31,15 +35,38 @@ module FactPulse
31
35
  class Client
32
36
  DEFAULT_API_URL = 'https://factpulse.fr'
33
37
 
34
- def initialize(email, password, client_uid, api_url: DEFAULT_API_URL, timeout: 60, polling_timeout: 120)
38
+ # Create a client.
39
+ #
40
+ # Keyword form (recommended):
41
+ # FactPulse::Client.new(email: '...', password: '...', client_uid: '...')
42
+ # FactPulse::Client.new(token: 'eyJ...') # pre-obtained JWT (e.g. dashboard test token)
43
+ #
44
+ # Positional form (backward compatible with <= 4.3.0):
45
+ # FactPulse::Client.new('email', 'password', 'client_uid')
46
+ def initialize(*args, email: nil, password: nil, client_uid: nil, token: nil,
47
+ api_url: DEFAULT_API_URL, timeout: 60, polling_timeout: 120)
48
+ unless args.empty?
49
+ if email || password || client_uid || token
50
+ raise ArgumentError, 'use either positional (email, password, client_uid) or keyword arguments, not both'
51
+ end
52
+ unless (2..3).cover?(args.length)
53
+ raise ArgumentError, "wrong number of arguments (given #{args.length}, expected 3)"
54
+ end
55
+ email, password, client_uid = args
56
+ end
57
+
58
+ if token.nil? && (email.nil? || password.nil?)
59
+ raise ArgumentError, 'provide email: and password: (or token: with a pre-obtained JWT)'
60
+ end
61
+
35
62
  @email = email
36
63
  @password = password
37
64
  @client_uid = client_uid
38
65
  @api_url = api_url.chomp('/')
39
66
  @timeout = timeout
40
67
  @polling_timeout = polling_timeout
41
- @token = nil
42
- @token_expires_at = 0
68
+ @token = token
69
+ @token_expires_at = token ? Float::INFINITY : 0
43
70
  @token_mutex = Mutex.new
44
71
  end
45
72
 
@@ -243,6 +270,14 @@ module FactPulse
243
270
  end
244
271
 
245
272
  def refresh_token
273
+ if @email.nil? || @password.nil?
274
+ raise Error.new(
275
+ 'Access token expired or rejected, and no email/password available to refresh it. ' \
276
+ 'Provide email: and password:, or create a new client with a fresh token:.',
277
+ status_code: 401
278
+ )
279
+ end
280
+
246
281
  uri = URI("#{@api_url}/api/token/")
247
282
  http = Net::HTTP.new(uri.host, uri.port)
248
283
  http.use_ssl = uri.scheme == 'https'
@@ -250,7 +285,9 @@ module FactPulse
250
285
 
251
286
  req = Net::HTTP::Post.new(uri)
252
287
  req['Content-Type'] = 'application/json'
253
- req.body = JSON.generate(username: @email, password: @password, client_uid: @client_uid)
288
+ payload = { username: @email, password: @password }
289
+ payload[:client_uid] = @client_uid if @client_uid
290
+ req.body = JSON.generate(payload)
254
291
 
255
292
  response = http.request(req)
256
293
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -14,12 +14,12 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module FactPulse
17
- class AFNORDiffusionStatus
18
- O = "O".freeze
19
- P = "P".freeze
17
+ class AFNORContainsOrStartWithOperator
18
+ CONTAINS = "contains".freeze
19
+ START_WITH = "startWith".freeze
20
20
 
21
21
  def self.all_vars
22
- @all_vars ||= [O, P].freeze
22
+ @all_vars ||= [CONTAINS, START_WITH].freeze
23
23
  end
24
24
 
25
25
  # Builds the enum from string
@@ -33,8 +33,8 @@ module FactPulse
33
33
  # @param [String] The enum value in the form of the string
34
34
  # @return [String] The enum value
35
35
  def build_from_hash(value)
36
- return value if AFNORDiffusionStatus.all_vars.include?(value)
37
- raise "Invalid ENUM value #{value} for class #AFNORDiffusionStatus"
36
+ return value if AFNORContainsOrStartWithOperator.all_vars.include?(value)
37
+ raise "Invalid ENUM value #{value} for class #AFNORContainsOrStartWithOperator"
38
38
  end
39
39
  end
40
40
  end
@@ -6,7 +6,7 @@
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.21.0-SNAPSHOT
9
+ Generator version: 7.21.0
10
10
 
11
11
  =end
12
12
 
@@ -14,11 +14,12 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module FactPulse
17
- class AFNORContainsOperator
17
+ class AFNORContainsOrStrictOperator
18
18
  CONTAINS = "contains".freeze
19
+ STRICT = "strict".freeze
19
20
 
20
21
  def self.all_vars
21
- @all_vars ||= [CONTAINS].freeze
22
+ @all_vars ||= [CONTAINS, STRICT].freeze
22
23
  end
23
24
 
24
25
  # Builds the enum from string
@@ -32,8 +33,8 @@ module FactPulse
32
33
  # @param [String] The enum value in the form of the string
33
34
  # @return [String] The enum value
34
35
  def build_from_hash(value)
35
- return value if AFNORContainsOperator.all_vars.include?(value)
36
- raise "Invalid ENUM value #{value} for class #AFNORContainsOperator"
36
+ return value if AFNORContainsOrStrictOperator.all_vars.include?(value)
37
+ raise "Invalid ENUM value #{value} for class #AFNORContainsOrStrictOperator"
37
38
  end
38
39
  end
39
40
  end
@@ -0,0 +1,41 @@
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
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FactPulse
17
+ class AFNORContainsOrStrictOrStartWithOperator
18
+ CONTAINS = "contains".freeze
19
+ STRICT = "strict".freeze
20
+ START_WITH = "startWith".freeze
21
+
22
+ def self.all_vars
23
+ @all_vars ||= [CONTAINS, STRICT, START_WITH].freeze
24
+ end
25
+
26
+ # Builds the enum from string
27
+ # @param [String] The enum value in the form of the string
28
+ # @return [String] The enum value
29
+ def self.build_from_hash(value)
30
+ new.build_from_hash(value)
31
+ end
32
+
33
+ # Builds the enum from string
34
+ # @param [String] The enum value in the form of the string
35
+ # @return [String] The enum value
36
+ def build_from_hash(value)
37
+ return value if AFNORContainsOrStrictOrStartWithOperator.all_vars.include?(value)
38
+ raise "Invalid ENUM value #{value} for class #AFNORContainsOrStrictOrStartWithOperator"
39
+ end
40
+ end
41
+ end