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,53 +14,53 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module FactPulse
|
|
17
|
-
#
|
|
17
|
+
# Request to generate a self-signed X.509 test certificate. WARNING: This certificate is intended for TESTING only. DO NOT use in production! eIDAS level: SES (Simple Electronic Signature)
|
|
18
18
|
class GenerateCertificateRequest < ApiModelBase
|
|
19
|
-
# Common Name (CN) -
|
|
19
|
+
# Common Name (CN) - Certificate name
|
|
20
20
|
attr_accessor :cn
|
|
21
21
|
|
|
22
|
-
#
|
|
23
|
-
attr_accessor :
|
|
22
|
+
# Organization (O)
|
|
23
|
+
attr_accessor :organization
|
|
24
24
|
|
|
25
|
-
#
|
|
26
|
-
attr_accessor :
|
|
25
|
+
# ISO 2-letter country code (C)
|
|
26
|
+
attr_accessor :country
|
|
27
27
|
|
|
28
|
-
#
|
|
29
|
-
attr_accessor :
|
|
28
|
+
# City (L)
|
|
29
|
+
attr_accessor :city
|
|
30
30
|
|
|
31
|
-
# Province
|
|
32
|
-
attr_accessor :
|
|
31
|
+
# State/Province (ST)
|
|
32
|
+
attr_accessor :state
|
|
33
33
|
|
|
34
34
|
attr_accessor :email
|
|
35
35
|
|
|
36
|
-
#
|
|
37
|
-
attr_accessor :
|
|
36
|
+
# Validity duration in days
|
|
37
|
+
attr_accessor :validity_days
|
|
38
38
|
|
|
39
|
-
#
|
|
40
|
-
attr_accessor :
|
|
39
|
+
# RSA key size in bits
|
|
40
|
+
attr_accessor :key_size
|
|
41
41
|
|
|
42
|
-
attr_accessor :
|
|
42
|
+
attr_accessor :key_passphrase
|
|
43
43
|
|
|
44
|
-
#
|
|
45
|
-
attr_accessor :
|
|
44
|
+
# Also generate a PKCS#12 (.p12) file
|
|
45
|
+
attr_accessor :generate_p12
|
|
46
46
|
|
|
47
|
-
# Passphrase
|
|
48
|
-
attr_accessor :
|
|
47
|
+
# Passphrase for PKCS#12 file
|
|
48
|
+
attr_accessor :p12_passphrase
|
|
49
49
|
|
|
50
50
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
51
51
|
def self.attribute_map
|
|
52
52
|
{
|
|
53
53
|
:'cn' => :'cn',
|
|
54
|
-
:'
|
|
55
|
-
:'
|
|
56
|
-
:'
|
|
57
|
-
:'
|
|
54
|
+
:'organization' => :'organization',
|
|
55
|
+
:'country' => :'country',
|
|
56
|
+
:'city' => :'city',
|
|
57
|
+
:'state' => :'state',
|
|
58
58
|
:'email' => :'email',
|
|
59
|
-
:'
|
|
60
|
-
:'
|
|
61
|
-
:'
|
|
62
|
-
:'
|
|
63
|
-
:'
|
|
59
|
+
:'validity_days' => :'validity_days',
|
|
60
|
+
:'key_size' => :'key_size',
|
|
61
|
+
:'key_passphrase' => :'key_passphrase',
|
|
62
|
+
:'generate_p12' => :'generate_p12',
|
|
63
|
+
:'p12_passphrase' => :'p12_passphrase'
|
|
64
64
|
}
|
|
65
65
|
end
|
|
66
66
|
|
|
@@ -78,16 +78,16 @@ module FactPulse
|
|
|
78
78
|
def self.openapi_types
|
|
79
79
|
{
|
|
80
80
|
:'cn' => :'String',
|
|
81
|
-
:'
|
|
82
|
-
:'
|
|
83
|
-
:'
|
|
84
|
-
:'
|
|
81
|
+
:'organization' => :'String',
|
|
82
|
+
:'country' => :'String',
|
|
83
|
+
:'city' => :'String',
|
|
84
|
+
:'state' => :'String',
|
|
85
85
|
:'email' => :'String',
|
|
86
|
-
:'
|
|
87
|
-
:'
|
|
88
|
-
:'
|
|
89
|
-
:'
|
|
90
|
-
:'
|
|
86
|
+
:'validity_days' => :'Integer',
|
|
87
|
+
:'key_size' => :'Integer',
|
|
88
|
+
:'key_passphrase' => :'String',
|
|
89
|
+
:'generate_p12' => :'Boolean',
|
|
90
|
+
:'p12_passphrase' => :'String'
|
|
91
91
|
}
|
|
92
92
|
end
|
|
93
93
|
|
|
@@ -95,7 +95,7 @@ module FactPulse
|
|
|
95
95
|
def self.openapi_nullable
|
|
96
96
|
Set.new([
|
|
97
97
|
:'email',
|
|
98
|
-
:'
|
|
98
|
+
:'key_passphrase',
|
|
99
99
|
])
|
|
100
100
|
end
|
|
101
101
|
|
|
@@ -121,60 +121,60 @@ module FactPulse
|
|
|
121
121
|
self.cn = 'Test Signature FactPulse'
|
|
122
122
|
end
|
|
123
123
|
|
|
124
|
-
if attributes.key?(:'
|
|
125
|
-
self.
|
|
124
|
+
if attributes.key?(:'organization')
|
|
125
|
+
self.organization = attributes[:'organization']
|
|
126
126
|
else
|
|
127
|
-
self.
|
|
127
|
+
self.organization = 'FactPulse Test'
|
|
128
128
|
end
|
|
129
129
|
|
|
130
|
-
if attributes.key?(:'
|
|
131
|
-
self.
|
|
130
|
+
if attributes.key?(:'country')
|
|
131
|
+
self.country = attributes[:'country']
|
|
132
132
|
else
|
|
133
|
-
self.
|
|
133
|
+
self.country = 'FR'
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
if attributes.key?(:'
|
|
137
|
-
self.
|
|
136
|
+
if attributes.key?(:'city')
|
|
137
|
+
self.city = attributes[:'city']
|
|
138
138
|
else
|
|
139
|
-
self.
|
|
139
|
+
self.city = 'Paris'
|
|
140
140
|
end
|
|
141
141
|
|
|
142
|
-
if attributes.key?(:'
|
|
143
|
-
self.
|
|
142
|
+
if attributes.key?(:'state')
|
|
143
|
+
self.state = attributes[:'state']
|
|
144
144
|
else
|
|
145
|
-
self.
|
|
145
|
+
self.state = 'Ile-de-France'
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
if attributes.key?(:'email')
|
|
149
149
|
self.email = attributes[:'email']
|
|
150
150
|
end
|
|
151
151
|
|
|
152
|
-
if attributes.key?(:'
|
|
153
|
-
self.
|
|
152
|
+
if attributes.key?(:'validity_days')
|
|
153
|
+
self.validity_days = attributes[:'validity_days']
|
|
154
154
|
else
|
|
155
|
-
self.
|
|
155
|
+
self.validity_days = 365
|
|
156
156
|
end
|
|
157
157
|
|
|
158
|
-
if attributes.key?(:'
|
|
159
|
-
self.
|
|
158
|
+
if attributes.key?(:'key_size')
|
|
159
|
+
self.key_size = attributes[:'key_size']
|
|
160
160
|
else
|
|
161
|
-
self.
|
|
161
|
+
self.key_size = 2048
|
|
162
162
|
end
|
|
163
163
|
|
|
164
|
-
if attributes.key?(:'
|
|
165
|
-
self.
|
|
164
|
+
if attributes.key?(:'key_passphrase')
|
|
165
|
+
self.key_passphrase = attributes[:'key_passphrase']
|
|
166
166
|
end
|
|
167
167
|
|
|
168
|
-
if attributes.key?(:'
|
|
169
|
-
self.
|
|
168
|
+
if attributes.key?(:'generate_p12')
|
|
169
|
+
self.generate_p12 = attributes[:'generate_p12']
|
|
170
170
|
else
|
|
171
|
-
self.
|
|
171
|
+
self.generate_p12 = false
|
|
172
172
|
end
|
|
173
173
|
|
|
174
|
-
if attributes.key?(:'
|
|
175
|
-
self.
|
|
174
|
+
if attributes.key?(:'p12_passphrase')
|
|
175
|
+
self.p12_passphrase = attributes[:'p12_passphrase']
|
|
176
176
|
else
|
|
177
|
-
self.
|
|
177
|
+
self.p12_passphrase = 'changeme'
|
|
178
178
|
end
|
|
179
179
|
end
|
|
180
180
|
|
|
@@ -183,20 +183,20 @@ module FactPulse
|
|
|
183
183
|
def list_invalid_properties
|
|
184
184
|
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
185
185
|
invalid_properties = Array.new
|
|
186
|
-
if !@
|
|
187
|
-
invalid_properties.push('invalid value for "
|
|
186
|
+
if !@country.nil? && @country.to_s.length > 2
|
|
187
|
+
invalid_properties.push('invalid value for "country", the character length must be smaller than or equal to 2.')
|
|
188
188
|
end
|
|
189
189
|
|
|
190
|
-
if !@
|
|
191
|
-
invalid_properties.push('invalid value for "
|
|
190
|
+
if !@country.nil? && @country.to_s.length < 2
|
|
191
|
+
invalid_properties.push('invalid value for "country", the character length must be greater than or equal to 2.')
|
|
192
192
|
end
|
|
193
193
|
|
|
194
|
-
if !@
|
|
195
|
-
invalid_properties.push('invalid value for "
|
|
194
|
+
if !@validity_days.nil? && @validity_days > 3650
|
|
195
|
+
invalid_properties.push('invalid value for "validity_days", must be smaller than or equal to 3650.')
|
|
196
196
|
end
|
|
197
197
|
|
|
198
|
-
if !@
|
|
199
|
-
invalid_properties.push('invalid value for "
|
|
198
|
+
if !@validity_days.nil? && @validity_days < 1
|
|
199
|
+
invalid_properties.push('invalid value for "validity_days", must be greater than or equal to 1.')
|
|
200
200
|
end
|
|
201
201
|
|
|
202
202
|
invalid_properties
|
|
@@ -206,47 +206,47 @@ module FactPulse
|
|
|
206
206
|
# @return true if the model is valid
|
|
207
207
|
def valid?
|
|
208
208
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
209
|
-
return false if !@
|
|
210
|
-
return false if !@
|
|
211
|
-
return false if !@
|
|
212
|
-
return false if !@
|
|
209
|
+
return false if !@country.nil? && @country.to_s.length > 2
|
|
210
|
+
return false if !@country.nil? && @country.to_s.length < 2
|
|
211
|
+
return false if !@validity_days.nil? && @validity_days > 3650
|
|
212
|
+
return false if !@validity_days.nil? && @validity_days < 1
|
|
213
213
|
true
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
# Custom attribute writer method with validation
|
|
217
|
-
# @param [Object]
|
|
218
|
-
def
|
|
219
|
-
if
|
|
220
|
-
fail ArgumentError, '
|
|
217
|
+
# @param [Object] country Value to be assigned
|
|
218
|
+
def country=(country)
|
|
219
|
+
if country.nil?
|
|
220
|
+
fail ArgumentError, 'country cannot be nil'
|
|
221
221
|
end
|
|
222
222
|
|
|
223
|
-
if
|
|
224
|
-
fail ArgumentError, 'invalid value for "
|
|
223
|
+
if country.to_s.length > 2
|
|
224
|
+
fail ArgumentError, 'invalid value for "country", the character length must be smaller than or equal to 2.'
|
|
225
225
|
end
|
|
226
226
|
|
|
227
|
-
if
|
|
228
|
-
fail ArgumentError, 'invalid value for "
|
|
227
|
+
if country.to_s.length < 2
|
|
228
|
+
fail ArgumentError, 'invalid value for "country", the character length must be greater than or equal to 2.'
|
|
229
229
|
end
|
|
230
230
|
|
|
231
|
-
@
|
|
231
|
+
@country = country
|
|
232
232
|
end
|
|
233
233
|
|
|
234
234
|
# Custom attribute writer method with validation
|
|
235
|
-
# @param [Object]
|
|
236
|
-
def
|
|
237
|
-
if
|
|
238
|
-
fail ArgumentError, '
|
|
235
|
+
# @param [Object] validity_days Value to be assigned
|
|
236
|
+
def validity_days=(validity_days)
|
|
237
|
+
if validity_days.nil?
|
|
238
|
+
fail ArgumentError, 'validity_days cannot be nil'
|
|
239
239
|
end
|
|
240
240
|
|
|
241
|
-
if
|
|
242
|
-
fail ArgumentError, 'invalid value for "
|
|
241
|
+
if validity_days > 3650
|
|
242
|
+
fail ArgumentError, 'invalid value for "validity_days", must be smaller than or equal to 3650.'
|
|
243
243
|
end
|
|
244
244
|
|
|
245
|
-
if
|
|
246
|
-
fail ArgumentError, 'invalid value for "
|
|
245
|
+
if validity_days < 1
|
|
246
|
+
fail ArgumentError, 'invalid value for "validity_days", must be greater than or equal to 1.'
|
|
247
247
|
end
|
|
248
248
|
|
|
249
|
-
@
|
|
249
|
+
@validity_days = validity_days
|
|
250
250
|
end
|
|
251
251
|
|
|
252
252
|
# Checks equality by comparing each attribute.
|
|
@@ -255,16 +255,16 @@ module FactPulse
|
|
|
255
255
|
return true if self.equal?(o)
|
|
256
256
|
self.class == o.class &&
|
|
257
257
|
cn == o.cn &&
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
258
|
+
organization == o.organization &&
|
|
259
|
+
country == o.country &&
|
|
260
|
+
city == o.city &&
|
|
261
|
+
state == o.state &&
|
|
262
262
|
email == o.email &&
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
263
|
+
validity_days == o.validity_days &&
|
|
264
|
+
key_size == o.key_size &&
|
|
265
|
+
key_passphrase == o.key_passphrase &&
|
|
266
|
+
generate_p12 == o.generate_p12 &&
|
|
267
|
+
p12_passphrase == o.p12_passphrase
|
|
268
268
|
end
|
|
269
269
|
|
|
270
270
|
# @see the `==` method
|
|
@@ -276,7 +276,7 @@ module FactPulse
|
|
|
276
276
|
# Calculates hash code according to all attributes.
|
|
277
277
|
# @return [Integer] Hash code
|
|
278
278
|
def hash
|
|
279
|
-
[cn,
|
|
279
|
+
[cn, organization, country, city, state, email, validity_days, key_size, key_passphrase, generate_p12, p12_passphrase].hash
|
|
280
280
|
end
|
|
281
281
|
|
|
282
282
|
# Builds the object from hash
|
|
@@ -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,34 +14,34 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module FactPulse
|
|
17
|
-
#
|
|
17
|
+
# Response after generating a test certificate. Contains certificate PEM, private key PEM, and optionally PKCS#12.
|
|
18
18
|
class GenerateCertificateResponse < ApiModelBase
|
|
19
|
-
#
|
|
19
|
+
# Operation status
|
|
20
20
|
attr_accessor :status
|
|
21
21
|
|
|
22
|
-
#
|
|
23
|
-
attr_accessor :
|
|
22
|
+
# X.509 certificate in PEM format
|
|
23
|
+
attr_accessor :certificate_pem
|
|
24
24
|
|
|
25
|
-
#
|
|
26
|
-
attr_accessor :
|
|
25
|
+
# RSA private key in PEM format
|
|
26
|
+
attr_accessor :private_key_pem
|
|
27
27
|
|
|
28
28
|
attr_accessor :pkcs12_base64
|
|
29
29
|
|
|
30
|
-
#
|
|
30
|
+
# Generated certificate information
|
|
31
31
|
attr_accessor :info
|
|
32
32
|
|
|
33
|
-
#
|
|
34
|
-
attr_accessor :
|
|
33
|
+
# Warning about certificate usage
|
|
34
|
+
attr_accessor :warning
|
|
35
35
|
|
|
36
36
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
37
37
|
def self.attribute_map
|
|
38
38
|
{
|
|
39
39
|
:'status' => :'status',
|
|
40
|
-
:'
|
|
41
|
-
:'
|
|
42
|
-
:'pkcs12_base64' => :'
|
|
40
|
+
:'certificate_pem' => :'certificatePem',
|
|
41
|
+
:'private_key_pem' => :'privateKeyPem',
|
|
42
|
+
:'pkcs12_base64' => :'pkcs12Base64',
|
|
43
43
|
:'info' => :'info',
|
|
44
|
-
:'
|
|
44
|
+
:'warning' => :'warning'
|
|
45
45
|
}
|
|
46
46
|
end
|
|
47
47
|
|
|
@@ -59,11 +59,11 @@ module FactPulse
|
|
|
59
59
|
def self.openapi_types
|
|
60
60
|
{
|
|
61
61
|
:'status' => :'String',
|
|
62
|
-
:'
|
|
63
|
-
:'
|
|
62
|
+
:'certificate_pem' => :'String',
|
|
63
|
+
:'private_key_pem' => :'String',
|
|
64
64
|
:'pkcs12_base64' => :'String',
|
|
65
65
|
:'info' => :'CertificateInfoResponse',
|
|
66
|
-
:'
|
|
66
|
+
:'warning' => :'String'
|
|
67
67
|
}
|
|
68
68
|
end
|
|
69
69
|
|
|
@@ -96,16 +96,16 @@ module FactPulse
|
|
|
96
96
|
self.status = 'success'
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
-
if attributes.key?(:'
|
|
100
|
-
self.
|
|
99
|
+
if attributes.key?(:'certificate_pem')
|
|
100
|
+
self.certificate_pem = attributes[:'certificate_pem']
|
|
101
101
|
else
|
|
102
|
-
self.
|
|
102
|
+
self.certificate_pem = nil
|
|
103
103
|
end
|
|
104
104
|
|
|
105
|
-
if attributes.key?(:'
|
|
106
|
-
self.
|
|
105
|
+
if attributes.key?(:'private_key_pem')
|
|
106
|
+
self.private_key_pem = attributes[:'private_key_pem']
|
|
107
107
|
else
|
|
108
|
-
self.
|
|
108
|
+
self.private_key_pem = nil
|
|
109
109
|
end
|
|
110
110
|
|
|
111
111
|
if attributes.key?(:'pkcs12_base64')
|
|
@@ -118,10 +118,10 @@ module FactPulse
|
|
|
118
118
|
self.info = nil
|
|
119
119
|
end
|
|
120
120
|
|
|
121
|
-
if attributes.key?(:'
|
|
122
|
-
self.
|
|
121
|
+
if attributes.key?(:'warning')
|
|
122
|
+
self.warning = attributes[:'warning']
|
|
123
123
|
else
|
|
124
|
-
self.
|
|
124
|
+
self.warning = 'WARNING: This certificate is SELF-SIGNED and intended for TESTING only. DO NOT use in production. eIDAS level: SES (Simple Electronic Signature)'
|
|
125
125
|
end
|
|
126
126
|
end
|
|
127
127
|
|
|
@@ -130,12 +130,12 @@ module FactPulse
|
|
|
130
130
|
def list_invalid_properties
|
|
131
131
|
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
132
132
|
invalid_properties = Array.new
|
|
133
|
-
if @
|
|
134
|
-
invalid_properties.push('invalid value for "
|
|
133
|
+
if @certificate_pem.nil?
|
|
134
|
+
invalid_properties.push('invalid value for "certificate_pem", certificate_pem cannot be nil.')
|
|
135
135
|
end
|
|
136
136
|
|
|
137
|
-
if @
|
|
138
|
-
invalid_properties.push('invalid value for "
|
|
137
|
+
if @private_key_pem.nil?
|
|
138
|
+
invalid_properties.push('invalid value for "private_key_pem", private_key_pem cannot be nil.')
|
|
139
139
|
end
|
|
140
140
|
|
|
141
141
|
if @info.nil?
|
|
@@ -149,30 +149,30 @@ module FactPulse
|
|
|
149
149
|
# @return true if the model is valid
|
|
150
150
|
def valid?
|
|
151
151
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
152
|
-
return false if @
|
|
153
|
-
return false if @
|
|
152
|
+
return false if @certificate_pem.nil?
|
|
153
|
+
return false if @private_key_pem.nil?
|
|
154
154
|
return false if @info.nil?
|
|
155
155
|
true
|
|
156
156
|
end
|
|
157
157
|
|
|
158
158
|
# Custom attribute writer method with validation
|
|
159
|
-
# @param [Object]
|
|
160
|
-
def
|
|
161
|
-
if
|
|
162
|
-
fail ArgumentError, '
|
|
159
|
+
# @param [Object] certificate_pem Value to be assigned
|
|
160
|
+
def certificate_pem=(certificate_pem)
|
|
161
|
+
if certificate_pem.nil?
|
|
162
|
+
fail ArgumentError, 'certificate_pem cannot be nil'
|
|
163
163
|
end
|
|
164
164
|
|
|
165
|
-
@
|
|
165
|
+
@certificate_pem = certificate_pem
|
|
166
166
|
end
|
|
167
167
|
|
|
168
168
|
# Custom attribute writer method with validation
|
|
169
|
-
# @param [Object]
|
|
170
|
-
def
|
|
171
|
-
if
|
|
172
|
-
fail ArgumentError, '
|
|
169
|
+
# @param [Object] private_key_pem Value to be assigned
|
|
170
|
+
def private_key_pem=(private_key_pem)
|
|
171
|
+
if private_key_pem.nil?
|
|
172
|
+
fail ArgumentError, 'private_key_pem cannot be nil'
|
|
173
173
|
end
|
|
174
174
|
|
|
175
|
-
@
|
|
175
|
+
@private_key_pem = private_key_pem
|
|
176
176
|
end
|
|
177
177
|
|
|
178
178
|
# Custom attribute writer method with validation
|
|
@@ -191,11 +191,11 @@ module FactPulse
|
|
|
191
191
|
return true if self.equal?(o)
|
|
192
192
|
self.class == o.class &&
|
|
193
193
|
status == o.status &&
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
certificate_pem == o.certificate_pem &&
|
|
195
|
+
private_key_pem == o.private_key_pem &&
|
|
196
196
|
pkcs12_base64 == o.pkcs12_base64 &&
|
|
197
197
|
info == o.info &&
|
|
198
|
-
|
|
198
|
+
warning == o.warning
|
|
199
199
|
end
|
|
200
200
|
|
|
201
201
|
# @see the `==` method
|
|
@@ -207,7 +207,7 @@ module FactPulse
|
|
|
207
207
|
# Calculates hash code according to all attributes.
|
|
208
208
|
# @return [Integer] Hash code
|
|
209
209
|
def hash
|
|
210
|
-
[status,
|
|
210
|
+
[status, certificate_pem, private_key_pem, pkcs12_base64, info, warning].hash
|
|
211
211
|
end
|
|
212
212
|
|
|
213
213
|
# Builds the object from hash
|