factpulse 2.0.42 → 3.0.1

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 (410) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -3
  3. data/Gemfile.lock +3 -3
  4. data/README.md +91 -91
  5. data/docs/{CredentialsAFNOR.md → AFNORCredentials.md} +2 -2
  6. data/docs/{DestinationAFNOR.md → AFNORDestination.md} +4 -4
  7. data/docs/AFNORHealthCheckResponse.md +22 -0
  8. data/docs/AFNORPDPPAApi.md +25 -25
  9. data/docs/AFNORPDPPADirectoryServiceApi.md +19 -19
  10. data/docs/AFNORPDPPAFlowServiceApi.md +16 -16
  11. data/docs/{ResultatAFNOR.md → AFNORResult.md} +5 -5
  12. data/docs/APIError.md +2 -2
  13. data/docs/{MontantTva.md → APIProfile.md} +2 -2
  14. data/docs/{CodeCadreFacturation.md → AcknowledgmentStatus.md} +2 -2
  15. data/docs/{CodeRaisonReduction.md → AllowanceReasonCode.md} +2 -2
  16. data/docs/{ModeDepot.md → AmountDue.md} +2 -2
  17. data/docs/BoundingBoxSchema.md +7 -7
  18. data/docs/{CategorieTVA.md → CeleryStatus.md} +2 -2
  19. data/docs/CertificateInfoResponse.md +20 -20
  20. data/docs/ChorusProApi.md +123 -123
  21. data/docs/ChorusProDestination.md +20 -0
  22. data/docs/ChorusProResult.md +22 -0
  23. data/docs/Destination.md +7 -7
  24. data/docs/{ModePaiement.md → DocumentType.md} +2 -2
  25. data/docs/{AdresseElectronique.md → ElectronicAddress.md} +4 -4
  26. data/docs/EnrichedInvoiceInfo.md +32 -0
  27. data/docs/FacturXPDFInfo.md +22 -0
  28. data/docs/FactureElectroniqueRestApiSchemasChorusProChorusProCredentials.md +26 -0
  29. data/docs/{CredentialsChorusPro.md → FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md} +4 -4
  30. data/docs/FactureFacturX.md +30 -30
  31. data/docs/FieldStatus.md +15 -0
  32. data/docs/{DirectionFlux.md → FlowDirection.md} +2 -2
  33. data/docs/FlowProfile.md +15 -0
  34. data/docs/FlowSummary.md +32 -0
  35. data/docs/{ProfilFlux.md → FlowSyntax.md} +2 -2
  36. data/docs/{TypeTVA.md → FlowType.md} +2 -2
  37. data/docs/GenerateCertificateRequest.md +19 -19
  38. data/docs/GenerateCertificateResponse.md +8 -8
  39. data/docs/GetChorusProIdRequest.md +22 -0
  40. data/docs/GetChorusProIdResponse.md +24 -0
  41. data/docs/GetInvoiceRequest.md +20 -0
  42. data/docs/GetInvoiceResponse.md +34 -0
  43. data/docs/GetStructureRequest.md +22 -0
  44. data/docs/GetStructureResponse.md +34 -0
  45. data/docs/GlobalAllowanceAmount.md +15 -0
  46. data/docs/{SantApi.md → HealthApi.md} +23 -23
  47. data/docs/IncomingInvoice.md +54 -0
  48. data/docs/IncomingSupplier.md +32 -0
  49. data/docs/{FormatFacture.md → InvoiceFormat.md} +2 -2
  50. data/docs/InvoiceLine.md +46 -0
  51. data/docs/InvoiceLineAllowanceAmount.md +15 -0
  52. data/docs/InvoiceNote.md +20 -0
  53. data/docs/InvoiceProcessingApi.md +831 -0
  54. data/docs/InvoiceReferences.md +32 -0
  55. data/docs/{StatutFacture.md → InvoiceStatus.md} +5 -5
  56. data/docs/InvoiceTotals.md +30 -0
  57. data/docs/InvoiceTotalsPrepayment.md +15 -0
  58. data/docs/InvoiceTypeCode.md +15 -0
  59. data/docs/InvoicingFramework.md +24 -0
  60. data/docs/InvoicingFrameworkCode.md +15 -0
  61. data/docs/LineNetAmount.md +15 -0
  62. data/docs/MandatoryNoteSchema.md +30 -0
  63. data/docs/ManualRate.md +15 -0
  64. data/docs/ManualVatRate.md +15 -0
  65. data/docs/OperationNature.md +15 -0
  66. data/docs/{FormatSortie.md → OutputFormat.md} +2 -2
  67. data/docs/PDFValidationResultAPI.md +62 -0
  68. data/docs/PDFXMLVerificationApi.md +435 -0
  69. data/docs/PDPCredentials.md +4 -4
  70. data/docs/PageDimensionsSchema.md +20 -0
  71. data/docs/{Beneficiaire.md → Payee.md} +5 -5
  72. data/docs/PaymentMeans.md +15 -0
  73. data/docs/PostalAddress.md +26 -0
  74. data/docs/ProcessingOptions.md +24 -0
  75. data/docs/{Quantite.md → Quantity.md} +2 -2
  76. data/docs/Recipient.md +28 -0
  77. data/docs/SearchFlowRequest.md +34 -0
  78. data/docs/SearchFlowResponse.md +24 -0
  79. data/docs/SearchServicesResponse.md +24 -0
  80. data/docs/SearchStructureRequest.md +26 -0
  81. data/docs/SearchStructureResponse.md +24 -0
  82. data/docs/SignatureInfo.md +2 -2
  83. data/docs/SignatureInfoAPI.md +28 -0
  84. data/docs/SignatureParameters.md +34 -0
  85. data/docs/SimplifiedInvoiceData.md +34 -0
  86. data/docs/StructureInfo.md +10 -10
  87. data/docs/StructureParameters.md +22 -0
  88. data/docs/StructureService.md +24 -0
  89. data/docs/SubmissionMode.md +15 -0
  90. data/docs/SubmitCompleteInvoiceRequest.md +26 -0
  91. data/docs/SubmitCompleteInvoiceResponse.md +34 -0
  92. data/docs/SubmitFlowRequest.md +28 -0
  93. data/docs/SubmitFlowResponse.md +30 -0
  94. data/docs/SubmitInvoiceRequest.md +46 -0
  95. data/docs/SubmitInvoiceResponse.md +24 -0
  96. data/docs/SupplementaryAttachment.md +26 -0
  97. data/docs/Supplier.md +36 -0
  98. data/docs/TaskResponse.md +18 -0
  99. data/docs/TaskStatus.md +22 -0
  100. data/docs/TaxableAmount.md +15 -0
  101. data/docs/TotalGrossAmount.md +15 -0
  102. data/docs/TotalNetAmount.md +15 -0
  103. data/docs/TotalVATAmount.md +15 -0
  104. data/docs/UnitNetPrice.md +15 -0
  105. data/docs/UnitOfMeasure.md +15 -0
  106. data/docs/UserApi.md +74 -0
  107. data/docs/VATAccountingCode.md +15 -0
  108. data/docs/{ProfilAPI.md → VATAmount.md} +2 -2
  109. data/docs/VATCategory.md +15 -0
  110. data/docs/VATLine.md +30 -0
  111. data/docs/ValidationErrorDetail.md +3 -3
  112. data/docs/ValidationErrorResponse.md +18 -0
  113. data/docs/ValidationSuccessResponse.md +18 -0
  114. data/docs/{TypeFlux.md → VatAmount.md} +2 -2
  115. data/docs/VerificationSuccessResponse.md +36 -0
  116. data/docs/VerifiedFieldSchema.md +34 -0
  117. data/factpulse.gemspec +4 -4
  118. data/lib/factpulse/api/afnorpdppa_api.rb +25 -25
  119. data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +40 -40
  120. data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +16 -16
  121. data/lib/factpulse/api/chorus_pro_api.rb +127 -127
  122. data/lib/factpulse/api/health_api.rb +136 -0
  123. data/lib/factpulse/api/invoice_processing_api.rb +835 -0
  124. data/lib/factpulse/api/pdfxml_verification_api.rb +430 -0
  125. data/lib/factpulse/api/user_api.rb +79 -0
  126. data/lib/factpulse/api_client.rb +2 -2
  127. data/lib/factpulse/api_error.rb +2 -2
  128. data/lib/factpulse/api_model_base.rb +2 -2
  129. data/lib/factpulse/configuration.rb +2 -2
  130. data/lib/factpulse/helpers/client.rb +182 -182
  131. data/lib/factpulse/helpers/exceptions.rb +2 -2
  132. data/lib/factpulse/helpers/helpers.rb +5 -5
  133. data/lib/factpulse/models/acknowledgment_status.rb +41 -0
  134. data/lib/factpulse/models/afnor_credentials.rb +169 -0
  135. data/lib/factpulse/models/{destination_afnor.rb → afnor_destination.rb} +10 -10
  136. data/lib/factpulse/models/{reponse_healthcheck_afnor.rb → afnor_health_check_response.rb} +9 -9
  137. data/lib/factpulse/models/{resultat_afnor.rb → afnor_result.rb} +13 -13
  138. data/lib/factpulse/models/allowance_reason_code.rb +45 -0
  139. data/lib/factpulse/models/amount_due.rb +104 -0
  140. data/lib/factpulse/models/api_error.rb +5 -5
  141. data/lib/factpulse/models/api_profile.rb +42 -0
  142. data/lib/factpulse/models/bounding_box_schema.rb +10 -10
  143. data/lib/factpulse/models/celery_status.rb +43 -0
  144. data/lib/factpulse/models/certificate_info_response.rb +164 -164
  145. data/lib/factpulse/models/{destination_chorus_pro.rb → chorus_pro_destination.rb} +7 -7
  146. data/lib/factpulse/models/chorus_pro_result.rb +186 -0
  147. data/lib/factpulse/models/destination.rb +7 -7
  148. data/lib/factpulse/models/document_type.rb +43 -0
  149. data/lib/factpulse/models/electronic_address.rb +196 -0
  150. data/lib/factpulse/models/enriched_invoice_info.rb +348 -0
  151. data/lib/factpulse/models/error_level.rb +2 -2
  152. data/lib/factpulse/models/error_source.rb +2 -2
  153. data/lib/factpulse/models/factur_xpdf_info.rb +205 -0
  154. data/lib/factpulse/models/{chorus_pro_credentials.rb → facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb} +11 -11
  155. data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +191 -0
  156. data/lib/factpulse/models/facture_factur_x.rb +160 -160
  157. data/lib/factpulse/models/field_status.rb +43 -0
  158. data/lib/factpulse/models/flow_direction.rb +40 -0
  159. data/lib/factpulse/models/flow_profile.rb +41 -0
  160. data/lib/factpulse/models/flow_summary.rb +251 -0
  161. data/lib/factpulse/models/flow_syntax.rb +43 -0
  162. data/lib/factpulse/models/flow_type.rb +43 -0
  163. data/lib/factpulse/models/generate_certificate_request.rb +106 -106
  164. data/lib/factpulse/models/generate_certificate_response.rb +47 -47
  165. data/lib/factpulse/models/get_chorus_pro_id_request.rb +188 -0
  166. data/lib/factpulse/models/get_chorus_pro_id_response.rb +230 -0
  167. data/lib/factpulse/models/get_invoice_request.rb +176 -0
  168. data/lib/factpulse/models/get_invoice_response.rb +261 -0
  169. data/lib/factpulse/models/get_structure_request.rb +188 -0
  170. data/lib/factpulse/models/get_structure_response.rb +261 -0
  171. data/lib/factpulse/models/global_allowance_amount.rb +104 -0
  172. data/lib/factpulse/models/http_validation_error.rb +2 -2
  173. data/lib/factpulse/models/incoming_invoice.rb +522 -0
  174. data/lib/factpulse/models/incoming_supplier.rb +236 -0
  175. data/lib/factpulse/models/invoice_format.rb +41 -0
  176. data/lib/factpulse/models/invoice_line.rb +389 -0
  177. data/lib/factpulse/models/invoice_line_allowance_amount.rb +104 -0
  178. data/lib/factpulse/models/invoice_note.rb +175 -0
  179. data/lib/factpulse/models/invoice_references.rb +290 -0
  180. data/lib/factpulse/models/invoice_status.rb +203 -0
  181. data/lib/factpulse/models/invoice_totals.rb +272 -0
  182. data/lib/factpulse/models/invoice_totals_prepayment.rb +104 -0
  183. data/lib/factpulse/models/invoice_type_code.rb +70 -0
  184. data/lib/factpulse/models/invoicing_framework.rb +217 -0
  185. data/lib/factpulse/models/invoicing_framework_code.rb +46 -0
  186. data/lib/factpulse/models/line_net_amount.rb +104 -0
  187. data/lib/factpulse/models/mandatory_note_schema.rb +265 -0
  188. data/lib/factpulse/models/manual_rate.rb +104 -0
  189. data/lib/factpulse/models/manual_vat_rate.rb +104 -0
  190. data/lib/factpulse/models/operation_nature.rb +52 -0
  191. data/lib/factpulse/models/output_format.rb +40 -0
  192. data/lib/factpulse/models/page_dimensions_schema.rb +193 -0
  193. data/lib/factpulse/models/{beneficiaire.rb → payee.rb} +15 -15
  194. data/lib/factpulse/models/payment_means.rb +50 -0
  195. data/lib/factpulse/models/pdf_validation_result_api.rb +523 -0
  196. data/lib/factpulse/models/pdp_credentials.rb +7 -7
  197. data/lib/factpulse/models/postal_address.rb +189 -0
  198. data/lib/factpulse/models/processing_options.rb +207 -0
  199. data/lib/factpulse/models/quantity.rb +104 -0
  200. data/lib/factpulse/models/recipient.rb +201 -0
  201. data/lib/factpulse/models/scheme_id.rb +2 -2
  202. data/lib/factpulse/models/search_flow_request.rb +306 -0
  203. data/lib/factpulse/models/search_flow_response.rb +249 -0
  204. data/lib/factpulse/models/search_services_response.rb +214 -0
  205. data/lib/factpulse/models/search_structure_request.rb +191 -0
  206. data/lib/factpulse/models/search_structure_response.rb +216 -0
  207. data/lib/factpulse/models/signature_info.rb +20 -20
  208. data/lib/factpulse/models/signature_info_api.rb +216 -0
  209. data/lib/factpulse/models/signature_parameters.rb +235 -0
  210. data/lib/factpulse/models/simplified_invoice_data.rb +342 -0
  211. data/lib/factpulse/models/structure_info.rb +84 -84
  212. data/lib/factpulse/models/structure_parameters.rb +175 -0
  213. data/lib/factpulse/models/structure_service.rb +247 -0
  214. data/lib/factpulse/models/submission_mode.rb +44 -0
  215. data/lib/factpulse/models/submit_complete_invoice_request.rb +239 -0
  216. data/lib/factpulse/models/submit_complete_invoice_response.rb +355 -0
  217. data/lib/factpulse/models/submit_flow_request.rb +238 -0
  218. data/lib/factpulse/models/submit_flow_response.rb +294 -0
  219. data/lib/factpulse/models/submit_invoice_request.rb +388 -0
  220. data/lib/factpulse/models/submit_invoice_response.rb +213 -0
  221. data/lib/factpulse/models/supplementary_attachment.rb +269 -0
  222. data/lib/factpulse/models/supplier.rb +257 -0
  223. data/lib/factpulse/models/task_response.rb +166 -0
  224. data/lib/factpulse/models/task_status.rb +227 -0
  225. data/lib/factpulse/models/taxable_amount.rb +104 -0
  226. data/lib/factpulse/models/total_gross_amount.rb +104 -0
  227. data/lib/factpulse/models/total_net_amount.rb +104 -0
  228. data/lib/factpulse/models/total_vat_amount.rb +104 -0
  229. data/lib/factpulse/models/unit_net_price.rb +104 -0
  230. data/lib/factpulse/models/unit_of_measure.rb +50 -0
  231. data/lib/factpulse/models/validation_error.rb +2 -2
  232. data/lib/factpulse/models/validation_error_detail.rb +6 -6
  233. data/lib/factpulse/models/validation_error_loc_inner.rb +2 -2
  234. data/lib/factpulse/models/validation_error_response.rb +168 -0
  235. data/lib/factpulse/models/validation_success_response.rb +166 -0
  236. data/lib/factpulse/models/vat_accounting_code.rb +46 -0
  237. data/lib/factpulse/models/vat_amount.rb +104 -0
  238. data/lib/factpulse/models/vat_category.rb +47 -0
  239. data/lib/factpulse/models/vat_line.rb +262 -0
  240. data/lib/factpulse/models/verification_success_response.rb +343 -0
  241. data/lib/factpulse/models/verified_field_schema.rb +334 -0
  242. data/lib/factpulse/version.rb +3 -3
  243. data/lib/factpulse.rb +99 -99
  244. metadata +250 -257
  245. data/docs/AdressePostale.md +0 -26
  246. data/docs/CadreDeFacturation.md +0 -24
  247. data/docs/ChampVerifieSchema.md +0 -34
  248. data/docs/ChorusProCredentials.md +0 -26
  249. data/docs/ConsulterFactureRequest.md +0 -20
  250. data/docs/ConsulterFactureResponse.md +0 -34
  251. data/docs/ConsulterStructureRequest.md +0 -22
  252. data/docs/ConsulterStructureResponse.md +0 -34
  253. data/docs/Destinataire.md +0 -28
  254. data/docs/DestinationChorusPro.md +0 -20
  255. data/docs/DimensionPageSchema.md +0 -20
  256. data/docs/DonneesFactureSimplifiees.md +0 -34
  257. data/docs/FactureEnrichieInfo.md +0 -32
  258. data/docs/FactureEntrante.md +0 -54
  259. data/docs/FluxResume.md +0 -32
  260. data/docs/Fournisseur.md +0 -36
  261. data/docs/FournisseurEntrant.md +0 -32
  262. data/docs/InformationSignatureAPI.md +0 -28
  263. data/docs/LigneDePoste.md +0 -46
  264. data/docs/LigneDePosteMontantRemiseHt.md +0 -15
  265. data/docs/LigneDePosteTauxTvaManuel.md +0 -15
  266. data/docs/LigneDeTVA.md +0 -30
  267. data/docs/MontantAPayer.md +0 -15
  268. data/docs/MontantBaseHt.md +0 -15
  269. data/docs/MontantHtTotal.md +0 -15
  270. data/docs/MontantRemiseGlobaleTtc.md +0 -15
  271. data/docs/MontantTotal.md +0 -30
  272. data/docs/MontantTotalAcompte.md +0 -15
  273. data/docs/MontantTotalLigneHt.md +0 -15
  274. data/docs/MontantTtcTotal.md +0 -15
  275. data/docs/MontantTvaLigne.md +0 -15
  276. data/docs/MontantTvaTotal.md +0 -15
  277. data/docs/MontantUnitaireHt.md +0 -15
  278. data/docs/NatureOperation.md +0 -15
  279. data/docs/Note.md +0 -20
  280. data/docs/NoteObligatoireSchema.md +0 -30
  281. data/docs/ObtenirIdChorusProRequest.md +0 -22
  282. data/docs/ObtenirIdChorusProResponse.md +0 -24
  283. data/docs/OptionsProcessing.md +0 -24
  284. data/docs/PDFFacturXInfo.md +0 -22
  285. data/docs/ParametresSignature.md +0 -34
  286. data/docs/ParametresStructure.md +0 -22
  287. data/docs/PieceJointeComplementaire.md +0 -26
  288. data/docs/RechercherServicesResponse.md +0 -24
  289. data/docs/RechercherStructureRequest.md +0 -26
  290. data/docs/RechercherStructureResponse.md +0 -24
  291. data/docs/References.md +0 -32
  292. data/docs/ReponseHealthcheckAFNOR.md +0 -22
  293. data/docs/ReponseRechercheFlux.md +0 -24
  294. data/docs/ReponseSoumissionFlux.md +0 -30
  295. data/docs/ReponseTache.md +0 -18
  296. data/docs/ReponseValidationErreur.md +0 -18
  297. data/docs/ReponseValidationSucces.md +0 -18
  298. data/docs/ReponseVerificationSucces.md +0 -36
  299. data/docs/RequeteRechercheFlux.md +0 -34
  300. data/docs/RequeteSoumissionFlux.md +0 -28
  301. data/docs/ResultatChorusPro.md +0 -22
  302. data/docs/ResultatValidationPDFAPI.md +0 -62
  303. data/docs/ServiceStructure.md +0 -24
  304. data/docs/SoumettreFactureCompleteRequest.md +0 -26
  305. data/docs/SoumettreFactureCompleteResponse.md +0 -34
  306. data/docs/SoumettreFactureRequest.md +0 -46
  307. data/docs/SoumettreFactureResponse.md +0 -24
  308. data/docs/StatutAcquittement.md +0 -15
  309. data/docs/StatutCelery.md +0 -15
  310. data/docs/StatutChampAPI.md +0 -15
  311. data/docs/StatutTache.md +0 -22
  312. data/docs/SyntaxeFlux.md +0 -15
  313. data/docs/Tauxmanuel.md +0 -15
  314. data/docs/TraitementFactureApi.md +0 -831
  315. data/docs/TypeDocument.md +0 -15
  316. data/docs/TypeFacture.md +0 -15
  317. data/docs/Unite.md +0 -15
  318. data/docs/UtilisateurApi.md +0 -74
  319. data/docs/VrificationPDFXMLApi.md +0 -435
  320. data/lib/factpulse/api/sant_api.rb +0 -136
  321. data/lib/factpulse/api/traitement_facture_api.rb +0 -835
  322. data/lib/factpulse/api/utilisateur_api.rb +0 -79
  323. data/lib/factpulse/api/vrification_pdfxml_api.rb +0 -430
  324. data/lib/factpulse/models/adresse_electronique.rb +0 -196
  325. data/lib/factpulse/models/adresse_postale.rb +0 -189
  326. data/lib/factpulse/models/cadre_de_facturation.rb +0 -217
  327. data/lib/factpulse/models/categorie_tva.rb +0 -47
  328. data/lib/factpulse/models/champ_verifie_schema.rb +0 -334
  329. data/lib/factpulse/models/code_cadre_facturation.rb +0 -42
  330. data/lib/factpulse/models/code_raison_reduction.rb +0 -45
  331. data/lib/factpulse/models/consulter_facture_request.rb +0 -176
  332. data/lib/factpulse/models/consulter_facture_response.rb +0 -261
  333. data/lib/factpulse/models/consulter_structure_request.rb +0 -188
  334. data/lib/factpulse/models/consulter_structure_response.rb +0 -261
  335. data/lib/factpulse/models/credentials_afnor.rb +0 -169
  336. data/lib/factpulse/models/credentials_chorus_pro.rb +0 -191
  337. data/lib/factpulse/models/destinataire.rb +0 -201
  338. data/lib/factpulse/models/dimension_page_schema.rb +0 -193
  339. data/lib/factpulse/models/direction_flux.rb +0 -40
  340. data/lib/factpulse/models/donnees_facture_simplifiees.rb +0 -342
  341. data/lib/factpulse/models/facture_enrichie_info.rb +0 -348
  342. data/lib/factpulse/models/facture_entrante.rb +0 -522
  343. data/lib/factpulse/models/flux_resume.rb +0 -251
  344. data/lib/factpulse/models/format_facture.rb +0 -41
  345. data/lib/factpulse/models/format_sortie.rb +0 -40
  346. data/lib/factpulse/models/fournisseur.rb +0 -257
  347. data/lib/factpulse/models/fournisseur_entrant.rb +0 -236
  348. data/lib/factpulse/models/information_signature_api.rb +0 -216
  349. data/lib/factpulse/models/ligne_de_poste.rb +0 -390
  350. data/lib/factpulse/models/ligne_de_poste_montant_remise_ht.rb +0 -104
  351. data/lib/factpulse/models/ligne_de_poste_taux_tva_manuel.rb +0 -104
  352. data/lib/factpulse/models/ligne_de_tva.rb +0 -262
  353. data/lib/factpulse/models/mode_depot.rb +0 -41
  354. data/lib/factpulse/models/mode_paiement.rb +0 -44
  355. data/lib/factpulse/models/montant_a_payer.rb +0 -104
  356. data/lib/factpulse/models/montant_base_ht.rb +0 -104
  357. data/lib/factpulse/models/montant_ht_total.rb +0 -104
  358. data/lib/factpulse/models/montant_remise_globale_ttc.rb +0 -104
  359. data/lib/factpulse/models/montant_total.rb +0 -272
  360. data/lib/factpulse/models/montant_total_acompte.rb +0 -104
  361. data/lib/factpulse/models/montant_total_ligne_ht.rb +0 -104
  362. data/lib/factpulse/models/montant_ttc_total.rb +0 -104
  363. data/lib/factpulse/models/montant_tva.rb +0 -104
  364. data/lib/factpulse/models/montant_tva_ligne.rb +0 -104
  365. data/lib/factpulse/models/montant_tva_total.rb +0 -104
  366. data/lib/factpulse/models/montant_unitaire_ht.rb +0 -104
  367. data/lib/factpulse/models/nature_operation.rb +0 -52
  368. data/lib/factpulse/models/note.rb +0 -175
  369. data/lib/factpulse/models/note_obligatoire_schema.rb +0 -265
  370. data/lib/factpulse/models/obtenir_id_chorus_pro_request.rb +0 -188
  371. data/lib/factpulse/models/obtenir_id_chorus_pro_response.rb +0 -230
  372. data/lib/factpulse/models/options_processing.rb +0 -207
  373. data/lib/factpulse/models/parametres_signature.rb +0 -235
  374. data/lib/factpulse/models/parametres_structure.rb +0 -175
  375. data/lib/factpulse/models/pdf_factur_x_info.rb +0 -205
  376. data/lib/factpulse/models/piece_jointe_complementaire.rb +0 -269
  377. data/lib/factpulse/models/profil_api.rb +0 -42
  378. data/lib/factpulse/models/profil_flux.rb +0 -41
  379. data/lib/factpulse/models/quantite.rb +0 -104
  380. data/lib/factpulse/models/rechercher_services_response.rb +0 -214
  381. data/lib/factpulse/models/rechercher_structure_request.rb +0 -191
  382. data/lib/factpulse/models/rechercher_structure_response.rb +0 -216
  383. data/lib/factpulse/models/references.rb +0 -290
  384. data/lib/factpulse/models/reponse_recherche_flux.rb +0 -249
  385. data/lib/factpulse/models/reponse_soumission_flux.rb +0 -294
  386. data/lib/factpulse/models/reponse_tache.rb +0 -165
  387. data/lib/factpulse/models/reponse_validation_erreur.rb +0 -167
  388. data/lib/factpulse/models/reponse_validation_succes.rb +0 -165
  389. data/lib/factpulse/models/reponse_verification_succes.rb +0 -343
  390. data/lib/factpulse/models/requete_recherche_flux.rb +0 -306
  391. data/lib/factpulse/models/requete_soumission_flux.rb +0 -238
  392. data/lib/factpulse/models/resultat_chorus_pro.rb +0 -186
  393. data/lib/factpulse/models/resultat_validation_pdfapi.rb +0 -523
  394. data/lib/factpulse/models/service_structure.rb +0 -247
  395. data/lib/factpulse/models/soumettre_facture_complete_request.rb +0 -239
  396. data/lib/factpulse/models/soumettre_facture_complete_response.rb +0 -355
  397. data/lib/factpulse/models/soumettre_facture_request.rb +0 -388
  398. data/lib/factpulse/models/soumettre_facture_response.rb +0 -213
  399. data/lib/factpulse/models/statut_acquittement.rb +0 -41
  400. data/lib/factpulse/models/statut_celery.rb +0 -43
  401. data/lib/factpulse/models/statut_champ_api.rb +0 -43
  402. data/lib/factpulse/models/statut_facture.rb +0 -203
  403. data/lib/factpulse/models/statut_tache.rb +0 -226
  404. data/lib/factpulse/models/syntaxe_flux.rb +0 -43
  405. data/lib/factpulse/models/tauxmanuel.rb +0 -104
  406. data/lib/factpulse/models/type_document.rb +0 -43
  407. data/lib/factpulse/models/type_facture.rb +0 -54
  408. data/lib/factpulse/models/type_flux.rb +0 -43
  409. data/lib/factpulse/models/type_tva.rb +0 -42
  410. data/lib/factpulse/models/unite.rb +0 -44
@@ -1,7 +1,7 @@
1
1
  =begin
2
- #API REST FactPulse
2
+ #FactPulse REST API
3
3
 
4
- # API REST pour la facturation électronique en France : Factur-X, AFNOR PDP/PA, signatures électroniques. ## 🎯 Fonctionnalités principales ### 📄 Génération de factures Factur-X - **Formats** : XML seul ou PDF/A-3 avec XML embarqué - **Profils** : MINIMUM, BASIC, EN16931, EXTENDED - **Normes** : EN 16931 (directive UE 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT) - **🆕 Format simplifié** : Génération à partir de SIRET + auto-enrichissement (API Chorus Pro + Recherche Entreprises) ### ✅ Validation et conformité - **Validation XML** : Schematron (45 à 210+ règles selon profil) - **Validation PDF** : PDF/A-3, métadonnées XMP Factur-X, signatures électroniques - **VeraPDF** : Validation stricte PDF/A (146+ règles ISO 19005-3) - **Traitement asynchrone** : Support Celery pour validations lourdes (VeraPDF) ### 📡 Intégration AFNOR PDP/PA (XP Z12-013) - **Soumission de flux** : Envoi de factures vers Plateformes de Dématérialisation Partenaires - **Recherche de flux** : Consultation des factures soumises - **Téléchargement** : Récupération des PDF/A-3 avec XML - **Directory Service** : Recherche d'entreprises (SIREN/SIRET) - **Multi-client** : Support de plusieurs configs PDP par utilisateur (stored credentials ou zero-storage) ### ✍️ Signature électronique PDF - **Standards** : PAdES-B-B, PAdES-B-T (horodatage RFC 3161), PAdES-B-LT (archivage long terme) - **Niveaux eIDAS** : SES (auto-signé), AdES (CA commerciale), QES (PSCO) - **Validation** : Vérification intégrité cryptographique et certificats - **Génération de certificats** : Certificats X.509 auto-signés pour tests ### 🔄 Traitement asynchrone - **Celery** : Génération, validation et signature asynchrones - **Polling** : Suivi d'état via `/taches/{id_tache}/statut` - **Pas de timeout** : Idéal pour gros fichiers ou validations lourdes ## 🔒 Authentification Toutes les requêtes nécessitent un **token JWT** dans le header Authorization : ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### Comment obtenir un token JWT ? #### 🔑 Méthode 1 : API `/api/token/` (Recommandée) **URL :** `https://www.factpulse.fr/api/token/` Cette méthode est **recommandée** pour l'intégration dans vos applications et workflows CI/CD. **Prérequis :** Avoir défini un mot de passe sur votre compte **Pour les utilisateurs inscrits via email/password :** - Vous avez déjà un mot de passe, utilisez-le directement **Pour les utilisateurs inscrits via OAuth (Google/GitHub) :** - Vous devez d'abord définir un mot de passe sur : https://www.factpulse.fr/accounts/password/set/ - Une fois le mot de passe créé, vous pourrez utiliser l'API **Exemple de requête :** ```bash curl -X POST https://www.factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"votre_email@example.com\", \"password\": \"votre_mot_de_passe\" }' ``` **Paramètre optionnel `client_uid` :** Pour sélectionner les credentials d'un client spécifique (PA/PDP, Chorus Pro, certificats de signature), ajoutez `client_uid` : ```bash curl -X POST https://www.factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"votre_email@example.com\", \"password\": \"votre_mot_de_passe\", \"client_uid\": \"550e8400-e29b-41d4-a716-446655440000\" }' ``` Le `client_uid` sera inclus dans le JWT et permettra à l'API d'utiliser automatiquement : - Les credentials AFNOR/PDP configurés pour ce client - Les credentials Chorus Pro configurés pour ce client - Les certificats de signature électronique configurés pour ce client **Réponse :** ```json { \"access\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\", // Token d'accès (validité: 30 min) \"refresh\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\" // Token de rafraîchissement (validité: 7 jours) } ``` **Avantages :** - ✅ Automatisation complète (CI/CD, scripts) - ✅ Gestion programmatique des tokens - ✅ Support du refresh token pour renouveler automatiquement l'accès - ✅ Intégration facile dans n'importe quel langage/outil #### 🖥️ Méthode 2 : Génération via Dashboard (Alternative) **URL :** https://www.factpulse.fr/dashboard/ Cette méthode convient pour des tests rapides ou une utilisation occasionnelle via l'interface graphique. **Fonctionnement :** - Connectez-vous au dashboard - Utilisez les boutons \"Generate Test Token\" ou \"Generate Production Token\" - Fonctionne pour **tous** les utilisateurs (OAuth et email/password), sans nécessiter de mot de passe **Types de tokens :** - **Token Test** : Validité 24h, quota 1000 appels/jour (gratuit) - **Token Production** : Validité 7 jours, quota selon votre forfait **Avantages :** - ✅ Rapide pour tester l'API - ✅ Aucun mot de passe requis - ✅ Interface visuelle simple **Inconvénients :** - ❌ Nécessite une action manuelle - ❌ Pas de refresh token - ❌ Moins adapté pour l'automatisation ### 📚 Documentation complète Pour plus d'informations sur l'authentification et l'utilisation de l'API : https://www.factpulse.fr/documentation-api/
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://www.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://www.factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://www.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://www.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://www.factpulse.fr/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://www.factpulse.fr/documentation-api/
5
5
 
6
6
  The version of the OpenAPI document: 1.0.0
7
7
 
@@ -14,39 +14,39 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module FactPulse
17
- # Modèle de données pour une facture destinée à être convertie en Factur-X.
17
+ # Data model for an invoice to be converted to Factur-X.
18
18
  class FactureFacturX < ApiModelBase
19
- attr_accessor :numero_facture
19
+ attr_accessor :invoice_number
20
20
 
21
- attr_accessor :date_echeance_paiement
21
+ attr_accessor :payment_due_date
22
22
 
23
- attr_accessor :date_facture
23
+ attr_accessor :invoice_date
24
24
 
25
- attr_accessor :mode_depot
25
+ attr_accessor :submission_mode
26
26
 
27
- attr_accessor :destinataire
27
+ attr_accessor :recipient
28
28
 
29
- attr_accessor :fournisseur
29
+ attr_accessor :supplier
30
30
 
31
- attr_accessor :cadre_de_facturation
31
+ attr_accessor :invoicing_framework
32
32
 
33
33
  attr_accessor :references
34
34
 
35
- attr_accessor :montant_total
35
+ attr_accessor :totals
36
36
 
37
- attr_accessor :lignes_de_poste
37
+ attr_accessor :invoice_lines
38
38
 
39
- attr_accessor :lignes_de_tva
39
+ attr_accessor :vat_lines
40
40
 
41
41
  attr_accessor :notes
42
42
 
43
- attr_accessor :commentaire
43
+ attr_accessor :comment
44
44
 
45
- attr_accessor :id_utilisateur_courant
45
+ attr_accessor :current_user_id
46
46
 
47
- attr_accessor :pieces_jointes_complementaires
47
+ attr_accessor :supplementary_attachments
48
48
 
49
- attr_accessor :beneficiaire
49
+ attr_accessor :payee
50
50
 
51
51
  class EnumAttributeValidator
52
52
  attr_reader :datatype
@@ -73,22 +73,22 @@ module FactPulse
73
73
  # Attribute mapping from ruby-style variable name to JSON key.
74
74
  def self.attribute_map
75
75
  {
76
- :'numero_facture' => :'numeroFacture',
77
- :'date_echeance_paiement' => :'dateEcheancePaiement',
78
- :'date_facture' => :'dateFacture',
79
- :'mode_depot' => :'modeDepot',
80
- :'destinataire' => :'destinataire',
81
- :'fournisseur' => :'fournisseur',
82
- :'cadre_de_facturation' => :'cadreDeFacturation',
76
+ :'invoice_number' => :'invoice_number',
77
+ :'payment_due_date' => :'payment_due_date',
78
+ :'invoice_date' => :'invoice_date',
79
+ :'submission_mode' => :'submission_mode',
80
+ :'recipient' => :'recipient',
81
+ :'supplier' => :'supplier',
82
+ :'invoicing_framework' => :'invoicing_framework',
83
83
  :'references' => :'references',
84
- :'montant_total' => :'montantTotal',
85
- :'lignes_de_poste' => :'lignesDePoste',
86
- :'lignes_de_tva' => :'lignesDeTva',
84
+ :'totals' => :'totals',
85
+ :'invoice_lines' => :'invoice_lines',
86
+ :'vat_lines' => :'vat_lines',
87
87
  :'notes' => :'notes',
88
- :'commentaire' => :'commentaire',
89
- :'id_utilisateur_courant' => :'idUtilisateurCourant',
90
- :'pieces_jointes_complementaires' => :'piecesJointesComplementaires',
91
- :'beneficiaire' => :'beneficiaire'
88
+ :'comment' => :'comment',
89
+ :'current_user_id' => :'current_user_id',
90
+ :'supplementary_attachments' => :'supplementary_attachments',
91
+ :'payee' => :'payee'
92
92
  }
93
93
  end
94
94
 
@@ -105,32 +105,32 @@ module FactPulse
105
105
  # Attribute type mapping.
106
106
  def self.openapi_types
107
107
  {
108
- :'numero_facture' => :'String',
109
- :'date_echeance_paiement' => :'String',
110
- :'date_facture' => :'String',
111
- :'mode_depot' => :'ModeDepot',
112
- :'destinataire' => :'Destinataire',
113
- :'fournisseur' => :'Fournisseur',
114
- :'cadre_de_facturation' => :'CadreDeFacturation',
115
- :'references' => :'References',
116
- :'montant_total' => :'MontantTotal',
117
- :'lignes_de_poste' => :'Array<LigneDePoste>',
118
- :'lignes_de_tva' => :'Array<LigneDeTVA>',
119
- :'notes' => :'Array<Note>',
120
- :'commentaire' => :'String',
121
- :'id_utilisateur_courant' => :'Integer',
122
- :'pieces_jointes_complementaires' => :'Array<PieceJointeComplementaire>',
123
- :'beneficiaire' => :'Beneficiaire'
108
+ :'invoice_number' => :'String',
109
+ :'payment_due_date' => :'String',
110
+ :'invoice_date' => :'String',
111
+ :'submission_mode' => :'SubmissionMode',
112
+ :'recipient' => :'Recipient',
113
+ :'supplier' => :'Supplier',
114
+ :'invoicing_framework' => :'InvoicingFramework',
115
+ :'references' => :'InvoiceReferences',
116
+ :'totals' => :'InvoiceTotals',
117
+ :'invoice_lines' => :'Array<InvoiceLine>',
118
+ :'vat_lines' => :'Array<VATLine>',
119
+ :'notes' => :'Array<InvoiceNote>',
120
+ :'comment' => :'String',
121
+ :'current_user_id' => :'Integer',
122
+ :'supplementary_attachments' => :'Array<SupplementaryAttachment>',
123
+ :'payee' => :'Payee'
124
124
  }
125
125
  end
126
126
 
127
127
  # List of attributes with nullable: true
128
128
  def self.openapi_nullable
129
129
  Set.new([
130
- :'commentaire',
131
- :'id_utilisateur_courant',
132
- :'pieces_jointes_complementaires',
133
- :'beneficiaire'
130
+ :'comment',
131
+ :'current_user_id',
132
+ :'supplementary_attachments',
133
+ :'payee'
134
134
  ])
135
135
  end
136
136
 
@@ -150,44 +150,44 @@ module FactPulse
150
150
  h[k.to_sym] = v
151
151
  }
152
152
 
153
- if attributes.key?(:'numero_facture')
154
- self.numero_facture = attributes[:'numero_facture']
153
+ if attributes.key?(:'invoice_number')
154
+ self.invoice_number = attributes[:'invoice_number']
155
155
  else
156
- self.numero_facture = nil
156
+ self.invoice_number = nil
157
157
  end
158
158
 
159
- if attributes.key?(:'date_echeance_paiement')
160
- self.date_echeance_paiement = attributes[:'date_echeance_paiement']
159
+ if attributes.key?(:'payment_due_date')
160
+ self.payment_due_date = attributes[:'payment_due_date']
161
161
  else
162
- self.date_echeance_paiement = nil
162
+ self.payment_due_date = nil
163
163
  end
164
164
 
165
- if attributes.key?(:'date_facture')
166
- self.date_facture = attributes[:'date_facture']
165
+ if attributes.key?(:'invoice_date')
166
+ self.invoice_date = attributes[:'invoice_date']
167
167
  end
168
168
 
169
- if attributes.key?(:'mode_depot')
170
- self.mode_depot = attributes[:'mode_depot']
169
+ if attributes.key?(:'submission_mode')
170
+ self.submission_mode = attributes[:'submission_mode']
171
171
  else
172
- self.mode_depot = nil
172
+ self.submission_mode = nil
173
173
  end
174
174
 
175
- if attributes.key?(:'destinataire')
176
- self.destinataire = attributes[:'destinataire']
175
+ if attributes.key?(:'recipient')
176
+ self.recipient = attributes[:'recipient']
177
177
  else
178
- self.destinataire = nil
178
+ self.recipient = nil
179
179
  end
180
180
 
181
- if attributes.key?(:'fournisseur')
182
- self.fournisseur = attributes[:'fournisseur']
181
+ if attributes.key?(:'supplier')
182
+ self.supplier = attributes[:'supplier']
183
183
  else
184
- self.fournisseur = nil
184
+ self.supplier = nil
185
185
  end
186
186
 
187
- if attributes.key?(:'cadre_de_facturation')
188
- self.cadre_de_facturation = attributes[:'cadre_de_facturation']
187
+ if attributes.key?(:'invoicing_framework')
188
+ self.invoicing_framework = attributes[:'invoicing_framework']
189
189
  else
190
- self.cadre_de_facturation = nil
190
+ self.invoicing_framework = nil
191
191
  end
192
192
 
193
193
  if attributes.key?(:'references')
@@ -196,21 +196,21 @@ module FactPulse
196
196
  self.references = nil
197
197
  end
198
198
 
199
- if attributes.key?(:'montant_total')
200
- self.montant_total = attributes[:'montant_total']
199
+ if attributes.key?(:'totals')
200
+ self.totals = attributes[:'totals']
201
201
  else
202
- self.montant_total = nil
202
+ self.totals = nil
203
203
  end
204
204
 
205
- if attributes.key?(:'lignes_de_poste')
206
- if (value = attributes[:'lignes_de_poste']).is_a?(Array)
207
- self.lignes_de_poste = value
205
+ if attributes.key?(:'invoice_lines')
206
+ if (value = attributes[:'invoice_lines']).is_a?(Array)
207
+ self.invoice_lines = value
208
208
  end
209
209
  end
210
210
 
211
- if attributes.key?(:'lignes_de_tva')
212
- if (value = attributes[:'lignes_de_tva']).is_a?(Array)
213
- self.lignes_de_tva = value
211
+ if attributes.key?(:'vat_lines')
212
+ if (value = attributes[:'vat_lines']).is_a?(Array)
213
+ self.vat_lines = value
214
214
  end
215
215
  end
216
216
 
@@ -220,22 +220,22 @@ module FactPulse
220
220
  end
221
221
  end
222
222
 
223
- if attributes.key?(:'commentaire')
224
- self.commentaire = attributes[:'commentaire']
223
+ if attributes.key?(:'comment')
224
+ self.comment = attributes[:'comment']
225
225
  end
226
226
 
227
- if attributes.key?(:'id_utilisateur_courant')
228
- self.id_utilisateur_courant = attributes[:'id_utilisateur_courant']
227
+ if attributes.key?(:'current_user_id')
228
+ self.current_user_id = attributes[:'current_user_id']
229
229
  end
230
230
 
231
- if attributes.key?(:'pieces_jointes_complementaires')
232
- if (value = attributes[:'pieces_jointes_complementaires']).is_a?(Array)
233
- self.pieces_jointes_complementaires = value
231
+ if attributes.key?(:'supplementary_attachments')
232
+ if (value = attributes[:'supplementary_attachments']).is_a?(Array)
233
+ self.supplementary_attachments = value
234
234
  end
235
235
  end
236
236
 
237
- if attributes.key?(:'beneficiaire')
238
- self.beneficiaire = attributes[:'beneficiaire']
237
+ if attributes.key?(:'payee')
238
+ self.payee = attributes[:'payee']
239
239
  end
240
240
  end
241
241
 
@@ -244,36 +244,36 @@ module FactPulse
244
244
  def list_invalid_properties
245
245
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
246
246
  invalid_properties = Array.new
247
- if @numero_facture.nil?
248
- invalid_properties.push('invalid value for "numero_facture", numero_facture cannot be nil.')
247
+ if @invoice_number.nil?
248
+ invalid_properties.push('invalid value for "invoice_number", invoice_number cannot be nil.')
249
249
  end
250
250
 
251
- if @date_echeance_paiement.nil?
252
- invalid_properties.push('invalid value for "date_echeance_paiement", date_echeance_paiement cannot be nil.')
251
+ if @payment_due_date.nil?
252
+ invalid_properties.push('invalid value for "payment_due_date", payment_due_date cannot be nil.')
253
253
  end
254
254
 
255
- if @mode_depot.nil?
256
- invalid_properties.push('invalid value for "mode_depot", mode_depot cannot be nil.')
255
+ if @submission_mode.nil?
256
+ invalid_properties.push('invalid value for "submission_mode", submission_mode cannot be nil.')
257
257
  end
258
258
 
259
- if @destinataire.nil?
260
- invalid_properties.push('invalid value for "destinataire", destinataire cannot be nil.')
259
+ if @recipient.nil?
260
+ invalid_properties.push('invalid value for "recipient", recipient cannot be nil.')
261
261
  end
262
262
 
263
- if @fournisseur.nil?
264
- invalid_properties.push('invalid value for "fournisseur", fournisseur cannot be nil.')
263
+ if @supplier.nil?
264
+ invalid_properties.push('invalid value for "supplier", supplier cannot be nil.')
265
265
  end
266
266
 
267
- if @cadre_de_facturation.nil?
268
- invalid_properties.push('invalid value for "cadre_de_facturation", cadre_de_facturation cannot be nil.')
267
+ if @invoicing_framework.nil?
268
+ invalid_properties.push('invalid value for "invoicing_framework", invoicing_framework cannot be nil.')
269
269
  end
270
270
 
271
271
  if @references.nil?
272
272
  invalid_properties.push('invalid value for "references", references cannot be nil.')
273
273
  end
274
274
 
275
- if @montant_total.nil?
276
- invalid_properties.push('invalid value for "montant_total", montant_total cannot be nil.')
275
+ if @totals.nil?
276
+ invalid_properties.push('invalid value for "totals", totals cannot be nil.')
277
277
  end
278
278
 
279
279
  invalid_properties
@@ -283,75 +283,75 @@ module FactPulse
283
283
  # @return true if the model is valid
284
284
  def valid?
285
285
  warn '[DEPRECATED] the `valid?` method is obsolete'
286
- return false if @numero_facture.nil?
287
- return false if @date_echeance_paiement.nil?
288
- return false if @mode_depot.nil?
289
- return false if @destinataire.nil?
290
- return false if @fournisseur.nil?
291
- return false if @cadre_de_facturation.nil?
286
+ return false if @invoice_number.nil?
287
+ return false if @payment_due_date.nil?
288
+ return false if @submission_mode.nil?
289
+ return false if @recipient.nil?
290
+ return false if @supplier.nil?
291
+ return false if @invoicing_framework.nil?
292
292
  return false if @references.nil?
293
- return false if @montant_total.nil?
293
+ return false if @totals.nil?
294
294
  true
295
295
  end
296
296
 
297
297
  # Custom attribute writer method with validation
298
- # @param [Object] numero_facture Value to be assigned
299
- def numero_facture=(numero_facture)
300
- if numero_facture.nil?
301
- fail ArgumentError, 'numero_facture cannot be nil'
298
+ # @param [Object] invoice_number Value to be assigned
299
+ def invoice_number=(invoice_number)
300
+ if invoice_number.nil?
301
+ fail ArgumentError, 'invoice_number cannot be nil'
302
302
  end
303
303
 
304
- @numero_facture = numero_facture
304
+ @invoice_number = invoice_number
305
305
  end
306
306
 
307
307
  # Custom attribute writer method with validation
308
- # @param [Object] date_echeance_paiement Value to be assigned
309
- def date_echeance_paiement=(date_echeance_paiement)
310
- if date_echeance_paiement.nil?
311
- fail ArgumentError, 'date_echeance_paiement cannot be nil'
308
+ # @param [Object] payment_due_date Value to be assigned
309
+ def payment_due_date=(payment_due_date)
310
+ if payment_due_date.nil?
311
+ fail ArgumentError, 'payment_due_date cannot be nil'
312
312
  end
313
313
 
314
- @date_echeance_paiement = date_echeance_paiement
314
+ @payment_due_date = payment_due_date
315
315
  end
316
316
 
317
317
  # Custom attribute writer method with validation
318
- # @param [Object] mode_depot Value to be assigned
319
- def mode_depot=(mode_depot)
320
- if mode_depot.nil?
321
- fail ArgumentError, 'mode_depot cannot be nil'
318
+ # @param [Object] submission_mode Value to be assigned
319
+ def submission_mode=(submission_mode)
320
+ if submission_mode.nil?
321
+ fail ArgumentError, 'submission_mode cannot be nil'
322
322
  end
323
323
 
324
- @mode_depot = mode_depot
324
+ @submission_mode = submission_mode
325
325
  end
326
326
 
327
327
  # Custom attribute writer method with validation
328
- # @param [Object] destinataire Value to be assigned
329
- def destinataire=(destinataire)
330
- if destinataire.nil?
331
- fail ArgumentError, 'destinataire cannot be nil'
328
+ # @param [Object] recipient Value to be assigned
329
+ def recipient=(recipient)
330
+ if recipient.nil?
331
+ fail ArgumentError, 'recipient cannot be nil'
332
332
  end
333
333
 
334
- @destinataire = destinataire
334
+ @recipient = recipient
335
335
  end
336
336
 
337
337
  # Custom attribute writer method with validation
338
- # @param [Object] fournisseur Value to be assigned
339
- def fournisseur=(fournisseur)
340
- if fournisseur.nil?
341
- fail ArgumentError, 'fournisseur cannot be nil'
338
+ # @param [Object] supplier Value to be assigned
339
+ def supplier=(supplier)
340
+ if supplier.nil?
341
+ fail ArgumentError, 'supplier cannot be nil'
342
342
  end
343
343
 
344
- @fournisseur = fournisseur
344
+ @supplier = supplier
345
345
  end
346
346
 
347
347
  # Custom attribute writer method with validation
348
- # @param [Object] cadre_de_facturation Value to be assigned
349
- def cadre_de_facturation=(cadre_de_facturation)
350
- if cadre_de_facturation.nil?
351
- fail ArgumentError, 'cadre_de_facturation cannot be nil'
348
+ # @param [Object] invoicing_framework Value to be assigned
349
+ def invoicing_framework=(invoicing_framework)
350
+ if invoicing_framework.nil?
351
+ fail ArgumentError, 'invoicing_framework cannot be nil'
352
352
  end
353
353
 
354
- @cadre_de_facturation = cadre_de_facturation
354
+ @invoicing_framework = invoicing_framework
355
355
  end
356
356
 
357
357
  # Custom attribute writer method with validation
@@ -365,13 +365,13 @@ module FactPulse
365
365
  end
366
366
 
367
367
  # Custom attribute writer method with validation
368
- # @param [Object] montant_total Value to be assigned
369
- def montant_total=(montant_total)
370
- if montant_total.nil?
371
- fail ArgumentError, 'montant_total cannot be nil'
368
+ # @param [Object] totals Value to be assigned
369
+ def totals=(totals)
370
+ if totals.nil?
371
+ fail ArgumentError, 'totals cannot be nil'
372
372
  end
373
373
 
374
- @montant_total = montant_total
374
+ @totals = totals
375
375
  end
376
376
 
377
377
  # Checks equality by comparing each attribute.
@@ -379,22 +379,22 @@ module FactPulse
379
379
  def ==(o)
380
380
  return true if self.equal?(o)
381
381
  self.class == o.class &&
382
- numero_facture == o.numero_facture &&
383
- date_echeance_paiement == o.date_echeance_paiement &&
384
- date_facture == o.date_facture &&
385
- mode_depot == o.mode_depot &&
386
- destinataire == o.destinataire &&
387
- fournisseur == o.fournisseur &&
388
- cadre_de_facturation == o.cadre_de_facturation &&
382
+ invoice_number == o.invoice_number &&
383
+ payment_due_date == o.payment_due_date &&
384
+ invoice_date == o.invoice_date &&
385
+ submission_mode == o.submission_mode &&
386
+ recipient == o.recipient &&
387
+ supplier == o.supplier &&
388
+ invoicing_framework == o.invoicing_framework &&
389
389
  references == o.references &&
390
- montant_total == o.montant_total &&
391
- lignes_de_poste == o.lignes_de_poste &&
392
- lignes_de_tva == o.lignes_de_tva &&
390
+ totals == o.totals &&
391
+ invoice_lines == o.invoice_lines &&
392
+ vat_lines == o.vat_lines &&
393
393
  notes == o.notes &&
394
- commentaire == o.commentaire &&
395
- id_utilisateur_courant == o.id_utilisateur_courant &&
396
- pieces_jointes_complementaires == o.pieces_jointes_complementaires &&
397
- beneficiaire == o.beneficiaire
394
+ comment == o.comment &&
395
+ current_user_id == o.current_user_id &&
396
+ supplementary_attachments == o.supplementary_attachments &&
397
+ payee == o.payee
398
398
  end
399
399
 
400
400
  # @see the `==` method
@@ -406,7 +406,7 @@ module FactPulse
406
406
  # Calculates hash code according to all attributes.
407
407
  # @return [Integer] Hash code
408
408
  def hash
409
- [numero_facture, date_echeance_paiement, date_facture, mode_depot, destinataire, fournisseur, cadre_de_facturation, references, montant_total, lignes_de_poste, lignes_de_tva, notes, commentaire, id_utilisateur_courant, pieces_jointes_complementaires, beneficiaire].hash
409
+ [invoice_number, payment_due_date, invoice_date, submission_mode, recipient, supplier, invoicing_framework, references, totals, invoice_lines, vat_lines, notes, comment, current_user_id, supplementary_attachments, payee].hash
410
410
  end
411
411
 
412
412
  # Builds the object from hash
@@ -0,0 +1,43 @@
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://www.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://www.factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://www.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://www.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://www.factpulse.fr/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://www.factpulse.fr/documentation-api/
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.18.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FactPulse
17
+ class FieldStatus
18
+ COMPLIANT = "COMPLIANT".freeze
19
+ DISCREPANCY = "DISCREPANCY".freeze
20
+ MISSING_IN_PDF = "MISSING_IN_PDF".freeze
21
+ MISSING_IN_XML = "MISSING_IN_XML".freeze
22
+ NOT_VERIFIED = "NOT_VERIFIED".freeze
23
+
24
+ def self.all_vars
25
+ @all_vars ||= [COMPLIANT, DISCREPANCY, MISSING_IN_PDF, MISSING_IN_XML, NOT_VERIFIED].freeze
26
+ end
27
+
28
+ # Builds the enum from string
29
+ # @param [String] The enum value in the form of the string
30
+ # @return [String] The enum value
31
+ def self.build_from_hash(value)
32
+ new.build_from_hash(value)
33
+ end
34
+
35
+ # Builds the enum from string
36
+ # @param [String] The enum value in the form of the string
37
+ # @return [String] The enum value
38
+ def build_from_hash(value)
39
+ return value if FieldStatus.all_vars.include?(value)
40
+ raise "Invalid ENUM value #{value} for class #FieldStatus"
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,40 @@
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://www.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://www.factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://www.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://www.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://www.factpulse.fr/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://www.factpulse.fr/documentation-api/
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.18.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FactPulse
17
+ class FlowDirection
18
+ IN = "In".freeze
19
+ OUT = "Out".freeze
20
+
21
+ def self.all_vars
22
+ @all_vars ||= [IN, OUT].freeze
23
+ end
24
+
25
+ # Builds the enum from string
26
+ # @param [String] The enum value in the form of the string
27
+ # @return [String] The enum value
28
+ def self.build_from_hash(value)
29
+ new.build_from_hash(value)
30
+ end
31
+
32
+ # Builds the enum from string
33
+ # @param [String] The enum value in the form of the string
34
+ # @return [String] The enum value
35
+ def build_from_hash(value)
36
+ return value if FlowDirection.all_vars.include?(value)
37
+ raise "Invalid ENUM value #{value} for class #FlowDirection"
38
+ end
39
+ end
40
+ end