factpulse 4.0.1 → 4.0.2
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 +4 -4
- data/Gemfile.lock +1 -1
- data/docs/AFNORPDPPAApi.md +5 -72
- data/docs/AsyncTasksApi.md +77 -0
- data/docs/ChorusProCredentials.md +8 -8
- data/docs/ChorusProDestination.md +1 -1
- data/docs/CreateAggregatedReportRequest.md +3 -1
- data/docs/CreateEReportingRequest.md +3 -1
- data/docs/ElectronicSignatureApi.md +319 -0
- data/docs/EncaisseeRequest.md +10 -6
- data/docs/{DocumentConversionApi.md → FacturXConversionApi.md} +39 -39
- data/docs/FacturXGenerationApi.md +239 -0
- data/docs/FacturXInvoice.md +1 -1
- data/docs/FacturXPDFXMLVerificationApi.md +225 -0
- data/docs/FacturXValidationApi.md +241 -0
- data/docs/FactureElectroniqueRestApiSchemasChorusProChorusProCredentials.md +26 -0
- data/docs/{EReportingApi.md → Flux10EReportingApi.md} +53 -51
- data/docs/{CDARCycleDeVieApi.md → Flux6InvoiceLifecycleCDARApi.md} +145 -75
- data/docs/GetChorusProIdRequest.md +1 -1
- data/docs/GetInvoiceRequest.md +1 -1
- data/docs/GetStructureRequest.md +1 -1
- data/docs/HealthApi.md +67 -0
- data/docs/InvoiceInput.md +4 -2
- data/docs/IssuerRoleCode.md +15 -0
- data/docs/RefuseeRequest.md +10 -6
- data/docs/ReportIssuer.md +24 -0
- data/docs/ReportSender.md +1 -1
- data/docs/SearchStructureRequest.md +1 -1
- data/docs/SubmitInvoiceRequest.md +1 -1
- data/factpulse.gemspec +2 -2
- data/lib/factpulse/api/afnorpdppa_api.rb +5 -62
- data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +1 -1
- data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +1 -1
- data/lib/factpulse/api/async_tasks_api.rb +85 -0
- data/lib/factpulse/api/chorus_pro_api.rb +1 -1
- data/lib/factpulse/api/client_management_api.rb +1 -1
- data/lib/factpulse/api/downloads_api.rb +1 -1
- data/lib/factpulse/api/electronic_signature_api.rb +339 -0
- data/lib/factpulse/api/{document_conversion_api.rb → factur_x_conversion_api.rb} +42 -42
- data/lib/factpulse/api/factur_x_generation_api.rb +254 -0
- data/lib/factpulse/api/factur_x_validation_api.rb +256 -0
- data/lib/factpulse/api/factur_xpdfxml_verification_api.rb +232 -0
- data/lib/factpulse/api/{e_reporting_api.rb → flux10_e_reporting_api.rb} +54 -51
- data/lib/factpulse/api/flux6_invoice_lifecycle_cdar_api.rb +670 -0
- data/lib/factpulse/api/health_api.rb +58 -1
- data/lib/factpulse/api_client.rb +1 -1
- data/lib/factpulse/api_error.rb +1 -1
- data/lib/factpulse/api_model_base.rb +1 -1
- data/lib/factpulse/configuration.rb +1 -1
- data/lib/factpulse/models/acknowledgment_status.rb +1 -1
- data/lib/factpulse/models/action_code_info.rb +1 -1
- data/lib/factpulse/models/action_codes_response.rb +1 -1
- data/lib/factpulse/models/additional_document.rb +1 -1
- data/lib/factpulse/models/afnor_acknowledgement.rb +1 -1
- data/lib/factpulse/models/afnor_acknowledgement_detail.rb +1 -1
- data/lib/factpulse/models/afnor_address_edit.rb +1 -1
- data/lib/factpulse/models/afnor_address_patch.rb +1 -1
- data/lib/factpulse/models/afnor_address_put.rb +1 -1
- data/lib/factpulse/models/afnor_address_read.rb +1 -1
- data/lib/factpulse/models/afnor_algorithm.rb +1 -1
- data/lib/factpulse/models/afnor_contains_operator.rb +1 -1
- data/lib/factpulse/models/afnor_create_directory_line_body.rb +1 -1
- data/lib/factpulse/models/afnor_create_directory_line_body_addressing_information.rb +1 -1
- data/lib/factpulse/models/afnor_create_directory_line_body_period.rb +1 -1
- data/lib/factpulse/models/afnor_create_routing_code_body.rb +1 -1
- data/lib/factpulse/models/afnor_credentials.rb +1 -1
- data/lib/factpulse/models/afnor_destination.rb +1 -1
- data/lib/factpulse/models/afnor_diffusion_status.rb +1 -1
- data/lib/factpulse/models/afnor_directory_line_field.rb +1 -1
- data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb +1 -1
- data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb +1 -1
- data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.rb +1 -1
- data/lib/factpulse/models/afnor_directory_line_post201_response.rb +1 -1
- data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +1 -1
- data/lib/factpulse/models/afnor_entity_type.rb +1 -1
- data/lib/factpulse/models/afnor_error.rb +1 -1
- data/lib/factpulse/models/afnor_facility_administrative_status.rb +1 -1
- data/lib/factpulse/models/afnor_facility_nature.rb +1 -1
- data/lib/factpulse/models/afnor_facility_payload_history.rb +1 -1
- data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +1 -1
- data/lib/factpulse/models/afnor_facility_payload_included.rb +1 -1
- data/lib/factpulse/models/afnor_facility_type.rb +1 -1
- data/lib/factpulse/models/afnor_flow.rb +1 -1
- data/lib/factpulse/models/afnor_flow_ack_status.rb +1 -1
- data/lib/factpulse/models/afnor_flow_direction.rb +1 -1
- data/lib/factpulse/models/afnor_flow_info.rb +1 -1
- data/lib/factpulse/models/afnor_flow_profile.rb +1 -1
- data/lib/factpulse/models/afnor_flow_syntax.rb +1 -1
- data/lib/factpulse/models/afnor_flow_type.rb +1 -1
- data/lib/factpulse/models/afnor_full_flow_info.rb +1 -1
- data/lib/factpulse/models/afnor_health_check_response.rb +1 -1
- data/lib/factpulse/models/afnor_legal_unit_administrative_status.rb +1 -1
- data/lib/factpulse/models/afnor_legal_unit_payload_history.rb +1 -1
- data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +1 -1
- data/lib/factpulse/models/afnor_legal_unit_payload_included_no_siren.rb +1 -1
- data/lib/factpulse/models/afnor_platform_status.rb +1 -1
- data/lib/factpulse/models/afnor_processing_rule.rb +1 -1
- data/lib/factpulse/models/afnor_reason_code.rb +1 -1
- data/lib/factpulse/models/afnor_reason_code_enum.rb +1 -1
- data/lib/factpulse/models/afnor_recipient_platform_type.rb +1 -1
- data/lib/factpulse/models/afnor_result.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_administrative_status.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_field.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_post201_response.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_search.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_search_filters.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_search_filters_administrative_status.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_search_filters_routing_code_name.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_search_post200_response.rb +1 -1
- data/lib/factpulse/models/afnor_routing_code_search_sorting_inner.rb +1 -1
- data/lib/factpulse/models/afnor_search_directory_line.rb +1 -1
- data/lib/factpulse/models/afnor_search_directory_line_filters.rb +1 -1
- data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.rb +1 -1
- data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +1 -1
- data/lib/factpulse/models/afnor_search_directory_line_sorting_inner.rb +1 -1
- data/lib/factpulse/models/afnor_search_flow_content.rb +1 -1
- data/lib/factpulse/models/afnor_search_flow_filters.rb +1 -1
- data/lib/factpulse/models/afnor_search_flow_params.rb +1 -1
- data/lib/factpulse/models/afnor_search_siren.rb +1 -1
- data/lib/factpulse/models/afnor_search_siren_filters.rb +1 -1
- data/lib/factpulse/models/afnor_search_siren_filters_administrative_status.rb +1 -1
- data/lib/factpulse/models/afnor_search_siren_filters_business_name.rb +1 -1
- data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +1 -1
- data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +1 -1
- data/lib/factpulse/models/afnor_search_siren_sorting_inner.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_address_lines.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_administrative_status.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_country_subdivision.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_name.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +1 -1
- data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +1 -1
- data/lib/factpulse/models/afnor_siren_field.rb +1 -1
- data/lib/factpulse/models/afnor_siren_search_post200_response.rb +1 -1
- data/lib/factpulse/models/afnor_siret_field.rb +1 -1
- data/lib/factpulse/models/afnor_siret_search_post200_response.rb +1 -1
- data/lib/factpulse/models/afnor_sorting_order.rb +1 -1
- data/lib/factpulse/models/afnor_strict_operator.rb +1 -1
- data/lib/factpulse/models/afnor_update_patch_directory_line_body.rb +1 -1
- data/lib/factpulse/models/afnor_update_patch_routing_code_body.rb +1 -1
- data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +1 -1
- data/lib/factpulse/models/afnor_webhook_callback_content.rb +1 -1
- data/lib/factpulse/models/aggregated_payment_input.rb +1 -1
- data/lib/factpulse/models/aggregated_transaction_input.rb +1 -1
- data/lib/factpulse/models/allowance_charge.rb +1 -1
- data/lib/factpulse/models/allowance_charge_reason_code.rb +1 -1
- data/lib/factpulse/models/allowance_reason_code.rb +1 -1
- data/lib/factpulse/models/allowance_total_amount.rb +1 -1
- data/lib/factpulse/models/amount.rb +1 -1
- data/lib/factpulse/models/amount1.rb +1 -1
- data/lib/factpulse/models/amount2.rb +1 -1
- data/lib/factpulse/models/amount_due.rb +1 -1
- data/lib/factpulse/models/api_error.rb +1 -1
- data/lib/factpulse/models/api_profile.rb +1 -1
- data/lib/factpulse/models/async_task_status.rb +1 -1
- data/lib/factpulse/models/base_amount.rb +1 -1
- data/lib/factpulse/models/bounding_box_schema.rb +1 -1
- data/lib/factpulse/models/buyercountry.rb +2 -2
- data/lib/factpulse/models/celery_status.rb +1 -1
- data/lib/factpulse/models/certificate_info_response.rb +1 -1
- data/lib/factpulse/models/charge_total_amount.rb +1 -1
- data/lib/factpulse/models/chorus_pro_credentials.rb +27 -95
- data/lib/factpulse/models/chorus_pro_destination.rb +2 -2
- data/lib/factpulse/models/chorus_pro_result.rb +1 -1
- data/lib/factpulse/models/client_activate_response.rb +1 -1
- data/lib/factpulse/models/client_create_request.rb +1 -1
- data/lib/factpulse/models/client_detail.rb +1 -1
- data/lib/factpulse/models/client_list_response.rb +1 -1
- data/lib/factpulse/models/client_summary.rb +1 -1
- data/lib/factpulse/models/client_update_request.rb +1 -1
- data/lib/factpulse/models/contact.rb +1 -1
- data/lib/factpulse/models/convert_resume_request.rb +1 -1
- data/lib/factpulse/models/convert_success_response.rb +1 -1
- data/lib/factpulse/models/convert_validation_failed_response.rb +1 -1
- data/lib/factpulse/models/country_code.rb +1 -1
- data/lib/factpulse/models/create_aggregated_report_request.rb +13 -3
- data/lib/factpulse/models/create_cdar_request.rb +1 -1
- data/lib/factpulse/models/create_e_reporting_request.rb +13 -3
- data/lib/factpulse/models/currency.rb +1 -1
- data/lib/factpulse/models/currency_code.rb +1 -1
- data/lib/factpulse/models/delivery_party.rb +1 -1
- data/lib/factpulse/models/destination.rb +1 -1
- data/lib/factpulse/models/doc_type.rb +1 -1
- data/lib/factpulse/models/document_type_info.rb +1 -1
- data/lib/factpulse/models/e_reporting_flow_type.rb +1 -1
- data/lib/factpulse/models/e_reporting_validation_error.rb +1 -1
- data/lib/factpulse/models/electronic_address.rb +1 -1
- data/lib/factpulse/models/encaisseamount.rb +1 -1
- data/lib/factpulse/models/encaisseamount1.rb +1 -1
- data/lib/factpulse/models/encaissee_request.rb +86 -32
- data/lib/factpulse/models/enriched_invoice_info.rb +1 -1
- data/lib/factpulse/models/error_level.rb +1 -1
- data/lib/factpulse/models/error_source.rb +3 -2
- data/lib/factpulse/models/extraction_info.rb +1 -1
- data/lib/factpulse/models/factur_x_invoice.rb +1 -18
- data/lib/factpulse/models/factur_xpdf_info.rb +1 -1
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_cdar_validation_error_response.rb +1 -1
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb +259 -0
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_ereporting_invoice_type_code.rb +1 -1
- data/lib/factpulse/models/field_status.rb +1 -1
- data/lib/factpulse/models/file_info.rb +1 -1
- data/lib/factpulse/models/files_info.rb +1 -1
- data/lib/factpulse/models/flow_direction.rb +1 -1
- data/lib/factpulse/models/flow_profile.rb +1 -1
- data/lib/factpulse/models/flow_summary.rb +1 -1
- data/lib/factpulse/models/flow_syntax.rb +1 -1
- data/lib/factpulse/models/flow_type.rb +1 -1
- data/lib/factpulse/models/generate_aggregated_report_response.rb +1 -1
- data/lib/factpulse/models/generate_cdar_response.rb +1 -1
- data/lib/factpulse/models/generate_certificate_request.rb +1 -1
- data/lib/factpulse/models/generate_certificate_response.rb +1 -1
- data/lib/factpulse/models/generate_e_reporting_response.rb +1 -1
- data/lib/factpulse/models/get_chorus_pro_id_request.rb +2 -2
- data/lib/factpulse/models/get_chorus_pro_id_response.rb +1 -1
- data/lib/factpulse/models/get_invoice_request.rb +2 -2
- data/lib/factpulse/models/get_invoice_response.rb +1 -1
- data/lib/factpulse/models/get_structure_request.rb +2 -2
- data/lib/factpulse/models/get_structure_response.rb +1 -1
- data/lib/factpulse/models/global_allowance_amount.rb +1 -1
- data/lib/factpulse/models/gross_unit_price.rb +1 -1
- data/lib/factpulse/models/http_validation_error.rb +1 -1
- data/lib/factpulse/models/incoming_invoice.rb +1 -1
- data/lib/factpulse/models/incoming_supplier.rb +1 -1
- data/lib/factpulse/models/invoice_format.rb +1 -1
- data/lib/factpulse/models/invoice_input.rb +14 -21
- data/lib/factpulse/models/invoice_line.rb +1 -1
- data/lib/factpulse/models/invoice_line_allowance_amount.rb +1 -1
- data/lib/factpulse/models/invoice_note.rb +1 -1
- data/lib/factpulse/models/invoice_payment_input.rb +1 -1
- data/lib/factpulse/models/invoice_references.rb +1 -1
- data/lib/factpulse/models/invoice_status.rb +1 -1
- data/lib/factpulse/models/invoice_totals.rb +1 -1
- data/lib/factpulse/models/invoice_totals_prepayment.rb +1 -1
- data/lib/factpulse/models/invoice_type_code.rb +1 -1
- data/lib/factpulse/models/invoice_type_code_output.rb +1 -1
- data/lib/factpulse/models/invoicing_framework.rb +1 -1
- data/lib/factpulse/models/invoicing_framework_code.rb +1 -1
- data/lib/factpulse/models/issuer_role_code.rb +40 -0
- data/lib/factpulse/models/line_net_amount.rb +1 -1
- data/lib/factpulse/models/line_sub_type.rb +1 -1
- data/lib/factpulse/models/line_total_amount.rb +1 -1
- data/lib/factpulse/models/location_inner.rb +1 -1
- data/lib/factpulse/models/mandatory_note_schema.rb +1 -1
- data/lib/factpulse/models/manual_rate.rb +1 -1
- data/lib/factpulse/models/manual_vat_rate.rb +1 -1
- data/lib/factpulse/models/missing_field.rb +1 -1
- data/lib/factpulse/models/operation_nature.rb +1 -1
- data/lib/factpulse/models/output_format.rb +1 -1
- data/lib/factpulse/models/page_dimensions_schema.rb +1 -1
- data/lib/factpulse/models/payee.rb +1 -1
- data/lib/factpulse/models/payment_amount_by_rate.rb +1 -1
- data/lib/factpulse/models/payment_card.rb +1 -1
- data/lib/factpulse/models/payment_means.rb +1 -1
- data/lib/factpulse/models/pdf_validation_result_api.rb +1 -1
- data/lib/factpulse/models/pdp_config_response.rb +1 -1
- data/lib/factpulse/models/pdp_config_update_request.rb +1 -1
- data/lib/factpulse/models/pdp_credentials.rb +1 -1
- data/lib/factpulse/models/percentage.rb +1 -1
- data/lib/factpulse/models/postal_address.rb +1 -1
- data/lib/factpulse/models/price_allowance_amount.rb +1 -1
- data/lib/factpulse/models/price_basis_quantity.rb +1 -1
- data/lib/factpulse/models/processing_options.rb +1 -1
- data/lib/factpulse/models/processing_rule.rb +1 -1
- data/lib/factpulse/models/product_characteristic.rb +1 -1
- data/lib/factpulse/models/product_classification.rb +1 -1
- data/lib/factpulse/models/quantity.rb +1 -1
- data/lib/factpulse/models/rate.rb +1 -1
- data/lib/factpulse/models/rate1.rb +1 -1
- data/lib/factpulse/models/reason_code_info.rb +1 -1
- data/lib/factpulse/models/reason_codes_response.rb +1 -1
- data/lib/factpulse/models/recipient.rb +1 -1
- data/lib/factpulse/models/recipient_input.rb +1 -1
- data/lib/factpulse/models/refusee_request.rb +84 -30
- data/lib/factpulse/models/report_issuer.rb +236 -0
- data/lib/factpulse/models/report_period.rb +1 -1
- data/lib/factpulse/models/report_sender.rb +3 -3
- data/lib/factpulse/models/rounding_amount.rb +1 -1
- data/lib/factpulse/models/schematron_validation_error.rb +1 -1
- data/lib/factpulse/models/scheme_id.rb +1 -1
- data/lib/factpulse/models/search_flow_request.rb +1 -1
- data/lib/factpulse/models/search_flow_response.rb +1 -1
- data/lib/factpulse/models/search_services_response.rb +1 -1
- data/lib/factpulse/models/search_structure_request.rb +2 -2
- data/lib/factpulse/models/search_structure_response.rb +1 -1
- data/lib/factpulse/models/secret_status.rb +1 -1
- data/lib/factpulse/models/sellercountry.rb +2 -2
- data/lib/factpulse/models/signature_info.rb +1 -1
- data/lib/factpulse/models/signature_info_api.rb +1 -1
- data/lib/factpulse/models/signature_parameters.rb +1 -1
- data/lib/factpulse/models/simplified_cdar_response.rb +1 -1
- data/lib/factpulse/models/simplified_invoice_data.rb +1 -1
- data/lib/factpulse/models/status_code_info.rb +1 -1
- data/lib/factpulse/models/status_codes_response.rb +1 -1
- data/lib/factpulse/models/structure_info.rb +1 -1
- data/lib/factpulse/models/structure_parameters.rb +1 -1
- data/lib/factpulse/models/structure_service.rb +1 -1
- data/lib/factpulse/models/submission_mode.rb +1 -1
- data/lib/factpulse/models/submit_aggregated_report_request.rb +1 -1
- data/lib/factpulse/models/submit_cdar_request.rb +1 -1
- data/lib/factpulse/models/submit_cdar_response.rb +1 -1
- data/lib/factpulse/models/submit_cdarxml_request.rb +1 -1
- data/lib/factpulse/models/submit_complete_invoice_request.rb +1 -1
- data/lib/factpulse/models/submit_complete_invoice_response.rb +1 -1
- data/lib/factpulse/models/submit_e_reporting_request.rb +1 -1
- data/lib/factpulse/models/submit_e_reporting_response.rb +1 -1
- data/lib/factpulse/models/submit_flow_request.rb +1 -1
- data/lib/factpulse/models/submit_flow_response.rb +1 -1
- data/lib/factpulse/models/submit_gross_amount.rb +1 -1
- data/lib/factpulse/models/submit_invoice_request.rb +2 -2
- data/lib/factpulse/models/submit_invoice_response.rb +1 -1
- data/lib/factpulse/models/submit_net_amount.rb +1 -1
- data/lib/factpulse/models/submit_vat_amount.rb +1 -1
- data/lib/factpulse/models/supplementary_attachment.rb +1 -1
- data/lib/factpulse/models/supplier.rb +1 -1
- data/lib/factpulse/models/task_response.rb +1 -1
- data/lib/factpulse/models/tax_breakdown_input.rb +1 -1
- data/lib/factpulse/models/tax_due_date_type.rb +1 -1
- data/lib/factpulse/models/tax_representative.rb +1 -1
- data/lib/factpulse/models/taxable_amount.rb +1 -1
- data/lib/factpulse/models/taxableamount.rb +1 -1
- data/lib/factpulse/models/taxamount.rb +1 -1
- data/lib/factpulse/models/taxamount1.rb +1 -1
- data/lib/factpulse/models/taxamount2.rb +1 -1
- data/lib/factpulse/models/taxexclusiveamount.rb +1 -1
- data/lib/factpulse/models/taxexclusiveamount1.rb +1 -1
- data/lib/factpulse/models/total_gross_amount.rb +1 -1
- data/lib/factpulse/models/total_net_amount.rb +1 -1
- data/lib/factpulse/models/total_vat_amount.rb +1 -1
- data/lib/factpulse/models/transaction_category.rb +1 -1
- data/lib/factpulse/models/transmission_type_code.rb +1 -1
- data/lib/factpulse/models/unit_net_price.rb +1 -1
- data/lib/factpulse/models/unit_of_measure.rb +1 -1
- data/lib/factpulse/models/validate_cdar_request.rb +1 -1
- data/lib/factpulse/models/validate_cdar_response.rb +1 -1
- data/lib/factpulse/models/validate_e_reporting_request.rb +1 -1
- data/lib/factpulse/models/validate_e_reporting_response.rb +1 -1
- data/lib/factpulse/models/validation_error.rb +1 -1
- data/lib/factpulse/models/validation_error_detail.rb +1 -1
- data/lib/factpulse/models/validation_error_response.rb +1 -1
- data/lib/factpulse/models/validation_info.rb +1 -1
- data/lib/factpulse/models/validation_success_response.rb +1 -1
- data/lib/factpulse/models/vat_accounting_code.rb +1 -1
- data/lib/factpulse/models/vat_amount.rb +1 -1
- data/lib/factpulse/models/vat_category.rb +1 -1
- data/lib/factpulse/models/vat_line.rb +1 -1
- data/lib/factpulse/models/vat_point_date_code.rb +1 -1
- data/lib/factpulse/models/vat_rate.rb +1 -1
- data/lib/factpulse/models/verification_success_response.rb +1 -1
- data/lib/factpulse/models/verified_field_schema.rb +1 -1
- data/lib/factpulse/version.rb +2 -2
- data/lib/factpulse.rb +12 -8
- metadata +46 -37
- data/docs/FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md +0 -26
- data/docs/InvoiceProcessingApi.md +0 -855
- data/docs/PDFXMLVerificationApi.md +0 -443
- data/docs/UserApi.md +0 -74
- data/lib/factpulse/api/cdar_cycle_de_vie_api.rb +0 -601
- data/lib/factpulse/api/invoice_processing_api.rb +0 -868
- data/lib/factpulse/api/pdfxml_verification_api.rb +0 -442
- data/lib/factpulse/api/user_api.rb +0 -79
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +0 -191
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ed5220794155d6c2396f8f0d804472921e343e24de4da8a14e39e4635ab3140c
|
|
4
|
+
data.tar.gz: 4e967d6bd2992759be3e9c26e35f78832fb033c84b676166507ecf434d857b7a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 24aee2a48d55854a1695d7e4602f05ae00da5f31e567657b3c168610299ee4640594c448e6c4f8f99a87da7308c98e2345bd02e4e9ca7c348afaa345bc717acc
|
|
7
|
+
data.tar.gz: 1c3ece1e7befab53f5998e15a469064262e9e6aceabe3a7012c4fa478a46309ad9cfb9c966f04141b881c2d43b020d468ebea1d8f5eff412c1cfdcccbcddc6fa
|
data/CHANGELOG.md
CHANGED
|
@@ -7,11 +7,11 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [4.0.
|
|
10
|
+
## [4.0.2] - 2026-01-24
|
|
11
11
|
|
|
12
12
|
### Fixed
|
|
13
|
-
-
|
|
13
|
+
- Meilleures conformité validation/génération erportings
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
[Unreleased]: https://github.com/factpulse/sdk-ruby/compare/v4.0.
|
|
17
|
-
[4.0.
|
|
16
|
+
[Unreleased]: https://github.com/factpulse/sdk-ruby/compare/v4.0.2...HEAD
|
|
17
|
+
[4.0.2]: https://github.com/factpulse/sdk-ruby/releases/tag/v4.0.2
|
data/Gemfile.lock
CHANGED
data/docs/AFNORPDPPAApi.md
CHANGED
|
@@ -4,75 +4,8 @@ All URIs are relative to *https://factpulse.fr*
|
|
|
4
4
|
|
|
5
5
|
| Method | HTTP request | Description |
|
|
6
6
|
| ------ | ------------ | ----------- |
|
|
7
|
-
| [**get_afnor_credentials_api_v1_afnor_credentials_get**](AFNORPDPPAApi.md#get_afnor_credentials_api_v1_afnor_credentials_get) | **GET** /api/v1/afnor/credentials | Retrieve stored AFNOR credentials |
|
|
8
7
|
| [**get_flux_entrant_api_v1_afnor_incoming_flows_flow_id_get**](AFNORPDPPAApi.md#get_flux_entrant_api_v1_afnor_incoming_flows_flow_id_get) | **GET** /api/v1/afnor/incoming-flows/{flow_id} | Retrieve and extract an incoming invoice |
|
|
9
|
-
| [**oauth_token_proxy_api_v1_afnor_oauth_token_post**](AFNORPDPPAApi.md#oauth_token_proxy_api_v1_afnor_oauth_token_post) | **POST** /api/v1/afnor/oauth/token |
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
## get_afnor_credentials_api_v1_afnor_credentials_get
|
|
13
|
-
|
|
14
|
-
> Object get_afnor_credentials_api_v1_afnor_credentials_get
|
|
15
|
-
|
|
16
|
-
Retrieve stored AFNOR credentials
|
|
17
|
-
|
|
18
|
-
Retrieves stored AFNOR/PDP credentials for the JWT's client_uid. This endpoint is used by the SDK in 'stored' mode to retrieve credentials before performing AFNOR OAuth itself.
|
|
19
|
-
|
|
20
|
-
### Examples
|
|
21
|
-
|
|
22
|
-
```ruby
|
|
23
|
-
require 'time'
|
|
24
|
-
require 'factpulse'
|
|
25
|
-
# setup authorization
|
|
26
|
-
FactPulse.configure do |config|
|
|
27
|
-
# Configure Bearer authorization: HTTPBearer
|
|
28
|
-
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
api_instance = FactPulse::AFNORPDPPAApi.new
|
|
32
|
-
|
|
33
|
-
begin
|
|
34
|
-
# Retrieve stored AFNOR credentials
|
|
35
|
-
result = api_instance.get_afnor_credentials_api_v1_afnor_credentials_get
|
|
36
|
-
p result
|
|
37
|
-
rescue FactPulse::ApiError => e
|
|
38
|
-
puts "Error when calling AFNORPDPPAApi->get_afnor_credentials_api_v1_afnor_credentials_get: #{e}"
|
|
39
|
-
end
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
#### Using the get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info variant
|
|
43
|
-
|
|
44
|
-
This returns an Array which contains the response data, status code and headers.
|
|
45
|
-
|
|
46
|
-
> <Array(Object, Integer, Hash)> get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info
|
|
47
|
-
|
|
48
|
-
```ruby
|
|
49
|
-
begin
|
|
50
|
-
# Retrieve stored AFNOR credentials
|
|
51
|
-
data, status_code, headers = api_instance.get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info
|
|
52
|
-
p status_code # => 2xx
|
|
53
|
-
p headers # => { ... }
|
|
54
|
-
p data # => Object
|
|
55
|
-
rescue FactPulse::ApiError => e
|
|
56
|
-
puts "Error when calling AFNORPDPPAApi->get_afnor_credentials_api_v1_afnor_credentials_get_with_http_info: #{e}"
|
|
57
|
-
end
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Parameters
|
|
61
|
-
|
|
62
|
-
This endpoint does not need any parameter.
|
|
63
|
-
|
|
64
|
-
### Return type
|
|
65
|
-
|
|
66
|
-
**Object**
|
|
67
|
-
|
|
68
|
-
### Authorization
|
|
69
|
-
|
|
70
|
-
[HTTPBearer](../README.md#HTTPBearer)
|
|
71
|
-
|
|
72
|
-
### HTTP request headers
|
|
73
|
-
|
|
74
|
-
- **Content-Type**: Not defined
|
|
75
|
-
- **Accept**: application/json
|
|
8
|
+
| [**oauth_token_proxy_api_v1_afnor_oauth_token_post**](AFNORPDPPAApi.md#oauth_token_proxy_api_v1_afnor_oauth_token_post) | **POST** /api/v1/afnor/oauth/token | Test PDP OAuth2 credentials |
|
|
76
9
|
|
|
77
10
|
|
|
78
11
|
## get_flux_entrant_api_v1_afnor_incoming_flows_flow_id_get
|
|
@@ -152,9 +85,9 @@ end
|
|
|
152
85
|
|
|
153
86
|
> Object oauth_token_proxy_api_v1_afnor_oauth_token_post
|
|
154
87
|
|
|
155
|
-
|
|
88
|
+
Test PDP OAuth2 credentials
|
|
156
89
|
|
|
157
|
-
OAuth2 proxy
|
|
90
|
+
OAuth2 proxy to validate PDP credentials. Use this endpoint to verify that OAuth credentials (client_id, client_secret) are valid before saving a PDP configuration. This endpoint is public (no authentication required).
|
|
158
91
|
|
|
159
92
|
### Examples
|
|
160
93
|
|
|
@@ -165,7 +98,7 @@ require 'factpulse'
|
|
|
165
98
|
api_instance = FactPulse::AFNORPDPPAApi.new
|
|
166
99
|
|
|
167
100
|
begin
|
|
168
|
-
#
|
|
101
|
+
# Test PDP OAuth2 credentials
|
|
169
102
|
result = api_instance.oauth_token_proxy_api_v1_afnor_oauth_token_post
|
|
170
103
|
p result
|
|
171
104
|
rescue FactPulse::ApiError => e
|
|
@@ -181,7 +114,7 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
181
114
|
|
|
182
115
|
```ruby
|
|
183
116
|
begin
|
|
184
|
-
#
|
|
117
|
+
# Test PDP OAuth2 credentials
|
|
185
118
|
data, status_code, headers = api_instance.oauth_token_proxy_api_v1_afnor_oauth_token_post_with_http_info
|
|
186
119
|
p status_code # => 2xx
|
|
187
120
|
p headers # => { ... }
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# FactPulse::AsyncTasksApi
|
|
2
|
+
|
|
3
|
+
All URIs are relative to *https://factpulse.fr*
|
|
4
|
+
|
|
5
|
+
| Method | HTTP request | Description |
|
|
6
|
+
| ------ | ------------ | ----------- |
|
|
7
|
+
| [**get_task_status_api_v1_processing_tasks_task_id_status_get**](AsyncTasksApi.md#get_task_status_api_v1_processing_tasks_task_id_status_get) | **GET** /api/v1/processing/tasks/{task_id}/status | Get task generation status |
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## get_task_status_api_v1_processing_tasks_task_id_status_get
|
|
11
|
+
|
|
12
|
+
> <AsyncTaskStatus> get_task_status_api_v1_processing_tasks_task_id_status_get(task_id)
|
|
13
|
+
|
|
14
|
+
Get task generation status
|
|
15
|
+
|
|
16
|
+
Retrieves the progress status of an invoice generation task. ## Possible states The `status` field uses the `CeleryStatus` enum with values: - **PENDING, STARTED, SUCCESS, FAILURE, RETRY** See the `CeleryStatus` schema documentation for details. ## Business result When `status=\"SUCCESS\"`, the `result` field contains: - `status`: \"SUCCESS\" or \"ERROR\" (business result) - `content_b64`: Base64 encoded content (if success) - `errorCode`, `errorMessage`, `details`: AFNOR format (if business error) ## Usage Poll this endpoint every 2-3 seconds until `status` is `SUCCESS` or `FAILURE`.
|
|
17
|
+
|
|
18
|
+
### Examples
|
|
19
|
+
|
|
20
|
+
```ruby
|
|
21
|
+
require 'time'
|
|
22
|
+
require 'factpulse'
|
|
23
|
+
# setup authorization
|
|
24
|
+
FactPulse.configure do |config|
|
|
25
|
+
# Configure Bearer authorization: HTTPBearer
|
|
26
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
api_instance = FactPulse::AsyncTasksApi.new
|
|
30
|
+
task_id = 'task_id_example' # String | Celery task ID returned by async endpoints (UUID format)
|
|
31
|
+
|
|
32
|
+
begin
|
|
33
|
+
# Get task generation status
|
|
34
|
+
result = api_instance.get_task_status_api_v1_processing_tasks_task_id_status_get(task_id)
|
|
35
|
+
p result
|
|
36
|
+
rescue FactPulse::ApiError => e
|
|
37
|
+
puts "Error when calling AsyncTasksApi->get_task_status_api_v1_processing_tasks_task_id_status_get: #{e}"
|
|
38
|
+
end
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### Using the get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info variant
|
|
42
|
+
|
|
43
|
+
This returns an Array which contains the response data, status code and headers.
|
|
44
|
+
|
|
45
|
+
> <Array(<AsyncTaskStatus>, Integer, Hash)> get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info(task_id)
|
|
46
|
+
|
|
47
|
+
```ruby
|
|
48
|
+
begin
|
|
49
|
+
# Get task generation status
|
|
50
|
+
data, status_code, headers = api_instance.get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info(task_id)
|
|
51
|
+
p status_code # => 2xx
|
|
52
|
+
p headers # => { ... }
|
|
53
|
+
p data # => <AsyncTaskStatus>
|
|
54
|
+
rescue FactPulse::ApiError => e
|
|
55
|
+
puts "Error when calling AsyncTasksApi->get_task_status_api_v1_processing_tasks_task_id_status_get_with_http_info: #{e}"
|
|
56
|
+
end
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Parameters
|
|
60
|
+
|
|
61
|
+
| Name | Type | Description | Notes |
|
|
62
|
+
| ---- | ---- | ----------- | ----- |
|
|
63
|
+
| **task_id** | **String** | Celery task ID returned by async endpoints (UUID format) | |
|
|
64
|
+
|
|
65
|
+
### Return type
|
|
66
|
+
|
|
67
|
+
[**AsyncTaskStatus**](AsyncTaskStatus.md)
|
|
68
|
+
|
|
69
|
+
### Authorization
|
|
70
|
+
|
|
71
|
+
[HTTPBearer](../README.md#HTTPBearer)
|
|
72
|
+
|
|
73
|
+
### HTTP request headers
|
|
74
|
+
|
|
75
|
+
- **Content-Type**: Not defined
|
|
76
|
+
- **Accept**: application/json
|
|
77
|
+
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **piste_client_id** | **String** |
|
|
8
|
-
| **piste_client_secret** | **String** |
|
|
9
|
-
| **
|
|
10
|
-
| **
|
|
11
|
-
| **
|
|
7
|
+
| **piste_client_id** | **String** | | [optional] |
|
|
8
|
+
| **piste_client_secret** | **String** | | [optional] |
|
|
9
|
+
| **chorus_login** | **String** | | [optional] |
|
|
10
|
+
| **chorus_password** | **String** | | [optional] |
|
|
11
|
+
| **sandbox_mode** | **Boolean** | [MODE 2] Use sandbox mode (default: True) | [optional][default to true] |
|
|
12
12
|
|
|
13
13
|
## Example
|
|
14
14
|
|
|
@@ -18,9 +18,9 @@ require 'factpulse'
|
|
|
18
18
|
instance = FactPulse::ChorusProCredentials.new(
|
|
19
19
|
piste_client_id: null,
|
|
20
20
|
piste_client_secret: null,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
chorus_login: null,
|
|
22
|
+
chorus_password: null,
|
|
23
|
+
sandbox_mode: null
|
|
24
24
|
)
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **type** | **String** | | [optional][default to 'chorus_pro'] |
|
|
8
|
-
| **credentials** | [**
|
|
8
|
+
| **credentials** | [**ChorusProCredentials**](ChorusProCredentials.md) | | [optional] |
|
|
9
9
|
|
|
10
10
|
## Example
|
|
11
11
|
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
| **report_id** | **String** | Report identifier (generated by caller) | |
|
|
8
8
|
| **report_name** | **String** | | [optional] |
|
|
9
9
|
| **transmission_type** | [**TransmissionTypeCode**](TransmissionTypeCode.md) | Transmission type: IN=Initial, RE=Rectificative (TT-4) | [optional] |
|
|
10
|
-
| **sender** | [**ReportSender**](ReportSender.md) | Report sender
|
|
10
|
+
| **sender** | [**ReportSender**](ReportSender.md) | Report sender (PA transmitting the report) | |
|
|
11
|
+
| **issuer** | [**ReportIssuer**](ReportIssuer.md) | | [optional] |
|
|
11
12
|
| **period** | [**ReportPeriod**](ReportPeriod.md) | Reporting period | |
|
|
12
13
|
| **invoices** | [**Array<InvoiceInput>**](InvoiceInput.md) | | [optional] |
|
|
13
14
|
| **transactions** | [**Array<AggregatedTransactionInput>**](AggregatedTransactionInput.md) | | [optional] |
|
|
@@ -24,6 +25,7 @@ instance = FactPulse::CreateAggregatedReportRequest.new(
|
|
|
24
25
|
report_name: null,
|
|
25
26
|
transmission_type: null,
|
|
26
27
|
sender: null,
|
|
28
|
+
issuer: null,
|
|
27
29
|
period: null,
|
|
28
30
|
invoices: null,
|
|
29
31
|
transactions: null,
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
| **report_name** | **String** | | [optional] |
|
|
9
9
|
| **flow_type** | [**EReportingFlowType**](EReportingFlowType.md) | E-Reporting flux type (for internal routing) | |
|
|
10
10
|
| **transmission_type** | [**TransmissionTypeCode**](TransmissionTypeCode.md) | Transmission type (TT-4 TypeCode): IN=Initial, RE=Rectificative | [optional] |
|
|
11
|
-
| **sender** | [**ReportSender**](ReportSender.md) | Report sender (
|
|
11
|
+
| **sender** | [**ReportSender**](ReportSender.md) | Report sender (PA transmitting the report) | |
|
|
12
|
+
| **issuer** | [**ReportIssuer**](ReportIssuer.md) | | [optional] |
|
|
12
13
|
| **period** | [**ReportPeriod**](ReportPeriod.md) | Reporting period | |
|
|
13
14
|
| **invoices** | [**Array<InvoiceInput>**](InvoiceInput.md) | | [optional] |
|
|
14
15
|
| **transactions** | [**Array<AggregatedTransactionInput>**](AggregatedTransactionInput.md) | | [optional] |
|
|
@@ -26,6 +27,7 @@ instance = FactPulse::CreateEReportingRequest.new(
|
|
|
26
27
|
flow_type: null,
|
|
27
28
|
transmission_type: null,
|
|
28
29
|
sender: null,
|
|
30
|
+
issuer: null,
|
|
29
31
|
period: null,
|
|
30
32
|
invoices: null,
|
|
31
33
|
transactions: null,
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# FactPulse::ElectronicSignatureApi
|
|
2
|
+
|
|
3
|
+
All URIs are relative to *https://factpulse.fr*
|
|
4
|
+
|
|
5
|
+
| Method | HTTP request | Description |
|
|
6
|
+
| ------ | ------------ | ----------- |
|
|
7
|
+
| [**generate_test_certificate_api_v1_processing_generate_test_certificate_post**](ElectronicSignatureApi.md#generate_test_certificate_api_v1_processing_generate_test_certificate_post) | **POST** /api/v1/processing/generate-test-certificate | Generate a self-signed X.509 test certificate |
|
|
8
|
+
| [**sign_pdf_api_v1_processing_sign_pdf_post**](ElectronicSignatureApi.md#sign_pdf_api_v1_processing_sign_pdf_post) | **POST** /api/v1/processing/sign-pdf | Sign a PDF with client's certificate (PAdES-B-LT) |
|
|
9
|
+
| [**sign_pdf_async_api_v1_processing_sign_pdf_async_post**](ElectronicSignatureApi.md#sign_pdf_async_api_v1_processing_sign_pdf_async_post) | **POST** /api/v1/processing/sign-pdf-async | Sign a PDF asynchronously (Celery) |
|
|
10
|
+
| [**validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post**](ElectronicSignatureApi.md#validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post) | **POST** /api/v1/processing/validate-pdf-signature | Validate electronic signatures of a PDF |
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## generate_test_certificate_api_v1_processing_generate_test_certificate_post
|
|
14
|
+
|
|
15
|
+
> <GenerateCertificateResponse> generate_test_certificate_api_v1_processing_generate_test_certificate_post(generate_certificate_request)
|
|
16
|
+
|
|
17
|
+
Generate a self-signed X.509 test certificate
|
|
18
|
+
|
|
19
|
+
Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let's Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://factpulse.fr/api/v1/processing/generate-test-certificate\" \\ -H \"Authorization: Bearer eyJ0eXAi...\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"cn\": \"Test Client XYZ\", \"organization\": \"Client XYZ Ltd\", \"email\": \"contact@xyz.com\", \"validity_days\": 365 }' ``` ## Use cases - PDF signature testing in development - Electronic signature POC - Training and demos - Automated integration tests ## Technical compliance Certificate generated with: - RSA key 2048 or 4096 bits - SHA-256 algorithm - Key Usage extensions: `digitalSignature`, `contentCommitment` (non-repudiation) - Extended Key Usage extensions: `codeSigning`, `emailProtection` - Validity: 1 day to 10 years (configurable) - Format: PEM (certificate and key) - Optional: PKCS#12 (.p12)
|
|
20
|
+
|
|
21
|
+
### Examples
|
|
22
|
+
|
|
23
|
+
```ruby
|
|
24
|
+
require 'time'
|
|
25
|
+
require 'factpulse'
|
|
26
|
+
# setup authorization
|
|
27
|
+
FactPulse.configure do |config|
|
|
28
|
+
# Configure Bearer authorization: HTTPBearer
|
|
29
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
api_instance = FactPulse::ElectronicSignatureApi.new
|
|
33
|
+
generate_certificate_request = FactPulse::GenerateCertificateRequest.new # GenerateCertificateRequest |
|
|
34
|
+
|
|
35
|
+
begin
|
|
36
|
+
# Generate a self-signed X.509 test certificate
|
|
37
|
+
result = api_instance.generate_test_certificate_api_v1_processing_generate_test_certificate_post(generate_certificate_request)
|
|
38
|
+
p result
|
|
39
|
+
rescue FactPulse::ApiError => e
|
|
40
|
+
puts "Error when calling ElectronicSignatureApi->generate_test_certificate_api_v1_processing_generate_test_certificate_post: #{e}"
|
|
41
|
+
end
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### Using the generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info variant
|
|
45
|
+
|
|
46
|
+
This returns an Array which contains the response data, status code and headers.
|
|
47
|
+
|
|
48
|
+
> <Array(<GenerateCertificateResponse>, Integer, Hash)> generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info(generate_certificate_request)
|
|
49
|
+
|
|
50
|
+
```ruby
|
|
51
|
+
begin
|
|
52
|
+
# Generate a self-signed X.509 test certificate
|
|
53
|
+
data, status_code, headers = api_instance.generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info(generate_certificate_request)
|
|
54
|
+
p status_code # => 2xx
|
|
55
|
+
p headers # => { ... }
|
|
56
|
+
p data # => <GenerateCertificateResponse>
|
|
57
|
+
rescue FactPulse::ApiError => e
|
|
58
|
+
puts "Error when calling ElectronicSignatureApi->generate_test_certificate_api_v1_processing_generate_test_certificate_post_with_http_info: #{e}"
|
|
59
|
+
end
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Parameters
|
|
63
|
+
|
|
64
|
+
| Name | Type | Description | Notes |
|
|
65
|
+
| ---- | ---- | ----------- | ----- |
|
|
66
|
+
| **generate_certificate_request** | [**GenerateCertificateRequest**](GenerateCertificateRequest.md) | | |
|
|
67
|
+
|
|
68
|
+
### Return type
|
|
69
|
+
|
|
70
|
+
[**GenerateCertificateResponse**](GenerateCertificateResponse.md)
|
|
71
|
+
|
|
72
|
+
### Authorization
|
|
73
|
+
|
|
74
|
+
[HTTPBearer](../README.md#HTTPBearer)
|
|
75
|
+
|
|
76
|
+
### HTTP request headers
|
|
77
|
+
|
|
78
|
+
- **Content-Type**: application/json
|
|
79
|
+
- **Accept**: application/json
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
## sign_pdf_api_v1_processing_sign_pdf_post
|
|
83
|
+
|
|
84
|
+
> Object sign_pdf_api_v1_processing_sign_pdf_post(pdf_file, opts)
|
|
85
|
+
|
|
86
|
+
Sign a PDF with client's certificate (PAdES-B-LT)
|
|
87
|
+
|
|
88
|
+
Signs an uploaded PDF with the electronic certificate configured for the client (via client_uid from JWT). **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **eIDAS levels**: SES (self-signed), AdES (commercial CA), QES (PSCO - out of scope). **Security**: Double authentication X-Internal-Secret + JWT Bearer to retrieve the certificate. **⚠️ Legal disclaimer**: Generated signatures are electronic seals as defined by the eIDAS regulation. The level of legal validity depends on the certificate used (SES/AdES/QES). FactPulse does not provide QES qualified certificates - you must obtain a certificate from a PSCO (qualified Trust Service Provider) for maximum legal validity.
|
|
89
|
+
|
|
90
|
+
### Examples
|
|
91
|
+
|
|
92
|
+
```ruby
|
|
93
|
+
require 'time'
|
|
94
|
+
require 'factpulse'
|
|
95
|
+
# setup authorization
|
|
96
|
+
FactPulse.configure do |config|
|
|
97
|
+
# Configure Bearer authorization: HTTPBearer
|
|
98
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
api_instance = FactPulse::ElectronicSignatureApi.new
|
|
102
|
+
pdf_file = File.new('/path/to/some/file') # File | PDF file to sign (will be processed and returned signed in base64)
|
|
103
|
+
opts = {
|
|
104
|
+
reason: 'reason_example', # String |
|
|
105
|
+
location: 'location_example', # String |
|
|
106
|
+
contact: 'contact_example', # String |
|
|
107
|
+
field_name: 'field_name_example', # String | PDF signature field name
|
|
108
|
+
use_pades_lt: true, # Boolean | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access.
|
|
109
|
+
use_timestamp: true # Boolean | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
begin
|
|
113
|
+
# Sign a PDF with client's certificate (PAdES-B-LT)
|
|
114
|
+
result = api_instance.sign_pdf_api_v1_processing_sign_pdf_post(pdf_file, opts)
|
|
115
|
+
p result
|
|
116
|
+
rescue FactPulse::ApiError => e
|
|
117
|
+
puts "Error when calling ElectronicSignatureApi->sign_pdf_api_v1_processing_sign_pdf_post: #{e}"
|
|
118
|
+
end
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
#### Using the sign_pdf_api_v1_processing_sign_pdf_post_with_http_info variant
|
|
122
|
+
|
|
123
|
+
This returns an Array which contains the response data, status code and headers.
|
|
124
|
+
|
|
125
|
+
> <Array(Object, Integer, Hash)> sign_pdf_api_v1_processing_sign_pdf_post_with_http_info(pdf_file, opts)
|
|
126
|
+
|
|
127
|
+
```ruby
|
|
128
|
+
begin
|
|
129
|
+
# Sign a PDF with client's certificate (PAdES-B-LT)
|
|
130
|
+
data, status_code, headers = api_instance.sign_pdf_api_v1_processing_sign_pdf_post_with_http_info(pdf_file, opts)
|
|
131
|
+
p status_code # => 2xx
|
|
132
|
+
p headers # => { ... }
|
|
133
|
+
p data # => Object
|
|
134
|
+
rescue FactPulse::ApiError => e
|
|
135
|
+
puts "Error when calling ElectronicSignatureApi->sign_pdf_api_v1_processing_sign_pdf_post_with_http_info: #{e}"
|
|
136
|
+
end
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Parameters
|
|
140
|
+
|
|
141
|
+
| Name | Type | Description | Notes |
|
|
142
|
+
| ---- | ---- | ----------- | ----- |
|
|
143
|
+
| **pdf_file** | **File** | PDF file to sign (will be processed and returned signed in base64) | |
|
|
144
|
+
| **reason** | **String** | | [optional] |
|
|
145
|
+
| **location** | **String** | | [optional] |
|
|
146
|
+
| **contact** | **String** | | [optional] |
|
|
147
|
+
| **field_name** | **String** | PDF signature field name | [optional][default to 'FactPulseSignature'] |
|
|
148
|
+
| **use_pades_lt** | **Boolean** | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. | [optional][default to false] |
|
|
149
|
+
| **use_timestamp** | **Boolean** | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) | [optional][default to true] |
|
|
150
|
+
|
|
151
|
+
### Return type
|
|
152
|
+
|
|
153
|
+
**Object**
|
|
154
|
+
|
|
155
|
+
### Authorization
|
|
156
|
+
|
|
157
|
+
[HTTPBearer](../README.md#HTTPBearer)
|
|
158
|
+
|
|
159
|
+
### HTTP request headers
|
|
160
|
+
|
|
161
|
+
- **Content-Type**: multipart/form-data
|
|
162
|
+
- **Accept**: application/json
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
## sign_pdf_async_api_v1_processing_sign_pdf_async_post
|
|
166
|
+
|
|
167
|
+
> Object sign_pdf_async_api_v1_processing_sign_pdf_async_post(pdf_file, opts)
|
|
168
|
+
|
|
169
|
+
Sign a PDF asynchronously (Celery)
|
|
170
|
+
|
|
171
|
+
Signs an uploaded PDF asynchronously via a Celery task. **Difference with /sign-pdf**: - `/sign-pdf`: Synchronous signature (blocking until completion) - `/sign-pdf-async`: Asynchronous signature (returns immediately with task_id) **Async advantages**: - No timeout for large files - No blocking of FastAPI worker - Progress tracking via task_id - Ideal for batch processing **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **⚠️ Legal disclaimer**: Same as /sign-pdf (see that endpoint's documentation).
|
|
172
|
+
|
|
173
|
+
### Examples
|
|
174
|
+
|
|
175
|
+
```ruby
|
|
176
|
+
require 'time'
|
|
177
|
+
require 'factpulse'
|
|
178
|
+
# setup authorization
|
|
179
|
+
FactPulse.configure do |config|
|
|
180
|
+
# Configure Bearer authorization: HTTPBearer
|
|
181
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
api_instance = FactPulse::ElectronicSignatureApi.new
|
|
185
|
+
pdf_file = File.new('/path/to/some/file') # File | PDF file to sign (processed asynchronously)
|
|
186
|
+
opts = {
|
|
187
|
+
callback_url: 'callback_url_example', # String |
|
|
188
|
+
webhook_mode: 'webhook_mode_example', # String | Webhook content delivery: 'inline' (base64 in payload) or 'download_url' (temporary URL, 1h TTL)
|
|
189
|
+
reason: 'reason_example', # String |
|
|
190
|
+
location: 'location_example', # String |
|
|
191
|
+
contact: 'contact_example', # String |
|
|
192
|
+
field_name: 'field_name_example', # String | PDF signature field name
|
|
193
|
+
use_pades_lt: true, # Boolean | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access.
|
|
194
|
+
use_timestamp: true # Boolean | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T)
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
begin
|
|
198
|
+
# Sign a PDF asynchronously (Celery)
|
|
199
|
+
result = api_instance.sign_pdf_async_api_v1_processing_sign_pdf_async_post(pdf_file, opts)
|
|
200
|
+
p result
|
|
201
|
+
rescue FactPulse::ApiError => e
|
|
202
|
+
puts "Error when calling ElectronicSignatureApi->sign_pdf_async_api_v1_processing_sign_pdf_async_post: #{e}"
|
|
203
|
+
end
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
#### Using the sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info variant
|
|
207
|
+
|
|
208
|
+
This returns an Array which contains the response data, status code and headers.
|
|
209
|
+
|
|
210
|
+
> <Array(Object, Integer, Hash)> sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info(pdf_file, opts)
|
|
211
|
+
|
|
212
|
+
```ruby
|
|
213
|
+
begin
|
|
214
|
+
# Sign a PDF asynchronously (Celery)
|
|
215
|
+
data, status_code, headers = api_instance.sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info(pdf_file, opts)
|
|
216
|
+
p status_code # => 2xx
|
|
217
|
+
p headers # => { ... }
|
|
218
|
+
p data # => Object
|
|
219
|
+
rescue FactPulse::ApiError => e
|
|
220
|
+
puts "Error when calling ElectronicSignatureApi->sign_pdf_async_api_v1_processing_sign_pdf_async_post_with_http_info: #{e}"
|
|
221
|
+
end
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Parameters
|
|
225
|
+
|
|
226
|
+
| Name | Type | Description | Notes |
|
|
227
|
+
| ---- | ---- | ----------- | ----- |
|
|
228
|
+
| **pdf_file** | **File** | PDF file to sign (processed asynchronously) | |
|
|
229
|
+
| **callback_url** | **String** | | [optional] |
|
|
230
|
+
| **webhook_mode** | **String** | Webhook content delivery: 'inline' (base64 in payload) or 'download_url' (temporary URL, 1h TTL) | [optional][default to 'inline'] |
|
|
231
|
+
| **reason** | **String** | | [optional] |
|
|
232
|
+
| **location** | **String** | | [optional] |
|
|
233
|
+
| **contact** | **String** | | [optional] |
|
|
234
|
+
| **field_name** | **String** | PDF signature field name | [optional][default to 'FactPulseSignature'] |
|
|
235
|
+
| **use_pades_lt** | **Boolean** | Enable PAdES-B-LT (long-term archiving with embedded validation data). REQUIRES a certificate with OCSP/CRL access. | [optional][default to false] |
|
|
236
|
+
| **use_timestamp** | **Boolean** | Enable RFC 3161 timestamping with FreeTSA (PAdES-B-T) | [optional][default to true] |
|
|
237
|
+
|
|
238
|
+
### Return type
|
|
239
|
+
|
|
240
|
+
**Object**
|
|
241
|
+
|
|
242
|
+
### Authorization
|
|
243
|
+
|
|
244
|
+
[HTTPBearer](../README.md#HTTPBearer)
|
|
245
|
+
|
|
246
|
+
### HTTP request headers
|
|
247
|
+
|
|
248
|
+
- **Content-Type**: multipart/form-data
|
|
249
|
+
- **Accept**: application/json
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
## validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post
|
|
253
|
+
|
|
254
|
+
> Object validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post(pdf_file)
|
|
255
|
+
|
|
256
|
+
Validate electronic signatures of a PDF
|
|
257
|
+
|
|
258
|
+
Validates electronic signatures present in an uploaded PDF. **Verifications performed**: - Presence of signatures - Document integrity (not modified since signing) - Certificate validity - Chain of trust (if available) - Presence of timestamp (PAdES-B-T) - Validation data (PAdES-B-LT) **Supported standards**: PAdES-B-B, PAdES-B-T, PAdES-B-LT, ISO 32000-2. **⚠️ Note**: This validation is technical (cryptographic integrity). Legal validity depends on the eIDAS level of the certificate (SES/AdES/QES) and the context of use.
|
|
259
|
+
|
|
260
|
+
### Examples
|
|
261
|
+
|
|
262
|
+
```ruby
|
|
263
|
+
require 'time'
|
|
264
|
+
require 'factpulse'
|
|
265
|
+
# setup authorization
|
|
266
|
+
FactPulse.configure do |config|
|
|
267
|
+
# Configure Bearer authorization: HTTPBearer
|
|
268
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
api_instance = FactPulse::ElectronicSignatureApi.new
|
|
272
|
+
pdf_file = File.new('/path/to/some/file') # File | PDF file to validate (will be analyzed to detect and validate signatures)
|
|
273
|
+
|
|
274
|
+
begin
|
|
275
|
+
# Validate electronic signatures of a PDF
|
|
276
|
+
result = api_instance.validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post(pdf_file)
|
|
277
|
+
p result
|
|
278
|
+
rescue FactPulse::ApiError => e
|
|
279
|
+
puts "Error when calling ElectronicSignatureApi->validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post: #{e}"
|
|
280
|
+
end
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
#### Using the validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info variant
|
|
284
|
+
|
|
285
|
+
This returns an Array which contains the response data, status code and headers.
|
|
286
|
+
|
|
287
|
+
> <Array(Object, Integer, Hash)> validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info(pdf_file)
|
|
288
|
+
|
|
289
|
+
```ruby
|
|
290
|
+
begin
|
|
291
|
+
# Validate electronic signatures of a PDF
|
|
292
|
+
data, status_code, headers = api_instance.validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info(pdf_file)
|
|
293
|
+
p status_code # => 2xx
|
|
294
|
+
p headers # => { ... }
|
|
295
|
+
p data # => Object
|
|
296
|
+
rescue FactPulse::ApiError => e
|
|
297
|
+
puts "Error when calling ElectronicSignatureApi->validate_pdf_signature_endpoint_api_v1_processing_validate_pdf_signature_post_with_http_info: #{e}"
|
|
298
|
+
end
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Parameters
|
|
302
|
+
|
|
303
|
+
| Name | Type | Description | Notes |
|
|
304
|
+
| ---- | ---- | ----------- | ----- |
|
|
305
|
+
| **pdf_file** | **File** | PDF file to validate (will be analyzed to detect and validate signatures) | |
|
|
306
|
+
|
|
307
|
+
### Return type
|
|
308
|
+
|
|
309
|
+
**Object**
|
|
310
|
+
|
|
311
|
+
### Authorization
|
|
312
|
+
|
|
313
|
+
[HTTPBearer](../README.md#HTTPBearer)
|
|
314
|
+
|
|
315
|
+
### HTTP request headers
|
|
316
|
+
|
|
317
|
+
- **Content-Type**: multipart/form-data
|
|
318
|
+
- **Accept**: application/json
|
|
319
|
+
|
data/docs/EncaisseeRequest.md
CHANGED
|
@@ -6,14 +6,16 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **invoice_id** | **String** | Identifiant de la facture (BT-1) | |
|
|
8
8
|
| **invoice_issue_date** | **Date** | Date d'émission de la facture (YYYY-MM-DD) | |
|
|
9
|
+
| **invoice_buyer_siren** | **String** | SIREN de l'acheteur (destinataire du statut) | |
|
|
10
|
+
| **invoice_buyer_electronic_address** | **String** | Adresse électronique de l'acheteur (MDT-73) | |
|
|
11
|
+
| **amount** | [**Amount**](Amount.md) | | |
|
|
12
|
+
| **currency** | **String** | Code devise ISO 4217 | [optional][default to 'EUR'] |
|
|
9
13
|
| **sender_siren** | **String** | | [optional] |
|
|
10
|
-
| **flow_type** | **String** | Type de flux
|
|
14
|
+
| **flow_type** | **String** | Type de flux (CustomerInvoiceLC pour facture émise) | [optional][default to 'CustomerInvoiceLC'] |
|
|
11
15
|
| **pdp_flow_service_url** | **String** | | [optional] |
|
|
12
16
|
| **pdp_token_url** | **String** | | [optional] |
|
|
13
17
|
| **pdp_client_id** | **String** | | [optional] |
|
|
14
18
|
| **pdp_client_secret** | **String** | | [optional] |
|
|
15
|
-
| **amount** | [**Amount**](Amount.md) | | |
|
|
16
|
-
| **currency** | **String** | Code devise ISO 4217 | [optional][default to 'EUR'] |
|
|
17
19
|
|
|
18
20
|
## Example
|
|
19
21
|
|
|
@@ -23,14 +25,16 @@ require 'factpulse'
|
|
|
23
25
|
instance = FactPulse::EncaisseeRequest.new(
|
|
24
26
|
invoice_id: null,
|
|
25
27
|
invoice_issue_date: null,
|
|
28
|
+
invoice_buyer_siren: null,
|
|
29
|
+
invoice_buyer_electronic_address: null,
|
|
30
|
+
amount: null,
|
|
31
|
+
currency: null,
|
|
26
32
|
sender_siren: null,
|
|
27
33
|
flow_type: null,
|
|
28
34
|
pdp_flow_service_url: null,
|
|
29
35
|
pdp_token_url: null,
|
|
30
36
|
pdp_client_id: null,
|
|
31
|
-
pdp_client_secret: null
|
|
32
|
-
amount: null,
|
|
33
|
-
currency: null
|
|
37
|
+
pdp_client_secret: null
|
|
34
38
|
)
|
|
35
39
|
```
|
|
36
40
|
|