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
@@ -0,0 +1,522 @@
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
+ # Invoice received from a supplier via PDP/PA. This model contains essential metadata extracted from incoming invoices, regardless of their source format (CII, UBL, Factur-X). Amounts are Decimal in Python but will be serialized as strings in JSON to preserve monetary precision.
18
+ class IncomingInvoice < ApiModelBase
19
+ attr_accessor :flow_id
20
+
21
+ # Invoice source format
22
+ attr_accessor :source_format
23
+
24
+ # Invoice number issued by the supplier (BT-1)
25
+ attr_accessor :supplier_reference
26
+
27
+ # Document type (BT-3)
28
+ attr_accessor :document_type
29
+
30
+ # Invoice issuer (SellerTradeParty)
31
+ attr_accessor :supplier
32
+
33
+ # Recipient name / your company (BT-44)
34
+ attr_accessor :billing_site_name
35
+
36
+ attr_accessor :billing_site_siret
37
+
38
+ # Invoice date (BT-2) - YYYY-MM-DD
39
+ attr_accessor :issue_date
40
+
41
+ attr_accessor :due_date
42
+
43
+ # ISO currency code (BT-5)
44
+ attr_accessor :currency
45
+
46
+ # Total net amount (BT-109)
47
+ attr_accessor :net_amount
48
+
49
+ # Total VAT amount (BT-110)
50
+ attr_accessor :vat_amount
51
+
52
+ # Total gross amount (BT-112)
53
+ attr_accessor :gross_amount
54
+
55
+ attr_accessor :purchase_order_number
56
+
57
+ attr_accessor :contract_reference
58
+
59
+ attr_accessor :invoice_subject
60
+
61
+ attr_accessor :document_base64
62
+
63
+ attr_accessor :document_content_type
64
+
65
+ attr_accessor :document_filename
66
+
67
+ class EnumAttributeValidator
68
+ attr_reader :datatype
69
+ attr_reader :allowable_values
70
+
71
+ def initialize(datatype, allowable_values)
72
+ @allowable_values = allowable_values.map do |value|
73
+ case datatype.to_s
74
+ when /Integer/i
75
+ value.to_i
76
+ when /Float/i
77
+ value.to_f
78
+ else
79
+ value
80
+ end
81
+ end
82
+ end
83
+
84
+ def valid?(value)
85
+ !value || allowable_values.include?(value)
86
+ end
87
+ end
88
+
89
+ # Attribute mapping from ruby-style variable name to JSON key.
90
+ def self.attribute_map
91
+ {
92
+ :'flow_id' => :'flowId',
93
+ :'source_format' => :'sourceFormat',
94
+ :'supplier_reference' => :'supplierReference',
95
+ :'document_type' => :'documentType',
96
+ :'supplier' => :'supplier',
97
+ :'billing_site_name' => :'billingSiteName',
98
+ :'billing_site_siret' => :'billingSiteSiret',
99
+ :'issue_date' => :'issueDate',
100
+ :'due_date' => :'dueDate',
101
+ :'currency' => :'currency',
102
+ :'net_amount' => :'netAmount',
103
+ :'vat_amount' => :'vatAmount',
104
+ :'gross_amount' => :'grossAmount',
105
+ :'purchase_order_number' => :'purchaseOrderNumber',
106
+ :'contract_reference' => :'contractReference',
107
+ :'invoice_subject' => :'invoiceSubject',
108
+ :'document_base64' => :'documentBase64',
109
+ :'document_content_type' => :'documentContentType',
110
+ :'document_filename' => :'documentFilename'
111
+ }
112
+ end
113
+
114
+ # Returns attribute mapping this model knows about
115
+ def self.acceptable_attribute_map
116
+ attribute_map
117
+ end
118
+
119
+ # Returns all the JSON keys this model knows about
120
+ def self.acceptable_attributes
121
+ acceptable_attribute_map.values
122
+ end
123
+
124
+ # Attribute type mapping.
125
+ def self.openapi_types
126
+ {
127
+ :'flow_id' => :'String',
128
+ :'source_format' => :'InvoiceFormat',
129
+ :'supplier_reference' => :'String',
130
+ :'document_type' => :'DocumentType',
131
+ :'supplier' => :'IncomingSupplier',
132
+ :'billing_site_name' => :'String',
133
+ :'billing_site_siret' => :'String',
134
+ :'issue_date' => :'String',
135
+ :'due_date' => :'String',
136
+ :'currency' => :'String',
137
+ :'net_amount' => :'String',
138
+ :'vat_amount' => :'String',
139
+ :'gross_amount' => :'String',
140
+ :'purchase_order_number' => :'String',
141
+ :'contract_reference' => :'String',
142
+ :'invoice_subject' => :'String',
143
+ :'document_base64' => :'String',
144
+ :'document_content_type' => :'String',
145
+ :'document_filename' => :'String'
146
+ }
147
+ end
148
+
149
+ # List of attributes with nullable: true
150
+ def self.openapi_nullable
151
+ Set.new([
152
+ :'flow_id',
153
+ :'billing_site_siret',
154
+ :'due_date',
155
+ :'purchase_order_number',
156
+ :'contract_reference',
157
+ :'invoice_subject',
158
+ :'document_base64',
159
+ :'document_content_type',
160
+ :'document_filename'
161
+ ])
162
+ end
163
+
164
+ # Initializes the object
165
+ # @param [Hash] attributes Model attributes in the form of hash
166
+ def initialize(attributes = {})
167
+ if (!attributes.is_a?(Hash))
168
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FactPulse::IncomingInvoice` initialize method"
169
+ end
170
+
171
+ # check to see if the attribute exists and convert string to symbol for hash key
172
+ acceptable_attribute_map = self.class.acceptable_attribute_map
173
+ attributes = attributes.each_with_object({}) { |(k, v), h|
174
+ if (!acceptable_attribute_map.key?(k.to_sym))
175
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FactPulse::IncomingInvoice`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
176
+ end
177
+ h[k.to_sym] = v
178
+ }
179
+
180
+ if attributes.key?(:'flow_id')
181
+ self.flow_id = attributes[:'flow_id']
182
+ end
183
+
184
+ if attributes.key?(:'source_format')
185
+ self.source_format = attributes[:'source_format']
186
+ else
187
+ self.source_format = nil
188
+ end
189
+
190
+ if attributes.key?(:'supplier_reference')
191
+ self.supplier_reference = attributes[:'supplier_reference']
192
+ else
193
+ self.supplier_reference = nil
194
+ end
195
+
196
+ if attributes.key?(:'document_type')
197
+ self.document_type = attributes[:'document_type']
198
+ end
199
+
200
+ if attributes.key?(:'supplier')
201
+ self.supplier = attributes[:'supplier']
202
+ else
203
+ self.supplier = nil
204
+ end
205
+
206
+ if attributes.key?(:'billing_site_name')
207
+ self.billing_site_name = attributes[:'billing_site_name']
208
+ else
209
+ self.billing_site_name = nil
210
+ end
211
+
212
+ if attributes.key?(:'billing_site_siret')
213
+ self.billing_site_siret = attributes[:'billing_site_siret']
214
+ end
215
+
216
+ if attributes.key?(:'issue_date')
217
+ self.issue_date = attributes[:'issue_date']
218
+ else
219
+ self.issue_date = nil
220
+ end
221
+
222
+ if attributes.key?(:'due_date')
223
+ self.due_date = attributes[:'due_date']
224
+ end
225
+
226
+ if attributes.key?(:'currency')
227
+ self.currency = attributes[:'currency']
228
+ else
229
+ self.currency = 'EUR'
230
+ end
231
+
232
+ if attributes.key?(:'net_amount')
233
+ self.net_amount = attributes[:'net_amount']
234
+ else
235
+ self.net_amount = nil
236
+ end
237
+
238
+ if attributes.key?(:'vat_amount')
239
+ self.vat_amount = attributes[:'vat_amount']
240
+ else
241
+ self.vat_amount = nil
242
+ end
243
+
244
+ if attributes.key?(:'gross_amount')
245
+ self.gross_amount = attributes[:'gross_amount']
246
+ else
247
+ self.gross_amount = nil
248
+ end
249
+
250
+ if attributes.key?(:'purchase_order_number')
251
+ self.purchase_order_number = attributes[:'purchase_order_number']
252
+ end
253
+
254
+ if attributes.key?(:'contract_reference')
255
+ self.contract_reference = attributes[:'contract_reference']
256
+ end
257
+
258
+ if attributes.key?(:'invoice_subject')
259
+ self.invoice_subject = attributes[:'invoice_subject']
260
+ end
261
+
262
+ if attributes.key?(:'document_base64')
263
+ self.document_base64 = attributes[:'document_base64']
264
+ end
265
+
266
+ if attributes.key?(:'document_content_type')
267
+ self.document_content_type = attributes[:'document_content_type']
268
+ end
269
+
270
+ if attributes.key?(:'document_filename')
271
+ self.document_filename = attributes[:'document_filename']
272
+ end
273
+ end
274
+
275
+ # Show invalid properties with the reasons. Usually used together with valid?
276
+ # @return Array for valid properties with the reasons
277
+ def list_invalid_properties
278
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
279
+ invalid_properties = Array.new
280
+ if @source_format.nil?
281
+ invalid_properties.push('invalid value for "source_format", source_format cannot be nil.')
282
+ end
283
+
284
+ if @supplier_reference.nil?
285
+ invalid_properties.push('invalid value for "supplier_reference", supplier_reference cannot be nil.')
286
+ end
287
+
288
+ if @supplier.nil?
289
+ invalid_properties.push('invalid value for "supplier", supplier cannot be nil.')
290
+ end
291
+
292
+ if @billing_site_name.nil?
293
+ invalid_properties.push('invalid value for "billing_site_name", billing_site_name cannot be nil.')
294
+ end
295
+
296
+ if @issue_date.nil?
297
+ invalid_properties.push('invalid value for "issue_date", issue_date cannot be nil.')
298
+ end
299
+
300
+ if @net_amount.nil?
301
+ invalid_properties.push('invalid value for "net_amount", net_amount cannot be nil.')
302
+ end
303
+
304
+ pattern = Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
305
+ if @net_amount !~ pattern
306
+ invalid_properties.push("invalid value for \"net_amount\", must conform to the pattern #{pattern}.")
307
+ end
308
+
309
+ if @vat_amount.nil?
310
+ invalid_properties.push('invalid value for "vat_amount", vat_amount cannot be nil.')
311
+ end
312
+
313
+ pattern = Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
314
+ if @vat_amount !~ pattern
315
+ invalid_properties.push("invalid value for \"vat_amount\", must conform to the pattern #{pattern}.")
316
+ end
317
+
318
+ if @gross_amount.nil?
319
+ invalid_properties.push('invalid value for "gross_amount", gross_amount cannot be nil.')
320
+ end
321
+
322
+ pattern = Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
323
+ if @gross_amount !~ pattern
324
+ invalid_properties.push("invalid value for \"gross_amount\", must conform to the pattern #{pattern}.")
325
+ end
326
+
327
+ invalid_properties
328
+ end
329
+
330
+ # Check to see if the all the properties in the model are valid
331
+ # @return true if the model is valid
332
+ def valid?
333
+ warn '[DEPRECATED] the `valid?` method is obsolete'
334
+ return false if @source_format.nil?
335
+ return false if @supplier_reference.nil?
336
+ return false if @supplier.nil?
337
+ return false if @billing_site_name.nil?
338
+ return false if @issue_date.nil?
339
+ return false if @net_amount.nil?
340
+ return false if @net_amount !~ Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
341
+ return false if @vat_amount.nil?
342
+ return false if @vat_amount !~ Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
343
+ return false if @gross_amount.nil?
344
+ return false if @gross_amount !~ Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
345
+ true
346
+ end
347
+
348
+ # Custom attribute writer method with validation
349
+ # @param [Object] source_format Value to be assigned
350
+ def source_format=(source_format)
351
+ if source_format.nil?
352
+ fail ArgumentError, 'source_format cannot be nil'
353
+ end
354
+
355
+ @source_format = source_format
356
+ end
357
+
358
+ # Custom attribute writer method with validation
359
+ # @param [Object] supplier_reference Value to be assigned
360
+ def supplier_reference=(supplier_reference)
361
+ if supplier_reference.nil?
362
+ fail ArgumentError, 'supplier_reference cannot be nil'
363
+ end
364
+
365
+ @supplier_reference = supplier_reference
366
+ end
367
+
368
+ # Custom attribute writer method with validation
369
+ # @param [Object] supplier Value to be assigned
370
+ def supplier=(supplier)
371
+ if supplier.nil?
372
+ fail ArgumentError, 'supplier cannot be nil'
373
+ end
374
+
375
+ @supplier = supplier
376
+ end
377
+
378
+ # Custom attribute writer method with validation
379
+ # @param [Object] billing_site_name Value to be assigned
380
+ def billing_site_name=(billing_site_name)
381
+ if billing_site_name.nil?
382
+ fail ArgumentError, 'billing_site_name cannot be nil'
383
+ end
384
+
385
+ @billing_site_name = billing_site_name
386
+ end
387
+
388
+ # Custom attribute writer method with validation
389
+ # @param [Object] issue_date Value to be assigned
390
+ def issue_date=(issue_date)
391
+ if issue_date.nil?
392
+ fail ArgumentError, 'issue_date cannot be nil'
393
+ end
394
+
395
+ @issue_date = issue_date
396
+ end
397
+
398
+ # Custom attribute writer method with validation
399
+ # @param [Object] net_amount Value to be assigned
400
+ def net_amount=(net_amount)
401
+ if net_amount.nil?
402
+ fail ArgumentError, 'net_amount cannot be nil'
403
+ end
404
+
405
+ pattern = Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
406
+ if net_amount !~ pattern
407
+ fail ArgumentError, "invalid value for \"net_amount\", must conform to the pattern #{pattern}."
408
+ end
409
+
410
+ @net_amount = net_amount
411
+ end
412
+
413
+ # Custom attribute writer method with validation
414
+ # @param [Object] vat_amount Value to be assigned
415
+ def vat_amount=(vat_amount)
416
+ if vat_amount.nil?
417
+ fail ArgumentError, 'vat_amount cannot be nil'
418
+ end
419
+
420
+ pattern = Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
421
+ if vat_amount !~ pattern
422
+ fail ArgumentError, "invalid value for \"vat_amount\", must conform to the pattern #{pattern}."
423
+ end
424
+
425
+ @vat_amount = vat_amount
426
+ end
427
+
428
+ # Custom attribute writer method with validation
429
+ # @param [Object] gross_amount Value to be assigned
430
+ def gross_amount=(gross_amount)
431
+ if gross_amount.nil?
432
+ fail ArgumentError, 'gross_amount cannot be nil'
433
+ end
434
+
435
+ pattern = Regexp.new(/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/)
436
+ if gross_amount !~ pattern
437
+ fail ArgumentError, "invalid value for \"gross_amount\", must conform to the pattern #{pattern}."
438
+ end
439
+
440
+ @gross_amount = gross_amount
441
+ end
442
+
443
+ # Checks equality by comparing each attribute.
444
+ # @param [Object] Object to be compared
445
+ def ==(o)
446
+ return true if self.equal?(o)
447
+ self.class == o.class &&
448
+ flow_id == o.flow_id &&
449
+ source_format == o.source_format &&
450
+ supplier_reference == o.supplier_reference &&
451
+ document_type == o.document_type &&
452
+ supplier == o.supplier &&
453
+ billing_site_name == o.billing_site_name &&
454
+ billing_site_siret == o.billing_site_siret &&
455
+ issue_date == o.issue_date &&
456
+ due_date == o.due_date &&
457
+ currency == o.currency &&
458
+ net_amount == o.net_amount &&
459
+ vat_amount == o.vat_amount &&
460
+ gross_amount == o.gross_amount &&
461
+ purchase_order_number == o.purchase_order_number &&
462
+ contract_reference == o.contract_reference &&
463
+ invoice_subject == o.invoice_subject &&
464
+ document_base64 == o.document_base64 &&
465
+ document_content_type == o.document_content_type &&
466
+ document_filename == o.document_filename
467
+ end
468
+
469
+ # @see the `==` method
470
+ # @param [Object] Object to be compared
471
+ def eql?(o)
472
+ self == o
473
+ end
474
+
475
+ # Calculates hash code according to all attributes.
476
+ # @return [Integer] Hash code
477
+ def hash
478
+ [flow_id, source_format, supplier_reference, document_type, supplier, billing_site_name, billing_site_siret, issue_date, due_date, currency, net_amount, vat_amount, gross_amount, purchase_order_number, contract_reference, invoice_subject, document_base64, document_content_type, document_filename].hash
479
+ end
480
+
481
+ # Builds the object from hash
482
+ # @param [Hash] attributes Model attributes in the form of hash
483
+ # @return [Object] Returns the model itself
484
+ def self.build_from_hash(attributes)
485
+ return nil unless attributes.is_a?(Hash)
486
+ attributes = attributes.transform_keys(&:to_sym)
487
+ transformed_hash = {}
488
+ openapi_types.each_pair do |key, type|
489
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
490
+ transformed_hash["#{key}"] = nil
491
+ elsif type =~ /\AArray<(.*)>/i
492
+ # check to ensure the input is an array given that the attribute
493
+ # is documented as an array but the input is not
494
+ if attributes[attribute_map[key]].is_a?(Array)
495
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
496
+ end
497
+ elsif !attributes[attribute_map[key]].nil?
498
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
499
+ end
500
+ end
501
+ new(transformed_hash)
502
+ end
503
+
504
+ # Returns the object in the form of hash
505
+ # @return [Hash] Returns the object in the form of hash
506
+ def to_hash
507
+ hash = {}
508
+ self.class.attribute_map.each_pair do |attr, param|
509
+ value = self.send(attr)
510
+ if value.nil?
511
+ is_nullable = self.class.openapi_nullable.include?(attr)
512
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
513
+ end
514
+
515
+ hash[param] = _to_hash(value)
516
+ end
517
+ hash
518
+ end
519
+
520
+ end
521
+
522
+ end