factpulse 4.0.3 → 4.3.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 +5 -5
- data/Gemfile.lock +3 -3
- data/docs/AFNORBasicAuthentication.md +20 -0
- data/docs/AFNORCallbackAuthentication.md +49 -0
- data/docs/AFNORCallbackHeader.md +20 -0
- data/docs/AFNORCallbackParameters.md +24 -0
- data/docs/AFNORCallbackSignature.md +20 -0
- data/docs/{AFNORFacilityNature.md → AFNORContainsOrStrictOperator.md} +2 -2
- data/docs/AFNORCoreFlowInfo.md +26 -0
- data/docs/{AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCode.md → AFNORDirectoryLinePayloadLegalUnitFacilityRoutingCode.md} +5 -5
- data/docs/AFNORDirectoryLinePayloadStatusLegalUnitFacilityRoutingCode.md +34 -0
- data/docs/AFNORDirectoryLineSearchPost200Response.md +1 -1
- data/docs/{AFNORDiffusionStatus.md → AFNORDirectoryLineStatus.md} +2 -2
- data/docs/AFNORError.md +4 -4
- data/docs/AFNORErrorDetail.md +26 -0
- data/docs/AFNORFacilityPayloadHistory.md +3 -3
- data/docs/AFNORFacilityPayloadIncluded.md +0 -2
- data/docs/AFNORFlow.md +16 -14
- data/docs/AFNORFlowExtension.md +26 -0
- data/docs/AFNORFlowInfo.md +3 -3
- data/docs/AFNORFlowInfoExtension.md +18 -0
- data/docs/AFNORFullFlowInfo.md +8 -8
- data/docs/AFNORFullFlowInfoExtension.md +20 -0
- data/docs/AFNORLegalUnitPayloadHistory.md +3 -1
- data/docs/AFNOROAuth2Authentication.md +22 -0
- data/docs/AFNORPDPPADirectoryServiceApi.md +4 -648
- data/docs/AFNORPDPPAFlowServiceApi.md +320 -1
- data/docs/AFNORRoutingCodeSearch.md +1 -1
- data/docs/AFNORRoutingCodeSearchFiltersRoutingCodeName.md +1 -1
- data/docs/AFNORRoutingCodeSearchFiltersRoutingIdentifier.md +1 -1
- data/docs/AFNORSearchDirectoryLine.md +2 -2
- data/docs/AFNORSearchDirectoryLineFiltersAddressingIdentifier.md +1 -1
- data/docs/AFNORSearchDirectoryLineFiltersAddressingSuffix.md +1 -1
- data/docs/AFNORSearchFlowFilters.md +1 -1
- data/docs/AFNORSearchSiren.md +1 -1
- data/docs/AFNORSearchSirenFiltersBusinessName.md +1 -1
- data/docs/AFNORSearchSirenFiltersSiren.md +1 -1
- data/docs/AFNORSearchSiret.md +2 -2
- data/docs/AFNORSearchSiretFiltersCountrySubdivision.md +1 -1
- data/docs/AFNORSearchSiretFiltersFacilityType.md +1 -1
- data/docs/AFNORSearchSiretFiltersLocality.md +1 -1
- data/docs/AFNORSearchSiretFiltersName.md +1 -1
- data/docs/AFNORSearchSiretFiltersPostalCode.md +1 -1
- data/docs/AFNORSearchSiretFiltersSiret.md +1 -1
- data/docs/AFNORSirenInstructions.md +18 -0
- data/docs/AFNORSiretInstructions.md +18 -0
- data/docs/{AFNORPlatformStatus.md → AFNORStrictOrStartWithOperator.md} +2 -2
- data/docs/AFNORWebhook.md +22 -0
- data/docs/AFNORWebhookIdParam.md +18 -0
- data/docs/AFNORWebhookMetadata.md +24 -0
- data/docs/AFNORWebhookParams.md +20 -0
- data/docs/AFNORWebhookPatchPayload.md +22 -0
- data/docs/AsyncTasksApi.md +225 -0
- data/docs/ChorusProCredentials.md +8 -8
- data/docs/ChorusProDestination.md +1 -1
- data/docs/ClientManagementApi.md +20 -20
- data/docs/ConversionErrorResult.md +30 -0
- data/docs/ConversionExtractionInfo.md +20 -0
- data/docs/ConversionPendingInputResult.md +30 -0
- data/docs/ConversionSuccessTaskResult.md +36 -0
- data/docs/ConversionTaskStatus.md +22 -0
- data/docs/ConversionTaskStatusResult.md +85 -0
- data/docs/ConversionValidationFailedResult.md +34 -0
- data/docs/DownloadsApi.md +4 -4
- data/docs/FacturXConversionApi.md +75 -0
- data/docs/FacturXInvoice.md +1 -1
- data/docs/FacturXPDFXMLVerificationApi.md +75 -0
- data/docs/FacturXValidationApi.md +0 -81
- data/docs/FactureElectroniqueRestApiSchemasCdarValidationErrorResponse.md +24 -0
- data/docs/FactureElectroniqueRestApiSchemasProcessingChorusProCredentials.md +26 -0
- data/docs/Flux6InvoiceLifecycleCDARApi.md +82 -0
- data/docs/GenerationSuccessResult.md +24 -0
- data/docs/GenerationTaskStatus.md +22 -0
- data/docs/GenerationTaskStatusResult.md +79 -0
- data/docs/GetChorusProIdRequest.md +1 -1
- data/docs/GetInvoiceRequest.md +1 -1
- data/docs/GetStructureRequest.md +1 -1
- data/docs/HealthApi.md +0 -124
- data/docs/{FacturXGenerationApi.md → InvoiceGenerationApi.md} +21 -21
- data/docs/InvoiceLifecycle.md +24 -0
- data/docs/InvoicingFramework.md +1 -1
- data/docs/LifecycleEvent.md +38 -0
- data/docs/LifecycleResponse.md +22 -0
- data/docs/ParseApi.md +161 -0
- data/docs/ParseFacturXResponse.md +26 -0
- data/docs/ReferencesApi.md +74 -0
- data/docs/SearchStructureRequest.md +1 -1
- data/docs/SignatureSuccessResult.md +34 -0
- data/docs/SignatureTaskStatus.md +22 -0
- data/docs/SignatureTaskStatusResult.md +79 -0
- data/docs/SubmitCompleteInvoiceResponse.md +3 -1
- data/docs/SubmitInvoiceRequest.md +1 -1
- data/docs/Supplier.md +1 -1
- data/docs/TaskErrorResult.md +26 -0
- data/docs/VATEXCodeInfo.md +24 -0
- data/docs/VATEXCodesResponse.md +22 -0
- data/docs/ValidateCDARResponse.md +2 -2
- data/docs/ValidationApi.md +88 -0
- data/docs/ValidationErrorResponse.md +2 -8
- data/docs/ValidationSuccessTaskResult.md +20 -0
- data/docs/ValidationTaskStatus.md +22 -0
- data/docs/ValidationTaskStatusResult.md +79 -0
- data/docs/VerificationSuccessTaskResult.md +20 -0
- data/docs/VerificationTypedTaskStatus.md +22 -0
- data/docs/VerificationTypedTaskStatusResult.md +79 -0
- data/factpulse.gemspec +3 -3
- data/lib/factpulse/api/afnorpdppa_api.rb +2 -2
- data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +5 -623
- data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +305 -2
- data/lib/factpulse/api/async_tasks_api.rb +191 -2
- data/lib/factpulse/api/chorus_pro_api.rb +2 -2
- data/lib/factpulse/api/client_management_api.rb +22 -22
- data/lib/factpulse/api/downloads_api.rb +6 -6
- data/lib/factpulse/api/electronic_signature_api.rb +2 -2
- data/lib/factpulse/api/factur_x_conversion_api.rb +65 -2
- data/lib/factpulse/api/factur_x_validation_api.rb +2 -77
- data/lib/factpulse/api/factur_xpdfxml_verification_api.rb +65 -2
- data/lib/factpulse/api/flux10_e_reporting_api.rb +2 -2
- data/lib/factpulse/api/flux6_invoice_lifecycle_cdar_api.rb +85 -2
- data/lib/factpulse/api/health_api.rb +2 -116
- data/lib/factpulse/api/{factur_x_generation_api.rb → invoice_generation_api.rb} +23 -23
- data/lib/factpulse/api/parse_api.rb +163 -0
- data/lib/factpulse/api/references_api.rb +82 -0
- data/lib/factpulse/api/validation_api.rb +97 -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/models/acknowledgment_status.rb +2 -2
- data/lib/factpulse/models/action_code_info.rb +2 -2
- data/lib/factpulse/models/action_codes_response.rb +2 -2
- data/lib/factpulse/models/additional_document.rb +2 -2
- data/lib/factpulse/models/afnor_acknowledgement.rb +2 -2
- data/lib/factpulse/models/afnor_acknowledgement_detail.rb +2 -2
- data/lib/factpulse/models/afnor_address_read.rb +2 -2
- data/lib/factpulse/models/afnor_algorithm.rb +6 -5
- data/lib/factpulse/models/afnor_basic_authentication.rb +190 -0
- data/lib/factpulse/models/afnor_callback_authentication.rb +105 -0
- data/lib/factpulse/models/afnor_callback_header.rb +190 -0
- data/lib/factpulse/models/afnor_callback_parameters.rb +193 -0
- data/lib/factpulse/models/afnor_callback_signature.rb +213 -0
- data/lib/factpulse/models/afnor_contains_operator.rb +2 -2
- data/lib/factpulse/models/afnor_contains_or_strict_operator.rb +40 -0
- data/lib/factpulse/models/afnor_core_flow_info.rb +270 -0
- data/lib/factpulse/models/afnor_credentials.rb +2 -2
- data/lib/factpulse/models/afnor_destination.rb +2 -2
- data/lib/factpulse/models/afnor_directory_line_field.rb +3 -4
- data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.rb +2 -2
- data/lib/factpulse/models/{afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb → afnor_directory_line_payload_legal_unit_facility_routing_code.rb} +38 -16
- data/lib/factpulse/models/afnor_directory_line_payload_status_legal_unit_facility_routing_code.rb +343 -0
- data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +3 -3
- data/lib/factpulse/models/afnor_directory_line_status.rb +41 -0
- data/lib/factpulse/models/afnor_entity_type.rb +2 -2
- data/lib/factpulse/models/afnor_error.rb +32 -41
- data/lib/factpulse/models/afnor_error_detail.rb +237 -0
- data/lib/factpulse/models/afnor_facility_administrative_status.rb +2 -2
- data/lib/factpulse/models/afnor_facility_payload_history.rb +13 -13
- data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +2 -2
- data/lib/factpulse/models/afnor_facility_payload_included.rb +3 -12
- data/lib/factpulse/models/afnor_facility_type.rb +2 -2
- data/lib/factpulse/models/afnor_flow.rb +220 -59
- data/lib/factpulse/models/afnor_flow_ack_status.rb +2 -2
- data/lib/factpulse/models/afnor_flow_direction.rb +2 -2
- data/lib/factpulse/models/afnor_flow_extension.rb +295 -0
- data/lib/factpulse/models/afnor_flow_info.rb +22 -6
- data/lib/factpulse/models/afnor_flow_info_extension.rb +170 -0
- data/lib/factpulse/models/afnor_flow_profile.rb +2 -2
- data/lib/factpulse/models/afnor_flow_syntax.rb +2 -2
- data/lib/factpulse/models/afnor_flow_type.rb +2 -2
- data/lib/factpulse/models/afnor_full_flow_info.rb +81 -48
- data/lib/factpulse/models/afnor_full_flow_info_extension.rb +202 -0
- data/lib/factpulse/models/afnor_health_check_response.rb +2 -2
- data/lib/factpulse/models/afnor_legal_unit_administrative_status.rb +2 -2
- data/lib/factpulse/models/afnor_legal_unit_payload_history.rb +15 -6
- data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +2 -2
- data/lib/factpulse/models/afnor_processing_rule.rb +6 -3
- data/lib/factpulse/models/afnor_reason_code.rb +2 -2
- data/lib/factpulse/models/afnor_reason_code_enum.rb +2 -2
- data/lib/factpulse/models/afnor_recipient_platform_type.rb +2 -2
- data/lib/factpulse/models/afnor_result.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_administrative_status.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_field.rb +3 -4
- data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_search.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_search_filters.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_search_filters_administrative_status.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_search_filters_routing_code_name.rb +3 -3
- data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +3 -3
- data/lib/factpulse/models/afnor_routing_code_search_post200_response.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_search_sorting_inner.rb +2 -2
- data/lib/factpulse/models/afnor_search_directory_line.rb +2 -2
- data/lib/factpulse/models/afnor_search_directory_line_filters.rb +2 -2
- data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.rb +3 -3
- data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +3 -3
- data/lib/factpulse/models/afnor_search_directory_line_sorting_inner.rb +2 -2
- data/lib/factpulse/models/afnor_search_flow_content.rb +2 -2
- data/lib/factpulse/models/afnor_search_flow_filters.rb +3 -2
- data/lib/factpulse/models/afnor_search_flow_params.rb +2 -2
- data/lib/factpulse/models/afnor_search_siren.rb +2 -2
- data/lib/factpulse/models/afnor_search_siren_filters.rb +2 -2
- data/lib/factpulse/models/afnor_search_siren_filters_administrative_status.rb +2 -2
- data/lib/factpulse/models/afnor_search_siren_filters_business_name.rb +3 -3
- data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +2 -2
- data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +3 -3
- data/lib/factpulse/models/afnor_search_siren_sorting_inner.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_address_lines.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_administrative_status.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_country_subdivision.rb +3 -3
- data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +3 -3
- data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +3 -3
- data/lib/factpulse/models/afnor_search_siret_filters_name.rb +3 -3
- data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +3 -3
- data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +3 -3
- data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +2 -2
- data/lib/factpulse/models/afnor_siren_field.rb +4 -4
- data/lib/factpulse/models/afnor_siren_instructions.rb +149 -0
- data/lib/factpulse/models/afnor_siren_search_post200_response.rb +2 -2
- data/lib/factpulse/models/afnor_siret_field.rb +5 -6
- data/lib/factpulse/models/afnor_siret_instructions.rb +149 -0
- data/lib/factpulse/models/afnor_siret_search_post200_response.rb +2 -2
- data/lib/factpulse/models/afnor_sorting_order.rb +2 -2
- data/lib/factpulse/models/afnor_strict_operator.rb +2 -2
- data/lib/factpulse/models/afnor_strict_or_start_with_operator.rb +40 -0
- data/lib/factpulse/models/afnor_webhook.rb +207 -0
- data/lib/factpulse/models/afnor_webhook_id_param.rb +147 -0
- data/lib/factpulse/models/afnor_webhook_metadata.rb +230 -0
- data/lib/factpulse/models/afnor_webhook_params.rb +190 -0
- data/lib/factpulse/models/afnor_webhook_patch_payload.rb +167 -0
- data/lib/factpulse/models/afnoro_auth2_authentication.rb +216 -0
- data/lib/factpulse/models/aggregated_payment_input.rb +2 -2
- data/lib/factpulse/models/aggregated_transaction_input.rb +2 -2
- data/lib/factpulse/models/allowance_charge.rb +2 -2
- data/lib/factpulse/models/allowance_charge_reason_code.rb +2 -2
- data/lib/factpulse/models/allowance_reason_code.rb +2 -2
- data/lib/factpulse/models/allowance_total_amount.rb +2 -2
- data/lib/factpulse/models/amount.rb +2 -2
- data/lib/factpulse/models/amount1.rb +2 -2
- data/lib/factpulse/models/amount2.rb +2 -2
- data/lib/factpulse/models/amount_due.rb +2 -2
- data/lib/factpulse/models/api_error.rb +2 -2
- data/lib/factpulse/models/api_profile.rb +2 -2
- data/lib/factpulse/models/async_task_status.rb +2 -2
- data/lib/factpulse/models/base_amount.rb +2 -2
- data/lib/factpulse/models/bounding_box_schema.rb +2 -2
- data/lib/factpulse/models/buyercountry.rb +2 -2
- data/lib/factpulse/models/celery_status.rb +2 -2
- data/lib/factpulse/models/certificate_info_response.rb +2 -2
- data/lib/factpulse/models/charge_total_amount.rb +2 -2
- data/lib/factpulse/models/chorus_pro_credentials.rb +96 -28
- data/lib/factpulse/models/chorus_pro_destination.rb +3 -3
- data/lib/factpulse/models/chorus_pro_result.rb +2 -2
- data/lib/factpulse/models/client_activate_response.rb +2 -2
- data/lib/factpulse/models/client_create_request.rb +2 -2
- data/lib/factpulse/models/client_detail.rb +2 -2
- data/lib/factpulse/models/client_list_response.rb +2 -2
- data/lib/factpulse/models/client_summary.rb +2 -2
- data/lib/factpulse/models/client_update_request.rb +2 -2
- data/lib/factpulse/models/contact.rb +2 -2
- data/lib/factpulse/models/conversion_error_result.rb +277 -0
- data/lib/factpulse/models/conversion_extraction_info.rb +176 -0
- data/lib/factpulse/models/conversion_pending_input_result.rb +344 -0
- data/lib/factpulse/models/conversion_success_task_result.rb +355 -0
- data/lib/factpulse/models/conversion_task_status.rb +223 -0
- data/lib/factpulse/models/conversion_task_status_result.rb +59 -0
- data/lib/factpulse/models/conversion_validation_failed_result.rb +348 -0
- data/lib/factpulse/models/convert_resume_request.rb +2 -2
- data/lib/factpulse/models/convert_success_response.rb +2 -2
- data/lib/factpulse/models/convert_validation_failed_response.rb +2 -2
- data/lib/factpulse/models/country_code.rb +2 -2
- data/lib/factpulse/models/create_aggregated_report_request.rb +2 -2
- data/lib/factpulse/models/create_cdar_request.rb +2 -2
- data/lib/factpulse/models/create_e_reporting_request.rb +2 -2
- data/lib/factpulse/models/currency.rb +2 -2
- data/lib/factpulse/models/currency_code.rb +2 -2
- data/lib/factpulse/models/delivery_party.rb +2 -2
- data/lib/factpulse/models/destination.rb +2 -2
- data/lib/factpulse/models/doc_type.rb +2 -2
- data/lib/factpulse/models/document_type_info.rb +2 -2
- data/lib/factpulse/models/e_reporting_flow_type.rb +2 -2
- data/lib/factpulse/models/e_reporting_validation_error.rb +2 -2
- data/lib/factpulse/models/electronic_address.rb +2 -2
- data/lib/factpulse/models/encaisseamount.rb +2 -2
- data/lib/factpulse/models/encaisseamount1.rb +2 -2
- data/lib/factpulse/models/encaissee_request.rb +2 -2
- data/lib/factpulse/models/enriched_invoice_info.rb +2 -2
- data/lib/factpulse/models/error_level.rb +2 -2
- data/lib/factpulse/models/error_source.rb +2 -2
- data/lib/factpulse/models/extraction_info.rb +2 -2
- data/lib/factpulse/models/factur_x_invoice.rb +3 -19
- data/lib/factpulse/models/factur_xpdf_info.rb +2 -2
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_cdar_validation_error_response.rb +215 -0
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_ereporting_invoice_type_code.rb +2 -2
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.rb +191 -0
- data/lib/factpulse/models/field_status.rb +2 -2
- data/lib/factpulse/models/file_info.rb +2 -2
- data/lib/factpulse/models/files_info.rb +2 -2
- data/lib/factpulse/models/flow_direction.rb +2 -2
- data/lib/factpulse/models/flow_profile.rb +2 -2
- data/lib/factpulse/models/flow_summary.rb +2 -2
- data/lib/factpulse/models/flow_syntax.rb +2 -2
- data/lib/factpulse/models/flow_type.rb +2 -2
- data/lib/factpulse/models/generate_aggregated_report_response.rb +2 -2
- data/lib/factpulse/models/generate_cdar_response.rb +2 -2
- data/lib/factpulse/models/generate_certificate_request.rb +2 -2
- data/lib/factpulse/models/generate_certificate_response.rb +2 -2
- data/lib/factpulse/models/generate_e_reporting_response.rb +2 -2
- data/lib/factpulse/models/generation_success_result.rb +230 -0
- data/lib/factpulse/models/generation_task_status.rb +223 -0
- data/lib/factpulse/models/generation_task_status_result.rb +55 -0
- data/lib/factpulse/models/get_chorus_pro_id_request.rb +3 -3
- data/lib/factpulse/models/get_chorus_pro_id_response.rb +2 -2
- data/lib/factpulse/models/get_invoice_request.rb +3 -3
- data/lib/factpulse/models/get_invoice_response.rb +2 -2
- data/lib/factpulse/models/get_structure_request.rb +3 -3
- data/lib/factpulse/models/get_structure_response.rb +2 -2
- data/lib/factpulse/models/global_allowance_amount.rb +2 -2
- data/lib/factpulse/models/gross_unit_price.rb +2 -2
- data/lib/factpulse/models/http_validation_error.rb +2 -2
- data/lib/factpulse/models/incoming_invoice.rb +2 -2
- data/lib/factpulse/models/incoming_supplier.rb +2 -2
- data/lib/factpulse/models/invoice_format.rb +2 -2
- data/lib/factpulse/models/invoice_input.rb +2 -2
- data/lib/factpulse/models/invoice_lifecycle.rb +215 -0
- data/lib/factpulse/models/invoice_line.rb +2 -2
- data/lib/factpulse/models/invoice_line_allowance_amount.rb +2 -2
- data/lib/factpulse/models/invoice_note.rb +2 -2
- data/lib/factpulse/models/invoice_payment_input.rb +2 -2
- data/lib/factpulse/models/invoice_references.rb +2 -2
- data/lib/factpulse/models/invoice_status.rb +2 -2
- data/lib/factpulse/models/invoice_totals.rb +2 -2
- data/lib/factpulse/models/invoice_totals_prepayment.rb +2 -2
- data/lib/factpulse/models/invoice_type_code.rb +2 -2
- data/lib/factpulse/models/invoice_type_code_output.rb +2 -2
- data/lib/factpulse/models/invoicing_framework.rb +3 -20
- data/lib/factpulse/models/invoicing_framework_code.rb +2 -2
- data/lib/factpulse/models/issuer_role_code.rb +2 -2
- data/lib/factpulse/models/key_rotation_request.rb +2 -2
- data/lib/factpulse/models/key_rotation_response.rb +2 -2
- data/lib/factpulse/models/lifecycle_event.rb +300 -0
- data/lib/factpulse/models/lifecycle_response.rb +205 -0
- data/lib/factpulse/models/line_net_amount.rb +2 -2
- data/lib/factpulse/models/line_sub_type.rb +2 -2
- data/lib/factpulse/models/line_total_amount.rb +2 -2
- data/lib/factpulse/models/location_inner.rb +2 -2
- data/lib/factpulse/models/mandatory_note_schema.rb +2 -2
- data/lib/factpulse/models/manual_rate.rb +2 -2
- data/lib/factpulse/models/manual_vat_rate.rb +2 -2
- data/lib/factpulse/models/missing_field.rb +2 -2
- data/lib/factpulse/models/operation_nature.rb +2 -2
- data/lib/factpulse/models/output_format.rb +5 -3
- data/lib/factpulse/models/page_dimensions_schema.rb +2 -2
- data/lib/factpulse/models/parse_factur_x_response.rb +249 -0
- data/lib/factpulse/models/payee.rb +2 -2
- data/lib/factpulse/models/payment_amount_by_rate.rb +2 -2
- data/lib/factpulse/models/payment_card.rb +2 -2
- data/lib/factpulse/models/payment_means.rb +2 -2
- data/lib/factpulse/models/pdf_validation_result_api.rb +2 -2
- data/lib/factpulse/models/pdp_config_response.rb +2 -2
- data/lib/factpulse/models/pdp_config_update_request.rb +2 -2
- data/lib/factpulse/models/pdp_credentials.rb +2 -2
- data/lib/factpulse/models/percentage.rb +2 -2
- data/lib/factpulse/models/postal_address.rb +2 -2
- data/lib/factpulse/models/price_allowance_amount.rb +2 -2
- data/lib/factpulse/models/price_basis_quantity.rb +2 -2
- data/lib/factpulse/models/processing_options.rb +2 -2
- data/lib/factpulse/models/processing_rule.rb +6 -3
- data/lib/factpulse/models/product_characteristic.rb +2 -2
- data/lib/factpulse/models/product_classification.rb +2 -2
- data/lib/factpulse/models/quantity.rb +2 -2
- data/lib/factpulse/models/rate.rb +2 -2
- data/lib/factpulse/models/rate1.rb +2 -2
- data/lib/factpulse/models/reason_code_info.rb +2 -2
- data/lib/factpulse/models/reason_codes_response.rb +2 -2
- data/lib/factpulse/models/recipient.rb +2 -2
- data/lib/factpulse/models/recipient_input.rb +2 -2
- data/lib/factpulse/models/refusee_request.rb +2 -2
- data/lib/factpulse/models/report_issuer.rb +2 -2
- data/lib/factpulse/models/report_period.rb +2 -2
- data/lib/factpulse/models/report_sender.rb +2 -2
- data/lib/factpulse/models/rounding_amount.rb +2 -2
- data/lib/factpulse/models/schematron_validation_error.rb +2 -2
- data/lib/factpulse/models/scheme_id.rb +2 -2
- data/lib/factpulse/models/search_flow_request.rb +2 -2
- data/lib/factpulse/models/search_flow_response.rb +2 -2
- data/lib/factpulse/models/search_services_response.rb +2 -2
- data/lib/factpulse/models/search_structure_request.rb +3 -3
- data/lib/factpulse/models/search_structure_response.rb +2 -2
- data/lib/factpulse/models/secret_status.rb +2 -2
- data/lib/factpulse/models/sellercountry.rb +2 -2
- data/lib/factpulse/models/signature_info.rb +2 -2
- data/lib/factpulse/models/signature_info_api.rb +2 -2
- data/lib/factpulse/models/signature_parameters.rb +2 -2
- data/lib/factpulse/models/signature_success_result.rb +394 -0
- data/lib/factpulse/models/signature_task_status.rb +223 -0
- data/lib/factpulse/models/signature_task_status_result.rb +55 -0
- data/lib/factpulse/models/simplified_cdar_response.rb +2 -2
- data/lib/factpulse/models/simplified_invoice_data.rb +2 -2
- data/lib/factpulse/models/status_code_info.rb +2 -2
- data/lib/factpulse/models/status_codes_response.rb +2 -2
- data/lib/factpulse/models/structure_info.rb +2 -2
- data/lib/factpulse/models/structure_parameters.rb +2 -2
- data/lib/factpulse/models/structure_service.rb +2 -2
- data/lib/factpulse/models/submission_mode.rb +2 -2
- data/lib/factpulse/models/submit_aggregated_report_request.rb +2 -2
- data/lib/factpulse/models/submit_cdar_request.rb +2 -2
- data/lib/factpulse/models/submit_cdar_response.rb +2 -2
- data/lib/factpulse/models/submit_cdarxml_request.rb +2 -2
- data/lib/factpulse/models/submit_complete_invoice_request.rb +2 -2
- data/lib/factpulse/models/submit_complete_invoice_response.rb +33 -4
- data/lib/factpulse/models/submit_e_reporting_request.rb +2 -2
- data/lib/factpulse/models/submit_e_reporting_response.rb +2 -2
- data/lib/factpulse/models/submit_flow_request.rb +2 -2
- data/lib/factpulse/models/submit_flow_response.rb +2 -2
- data/lib/factpulse/models/submit_gross_amount.rb +2 -2
- data/lib/factpulse/models/submit_invoice_request.rb +3 -3
- data/lib/factpulse/models/submit_invoice_response.rb +2 -2
- data/lib/factpulse/models/submit_net_amount.rb +2 -2
- data/lib/factpulse/models/submit_vat_amount.rb +2 -2
- data/lib/factpulse/models/supplementary_attachment.rb +2 -2
- data/lib/factpulse/models/supplier.rb +4 -18
- data/lib/factpulse/models/task_error_result.rb +257 -0
- data/lib/factpulse/models/task_response.rb +2 -2
- data/lib/factpulse/models/tax_breakdown_input.rb +2 -2
- data/lib/factpulse/models/tax_due_date_type.rb +2 -2
- data/lib/factpulse/models/tax_representative.rb +2 -2
- data/lib/factpulse/models/taxable_amount.rb +2 -2
- data/lib/factpulse/models/taxableamount.rb +2 -2
- data/lib/factpulse/models/taxamount.rb +2 -2
- data/lib/factpulse/models/taxamount1.rb +2 -2
- data/lib/factpulse/models/taxamount2.rb +2 -2
- data/lib/factpulse/models/taxexclusiveamount.rb +2 -2
- data/lib/factpulse/models/taxexclusiveamount1.rb +2 -2
- data/lib/factpulse/models/total_gross_amount.rb +2 -2
- data/lib/factpulse/models/total_net_amount.rb +2 -2
- data/lib/factpulse/models/total_vat_amount.rb +2 -2
- data/lib/factpulse/models/transaction_category.rb +2 -2
- data/lib/factpulse/models/transmission_type_code.rb +2 -2
- data/lib/factpulse/models/unit_net_price.rb +2 -2
- data/lib/factpulse/models/unit_of_measure.rb +17 -3
- data/lib/factpulse/models/validate_cdar_request.rb +2 -2
- data/lib/factpulse/models/validate_cdar_response.rb +4 -4
- data/lib/factpulse/models/validate_e_reporting_request.rb +2 -2
- data/lib/factpulse/models/validate_e_reporting_response.rb +2 -2
- data/lib/factpulse/models/validation_error.rb +2 -2
- data/lib/factpulse/models/validation_error_detail.rb +2 -2
- data/lib/factpulse/models/validation_error_response.rb +22 -69
- data/lib/factpulse/models/validation_info.rb +2 -2
- data/lib/factpulse/models/validation_success_response.rb +2 -2
- data/lib/factpulse/models/validation_success_task_result.rb +210 -0
- data/lib/factpulse/models/validation_task_status.rb +223 -0
- data/lib/factpulse/models/validation_task_status_result.rb +55 -0
- data/lib/factpulse/models/vat_accounting_code.rb +2 -2
- data/lib/factpulse/models/vat_amount.rb +2 -2
- data/lib/factpulse/models/vat_category.rb +2 -2
- data/lib/factpulse/models/vat_line.rb +2 -2
- data/lib/factpulse/models/vat_point_date_code.rb +2 -2
- data/lib/factpulse/models/vat_rate.rb +2 -2
- data/lib/factpulse/models/vatex_code_info.rb +247 -0
- data/lib/factpulse/models/vatex_codes_response.rb +204 -0
- data/lib/factpulse/models/verification_success_response.rb +2 -2
- data/lib/factpulse/models/verification_success_task_result.rb +210 -0
- data/lib/factpulse/models/verification_typed_task_status.rb +223 -0
- data/lib/factpulse/models/verification_typed_task_status_result.rb +55 -0
- data/lib/factpulse/models/verified_field_schema.rb +2 -2
- data/lib/factpulse/models/webhook_secret_delete_response.rb +2 -2
- data/lib/factpulse/models/webhook_secret_generate_response.rb +2 -2
- data/lib/factpulse/models/webhook_secret_status_response.rb +2 -2
- data/lib/factpulse/version.rb +3 -3
- data/lib/factpulse.rb +57 -24
- metadata +167 -101
- data/docs/AFNORAddressEdit.md +0 -30
- data/docs/AFNORAddressPatch.md +0 -30
- data/docs/AFNORAddressPut.md +0 -30
- data/docs/AFNORCreateDirectoryLineBody.md +0 -20
- data/docs/AFNORCreateDirectoryLineBodyAddressingInformation.md +0 -24
- data/docs/AFNORCreateDirectoryLineBodyPeriod.md +0 -20
- data/docs/AFNORCreateRoutingCodeBody.md +0 -32
- data/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodePlatform.md +0 -20
- data/docs/AFNORDirectoryLinePost201Response.md +0 -22
- data/docs/AFNORLegalUnitPayloadIncludedNoSiren.md +0 -22
- data/docs/AFNORRoutingCodePost201Response.md +0 -22
- data/docs/AFNORUpdatePatchDirectoryLineBody.md +0 -18
- data/docs/AFNORUpdatePatchRoutingCodeBody.md +0 -24
- data/docs/AFNORUpdatePutRoutingCodeBody.md +0 -24
- data/docs/AFNORWebhookCallbackContent.md +0 -18
- data/docs/FactureElectroniqueRestApiSchemasChorusProChorusProCredentials.md +0 -26
- data/docs/FactureElectroniqueRestApiSchemasValidationValidationErrorResponse.md +0 -18
- data/lib/factpulse/models/afnor_address_edit.rb +0 -353
- data/lib/factpulse/models/afnor_address_patch.rb +0 -386
- data/lib/factpulse/models/afnor_address_put.rb +0 -435
- data/lib/factpulse/models/afnor_create_directory_line_body.rb +0 -156
- data/lib/factpulse/models/afnor_create_directory_line_body_addressing_information.rb +0 -294
- data/lib/factpulse/models/afnor_create_directory_line_body_period.rb +0 -175
- data/lib/factpulse/models/afnor_create_routing_code_body.rb +0 -412
- data/lib/factpulse/models/afnor_diffusion_status.rb +0 -40
- data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb +0 -178
- data/lib/factpulse/models/afnor_directory_line_post201_response.rb +0 -187
- data/lib/factpulse/models/afnor_facility_nature.rb +0 -40
- data/lib/factpulse/models/afnor_legal_unit_payload_included_no_siren.rb +0 -207
- data/lib/factpulse/models/afnor_platform_status.rb +0 -40
- data/lib/factpulse/models/afnor_routing_code_post201_response.rb +0 -228
- data/lib/factpulse/models/afnor_update_patch_directory_line_body.rb +0 -148
- data/lib/factpulse/models/afnor_update_patch_routing_code_body.rb +0 -258
- data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +0 -289
- data/lib/factpulse/models/afnor_webhook_callback_content.rb +0 -148
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb +0 -259
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_validation_validation_error_response.rb +0 -168
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#FactPulse REST API
|
|
3
3
|
|
|
4
|
-
# REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄
|
|
4
|
+
# REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - **Formats**: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - **Profiles** (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - **UBL**: Always EN16931 compliant - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - **Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Factur-X - Validation - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ 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 ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - **CDAR Messages**: Acknowledgements, invoice statuses - **PPF Statuses**: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - **Tax Declarations**: International B2B, B2C - **Flow Types**: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - **Flow Service**: Submit and search flows to PDPs - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - **Public Sector Invoicing**: Complete API for Chorus Pro ### ⏳ Async Tasks - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **Webhooks**: Automatic notifications when tasks complete ## 🔒 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://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://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://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://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://factpulse.fr/api/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://factpulse.fr/documentation-api/
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: contact@factpulse.fr
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
|
-
Generator version: 7.
|
|
9
|
+
Generator version: 7.21.0-SNAPSHOT
|
|
10
10
|
|
|
11
11
|
=end
|
|
12
12
|
|
|
@@ -19,6 +19,126 @@ module FactPulse
|
|
|
19
19
|
def initialize(api_client = ApiClient.default)
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
22
|
+
# Create a webhook
|
|
23
|
+
# Register a new webhook subscription (AFNOR XP Z12-013 v1.2.0)
|
|
24
|
+
# @param [Hash] opts the optional parameters
|
|
25
|
+
# @return [Object]
|
|
26
|
+
def create_webhook_proxy_api_v1_afnor_flow_v1_webhooks_post(opts = {})
|
|
27
|
+
data, _status_code, _headers = create_webhook_proxy_api_v1_afnor_flow_v1_webhooks_post_with_http_info(opts)
|
|
28
|
+
data
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Create a webhook
|
|
32
|
+
# Register a new webhook subscription (AFNOR XP Z12-013 v1.2.0)
|
|
33
|
+
# @param [Hash] opts the optional parameters
|
|
34
|
+
# @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
|
|
35
|
+
def create_webhook_proxy_api_v1_afnor_flow_v1_webhooks_post_with_http_info(opts = {})
|
|
36
|
+
if @api_client.config.debugging
|
|
37
|
+
@api_client.config.logger.debug 'Calling API: AFNORPDPPAFlowServiceApi.create_webhook_proxy_api_v1_afnor_flow_v1_webhooks_post ...'
|
|
38
|
+
end
|
|
39
|
+
# resource path
|
|
40
|
+
local_var_path = '/api/v1/afnor/flow/v1/webhooks'
|
|
41
|
+
|
|
42
|
+
# query parameters
|
|
43
|
+
query_params = opts[:query_params] || {}
|
|
44
|
+
|
|
45
|
+
# header parameters
|
|
46
|
+
header_params = opts[:header_params] || {}
|
|
47
|
+
# HTTP header 'Accept' (if needed)
|
|
48
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
49
|
+
|
|
50
|
+
# form parameters
|
|
51
|
+
form_params = opts[:form_params] || {}
|
|
52
|
+
|
|
53
|
+
# http body (model)
|
|
54
|
+
post_body = opts[:debug_body]
|
|
55
|
+
|
|
56
|
+
# return_type
|
|
57
|
+
return_type = opts[:debug_return_type] || 'Object'
|
|
58
|
+
|
|
59
|
+
# auth_names
|
|
60
|
+
auth_names = opts[:debug_auth_names] || []
|
|
61
|
+
|
|
62
|
+
new_options = opts.merge(
|
|
63
|
+
:operation => :"AFNORPDPPAFlowServiceApi.create_webhook_proxy_api_v1_afnor_flow_v1_webhooks_post",
|
|
64
|
+
:header_params => header_params,
|
|
65
|
+
:query_params => query_params,
|
|
66
|
+
:form_params => form_params,
|
|
67
|
+
:body => post_body,
|
|
68
|
+
:auth_names => auth_names,
|
|
69
|
+
:return_type => return_type
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
|
|
73
|
+
if @api_client.config.debugging
|
|
74
|
+
@api_client.config.logger.debug "API called: AFNORPDPPAFlowServiceApi#create_webhook_proxy_api_v1_afnor_flow_v1_webhooks_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
75
|
+
end
|
|
76
|
+
return data, status_code, headers
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Delete a webhook
|
|
80
|
+
# Delete a webhook subscription (AFNOR XP Z12-013 v1.2.0)
|
|
81
|
+
# @param webhook_uid [String] Webhook unique identifier (UUID)
|
|
82
|
+
# @param [Hash] opts the optional parameters
|
|
83
|
+
# @return [Object]
|
|
84
|
+
def delete_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_delete(webhook_uid, opts = {})
|
|
85
|
+
data, _status_code, _headers = delete_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_delete_with_http_info(webhook_uid, opts)
|
|
86
|
+
data
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Delete a webhook
|
|
90
|
+
# Delete a webhook subscription (AFNOR XP Z12-013 v1.2.0)
|
|
91
|
+
# @param webhook_uid [String] Webhook unique identifier (UUID)
|
|
92
|
+
# @param [Hash] opts the optional parameters
|
|
93
|
+
# @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
|
|
94
|
+
def delete_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_delete_with_http_info(webhook_uid, opts = {})
|
|
95
|
+
if @api_client.config.debugging
|
|
96
|
+
@api_client.config.logger.debug 'Calling API: AFNORPDPPAFlowServiceApi.delete_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_delete ...'
|
|
97
|
+
end
|
|
98
|
+
# verify the required parameter 'webhook_uid' is set
|
|
99
|
+
if @api_client.config.client_side_validation && webhook_uid.nil?
|
|
100
|
+
fail ArgumentError, "Missing the required parameter 'webhook_uid' when calling AFNORPDPPAFlowServiceApi.delete_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_delete"
|
|
101
|
+
end
|
|
102
|
+
# resource path
|
|
103
|
+
local_var_path = '/api/v1/afnor/flow/v1/webhooks/{webhookUid}'.sub('{' + 'webhookUid' + '}', CGI.escape(webhook_uid.to_s))
|
|
104
|
+
|
|
105
|
+
# query parameters
|
|
106
|
+
query_params = opts[:query_params] || {}
|
|
107
|
+
|
|
108
|
+
# header parameters
|
|
109
|
+
header_params = opts[:header_params] || {}
|
|
110
|
+
# HTTP header 'Accept' (if needed)
|
|
111
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
112
|
+
|
|
113
|
+
# form parameters
|
|
114
|
+
form_params = opts[:form_params] || {}
|
|
115
|
+
|
|
116
|
+
# http body (model)
|
|
117
|
+
post_body = opts[:debug_body]
|
|
118
|
+
|
|
119
|
+
# return_type
|
|
120
|
+
return_type = opts[:debug_return_type] || 'Object'
|
|
121
|
+
|
|
122
|
+
# auth_names
|
|
123
|
+
auth_names = opts[:debug_auth_names] || []
|
|
124
|
+
|
|
125
|
+
new_options = opts.merge(
|
|
126
|
+
:operation => :"AFNORPDPPAFlowServiceApi.delete_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_delete",
|
|
127
|
+
:header_params => header_params,
|
|
128
|
+
:query_params => query_params,
|
|
129
|
+
:form_params => form_params,
|
|
130
|
+
:body => post_body,
|
|
131
|
+
:auth_names => auth_names,
|
|
132
|
+
:return_type => return_type
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
|
|
136
|
+
if @api_client.config.debugging
|
|
137
|
+
@api_client.config.logger.debug "API called: AFNORPDPPAFlowServiceApi#delete_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
138
|
+
end
|
|
139
|
+
return data, status_code, headers
|
|
140
|
+
end
|
|
141
|
+
|
|
22
142
|
# Download a flow
|
|
23
143
|
# Download a file related to a given flow (AFNOR XP Z12-013 compliant): - Metadata [Default]: provides the flow metadata as JSON - Original: the document initially sent by the emitter - Converted: the document optionally converted by the system - ReadableView: the document optionally generated as readable file
|
|
24
144
|
# @param flow_id [String] AFNOR flow identifier (UUID)
|
|
@@ -142,6 +262,126 @@ module FactPulse
|
|
|
142
262
|
return data, status_code, headers
|
|
143
263
|
end
|
|
144
264
|
|
|
265
|
+
# Get a webhook
|
|
266
|
+
# Get details of a specific webhook (AFNOR XP Z12-013 v1.2.0)
|
|
267
|
+
# @param webhook_uid [String] Webhook unique identifier (UUID)
|
|
268
|
+
# @param [Hash] opts the optional parameters
|
|
269
|
+
# @return [AFNORWebhook]
|
|
270
|
+
def get_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_get(webhook_uid, opts = {})
|
|
271
|
+
data, _status_code, _headers = get_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_get_with_http_info(webhook_uid, opts)
|
|
272
|
+
data
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
# Get a webhook
|
|
276
|
+
# Get details of a specific webhook (AFNOR XP Z12-013 v1.2.0)
|
|
277
|
+
# @param webhook_uid [String] Webhook unique identifier (UUID)
|
|
278
|
+
# @param [Hash] opts the optional parameters
|
|
279
|
+
# @return [Array<(AFNORWebhook, Integer, Hash)>] AFNORWebhook data, response status code and response headers
|
|
280
|
+
def get_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_get_with_http_info(webhook_uid, opts = {})
|
|
281
|
+
if @api_client.config.debugging
|
|
282
|
+
@api_client.config.logger.debug 'Calling API: AFNORPDPPAFlowServiceApi.get_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_get ...'
|
|
283
|
+
end
|
|
284
|
+
# verify the required parameter 'webhook_uid' is set
|
|
285
|
+
if @api_client.config.client_side_validation && webhook_uid.nil?
|
|
286
|
+
fail ArgumentError, "Missing the required parameter 'webhook_uid' when calling AFNORPDPPAFlowServiceApi.get_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_get"
|
|
287
|
+
end
|
|
288
|
+
# resource path
|
|
289
|
+
local_var_path = '/api/v1/afnor/flow/v1/webhooks/{webhookUid}'.sub('{' + 'webhookUid' + '}', CGI.escape(webhook_uid.to_s))
|
|
290
|
+
|
|
291
|
+
# query parameters
|
|
292
|
+
query_params = opts[:query_params] || {}
|
|
293
|
+
|
|
294
|
+
# header parameters
|
|
295
|
+
header_params = opts[:header_params] || {}
|
|
296
|
+
# HTTP header 'Accept' (if needed)
|
|
297
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
298
|
+
|
|
299
|
+
# form parameters
|
|
300
|
+
form_params = opts[:form_params] || {}
|
|
301
|
+
|
|
302
|
+
# http body (model)
|
|
303
|
+
post_body = opts[:debug_body]
|
|
304
|
+
|
|
305
|
+
# return_type
|
|
306
|
+
return_type = opts[:debug_return_type] || 'AFNORWebhook'
|
|
307
|
+
|
|
308
|
+
# auth_names
|
|
309
|
+
auth_names = opts[:debug_auth_names] || []
|
|
310
|
+
|
|
311
|
+
new_options = opts.merge(
|
|
312
|
+
:operation => :"AFNORPDPPAFlowServiceApi.get_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_get",
|
|
313
|
+
:header_params => header_params,
|
|
314
|
+
:query_params => query_params,
|
|
315
|
+
:form_params => form_params,
|
|
316
|
+
:body => post_body,
|
|
317
|
+
:auth_names => auth_names,
|
|
318
|
+
:return_type => return_type
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
322
|
+
if @api_client.config.debugging
|
|
323
|
+
@api_client.config.logger.debug "API called: AFNORPDPPAFlowServiceApi#get_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
324
|
+
end
|
|
325
|
+
return data, status_code, headers
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
# List webhooks
|
|
329
|
+
# List all registered webhooks (AFNOR XP Z12-013 v1.2.0)
|
|
330
|
+
# @param [Hash] opts the optional parameters
|
|
331
|
+
# @return [Array<AFNORWebhook>]
|
|
332
|
+
def list_webhooks_proxy_api_v1_afnor_flow_v1_webhooks_get(opts = {})
|
|
333
|
+
data, _status_code, _headers = list_webhooks_proxy_api_v1_afnor_flow_v1_webhooks_get_with_http_info(opts)
|
|
334
|
+
data
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
# List webhooks
|
|
338
|
+
# List all registered webhooks (AFNOR XP Z12-013 v1.2.0)
|
|
339
|
+
# @param [Hash] opts the optional parameters
|
|
340
|
+
# @return [Array<(Array<AFNORWebhook>, Integer, Hash)>] Array<AFNORWebhook> data, response status code and response headers
|
|
341
|
+
def list_webhooks_proxy_api_v1_afnor_flow_v1_webhooks_get_with_http_info(opts = {})
|
|
342
|
+
if @api_client.config.debugging
|
|
343
|
+
@api_client.config.logger.debug 'Calling API: AFNORPDPPAFlowServiceApi.list_webhooks_proxy_api_v1_afnor_flow_v1_webhooks_get ...'
|
|
344
|
+
end
|
|
345
|
+
# resource path
|
|
346
|
+
local_var_path = '/api/v1/afnor/flow/v1/webhooks'
|
|
347
|
+
|
|
348
|
+
# query parameters
|
|
349
|
+
query_params = opts[:query_params] || {}
|
|
350
|
+
|
|
351
|
+
# header parameters
|
|
352
|
+
header_params = opts[:header_params] || {}
|
|
353
|
+
# HTTP header 'Accept' (if needed)
|
|
354
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
355
|
+
|
|
356
|
+
# form parameters
|
|
357
|
+
form_params = opts[:form_params] || {}
|
|
358
|
+
|
|
359
|
+
# http body (model)
|
|
360
|
+
post_body = opts[:debug_body]
|
|
361
|
+
|
|
362
|
+
# return_type
|
|
363
|
+
return_type = opts[:debug_return_type] || 'Array<AFNORWebhook>'
|
|
364
|
+
|
|
365
|
+
# auth_names
|
|
366
|
+
auth_names = opts[:debug_auth_names] || []
|
|
367
|
+
|
|
368
|
+
new_options = opts.merge(
|
|
369
|
+
:operation => :"AFNORPDPPAFlowServiceApi.list_webhooks_proxy_api_v1_afnor_flow_v1_webhooks_get",
|
|
370
|
+
:header_params => header_params,
|
|
371
|
+
:query_params => query_params,
|
|
372
|
+
:form_params => form_params,
|
|
373
|
+
:body => post_body,
|
|
374
|
+
:auth_names => auth_names,
|
|
375
|
+
:return_type => return_type
|
|
376
|
+
)
|
|
377
|
+
|
|
378
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
379
|
+
if @api_client.config.debugging
|
|
380
|
+
@api_client.config.logger.debug "API called: AFNORPDPPAFlowServiceApi#list_webhooks_proxy_api_v1_afnor_flow_v1_webhooks_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
381
|
+
end
|
|
382
|
+
return data, status_code, headers
|
|
383
|
+
end
|
|
384
|
+
|
|
145
385
|
# Search flows
|
|
146
386
|
# Search invoicing flows by criteria (AFNOR XP Z12-013 compliant)
|
|
147
387
|
# @param afnor_search_flow_params [AFNORSearchFlowParams]
|
|
@@ -285,5 +525,68 @@ module FactPulse
|
|
|
285
525
|
end
|
|
286
526
|
return data, status_code, headers
|
|
287
527
|
end
|
|
528
|
+
|
|
529
|
+
# Update a webhook
|
|
530
|
+
# Partially update a webhook subscription (AFNOR XP Z12-013 v1.2.0)
|
|
531
|
+
# @param webhook_uid [String] Webhook unique identifier (UUID)
|
|
532
|
+
# @param [Hash] opts the optional parameters
|
|
533
|
+
# @return [AFNORWebhook]
|
|
534
|
+
def update_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_patch(webhook_uid, opts = {})
|
|
535
|
+
data, _status_code, _headers = update_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_patch_with_http_info(webhook_uid, opts)
|
|
536
|
+
data
|
|
537
|
+
end
|
|
538
|
+
|
|
539
|
+
# Update a webhook
|
|
540
|
+
# Partially update a webhook subscription (AFNOR XP Z12-013 v1.2.0)
|
|
541
|
+
# @param webhook_uid [String] Webhook unique identifier (UUID)
|
|
542
|
+
# @param [Hash] opts the optional parameters
|
|
543
|
+
# @return [Array<(AFNORWebhook, Integer, Hash)>] AFNORWebhook data, response status code and response headers
|
|
544
|
+
def update_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_patch_with_http_info(webhook_uid, opts = {})
|
|
545
|
+
if @api_client.config.debugging
|
|
546
|
+
@api_client.config.logger.debug 'Calling API: AFNORPDPPAFlowServiceApi.update_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_patch ...'
|
|
547
|
+
end
|
|
548
|
+
# verify the required parameter 'webhook_uid' is set
|
|
549
|
+
if @api_client.config.client_side_validation && webhook_uid.nil?
|
|
550
|
+
fail ArgumentError, "Missing the required parameter 'webhook_uid' when calling AFNORPDPPAFlowServiceApi.update_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_patch"
|
|
551
|
+
end
|
|
552
|
+
# resource path
|
|
553
|
+
local_var_path = '/api/v1/afnor/flow/v1/webhooks/{webhookUid}'.sub('{' + 'webhookUid' + '}', CGI.escape(webhook_uid.to_s))
|
|
554
|
+
|
|
555
|
+
# query parameters
|
|
556
|
+
query_params = opts[:query_params] || {}
|
|
557
|
+
|
|
558
|
+
# header parameters
|
|
559
|
+
header_params = opts[:header_params] || {}
|
|
560
|
+
# HTTP header 'Accept' (if needed)
|
|
561
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
562
|
+
|
|
563
|
+
# form parameters
|
|
564
|
+
form_params = opts[:form_params] || {}
|
|
565
|
+
|
|
566
|
+
# http body (model)
|
|
567
|
+
post_body = opts[:debug_body]
|
|
568
|
+
|
|
569
|
+
# return_type
|
|
570
|
+
return_type = opts[:debug_return_type] || 'AFNORWebhook'
|
|
571
|
+
|
|
572
|
+
# auth_names
|
|
573
|
+
auth_names = opts[:debug_auth_names] || []
|
|
574
|
+
|
|
575
|
+
new_options = opts.merge(
|
|
576
|
+
:operation => :"AFNORPDPPAFlowServiceApi.update_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_patch",
|
|
577
|
+
:header_params => header_params,
|
|
578
|
+
:query_params => query_params,
|
|
579
|
+
:form_params => form_params,
|
|
580
|
+
:body => post_body,
|
|
581
|
+
:auth_names => auth_names,
|
|
582
|
+
:return_type => return_type
|
|
583
|
+
)
|
|
584
|
+
|
|
585
|
+
data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
|
|
586
|
+
if @api_client.config.debugging
|
|
587
|
+
@api_client.config.logger.debug "API called: AFNORPDPPAFlowServiceApi#update_webhook_proxy_api_v1_afnor_flow_v1_webhooks_webhook_uid_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
588
|
+
end
|
|
589
|
+
return data, status_code, headers
|
|
590
|
+
end
|
|
288
591
|
end
|
|
289
592
|
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#FactPulse REST API
|
|
3
3
|
|
|
4
|
-
# REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄
|
|
4
|
+
# REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - **Formats**: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - **Profiles** (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - **UBL**: Always EN16931 compliant - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - **Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Factur-X - Validation - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ 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 ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - **CDAR Messages**: Acknowledgements, invoice statuses - **PPF Statuses**: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - **Tax Declarations**: International B2B, B2C - **Flow Types**: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - **Flow Service**: Submit and search flows to PDPs - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - **Public Sector Invoicing**: Complete API for Chorus Pro ### ⏳ Async Tasks - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **Webhooks**: Automatic notifications when tasks complete ## 🔒 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://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://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://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://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://factpulse.fr/api/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://factpulse.fr/documentation-api/
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: contact@factpulse.fr
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
|
-
Generator version: 7.
|
|
9
|
+
Generator version: 7.21.0-SNAPSHOT
|
|
10
10
|
|
|
11
11
|
=end
|
|
12
12
|
|
|
@@ -19,6 +19,132 @@ module FactPulse
|
|
|
19
19
|
def initialize(api_client = ApiClient.default)
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
22
|
+
# Get typed generation task status
|
|
23
|
+
# Typed status endpoint for invoice generation tasks. Returns a strongly-typed `result` (discriminated on `result.status`): - **SUCCESS**: `GenerationSuccessResult` with `content_b64` / `xml_content` - **ERROR**: `TaskErrorResult` in AFNOR format
|
|
24
|
+
# @param task_id [String] Celery task ID returned by /generate-invoice
|
|
25
|
+
# @param [Hash] opts the optional parameters
|
|
26
|
+
# @return [GenerationTaskStatus]
|
|
27
|
+
def get_generation_task_status_api_v1_processing_tasks_task_id_generation_status_get(task_id, opts = {})
|
|
28
|
+
data, _status_code, _headers = get_generation_task_status_api_v1_processing_tasks_task_id_generation_status_get_with_http_info(task_id, opts)
|
|
29
|
+
data
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Get typed generation task status
|
|
33
|
+
# Typed status endpoint for invoice generation tasks. Returns a strongly-typed `result` (discriminated on `result.status`): - **SUCCESS**: `GenerationSuccessResult` with `content_b64` / `xml_content` - **ERROR**: `TaskErrorResult` in AFNOR format
|
|
34
|
+
# @param task_id [String] Celery task ID returned by /generate-invoice
|
|
35
|
+
# @param [Hash] opts the optional parameters
|
|
36
|
+
# @return [Array<(GenerationTaskStatus, Integer, Hash)>] GenerationTaskStatus data, response status code and response headers
|
|
37
|
+
def get_generation_task_status_api_v1_processing_tasks_task_id_generation_status_get_with_http_info(task_id, opts = {})
|
|
38
|
+
if @api_client.config.debugging
|
|
39
|
+
@api_client.config.logger.debug 'Calling API: AsyncTasksApi.get_generation_task_status_api_v1_processing_tasks_task_id_generation_status_get ...'
|
|
40
|
+
end
|
|
41
|
+
# verify the required parameter 'task_id' is set
|
|
42
|
+
if @api_client.config.client_side_validation && task_id.nil?
|
|
43
|
+
fail ArgumentError, "Missing the required parameter 'task_id' when calling AsyncTasksApi.get_generation_task_status_api_v1_processing_tasks_task_id_generation_status_get"
|
|
44
|
+
end
|
|
45
|
+
# resource path
|
|
46
|
+
local_var_path = '/api/v1/processing/tasks/{task_id}/generation-status'.sub('{' + 'task_id' + '}', CGI.escape(task_id.to_s))
|
|
47
|
+
|
|
48
|
+
# query parameters
|
|
49
|
+
query_params = opts[:query_params] || {}
|
|
50
|
+
|
|
51
|
+
# header parameters
|
|
52
|
+
header_params = opts[:header_params] || {}
|
|
53
|
+
# HTTP header 'Accept' (if needed)
|
|
54
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
55
|
+
|
|
56
|
+
# form parameters
|
|
57
|
+
form_params = opts[:form_params] || {}
|
|
58
|
+
|
|
59
|
+
# http body (model)
|
|
60
|
+
post_body = opts[:debug_body]
|
|
61
|
+
|
|
62
|
+
# return_type
|
|
63
|
+
return_type = opts[:debug_return_type] || 'GenerationTaskStatus'
|
|
64
|
+
|
|
65
|
+
# auth_names
|
|
66
|
+
auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
|
|
67
|
+
|
|
68
|
+
new_options = opts.merge(
|
|
69
|
+
:operation => :"AsyncTasksApi.get_generation_task_status_api_v1_processing_tasks_task_id_generation_status_get",
|
|
70
|
+
:header_params => header_params,
|
|
71
|
+
:query_params => query_params,
|
|
72
|
+
:form_params => form_params,
|
|
73
|
+
:body => post_body,
|
|
74
|
+
:auth_names => auth_names,
|
|
75
|
+
:return_type => return_type
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
79
|
+
if @api_client.config.debugging
|
|
80
|
+
@api_client.config.logger.debug "API called: AsyncTasksApi#get_generation_task_status_api_v1_processing_tasks_task_id_generation_status_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
81
|
+
end
|
|
82
|
+
return data, status_code, headers
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Get typed signature task status
|
|
86
|
+
# Typed status endpoint for PDF signing tasks. Returns a strongly-typed `result` (discriminated on `result.status`): - **SUCCESS**: `SignatureSuccessResult` with `content_b64`, `signer_cn`, etc. - **ERROR**: `TaskErrorResult` in AFNOR format
|
|
87
|
+
# @param task_id [String] Celery task ID returned by /sign-pdf-async
|
|
88
|
+
# @param [Hash] opts the optional parameters
|
|
89
|
+
# @return [SignatureTaskStatus]
|
|
90
|
+
def get_signature_task_status_api_v1_processing_tasks_task_id_signature_status_get(task_id, opts = {})
|
|
91
|
+
data, _status_code, _headers = get_signature_task_status_api_v1_processing_tasks_task_id_signature_status_get_with_http_info(task_id, opts)
|
|
92
|
+
data
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Get typed signature task status
|
|
96
|
+
# Typed status endpoint for PDF signing tasks. Returns a strongly-typed `result` (discriminated on `result.status`): - **SUCCESS**: `SignatureSuccessResult` with `content_b64`, `signer_cn`, etc. - **ERROR**: `TaskErrorResult` in AFNOR format
|
|
97
|
+
# @param task_id [String] Celery task ID returned by /sign-pdf-async
|
|
98
|
+
# @param [Hash] opts the optional parameters
|
|
99
|
+
# @return [Array<(SignatureTaskStatus, Integer, Hash)>] SignatureTaskStatus data, response status code and response headers
|
|
100
|
+
def get_signature_task_status_api_v1_processing_tasks_task_id_signature_status_get_with_http_info(task_id, opts = {})
|
|
101
|
+
if @api_client.config.debugging
|
|
102
|
+
@api_client.config.logger.debug 'Calling API: AsyncTasksApi.get_signature_task_status_api_v1_processing_tasks_task_id_signature_status_get ...'
|
|
103
|
+
end
|
|
104
|
+
# verify the required parameter 'task_id' is set
|
|
105
|
+
if @api_client.config.client_side_validation && task_id.nil?
|
|
106
|
+
fail ArgumentError, "Missing the required parameter 'task_id' when calling AsyncTasksApi.get_signature_task_status_api_v1_processing_tasks_task_id_signature_status_get"
|
|
107
|
+
end
|
|
108
|
+
# resource path
|
|
109
|
+
local_var_path = '/api/v1/processing/tasks/{task_id}/signature-status'.sub('{' + 'task_id' + '}', CGI.escape(task_id.to_s))
|
|
110
|
+
|
|
111
|
+
# query parameters
|
|
112
|
+
query_params = opts[:query_params] || {}
|
|
113
|
+
|
|
114
|
+
# header parameters
|
|
115
|
+
header_params = opts[:header_params] || {}
|
|
116
|
+
# HTTP header 'Accept' (if needed)
|
|
117
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
118
|
+
|
|
119
|
+
# form parameters
|
|
120
|
+
form_params = opts[:form_params] || {}
|
|
121
|
+
|
|
122
|
+
# http body (model)
|
|
123
|
+
post_body = opts[:debug_body]
|
|
124
|
+
|
|
125
|
+
# return_type
|
|
126
|
+
return_type = opts[:debug_return_type] || 'SignatureTaskStatus'
|
|
127
|
+
|
|
128
|
+
# auth_names
|
|
129
|
+
auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
|
|
130
|
+
|
|
131
|
+
new_options = opts.merge(
|
|
132
|
+
:operation => :"AsyncTasksApi.get_signature_task_status_api_v1_processing_tasks_task_id_signature_status_get",
|
|
133
|
+
:header_params => header_params,
|
|
134
|
+
:query_params => query_params,
|
|
135
|
+
:form_params => form_params,
|
|
136
|
+
:body => post_body,
|
|
137
|
+
:auth_names => auth_names,
|
|
138
|
+
:return_type => return_type
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
142
|
+
if @api_client.config.debugging
|
|
143
|
+
@api_client.config.logger.debug "API called: AsyncTasksApi#get_signature_task_status_api_v1_processing_tasks_task_id_signature_status_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
144
|
+
end
|
|
145
|
+
return data, status_code, headers
|
|
146
|
+
end
|
|
147
|
+
|
|
22
148
|
# Get task generation status
|
|
23
149
|
# 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`.
|
|
24
150
|
# @param task_id [String] Celery task ID returned by async endpoints (UUID format)
|
|
@@ -81,5 +207,68 @@ module FactPulse
|
|
|
81
207
|
end
|
|
82
208
|
return data, status_code, headers
|
|
83
209
|
end
|
|
210
|
+
|
|
211
|
+
# Get typed validation task status
|
|
212
|
+
# Typed status endpoint for Factur-X PDF validation tasks. Returns a strongly-typed `result` (discriminated on `result.status`): - **SUCCESS**: `ValidationSuccessTaskResult` with `validation_result` - **ERROR**: `TaskErrorResult` in AFNOR format
|
|
213
|
+
# @param task_id [String] Celery task ID returned by /validate-pdf
|
|
214
|
+
# @param [Hash] opts the optional parameters
|
|
215
|
+
# @return [ValidationTaskStatus]
|
|
216
|
+
def get_validation_task_status_api_v1_processing_tasks_task_id_validation_status_get(task_id, opts = {})
|
|
217
|
+
data, _status_code, _headers = get_validation_task_status_api_v1_processing_tasks_task_id_validation_status_get_with_http_info(task_id, opts)
|
|
218
|
+
data
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
# Get typed validation task status
|
|
222
|
+
# Typed status endpoint for Factur-X PDF validation tasks. Returns a strongly-typed `result` (discriminated on `result.status`): - **SUCCESS**: `ValidationSuccessTaskResult` with `validation_result` - **ERROR**: `TaskErrorResult` in AFNOR format
|
|
223
|
+
# @param task_id [String] Celery task ID returned by /validate-pdf
|
|
224
|
+
# @param [Hash] opts the optional parameters
|
|
225
|
+
# @return [Array<(ValidationTaskStatus, Integer, Hash)>] ValidationTaskStatus data, response status code and response headers
|
|
226
|
+
def get_validation_task_status_api_v1_processing_tasks_task_id_validation_status_get_with_http_info(task_id, opts = {})
|
|
227
|
+
if @api_client.config.debugging
|
|
228
|
+
@api_client.config.logger.debug 'Calling API: AsyncTasksApi.get_validation_task_status_api_v1_processing_tasks_task_id_validation_status_get ...'
|
|
229
|
+
end
|
|
230
|
+
# verify the required parameter 'task_id' is set
|
|
231
|
+
if @api_client.config.client_side_validation && task_id.nil?
|
|
232
|
+
fail ArgumentError, "Missing the required parameter 'task_id' when calling AsyncTasksApi.get_validation_task_status_api_v1_processing_tasks_task_id_validation_status_get"
|
|
233
|
+
end
|
|
234
|
+
# resource path
|
|
235
|
+
local_var_path = '/api/v1/processing/tasks/{task_id}/validation-status'.sub('{' + 'task_id' + '}', CGI.escape(task_id.to_s))
|
|
236
|
+
|
|
237
|
+
# query parameters
|
|
238
|
+
query_params = opts[:query_params] || {}
|
|
239
|
+
|
|
240
|
+
# header parameters
|
|
241
|
+
header_params = opts[:header_params] || {}
|
|
242
|
+
# HTTP header 'Accept' (if needed)
|
|
243
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
244
|
+
|
|
245
|
+
# form parameters
|
|
246
|
+
form_params = opts[:form_params] || {}
|
|
247
|
+
|
|
248
|
+
# http body (model)
|
|
249
|
+
post_body = opts[:debug_body]
|
|
250
|
+
|
|
251
|
+
# return_type
|
|
252
|
+
return_type = opts[:debug_return_type] || 'ValidationTaskStatus'
|
|
253
|
+
|
|
254
|
+
# auth_names
|
|
255
|
+
auth_names = opts[:debug_auth_names] || ['APIKeyHeader', 'HTTPBearer']
|
|
256
|
+
|
|
257
|
+
new_options = opts.merge(
|
|
258
|
+
:operation => :"AsyncTasksApi.get_validation_task_status_api_v1_processing_tasks_task_id_validation_status_get",
|
|
259
|
+
:header_params => header_params,
|
|
260
|
+
:query_params => query_params,
|
|
261
|
+
:form_params => form_params,
|
|
262
|
+
:body => post_body,
|
|
263
|
+
:auth_names => auth_names,
|
|
264
|
+
:return_type => return_type
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
268
|
+
if @api_client.config.debugging
|
|
269
|
+
@api_client.config.logger.debug "API called: AsyncTasksApi#get_validation_task_status_api_v1_processing_tasks_task_id_validation_status_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
270
|
+
end
|
|
271
|
+
return data, status_code, headers
|
|
272
|
+
end
|
|
84
273
|
end
|
|
85
274
|
end
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
#FactPulse REST API
|
|
3
3
|
|
|
4
|
-
# REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄
|
|
4
|
+
# REST API for electronic invoicing in France: Factur-X (CII), UBL 2.1, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Invoice Generation - **Formats**: CII XML, UBL 2.1 XML, or Factur-X PDF/A-3 - **Profiles** (CII/PDF): MINIMUM, BASIC, EN16931, EXTENDED - **UBL**: Always EN16931 compliant - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT), UBL 2.1 (OASIS) - **Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Factur-X - Validation - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) ### ✍️ 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 ### 📋 Flux 6 - Invoice Lifecycle (CDAR) - **CDAR Messages**: Acknowledgements, invoice statuses - **PPF Statuses**: REFUSED (210), PAID (212) ### 📊 Flux 10 - E-Reporting - **Tax Declarations**: International B2B, B2C - **Flow Types**: 10.1 (B2B transactions), 10.2 (B2B payments), 10.3 (B2C transactions), 10.4 (B2C payments) ### 📡 AFNOR PDP/PA (XP Z12-013) - **Flow Service**: Submit and search flows to PDPs - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user ### 🏛️ Chorus Pro - **Public Sector Invoicing**: Complete API for Chorus Pro ### ⏳ Async Tasks - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **Webhooks**: Automatic notifications when tasks complete ## 🔒 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://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://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://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://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://factpulse.fr/api/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://factpulse.fr/documentation-api/
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
|
7
7
|
Contact: contact@factpulse.fr
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
|
-
Generator version: 7.
|
|
9
|
+
Generator version: 7.21.0-SNAPSHOT
|
|
10
10
|
|
|
11
11
|
=end
|
|
12
12
|
|