factpulse 2.0.42 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -3
- data/Gemfile.lock +3 -3
- data/README.md +91 -91
- data/docs/{CredentialsAFNOR.md → AFNORCredentials.md} +2 -2
- data/docs/{DestinationAFNOR.md → AFNORDestination.md} +4 -4
- data/docs/AFNORHealthCheckResponse.md +22 -0
- data/docs/AFNORPDPPAApi.md +25 -25
- data/docs/AFNORPDPPADirectoryServiceApi.md +19 -19
- data/docs/AFNORPDPPAFlowServiceApi.md +16 -16
- data/docs/{ResultatAFNOR.md → AFNORResult.md} +5 -5
- data/docs/APIError.md +2 -2
- data/docs/{MontantTva.md → APIProfile.md} +2 -2
- data/docs/{CodeCadreFacturation.md → AcknowledgmentStatus.md} +2 -2
- data/docs/{CodeRaisonReduction.md → AllowanceReasonCode.md} +2 -2
- data/docs/{ModeDepot.md → AmountDue.md} +2 -2
- data/docs/BoundingBoxSchema.md +7 -7
- data/docs/{CategorieTVA.md → CeleryStatus.md} +2 -2
- data/docs/CertificateInfoResponse.md +20 -20
- data/docs/ChorusProApi.md +123 -123
- data/docs/ChorusProDestination.md +20 -0
- data/docs/ChorusProResult.md +22 -0
- data/docs/Destination.md +7 -7
- data/docs/{ModePaiement.md → DocumentType.md} +2 -2
- data/docs/{AdresseElectronique.md → ElectronicAddress.md} +4 -4
- data/docs/EnrichedInvoiceInfo.md +32 -0
- data/docs/FacturXPDFInfo.md +22 -0
- data/docs/FactureElectroniqueRestApiSchemasChorusProChorusProCredentials.md +26 -0
- data/docs/{CredentialsChorusPro.md → FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md} +4 -4
- data/docs/FactureFacturX.md +30 -30
- data/docs/FieldStatus.md +15 -0
- data/docs/{DirectionFlux.md → FlowDirection.md} +2 -2
- data/docs/FlowProfile.md +15 -0
- data/docs/FlowSummary.md +32 -0
- data/docs/{ProfilFlux.md → FlowSyntax.md} +2 -2
- data/docs/{TypeTVA.md → FlowType.md} +2 -2
- data/docs/GenerateCertificateRequest.md +19 -19
- data/docs/GenerateCertificateResponse.md +8 -8
- data/docs/GetChorusProIdRequest.md +22 -0
- data/docs/GetChorusProIdResponse.md +24 -0
- data/docs/GetInvoiceRequest.md +20 -0
- data/docs/GetInvoiceResponse.md +34 -0
- data/docs/GetStructureRequest.md +22 -0
- data/docs/GetStructureResponse.md +34 -0
- data/docs/GlobalAllowanceAmount.md +15 -0
- data/docs/{SantApi.md → HealthApi.md} +23 -23
- data/docs/IncomingInvoice.md +54 -0
- data/docs/IncomingSupplier.md +32 -0
- data/docs/{FormatFacture.md → InvoiceFormat.md} +2 -2
- data/docs/InvoiceLine.md +46 -0
- data/docs/InvoiceLineAllowanceAmount.md +15 -0
- data/docs/InvoiceNote.md +20 -0
- data/docs/InvoiceProcessingApi.md +831 -0
- data/docs/InvoiceReferences.md +32 -0
- data/docs/{StatutFacture.md → InvoiceStatus.md} +5 -5
- data/docs/InvoiceTotals.md +30 -0
- data/docs/InvoiceTotalsPrepayment.md +15 -0
- data/docs/InvoiceTypeCode.md +15 -0
- data/docs/InvoicingFramework.md +24 -0
- data/docs/InvoicingFrameworkCode.md +15 -0
- data/docs/LineNetAmount.md +15 -0
- data/docs/MandatoryNoteSchema.md +30 -0
- data/docs/ManualRate.md +15 -0
- data/docs/ManualVatRate.md +15 -0
- data/docs/OperationNature.md +15 -0
- data/docs/{FormatSortie.md → OutputFormat.md} +2 -2
- data/docs/PDFValidationResultAPI.md +62 -0
- data/docs/PDFXMLVerificationApi.md +435 -0
- data/docs/PDPCredentials.md +4 -4
- data/docs/PageDimensionsSchema.md +20 -0
- data/docs/{Beneficiaire.md → Payee.md} +5 -5
- data/docs/PaymentMeans.md +15 -0
- data/docs/PostalAddress.md +26 -0
- data/docs/ProcessingOptions.md +24 -0
- data/docs/{Quantite.md → Quantity.md} +2 -2
- data/docs/Recipient.md +28 -0
- data/docs/SearchFlowRequest.md +34 -0
- data/docs/SearchFlowResponse.md +24 -0
- data/docs/SearchServicesResponse.md +24 -0
- data/docs/SearchStructureRequest.md +26 -0
- data/docs/SearchStructureResponse.md +24 -0
- data/docs/SignatureInfo.md +2 -2
- data/docs/SignatureInfoAPI.md +28 -0
- data/docs/SignatureParameters.md +34 -0
- data/docs/SimplifiedInvoiceData.md +34 -0
- data/docs/StructureInfo.md +10 -10
- data/docs/StructureParameters.md +22 -0
- data/docs/StructureService.md +24 -0
- data/docs/SubmissionMode.md +15 -0
- data/docs/SubmitCompleteInvoiceRequest.md +26 -0
- data/docs/SubmitCompleteInvoiceResponse.md +34 -0
- data/docs/SubmitFlowRequest.md +28 -0
- data/docs/SubmitFlowResponse.md +30 -0
- data/docs/SubmitInvoiceRequest.md +46 -0
- data/docs/SubmitInvoiceResponse.md +24 -0
- data/docs/SupplementaryAttachment.md +26 -0
- data/docs/Supplier.md +36 -0
- data/docs/TaskResponse.md +18 -0
- data/docs/TaskStatus.md +22 -0
- data/docs/TaxableAmount.md +15 -0
- data/docs/TotalGrossAmount.md +15 -0
- data/docs/TotalNetAmount.md +15 -0
- data/docs/TotalVATAmount.md +15 -0
- data/docs/UnitNetPrice.md +15 -0
- data/docs/UnitOfMeasure.md +15 -0
- data/docs/UserApi.md +74 -0
- data/docs/VATAccountingCode.md +15 -0
- data/docs/{ProfilAPI.md → VATAmount.md} +2 -2
- data/docs/VATCategory.md +15 -0
- data/docs/VATLine.md +30 -0
- data/docs/ValidationErrorDetail.md +3 -3
- data/docs/ValidationErrorResponse.md +18 -0
- data/docs/ValidationSuccessResponse.md +18 -0
- data/docs/{TypeFlux.md → VatAmount.md} +2 -2
- data/docs/VerificationSuccessResponse.md +36 -0
- data/docs/VerifiedFieldSchema.md +34 -0
- data/factpulse.gemspec +4 -4
- data/lib/factpulse/api/afnorpdppa_api.rb +25 -25
- data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +40 -40
- data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +16 -16
- data/lib/factpulse/api/chorus_pro_api.rb +127 -127
- data/lib/factpulse/api/health_api.rb +136 -0
- data/lib/factpulse/api/invoice_processing_api.rb +835 -0
- data/lib/factpulse/api/pdfxml_verification_api.rb +430 -0
- data/lib/factpulse/api/user_api.rb +79 -0
- data/lib/factpulse/api_client.rb +2 -2
- data/lib/factpulse/api_error.rb +2 -2
- data/lib/factpulse/api_model_base.rb +2 -2
- data/lib/factpulse/configuration.rb +2 -2
- data/lib/factpulse/helpers/client.rb +182 -182
- data/lib/factpulse/helpers/exceptions.rb +2 -2
- data/lib/factpulse/helpers/helpers.rb +5 -5
- data/lib/factpulse/models/acknowledgment_status.rb +41 -0
- data/lib/factpulse/models/afnor_credentials.rb +169 -0
- data/lib/factpulse/models/{destination_afnor.rb → afnor_destination.rb} +10 -10
- data/lib/factpulse/models/{reponse_healthcheck_afnor.rb → afnor_health_check_response.rb} +9 -9
- data/lib/factpulse/models/{resultat_afnor.rb → afnor_result.rb} +13 -13
- data/lib/factpulse/models/allowance_reason_code.rb +45 -0
- data/lib/factpulse/models/amount_due.rb +104 -0
- data/lib/factpulse/models/api_error.rb +5 -5
- data/lib/factpulse/models/api_profile.rb +42 -0
- data/lib/factpulse/models/bounding_box_schema.rb +10 -10
- data/lib/factpulse/models/celery_status.rb +43 -0
- data/lib/factpulse/models/certificate_info_response.rb +164 -164
- data/lib/factpulse/models/{destination_chorus_pro.rb → chorus_pro_destination.rb} +7 -7
- data/lib/factpulse/models/chorus_pro_result.rb +186 -0
- data/lib/factpulse/models/destination.rb +7 -7
- data/lib/factpulse/models/document_type.rb +43 -0
- data/lib/factpulse/models/electronic_address.rb +196 -0
- data/lib/factpulse/models/enriched_invoice_info.rb +348 -0
- data/lib/factpulse/models/error_level.rb +2 -2
- data/lib/factpulse/models/error_source.rb +2 -2
- data/lib/factpulse/models/factur_xpdf_info.rb +205 -0
- data/lib/factpulse/models/{chorus_pro_credentials.rb → facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb} +11 -11
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +191 -0
- data/lib/factpulse/models/facture_factur_x.rb +160 -160
- data/lib/factpulse/models/field_status.rb +43 -0
- data/lib/factpulse/models/flow_direction.rb +40 -0
- data/lib/factpulse/models/flow_profile.rb +41 -0
- data/lib/factpulse/models/flow_summary.rb +251 -0
- data/lib/factpulse/models/flow_syntax.rb +43 -0
- data/lib/factpulse/models/flow_type.rb +43 -0
- data/lib/factpulse/models/generate_certificate_request.rb +106 -106
- data/lib/factpulse/models/generate_certificate_response.rb +47 -47
- data/lib/factpulse/models/get_chorus_pro_id_request.rb +188 -0
- data/lib/factpulse/models/get_chorus_pro_id_response.rb +230 -0
- data/lib/factpulse/models/get_invoice_request.rb +176 -0
- data/lib/factpulse/models/get_invoice_response.rb +261 -0
- data/lib/factpulse/models/get_structure_request.rb +188 -0
- data/lib/factpulse/models/get_structure_response.rb +261 -0
- data/lib/factpulse/models/global_allowance_amount.rb +104 -0
- data/lib/factpulse/models/http_validation_error.rb +2 -2
- data/lib/factpulse/models/incoming_invoice.rb +522 -0
- data/lib/factpulse/models/incoming_supplier.rb +236 -0
- data/lib/factpulse/models/invoice_format.rb +41 -0
- data/lib/factpulse/models/invoice_line.rb +389 -0
- data/lib/factpulse/models/invoice_line_allowance_amount.rb +104 -0
- data/lib/factpulse/models/invoice_note.rb +175 -0
- data/lib/factpulse/models/invoice_references.rb +290 -0
- data/lib/factpulse/models/invoice_status.rb +203 -0
- data/lib/factpulse/models/invoice_totals.rb +272 -0
- data/lib/factpulse/models/invoice_totals_prepayment.rb +104 -0
- data/lib/factpulse/models/invoice_type_code.rb +70 -0
- data/lib/factpulse/models/invoicing_framework.rb +217 -0
- data/lib/factpulse/models/invoicing_framework_code.rb +46 -0
- data/lib/factpulse/models/line_net_amount.rb +104 -0
- data/lib/factpulse/models/mandatory_note_schema.rb +265 -0
- data/lib/factpulse/models/manual_rate.rb +104 -0
- data/lib/factpulse/models/manual_vat_rate.rb +104 -0
- data/lib/factpulse/models/operation_nature.rb +52 -0
- data/lib/factpulse/models/output_format.rb +40 -0
- data/lib/factpulse/models/page_dimensions_schema.rb +193 -0
- data/lib/factpulse/models/{beneficiaire.rb → payee.rb} +15 -15
- data/lib/factpulse/models/payment_means.rb +50 -0
- data/lib/factpulse/models/pdf_validation_result_api.rb +523 -0
- data/lib/factpulse/models/pdp_credentials.rb +7 -7
- data/lib/factpulse/models/postal_address.rb +189 -0
- data/lib/factpulse/models/processing_options.rb +207 -0
- data/lib/factpulse/models/quantity.rb +104 -0
- data/lib/factpulse/models/recipient.rb +201 -0
- data/lib/factpulse/models/scheme_id.rb +2 -2
- data/lib/factpulse/models/search_flow_request.rb +306 -0
- data/lib/factpulse/models/search_flow_response.rb +249 -0
- data/lib/factpulse/models/search_services_response.rb +214 -0
- data/lib/factpulse/models/search_structure_request.rb +191 -0
- data/lib/factpulse/models/search_structure_response.rb +216 -0
- data/lib/factpulse/models/signature_info.rb +20 -20
- data/lib/factpulse/models/signature_info_api.rb +216 -0
- data/lib/factpulse/models/signature_parameters.rb +235 -0
- data/lib/factpulse/models/simplified_invoice_data.rb +342 -0
- data/lib/factpulse/models/structure_info.rb +84 -84
- data/lib/factpulse/models/structure_parameters.rb +175 -0
- data/lib/factpulse/models/structure_service.rb +247 -0
- data/lib/factpulse/models/submission_mode.rb +44 -0
- data/lib/factpulse/models/submit_complete_invoice_request.rb +239 -0
- data/lib/factpulse/models/submit_complete_invoice_response.rb +355 -0
- data/lib/factpulse/models/submit_flow_request.rb +238 -0
- data/lib/factpulse/models/submit_flow_response.rb +294 -0
- data/lib/factpulse/models/submit_invoice_request.rb +388 -0
- data/lib/factpulse/models/submit_invoice_response.rb +213 -0
- data/lib/factpulse/models/supplementary_attachment.rb +269 -0
- data/lib/factpulse/models/supplier.rb +257 -0
- data/lib/factpulse/models/task_response.rb +166 -0
- data/lib/factpulse/models/task_status.rb +227 -0
- data/lib/factpulse/models/taxable_amount.rb +104 -0
- data/lib/factpulse/models/total_gross_amount.rb +104 -0
- data/lib/factpulse/models/total_net_amount.rb +104 -0
- data/lib/factpulse/models/total_vat_amount.rb +104 -0
- data/lib/factpulse/models/unit_net_price.rb +104 -0
- data/lib/factpulse/models/unit_of_measure.rb +50 -0
- data/lib/factpulse/models/validation_error.rb +2 -2
- data/lib/factpulse/models/validation_error_detail.rb +6 -6
- data/lib/factpulse/models/validation_error_loc_inner.rb +2 -2
- data/lib/factpulse/models/validation_error_response.rb +168 -0
- data/lib/factpulse/models/validation_success_response.rb +166 -0
- data/lib/factpulse/models/vat_accounting_code.rb +46 -0
- data/lib/factpulse/models/vat_amount.rb +104 -0
- data/lib/factpulse/models/vat_category.rb +47 -0
- data/lib/factpulse/models/vat_line.rb +262 -0
- data/lib/factpulse/models/verification_success_response.rb +343 -0
- data/lib/factpulse/models/verified_field_schema.rb +334 -0
- data/lib/factpulse/version.rb +3 -3
- data/lib/factpulse.rb +99 -99
- metadata +250 -257
- data/docs/AdressePostale.md +0 -26
- data/docs/CadreDeFacturation.md +0 -24
- data/docs/ChampVerifieSchema.md +0 -34
- data/docs/ChorusProCredentials.md +0 -26
- data/docs/ConsulterFactureRequest.md +0 -20
- data/docs/ConsulterFactureResponse.md +0 -34
- data/docs/ConsulterStructureRequest.md +0 -22
- data/docs/ConsulterStructureResponse.md +0 -34
- data/docs/Destinataire.md +0 -28
- data/docs/DestinationChorusPro.md +0 -20
- data/docs/DimensionPageSchema.md +0 -20
- data/docs/DonneesFactureSimplifiees.md +0 -34
- data/docs/FactureEnrichieInfo.md +0 -32
- data/docs/FactureEntrante.md +0 -54
- data/docs/FluxResume.md +0 -32
- data/docs/Fournisseur.md +0 -36
- data/docs/FournisseurEntrant.md +0 -32
- data/docs/InformationSignatureAPI.md +0 -28
- data/docs/LigneDePoste.md +0 -46
- data/docs/LigneDePosteMontantRemiseHt.md +0 -15
- data/docs/LigneDePosteTauxTvaManuel.md +0 -15
- data/docs/LigneDeTVA.md +0 -30
- data/docs/MontantAPayer.md +0 -15
- data/docs/MontantBaseHt.md +0 -15
- data/docs/MontantHtTotal.md +0 -15
- data/docs/MontantRemiseGlobaleTtc.md +0 -15
- data/docs/MontantTotal.md +0 -30
- data/docs/MontantTotalAcompte.md +0 -15
- data/docs/MontantTotalLigneHt.md +0 -15
- data/docs/MontantTtcTotal.md +0 -15
- data/docs/MontantTvaLigne.md +0 -15
- data/docs/MontantTvaTotal.md +0 -15
- data/docs/MontantUnitaireHt.md +0 -15
- data/docs/NatureOperation.md +0 -15
- data/docs/Note.md +0 -20
- data/docs/NoteObligatoireSchema.md +0 -30
- data/docs/ObtenirIdChorusProRequest.md +0 -22
- data/docs/ObtenirIdChorusProResponse.md +0 -24
- data/docs/OptionsProcessing.md +0 -24
- data/docs/PDFFacturXInfo.md +0 -22
- data/docs/ParametresSignature.md +0 -34
- data/docs/ParametresStructure.md +0 -22
- data/docs/PieceJointeComplementaire.md +0 -26
- data/docs/RechercherServicesResponse.md +0 -24
- data/docs/RechercherStructureRequest.md +0 -26
- data/docs/RechercherStructureResponse.md +0 -24
- data/docs/References.md +0 -32
- data/docs/ReponseHealthcheckAFNOR.md +0 -22
- data/docs/ReponseRechercheFlux.md +0 -24
- data/docs/ReponseSoumissionFlux.md +0 -30
- data/docs/ReponseTache.md +0 -18
- data/docs/ReponseValidationErreur.md +0 -18
- data/docs/ReponseValidationSucces.md +0 -18
- data/docs/ReponseVerificationSucces.md +0 -36
- data/docs/RequeteRechercheFlux.md +0 -34
- data/docs/RequeteSoumissionFlux.md +0 -28
- data/docs/ResultatChorusPro.md +0 -22
- data/docs/ResultatValidationPDFAPI.md +0 -62
- data/docs/ServiceStructure.md +0 -24
- data/docs/SoumettreFactureCompleteRequest.md +0 -26
- data/docs/SoumettreFactureCompleteResponse.md +0 -34
- data/docs/SoumettreFactureRequest.md +0 -46
- data/docs/SoumettreFactureResponse.md +0 -24
- data/docs/StatutAcquittement.md +0 -15
- data/docs/StatutCelery.md +0 -15
- data/docs/StatutChampAPI.md +0 -15
- data/docs/StatutTache.md +0 -22
- data/docs/SyntaxeFlux.md +0 -15
- data/docs/Tauxmanuel.md +0 -15
- data/docs/TraitementFactureApi.md +0 -831
- data/docs/TypeDocument.md +0 -15
- data/docs/TypeFacture.md +0 -15
- data/docs/Unite.md +0 -15
- data/docs/UtilisateurApi.md +0 -74
- data/docs/VrificationPDFXMLApi.md +0 -435
- data/lib/factpulse/api/sant_api.rb +0 -136
- data/lib/factpulse/api/traitement_facture_api.rb +0 -835
- data/lib/factpulse/api/utilisateur_api.rb +0 -79
- data/lib/factpulse/api/vrification_pdfxml_api.rb +0 -430
- data/lib/factpulse/models/adresse_electronique.rb +0 -196
- data/lib/factpulse/models/adresse_postale.rb +0 -189
- data/lib/factpulse/models/cadre_de_facturation.rb +0 -217
- data/lib/factpulse/models/categorie_tva.rb +0 -47
- data/lib/factpulse/models/champ_verifie_schema.rb +0 -334
- data/lib/factpulse/models/code_cadre_facturation.rb +0 -42
- data/lib/factpulse/models/code_raison_reduction.rb +0 -45
- data/lib/factpulse/models/consulter_facture_request.rb +0 -176
- data/lib/factpulse/models/consulter_facture_response.rb +0 -261
- data/lib/factpulse/models/consulter_structure_request.rb +0 -188
- data/lib/factpulse/models/consulter_structure_response.rb +0 -261
- data/lib/factpulse/models/credentials_afnor.rb +0 -169
- data/lib/factpulse/models/credentials_chorus_pro.rb +0 -191
- data/lib/factpulse/models/destinataire.rb +0 -201
- data/lib/factpulse/models/dimension_page_schema.rb +0 -193
- data/lib/factpulse/models/direction_flux.rb +0 -40
- data/lib/factpulse/models/donnees_facture_simplifiees.rb +0 -342
- data/lib/factpulse/models/facture_enrichie_info.rb +0 -348
- data/lib/factpulse/models/facture_entrante.rb +0 -522
- data/lib/factpulse/models/flux_resume.rb +0 -251
- data/lib/factpulse/models/format_facture.rb +0 -41
- data/lib/factpulse/models/format_sortie.rb +0 -40
- data/lib/factpulse/models/fournisseur.rb +0 -257
- data/lib/factpulse/models/fournisseur_entrant.rb +0 -236
- data/lib/factpulse/models/information_signature_api.rb +0 -216
- data/lib/factpulse/models/ligne_de_poste.rb +0 -390
- data/lib/factpulse/models/ligne_de_poste_montant_remise_ht.rb +0 -104
- data/lib/factpulse/models/ligne_de_poste_taux_tva_manuel.rb +0 -104
- data/lib/factpulse/models/ligne_de_tva.rb +0 -262
- data/lib/factpulse/models/mode_depot.rb +0 -41
- data/lib/factpulse/models/mode_paiement.rb +0 -44
- data/lib/factpulse/models/montant_a_payer.rb +0 -104
- data/lib/factpulse/models/montant_base_ht.rb +0 -104
- data/lib/factpulse/models/montant_ht_total.rb +0 -104
- data/lib/factpulse/models/montant_remise_globale_ttc.rb +0 -104
- data/lib/factpulse/models/montant_total.rb +0 -272
- data/lib/factpulse/models/montant_total_acompte.rb +0 -104
- data/lib/factpulse/models/montant_total_ligne_ht.rb +0 -104
- data/lib/factpulse/models/montant_ttc_total.rb +0 -104
- data/lib/factpulse/models/montant_tva.rb +0 -104
- data/lib/factpulse/models/montant_tva_ligne.rb +0 -104
- data/lib/factpulse/models/montant_tva_total.rb +0 -104
- data/lib/factpulse/models/montant_unitaire_ht.rb +0 -104
- data/lib/factpulse/models/nature_operation.rb +0 -52
- data/lib/factpulse/models/note.rb +0 -175
- data/lib/factpulse/models/note_obligatoire_schema.rb +0 -265
- data/lib/factpulse/models/obtenir_id_chorus_pro_request.rb +0 -188
- data/lib/factpulse/models/obtenir_id_chorus_pro_response.rb +0 -230
- data/lib/factpulse/models/options_processing.rb +0 -207
- data/lib/factpulse/models/parametres_signature.rb +0 -235
- data/lib/factpulse/models/parametres_structure.rb +0 -175
- data/lib/factpulse/models/pdf_factur_x_info.rb +0 -205
- data/lib/factpulse/models/piece_jointe_complementaire.rb +0 -269
- data/lib/factpulse/models/profil_api.rb +0 -42
- data/lib/factpulse/models/profil_flux.rb +0 -41
- data/lib/factpulse/models/quantite.rb +0 -104
- data/lib/factpulse/models/rechercher_services_response.rb +0 -214
- data/lib/factpulse/models/rechercher_structure_request.rb +0 -191
- data/lib/factpulse/models/rechercher_structure_response.rb +0 -216
- data/lib/factpulse/models/references.rb +0 -290
- data/lib/factpulse/models/reponse_recherche_flux.rb +0 -249
- data/lib/factpulse/models/reponse_soumission_flux.rb +0 -294
- data/lib/factpulse/models/reponse_tache.rb +0 -165
- data/lib/factpulse/models/reponse_validation_erreur.rb +0 -167
- data/lib/factpulse/models/reponse_validation_succes.rb +0 -165
- data/lib/factpulse/models/reponse_verification_succes.rb +0 -343
- data/lib/factpulse/models/requete_recherche_flux.rb +0 -306
- data/lib/factpulse/models/requete_soumission_flux.rb +0 -238
- data/lib/factpulse/models/resultat_chorus_pro.rb +0 -186
- data/lib/factpulse/models/resultat_validation_pdfapi.rb +0 -523
- data/lib/factpulse/models/service_structure.rb +0 -247
- data/lib/factpulse/models/soumettre_facture_complete_request.rb +0 -239
- data/lib/factpulse/models/soumettre_facture_complete_response.rb +0 -355
- data/lib/factpulse/models/soumettre_facture_request.rb +0 -388
- data/lib/factpulse/models/soumettre_facture_response.rb +0 -213
- data/lib/factpulse/models/statut_acquittement.rb +0 -41
- data/lib/factpulse/models/statut_celery.rb +0 -43
- data/lib/factpulse/models/statut_champ_api.rb +0 -43
- data/lib/factpulse/models/statut_facture.rb +0 -203
- data/lib/factpulse/models/statut_tache.rb +0 -226
- data/lib/factpulse/models/syntaxe_flux.rb +0 -43
- data/lib/factpulse/models/tauxmanuel.rb +0 -104
- data/lib/factpulse/models/type_document.rb +0 -43
- data/lib/factpulse/models/type_facture.rb +0 -54
- data/lib/factpulse/models/type_flux.rb +0 -43
- data/lib/factpulse/models/type_tva.rb +0 -42
- data/lib/factpulse/models/unite.rb +0 -44
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
|
-
#
|
|
2
|
+
#FactPulse REST API
|
|
3
3
|
|
|
4
|
-
#
|
|
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
|
-
#
|
|
17
|
+
# Data model for an invoice to be converted to Factur-X.
|
|
18
18
|
class FactureFacturX < ApiModelBase
|
|
19
|
-
attr_accessor :
|
|
19
|
+
attr_accessor :invoice_number
|
|
20
20
|
|
|
21
|
-
attr_accessor :
|
|
21
|
+
attr_accessor :payment_due_date
|
|
22
22
|
|
|
23
|
-
attr_accessor :
|
|
23
|
+
attr_accessor :invoice_date
|
|
24
24
|
|
|
25
|
-
attr_accessor :
|
|
25
|
+
attr_accessor :submission_mode
|
|
26
26
|
|
|
27
|
-
attr_accessor :
|
|
27
|
+
attr_accessor :recipient
|
|
28
28
|
|
|
29
|
-
attr_accessor :
|
|
29
|
+
attr_accessor :supplier
|
|
30
30
|
|
|
31
|
-
attr_accessor :
|
|
31
|
+
attr_accessor :invoicing_framework
|
|
32
32
|
|
|
33
33
|
attr_accessor :references
|
|
34
34
|
|
|
35
|
-
attr_accessor :
|
|
35
|
+
attr_accessor :totals
|
|
36
36
|
|
|
37
|
-
attr_accessor :
|
|
37
|
+
attr_accessor :invoice_lines
|
|
38
38
|
|
|
39
|
-
attr_accessor :
|
|
39
|
+
attr_accessor :vat_lines
|
|
40
40
|
|
|
41
41
|
attr_accessor :notes
|
|
42
42
|
|
|
43
|
-
attr_accessor :
|
|
43
|
+
attr_accessor :comment
|
|
44
44
|
|
|
45
|
-
attr_accessor :
|
|
45
|
+
attr_accessor :current_user_id
|
|
46
46
|
|
|
47
|
-
attr_accessor :
|
|
47
|
+
attr_accessor :supplementary_attachments
|
|
48
48
|
|
|
49
|
-
attr_accessor :
|
|
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
|
-
:'
|
|
77
|
-
:'
|
|
78
|
-
:'
|
|
79
|
-
:'
|
|
80
|
-
:'
|
|
81
|
-
:'
|
|
82
|
-
:'
|
|
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
|
-
:'
|
|
85
|
-
:'
|
|
86
|
-
:'
|
|
84
|
+
:'totals' => :'totals',
|
|
85
|
+
:'invoice_lines' => :'invoice_lines',
|
|
86
|
+
:'vat_lines' => :'vat_lines',
|
|
87
87
|
:'notes' => :'notes',
|
|
88
|
-
:'
|
|
89
|
-
:'
|
|
90
|
-
:'
|
|
91
|
-
:'
|
|
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
|
-
:'
|
|
109
|
-
:'
|
|
110
|
-
:'
|
|
111
|
-
:'
|
|
112
|
-
:'
|
|
113
|
-
:'
|
|
114
|
-
:'
|
|
115
|
-
:'references' => :'
|
|
116
|
-
:'
|
|
117
|
-
:'
|
|
118
|
-
:'
|
|
119
|
-
:'notes' => :'Array<
|
|
120
|
-
:'
|
|
121
|
-
:'
|
|
122
|
-
:'
|
|
123
|
-
:'
|
|
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
|
-
:'
|
|
131
|
-
:'
|
|
132
|
-
:'
|
|
133
|
-
:'
|
|
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?(:'
|
|
154
|
-
self.
|
|
153
|
+
if attributes.key?(:'invoice_number')
|
|
154
|
+
self.invoice_number = attributes[:'invoice_number']
|
|
155
155
|
else
|
|
156
|
-
self.
|
|
156
|
+
self.invoice_number = nil
|
|
157
157
|
end
|
|
158
158
|
|
|
159
|
-
if attributes.key?(:'
|
|
160
|
-
self.
|
|
159
|
+
if attributes.key?(:'payment_due_date')
|
|
160
|
+
self.payment_due_date = attributes[:'payment_due_date']
|
|
161
161
|
else
|
|
162
|
-
self.
|
|
162
|
+
self.payment_due_date = nil
|
|
163
163
|
end
|
|
164
164
|
|
|
165
|
-
if attributes.key?(:'
|
|
166
|
-
self.
|
|
165
|
+
if attributes.key?(:'invoice_date')
|
|
166
|
+
self.invoice_date = attributes[:'invoice_date']
|
|
167
167
|
end
|
|
168
168
|
|
|
169
|
-
if attributes.key?(:'
|
|
170
|
-
self.
|
|
169
|
+
if attributes.key?(:'submission_mode')
|
|
170
|
+
self.submission_mode = attributes[:'submission_mode']
|
|
171
171
|
else
|
|
172
|
-
self.
|
|
172
|
+
self.submission_mode = nil
|
|
173
173
|
end
|
|
174
174
|
|
|
175
|
-
if attributes.key?(:'
|
|
176
|
-
self.
|
|
175
|
+
if attributes.key?(:'recipient')
|
|
176
|
+
self.recipient = attributes[:'recipient']
|
|
177
177
|
else
|
|
178
|
-
self.
|
|
178
|
+
self.recipient = nil
|
|
179
179
|
end
|
|
180
180
|
|
|
181
|
-
if attributes.key?(:'
|
|
182
|
-
self.
|
|
181
|
+
if attributes.key?(:'supplier')
|
|
182
|
+
self.supplier = attributes[:'supplier']
|
|
183
183
|
else
|
|
184
|
-
self.
|
|
184
|
+
self.supplier = nil
|
|
185
185
|
end
|
|
186
186
|
|
|
187
|
-
if attributes.key?(:'
|
|
188
|
-
self.
|
|
187
|
+
if attributes.key?(:'invoicing_framework')
|
|
188
|
+
self.invoicing_framework = attributes[:'invoicing_framework']
|
|
189
189
|
else
|
|
190
|
-
self.
|
|
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?(:'
|
|
200
|
-
self.
|
|
199
|
+
if attributes.key?(:'totals')
|
|
200
|
+
self.totals = attributes[:'totals']
|
|
201
201
|
else
|
|
202
|
-
self.
|
|
202
|
+
self.totals = nil
|
|
203
203
|
end
|
|
204
204
|
|
|
205
|
-
if attributes.key?(:'
|
|
206
|
-
if (value = attributes[:'
|
|
207
|
-
self.
|
|
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?(:'
|
|
212
|
-
if (value = attributes[:'
|
|
213
|
-
self.
|
|
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?(:'
|
|
224
|
-
self.
|
|
223
|
+
if attributes.key?(:'comment')
|
|
224
|
+
self.comment = attributes[:'comment']
|
|
225
225
|
end
|
|
226
226
|
|
|
227
|
-
if attributes.key?(:'
|
|
228
|
-
self.
|
|
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?(:'
|
|
232
|
-
if (value = attributes[:'
|
|
233
|
-
self.
|
|
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?(:'
|
|
238
|
-
self.
|
|
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 @
|
|
248
|
-
invalid_properties.push('invalid value for "
|
|
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 @
|
|
252
|
-
invalid_properties.push('invalid value for "
|
|
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 @
|
|
256
|
-
invalid_properties.push('invalid value for "
|
|
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 @
|
|
260
|
-
invalid_properties.push('invalid value for "
|
|
259
|
+
if @recipient.nil?
|
|
260
|
+
invalid_properties.push('invalid value for "recipient", recipient cannot be nil.')
|
|
261
261
|
end
|
|
262
262
|
|
|
263
|
-
if @
|
|
264
|
-
invalid_properties.push('invalid value for "
|
|
263
|
+
if @supplier.nil?
|
|
264
|
+
invalid_properties.push('invalid value for "supplier", supplier cannot be nil.')
|
|
265
265
|
end
|
|
266
266
|
|
|
267
|
-
if @
|
|
268
|
-
invalid_properties.push('invalid value for "
|
|
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 @
|
|
276
|
-
invalid_properties.push('invalid value for "
|
|
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 @
|
|
287
|
-
return false if @
|
|
288
|
-
return false if @
|
|
289
|
-
return false if @
|
|
290
|
-
return false if @
|
|
291
|
-
return false if @
|
|
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 @
|
|
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]
|
|
299
|
-
def
|
|
300
|
-
if
|
|
301
|
-
fail ArgumentError, '
|
|
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
|
-
@
|
|
304
|
+
@invoice_number = invoice_number
|
|
305
305
|
end
|
|
306
306
|
|
|
307
307
|
# Custom attribute writer method with validation
|
|
308
|
-
# @param [Object]
|
|
309
|
-
def
|
|
310
|
-
if
|
|
311
|
-
fail ArgumentError, '
|
|
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
|
-
@
|
|
314
|
+
@payment_due_date = payment_due_date
|
|
315
315
|
end
|
|
316
316
|
|
|
317
317
|
# Custom attribute writer method with validation
|
|
318
|
-
# @param [Object]
|
|
319
|
-
def
|
|
320
|
-
if
|
|
321
|
-
fail ArgumentError, '
|
|
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
|
-
@
|
|
324
|
+
@submission_mode = submission_mode
|
|
325
325
|
end
|
|
326
326
|
|
|
327
327
|
# Custom attribute writer method with validation
|
|
328
|
-
# @param [Object]
|
|
329
|
-
def
|
|
330
|
-
if
|
|
331
|
-
fail ArgumentError, '
|
|
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
|
-
@
|
|
334
|
+
@recipient = recipient
|
|
335
335
|
end
|
|
336
336
|
|
|
337
337
|
# Custom attribute writer method with validation
|
|
338
|
-
# @param [Object]
|
|
339
|
-
def
|
|
340
|
-
if
|
|
341
|
-
fail ArgumentError, '
|
|
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
|
-
@
|
|
344
|
+
@supplier = supplier
|
|
345
345
|
end
|
|
346
346
|
|
|
347
347
|
# Custom attribute writer method with validation
|
|
348
|
-
# @param [Object]
|
|
349
|
-
def
|
|
350
|
-
if
|
|
351
|
-
fail ArgumentError, '
|
|
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
|
-
@
|
|
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]
|
|
369
|
-
def
|
|
370
|
-
if
|
|
371
|
-
fail ArgumentError, '
|
|
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
|
-
@
|
|
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
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
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
|
-
|
|
391
|
-
|
|
392
|
-
|
|
390
|
+
totals == o.totals &&
|
|
391
|
+
invoice_lines == o.invoice_lines &&
|
|
392
|
+
vat_lines == o.vat_lines &&
|
|
393
393
|
notes == o.notes &&
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
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
|
-
[
|
|
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
|