factpulse 4.0.2 → 4.1.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 +3 -3
- data/README.md +12 -0
- data/docs/AFNORErrorDetail.md +26 -0
- data/docs/AFNORPDPPAApi.md +9 -2
- data/docs/AsyncTasksApi.md +231 -1
- data/docs/ChorusProApi.md +96 -16
- data/docs/ClientManagementApi.md +371 -25
- 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/ConvertResumeRequest.md +5 -1
- data/docs/DownloadsApi.md +16 -6
- data/docs/ElectronicSignatureApi.md +24 -4
- data/docs/FacturXConversionApi.md +176 -4
- data/docs/FacturXInvoice.md +1 -1
- data/docs/FacturXPDFXMLVerificationApi.md +93 -3
- data/docs/FacturXValidationApi.md +12 -78
- data/docs/FactureElectroniqueModelsInvoiceTypeCode.md +15 -0
- data/docs/FactureElectroniqueRestApiSchemasValidationValidationErrorResponse.md +18 -0
- data/docs/Flux10EReportingApi.md +36 -6
- data/docs/Flux6InvoiceLifecycleCDARApi.md +100 -3
- data/docs/GenerationSuccessResult.md +24 -0
- data/docs/GenerationTaskStatus.md +22 -0
- data/docs/GenerationTaskStatusResult.md +79 -0
- data/docs/HealthApi.md +6 -125
- data/docs/{FacturXGenerationApi.md → InvoiceGenerationApi.md} +39 -24
- data/docs/InvoiceInput.md +1 -1
- data/docs/InvoiceLifecycle.md +24 -0
- data/docs/InvoicingFramework.md +1 -1
- data/docs/KeyRotationRequest.md +20 -0
- data/docs/KeyRotationResponse.md +24 -0
- data/docs/LifecycleEvent.md +38 -0
- data/docs/LifecycleResponse.md +22 -0
- data/docs/PDPConfigResponse.md +2 -0
- data/docs/PDPConfigUpdateRequest.md +3 -1
- data/docs/ParseApi.md +161 -0
- data/docs/ParseFacturXResponse.md +26 -0
- data/docs/ReferencesApi.md +74 -0
- data/docs/SecretStatus.md +5 -1
- data/docs/SignatureSuccessResult.md +34 -0
- data/docs/SignatureTaskStatus.md +22 -0
- data/docs/SignatureTaskStatusResult.md +79 -0
- data/docs/SimplifiedInvoiceData.md +1 -1
- data/docs/SubmitCompleteInvoiceResponse.md +3 -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 +8 -2
- 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/docs/WebhookSecretDeleteResponse.md +20 -0
- data/docs/WebhookSecretGenerateResponse.md +24 -0
- data/docs/WebhookSecretStatusResponse.md +20 -0
- data/factpulse.gemspec +3 -3
- data/lib/factpulse/api/afnorpdppa_api.rb +6 -3
- data/lib/factpulse/api/afnorpdppa_directory_service_api.rb +2 -2
- data/lib/factpulse/api/afnorpdppa_flow_service_api.rb +2 -2
- data/lib/factpulse/api/async_tasks_api.rb +192 -3
- data/lib/factpulse/api/chorus_pro_api.rb +18 -18
- data/lib/factpulse/api/client_management_api.rb +290 -24
- data/lib/factpulse/api/downloads_api.rb +8 -8
- data/lib/factpulse/api/electronic_signature_api.rb +6 -6
- data/lib/factpulse/api/factur_x_conversion_api.rb +143 -6
- data/lib/factpulse/api/factur_x_validation_api.rb +4 -79
- data/lib/factpulse/api/factur_xpdfxml_verification_api.rb +68 -5
- data/lib/factpulse/api/flux10_e_reporting_api.rb +8 -8
- data/lib/factpulse/api/flux6_invoice_lifecycle_cdar_api.rb +88 -5
- data/lib/factpulse/api/health_api.rb +3 -117
- data/lib/factpulse/api/{factur_x_generation_api.rb → invoice_generation_api.rb} +26 -26
- 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 +9 -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_edit.rb +2 -2
- data/lib/factpulse/models/afnor_address_patch.rb +2 -2
- data/lib/factpulse/models/afnor_address_put.rb +2 -2
- data/lib/factpulse/models/afnor_address_read.rb +2 -2
- data/lib/factpulse/models/afnor_algorithm.rb +2 -2
- data/lib/factpulse/models/afnor_contains_operator.rb +2 -2
- data/lib/factpulse/models/afnor_create_directory_line_body.rb +2 -2
- data/lib/factpulse/models/afnor_create_directory_line_body_addressing_information.rb +2 -2
- data/lib/factpulse/models/afnor_create_directory_line_body_period.rb +2 -2
- data/lib/factpulse/models/afnor_create_routing_code_body.rb +2 -2
- data/lib/factpulse/models/afnor_credentials.rb +2 -2
- data/lib/factpulse/models/afnor_destination.rb +2 -2
- data/lib/factpulse/models/afnor_diffusion_status.rb +2 -2
- data/lib/factpulse/models/afnor_directory_line_field.rb +2 -2
- data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.rb +2 -2
- data/lib/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.rb +2 -2
- 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_post201_response.rb +2 -2
- data/lib/factpulse/models/afnor_directory_line_search_post200_response.rb +2 -2
- data/lib/factpulse/models/afnor_entity_type.rb +2 -2
- data/lib/factpulse/models/afnor_error.rb +2 -2
- 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_nature.rb +2 -2
- data/lib/factpulse/models/afnor_facility_payload_history.rb +2 -2
- data/lib/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.rb +2 -2
- data/lib/factpulse/models/afnor_facility_payload_included.rb +2 -2
- data/lib/factpulse/models/afnor_facility_type.rb +2 -2
- data/lib/factpulse/models/afnor_flow.rb +2 -2
- 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_info.rb +2 -2
- 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 +2 -2
- 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 +2 -2
- data/lib/factpulse/models/afnor_legal_unit_payload_included.rb +2 -2
- data/lib/factpulse/models/afnor_legal_unit_payload_included_no_siren.rb +2 -2
- data/lib/factpulse/models/afnor_platform_status.rb +2 -2
- data/lib/factpulse/models/afnor_processing_rule.rb +2 -2
- 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 +2 -2
- data/lib/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.rb +2 -2
- data/lib/factpulse/models/afnor_routing_code_post201_response.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 +2 -2
- data/lib/factpulse/models/afnor_routing_code_search_filters_routing_identifier.rb +2 -2
- 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 +2 -2
- data/lib/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.rb +2 -2
- 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 +2 -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 +2 -2
- data/lib/factpulse/models/afnor_search_siren_filters_entity_type.rb +2 -2
- data/lib/factpulse/models/afnor_search_siren_filters_siren.rb +2 -2
- 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 +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_facility_type.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_locality.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_name.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_postal_code.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_filters_siret.rb +2 -2
- data/lib/factpulse/models/afnor_search_siret_sorting_inner.rb +2 -2
- data/lib/factpulse/models/afnor_siren_field.rb +2 -2
- data/lib/factpulse/models/afnor_siren_search_post200_response.rb +2 -2
- data/lib/factpulse/models/afnor_siret_field.rb +2 -2
- 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_update_patch_directory_line_body.rb +2 -2
- data/lib/factpulse/models/afnor_update_patch_routing_code_body.rb +2 -2
- data/lib/factpulse/models/afnor_update_put_routing_code_body.rb +2 -2
- data/lib/factpulse/models/afnor_webhook_callback_content.rb +2 -2
- 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 +2 -2
- data/lib/factpulse/models/chorus_pro_destination.rb +2 -2
- 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 +29 -7
- 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_models_invoice_type_code.rb +54 -0
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.rb +2 -2
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_validation_validation_error_response.rb +168 -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 +2 -2
- data/lib/factpulse/models/get_chorus_pro_id_response.rb +2 -2
- data/lib/factpulse/models/get_invoice_request.rb +2 -2
- data/lib/factpulse/models/get_invoice_response.rb +2 -2
- data/lib/factpulse/models/get_structure_request.rb +2 -2
- 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 +3 -3
- 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 +8 -19
- 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 +211 -0
- data/lib/factpulse/models/key_rotation_response.rb +232 -0
- 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 +13 -3
- data/lib/factpulse/models/pdp_config_update_request.rb +51 -7
- 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 +2 -2
- 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 +2 -2
- data/lib/factpulse/models/search_structure_response.rb +2 -2
- data/lib/factpulse/models/secret_status.rb +26 -6
- 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 +3 -3
- 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 +2 -2
- 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 +69 -22
- 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 +193 -0
- data/lib/factpulse/models/webhook_secret_generate_response.rb +247 -0
- data/lib/factpulse/models/webhook_secret_status_response.rb +176 -0
- data/lib/factpulse/version.rb +3 -3
- data/lib/factpulse.rb +40 -5
- metadata +133 -63
- data/docs/FactureElectroniqueRestApiSchemasCdarValidationErrorResponse.md +0 -24
- data/docs/FactureElectroniqueRestApiSchemasEreportingInvoiceTypeCode.md +0 -15
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_cdar_validation_error_response.rb +0 -215
- data/lib/factpulse/models/facture_electronique_rest_api_schemas_ereporting_invoice_type_code.rb +0 -43
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# FactPulse::GenerationTaskStatusResult
|
|
2
|
+
|
|
3
|
+
## Class instance methods
|
|
4
|
+
|
|
5
|
+
### `openapi_one_of`
|
|
6
|
+
|
|
7
|
+
Returns the list of classes defined in oneOf.
|
|
8
|
+
|
|
9
|
+
#### Example
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
require 'factpulse'
|
|
13
|
+
|
|
14
|
+
FactPulse::GenerationTaskStatusResult.openapi_one_of
|
|
15
|
+
# =>
|
|
16
|
+
# [
|
|
17
|
+
# :'GenerationSuccessResult',
|
|
18
|
+
# :'TaskErrorResult'
|
|
19
|
+
# ]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### `openapi_discriminator_name`
|
|
23
|
+
|
|
24
|
+
Returns the discriminator's property name.
|
|
25
|
+
|
|
26
|
+
#### Example
|
|
27
|
+
|
|
28
|
+
```ruby
|
|
29
|
+
require 'factpulse'
|
|
30
|
+
|
|
31
|
+
FactPulse::GenerationTaskStatusResult.openapi_discriminator_name
|
|
32
|
+
# => :'status'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### `openapi_discriminator_name`
|
|
36
|
+
|
|
37
|
+
Returns the discriminator's mapping.
|
|
38
|
+
|
|
39
|
+
#### Example
|
|
40
|
+
|
|
41
|
+
```ruby
|
|
42
|
+
require 'factpulse'
|
|
43
|
+
|
|
44
|
+
FactPulse::GenerationTaskStatusResult.openapi_discriminator_mapping
|
|
45
|
+
# =>
|
|
46
|
+
# {
|
|
47
|
+
# :'ERROR' => :'TaskErrorResult',
|
|
48
|
+
# :'SUCCESS' => :'GenerationSuccessResult'
|
|
49
|
+
# }
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### build
|
|
53
|
+
|
|
54
|
+
Find the appropriate object from the `openapi_one_of` list and casts the data into it.
|
|
55
|
+
|
|
56
|
+
#### Example
|
|
57
|
+
|
|
58
|
+
```ruby
|
|
59
|
+
require 'factpulse'
|
|
60
|
+
|
|
61
|
+
FactPulse::GenerationTaskStatusResult.build(data)
|
|
62
|
+
# => #<GenerationSuccessResult:0x00007fdd4aab02a0>
|
|
63
|
+
|
|
64
|
+
FactPulse::GenerationTaskStatusResult.build(data_that_doesnt_match)
|
|
65
|
+
# => nil
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
#### Parameters
|
|
69
|
+
|
|
70
|
+
| Name | Type | Description |
|
|
71
|
+
| ---- | ---- | ----------- |
|
|
72
|
+
| **data** | **Mixed** | data to be matched against the list of oneOf items |
|
|
73
|
+
|
|
74
|
+
#### Return type
|
|
75
|
+
|
|
76
|
+
- `GenerationSuccessResult`
|
|
77
|
+
- `TaskErrorResult`
|
|
78
|
+
- `nil` (if no type matches)
|
|
79
|
+
|
data/docs/HealthApi.md
CHANGED
|
@@ -5,8 +5,6 @@ All URIs are relative to *https://factpulse.fr*
|
|
|
5
5
|
| Method | HTTP request | Description |
|
|
6
6
|
| ------ | ------------ | ----------- |
|
|
7
7
|
| [**get_user_info_api_v1_me_get**](HealthApi.md#get_user_info_api_v1_me_get) | **GET** /api/v1/me | Get current user information |
|
|
8
|
-
| [**healthcheck_healthcheck_get**](HealthApi.md#healthcheck_healthcheck_get) | **GET** /healthcheck | Docker healthcheck endpoint |
|
|
9
|
-
| [**root_get**](HealthApi.md#root_get) | **GET** / | Check API status |
|
|
10
8
|
|
|
11
9
|
|
|
12
10
|
## get_user_info_api_v1_me_get
|
|
@@ -24,6 +22,11 @@ require 'time'
|
|
|
24
22
|
require 'factpulse'
|
|
25
23
|
# setup authorization
|
|
26
24
|
FactPulse.configure do |config|
|
|
25
|
+
# Configure API key authorization: APIKeyHeader
|
|
26
|
+
config.api_key['X-API-Key'] = 'YOUR API KEY'
|
|
27
|
+
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
|
28
|
+
# config.api_key_prefix['X-API-Key'] = 'Bearer'
|
|
29
|
+
|
|
27
30
|
# Configure Bearer authorization: HTTPBearer
|
|
28
31
|
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
29
32
|
end
|
|
@@ -67,129 +70,7 @@ This endpoint does not need any parameter.
|
|
|
67
70
|
|
|
68
71
|
### Authorization
|
|
69
72
|
|
|
70
|
-
[HTTPBearer](../README.md#HTTPBearer)
|
|
71
|
-
|
|
72
|
-
### HTTP request headers
|
|
73
|
-
|
|
74
|
-
- **Content-Type**: Not defined
|
|
75
|
-
- **Accept**: application/json
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
## healthcheck_healthcheck_get
|
|
79
|
-
|
|
80
|
-
> Object healthcheck_healthcheck_get
|
|
81
|
-
|
|
82
|
-
Docker healthcheck endpoint
|
|
83
|
-
|
|
84
|
-
Healthcheck endpoint for Docker and load balancers. Useful for: - Docker healthcheck - Kubernetes liveness/readiness probes - Load balancers (Nginx, HAProxy) - Availability monitoring - Zero downtime deployment Returns a 200 code if the API is operational.
|
|
85
|
-
|
|
86
|
-
### Examples
|
|
87
|
-
|
|
88
|
-
```ruby
|
|
89
|
-
require 'time'
|
|
90
|
-
require 'factpulse'
|
|
91
|
-
|
|
92
|
-
api_instance = FactPulse::HealthApi.new
|
|
93
|
-
|
|
94
|
-
begin
|
|
95
|
-
# Docker healthcheck endpoint
|
|
96
|
-
result = api_instance.healthcheck_healthcheck_get
|
|
97
|
-
p result
|
|
98
|
-
rescue FactPulse::ApiError => e
|
|
99
|
-
puts "Error when calling HealthApi->healthcheck_healthcheck_get: #{e}"
|
|
100
|
-
end
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
#### Using the healthcheck_healthcheck_get_with_http_info variant
|
|
104
|
-
|
|
105
|
-
This returns an Array which contains the response data, status code and headers.
|
|
106
|
-
|
|
107
|
-
> <Array(Object, Integer, Hash)> healthcheck_healthcheck_get_with_http_info
|
|
108
|
-
|
|
109
|
-
```ruby
|
|
110
|
-
begin
|
|
111
|
-
# Docker healthcheck endpoint
|
|
112
|
-
data, status_code, headers = api_instance.healthcheck_healthcheck_get_with_http_info
|
|
113
|
-
p status_code # => 2xx
|
|
114
|
-
p headers # => { ... }
|
|
115
|
-
p data # => Object
|
|
116
|
-
rescue FactPulse::ApiError => e
|
|
117
|
-
puts "Error when calling HealthApi->healthcheck_healthcheck_get_with_http_info: #{e}"
|
|
118
|
-
end
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Parameters
|
|
122
|
-
|
|
123
|
-
This endpoint does not need any parameter.
|
|
124
|
-
|
|
125
|
-
### Return type
|
|
126
|
-
|
|
127
|
-
**Object**
|
|
128
|
-
|
|
129
|
-
### Authorization
|
|
130
|
-
|
|
131
|
-
No authorization required
|
|
132
|
-
|
|
133
|
-
### HTTP request headers
|
|
134
|
-
|
|
135
|
-
- **Content-Type**: Not defined
|
|
136
|
-
- **Accept**: application/json
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
## root_get
|
|
140
|
-
|
|
141
|
-
> Object root_get
|
|
142
|
-
|
|
143
|
-
Check API status
|
|
144
|
-
|
|
145
|
-
Health check endpoint to verify the API is responding. Useful for: - Availability monitoring - Integration tests - Load balancers
|
|
146
|
-
|
|
147
|
-
### Examples
|
|
148
|
-
|
|
149
|
-
```ruby
|
|
150
|
-
require 'time'
|
|
151
|
-
require 'factpulse'
|
|
152
|
-
|
|
153
|
-
api_instance = FactPulse::HealthApi.new
|
|
154
|
-
|
|
155
|
-
begin
|
|
156
|
-
# Check API status
|
|
157
|
-
result = api_instance.root_get
|
|
158
|
-
p result
|
|
159
|
-
rescue FactPulse::ApiError => e
|
|
160
|
-
puts "Error when calling HealthApi->root_get: #{e}"
|
|
161
|
-
end
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
#### Using the root_get_with_http_info variant
|
|
165
|
-
|
|
166
|
-
This returns an Array which contains the response data, status code and headers.
|
|
167
|
-
|
|
168
|
-
> <Array(Object, Integer, Hash)> root_get_with_http_info
|
|
169
|
-
|
|
170
|
-
```ruby
|
|
171
|
-
begin
|
|
172
|
-
# Check API status
|
|
173
|
-
data, status_code, headers = api_instance.root_get_with_http_info
|
|
174
|
-
p status_code # => 2xx
|
|
175
|
-
p headers # => { ... }
|
|
176
|
-
p data # => Object
|
|
177
|
-
rescue FactPulse::ApiError => e
|
|
178
|
-
puts "Error when calling HealthApi->root_get_with_http_info: #{e}"
|
|
179
|
-
end
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Parameters
|
|
183
|
-
|
|
184
|
-
This endpoint does not need any parameter.
|
|
185
|
-
|
|
186
|
-
### Return type
|
|
187
|
-
|
|
188
|
-
**Object**
|
|
189
|
-
|
|
190
|
-
### Authorization
|
|
191
|
-
|
|
192
|
-
No authorization required
|
|
73
|
+
[APIKeyHeader](../README.md#APIKeyHeader), [HTTPBearer](../README.md#HTTPBearer)
|
|
193
74
|
|
|
194
75
|
### HTTP request headers
|
|
195
76
|
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
# FactPulse::
|
|
1
|
+
# FactPulse::InvoiceGenerationApi
|
|
2
2
|
|
|
3
3
|
All URIs are relative to *https://factpulse.fr*
|
|
4
4
|
|
|
5
5
|
| Method | HTTP request | Description |
|
|
6
6
|
| ------ | ------------ | ----------- |
|
|
7
|
-
| [**generate_invoice_api_v1_processing_generate_invoice_post**](
|
|
8
|
-
| [**submit_complete_invoice_api_v1_processing_invoices_submit_complete_post**](
|
|
9
|
-
| [**submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post**](
|
|
7
|
+
| [**generate_invoice_api_v1_processing_generate_invoice_post**](InvoiceGenerationApi.md#generate_invoice_api_v1_processing_generate_invoice_post) | **POST** /api/v1/processing/generate-invoice | Generate an electronic invoice (CII / UBL / Factur-X PDF) |
|
|
8
|
+
| [**submit_complete_invoice_api_v1_processing_invoices_submit_complete_post**](InvoiceGenerationApi.md#submit_complete_invoice_api_v1_processing_invoices_submit_complete_post) | **POST** /api/v1/processing/invoices/submit-complete | Submit a complete invoice (generation + signature + submission) |
|
|
9
|
+
| [**submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post**](InvoiceGenerationApi.md#submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post) | **POST** /api/v1/processing/invoices/submit-complete-async | Submit a complete invoice (asynchronous with Celery) |
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
## generate_invoice_api_v1_processing_generate_invoice_post
|
|
13
13
|
|
|
14
14
|
> <TaskResponse> generate_invoice_api_v1_processing_generate_invoice_post(invoice_data, opts)
|
|
15
15
|
|
|
16
|
-
Generate
|
|
16
|
+
Generate an electronic invoice (CII / UBL / Factur-X PDF)
|
|
17
17
|
|
|
18
|
-
Generates an electronic invoice
|
|
18
|
+
Generates an electronic invoice compliant with European standards. Supports **two XML syntaxes** defined by EN 16931: - **CII** (Cross-Industry Invoice, UN/CEFACT) — the Factur-X / ZUGFeRD syntax - **UBL 2.1** (Universal Business Language, OASIS) — the Peppol BIS Billing syntax ## Applied Standards - **EN 16931**: European semantic standard for electronic invoicing - **Factur-X / ZUGFeRD** (CII syntax): Franco-German standard - **UBL 2.1** (OASIS): International standard, used by Peppol - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving (PDF output only) - **Schematron**: Business rules validation (EN16931-CII, EN16931-UBL, BR-FR) ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A supplier SIRET + **IBAN** (required) - A recipient SIRET - Invoice lines (description, quantity, net price) **Simplified format example**: ```json { \"number\": \"FACT-2025-001\", \"supplier\": { \"siret\": \"92019522900017\", \"iban\": \"FR7630001007941234567890185\" }, \"recipient\": {\"siret\": \"35600000000048\"}, \"lines\": [ {\"description\": \"Service\", \"quantity\": 10, \"unitPrice\": 100.00, \"vatRate\": 20.0} ] } ``` **⚠️ Required fields (simplified format)**: - `number`: Unique invoice number - `supplier.siret`: Supplier's SIRET (14 digits) - `supplier.iban`: Bank account IBAN (no public API to retrieve it) - `recipient.siret`: Recipient's SIRET - `lines[]`: At least one invoice line **What happens automatically with `auto_enrich=True`**: - ✅ Name enrichment from Chorus Pro API - ✅ Address enrichment from Business Search API (free, public) - ✅ Automatic intra-EU VAT calculation (FR + key + SIREN) - ✅ Chorus Pro ID retrieval for electronic invoicing - ✅ Net/VAT/Gross totals calculation - ✅ Date generation (today + 30-day due date) - ✅ Multi-rate VAT handling **Supported identifiers**: - SIRET (14 digits): Specific establishment ⭐ Recommended - SIREN (9 digits): Company (auto-selection of headquarters) - Special types: UE_HORS_FRANCE, RIDET, TAHITI, etc. ## Checks performed during generation ### 1. Data validation (Pydantic) - Data types (amounts as Decimal, ISO 8601 dates) - Formats (14-digit SIRET, 9-digit SIREN, IBAN) - Required fields per profile - Amount consistency (Net + VAT = Gross) ### 2. CII-compliant XML generation - Serialization according to Cross Industry Invoice XSD schema - Correct UN/CEFACT namespaces - Hierarchical structure respected - UTF-8 encoding without BOM ### 3. Schematron validation - Business rules for selected profile (MINIMUM, BASIC, EN16931, EXTENDED) - Element cardinality (required, optional, repeatable) - Calculation rules (totals, VAT, discounts) - European EN 16931 compliance ### 4. PDF/A-3 conversion (if output_format='pdf') - Source PDF conversion to PDF/A-3 via Ghostscript - Factur-X XML embedding in PDF - Compliant XMP metadata - ICC sRGB color profile - Removal of forbidden elements (JavaScript, forms) ## How it works 1. **Submission**: Invoice is queued in Celery for asynchronous processing 2. **Immediate return**: You receive a `task_id` (HTTP 202 Accepted) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when the task completes: ``` callback_url=https://your-server.com/webhook ``` The webhook will POST a JSON payload with: - `event_type`: `generation.completed` or `generation.failed` - `data.task_id`: The Celery task ID - `data.content_b64` or `data.xml_content`: The generated content - `X-Webhook-Signature` header for HMAC verification See `/docs/WEBHOOKS.md` for full documentation. ## Output formats - **xml** / **cii**: CII XML (Factur-X syntax, UN/CEFACT) - **ubl**: UBL 2.1 XML (OASIS, Peppol BIS Billing 3.0) - **pdf**: Factur-X PDF/A-3 with embedded CII XML (requires `source_pdf`) ## Factur-X profiles (CII only) - **MINIMUM**: Minimal data (simplified invoice) - **BASIC**: Basic information (SMEs) - **EN16931**: European standard (recommended, compliant with directive 2014/55/EU) - **EXTENDED**: All available data (large accounts) When `output_format=ubl`, the profile parameter is ignored (UBL always uses EN16931). ## What you get After successful processing (status `completed`): - **XML only**: Base64-encoded Factur-X compliant XML file - **PDF/A-3**: PDF with embedded XML, ready for sending/archiving - **Metadata**: Profile, Factur-X version, file size - **Validation**: Schematron compliance confirmation ## Validation Data is automatically validated according to detected format. On error, a 422 status is returned with invalid field details.
|
|
19
19
|
|
|
20
20
|
### Examples
|
|
21
21
|
|
|
@@ -24,15 +24,20 @@ require 'time'
|
|
|
24
24
|
require 'factpulse'
|
|
25
25
|
# setup authorization
|
|
26
26
|
FactPulse.configure do |config|
|
|
27
|
+
# Configure API key authorization: APIKeyHeader
|
|
28
|
+
config.api_key['X-API-Key'] = 'YOUR API KEY'
|
|
29
|
+
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
|
30
|
+
# config.api_key_prefix['X-API-Key'] = 'Bearer'
|
|
31
|
+
|
|
27
32
|
# Configure Bearer authorization: HTTPBearer
|
|
28
33
|
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
29
34
|
end
|
|
30
35
|
|
|
31
|
-
api_instance = FactPulse::
|
|
36
|
+
api_instance = FactPulse::InvoiceGenerationApi.new
|
|
32
37
|
invoice_data = 'invoice_data_example' # String | Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete FacturXInvoice structure (all fields) 2. **Simplified format** (🆕 P0.1): Minimal structure with auto-enrichment Format is detected automatically!
|
|
33
38
|
opts = {
|
|
34
|
-
profile: FactPulse::APIProfile::MINIMUM, # APIProfile | Factur-X profile: MINIMUM, BASIC, EN16931 or EXTENDED.
|
|
35
|
-
output_format: FactPulse::OutputFormat::XML, # OutputFormat | Output format: 'xml' (XML
|
|
39
|
+
profile: FactPulse::APIProfile::MINIMUM, # APIProfile | Factur-X/CII profile: MINIMUM, BASIC, EN16931 or EXTENDED. Ignored when output_format='ubl' (always EN16931).
|
|
40
|
+
output_format: FactPulse::OutputFormat::XML, # OutputFormat | Output format: 'xml' or 'cii' (CII/Factur-X XML), 'ubl' (UBL 2.1 XML), 'pdf' (Factur-X PDF/A-3).
|
|
36
41
|
auto_enrich: true, # Boolean | 🆕 Enable auto-enrichment from SIRET/SIREN (simplified format only)
|
|
37
42
|
source_pdf: File.new('/path/to/some/file'), # File |
|
|
38
43
|
callback_url: 'callback_url_example', # String |
|
|
@@ -41,11 +46,11 @@ opts = {
|
|
|
41
46
|
}
|
|
42
47
|
|
|
43
48
|
begin
|
|
44
|
-
# Generate
|
|
49
|
+
# Generate an electronic invoice (CII / UBL / Factur-X PDF)
|
|
45
50
|
result = api_instance.generate_invoice_api_v1_processing_generate_invoice_post(invoice_data, opts)
|
|
46
51
|
p result
|
|
47
52
|
rescue FactPulse::ApiError => e
|
|
48
|
-
puts "Error when calling
|
|
53
|
+
puts "Error when calling InvoiceGenerationApi->generate_invoice_api_v1_processing_generate_invoice_post: #{e}"
|
|
49
54
|
end
|
|
50
55
|
```
|
|
51
56
|
|
|
@@ -57,13 +62,13 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
57
62
|
|
|
58
63
|
```ruby
|
|
59
64
|
begin
|
|
60
|
-
# Generate
|
|
65
|
+
# Generate an electronic invoice (CII / UBL / Factur-X PDF)
|
|
61
66
|
data, status_code, headers = api_instance.generate_invoice_api_v1_processing_generate_invoice_post_with_http_info(invoice_data, opts)
|
|
62
67
|
p status_code # => 2xx
|
|
63
68
|
p headers # => { ... }
|
|
64
69
|
p data # => <TaskResponse>
|
|
65
70
|
rescue FactPulse::ApiError => e
|
|
66
|
-
puts "Error when calling
|
|
71
|
+
puts "Error when calling InvoiceGenerationApi->generate_invoice_api_v1_processing_generate_invoice_post_with_http_info: #{e}"
|
|
67
72
|
end
|
|
68
73
|
```
|
|
69
74
|
|
|
@@ -72,8 +77,8 @@ end
|
|
|
72
77
|
| Name | Type | Description | Notes |
|
|
73
78
|
| ---- | ---- | ----------- | ----- |
|
|
74
79
|
| **invoice_data** | **String** | Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete FacturXInvoice structure (all fields) 2. **Simplified format** (🆕 P0.1): Minimal structure with auto-enrichment Format is detected automatically! | |
|
|
75
|
-
| **profile** | [**APIProfile**](APIProfile.md) | Factur-X profile: MINIMUM, BASIC, EN16931 or EXTENDED. | [optional] |
|
|
76
|
-
| **output_format** | [**OutputFormat**](OutputFormat.md) | Output format: 'xml' (XML
|
|
80
|
+
| **profile** | [**APIProfile**](APIProfile.md) | Factur-X/CII profile: MINIMUM, BASIC, EN16931 or EXTENDED. Ignored when output_format='ubl' (always EN16931). | [optional] |
|
|
81
|
+
| **output_format** | [**OutputFormat**](OutputFormat.md) | Output format: 'xml' or 'cii' (CII/Factur-X XML), 'ubl' (UBL 2.1 XML), 'pdf' (Factur-X PDF/A-3). | [optional] |
|
|
77
82
|
| **auto_enrich** | **Boolean** | 🆕 Enable auto-enrichment from SIRET/SIREN (simplified format only) | [optional][default to true] |
|
|
78
83
|
| **source_pdf** | **File** | | [optional] |
|
|
79
84
|
| **callback_url** | **String** | | [optional] |
|
|
@@ -86,7 +91,7 @@ end
|
|
|
86
91
|
|
|
87
92
|
### Authorization
|
|
88
93
|
|
|
89
|
-
[HTTPBearer](../README.md#HTTPBearer)
|
|
94
|
+
[APIKeyHeader](../README.md#APIKeyHeader), [HTTPBearer](../README.md#HTTPBearer)
|
|
90
95
|
|
|
91
96
|
### HTTP request headers
|
|
92
97
|
|
|
@@ -109,11 +114,16 @@ require 'time'
|
|
|
109
114
|
require 'factpulse'
|
|
110
115
|
# setup authorization
|
|
111
116
|
FactPulse.configure do |config|
|
|
117
|
+
# Configure API key authorization: APIKeyHeader
|
|
118
|
+
config.api_key['X-API-Key'] = 'YOUR API KEY'
|
|
119
|
+
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
|
120
|
+
# config.api_key_prefix['X-API-Key'] = 'Bearer'
|
|
121
|
+
|
|
112
122
|
# Configure Bearer authorization: HTTPBearer
|
|
113
123
|
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
114
124
|
end
|
|
115
125
|
|
|
116
|
-
api_instance = FactPulse::
|
|
126
|
+
api_instance = FactPulse::InvoiceGenerationApi.new
|
|
117
127
|
submit_complete_invoice_request = FactPulse::SubmitCompleteInvoiceRequest.new({invoice_data: FactPulse::SimplifiedInvoiceData.new({number: 'number_example', supplier: { key: 3.56}, recipient: { key: 3.56}, lines: [{ key: 3.56}]}), source_pdf: 'source_pdf_example', destination: FactPulse::AFNORDestination.new}) # SubmitCompleteInvoiceRequest |
|
|
118
128
|
|
|
119
129
|
begin
|
|
@@ -121,7 +131,7 @@ begin
|
|
|
121
131
|
result = api_instance.submit_complete_invoice_api_v1_processing_invoices_submit_complete_post(submit_complete_invoice_request)
|
|
122
132
|
p result
|
|
123
133
|
rescue FactPulse::ApiError => e
|
|
124
|
-
puts "Error when calling
|
|
134
|
+
puts "Error when calling InvoiceGenerationApi->submit_complete_invoice_api_v1_processing_invoices_submit_complete_post: #{e}"
|
|
125
135
|
end
|
|
126
136
|
```
|
|
127
137
|
|
|
@@ -139,7 +149,7 @@ begin
|
|
|
139
149
|
p headers # => { ... }
|
|
140
150
|
p data # => <SubmitCompleteInvoiceResponse>
|
|
141
151
|
rescue FactPulse::ApiError => e
|
|
142
|
-
puts "Error when calling
|
|
152
|
+
puts "Error when calling InvoiceGenerationApi->submit_complete_invoice_api_v1_processing_invoices_submit_complete_post_with_http_info: #{e}"
|
|
143
153
|
end
|
|
144
154
|
```
|
|
145
155
|
|
|
@@ -155,7 +165,7 @@ end
|
|
|
155
165
|
|
|
156
166
|
### Authorization
|
|
157
167
|
|
|
158
|
-
[HTTPBearer](../README.md#HTTPBearer)
|
|
168
|
+
[APIKeyHeader](../README.md#APIKeyHeader), [HTTPBearer](../README.md#HTTPBearer)
|
|
159
169
|
|
|
160
170
|
### HTTP request headers
|
|
161
171
|
|
|
@@ -178,11 +188,16 @@ require 'time'
|
|
|
178
188
|
require 'factpulse'
|
|
179
189
|
# setup authorization
|
|
180
190
|
FactPulse.configure do |config|
|
|
191
|
+
# Configure API key authorization: APIKeyHeader
|
|
192
|
+
config.api_key['X-API-Key'] = 'YOUR API KEY'
|
|
193
|
+
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
|
194
|
+
# config.api_key_prefix['X-API-Key'] = 'Bearer'
|
|
195
|
+
|
|
181
196
|
# Configure Bearer authorization: HTTPBearer
|
|
182
197
|
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
183
198
|
end
|
|
184
199
|
|
|
185
|
-
api_instance = FactPulse::
|
|
200
|
+
api_instance = FactPulse::InvoiceGenerationApi.new
|
|
186
201
|
submit_complete_invoice_request = FactPulse::SubmitCompleteInvoiceRequest.new({invoice_data: FactPulse::SimplifiedInvoiceData.new({number: 'number_example', supplier: { key: 3.56}, recipient: { key: 3.56}, lines: [{ key: 3.56}]}), source_pdf: 'source_pdf_example', destination: FactPulse::AFNORDestination.new}) # SubmitCompleteInvoiceRequest |
|
|
187
202
|
opts = {
|
|
188
203
|
callback_url: 'callback_url_example', # String | Webhook URL for async notification when submission completes.
|
|
@@ -194,7 +209,7 @@ begin
|
|
|
194
209
|
result = api_instance.submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post(submit_complete_invoice_request, opts)
|
|
195
210
|
p result
|
|
196
211
|
rescue FactPulse::ApiError => e
|
|
197
|
-
puts "Error when calling
|
|
212
|
+
puts "Error when calling InvoiceGenerationApi->submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post: #{e}"
|
|
198
213
|
end
|
|
199
214
|
```
|
|
200
215
|
|
|
@@ -212,7 +227,7 @@ begin
|
|
|
212
227
|
p headers # => { ... }
|
|
213
228
|
p data # => <TaskResponse>
|
|
214
229
|
rescue FactPulse::ApiError => e
|
|
215
|
-
puts "Error when calling
|
|
230
|
+
puts "Error when calling InvoiceGenerationApi->submit_complete_invoice_async_api_v1_processing_invoices_submit_complete_async_post_with_http_info: #{e}"
|
|
216
231
|
end
|
|
217
232
|
```
|
|
218
233
|
|
|
@@ -230,7 +245,7 @@ end
|
|
|
230
245
|
|
|
231
246
|
### Authorization
|
|
232
247
|
|
|
233
|
-
[HTTPBearer](../README.md#HTTPBearer)
|
|
248
|
+
[APIKeyHeader](../README.md#APIKeyHeader), [HTTPBearer](../README.md#HTTPBearer)
|
|
234
249
|
|
|
235
250
|
### HTTP request headers
|
|
236
251
|
|
data/docs/InvoiceInput.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **invoice_id** | **String** | Invoice identifier | |
|
|
8
8
|
| **issue_date** | **Date** | Invoice issue date | |
|
|
9
|
-
| **type_code** | [**
|
|
9
|
+
| **type_code** | [**InvoiceTypeCode**](InvoiceTypeCode.md) | Invoice type code | [optional] |
|
|
10
10
|
| **currency** | [**Currency**](Currency.md) | | [optional] |
|
|
11
11
|
| **due_date** | **Date** | | [optional] |
|
|
12
12
|
| **seller_id** | **String** | | [optional] |
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# FactPulse::InvoiceLifecycle
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **seller_id** | **String** | | [optional] |
|
|
8
|
+
| **invoice_id** | **String** | Reference de la facture (IssuerAssignedID du CDAR) | |
|
|
9
|
+
| **events** | [**Array<LifecycleEvent>**](LifecycleEvent.md) | Evenements de cycle de vie tries chronologiquement | [optional] |
|
|
10
|
+
| **total_events** | **Integer** | Nombre total d'evenements | |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'factpulse'
|
|
16
|
+
|
|
17
|
+
instance = FactPulse::InvoiceLifecycle.new(
|
|
18
|
+
seller_id: null,
|
|
19
|
+
invoice_id: null,
|
|
20
|
+
events: null,
|
|
21
|
+
total_events: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
data/docs/InvoicingFramework.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **invoicing_framework_code** | [**InvoicingFrameworkCode**](InvoicingFrameworkCode.md) |
|
|
7
|
+
| **invoicing_framework_code** | [**InvoicingFrameworkCode**](InvoicingFrameworkCode.md) | | [optional] |
|
|
8
8
|
| **operation_nature** | [**OperationNature**](OperationNature.md) | | [optional] |
|
|
9
9
|
| **approver_service_code** | **String** | | [optional] |
|
|
10
10
|
| **approver_structure_code** | **String** | | [optional] |
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# FactPulse::KeyRotationRequest
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **old_key** | **String** | Current encryption key (base64-encoded AES-256) | |
|
|
8
|
+
| **new_key** | **String** | New encryption key (base64-encoded AES-256) | |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'factpulse'
|
|
14
|
+
|
|
15
|
+
instance = FactPulse::KeyRotationRequest.new(
|
|
16
|
+
old_key: null,
|
|
17
|
+
new_key: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# FactPulse::KeyRotationResponse
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **success** | **Boolean** | Whether rotation was successful | |
|
|
8
|
+
| **message** | **String** | Result message | |
|
|
9
|
+
| **rotated_count** | **Integer** | Number of secrets that were rotated | |
|
|
10
|
+
| **partial_errors** | **Array<String>** | | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'factpulse'
|
|
16
|
+
|
|
17
|
+
instance = FactPulse::KeyRotationResponse.new(
|
|
18
|
+
success: null,
|
|
19
|
+
message: null,
|
|
20
|
+
rotated_count: null,
|
|
21
|
+
partial_errors: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# FactPulse::LifecycleEvent
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **flow_id** | **String** | ID du flux lifecycle | |
|
|
8
|
+
| **status_code** | **String** | Code statut (200-601) | |
|
|
9
|
+
| **status_description** | **String** | | [optional] |
|
|
10
|
+
| **ack_status** | **String** | | [optional] |
|
|
11
|
+
| **at** | **String** | | [optional] |
|
|
12
|
+
| **document_id** | **String** | | [optional] |
|
|
13
|
+
| **amount** | **String** | | [optional] |
|
|
14
|
+
| **currency** | **String** | | [optional] |
|
|
15
|
+
| **issuer_siren** | **String** | | [optional] |
|
|
16
|
+
| **issuer_role** | **String** | | [optional] |
|
|
17
|
+
| **reason_code** | **String** | | [optional] |
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
```ruby
|
|
22
|
+
require 'factpulse'
|
|
23
|
+
|
|
24
|
+
instance = FactPulse::LifecycleEvent.new(
|
|
25
|
+
flow_id: null,
|
|
26
|
+
status_code: null,
|
|
27
|
+
status_description: null,
|
|
28
|
+
ack_status: null,
|
|
29
|
+
at: null,
|
|
30
|
+
document_id: null,
|
|
31
|
+
amount: null,
|
|
32
|
+
currency: null,
|
|
33
|
+
issuer_siren: null,
|
|
34
|
+
issuer_role: null,
|
|
35
|
+
reason_code: null
|
|
36
|
+
)
|
|
37
|
+
```
|
|
38
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# FactPulse::LifecycleResponse
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **invoices** | [**Array<InvoiceLifecycle>**](InvoiceLifecycle.md) | Cycles de vie par facture | [optional] |
|
|
8
|
+
| **total_invoices** | **Integer** | Nombre de factures | |
|
|
9
|
+
| **cutoff_days** | **Integer** | Nombre de jours de la fenetre de recherche | |
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require 'factpulse'
|
|
15
|
+
|
|
16
|
+
instance = FactPulse::LifecycleResponse.new(
|
|
17
|
+
invoices: null,
|
|
18
|
+
total_invoices: null,
|
|
19
|
+
cutoff_days: null
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
data/docs/PDPConfigResponse.md
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
| **flow_service_url** | **String** | | [optional] |
|
|
12
12
|
| **token_url** | **String** | | [optional] |
|
|
13
13
|
| **oauth_client_id** | **String** | | [optional] |
|
|
14
|
+
| **encryption_mode** | **String** | | [optional] |
|
|
14
15
|
| **secret_status** | [**SecretStatus**](SecretStatus.md) | | [optional] |
|
|
15
16
|
| **last_test_at** | **Time** | | [optional] |
|
|
16
17
|
| **last_test_success** | **Boolean** | | [optional] |
|
|
@@ -32,6 +33,7 @@ instance = FactPulse::PDPConfigResponse.new(
|
|
|
32
33
|
flow_service_url: null,
|
|
33
34
|
token_url: null,
|
|
34
35
|
oauth_client_id: null,
|
|
36
|
+
encryption_mode: null,
|
|
35
37
|
secret_status: null,
|
|
36
38
|
last_test_at: null,
|
|
37
39
|
last_test_success: null,
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
| **token_url** | **String** | PDP OAuth token URL | |
|
|
11
11
|
| **oauth_client_id** | **String** | OAuth Client ID | |
|
|
12
12
|
| **client_secret** | **String** | OAuth Client Secret (sent but never returned) | |
|
|
13
|
+
| **encryption_mode** | **String** | | [optional] |
|
|
13
14
|
|
|
14
15
|
## Example
|
|
15
16
|
|
|
@@ -22,7 +23,8 @@ instance = FactPulse::PDPConfigUpdateRequest.new(
|
|
|
22
23
|
flow_service_url: null,
|
|
23
24
|
token_url: null,
|
|
24
25
|
oauth_client_id: null,
|
|
25
|
-
client_secret: null
|
|
26
|
+
client_secret: null,
|
|
27
|
+
encryption_mode: null
|
|
26
28
|
)
|
|
27
29
|
```
|
|
28
30
|
|