factpulse 3.0.10 → 3.0.14

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 (476) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -3
  3. data/Gemfile.lock +3 -3
  4. data/LICENSE +1 -1
  5. data/docs/AFNORAcknowledgement.md +20 -0
  6. data/docs/AFNORAcknowledgementDetail.md +24 -0
  7. data/docs/AFNORAddressEdit.md +30 -0
  8. data/docs/AFNORAddressPatch.md +30 -0
  9. data/docs/AFNORAddressPut.md +30 -0
  10. data/docs/AFNORAddressRead.md +32 -0
  11. data/docs/{ValidationErrorLocInner.md → AFNORAlgorithm.md} +2 -2
  12. data/docs/AFNORContainsOperator.md +15 -0
  13. data/docs/AFNORCreateDirectoryLineBody.md +20 -0
  14. data/docs/AFNORCreateDirectoryLineBodyAddressingInformation.md +24 -0
  15. data/docs/AFNORCreateDirectoryLineBodyPeriod.md +20 -0
  16. data/docs/AFNORCreateRoutingCodeBody.md +32 -0
  17. data/docs/AFNORDestination.md +4 -2
  18. data/docs/AFNORDiffusionStatus.md +15 -0
  19. data/docs/AFNORDirectoryLineField.md +15 -0
  20. data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCode.md +32 -0
  21. data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodePlatform.md +20 -0
  22. data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodeRoutingCode.md +28 -0
  23. data/docs/AFNORDirectoryLinePost201Response.md +22 -0
  24. data/docs/AFNORDirectoryLineSearchPost200Response.md +22 -0
  25. data/docs/AFNOREntityType.md +15 -0
  26. data/docs/AFNORError.md +26 -0
  27. data/docs/AFNORFacilityAdministrativeStatus.md +15 -0
  28. data/docs/AFNORFacilityNature.md +15 -0
  29. data/docs/AFNORFacilityPayloadHistory.md +34 -0
  30. data/docs/AFNORFacilityPayloadHistoryUleB2gAdditionalData.md +28 -0
  31. data/docs/AFNORFacilityPayloadIncluded.md +32 -0
  32. data/docs/AFNORFacilityType.md +15 -0
  33. data/docs/AFNORFlow.md +38 -0
  34. data/docs/AFNORFlowAckStatus.md +15 -0
  35. data/docs/AFNORFlowDirection.md +15 -0
  36. data/docs/AFNORFlowInfo.md +28 -0
  37. data/docs/AFNORFlowProfile.md +15 -0
  38. data/docs/AFNORFlowSyntax.md +15 -0
  39. data/docs/AFNORFlowType.md +15 -0
  40. data/docs/AFNORFullFlowInfo.md +32 -0
  41. data/docs/AFNORLegalUnitAdministrativeStatus.md +15 -0
  42. data/docs/AFNORLegalUnitPayloadHistory.md +24 -0
  43. data/docs/AFNORLegalUnitPayloadIncluded.md +24 -0
  44. data/docs/AFNORLegalUnitPayloadIncludedNoSiren.md +22 -0
  45. data/docs/AFNORPDPPAApi.md +5 -5
  46. data/docs/AFNORPDPPADirectoryServiceApi.md +278 -178
  47. data/docs/AFNORPDPPAFlowServiceApi.md +39 -27
  48. data/docs/AFNORPlatformStatus.md +15 -0
  49. data/docs/AFNORProcessingRule.md +15 -0
  50. data/docs/AFNORReasonCode.md +49 -0
  51. data/docs/AFNORReasonCodeEnum.md +15 -0
  52. data/docs/AFNORRecipientPlatformType.md +15 -0
  53. data/docs/AFNORResult.md +7 -1
  54. data/docs/AFNORRoutingCodeAdministrativeStatus.md +15 -0
  55. data/docs/AFNORRoutingCodeField.md +15 -0
  56. data/docs/AFNORRoutingCodePayloadHistoryLegalUnitFacility.md +34 -0
  57. data/docs/AFNORRoutingCodePost201Response.md +22 -0
  58. data/docs/AFNORRoutingCodeSearch.md +28 -0
  59. data/docs/AFNORRoutingCodeSearchFilters.md +30 -0
  60. data/docs/AFNORRoutingCodeSearchFiltersAdministrativeStatus.md +20 -0
  61. data/docs/AFNORRoutingCodeSearchFiltersRoutingCodeName.md +20 -0
  62. data/docs/AFNORRoutingCodeSearchFiltersRoutingIdentifier.md +20 -0
  63. data/docs/AFNORRoutingCodeSearchPost200Response.md +22 -0
  64. data/docs/AFNORRoutingCodeSearchSortingInner.md +20 -0
  65. data/docs/AFNORSearchDirectoryLine.md +26 -0
  66. data/docs/AFNORSearchDirectoryLineFilters.md +26 -0
  67. data/docs/AFNORSearchDirectoryLineFiltersAddressingIdentifier.md +20 -0
  68. data/docs/AFNORSearchDirectoryLineFiltersAddressingSuffix.md +20 -0
  69. data/docs/AFNORSearchDirectoryLineSortingInner.md +20 -0
  70. data/docs/AFNORSearchFlowContent.md +22 -0
  71. data/docs/AFNORSearchFlowFilters.md +30 -0
  72. data/docs/AFNORSearchFlowParams.md +20 -0
  73. data/docs/AFNORSearchSiren.md +26 -0
  74. data/docs/AFNORSearchSirenFilters.md +24 -0
  75. data/docs/AFNORSearchSirenFiltersAdministrativeStatus.md +20 -0
  76. data/docs/AFNORSearchSirenFiltersBusinessName.md +20 -0
  77. data/docs/AFNORSearchSirenFiltersEntityType.md +20 -0
  78. data/docs/AFNORSearchSirenFiltersSiren.md +20 -0
  79. data/docs/AFNORSearchSirenSortingInner.md +20 -0
  80. data/docs/AFNORSearchSiret.md +28 -0
  81. data/docs/AFNORSearchSiretFilters.md +34 -0
  82. data/docs/AFNORSearchSiretFiltersAddressLines.md +20 -0
  83. data/docs/AFNORSearchSiretFiltersAdministrativeStatus.md +20 -0
  84. data/docs/AFNORSearchSiretFiltersCountrySubdivision.md +20 -0
  85. data/docs/AFNORSearchSiretFiltersFacilityType.md +20 -0
  86. data/docs/AFNORSearchSiretFiltersLocality.md +20 -0
  87. data/docs/AFNORSearchSiretFiltersName.md +20 -0
  88. data/docs/AFNORSearchSiretFiltersPostalCode.md +20 -0
  89. data/docs/AFNORSearchSiretFiltersSiret.md +20 -0
  90. data/docs/AFNORSearchSiretSortingInner.md +20 -0
  91. data/docs/AFNORSirenField.md +15 -0
  92. data/docs/AFNORSirenSearchPost200Response.md +22 -0
  93. data/docs/AFNORSiretField.md +15 -0
  94. data/docs/AFNORSiretSearchPost200Response.md +22 -0
  95. data/docs/AFNORSortingOrder.md +15 -0
  96. data/docs/AFNORStrictOperator.md +15 -0
  97. data/docs/AFNORUpdatePatchDirectoryLineBody.md +18 -0
  98. data/docs/AFNORUpdatePatchRoutingCodeBody.md +24 -0
  99. data/docs/AFNORUpdatePutRoutingCodeBody.md +24 -0
  100. data/docs/AFNORWebhookCallbackContent.md +18 -0
  101. data/docs/AcceptLanguage.md +15 -0
  102. data/docs/AggregatedPaymentInput.md +22 -0
  103. data/docs/AggregatedTransactionInput.md +32 -0
  104. data/docs/AllowanceCharge.md +3 -3
  105. data/docs/AllowanceChargeReasonCode.md +15 -0
  106. data/docs/Amount1.md +15 -0
  107. data/docs/Buyercountry.md +15 -0
  108. data/docs/ChorusProApi.md +5 -3
  109. data/docs/{FactureElectroniqueRestApiSchemasChorusProChorusProCredentials.md → ChorusProCredentials.md} +2 -2
  110. data/docs/ConvertValidationFailedResponse.md +5 -5
  111. data/docs/CountryCode.md +15 -0
  112. data/docs/CreateAggregatedReportRequest.md +34 -0
  113. data/docs/CreateEReportingRequest.md +36 -0
  114. data/docs/Currency.md +15 -0
  115. data/docs/CurrencyCode.md +15 -0
  116. data/docs/DirectoryLineInclude.md +15 -0
  117. data/docs/DocType.md +15 -0
  118. data/docs/DocumentConversionApi.md +12 -86
  119. data/docs/DownloadsApi.md +295 -0
  120. data/docs/EReportingApi.md +782 -0
  121. data/docs/EReportingFlowType.md +15 -0
  122. data/docs/ElectronicAddress.md +2 -2
  123. data/docs/EnrichedInvoiceInfo.md +6 -6
  124. data/docs/FactureElectroniqueModelsInvoiceTypeCode.md +15 -0
  125. data/docs/FactureElectroniqueRestApiSchemasConvertValidationError.md +32 -0
  126. data/docs/FlowSummary.md +2 -2
  127. data/docs/GenerateAggregatedReportResponse.md +30 -0
  128. data/docs/GenerateEReportingResponse.md +26 -0
  129. data/docs/GetChorusProIdRequest.md +1 -1
  130. data/docs/GetInvoiceRequest.md +1 -1
  131. data/docs/GetInvoiceResponse.md +2 -2
  132. data/docs/GetStructureRequest.md +1 -1
  133. data/docs/GetStructureResponse.md +2 -2
  134. data/docs/HealthApi.md +1 -1
  135. data/docs/IncomingInvoice.md +1 -1
  136. data/docs/InvoiceInput.md +48 -0
  137. data/docs/InvoiceLine.md +4 -0
  138. data/docs/InvoiceNote.md +1 -1
  139. data/docs/InvoicePaymentInput.md +26 -0
  140. data/docs/InvoiceProcessingApi.md +41 -17
  141. data/docs/InvoiceTypeCodeOutput.md +15 -0
  142. data/docs/InvoicingFramework.md +1 -1
  143. data/docs/LineSubType.md +15 -0
  144. data/docs/LocationInner.md +15 -0
  145. data/docs/PDFXMLVerificationApi.md +17 -9
  146. data/docs/PaymentAmountByRate.md +20 -0
  147. data/docs/ProcessingRule.md +15 -0
  148. data/docs/Rate.md +15 -0
  149. data/docs/Rate1.md +15 -0
  150. data/docs/ReportPeriod.md +20 -0
  151. data/docs/ReportSender.md +22 -0
  152. data/docs/RoutingCodeInclude.md +15 -0
  153. data/docs/SearchServicesResponse.md +3 -3
  154. data/docs/SearchStructureRequest.md +1 -1
  155. data/docs/Sellercountry.md +15 -0
  156. data/docs/SimplifiedInvoiceData.md +9 -1
  157. data/docs/SiretInclude.md +15 -0
  158. data/docs/SubmitAggregatedReportRequest.md +28 -0
  159. data/docs/SubmitEReportingRequest.md +28 -0
  160. data/docs/SubmitEReportingResponse.md +32 -0
  161. data/docs/SubmitInvoiceRequest.md +1 -1
  162. data/docs/SupplementaryAttachment.md +5 -5
  163. data/docs/TaxBreakdownInput.md +22 -0
  164. data/docs/TaxDueDateType.md +15 -0
  165. data/docs/Taxableamount.md +15 -0
  166. data/docs/Taxamount.md +15 -0
  167. data/docs/Taxamount1.md +15 -0
  168. data/docs/Taxamount2.md +15 -0
  169. data/docs/Taxexclusiveamount.md +15 -0
  170. data/docs/Taxexclusiveamount1.md +15 -0
  171. data/docs/TransactionCategory.md +15 -0
  172. data/docs/TransmissionTypeCode.md +15 -0
  173. data/docs/UserApi.md +1 -1
  174. data/docs/ValidateEReportingRequest.md +18 -0
  175. data/docs/ValidateEReportingResponse.md +28 -0
  176. data/docs/ValidationError.md +1 -1
  177. data/docs/ValidationInfo.md +1 -1
  178. data/factpulse.gemspec +4 -4
  179. data/lib/factpulse/api/afnorpdppa_api.rb +6 -6
  180. data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +210 -123
  181. data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +57 -24
  182. data/lib/factpulse/api/chorus_pro_api.rb +6 -4
  183. data/lib/factpulse/api/document_conversion_api.rb +13 -85
  184. data/lib/factpulse/api/downloads_api.rb +280 -0
  185. data/lib/factpulse/api/e_reporting_api.rb +774 -0
  186. data/lib/factpulse/api/health_api.rb +2 -2
  187. data/lib/factpulse/api/invoice_processing_api.rb +47 -14
  188. data/lib/factpulse/api/pdfxml_verification_api.rb +22 -10
  189. data/lib/factpulse/api/user_api.rb +2 -2
  190. data/lib/factpulse/api_client.rb +2 -2
  191. data/lib/factpulse/api_error.rb +2 -2
  192. data/lib/factpulse/api_model_base.rb +2 -2
  193. data/lib/factpulse/configuration.rb +10 -6
  194. data/lib/factpulse/models/accept_language.rb +40 -0
  195. data/lib/factpulse/models/acknowledgment_status.rb +2 -2
  196. data/lib/factpulse/models/additional_document.rb +2 -2
  197. data/lib/factpulse/models/afnor_acknowledgement.rb +216 -0
  198. data/lib/factpulse/models/afnor_acknowledgement_detail.rb +267 -0
  199. data/lib/factpulse/models/afnor_address_edit.rb +353 -0
  200. data/lib/factpulse/models/afnor_address_patch.rb +386 -0
  201. data/lib/factpulse/models/afnor_address_put.rb +435 -0
  202. data/lib/factpulse/models/afnor_address_read.rb +382 -0
  203. data/lib/factpulse/models/afnor_algorithm.rb +43 -0
  204. data/lib/factpulse/models/afnor_contains_operator.rb +39 -0
  205. data/lib/factpulse/models/afnor_create_directory_line_body.rb +156 -0
  206. data/lib/factpulse/models/afnor_create_directory_line_body_addressing_information.rb +294 -0
  207. data/lib/factpulse/models/afnor_create_directory_line_body_period.rb +175 -0
  208. data/lib/factpulse/models/afnor_create_routing_code_body.rb +412 -0
  209. data/lib/factpulse/models/afnor_credentials.rb +2 -2
  210. data/lib/factpulse/models/afnor_destination.rb +19 -23
  211. data/lib/factpulse/models/afnor_diffusion_status.rb +40 -0
  212. data/lib/factpulse/models/afnor_directory_line_field.rb +44 -0
  213. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb +312 -0
  214. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb +178 -0
  215. data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.rb +308 -0
  216. data/lib/factpulse/models/afnor_directory_line_post201_response.rb +187 -0
  217. data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +168 -0
  218. data/lib/factpulse/models/afnor_entity_type.rb +40 -0
  219. data/lib/factpulse/models/{convert_error_response.rb → afnor_error.rb} +51 -61
  220. data/lib/factpulse/models/afnor_facility_administrative_status.rb +40 -0
  221. data/lib/factpulse/models/afnor_facility_nature.rb +40 -0
  222. data/lib/factpulse/models/afnor_facility_payload_history.rb +323 -0
  223. data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +198 -0
  224. data/lib/factpulse/models/afnor_facility_payload_included.rb +314 -0
  225. data/lib/factpulse/models/afnor_facility_type.rb +40 -0
  226. data/lib/factpulse/models/afnor_flow.rb +315 -0
  227. data/lib/factpulse/models/afnor_flow_ack_status.rb +41 -0
  228. data/lib/factpulse/models/afnor_flow_direction.rb +40 -0
  229. data/lib/factpulse/models/afnor_flow_info.rb +293 -0
  230. data/lib/factpulse/models/afnor_flow_profile.rb +41 -0
  231. data/lib/factpulse/models/afnor_flow_syntax.rb +43 -0
  232. data/lib/factpulse/models/afnor_flow_type.rb +51 -0
  233. data/lib/factpulse/models/afnor_full_flow_info.rb +339 -0
  234. data/lib/factpulse/models/afnor_health_check_response.rb +2 -2
  235. data/lib/factpulse/models/afnor_legal_unit_administrative_status.rb +40 -0
  236. data/lib/factpulse/models/afnor_legal_unit_payload_history.rb +247 -0
  237. data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +247 -0
  238. data/lib/factpulse/models/afnor_legal_unit_payload_included_no_siren.rb +207 -0
  239. data/lib/factpulse/models/afnor_platform_status.rb +40 -0
  240. data/lib/factpulse/models/afnor_processing_rule.rb +44 -0
  241. data/lib/factpulse/models/afnor_reason_code.rb +105 -0
  242. data/lib/factpulse/models/afnor_reason_code_enum.rb +53 -0
  243. data/lib/factpulse/models/afnor_recipient_platform_type.rb +40 -0
  244. data/lib/factpulse/models/afnor_result.rb +37 -7
  245. data/lib/factpulse/models/afnor_routing_code_administrative_status.rb +40 -0
  246. data/lib/factpulse/models/afnor_routing_code_field.rb +46 -0
  247. data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +366 -0
  248. data/lib/factpulse/models/afnor_routing_code_post201_response.rb +228 -0
  249. data/lib/factpulse/models/afnor_routing_code_search.rb +224 -0
  250. data/lib/factpulse/models/afnor_routing_code_search_filters.rb +201 -0
  251. data/lib/factpulse/models/afnor_routing_code_search_filters_administrative_status.rb +178 -0
  252. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_code_name.rb +209 -0
  253. data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +209 -0
  254. data/lib/factpulse/models/afnor_routing_code_search_post200_response.rb +168 -0
  255. data/lib/factpulse/models/afnor_routing_code_search_sorting_inner.rb +179 -0
  256. data/lib/factpulse/models/afnor_search_directory_line.rb +191 -0
  257. data/lib/factpulse/models/afnor_search_directory_line_filters.rb +183 -0
  258. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.rb +198 -0
  259. data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +198 -0
  260. data/lib/factpulse/models/afnor_search_directory_line_sorting_inner.rb +179 -0
  261. data/lib/factpulse/models/afnor_search_flow_content.rb +168 -0
  262. data/lib/factpulse/models/afnor_search_flow_filters.rb +250 -0
  263. data/lib/factpulse/models/afnor_search_flow_params.rb +195 -0
  264. data/lib/factpulse/models/afnor_search_siren.rb +191 -0
  265. data/lib/factpulse/models/afnor_search_siren_filters.rb +174 -0
  266. data/lib/factpulse/models/afnor_search_siren_filters_administrative_status.rb +178 -0
  267. data/lib/factpulse/models/afnor_search_siren_filters_business_name.rb +198 -0
  268. data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +178 -0
  269. data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +209 -0
  270. data/lib/factpulse/models/afnor_search_siren_sorting_inner.rb +179 -0
  271. data/lib/factpulse/models/afnor_search_siret.rb +224 -0
  272. data/lib/factpulse/models/afnor_search_siret_filters.rb +219 -0
  273. data/lib/factpulse/models/afnor_search_siret_filters_address_lines.rb +198 -0
  274. data/lib/factpulse/models/afnor_search_siret_filters_administrative_status.rb +178 -0
  275. data/lib/factpulse/models/afnor_search_siret_filters_country_subdivision.rb +198 -0
  276. data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +178 -0
  277. data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +198 -0
  278. data/lib/factpulse/models/afnor_search_siret_filters_name.rb +198 -0
  279. data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +209 -0
  280. data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +209 -0
  281. data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +179 -0
  282. data/lib/factpulse/models/afnor_siren_field.rb +43 -0
  283. data/lib/factpulse/models/afnor_siren_search_post200_response.rb +168 -0
  284. data/lib/factpulse/models/afnor_siret_field.rb +52 -0
  285. data/lib/factpulse/models/afnor_siret_search_post200_response.rb +168 -0
  286. data/lib/factpulse/models/afnor_sorting_order.rb +40 -0
  287. data/lib/factpulse/models/afnor_strict_operator.rb +39 -0
  288. data/lib/factpulse/models/afnor_update_patch_directory_line_body.rb +148 -0
  289. data/lib/factpulse/models/afnor_update_patch_routing_code_body.rb +258 -0
  290. data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +289 -0
  291. data/lib/factpulse/models/afnor_webhook_callback_content.rb +148 -0
  292. data/lib/factpulse/models/aggregated_payment_input.rb +213 -0
  293. data/lib/factpulse/models/aggregated_transaction_input.rb +349 -0
  294. data/lib/factpulse/models/allowance_charge.rb +27 -5
  295. data/lib/factpulse/models/allowance_charge_reason_code.rb +76 -0
  296. data/lib/factpulse/models/allowance_reason_code.rb +2 -2
  297. data/lib/factpulse/models/allowance_total_amount.rb +2 -2
  298. data/lib/factpulse/models/amount.rb +3 -3
  299. data/lib/factpulse/models/amount1.rb +104 -0
  300. data/lib/factpulse/models/amount_due.rb +2 -2
  301. data/lib/factpulse/models/api_error.rb +2 -2
  302. data/lib/factpulse/models/api_profile.rb +4 -3
  303. data/lib/factpulse/models/async_task_status.rb +2 -2
  304. data/lib/factpulse/models/base_amount.rb +2 -2
  305. data/lib/factpulse/models/bounding_box_schema.rb +2 -2
  306. data/lib/factpulse/models/buyercountry.rb +104 -0
  307. data/lib/factpulse/models/celery_status.rb +2 -2
  308. data/lib/factpulse/models/certificate_info_response.rb +2 -2
  309. data/lib/factpulse/models/charge_total_amount.rb +2 -2
  310. data/lib/factpulse/models/{facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb → chorus_pro_credentials.rb} +5 -5
  311. data/lib/factpulse/models/chorus_pro_destination.rb +2 -2
  312. data/lib/factpulse/models/chorus_pro_result.rb +2 -2
  313. data/lib/factpulse/models/contact.rb +2 -2
  314. data/lib/factpulse/models/convert_resume_request.rb +2 -2
  315. data/lib/factpulse/models/convert_success_response.rb +2 -2
  316. data/lib/factpulse/models/convert_validation_failed_response.rb +7 -2
  317. data/lib/factpulse/models/country_code.rb +208 -0
  318. data/lib/factpulse/models/create_aggregated_report_request.rb +310 -0
  319. data/lib/factpulse/models/create_e_reporting_request.rb +337 -0
  320. data/lib/factpulse/models/currency.rb +104 -0
  321. data/lib/factpulse/models/currency_code.rb +91 -0
  322. data/lib/factpulse/models/delivery_party.rb +2 -2
  323. data/lib/factpulse/models/destination.rb +2 -2
  324. data/lib/factpulse/models/directory_line_include.rb +42 -0
  325. data/lib/factpulse/models/doc_type.rb +42 -0
  326. data/lib/factpulse/models/document_type_info.rb +2 -2
  327. data/lib/factpulse/models/e_reporting_flow_type.rb +42 -0
  328. data/lib/factpulse/models/electronic_address.rb +4 -2
  329. data/lib/factpulse/models/enriched_invoice_info.rb +8 -2
  330. data/lib/factpulse/models/error_level.rb +2 -2
  331. data/lib/factpulse/models/error_source.rb +2 -2
  332. data/lib/factpulse/models/extraction_info.rb +2 -2
  333. data/lib/factpulse/models/factur_x_invoice.rb +2 -2
  334. data/lib/factpulse/models/factur_xpdf_info.rb +2 -2
  335. data/lib/factpulse/models/facture_electronique_models_invoice_type_code.rb +54 -0
  336. data/lib/factpulse/models/facture_electronique_rest_api_schemas_convert_validation_error.rb +294 -0
  337. data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +2 -2
  338. data/lib/factpulse/models/field_status.rb +2 -2
  339. data/lib/factpulse/models/file_info.rb +2 -2
  340. data/lib/factpulse/models/files_info.rb +2 -2
  341. data/lib/factpulse/models/flow_direction.rb +2 -2
  342. data/lib/factpulse/models/flow_profile.rb +2 -2
  343. data/lib/factpulse/models/flow_summary.rb +4 -2
  344. data/lib/factpulse/models/flow_syntax.rb +2 -2
  345. data/lib/factpulse/models/flow_type.rb +12 -4
  346. data/lib/factpulse/models/generate_aggregated_report_response.rb +330 -0
  347. data/lib/factpulse/models/generate_certificate_request.rb +2 -2
  348. data/lib/factpulse/models/generate_certificate_response.rb +2 -2
  349. data/lib/factpulse/models/generate_e_reporting_response.rb +274 -0
  350. data/lib/factpulse/models/get_chorus_pro_id_request.rb +3 -3
  351. data/lib/factpulse/models/get_chorus_pro_id_response.rb +2 -2
  352. data/lib/factpulse/models/get_invoice_request.rb +3 -3
  353. data/lib/factpulse/models/get_invoice_response.rb +4 -2
  354. data/lib/factpulse/models/get_structure_request.rb +3 -3
  355. data/lib/factpulse/models/get_structure_response.rb +4 -2
  356. data/lib/factpulse/models/global_allowance_amount.rb +2 -2
  357. data/lib/factpulse/models/gross_unit_price.rb +2 -2
  358. data/lib/factpulse/models/http_validation_error.rb +2 -2
  359. data/lib/factpulse/models/incoming_invoice.rb +3 -36
  360. data/lib/factpulse/models/incoming_supplier.rb +2 -2
  361. data/lib/factpulse/models/invoice_format.rb +2 -2
  362. data/lib/factpulse/models/invoice_input.rb +446 -0
  363. data/lib/factpulse/models/invoice_line.rb +23 -3
  364. data/lib/factpulse/models/invoice_line_allowance_amount.rb +2 -2
  365. data/lib/factpulse/models/invoice_note.rb +3 -2
  366. data/lib/factpulse/models/invoice_payment_input.rb +267 -0
  367. data/lib/factpulse/models/invoice_references.rb +2 -2
  368. data/lib/factpulse/models/invoice_status.rb +2 -2
  369. data/lib/factpulse/models/invoice_totals.rb +2 -2
  370. data/lib/factpulse/models/invoice_totals_prepayment.rb +2 -2
  371. data/lib/factpulse/models/invoice_type_code.rb +8 -19
  372. data/lib/factpulse/models/invoice_type_code_output.rb +54 -0
  373. data/lib/factpulse/models/invoicing_framework.rb +3 -2
  374. data/lib/factpulse/models/invoicing_framework_code.rb +2 -2
  375. data/lib/factpulse/models/line_net_amount.rb +2 -2
  376. data/lib/factpulse/models/line_sub_type.rb +41 -0
  377. data/lib/factpulse/models/line_total_amount.rb +2 -2
  378. data/lib/factpulse/models/{validation_error_loc_inner.rb → location_inner.rb} +3 -3
  379. data/lib/factpulse/models/mandatory_note_schema.rb +2 -2
  380. data/lib/factpulse/models/manual_rate.rb +2 -2
  381. data/lib/factpulse/models/manual_vat_rate.rb +2 -2
  382. data/lib/factpulse/models/missing_field.rb +2 -2
  383. data/lib/factpulse/models/operation_nature.rb +2 -2
  384. data/lib/factpulse/models/output_format.rb +2 -2
  385. data/lib/factpulse/models/page_dimensions_schema.rb +2 -2
  386. data/lib/factpulse/models/payee.rb +2 -2
  387. data/lib/factpulse/models/payment_amount_by_rate.rb +191 -0
  388. data/lib/factpulse/models/payment_card.rb +2 -2
  389. data/lib/factpulse/models/payment_means.rb +2 -2
  390. data/lib/factpulse/models/pdf_validation_result_api.rb +2 -2
  391. data/lib/factpulse/models/pdp_credentials.rb +2 -2
  392. data/lib/factpulse/models/percentage.rb +2 -2
  393. data/lib/factpulse/models/postal_address.rb +2 -2
  394. data/lib/factpulse/models/price_allowance_amount.rb +2 -2
  395. data/lib/factpulse/models/price_basis_quantity.rb +2 -2
  396. data/lib/factpulse/models/processing_options.rb +2 -2
  397. data/lib/factpulse/models/processing_rule.rb +44 -0
  398. data/lib/factpulse/models/product_characteristic.rb +2 -2
  399. data/lib/factpulse/models/product_classification.rb +2 -2
  400. data/lib/factpulse/models/quantity.rb +2 -2
  401. data/lib/factpulse/models/rate.rb +104 -0
  402. data/lib/factpulse/models/rate1.rb +104 -0
  403. data/lib/factpulse/models/recipient.rb +2 -2
  404. data/lib/factpulse/models/report_period.rb +193 -0
  405. data/lib/factpulse/models/report_sender.rb +221 -0
  406. data/lib/factpulse/models/rounding_amount.rb +2 -2
  407. data/lib/factpulse/models/routing_code_include.rb +40 -0
  408. data/lib/factpulse/models/scheme_id.rb +10 -3
  409. data/lib/factpulse/models/search_flow_request.rb +2 -2
  410. data/lib/factpulse/models/search_flow_response.rb +2 -2
  411. data/lib/factpulse/models/search_services_response.rb +5 -2
  412. data/lib/factpulse/models/search_structure_request.rb +3 -3
  413. data/lib/factpulse/models/search_structure_response.rb +2 -2
  414. data/lib/factpulse/models/sellercountry.rb +104 -0
  415. data/lib/factpulse/models/signature_info.rb +2 -2
  416. data/lib/factpulse/models/signature_info_api.rb +2 -2
  417. data/lib/factpulse/models/signature_parameters.rb +2 -2
  418. data/lib/factpulse/models/simplified_invoice_data.rb +69 -7
  419. data/lib/factpulse/models/siret_include.rb +39 -0
  420. data/lib/factpulse/models/structure_info.rb +2 -2
  421. data/lib/factpulse/models/structure_parameters.rb +2 -2
  422. data/lib/factpulse/models/structure_service.rb +2 -2
  423. data/lib/factpulse/models/submission_mode.rb +2 -2
  424. data/lib/factpulse/models/submit_aggregated_report_request.rb +216 -0
  425. data/lib/factpulse/models/submit_complete_invoice_request.rb +2 -2
  426. data/lib/factpulse/models/submit_complete_invoice_response.rb +2 -2
  427. data/lib/factpulse/models/submit_e_reporting_request.rb +216 -0
  428. data/lib/factpulse/models/submit_e_reporting_response.rb +306 -0
  429. data/lib/factpulse/models/submit_flow_request.rb +2 -2
  430. data/lib/factpulse/models/submit_flow_response.rb +2 -2
  431. data/lib/factpulse/models/submit_gross_amount.rb +2 -2
  432. data/lib/factpulse/models/submit_invoice_request.rb +3 -3
  433. data/lib/factpulse/models/submit_invoice_response.rb +2 -2
  434. data/lib/factpulse/models/submit_net_amount.rb +2 -2
  435. data/lib/factpulse/models/submit_vat_amount.rb +2 -2
  436. data/lib/factpulse/models/supplementary_attachment.rb +7 -2
  437. data/lib/factpulse/models/supplier.rb +2 -2
  438. data/lib/factpulse/models/task_response.rb +2 -2
  439. data/lib/factpulse/models/tax_breakdown_input.rb +217 -0
  440. data/lib/factpulse/models/tax_due_date_type.rb +44 -0
  441. data/lib/factpulse/models/tax_representative.rb +2 -2
  442. data/lib/factpulse/models/taxable_amount.rb +2 -2
  443. data/lib/factpulse/models/taxableamount0.rb +104 -0
  444. data/lib/factpulse/models/taxamount.rb +104 -0
  445. data/lib/factpulse/models/taxamount1.rb +104 -0
  446. data/lib/factpulse/models/taxamount2.rb +104 -0
  447. data/lib/factpulse/models/taxexclusiveamount.rb +104 -0
  448. data/lib/factpulse/models/taxexclusiveamount1.rb +104 -0
  449. data/lib/factpulse/models/total_gross_amount.rb +2 -2
  450. data/lib/factpulse/models/total_net_amount.rb +2 -2
  451. data/lib/factpulse/models/total_vat_amount.rb +2 -2
  452. data/lib/factpulse/models/transaction_category.rb +42 -0
  453. data/lib/factpulse/models/transmission_type_code.rb +40 -0
  454. data/lib/factpulse/models/unit_net_price.rb +2 -2
  455. data/lib/factpulse/models/unit_of_measure.rb +2 -2
  456. data/lib/factpulse/models/validate_e_reporting_request.rb +166 -0
  457. data/lib/factpulse/models/validate_e_reporting_response.rb +271 -0
  458. data/lib/factpulse/models/validation_error.rb +3 -3
  459. data/lib/factpulse/models/validation_error_detail.rb +2 -2
  460. data/lib/factpulse/models/validation_error_response.rb +2 -2
  461. data/lib/factpulse/models/validation_info.rb +3 -3
  462. data/lib/factpulse/models/validation_success_response.rb +2 -2
  463. data/lib/factpulse/models/vat_accounting_code.rb +2 -2
  464. data/lib/factpulse/models/vat_amount.rb +2 -2
  465. data/lib/factpulse/models/vat_category.rb +2 -2
  466. data/lib/factpulse/models/vat_line.rb +2 -2
  467. data/lib/factpulse/models/vat_point_date_code.rb +2 -2
  468. data/lib/factpulse/models/vat_rate.rb +2 -2
  469. data/lib/factpulse/models/verification_success_response.rb +2 -2
  470. data/lib/factpulse/models/verified_field_schema.rb +2 -2
  471. data/lib/factpulse/version.rb +3 -3
  472. data/lib/factpulse.rb +143 -6
  473. metadata +291 -17
  474. data/docs/ConvertErrorResponse.md +0 -26
  475. data/docs/ConvertPendingInputResponse.md +0 -32
  476. data/lib/factpulse/models/convert_pending_input_response.rb +0 -322
@@ -0,0 +1,774 @@
1
+ =begin
2
+ #FactPulse REST API
3
+
4
+ # REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Factur-X Invoice Generation - **Formats**: XML only or PDF/A-3 with embedded XML - **Profiles**: MINIMUM, BASIC, EN16931, EXTENDED - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT) - **🆕 Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Validation and Compliance - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata, electronic signatures - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) - **Asynchronous Processing**: Celery support for heavy validations (VeraPDF) ### 📡 AFNOR PDP/PA Integration (XP Z12-013) - **Flow Submission**: Send invoices to Partner Dematerialization Platforms - **Flow Search**: View submitted invoices - **Download**: Retrieve PDF/A-3 with XML - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user (stored credentials or zero-storage) ### ✍️ PDF Electronic Signature - **Standards**: PAdES-B-B, PAdES-B-T (RFC 3161 timestamping), PAdES-B-LT (long-term archival) - **eIDAS Levels**: SES (self-signed), AdES (commercial CA), QES (QTSP) - **Validation**: Cryptographic integrity and certificate verification - **Certificate Generation**: Self-signed X.509 certificates for testing ### 🔄 Asynchronous Processing - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **No timeout**: Ideal for large files or heavy validations ## 🔒 Authentication All requests require a **JWT token** in the Authorization header: ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### How to obtain a JWT token? #### 🔑 Method 1: `/api/token/` API (Recommended) **URL:** `https://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.19.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module FactPulse
16
+ class EReportingApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Generate aggregated e-reporting XML (PPF-compliant)
23
+ # Generate a PPF-compliant aggregated e-reporting XML containing multiple flux types in a single file. This endpoint creates a Report XML that can contain: - **TransactionsReport**: Invoice (10.1) AND/OR Transactions (10.3) - **PaymentsReport**: Invoice payments (10.2) AND/OR Transaction payments (10.4) The AFNOR FlowType is automatically determined based on content: - Single type → Specific FlowType (e.g., AggregatedCustomerTransactionReport) - Multiple types → MultiFlowReport **CategoryCode (TT-81)** must use PPF-compliant values: - TLB1: Goods deliveries - TPS1: Service provisions - TNT1: Non-taxed transactions - TMA1: Mixed transactions
24
+ # @param create_aggregated_report_request [CreateAggregatedReportRequest]
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [GenerateAggregatedReportResponse]
27
+ def generate_aggregated_ereporting_api_v1_ereporting_generate_aggregated_post(create_aggregated_report_request, opts = {})
28
+ data, _status_code, _headers = generate_aggregated_ereporting_api_v1_ereporting_generate_aggregated_post_with_http_info(create_aggregated_report_request, opts)
29
+ data
30
+ end
31
+
32
+ # Generate aggregated e-reporting XML (PPF-compliant)
33
+ # Generate a PPF-compliant aggregated e-reporting XML containing multiple flux types in a single file. This endpoint creates a Report XML that can contain: - **TransactionsReport**: Invoice (10.1) AND/OR Transactions (10.3) - **PaymentsReport**: Invoice payments (10.2) AND/OR Transaction payments (10.4) The AFNOR FlowType is automatically determined based on content: - Single type → Specific FlowType (e.g., AggregatedCustomerTransactionReport) - Multiple types → MultiFlowReport **CategoryCode (TT-81)** must use PPF-compliant values: - TLB1: Goods deliveries - TPS1: Service provisions - TNT1: Non-taxed transactions - TMA1: Mixed transactions
34
+ # @param create_aggregated_report_request [CreateAggregatedReportRequest]
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(GenerateAggregatedReportResponse, Integer, Hash)>] GenerateAggregatedReportResponse data, response status code and response headers
37
+ def generate_aggregated_ereporting_api_v1_ereporting_generate_aggregated_post_with_http_info(create_aggregated_report_request, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: EReportingApi.generate_aggregated_ereporting_api_v1_ereporting_generate_aggregated_post ...'
40
+ end
41
+ # verify the required parameter 'create_aggregated_report_request' is set
42
+ if @api_client.config.client_side_validation && create_aggregated_report_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'create_aggregated_report_request' when calling EReportingApi.generate_aggregated_ereporting_api_v1_ereporting_generate_aggregated_post"
44
+ end
45
+ # resource path
46
+ local_var_path = '/api/v1/ereporting/generate-aggregated'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+ # HTTP header 'Content-Type'
56
+ content_type = @api_client.select_header_content_type(['application/json'])
57
+ if !content_type.nil?
58
+ header_params['Content-Type'] = content_type
59
+ end
60
+
61
+ # form parameters
62
+ form_params = opts[:form_params] || {}
63
+
64
+ # http body (model)
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_aggregated_report_request)
66
+
67
+ # return_type
68
+ return_type = opts[:debug_return_type] || 'GenerateAggregatedReportResponse'
69
+
70
+ # auth_names
71
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
72
+
73
+ new_options = opts.merge(
74
+ :operation => :"EReportingApi.generate_aggregated_ereporting_api_v1_ereporting_generate_aggregated_post",
75
+ :header_params => header_params,
76
+ :query_params => query_params,
77
+ :form_params => form_params,
78
+ :body => post_body,
79
+ :auth_names => auth_names,
80
+ :return_type => return_type
81
+ )
82
+
83
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
84
+ if @api_client.config.debugging
85
+ @api_client.config.logger.debug "API called: EReportingApi#generate_aggregated_ereporting_api_v1_ereporting_generate_aggregated_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
86
+ end
87
+ return data, status_code, headers
88
+ end
89
+
90
+ # Generate e-reporting XML
91
+ # Generate e-reporting XML (FRR format) from structured data. Supports all four flow types: - **10.1**: Unitary B2B international transactions (use `invoices` field) - **10.2**: Payments for B2B international invoices (use `invoicePayments` field) - **10.3**: Aggregated B2C transactions (use `transactions` field) - **10.4**: Aggregated B2C payments (use `aggregatedPayments` field) The generated XML is compliant with DGFIP specifications and ready for submission to a PA (Plateforme Agréée).
92
+ # @param create_e_reporting_request [CreateEReportingRequest]
93
+ # @param [Hash] opts the optional parameters
94
+ # @return [GenerateEReportingResponse]
95
+ def generate_ereporting_api_v1_ereporting_generate_post(create_e_reporting_request, opts = {})
96
+ data, _status_code, _headers = generate_ereporting_api_v1_ereporting_generate_post_with_http_info(create_e_reporting_request, opts)
97
+ data
98
+ end
99
+
100
+ # Generate e-reporting XML
101
+ # Generate e-reporting XML (FRR format) from structured data. Supports all four flow types: - **10.1**: Unitary B2B international transactions (use &#x60;invoices&#x60; field) - **10.2**: Payments for B2B international invoices (use &#x60;invoicePayments&#x60; field) - **10.3**: Aggregated B2C transactions (use &#x60;transactions&#x60; field) - **10.4**: Aggregated B2C payments (use &#x60;aggregatedPayments&#x60; field) The generated XML is compliant with DGFIP specifications and ready for submission to a PA (Plateforme Agréée).
102
+ # @param create_e_reporting_request [CreateEReportingRequest]
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [Array<(GenerateEReportingResponse, Integer, Hash)>] GenerateEReportingResponse data, response status code and response headers
105
+ def generate_ereporting_api_v1_ereporting_generate_post_with_http_info(create_e_reporting_request, opts = {})
106
+ if @api_client.config.debugging
107
+ @api_client.config.logger.debug 'Calling API: EReportingApi.generate_ereporting_api_v1_ereporting_generate_post ...'
108
+ end
109
+ # verify the required parameter 'create_e_reporting_request' is set
110
+ if @api_client.config.client_side_validation && create_e_reporting_request.nil?
111
+ fail ArgumentError, "Missing the required parameter 'create_e_reporting_request' when calling EReportingApi.generate_ereporting_api_v1_ereporting_generate_post"
112
+ end
113
+ # resource path
114
+ local_var_path = '/api/v1/ereporting/generate'
115
+
116
+ # query parameters
117
+ query_params = opts[:query_params] || {}
118
+
119
+ # header parameters
120
+ header_params = opts[:header_params] || {}
121
+ # HTTP header 'Accept' (if needed)
122
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
123
+ # HTTP header 'Content-Type'
124
+ content_type = @api_client.select_header_content_type(['application/json'])
125
+ if !content_type.nil?
126
+ header_params['Content-Type'] = content_type
127
+ end
128
+
129
+ # form parameters
130
+ form_params = opts[:form_params] || {}
131
+
132
+ # http body (model)
133
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_e_reporting_request)
134
+
135
+ # return_type
136
+ return_type = opts[:debug_return_type] || 'GenerateEReportingResponse'
137
+
138
+ # auth_names
139
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
140
+
141
+ new_options = opts.merge(
142
+ :operation => :"EReportingApi.generate_ereporting_api_v1_ereporting_generate_post",
143
+ :header_params => header_params,
144
+ :query_params => query_params,
145
+ :form_params => form_params,
146
+ :body => post_body,
147
+ :auth_names => auth_names,
148
+ :return_type => return_type
149
+ )
150
+
151
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
152
+ if @api_client.config.debugging
153
+ @api_client.config.logger.debug "API called: EReportingApi#generate_ereporting_api_v1_ereporting_generate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
154
+ end
155
+ return data, status_code, headers
156
+ end
157
+
158
+ # Generate and download e-reporting XML
159
+ # Generate e-reporting XML and return as downloadable file.
160
+ # @param create_e_reporting_request [CreateEReportingRequest]
161
+ # @param [Hash] opts the optional parameters
162
+ # @option opts [String] :filename Output filename (default: ereporting_{reportId}.xml)
163
+ # @return [nil]
164
+ def generate_ereporting_download_api_v1_ereporting_generate_download_post(create_e_reporting_request, opts = {})
165
+ generate_ereporting_download_api_v1_ereporting_generate_download_post_with_http_info(create_e_reporting_request, opts)
166
+ nil
167
+ end
168
+
169
+ # Generate and download e-reporting XML
170
+ # Generate e-reporting XML and return as downloadable file.
171
+ # @param create_e_reporting_request [CreateEReportingRequest]
172
+ # @param [Hash] opts the optional parameters
173
+ # @option opts [String] :filename Output filename (default: ereporting_{reportId}.xml)
174
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
175
+ def generate_ereporting_download_api_v1_ereporting_generate_download_post_with_http_info(create_e_reporting_request, opts = {})
176
+ if @api_client.config.debugging
177
+ @api_client.config.logger.debug 'Calling API: EReportingApi.generate_ereporting_download_api_v1_ereporting_generate_download_post ...'
178
+ end
179
+ # verify the required parameter 'create_e_reporting_request' is set
180
+ if @api_client.config.client_side_validation && create_e_reporting_request.nil?
181
+ fail ArgumentError, "Missing the required parameter 'create_e_reporting_request' when calling EReportingApi.generate_ereporting_download_api_v1_ereporting_generate_download_post"
182
+ end
183
+ # resource path
184
+ local_var_path = '/api/v1/ereporting/generate/download'
185
+
186
+ # query parameters
187
+ query_params = opts[:query_params] || {}
188
+ query_params[:'filename'] = opts[:'filename'] if !opts[:'filename'].nil?
189
+
190
+ # header parameters
191
+ header_params = opts[:header_params] || {}
192
+ # HTTP header 'Accept' (if needed)
193
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
194
+ # HTTP header 'Content-Type'
195
+ content_type = @api_client.select_header_content_type(['application/json'])
196
+ if !content_type.nil?
197
+ header_params['Content-Type'] = content_type
198
+ end
199
+
200
+ # form parameters
201
+ form_params = opts[:form_params] || {}
202
+
203
+ # http body (model)
204
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_e_reporting_request)
205
+
206
+ # return_type
207
+ return_type = opts[:debug_return_type]
208
+
209
+ # auth_names
210
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
211
+
212
+ new_options = opts.merge(
213
+ :operation => :"EReportingApi.generate_ereporting_download_api_v1_ereporting_generate_download_post",
214
+ :header_params => header_params,
215
+ :query_params => query_params,
216
+ :form_params => form_params,
217
+ :body => post_body,
218
+ :auth_names => auth_names,
219
+ :return_type => return_type
220
+ )
221
+
222
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
223
+ if @api_client.config.debugging
224
+ @api_client.config.logger.debug "API called: EReportingApi#generate_ereporting_download_api_v1_ereporting_generate_download_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
225
+ end
226
+ return data, status_code, headers
227
+ end
228
+
229
+ # List PPF-compliant category codes
230
+ # Returns the list of valid CategoryCode values (TT-81) for e-reporting transactions. Source: Annexe 6 - Format sémantique FE e-reporting v1.9
231
+ # @param [Hash] opts the optional parameters
232
+ # @return [Hash<String, Object>]
233
+ def list_category_codes_api_v1_ereporting_category_codes_get(opts = {})
234
+ data, _status_code, _headers = list_category_codes_api_v1_ereporting_category_codes_get_with_http_info(opts)
235
+ data
236
+ end
237
+
238
+ # List PPF-compliant category codes
239
+ # Returns the list of valid CategoryCode values (TT-81) for e-reporting transactions. Source: Annexe 6 - Format sémantique FE e-reporting v1.9
240
+ # @param [Hash] opts the optional parameters
241
+ # @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
242
+ def list_category_codes_api_v1_ereporting_category_codes_get_with_http_info(opts = {})
243
+ if @api_client.config.debugging
244
+ @api_client.config.logger.debug 'Calling API: EReportingApi.list_category_codes_api_v1_ereporting_category_codes_get ...'
245
+ end
246
+ # resource path
247
+ local_var_path = '/api/v1/ereporting/category-codes'
248
+
249
+ # query parameters
250
+ query_params = opts[:query_params] || {}
251
+
252
+ # header parameters
253
+ header_params = opts[:header_params] || {}
254
+ # HTTP header 'Accept' (if needed)
255
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
256
+
257
+ # form parameters
258
+ form_params = opts[:form_params] || {}
259
+
260
+ # http body (model)
261
+ post_body = opts[:debug_body]
262
+
263
+ # return_type
264
+ return_type = opts[:debug_return_type] || 'Hash<String, Object>'
265
+
266
+ # auth_names
267
+ auth_names = opts[:debug_auth_names] || []
268
+
269
+ new_options = opts.merge(
270
+ :operation => :"EReportingApi.list_category_codes_api_v1_ereporting_category_codes_get",
271
+ :header_params => header_params,
272
+ :query_params => query_params,
273
+ :form_params => form_params,
274
+ :body => post_body,
275
+ :auth_names => auth_names,
276
+ :return_type => return_type
277
+ )
278
+
279
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
280
+ if @api_client.config.debugging
281
+ @api_client.config.logger.debug "API called: EReportingApi#list_category_codes_api_v1_ereporting_category_codes_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
282
+ end
283
+ return data, status_code, headers
284
+ end
285
+
286
+ # List available flow types
287
+ # Returns the list of supported e-reporting flow types with descriptions.
288
+ # @param [Hash] opts the optional parameters
289
+ # @return [Hash<String, Object>]
290
+ def list_flow_types_api_v1_ereporting_flow_types_get(opts = {})
291
+ data, _status_code, _headers = list_flow_types_api_v1_ereporting_flow_types_get_with_http_info(opts)
292
+ data
293
+ end
294
+
295
+ # List available flow types
296
+ # Returns the list of supported e-reporting flow types with descriptions.
297
+ # @param [Hash] opts the optional parameters
298
+ # @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
299
+ def list_flow_types_api_v1_ereporting_flow_types_get_with_http_info(opts = {})
300
+ if @api_client.config.debugging
301
+ @api_client.config.logger.debug 'Calling API: EReportingApi.list_flow_types_api_v1_ereporting_flow_types_get ...'
302
+ end
303
+ # resource path
304
+ local_var_path = '/api/v1/ereporting/flow-types'
305
+
306
+ # query parameters
307
+ query_params = opts[:query_params] || {}
308
+
309
+ # header parameters
310
+ header_params = opts[:header_params] || {}
311
+ # HTTP header 'Accept' (if needed)
312
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
313
+
314
+ # form parameters
315
+ form_params = opts[:form_params] || {}
316
+
317
+ # http body (model)
318
+ post_body = opts[:debug_body]
319
+
320
+ # return_type
321
+ return_type = opts[:debug_return_type] || 'Hash<String, Object>'
322
+
323
+ # auth_names
324
+ auth_names = opts[:debug_auth_names] || []
325
+
326
+ new_options = opts.merge(
327
+ :operation => :"EReportingApi.list_flow_types_api_v1_ereporting_flow_types_get",
328
+ :header_params => header_params,
329
+ :query_params => query_params,
330
+ :form_params => form_params,
331
+ :body => post_body,
332
+ :auth_names => auth_names,
333
+ :return_type => return_type
334
+ )
335
+
336
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
337
+ if @api_client.config.debugging
338
+ @api_client.config.logger.debug "API called: EReportingApi#list_flow_types_api_v1_ereporting_flow_types_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
339
+ end
340
+ return data, status_code, headers
341
+ end
342
+
343
+ # Submit aggregated e-reporting to PA/PDP
344
+ # Generate and submit a PPF-compliant aggregated e-reporting to a PA/PDP. Combines generation and submission in a single call. Automatically determines the AFNOR FlowType based on content.
345
+ # @param submit_aggregated_report_request [SubmitAggregatedReportRequest]
346
+ # @param [Hash] opts the optional parameters
347
+ # @return [SubmitEReportingResponse]
348
+ def submit_aggregated_ereporting_api_v1_ereporting_submit_aggregated_post(submit_aggregated_report_request, opts = {})
349
+ data, _status_code, _headers = submit_aggregated_ereporting_api_v1_ereporting_submit_aggregated_post_with_http_info(submit_aggregated_report_request, opts)
350
+ data
351
+ end
352
+
353
+ # Submit aggregated e-reporting to PA/PDP
354
+ # Generate and submit a PPF-compliant aggregated e-reporting to a PA/PDP. Combines generation and submission in a single call. Automatically determines the AFNOR FlowType based on content.
355
+ # @param submit_aggregated_report_request [SubmitAggregatedReportRequest]
356
+ # @param [Hash] opts the optional parameters
357
+ # @return [Array<(SubmitEReportingResponse, Integer, Hash)>] SubmitEReportingResponse data, response status code and response headers
358
+ def submit_aggregated_ereporting_api_v1_ereporting_submit_aggregated_post_with_http_info(submit_aggregated_report_request, opts = {})
359
+ if @api_client.config.debugging
360
+ @api_client.config.logger.debug 'Calling API: EReportingApi.submit_aggregated_ereporting_api_v1_ereporting_submit_aggregated_post ...'
361
+ end
362
+ # verify the required parameter 'submit_aggregated_report_request' is set
363
+ if @api_client.config.client_side_validation && submit_aggregated_report_request.nil?
364
+ fail ArgumentError, "Missing the required parameter 'submit_aggregated_report_request' when calling EReportingApi.submit_aggregated_ereporting_api_v1_ereporting_submit_aggregated_post"
365
+ end
366
+ # resource path
367
+ local_var_path = '/api/v1/ereporting/submit-aggregated'
368
+
369
+ # query parameters
370
+ query_params = opts[:query_params] || {}
371
+
372
+ # header parameters
373
+ header_params = opts[:header_params] || {}
374
+ # HTTP header 'Accept' (if needed)
375
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
376
+ # HTTP header 'Content-Type'
377
+ content_type = @api_client.select_header_content_type(['application/json'])
378
+ if !content_type.nil?
379
+ header_params['Content-Type'] = content_type
380
+ end
381
+
382
+ # form parameters
383
+ form_params = opts[:form_params] || {}
384
+
385
+ # http body (model)
386
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(submit_aggregated_report_request)
387
+
388
+ # return_type
389
+ return_type = opts[:debug_return_type] || 'SubmitEReportingResponse'
390
+
391
+ # auth_names
392
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
393
+
394
+ new_options = opts.merge(
395
+ :operation => :"EReportingApi.submit_aggregated_ereporting_api_v1_ereporting_submit_aggregated_post",
396
+ :header_params => header_params,
397
+ :query_params => query_params,
398
+ :form_params => form_params,
399
+ :body => post_body,
400
+ :auth_names => auth_names,
401
+ :return_type => return_type
402
+ )
403
+
404
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
405
+ if @api_client.config.debugging
406
+ @api_client.config.logger.debug "API called: EReportingApi#submit_aggregated_ereporting_api_v1_ereporting_submit_aggregated_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
407
+ end
408
+ return data, status_code, headers
409
+ end
410
+
411
+ # Submit e-reporting to PA/PDP
412
+ # Generate and submit e-reporting to a PA (Plateforme Agréée). Authentication strategies (same as invoices): 1. **JWT with client_uid** (recommended): PDP credentials fetched from backend 2. **Zero-storage**: Provide pdpFlowServiceUrl, pdpClientId, pdpClientSecret in request The e-reporting is submitted using the AFNOR Flow Service API with syntax=FRR (FRench Reporting).
413
+ # @param submit_e_reporting_request [SubmitEReportingRequest]
414
+ # @param [Hash] opts the optional parameters
415
+ # @return [SubmitEReportingResponse]
416
+ def submit_ereporting_api_v1_ereporting_submit_post(submit_e_reporting_request, opts = {})
417
+ data, _status_code, _headers = submit_ereporting_api_v1_ereporting_submit_post_with_http_info(submit_e_reporting_request, opts)
418
+ data
419
+ end
420
+
421
+ # Submit e-reporting to PA/PDP
422
+ # Generate and submit e-reporting to a PA (Plateforme Agréée). Authentication strategies (same as invoices): 1. **JWT with client_uid** (recommended): PDP credentials fetched from backend 2. **Zero-storage**: Provide pdpFlowServiceUrl, pdpClientId, pdpClientSecret in request The e-reporting is submitted using the AFNOR Flow Service API with syntax&#x3D;FRR (FRench Reporting).
423
+ # @param submit_e_reporting_request [SubmitEReportingRequest]
424
+ # @param [Hash] opts the optional parameters
425
+ # @return [Array<(SubmitEReportingResponse, Integer, Hash)>] SubmitEReportingResponse data, response status code and response headers
426
+ def submit_ereporting_api_v1_ereporting_submit_post_with_http_info(submit_e_reporting_request, opts = {})
427
+ if @api_client.config.debugging
428
+ @api_client.config.logger.debug 'Calling API: EReportingApi.submit_ereporting_api_v1_ereporting_submit_post ...'
429
+ end
430
+ # verify the required parameter 'submit_e_reporting_request' is set
431
+ if @api_client.config.client_side_validation && submit_e_reporting_request.nil?
432
+ fail ArgumentError, "Missing the required parameter 'submit_e_reporting_request' when calling EReportingApi.submit_ereporting_api_v1_ereporting_submit_post"
433
+ end
434
+ # resource path
435
+ local_var_path = '/api/v1/ereporting/submit'
436
+
437
+ # query parameters
438
+ query_params = opts[:query_params] || {}
439
+
440
+ # header parameters
441
+ header_params = opts[:header_params] || {}
442
+ # HTTP header 'Accept' (if needed)
443
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
444
+ # HTTP header 'Content-Type'
445
+ content_type = @api_client.select_header_content_type(['application/json'])
446
+ if !content_type.nil?
447
+ header_params['Content-Type'] = content_type
448
+ end
449
+
450
+ # form parameters
451
+ form_params = opts[:form_params] || {}
452
+
453
+ # http body (model)
454
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(submit_e_reporting_request)
455
+
456
+ # return_type
457
+ return_type = opts[:debug_return_type] || 'SubmitEReportingResponse'
458
+
459
+ # auth_names
460
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
461
+
462
+ new_options = opts.merge(
463
+ :operation => :"EReportingApi.submit_ereporting_api_v1_ereporting_submit_post",
464
+ :header_params => header_params,
465
+ :query_params => query_params,
466
+ :form_params => form_params,
467
+ :body => post_body,
468
+ :auth_names => auth_names,
469
+ :return_type => return_type
470
+ )
471
+
472
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
473
+ if @api_client.config.debugging
474
+ @api_client.config.logger.debug "API called: EReportingApi#submit_ereporting_api_v1_ereporting_submit_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
475
+ end
476
+ return data, status_code, headers
477
+ end
478
+
479
+ # Submit pre-generated e-reporting XML
480
+ # Submit a pre-generated e-reporting XML file directly to a PA/PDP. This endpoint is designed for clients who generate their own PPF-compliant XML and only need FactPulse for the PDP submission. **Process:** 1. Validates the XML against PPF XSD schemas 2. Determines the appropriate AFNOR FlowType 3. Submits to the configured PDP/PA 4. Returns the flowId for tracking **Authentication:** Same strategies as /submit endpoint (JWT or zero-storage credentials).
481
+ # @param xml_file [File] E-reporting XML file
482
+ # @param [Hash] opts the optional parameters
483
+ # @option opts [String] :tracking_id
484
+ # @option opts [Boolean] :skip_validation Skip XSD validation (default to false)
485
+ # @option opts [String] :pdp_flow_service_url
486
+ # @option opts [String] :pdp_token_url
487
+ # @option opts [String] :pdp_client_id
488
+ # @option opts [String] :pdp_client_secret
489
+ # @return [SubmitEReportingResponse]
490
+ def submit_xml_ereporting_api_v1_ereporting_submit_xml_post(xml_file, opts = {})
491
+ data, _status_code, _headers = submit_xml_ereporting_api_v1_ereporting_submit_xml_post_with_http_info(xml_file, opts)
492
+ data
493
+ end
494
+
495
+ # Submit pre-generated e-reporting XML
496
+ # Submit a pre-generated e-reporting XML file directly to a PA/PDP. This endpoint is designed for clients who generate their own PPF-compliant XML and only need FactPulse for the PDP submission. **Process:** 1. Validates the XML against PPF XSD schemas 2. Determines the appropriate AFNOR FlowType 3. Submits to the configured PDP/PA 4. Returns the flowId for tracking **Authentication:** Same strategies as /submit endpoint (JWT or zero-storage credentials).
497
+ # @param xml_file [File] E-reporting XML file
498
+ # @param [Hash] opts the optional parameters
499
+ # @option opts [String] :tracking_id
500
+ # @option opts [Boolean] :skip_validation Skip XSD validation (default to false)
501
+ # @option opts [String] :pdp_flow_service_url
502
+ # @option opts [String] :pdp_token_url
503
+ # @option opts [String] :pdp_client_id
504
+ # @option opts [String] :pdp_client_secret
505
+ # @return [Array<(SubmitEReportingResponse, Integer, Hash)>] SubmitEReportingResponse data, response status code and response headers
506
+ def submit_xml_ereporting_api_v1_ereporting_submit_xml_post_with_http_info(xml_file, opts = {})
507
+ if @api_client.config.debugging
508
+ @api_client.config.logger.debug 'Calling API: EReportingApi.submit_xml_ereporting_api_v1_ereporting_submit_xml_post ...'
509
+ end
510
+ # verify the required parameter 'xml_file' is set
511
+ if @api_client.config.client_side_validation && xml_file.nil?
512
+ fail ArgumentError, "Missing the required parameter 'xml_file' when calling EReportingApi.submit_xml_ereporting_api_v1_ereporting_submit_xml_post"
513
+ end
514
+ # resource path
515
+ local_var_path = '/api/v1/ereporting/submit-xml'
516
+
517
+ # query parameters
518
+ query_params = opts[:query_params] || {}
519
+
520
+ # header parameters
521
+ header_params = opts[:header_params] || {}
522
+ # HTTP header 'Accept' (if needed)
523
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
524
+ # HTTP header 'Content-Type'
525
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
526
+ if !content_type.nil?
527
+ header_params['Content-Type'] = content_type
528
+ end
529
+
530
+ # form parameters
531
+ form_params = opts[:form_params] || {}
532
+ form_params['xml_file'] = xml_file
533
+ form_params['tracking_id'] = opts[:'tracking_id'] if !opts[:'tracking_id'].nil?
534
+ form_params['skip_validation'] = opts[:'skip_validation'] if !opts[:'skip_validation'].nil?
535
+ form_params['pdp_flow_service_url'] = opts[:'pdp_flow_service_url'] if !opts[:'pdp_flow_service_url'].nil?
536
+ form_params['pdp_token_url'] = opts[:'pdp_token_url'] if !opts[:'pdp_token_url'].nil?
537
+ form_params['pdp_client_id'] = opts[:'pdp_client_id'] if !opts[:'pdp_client_id'].nil?
538
+ form_params['pdp_client_secret'] = opts[:'pdp_client_secret'] if !opts[:'pdp_client_secret'].nil?
539
+
540
+ # http body (model)
541
+ post_body = opts[:debug_body]
542
+
543
+ # return_type
544
+ return_type = opts[:debug_return_type] || 'SubmitEReportingResponse'
545
+
546
+ # auth_names
547
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
548
+
549
+ new_options = opts.merge(
550
+ :operation => :"EReportingApi.submit_xml_ereporting_api_v1_ereporting_submit_xml_post",
551
+ :header_params => header_params,
552
+ :query_params => query_params,
553
+ :form_params => form_params,
554
+ :body => post_body,
555
+ :auth_names => auth_names,
556
+ :return_type => return_type
557
+ )
558
+
559
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
560
+ if @api_client.config.debugging
561
+ @api_client.config.logger.debug "API called: EReportingApi#submit_xml_ereporting_api_v1_ereporting_submit_xml_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
562
+ end
563
+ return data, status_code, headers
564
+ end
565
+
566
+ # Validate aggregated e-reporting data
567
+ # Validates aggregated e-reporting data without generating XML.
568
+ # @param create_aggregated_report_request [CreateAggregatedReportRequest]
569
+ # @param [Hash] opts the optional parameters
570
+ # @return [Hash<String, Object>]
571
+ def validate_aggregated_ereporting_api_v1_ereporting_validate_aggregated_post(create_aggregated_report_request, opts = {})
572
+ data, _status_code, _headers = validate_aggregated_ereporting_api_v1_ereporting_validate_aggregated_post_with_http_info(create_aggregated_report_request, opts)
573
+ data
574
+ end
575
+
576
+ # Validate aggregated e-reporting data
577
+ # Validates aggregated e-reporting data without generating XML.
578
+ # @param create_aggregated_report_request [CreateAggregatedReportRequest]
579
+ # @param [Hash] opts the optional parameters
580
+ # @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
581
+ def validate_aggregated_ereporting_api_v1_ereporting_validate_aggregated_post_with_http_info(create_aggregated_report_request, opts = {})
582
+ if @api_client.config.debugging
583
+ @api_client.config.logger.debug 'Calling API: EReportingApi.validate_aggregated_ereporting_api_v1_ereporting_validate_aggregated_post ...'
584
+ end
585
+ # verify the required parameter 'create_aggregated_report_request' is set
586
+ if @api_client.config.client_side_validation && create_aggregated_report_request.nil?
587
+ fail ArgumentError, "Missing the required parameter 'create_aggregated_report_request' when calling EReportingApi.validate_aggregated_ereporting_api_v1_ereporting_validate_aggregated_post"
588
+ end
589
+ # resource path
590
+ local_var_path = '/api/v1/ereporting/validate-aggregated'
591
+
592
+ # query parameters
593
+ query_params = opts[:query_params] || {}
594
+
595
+ # header parameters
596
+ header_params = opts[:header_params] || {}
597
+ # HTTP header 'Accept' (if needed)
598
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
599
+ # HTTP header 'Content-Type'
600
+ content_type = @api_client.select_header_content_type(['application/json'])
601
+ if !content_type.nil?
602
+ header_params['Content-Type'] = content_type
603
+ end
604
+
605
+ # form parameters
606
+ form_params = opts[:form_params] || {}
607
+
608
+ # http body (model)
609
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_aggregated_report_request)
610
+
611
+ # return_type
612
+ return_type = opts[:debug_return_type] || 'Hash<String, Object>'
613
+
614
+ # auth_names
615
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
616
+
617
+ new_options = opts.merge(
618
+ :operation => :"EReportingApi.validate_aggregated_ereporting_api_v1_ereporting_validate_aggregated_post",
619
+ :header_params => header_params,
620
+ :query_params => query_params,
621
+ :form_params => form_params,
622
+ :body => post_body,
623
+ :auth_names => auth_names,
624
+ :return_type => return_type
625
+ )
626
+
627
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
628
+ if @api_client.config.debugging
629
+ @api_client.config.logger.debug "API called: EReportingApi#validate_aggregated_ereporting_api_v1_ereporting_validate_aggregated_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
630
+ end
631
+ return data, status_code, headers
632
+ end
633
+
634
+ # Validate e-reporting data
635
+ # Validate e-reporting data without generating or submitting. Performs: - Schema validation - Business rule validation (correct flux type vs data) - Data consistency checks (tax totals, dates, etc.) Returns validation errors and warnings.
636
+ # @param validate_e_reporting_request [ValidateEReportingRequest]
637
+ # @param [Hash] opts the optional parameters
638
+ # @return [ValidateEReportingResponse]
639
+ def validate_ereporting_api_v1_ereporting_validate_post(validate_e_reporting_request, opts = {})
640
+ data, _status_code, _headers = validate_ereporting_api_v1_ereporting_validate_post_with_http_info(validate_e_reporting_request, opts)
641
+ data
642
+ end
643
+
644
+ # Validate e-reporting data
645
+ # Validate e-reporting data without generating or submitting. Performs: - Schema validation - Business rule validation (correct flux type vs data) - Data consistency checks (tax totals, dates, etc.) Returns validation errors and warnings.
646
+ # @param validate_e_reporting_request [ValidateEReportingRequest]
647
+ # @param [Hash] opts the optional parameters
648
+ # @return [Array<(ValidateEReportingResponse, Integer, Hash)>] ValidateEReportingResponse data, response status code and response headers
649
+ def validate_ereporting_api_v1_ereporting_validate_post_with_http_info(validate_e_reporting_request, opts = {})
650
+ if @api_client.config.debugging
651
+ @api_client.config.logger.debug 'Calling API: EReportingApi.validate_ereporting_api_v1_ereporting_validate_post ...'
652
+ end
653
+ # verify the required parameter 'validate_e_reporting_request' is set
654
+ if @api_client.config.client_side_validation && validate_e_reporting_request.nil?
655
+ fail ArgumentError, "Missing the required parameter 'validate_e_reporting_request' when calling EReportingApi.validate_ereporting_api_v1_ereporting_validate_post"
656
+ end
657
+ # resource path
658
+ local_var_path = '/api/v1/ereporting/validate'
659
+
660
+ # query parameters
661
+ query_params = opts[:query_params] || {}
662
+
663
+ # header parameters
664
+ header_params = opts[:header_params] || {}
665
+ # HTTP header 'Accept' (if needed)
666
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
667
+ # HTTP header 'Content-Type'
668
+ content_type = @api_client.select_header_content_type(['application/json'])
669
+ if !content_type.nil?
670
+ header_params['Content-Type'] = content_type
671
+ end
672
+
673
+ # form parameters
674
+ form_params = opts[:form_params] || {}
675
+
676
+ # http body (model)
677
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(validate_e_reporting_request)
678
+
679
+ # return_type
680
+ return_type = opts[:debug_return_type] || 'ValidateEReportingResponse'
681
+
682
+ # auth_names
683
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
684
+
685
+ new_options = opts.merge(
686
+ :operation => :"EReportingApi.validate_ereporting_api_v1_ereporting_validate_post",
687
+ :header_params => header_params,
688
+ :query_params => query_params,
689
+ :form_params => form_params,
690
+ :body => post_body,
691
+ :auth_names => auth_names,
692
+ :return_type => return_type
693
+ )
694
+
695
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
696
+ if @api_client.config.debugging
697
+ @api_client.config.logger.debug "API called: EReportingApi#validate_ereporting_api_v1_ereporting_validate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
698
+ end
699
+ return data, status_code, headers
700
+ end
701
+
702
+ # Validate e-reporting XML against PPF XSD schemas and business rules
703
+ # Validates an e-reporting XML file against: 1. **XSD schemas**: Official PPF e-reporting XSD (structure, types, cardinality) 2. **Business rules**: ISO codes and enum validation - Currency codes (ISO 4217: EUR, USD, GBP, etc.) - Country codes (ISO 3166-1 alpha-2: FR, DE, US, etc.) - Scheme IDs (0009=SIRET, 0002=SIREN, etc.) - Role codes (UNCL 3035: SE=Seller, BY=Buyer, WK=Working party, etc.) Returns validation status and detailed error messages if invalid.
704
+ # @param xml_file [File] E-reporting XML file to validate
705
+ # @param [Hash] opts the optional parameters
706
+ # @option opts [Boolean] :validate_business_rules Also validate business rules (ISO codes, enums) (default to true)
707
+ # @return [Hash<String, Object>]
708
+ def validate_xml_ereporting_api_v1_ereporting_validate_xml_post(xml_file, opts = {})
709
+ data, _status_code, _headers = validate_xml_ereporting_api_v1_ereporting_validate_xml_post_with_http_info(xml_file, opts)
710
+ data
711
+ end
712
+
713
+ # Validate e-reporting XML against PPF XSD schemas and business rules
714
+ # Validates an e-reporting XML file against: 1. **XSD schemas**: Official PPF e-reporting XSD (structure, types, cardinality) 2. **Business rules**: ISO codes and enum validation - Currency codes (ISO 4217: EUR, USD, GBP, etc.) - Country codes (ISO 3166-1 alpha-2: FR, DE, US, etc.) - Scheme IDs (0009&#x3D;SIRET, 0002&#x3D;SIREN, etc.) - Role codes (UNCL 3035: SE&#x3D;Seller, BY&#x3D;Buyer, WK&#x3D;Working party, etc.) Returns validation status and detailed error messages if invalid.
715
+ # @param xml_file [File] E-reporting XML file to validate
716
+ # @param [Hash] opts the optional parameters
717
+ # @option opts [Boolean] :validate_business_rules Also validate business rules (ISO codes, enums) (default to true)
718
+ # @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
719
+ def validate_xml_ereporting_api_v1_ereporting_validate_xml_post_with_http_info(xml_file, opts = {})
720
+ if @api_client.config.debugging
721
+ @api_client.config.logger.debug 'Calling API: EReportingApi.validate_xml_ereporting_api_v1_ereporting_validate_xml_post ...'
722
+ end
723
+ # verify the required parameter 'xml_file' is set
724
+ if @api_client.config.client_side_validation && xml_file.nil?
725
+ fail ArgumentError, "Missing the required parameter 'xml_file' when calling EReportingApi.validate_xml_ereporting_api_v1_ereporting_validate_xml_post"
726
+ end
727
+ # resource path
728
+ local_var_path = '/api/v1/ereporting/validate-xml'
729
+
730
+ # query parameters
731
+ query_params = opts[:query_params] || {}
732
+ query_params[:'validate_business_rules'] = opts[:'validate_business_rules'] if !opts[:'validate_business_rules'].nil?
733
+
734
+ # header parameters
735
+ header_params = opts[:header_params] || {}
736
+ # HTTP header 'Accept' (if needed)
737
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
738
+ # HTTP header 'Content-Type'
739
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
740
+ if !content_type.nil?
741
+ header_params['Content-Type'] = content_type
742
+ end
743
+
744
+ # form parameters
745
+ form_params = opts[:form_params] || {}
746
+ form_params['xml_file'] = xml_file
747
+
748
+ # http body (model)
749
+ post_body = opts[:debug_body]
750
+
751
+ # return_type
752
+ return_type = opts[:debug_return_type] || 'Hash<String, Object>'
753
+
754
+ # auth_names
755
+ auth_names = opts[:debug_auth_names] || ['HTTPBearer']
756
+
757
+ new_options = opts.merge(
758
+ :operation => :"EReportingApi.validate_xml_ereporting_api_v1_ereporting_validate_xml_post",
759
+ :header_params => header_params,
760
+ :query_params => query_params,
761
+ :form_params => form_params,
762
+ :body => post_body,
763
+ :auth_names => auth_names,
764
+ :return_type => return_type
765
+ )
766
+
767
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
768
+ if @api_client.config.debugging
769
+ @api_client.config.logger.debug "API called: EReportingApi#validate_xml_ereporting_api_v1_ereporting_validate_xml_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
770
+ end
771
+ return data, status_code, headers
772
+ end
773
+ end
774
+ end