factpulse 2.0.19__tar.gz → 3.0.35__tar.gz
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.
- {factpulse-2.0.19 → factpulse-3.0.35}/LICENSE +1 -1
- factpulse-3.0.35/PKG-INFO +260 -0
- factpulse-3.0.35/README.md +239 -0
- factpulse-3.0.35/factpulse/__init__.py +657 -0
- factpulse-3.0.35/factpulse/api/__init__.py +16 -0
- factpulse-3.0.35/factpulse/api/afnorpdppa_api.py +836 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/api/afnorpdppa_directory_service_api.py +754 -328
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/api/afnorpdppa_flow_service_api.py +212 -81
- factpulse-3.0.35/factpulse/api/cdar_cycle_de_vie_api.py +2056 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/api/chorus_pro_api.py +422 -411
- factpulse-3.0.35/factpulse/api/document_conversion_api.py +1222 -0
- factpulse-3.0.35/factpulse/api/downloads_api.py +1171 -0
- factpulse-3.0.35/factpulse/api/e_reporting_api.py +3254 -0
- factpulse-2.0.19/factpulse/api/sant_api.py → factpulse-3.0.35/factpulse/api/health_api.py +29 -22
- factpulse-3.0.35/factpulse/api/invoice_processing_api.py +3634 -0
- factpulse-3.0.35/factpulse/api/pdfxml_verification_api.py +1798 -0
- factpulse-2.0.19/factpulse/api/afnorpdppa_api.py → factpulse-3.0.35/factpulse/api/user_api.py +20 -18
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/api_client.py +7 -6
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/configuration.py +11 -6
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/exceptions.py +4 -3
- factpulse-3.0.35/factpulse/models/__init__.py +310 -0
- factpulse-3.0.35/factpulse/models/acknowledgment_status.py +39 -0
- factpulse-3.0.35/factpulse/models/action_code_info.py +92 -0
- factpulse-3.0.35/factpulse/models/action_codes_response.py +100 -0
- factpulse-3.0.35/factpulse/models/additional_document.py +116 -0
- factpulse-3.0.35/factpulse/models/afnor_acknowledgement.py +100 -0
- factpulse-3.0.35/factpulse/models/afnor_acknowledgement_detail.py +105 -0
- factpulse-3.0.35/factpulse/models/afnor_address_edit.py +111 -0
- factpulse-3.0.35/factpulse/models/afnor_address_patch.py +141 -0
- factpulse-3.0.35/factpulse/models/afnor_address_put.py +129 -0
- factpulse-3.0.35/factpulse/models/afnor_address_read.py +113 -0
- factpulse-3.0.35/factpulse/models/afnor_algorithm.py +41 -0
- factpulse-3.0.35/factpulse/models/afnor_contains_operator.py +37 -0
- factpulse-3.0.35/factpulse/models/afnor_create_directory_line_body.py +98 -0
- factpulse-3.0.35/factpulse/models/afnor_create_directory_line_body_addressing_information.py +122 -0
- factpulse-3.0.35/factpulse/models/afnor_create_directory_line_body_period.py +91 -0
- factpulse-3.0.35/factpulse/models/afnor_create_routing_code_body.py +153 -0
- factpulse-3.0.35/factpulse/models/afnor_credentials.py +107 -0
- factpulse-3.0.35/factpulse/models/afnor_destination.py +127 -0
- factpulse-3.0.35/factpulse/models/afnor_diffusion_status.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_directory_line_field.py +42 -0
- factpulse-3.0.35/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.py +139 -0
- factpulse-3.0.35/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.py +134 -0
- factpulse-3.0.35/factpulse/models/afnor_directory_line_post201_response.py +94 -0
- factpulse-3.0.35/factpulse/models/afnor_directory_line_search_post200_response.py +104 -0
- factpulse-3.0.35/factpulse/models/afnor_entity_type.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_error.py +97 -0
- factpulse-3.0.35/factpulse/models/afnor_facility_administrative_status.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_facility_nature.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_facility_payload_history.py +140 -0
- factpulse-3.0.35/factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.py +98 -0
- factpulse-3.0.35/factpulse/models/afnor_facility_payload_included.py +134 -0
- factpulse-3.0.35/factpulse/models/afnor_facility_type.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_flow.py +129 -0
- factpulse-3.0.35/factpulse/models/afnor_flow_ack_status.py +39 -0
- factpulse-3.0.35/factpulse/models/afnor_flow_direction.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_flow_info.py +112 -0
- factpulse-3.0.35/factpulse/models/afnor_flow_profile.py +39 -0
- factpulse-3.0.35/factpulse/models/afnor_flow_syntax.py +41 -0
- factpulse-3.0.35/factpulse/models/afnor_flow_type.py +49 -0
- factpulse-3.0.35/factpulse/models/afnor_full_flow_info.py +117 -0
- factpulse-3.0.35/factpulse/models/afnor_health_check_response.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_legal_unit_administrative_status.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_legal_unit_payload_history.py +107 -0
- factpulse-3.0.35/factpulse/models/afnor_legal_unit_payload_included.py +107 -0
- factpulse-3.0.35/factpulse/models/afnor_legal_unit_payload_included_no_siren.py +95 -0
- factpulse-3.0.35/factpulse/models/afnor_platform_status.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_processing_rule.py +42 -0
- factpulse-3.0.35/factpulse/models/afnor_reason_code.py +141 -0
- factpulse-3.0.35/factpulse/models/afnor_reason_code_enum.py +51 -0
- factpulse-3.0.35/factpulse/models/afnor_recipient_platform_type.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_result.py +127 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_administrative_status.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_field.py +44 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.py +158 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_post201_response.py +113 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_search.py +122 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_search_filters.py +128 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_search_filters_administrative_status.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_search_filters_routing_code_name.py +102 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_search_filters_routing_identifier.py +102 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_search_post200_response.py +104 -0
- factpulse-3.0.35/factpulse/models/afnor_routing_code_search_sorting_inner.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_directory_line.py +109 -0
- factpulse-3.0.35/factpulse/models/afnor_search_directory_line_filters.py +116 -0
- factpulse-3.0.35/factpulse/models/afnor_search_directory_line_filters_addressing_identifier.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_directory_line_filters_addressing_suffix.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_directory_line_sorting_inner.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_flow_content.py +104 -0
- factpulse-3.0.35/factpulse/models/afnor_search_flow_filters.py +106 -0
- factpulse-3.0.35/factpulse/models/afnor_search_flow_params.py +95 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siren.py +109 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siren_filters.py +110 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siren_filters_administrative_status.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siren_filters_business_name.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siren_filters_entity_type.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siren_filters_siren.py +102 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siren_sorting_inner.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret.py +122 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters.py +140 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_address_lines.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_administrative_status.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_country_subdivision.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_facility_type.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_locality.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_name.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_postal_code.py +102 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_filters_siret.py +102 -0
- factpulse-3.0.35/factpulse/models/afnor_search_siret_sorting_inner.py +92 -0
- factpulse-3.0.35/factpulse/models/afnor_siren_field.py +41 -0
- factpulse-3.0.35/factpulse/models/afnor_siren_search_post200_response.py +104 -0
- factpulse-3.0.35/factpulse/models/afnor_siret_field.py +50 -0
- factpulse-3.0.35/factpulse/models/afnor_siret_search_post200_response.py +104 -0
- factpulse-3.0.35/factpulse/models/afnor_sorting_order.py +38 -0
- factpulse-3.0.35/factpulse/models/afnor_strict_operator.py +37 -0
- factpulse-3.0.35/factpulse/models/afnor_update_patch_directory_line_body.py +89 -0
- factpulse-3.0.35/factpulse/models/afnor_update_patch_routing_code_body.py +120 -0
- factpulse-3.0.35/factpulse/models/afnor_update_put_routing_code_body.py +114 -0
- factpulse-3.0.35/factpulse/models/afnor_webhook_callback_content.py +92 -0
- factpulse-3.0.35/factpulse/models/aggregated_payment_input.py +106 -0
- factpulse-3.0.35/factpulse/models/aggregated_transaction_input.py +136 -0
- factpulse-3.0.35/factpulse/models/allowance_charge.py +150 -0
- factpulse-3.0.35/factpulse/models/allowance_charge_reason_code.py +74 -0
- factpulse-3.0.35/factpulse/models/allowance_reason_code.py +43 -0
- factpulse-3.0.35/factpulse/models/allowance_total_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/amount.py +140 -0
- factpulse-3.0.35/factpulse/models/amount1.py +140 -0
- factpulse-3.0.35/factpulse/models/amount_due.py +140 -0
- factpulse-3.0.35/factpulse/models/api_error.py +105 -0
- factpulse-3.0.35/factpulse/models/api_profile.py +41 -0
- factpulse-3.0.35/factpulse/models/async_task_status.py +98 -0
- factpulse-3.0.35/factpulse/models/base_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/body_submit_cdar_api_v1_cdar_submit_post.py +103 -0
- factpulse-3.0.35/factpulse/models/body_submit_cdar_xml_api_v1_cdar_submit_xml_post.py +103 -0
- factpulse-3.0.35/factpulse/models/bounding_box_schema.py +101 -0
- factpulse-3.0.35/factpulse/models/buyercountry.py +137 -0
- factpulse-3.0.35/factpulse/models/celery_status.py +41 -0
- factpulse-3.0.35/factpulse/models/certificate_info_response.py +115 -0
- factpulse-3.0.35/factpulse/models/charge_total_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/chorus_pro_credentials.py +116 -0
- factpulse-3.0.35/factpulse/models/chorus_pro_destination.py +109 -0
- factpulse-3.0.35/factpulse/models/chorus_pro_result.py +102 -0
- factpulse-3.0.35/factpulse/models/contact.py +114 -0
- factpulse-3.0.35/factpulse/models/convert_resume_request.py +88 -0
- factpulse-3.0.35/factpulse/models/convert_success_response.py +127 -0
- factpulse-3.0.35/factpulse/models/convert_validation_failed_response.py +121 -0
- factpulse-3.0.35/factpulse/models/country_code.py +206 -0
- factpulse-3.0.35/factpulse/models/create_aggregated_report_request.py +170 -0
- factpulse-3.0.35/factpulse/models/create_cdar_request.py +175 -0
- factpulse-3.0.35/factpulse/models/create_e_reporting_request.py +173 -0
- factpulse-3.0.35/factpulse/models/currency.py +137 -0
- factpulse-3.0.35/factpulse/models/currency_code.py +89 -0
- factpulse-3.0.35/factpulse/models/delivery_party.py +122 -0
- factpulse-3.0.35/factpulse/models/destination.py +141 -0
- factpulse-3.0.35/factpulse/models/doc_type.py +40 -0
- factpulse-3.0.35/factpulse/models/document_type_info.py +92 -0
- factpulse-3.0.35/factpulse/models/e_reporting_flow_type.py +40 -0
- factpulse-3.0.35/factpulse/models/e_reporting_validation_error.py +97 -0
- factpulse-3.0.35/factpulse/models/electronic_address.py +91 -0
- factpulse-3.0.35/factpulse/models/encaisseamount.py +146 -0
- factpulse-3.0.35/factpulse/models/encaisseamount1.py +146 -0
- factpulse-3.0.35/factpulse/models/enriched_invoice_info.py +134 -0
- factpulse-3.0.35/factpulse/models/error_level.py +38 -0
- factpulse-3.0.35/factpulse/models/error_source.py +44 -0
- factpulse-3.0.35/factpulse/models/extraction_info.py +94 -0
- factpulse-3.0.35/factpulse/models/factur_x_invoice.py +321 -0
- factpulse-3.0.35/factpulse/models/factur_xpdf_info.py +92 -0
- factpulse-3.0.35/factpulse/models/facture_electronique_models_invoice_type_code.py +52 -0
- factpulse-3.0.35/factpulse/models/facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.py +96 -0
- factpulse-3.0.35/factpulse/models/facture_electronique_rest_api_schemas_validation_validation_error_response.py +88 -0
- factpulse-3.0.35/factpulse/models/field_status.py +41 -0
- factpulse-3.0.35/factpulse/models/file_info.py +95 -0
- factpulse-3.0.35/factpulse/models/files_info.py +107 -0
- factpulse-3.0.35/factpulse/models/flow_direction.py +38 -0
- factpulse-3.0.35/factpulse/models/flow_profile.py +39 -0
- factpulse-3.0.35/factpulse/models/flow_summary.py +132 -0
- factpulse-3.0.35/factpulse/models/flow_syntax.py +41 -0
- factpulse-3.0.35/factpulse/models/flow_type.py +49 -0
- factpulse-3.0.35/factpulse/models/generate_aggregated_report_response.py +100 -0
- factpulse-3.0.35/factpulse/models/generate_cdar_response.py +96 -0
- factpulse-3.0.35/factpulse/models/generate_certificate_request.py +119 -0
- factpulse-3.0.35/factpulse/models/generate_certificate_response.py +107 -0
- factpulse-3.0.35/factpulse/models/generate_e_reporting_response.py +96 -0
- factpulse-3.0.35/factpulse/models/get_chorus_pro_id_request.py +101 -0
- factpulse-3.0.35/factpulse/models/get_chorus_pro_id_response.py +99 -0
- factpulse-3.0.35/factpulse/models/get_invoice_request.py +99 -0
- factpulse-3.0.35/factpulse/models/get_invoice_response.py +143 -0
- factpulse-3.0.35/factpulse/models/get_structure_request.py +101 -0
- factpulse-3.0.35/factpulse/models/get_structure_response.py +143 -0
- factpulse-3.0.35/factpulse/models/global_allowance_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/gross_unit_price.py +146 -0
- factpulse-3.0.35/factpulse/models/http_validation_error.py +96 -0
- factpulse-3.0.35/factpulse/models/incoming_invoice.py +175 -0
- factpulse-3.0.35/factpulse/models/incoming_supplier.py +145 -0
- factpulse-3.0.35/factpulse/models/invoice_format.py +39 -0
- factpulse-3.0.35/factpulse/models/invoice_input.py +179 -0
- factpulse-3.0.35/factpulse/models/invoice_line.py +370 -0
- factpulse-3.0.35/factpulse/models/invoice_line_allowance_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/invoice_note.py +95 -0
- factpulse-3.0.35/factpulse/models/invoice_payment_input.py +110 -0
- factpulse-3.0.35/factpulse/models/invoice_references.py +195 -0
- factpulse-3.0.35/factpulse/models/invoice_status.py +97 -0
- factpulse-3.0.35/factpulse/models/invoice_totals.py +178 -0
- factpulse-3.0.35/factpulse/models/invoice_totals_prepayment.py +146 -0
- factpulse-3.0.35/factpulse/models/invoice_type_code.py +41 -0
- factpulse-3.0.35/factpulse/models/invoice_type_code_output.py +52 -0
- factpulse-3.0.35/factpulse/models/invoicing_framework.py +111 -0
- factpulse-3.0.35/factpulse/models/invoicing_framework_code.py +40 -0
- factpulse-3.0.35/factpulse/models/line_net_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/line_sub_type.py +39 -0
- factpulse-3.0.35/factpulse/models/line_total_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/location_inner.py +139 -0
- factpulse-3.0.35/factpulse/models/mandatory_note_schema.py +125 -0
- factpulse-3.0.35/factpulse/models/manual_rate.py +140 -0
- factpulse-3.0.35/factpulse/models/manual_vat_rate.py +140 -0
- factpulse-3.0.35/factpulse/models/missing_field.py +108 -0
- factpulse-3.0.35/factpulse/models/operation_nature.py +50 -0
- factpulse-3.0.35/factpulse/models/output_format.py +38 -0
- factpulse-3.0.35/factpulse/models/page_dimensions_schema.py +90 -0
- factpulse-3.0.35/factpulse/models/payee.py +169 -0
- factpulse-3.0.35/factpulse/models/payment_amount_by_rate.py +98 -0
- factpulse-3.0.35/factpulse/models/payment_card.py +100 -0
- factpulse-3.0.35/factpulse/models/payment_means.py +42 -0
- factpulse-3.0.35/factpulse/models/pdf_validation_result_api.py +170 -0
- factpulse-3.0.35/factpulse/models/pdp_credentials.py +101 -0
- factpulse-3.0.35/factpulse/models/percentage.py +146 -0
- factpulse-3.0.35/factpulse/models/postal_address.py +135 -0
- factpulse-3.0.35/factpulse/models/price_allowance_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/price_basis_quantity.py +146 -0
- factpulse-3.0.35/factpulse/models/processing_options.py +95 -0
- factpulse-3.0.35/factpulse/models/processing_rule.py +42 -0
- factpulse-3.0.35/factpulse/models/product_characteristic.py +90 -0
- factpulse-3.0.35/factpulse/models/product_classification.py +102 -0
- factpulse-3.0.35/factpulse/models/quantity.py +140 -0
- factpulse-3.0.35/factpulse/models/rate.py +140 -0
- factpulse-3.0.35/factpulse/models/rate1.py +140 -0
- factpulse-3.0.35/factpulse/models/reason_code_info.py +92 -0
- factpulse-3.0.35/factpulse/models/reason_codes_response.py +100 -0
- factpulse-3.0.35/factpulse/models/recipient.py +168 -0
- factpulse-3.0.35/factpulse/models/recipient_input.py +116 -0
- factpulse-3.0.35/factpulse/models/report_period.py +91 -0
- factpulse-3.0.35/factpulse/models/report_sender.py +98 -0
- factpulse-3.0.35/factpulse/models/rounding_amount.py +146 -0
- factpulse-3.0.35/factpulse/models/schematron_validation_error.py +128 -0
- factpulse-3.0.35/factpulse/models/scheme_id.py +54 -0
- factpulse-3.0.35/factpulse/models/search_flow_request.py +144 -0
- factpulse-3.0.35/factpulse/models/search_flow_response.py +102 -0
- factpulse-3.0.35/factpulse/models/search_services_response.py +102 -0
- factpulse-3.0.35/factpulse/models/search_structure_request.py +120 -0
- factpulse-3.0.35/factpulse/models/search_structure_response.py +102 -0
- factpulse-3.0.35/factpulse/models/sellercountry.py +137 -0
- factpulse-3.0.35/factpulse/models/signature_info.py +102 -0
- factpulse-3.0.35/factpulse/models/signature_info_api.py +123 -0
- factpulse-3.0.35/factpulse/models/signature_parameters.py +134 -0
- factpulse-3.0.35/factpulse/models/simplified_invoice_data.py +151 -0
- factpulse-3.0.35/factpulse/models/status_code_info.py +92 -0
- factpulse-3.0.35/factpulse/models/status_codes_response.py +100 -0
- factpulse-3.0.35/factpulse/models/structure_info.py +96 -0
- factpulse-3.0.35/factpulse/models/structure_parameters.py +92 -0
- factpulse-3.0.35/factpulse/models/structure_service.py +94 -0
- factpulse-3.0.35/factpulse/models/submission_mode.py +39 -0
- factpulse-3.0.35/factpulse/models/submit_aggregated_report_request.py +127 -0
- factpulse-3.0.35/factpulse/models/submit_cdar_request.py +177 -0
- factpulse-3.0.35/factpulse/models/submit_cdar_response.py +104 -0
- factpulse-3.0.35/factpulse/models/submit_cdarxml_request.py +97 -0
- factpulse-3.0.35/factpulse/models/submit_complete_invoice_request.py +117 -0
- factpulse-3.0.35/factpulse/models/submit_complete_invoice_response.py +146 -0
- factpulse-3.0.35/factpulse/models/submit_e_reporting_request.py +127 -0
- factpulse-3.0.35/factpulse/models/submit_e_reporting_response.py +117 -0
- factpulse-3.0.35/factpulse/models/submit_flow_request.py +124 -0
- factpulse-3.0.35/factpulse/models/submit_flow_response.py +110 -0
- factpulse-3.0.35/factpulse/models/submit_gross_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/submit_invoice_request.py +177 -0
- factpulse-3.0.35/factpulse/models/submit_invoice_response.py +104 -0
- factpulse-3.0.35/factpulse/models/submit_net_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/submit_vat_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/supplementary_attachment.py +96 -0
- factpulse-3.0.35/factpulse/models/supplier.py +226 -0
- factpulse-3.0.35/factpulse/models/task_response.py +88 -0
- factpulse-3.0.35/factpulse/models/tax_breakdown_input.py +104 -0
- factpulse-3.0.35/factpulse/models/tax_due_date_type.py +42 -0
- factpulse-3.0.35/factpulse/models/tax_representative.py +96 -0
- factpulse-3.0.35/factpulse/models/taxable_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/taxableamount.py +140 -0
- factpulse-3.0.35/factpulse/models/taxamount.py +140 -0
- factpulse-3.0.35/factpulse/models/taxamount1.py +140 -0
- factpulse-3.0.35/factpulse/models/taxamount2.py +140 -0
- factpulse-3.0.35/factpulse/models/taxexclusiveamount.py +140 -0
- factpulse-3.0.35/factpulse/models/taxexclusiveamount1.py +140 -0
- factpulse-3.0.35/factpulse/models/total_gross_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/total_net_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/total_vat_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/transaction_category.py +40 -0
- factpulse-3.0.35/factpulse/models/transmission_type_code.py +38 -0
- factpulse-3.0.35/factpulse/models/unit_net_price.py +140 -0
- factpulse-3.0.35/factpulse/models/unit_of_measure.py +42 -0
- factpulse-3.0.35/factpulse/models/validate_cdar_request.py +147 -0
- factpulse-3.0.35/factpulse/models/validate_cdar_response.py +107 -0
- factpulse-3.0.35/factpulse/models/validate_e_reporting_request.py +92 -0
- factpulse-3.0.35/factpulse/models/validate_e_reporting_response.py +113 -0
- factpulse-3.0.35/factpulse/models/validation_error.py +100 -0
- factpulse-3.0.35/factpulse/models/validation_error_detail.py +108 -0
- factpulse-3.0.35/factpulse/models/validation_error_response.py +99 -0
- factpulse-3.0.35/factpulse/models/validation_info.py +106 -0
- factpulse-3.0.35/factpulse/models/validation_success_response.py +88 -0
- factpulse-3.0.35/factpulse/models/vat_accounting_code.py +40 -0
- factpulse-3.0.35/factpulse/models/vat_amount.py +140 -0
- factpulse-3.0.35/factpulse/models/vat_category.py +45 -0
- factpulse-3.0.35/factpulse/models/vat_line.py +141 -0
- factpulse-3.0.35/factpulse/models/vat_point_date_code.py +39 -0
- factpulse-3.0.35/factpulse/models/vat_rate.py +146 -0
- factpulse-3.0.35/factpulse/models/verification_success_response.py +136 -0
- factpulse-3.0.35/factpulse/models/verified_field_schema.py +130 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/rest.py +10 -4
- factpulse-3.0.35/factpulse.egg-info/PKG-INFO +260 -0
- factpulse-3.0.35/factpulse.egg-info/SOURCES.txt +632 -0
- factpulse-3.0.35/factpulse_helpers/__init__.py +98 -0
- factpulse-3.0.35/factpulse_helpers/client.py +2196 -0
- factpulse-3.0.35/factpulse_helpers/exceptions.py +253 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/pyproject.toml +5 -4
- factpulse-3.0.35/setup.py +57 -0
- factpulse-3.0.35/test/test_acknowledgment_status.py +34 -0
- factpulse-3.0.35/test/test_action_code_info.py +57 -0
- factpulse-3.0.35/test/test_action_codes_response.py +66 -0
- factpulse-3.0.35/test/test_additional_document.py +57 -0
- factpulse-3.0.35/test/test_afnor_acknowledgement.py +60 -0
- factpulse-3.0.35/test/test_afnor_acknowledgement_detail.py +59 -0
- factpulse-3.0.35/test/test_afnor_address_edit.py +58 -0
- factpulse-3.0.35/test/test_afnor_address_patch.py +58 -0
- factpulse-3.0.35/test/test_afnor_address_put.py +65 -0
- factpulse-3.0.35/test/test_afnor_address_read.py +59 -0
- factpulse-3.0.35/test/test_afnor_algorithm.py +34 -0
- factpulse-3.0.35/test/test_afnor_contains_operator.py +34 -0
- factpulse-3.0.35/test/test_afnor_create_directory_line_body.py +59 -0
- factpulse-3.0.35/test/test_afnor_create_directory_line_body_addressing_information.py +56 -0
- factpulse-3.0.35/test/test_afnor_create_directory_line_body_period.py +54 -0
- factpulse-3.0.35/test/test_afnor_create_routing_code_body.py +71 -0
- factpulse-3.0.35/test/test_afnor_credentials.py +54 -0
- factpulse-3.0.35/test/test_afnor_destination.py +56 -0
- factpulse-3.0.35/test/test_afnor_diffusion_status.py +34 -0
- factpulse-3.0.35/test/test_afnor_directory_line_field.py +34 -0
- factpulse-3.0.35/test/test_afnor_directory_line_payload_history_legal_unit_facility_routing_code.py +100 -0
- factpulse-3.0.35/test/test_afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.py +53 -0
- factpulse-3.0.35/test/test_afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.py +65 -0
- factpulse-3.0.35/test/test_afnor_directory_line_post201_response.py +54 -0
- factpulse-3.0.35/test/test_afnor_directory_line_search_post200_response.py +106 -0
- factpulse-3.0.35/test/test_afnor_entity_type.py +34 -0
- factpulse-3.0.35/test/test_afnor_error.py +56 -0
- factpulse-3.0.35/test/test_afnor_facility_administrative_status.py +34 -0
- factpulse-3.0.35/test/test_afnor_facility_nature.py +34 -0
- factpulse-3.0.35/test/test_afnor_facility_payload_history.py +77 -0
- factpulse-3.0.35/test/test_afnor_facility_payload_history_ule_b2g_additional_data.py +57 -0
- factpulse-3.0.35/test/test_afnor_facility_payload_included.py +73 -0
- factpulse-3.0.35/test/test_afnor_facility_type.py +34 -0
- factpulse-3.0.35/test/test_afnor_flow.py +70 -0
- factpulse-3.0.35/test/test_afnor_flow_ack_status.py +34 -0
- factpulse-3.0.35/test/test_afnor_flow_direction.py +34 -0
- factpulse-3.0.35/test/test_afnor_flow_info.py +58 -0
- factpulse-3.0.35/test/test_afnor_flow_profile.py +34 -0
- factpulse-3.0.35/test/test_afnor_flow_syntax.py +34 -0
- factpulse-3.0.35/test/test_afnor_flow_type.py +34 -0
- factpulse-3.0.35/test/test_afnor_full_flow_info.py +60 -0
- factpulse-3.0.35/test/test_afnor_health_check_response.py +57 -0
- factpulse-3.0.35/test/test_afnor_legal_unit_administrative_status.py +34 -0
- factpulse-3.0.35/test/test_afnor_legal_unit_payload_history.py +55 -0
- factpulse-3.0.35/test/test_afnor_legal_unit_payload_included.py +55 -0
- factpulse-3.0.35/test/test_afnor_legal_unit_payload_included_no_siren.py +54 -0
- factpulse-3.0.35/test/test_afnor_platform_status.py +34 -0
- factpulse-3.0.35/test/test_afnor_processing_rule.py +34 -0
- factpulse-3.0.35/test/test_afnor_reason_code.py +51 -0
- factpulse-3.0.35/test/test_afnor_reason_code_enum.py +34 -0
- factpulse-3.0.35/test/test_afnor_recipient_platform_type.py +34 -0
- factpulse-3.0.35/test/test_afnor_result.py +62 -0
- factpulse-3.0.35/test/test_afnor_routing_code_administrative_status.py +34 -0
- factpulse-3.0.35/test/test_afnor_routing_code_field.py +34 -0
- factpulse-3.0.35/test/test_afnor_routing_code_payload_history_legal_unit_facility.py +94 -0
- factpulse-3.0.35/test/test_afnor_routing_code_post201_response.py +54 -0
- factpulse-3.0.35/test/test_afnor_routing_code_search.py +66 -0
- factpulse-3.0.35/test/test_afnor_routing_code_search_filters.py +72 -0
- factpulse-3.0.35/test/test_afnor_routing_code_search_filters_administrative_status.py +53 -0
- factpulse-3.0.35/test/test_afnor_routing_code_search_filters_routing_code_name.py +53 -0
- factpulse-3.0.35/test/test_afnor_routing_code_search_filters_routing_identifier.py +53 -0
- factpulse-3.0.35/test/test_afnor_routing_code_search_post200_response.py +103 -0
- factpulse-3.0.35/test/test_afnor_routing_code_search_sorting_inner.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_directory_line.py +63 -0
- factpulse-3.0.35/test/test_afnor_search_directory_line_filters.py +66 -0
- factpulse-3.0.35/test/test_afnor_search_directory_line_filters_addressing_identifier.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_directory_line_filters_addressing_suffix.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_directory_line_sorting_inner.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_flow_content.py +88 -0
- factpulse-3.0.35/test/test_afnor_search_flow_filters.py +64 -0
- factpulse-3.0.35/test/test_afnor_search_flow_params.py +80 -0
- factpulse-3.0.35/test/test_afnor_search_siren.py +62 -0
- factpulse-3.0.35/test/test_afnor_search_siren_filters.py +63 -0
- factpulse-3.0.35/test/test_afnor_search_siren_filters_administrative_status.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siren_filters_business_name.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siren_filters_entity_type.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siren_filters_siren.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siren_sorting_inner.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret.py +68 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters.py +78 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_address_lines.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_administrative_status.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_country_subdivision.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_facility_type.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_locality.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_name.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_postal_code.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_filters_siret.py +53 -0
- factpulse-3.0.35/test/test_afnor_search_siret_sorting_inner.py +53 -0
- factpulse-3.0.35/test/test_afnor_siren_field.py +34 -0
- factpulse-3.0.35/test/test_afnor_siren_search_post200_response.py +71 -0
- factpulse-3.0.35/test/test_afnor_siret_field.py +34 -0
- factpulse-3.0.35/test/test_afnor_siret_search_post200_response.py +98 -0
- factpulse-3.0.35/test/test_afnor_sorting_order.py +34 -0
- factpulse-3.0.35/test/test_afnor_strict_operator.py +34 -0
- factpulse-3.0.35/test/test_afnor_update_patch_directory_line_body.py +52 -0
- factpulse-3.0.35/test/test_afnor_update_patch_routing_code_body.py +62 -0
- factpulse-3.0.35/test/test_afnor_update_put_routing_code_body.py +65 -0
- factpulse-3.0.35/test/test_afnor_webhook_callback_content.py +71 -0
- factpulse-3.0.35/test/test_afnorpdppa_api.py +53 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/test/test_afnorpdppa_directory_service_api.py +9 -8
- factpulse-3.0.35/test/test_afnorpdppa_flow_service_api.py +60 -0
- factpulse-3.0.35/test/test_aggregated_payment_input.py +64 -0
- factpulse-3.0.35/test/test_aggregated_transaction_input.py +74 -0
- factpulse-3.0.35/test/test_allowance_charge.py +61 -0
- factpulse-3.0.35/test/test_allowance_charge_reason_code.py +34 -0
- factpulse-3.0.35/test/test_allowance_reason_code.py +34 -0
- factpulse-3.0.35/test/test_allowance_total_amount.py +51 -0
- factpulse-3.0.35/test/test_amount.py +51 -0
- factpulse-3.0.35/test/test_amount1.py +51 -0
- factpulse-3.0.35/test/test_amount_due.py +51 -0
- factpulse-3.0.35/test/test_api_error.py +63 -0
- factpulse-3.0.35/test/test_api_profile.py +34 -0
- factpulse-3.0.35/test/test_async_task_status.py +56 -0
- factpulse-3.0.35/test/test_base_amount.py +51 -0
- factpulse-3.0.35/test/test_body_submit_cdar_api_v1_cdar_submit_post.py +106 -0
- factpulse-3.0.35/test/test_body_submit_cdar_xml_api_v1_cdar_submit_xml_post.py +60 -0
- factpulse-3.0.35/test/test_bounding_box_schema.py +64 -0
- factpulse-3.0.35/test/test_buyercountry.py +51 -0
- factpulse-3.0.35/test/test_cdar_cycle_de_vie_api.py +81 -0
- factpulse-3.0.35/test/test_celery_status.py +34 -0
- factpulse-3.0.35/test/test_certificate_info_response.py +74 -0
- factpulse-3.0.35/test/test_charge_total_amount.py +51 -0
- factpulse-3.0.35/test/test_chorus_pro_api.py +144 -0
- factpulse-3.0.35/test/test_chorus_pro_credentials.py +56 -0
- factpulse-3.0.35/test/test_chorus_pro_destination.py +53 -0
- factpulse-3.0.35/test/test_chorus_pro_result.py +55 -0
- factpulse-3.0.35/test/test_contact.py +55 -0
- factpulse-3.0.35/test/test_convert_resume_request.py +52 -0
- factpulse-3.0.35/test/test_convert_success_response.py +118 -0
- factpulse-3.0.35/test/test_convert_validation_failed_response.py +116 -0
- factpulse-3.0.35/test/test_country_code.py +34 -0
- factpulse-3.0.35/test/test_create_aggregated_report_request.py +131 -0
- factpulse-3.0.35/test/test_create_cdar_request.py +81 -0
- factpulse-3.0.35/test/test_create_e_reporting_request.py +133 -0
- factpulse-3.0.35/test/test_currency.py +51 -0
- factpulse-3.0.35/test/test_currency_code.py +34 -0
- factpulse-3.0.35/test/test_delivery_party.py +64 -0
- factpulse-3.0.35/test/test_destination.py +56 -0
- factpulse-3.0.35/test/test_doc_type.py +34 -0
- factpulse-3.0.35/test/test_document_conversion_api.py +60 -0
- factpulse-3.0.35/test/test_document_type_info.py +57 -0
- factpulse-3.0.35/test/test_downloads_api.py +60 -0
- factpulse-3.0.35/test/test_e_reporting_api.py +109 -0
- factpulse-3.0.35/test/test_e_reporting_flow_type.py +34 -0
- factpulse-3.0.35/test/test_e_reporting_validation_error.py +56 -0
- factpulse-3.0.35/test/test_electronic_address.py +54 -0
- factpulse-3.0.35/test/test_encaisseamount.py +51 -0
- factpulse-3.0.35/test/test_encaisseamount1.py +51 -0
- factpulse-3.0.35/test/test_enriched_invoice_info.py +65 -0
- factpulse-3.0.35/test/test_error_level.py +34 -0
- factpulse-3.0.35/test/test_error_source.py +34 -0
- factpulse-3.0.35/test/test_extraction_info.py +57 -0
- factpulse-3.0.35/test/test_factur_x_invoice.py +350 -0
- factpulse-3.0.35/test/test_factur_xpdf_info.py +56 -0
- factpulse-3.0.35/test/test_facture_electronique_models_invoice_type_code.py +34 -0
- factpulse-3.0.35/test/test_facture_electronique_rest_api_schemas_chorus_pro_chorus_pro_credentials.py +60 -0
- factpulse-3.0.35/test/test_facture_electronique_rest_api_schemas_validation_validation_error_response.py +57 -0
- factpulse-3.0.35/test/test_field_status.py +34 -0
- factpulse-3.0.35/test/test_file_info.py +53 -0
- factpulse-3.0.35/test/test_files_info.py +57 -0
- factpulse-3.0.35/test/test_flow_direction.py +34 -0
- factpulse-3.0.35/test/test_flow_profile.py +34 -0
- factpulse-3.0.35/test/test_flow_summary.py +61 -0
- factpulse-3.0.35/test/test_flow_syntax.py +34 -0
- factpulse-3.0.35/test/test_flow_type.py +34 -0
- factpulse-3.0.35/test/test_generate_aggregated_report_response.py +65 -0
- factpulse-3.0.35/test/test_generate_cdar_response.py +61 -0
- factpulse-3.0.35/test/test_generate_certificate_request.py +62 -0
- factpulse-3.0.35/test/test_generate_certificate_response.py +92 -0
- factpulse-3.0.35/test/test_generate_e_reporting_response.py +61 -0
- factpulse-3.0.35/test/test_get_chorus_pro_id_request.py +55 -0
- factpulse-3.0.35/test/test_get_chorus_pro_id_response.py +58 -0
- factpulse-3.0.35/test/test_get_invoice_request.py +54 -0
- factpulse-3.0.35/test/test_get_invoice_response.py +65 -0
- factpulse-3.0.35/test/test_get_structure_request.py +55 -0
- factpulse-3.0.35/test/test_get_structure_response.py +65 -0
- factpulse-3.0.35/test/test_global_allowance_amount.py +51 -0
- factpulse-3.0.35/test/test_gross_unit_price.py +51 -0
- factpulse-3.0.35/test/test_health_api.py +46 -0
- factpulse-3.0.35/test/test_http_validation_error.py +59 -0
- factpulse-3.0.35/test/test_incoming_invoice.py +94 -0
- factpulse-3.0.35/test/test_incoming_supplier.py +69 -0
- factpulse-3.0.35/test/test_invoice_format.py +34 -0
- factpulse-3.0.35/test/test_invoice_input.py +84 -0
- factpulse-3.0.35/test/test_invoice_line.py +120 -0
- factpulse-3.0.35/test/test_invoice_line_allowance_amount.py +51 -0
- factpulse-3.0.35/test/test_invoice_note.py +54 -0
- factpulse-3.0.35/test/test_invoice_payment_input.py +68 -0
- factpulse-3.0.35/test/test_invoice_processing_api.py +109 -0
- factpulse-3.0.35/test/test_invoice_references.py +72 -0
- factpulse-3.0.35/test/test_invoice_status.py +56 -0
- factpulse-3.0.35/test/test_invoice_totals.py +66 -0
- factpulse-3.0.35/test/test_invoice_totals_prepayment.py +51 -0
- factpulse-3.0.35/test/test_invoice_type_code.py +34 -0
- factpulse-3.0.35/test/test_invoice_type_code_output.py +34 -0
- factpulse-3.0.35/test/test_invoicing_framework.py +56 -0
- factpulse-3.0.35/test/test_invoicing_framework_code.py +34 -0
- factpulse-3.0.35/test/test_line_net_amount.py +51 -0
- factpulse-3.0.35/test/test_line_sub_type.py +34 -0
- factpulse-3.0.35/test/test_line_total_amount.py +51 -0
- factpulse-3.0.35/test/test_location_inner.py +51 -0
- factpulse-3.0.35/test/test_mandatory_note_schema.py +60 -0
- factpulse-3.0.35/test/test_manual_rate.py +51 -0
- factpulse-3.0.35/test/test_manual_vat_rate.py +51 -0
- factpulse-3.0.35/test/test_missing_field.py +65 -0
- factpulse-3.0.35/test/test_operation_nature.py +34 -0
- factpulse-3.0.35/test/test_output_format.py +34 -0
- factpulse-3.0.35/test/test_page_dimensions_schema.py +55 -0
- factpulse-3.0.35/test/test_payee.py +66 -0
- factpulse-3.0.35/test/test_payment_amount_by_rate.py +55 -0
- factpulse-3.0.35/test/test_payment_card.py +53 -0
- factpulse-3.0.35/test/test_payment_means.py +34 -0
- factpulse-3.0.35/test/test_pdf_validation_result_api.py +100 -0
- factpulse-3.0.35/test/test_pdfxml_verification_api.py +74 -0
- factpulse-3.0.35/test/test_pdp_credentials.py +60 -0
- factpulse-3.0.35/test/test_percentage.py +51 -0
- factpulse-3.0.35/test/test_postal_address.py +58 -0
- factpulse-3.0.35/test/test_price_allowance_amount.py +51 -0
- factpulse-3.0.35/test/test_price_basis_quantity.py +51 -0
- factpulse-3.0.35/test/test_processing_options.py +55 -0
- factpulse-3.0.35/test/test_processing_rule.py +34 -0
- factpulse-3.0.35/test/test_product_characteristic.py +55 -0
- factpulse-3.0.35/test/test_product_classification.py +55 -0
- factpulse-3.0.35/test/test_quantity.py +51 -0
- factpulse-3.0.35/test/test_rate.py +51 -0
- factpulse-3.0.35/test/test_rate1.py +51 -0
- factpulse-3.0.35/test/test_reason_code_info.py +57 -0
- factpulse-3.0.35/test/test_reason_codes_response.py +66 -0
- factpulse-3.0.35/test/test_recipient.py +80 -0
- factpulse-3.0.35/test/test_recipient_input.py +56 -0
- factpulse-3.0.35/test/test_report_period.py +55 -0
- factpulse-3.0.35/test/test_report_sender.py +56 -0
- factpulse-3.0.35/test/test_rounding_amount.py +51 -0
- factpulse-3.0.35/test/test_schematron_validation_error.py +62 -0
- factpulse-3.0.35/test/test_scheme_id.py +34 -0
- factpulse-3.0.35/test/test_search_flow_request.py +64 -0
- factpulse-3.0.35/test/test_search_flow_response.py +79 -0
- factpulse-3.0.35/test/test_search_services_response.py +63 -0
- factpulse-3.0.35/test/test_search_structure_request.py +56 -0
- factpulse-3.0.35/test/test_search_structure_response.py +64 -0
- factpulse-3.0.35/test/test_sellercountry.py +51 -0
- factpulse-3.0.35/test/test_signature_info.py +55 -0
- factpulse-3.0.35/test/test_signature_info_api.py +58 -0
- factpulse-3.0.35/test/test_signature_parameters.py +60 -0
- factpulse-3.0.35/test/test_simplified_invoice_data.py +72 -0
- factpulse-3.0.35/test/test_status_code_info.py +57 -0
- factpulse-3.0.35/test/test_status_codes_response.py +66 -0
- factpulse-3.0.35/test/test_structure_info.py +61 -0
- factpulse-3.0.35/test/test_structure_parameters.py +54 -0
- factpulse-3.0.35/test/test_structure_service.py +59 -0
- factpulse-3.0.35/test/test_submission_mode.py +34 -0
- factpulse-3.0.35/test/test_submit_aggregated_report_request.py +58 -0
- factpulse-3.0.35/test/test_submit_cdar_request.py +82 -0
- factpulse-3.0.35/test/test_submit_cdar_response.py +57 -0
- factpulse-3.0.35/test/test_submit_cdarxml_request.py +55 -0
- factpulse-3.0.35/test/test_submit_complete_invoice_request.py +98 -0
- factpulse-3.0.35/test/test_submit_complete_invoice_response.py +86 -0
- factpulse-3.0.35/test/test_submit_e_reporting_request.py +58 -0
- factpulse-3.0.35/test/test_submit_e_reporting_response.py +64 -0
- factpulse-3.0.35/test/test_submit_flow_request.py +58 -0
- factpulse-3.0.35/test/test_submit_flow_response.py +63 -0
- factpulse-3.0.35/test/test_submit_gross_amount.py +51 -0
- factpulse-3.0.35/test/test_submit_invoice_request.py +72 -0
- factpulse-3.0.35/test/test_submit_invoice_response.py +57 -0
- factpulse-3.0.35/test/test_submit_net_amount.py +51 -0
- factpulse-3.0.35/test/test_submit_vat_amount.py +51 -0
- factpulse-3.0.35/test/test_supplementary_attachment.py +61 -0
- factpulse-3.0.35/test/test_supplier.py +90 -0
- factpulse-3.0.35/test/test_task_response.py +53 -0
- factpulse-3.0.35/test/test_tax_breakdown_input.py +57 -0
- factpulse-3.0.35/test/test_tax_due_date_type.py +34 -0
- factpulse-3.0.35/test/test_tax_representative.py +71 -0
- factpulse-3.0.35/test/test_taxable_amount.py +51 -0
- factpulse-3.0.35/test/test_taxableamount.py +51 -0
- factpulse-3.0.35/test/test_taxamount.py +51 -0
- factpulse-3.0.35/test/test_taxamount1.py +51 -0
- factpulse-3.0.35/test/test_taxamount2.py +51 -0
- factpulse-3.0.35/test/test_taxexclusiveamount.py +51 -0
- factpulse-3.0.35/test/test_taxexclusiveamount1.py +51 -0
- factpulse-3.0.35/test/test_total_gross_amount.py +51 -0
- factpulse-3.0.35/test/test_total_net_amount.py +51 -0
- factpulse-3.0.35/test/test_total_vat_amount.py +51 -0
- factpulse-3.0.35/test/test_transaction_category.py +34 -0
- factpulse-3.0.35/test/test_transmission_type_code.py +34 -0
- factpulse-3.0.35/test/test_unit_net_price.py +51 -0
- factpulse-3.0.35/test/test_unit_of_measure.py +34 -0
- factpulse-3.0.35/test/test_user_api.py +39 -0
- factpulse-3.0.35/test/test_validate_cdar_request.py +59 -0
- factpulse-3.0.35/test/test_validate_cdar_response.py +67 -0
- factpulse-3.0.35/test/test_validate_e_reporting_request.py +53 -0
- factpulse-3.0.35/test/test_validate_e_reporting_response.py +71 -0
- factpulse-3.0.35/test/test_validation_error.py +61 -0
- factpulse-3.0.35/test/test_validation_error_detail.py +58 -0
- factpulse-3.0.35/test/test_validation_error_response.py +57 -0
- factpulse-3.0.35/test/test_validation_info.py +70 -0
- factpulse-3.0.35/test/test_validation_success_response.py +53 -0
- factpulse-3.0.35/test/test_vat_accounting_code.py +34 -0
- factpulse-3.0.35/test/test_vat_amount.py +51 -0
- factpulse-3.0.35/test/test_vat_category.py +34 -0
- factpulse-3.0.35/test/test_vat_line.py +61 -0
- factpulse-3.0.35/test/test_vat_point_date_code.py +34 -0
- factpulse-3.0.35/test/test_vat_rate.py +51 -0
- factpulse-3.0.35/test/test_verification_success_response.py +71 -0
- factpulse-3.0.35/test/test_verified_field_schema.py +63 -0
- factpulse-2.0.19/PKG-INFO +0 -217
- factpulse-2.0.19/README.md +0 -197
- factpulse-2.0.19/factpulse/__init__.py +0 -258
- factpulse-2.0.19/factpulse/api/__init__.py +0 -11
- factpulse-2.0.19/factpulse/api/traitement_facture_api.py +0 -3437
- factpulse-2.0.19/factpulse/api/utilisateur_api.py +0 -282
- factpulse-2.0.19/factpulse/models/__init__.py +0 -115
- factpulse-2.0.19/factpulse/models/adresse_electronique.py +0 -90
- factpulse-2.0.19/factpulse/models/adresse_postale.py +0 -120
- factpulse-2.0.19/factpulse/models/api_error.py +0 -104
- factpulse-2.0.19/factpulse/models/body_ajouter_fichier_api_v1_chorus_pro_transverses_ajouter_fichier_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_completer_facture_api_v1_chorus_pro_factures_completer_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_lister_services_structure_api_v1_chorus_pro_structures_id_structure_cpp_services_get.py +0 -102
- factpulse-2.0.19/factpulse/models/body_rechercher_factures_destinataire_api_v1_chorus_pro_factures_rechercher_destinataire_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_rechercher_factures_fournisseur_api_v1_chorus_pro_factures_rechercher_fournisseur_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_recycler_facture_api_v1_chorus_pro_factures_recycler_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_telecharger_groupe_factures_api_v1_chorus_pro_factures_telecharger_groupe_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_traiter_facture_recue_api_v1_chorus_pro_factures_traiter_facture_recue_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_valideur_consulter_facture_api_v1_chorus_pro_factures_valideur_consulter_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_valideur_rechercher_factures_api_v1_chorus_pro_factures_valideur_rechercher_post.py +0 -104
- factpulse-2.0.19/factpulse/models/body_valideur_traiter_facture_api_v1_chorus_pro_factures_valideur_traiter_post.py +0 -104
- factpulse-2.0.19/factpulse/models/cadre_de_facturation.py +0 -102
- factpulse-2.0.19/factpulse/models/categorie_tva.py +0 -44
- factpulse-2.0.19/factpulse/models/certificate_info_response.py +0 -114
- factpulse-2.0.19/factpulse/models/chorus_pro_credentials.py +0 -95
- factpulse-2.0.19/factpulse/models/code_cadre_facturation.py +0 -39
- factpulse-2.0.19/factpulse/models/code_raison_reduction.py +0 -42
- factpulse-2.0.19/factpulse/models/consulter_facture_request.py +0 -98
- factpulse-2.0.19/factpulse/models/consulter_facture_response.py +0 -142
- factpulse-2.0.19/factpulse/models/consulter_structure_request.py +0 -100
- factpulse-2.0.19/factpulse/models/consulter_structure_response.py +0 -142
- factpulse-2.0.19/factpulse/models/credentials_afnor.py +0 -106
- factpulse-2.0.19/factpulse/models/credentials_chorus_pro.py +0 -115
- factpulse-2.0.19/factpulse/models/destinataire.py +0 -130
- factpulse-2.0.19/factpulse/models/destination.py +0 -140
- factpulse-2.0.19/factpulse/models/destination_afnor.py +0 -127
- factpulse-2.0.19/factpulse/models/destination_chorus_pro.py +0 -108
- factpulse-2.0.19/factpulse/models/donnees_facture_simplifiees.py +0 -124
- factpulse-2.0.19/factpulse/models/error_level.py +0 -37
- factpulse-2.0.19/factpulse/models/error_source.py +0 -43
- factpulse-2.0.19/factpulse/models/facture_enrichie_info.py +0 -133
- factpulse-2.0.19/factpulse/models/facture_factur_x.py +0 -183
- factpulse-2.0.19/factpulse/models/format_sortie.py +0 -37
- factpulse-2.0.19/factpulse/models/fournisseur.py +0 -153
- factpulse-2.0.19/factpulse/models/generate_certificate_request.py +0 -118
- factpulse-2.0.19/factpulse/models/generate_certificate_response.py +0 -106
- factpulse-2.0.19/factpulse/models/http_validation_error.py +0 -95
- factpulse-2.0.19/factpulse/models/information_signature_api.py +0 -122
- factpulse-2.0.19/factpulse/models/ligne_de_poste.py +0 -183
- factpulse-2.0.19/factpulse/models/ligne_de_poste_montant_remise_ht.py +0 -145
- factpulse-2.0.19/factpulse/models/ligne_de_poste_taux_tva_manuel.py +0 -145
- factpulse-2.0.19/factpulse/models/ligne_de_tva.py +0 -118
- factpulse-2.0.19/factpulse/models/mode_depot.py +0 -38
- factpulse-2.0.19/factpulse/models/mode_paiement.py +0 -41
- factpulse-2.0.19/factpulse/models/montant_a_payer.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_base_ht.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_ht_total.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_remise_globale_ttc.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_total.py +0 -133
- factpulse-2.0.19/factpulse/models/montant_total_acompte.py +0 -145
- factpulse-2.0.19/factpulse/models/montant_total_ligne_ht.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_ttc_total.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_tva.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_tva_ligne.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_tva_total.py +0 -139
- factpulse-2.0.19/factpulse/models/montant_unitaire_ht.py +0 -139
- factpulse-2.0.19/factpulse/models/note.py +0 -94
- factpulse-2.0.19/factpulse/models/obtenir_id_chorus_pro_request.py +0 -100
- factpulse-2.0.19/factpulse/models/obtenir_id_chorus_pro_response.py +0 -98
- factpulse-2.0.19/factpulse/models/options_processing.py +0 -94
- factpulse-2.0.19/factpulse/models/parametres_signature.py +0 -133
- factpulse-2.0.19/factpulse/models/parametres_structure.py +0 -91
- factpulse-2.0.19/factpulse/models/pdf_factur_x_info.py +0 -91
- factpulse-2.0.19/factpulse/models/piece_jointe_complementaire.py +0 -95
- factpulse-2.0.19/factpulse/models/profil_api.py +0 -39
- factpulse-2.0.19/factpulse/models/quantite.py +0 -139
- factpulse-2.0.19/factpulse/models/quota_info.py +0 -95
- factpulse-2.0.19/factpulse/models/rechercher_services_response.py +0 -101
- factpulse-2.0.19/factpulse/models/rechercher_structure_request.py +0 -119
- factpulse-2.0.19/factpulse/models/rechercher_structure_response.py +0 -101
- factpulse-2.0.19/factpulse/models/references.py +0 -124
- factpulse-2.0.19/factpulse/models/reponse_tache.py +0 -87
- factpulse-2.0.19/factpulse/models/reponse_validation_erreur.py +0 -87
- factpulse-2.0.19/factpulse/models/reponse_validation_succes.py +0 -87
- factpulse-2.0.19/factpulse/models/resultat_afnor.py +0 -105
- factpulse-2.0.19/factpulse/models/resultat_chorus_pro.py +0 -101
- factpulse-2.0.19/factpulse/models/resultat_validation_pdfapi.py +0 -169
- factpulse-2.0.19/factpulse/models/scheme_id.py +0 -40
- factpulse-2.0.19/factpulse/models/service_structure.py +0 -93
- factpulse-2.0.19/factpulse/models/signature_info.py +0 -101
- factpulse-2.0.19/factpulse/models/soumettre_facture_complete_request.py +0 -116
- factpulse-2.0.19/factpulse/models/soumettre_facture_complete_response.py +0 -145
- factpulse-2.0.19/factpulse/models/soumettre_facture_request.py +0 -176
- factpulse-2.0.19/factpulse/models/soumettre_facture_response.py +0 -103
- factpulse-2.0.19/factpulse/models/statut_celery.py +0 -40
- factpulse-2.0.19/factpulse/models/statut_facture.py +0 -96
- factpulse-2.0.19/factpulse/models/statut_tache.py +0 -97
- factpulse-2.0.19/factpulse/models/structure_info.py +0 -95
- factpulse-2.0.19/factpulse/models/tauxmanuel.py +0 -139
- factpulse-2.0.19/factpulse/models/type_facture.py +0 -37
- factpulse-2.0.19/factpulse/models/type_tva.py +0 -39
- factpulse-2.0.19/factpulse/models/unite.py +0 -41
- factpulse-2.0.19/factpulse/models/utilisateur.py +0 -128
- factpulse-2.0.19/factpulse/models/validation_error.py +0 -99
- factpulse-2.0.19/factpulse/models/validation_error_detail.py +0 -107
- factpulse-2.0.19/factpulse/models/validation_error_loc_inner.py +0 -138
- factpulse-2.0.19/factpulse.egg-info/PKG-INFO +0 -217
- factpulse-2.0.19/factpulse.egg-info/SOURCES.txt +0 -234
- factpulse-2.0.19/factpulse_helpers/__init__.py +0 -69
- factpulse-2.0.19/factpulse_helpers/client.py +0 -537
- factpulse-2.0.19/factpulse_helpers/exceptions.py +0 -46
- factpulse-2.0.19/setup.py +0 -49
- factpulse-2.0.19/test/test_adresse_electronique.py +0 -53
- factpulse-2.0.19/test/test_adresse_postale.py +0 -55
- factpulse-2.0.19/test/test_afnorpdppa_api.py +0 -38
- factpulse-2.0.19/test/test_afnorpdppa_flow_service_api.py +0 -59
- factpulse-2.0.19/test/test_api_error.py +0 -62
- factpulse-2.0.19/test/test_body_ajouter_fichier_api_v1_chorus_pro_transverses_ajouter_fichier_post.py +0 -79
- factpulse-2.0.19/test/test_body_completer_facture_api_v1_chorus_pro_factures_completer_post.py +0 -79
- factpulse-2.0.19/test/test_body_lister_services_structure_api_v1_chorus_pro_structures_id_structure_cpp_services_get.py +0 -77
- factpulse-2.0.19/test/test_body_rechercher_factures_destinataire_api_v1_chorus_pro_factures_rechercher_destinataire_post.py +0 -79
- factpulse-2.0.19/test/test_body_rechercher_factures_fournisseur_api_v1_chorus_pro_factures_rechercher_fournisseur_post.py +0 -79
- factpulse-2.0.19/test/test_body_recycler_facture_api_v1_chorus_pro_factures_recycler_post.py +0 -79
- factpulse-2.0.19/test/test_body_telecharger_groupe_factures_api_v1_chorus_pro_factures_telecharger_groupe_post.py +0 -79
- factpulse-2.0.19/test/test_body_traiter_facture_recue_api_v1_chorus_pro_factures_traiter_facture_recue_post.py +0 -79
- factpulse-2.0.19/test/test_body_valideur_consulter_facture_api_v1_chorus_pro_factures_valideur_consulter_post.py +0 -79
- factpulse-2.0.19/test/test_body_valideur_rechercher_factures_api_v1_chorus_pro_factures_valideur_rechercher_post.py +0 -79
- factpulse-2.0.19/test/test_body_valideur_traiter_facture_api_v1_chorus_pro_factures_valideur_traiter_post.py +0 -79
- factpulse-2.0.19/test/test_cadre_de_facturation.py +0 -54
- factpulse-2.0.19/test/test_categorie_tva.py +0 -33
- factpulse-2.0.19/test/test_certificate_info_response.py +0 -73
- factpulse-2.0.19/test/test_chorus_pro_api.py +0 -143
- factpulse-2.0.19/test/test_chorus_pro_credentials.py +0 -59
- factpulse-2.0.19/test/test_code_cadre_facturation.py +0 -33
- factpulse-2.0.19/test/test_code_raison_reduction.py +0 -33
- factpulse-2.0.19/test/test_consulter_facture_request.py +0 -53
- factpulse-2.0.19/test/test_consulter_facture_response.py +0 -64
- factpulse-2.0.19/test/test_consulter_structure_request.py +0 -54
- factpulse-2.0.19/test/test_consulter_structure_response.py +0 -64
- factpulse-2.0.19/test/test_credentials_afnor.py +0 -53
- factpulse-2.0.19/test/test_credentials_chorus_pro.py +0 -55
- factpulse-2.0.19/test/test_destinataire.py +0 -66
- factpulse-2.0.19/test/test_destination.py +0 -54
- factpulse-2.0.19/test/test_destination_afnor.py +0 -54
- factpulse-2.0.19/test/test_destination_chorus_pro.py +0 -52
- factpulse-2.0.19/test/test_donnees_facture_simplifiees.py +0 -67
- factpulse-2.0.19/test/test_error_level.py +0 -33
- factpulse-2.0.19/test/test_error_source.py +0 -33
- factpulse-2.0.19/test/test_facture_enrichie_info.py +0 -64
- factpulse-2.0.19/test/test_facture_factur_x.py +0 -184
- factpulse-2.0.19/test/test_format_sortie.py +0 -33
- factpulse-2.0.19/test/test_fournisseur.py +0 -71
- factpulse-2.0.19/test/test_generate_certificate_request.py +0 -61
- factpulse-2.0.19/test/test_generate_certificate_response.py +0 -91
- factpulse-2.0.19/test/test_http_validation_error.py +0 -58
- factpulse-2.0.19/test/test_information_signature_api.py +0 -57
- factpulse-2.0.19/test/test_ligne_de_poste.py +0 -70
- factpulse-2.0.19/test/test_ligne_de_poste_montant_remise_ht.py +0 -50
- factpulse-2.0.19/test/test_ligne_de_poste_taux_tva_manuel.py +0 -50
- factpulse-2.0.19/test/test_ligne_de_tva.py +0 -57
- factpulse-2.0.19/test/test_mode_depot.py +0 -33
- factpulse-2.0.19/test/test_mode_paiement.py +0 -33
- factpulse-2.0.19/test/test_montant_a_payer.py +0 -50
- factpulse-2.0.19/test/test_montant_base_ht.py +0 -50
- factpulse-2.0.19/test/test_montant_ht_total.py +0 -50
- factpulse-2.0.19/test/test_montant_remise_globale_ttc.py +0 -50
- factpulse-2.0.19/test/test_montant_total.py +0 -61
- factpulse-2.0.19/test/test_montant_total_acompte.py +0 -50
- factpulse-2.0.19/test/test_montant_total_ligne_ht.py +0 -50
- factpulse-2.0.19/test/test_montant_ttc_total.py +0 -50
- factpulse-2.0.19/test/test_montant_tva.py +0 -50
- factpulse-2.0.19/test/test_montant_tva_ligne.py +0 -50
- factpulse-2.0.19/test/test_montant_tva_total.py +0 -50
- factpulse-2.0.19/test/test_montant_unitaire_ht.py +0 -50
- factpulse-2.0.19/test/test_note.py +0 -53
- factpulse-2.0.19/test/test_obtenir_id_chorus_pro_request.py +0 -54
- factpulse-2.0.19/test/test_obtenir_id_chorus_pro_response.py +0 -57
- factpulse-2.0.19/test/test_options_processing.py +0 -54
- factpulse-2.0.19/test/test_parametres_signature.py +0 -59
- factpulse-2.0.19/test/test_parametres_structure.py +0 -53
- factpulse-2.0.19/test/test_pdf_factur_x_info.py +0 -55
- factpulse-2.0.19/test/test_piece_jointe_complementaire.py +0 -60
- factpulse-2.0.19/test/test_profil_api.py +0 -33
- factpulse-2.0.19/test/test_quantite.py +0 -50
- factpulse-2.0.19/test/test_quota_info.py +0 -60
- factpulse-2.0.19/test/test_rechercher_services_response.py +0 -62
- factpulse-2.0.19/test/test_rechercher_structure_request.py +0 -55
- factpulse-2.0.19/test/test_rechercher_structure_response.py +0 -63
- factpulse-2.0.19/test/test_references.py +0 -61
- factpulse-2.0.19/test/test_reponse_tache.py +0 -52
- factpulse-2.0.19/test/test_reponse_validation_erreur.py +0 -56
- factpulse-2.0.19/test/test_reponse_validation_succes.py +0 -52
- factpulse-2.0.19/test/test_resultat_afnor.py +0 -58
- factpulse-2.0.19/test/test_resultat_chorus_pro.py +0 -54
- factpulse-2.0.19/test/test_resultat_validation_pdfapi.py +0 -99
- factpulse-2.0.19/test/test_sant_api.py +0 -45
- factpulse-2.0.19/test/test_scheme_id.py +0 -33
- factpulse-2.0.19/test/test_service_structure.py +0 -58
- factpulse-2.0.19/test/test_signature_info.py +0 -54
- factpulse-2.0.19/test/test_soumettre_facture_complete_request.py +0 -89
- factpulse-2.0.19/test/test_soumettre_facture_complete_response.py +0 -82
- factpulse-2.0.19/test/test_soumettre_facture_request.py +0 -71
- factpulse-2.0.19/test/test_soumettre_facture_response.py +0 -56
- factpulse-2.0.19/test/test_statut_celery.py +0 -33
- factpulse-2.0.19/test/test_statut_facture.py +0 -55
- factpulse-2.0.19/test/test_statut_tache.py +0 -55
- factpulse-2.0.19/test/test_structure_info.py +0 -60
- factpulse-2.0.19/test/test_tauxmanuel.py +0 -50
- factpulse-2.0.19/test/test_traitement_facture_api.py +0 -108
- factpulse-2.0.19/test/test_type_facture.py +0 -33
- factpulse-2.0.19/test/test_type_tva.py +0 -33
- factpulse-2.0.19/test/test_unite.py +0 -33
- factpulse-2.0.19/test/test_utilisateur.py +0 -71
- factpulse-2.0.19/test/test_utilisateur_api.py +0 -38
- factpulse-2.0.19/test/test_validation_error.py +0 -60
- factpulse-2.0.19/test/test_validation_error_detail.py +0 -57
- factpulse-2.0.19/test/test_validation_error_loc_inner.py +0 -50
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/api_response.py +0 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse/py.typed +0 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse.egg-info/dependency_links.txt +0 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse.egg-info/requires.txt +0 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/factpulse.egg-info/top_level.txt +0 -0
- {factpulse-2.0.19 → factpulse-3.0.35}/setup.cfg +0 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: factpulse
|
|
3
|
+
Version: 3.0.35
|
|
4
|
+
Summary: FactPulse REST API
|
|
5
|
+
Home-page: https://github.com/factpulse/sdk-python
|
|
6
|
+
Author: FactPulse
|
|
7
|
+
Author-email: FactPulse <contact@factpulse.fr>
|
|
8
|
+
License: Proprietary
|
|
9
|
+
Project-URL: Repository, https://github.com/GIT_USER_ID/GIT_REPO_ID
|
|
10
|
+
Keywords: OpenAPI,OpenAPI-Generator,FactPulse REST API
|
|
11
|
+
Requires-Python: >=3.9
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: urllib3<3.0.0,>=2.1.0
|
|
15
|
+
Requires-Dist: python-dateutil>=2.8.2
|
|
16
|
+
Requires-Dist: pydantic>=2
|
|
17
|
+
Requires-Dist: typing-extensions>=4.7.1
|
|
18
|
+
Dynamic: author
|
|
19
|
+
Dynamic: home-page
|
|
20
|
+
Dynamic: license-file
|
|
21
|
+
|
|
22
|
+
# FactPulse SDK Python
|
|
23
|
+
|
|
24
|
+
Official Python client for the FactPulse API - French electronic invoicing.
|
|
25
|
+
|
|
26
|
+
## Features
|
|
27
|
+
|
|
28
|
+
- **Factur-X**: Generation and validation of electronic invoices (MINIMUM, BASIC, EN16931, EXTENDED profiles)
|
|
29
|
+
- **Chorus Pro**: Integration with the French public invoicing platform
|
|
30
|
+
- **AFNOR PDP/PA**: Submission of flows compliant with XP Z12-013 standard
|
|
31
|
+
- **Electronic signature**: PDF signing (PAdES-B-B, PAdES-B-T, PAdES-B-LT)
|
|
32
|
+
- **Simplified client**: JWT authentication and polling integrated via `factpulse_helpers`
|
|
33
|
+
|
|
34
|
+
## Installation
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install factpulse
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Quick Start
|
|
41
|
+
|
|
42
|
+
The `factpulse_helpers` module provides a simplified API with automatic authentication and polling:
|
|
43
|
+
|
|
44
|
+
```python
|
|
45
|
+
from factpulse_helpers import FactPulseClient
|
|
46
|
+
|
|
47
|
+
# Create the client
|
|
48
|
+
client = FactPulseClient(
|
|
49
|
+
email="your_email@example.com",
|
|
50
|
+
password="your_password"
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
# Build the invoice using simplified format (auto-calculates totals)
|
|
54
|
+
invoice_data = {
|
|
55
|
+
"number": "INV-2025-001",
|
|
56
|
+
"supplier": {
|
|
57
|
+
"name": "My Company SAS",
|
|
58
|
+
"siret": "12345678901234",
|
|
59
|
+
"iban": "FR7630001007941234567890185",
|
|
60
|
+
},
|
|
61
|
+
"recipient": {
|
|
62
|
+
"name": "Client SARL",
|
|
63
|
+
"siret": "98765432109876",
|
|
64
|
+
},
|
|
65
|
+
"lines": [
|
|
66
|
+
{
|
|
67
|
+
"description": "Consulting services",
|
|
68
|
+
"quantity": 10,
|
|
69
|
+
"unitPrice": 100.0,
|
|
70
|
+
"vatRate": 20,
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
# Generate the Factur-X PDF
|
|
76
|
+
pdf_bytes = client.generate_facturx(
|
|
77
|
+
invoice_data=invoice_data,
|
|
78
|
+
pdf_source="source_invoice.pdf",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
with open("facturx_invoice.pdf", "wb") as f:
|
|
82
|
+
f.write(pdf_bytes)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Available Helpers
|
|
86
|
+
|
|
87
|
+
### amount(value)
|
|
88
|
+
|
|
89
|
+
Converts a value to a formatted string for monetary amounts.
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
from factpulse_helpers import amount
|
|
93
|
+
|
|
94
|
+
amount(1234.5) # "1234.50"
|
|
95
|
+
amount("1234.56") # "1234.56"
|
|
96
|
+
amount(None) # "0.00"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### invoice_totals(total_excl_tax, total_vat, total_incl_tax, amount_due, ...)
|
|
100
|
+
|
|
101
|
+
Creates a complete invoice totals object.
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
from factpulse_helpers import invoice_totals
|
|
105
|
+
|
|
106
|
+
totals = invoice_totals(
|
|
107
|
+
total_excl_tax=1000.00,
|
|
108
|
+
total_vat=200.00,
|
|
109
|
+
total_incl_tax=1200.00,
|
|
110
|
+
amount_due=1200.00,
|
|
111
|
+
discount_incl_tax=50.00, # Optional
|
|
112
|
+
discount_reason="Loyalty", # Optional
|
|
113
|
+
prepayment=100.00, # Optional
|
|
114
|
+
)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### invoice_line(line_number, description, quantity, unit_price_excl_tax, line_total_excl_tax, ...)
|
|
118
|
+
|
|
119
|
+
Creates an invoice line.
|
|
120
|
+
|
|
121
|
+
```python
|
|
122
|
+
from factpulse_helpers import invoice_line
|
|
123
|
+
|
|
124
|
+
line = invoice_line(
|
|
125
|
+
line_number=1,
|
|
126
|
+
description="Consulting services",
|
|
127
|
+
quantity=5,
|
|
128
|
+
unit_price_excl_tax=200.00,
|
|
129
|
+
line_total_excl_tax=1000.00,
|
|
130
|
+
vat_rate_code="TVA20", # Or vat_rate_value="20.00"
|
|
131
|
+
vat_category="S", # S, Z, E, AE, K
|
|
132
|
+
unit="HOUR", # FORFAIT, PIECE, HOUR, DAY...
|
|
133
|
+
reference="REF-001", # Optional
|
|
134
|
+
)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### vat_line(base_amount_excl_tax, vat_amount, ...)
|
|
138
|
+
|
|
139
|
+
Creates a VAT breakdown line.
|
|
140
|
+
|
|
141
|
+
```python
|
|
142
|
+
from factpulse_helpers import vat_line
|
|
143
|
+
|
|
144
|
+
vat = vat_line(
|
|
145
|
+
base_amount_excl_tax=1000.00,
|
|
146
|
+
vat_amount=200.00,
|
|
147
|
+
rate_code="TVA20", # Or rate_value="20.00"
|
|
148
|
+
category="S", # S, Z, E, AE, K
|
|
149
|
+
)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### postal_address(line1, postal_code, city, ...)
|
|
153
|
+
|
|
154
|
+
Creates a structured postal address.
|
|
155
|
+
|
|
156
|
+
```python
|
|
157
|
+
from factpulse_helpers import postal_address
|
|
158
|
+
|
|
159
|
+
address = postal_address(
|
|
160
|
+
line1="123 Republic Street",
|
|
161
|
+
postal_code="75001",
|
|
162
|
+
city="Paris",
|
|
163
|
+
country="FR", # Default: "FR"
|
|
164
|
+
line2="Building A", # Optional
|
|
165
|
+
)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### electronic_address(identifier, scheme_id)
|
|
169
|
+
|
|
170
|
+
Creates an electronic address (digital identifier).
|
|
171
|
+
|
|
172
|
+
```python
|
|
173
|
+
from factpulse_helpers import electronic_address
|
|
174
|
+
|
|
175
|
+
# SIRET (scheme_id="0225")
|
|
176
|
+
address = electronic_address("12345678901234", "0225")
|
|
177
|
+
|
|
178
|
+
# SIREN (scheme_id="0009")
|
|
179
|
+
address = electronic_address("123456789", "0009")
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### supplier(name, siret, address_line1, postal_code, city, ...)
|
|
183
|
+
|
|
184
|
+
Creates a complete supplier with automatic SIREN and intra-EU VAT calculation.
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
from factpulse_helpers import supplier
|
|
188
|
+
|
|
189
|
+
s = supplier(
|
|
190
|
+
name="My Company SAS",
|
|
191
|
+
siret="12345678901234",
|
|
192
|
+
address_line1="123 Example Street",
|
|
193
|
+
postal_code="75001",
|
|
194
|
+
city="Paris",
|
|
195
|
+
iban="FR7630006000011234567890189", # Optional
|
|
196
|
+
)
|
|
197
|
+
# SIREN and intra-EU VAT number calculated automatically
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### recipient(name, siret, address_line1, postal_code, city, ...)
|
|
201
|
+
|
|
202
|
+
Creates a recipient (customer) with automatic SIREN calculation.
|
|
203
|
+
|
|
204
|
+
```python
|
|
205
|
+
from factpulse_helpers import recipient
|
|
206
|
+
|
|
207
|
+
r = recipient(
|
|
208
|
+
name="Client SARL",
|
|
209
|
+
siret="98765432109876",
|
|
210
|
+
address_line1="456 Test Avenue",
|
|
211
|
+
postal_code="69001",
|
|
212
|
+
city="Lyon",
|
|
213
|
+
)
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Zero-Trust Mode (Chorus Pro / AFNOR)
|
|
217
|
+
|
|
218
|
+
To pass your own credentials without server-side storage:
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
from factpulse_helpers import (
|
|
222
|
+
FactPulseClient,
|
|
223
|
+
ChorusProCredentials,
|
|
224
|
+
AFNORCredentials,
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
# Chorus Pro
|
|
228
|
+
chorus_creds = ChorusProCredentials(
|
|
229
|
+
piste_client_id="your_client_id",
|
|
230
|
+
piste_client_secret="your_client_secret",
|
|
231
|
+
chorus_pro_login="your_login",
|
|
232
|
+
chorus_pro_password="your_password",
|
|
233
|
+
sandbox=True,
|
|
234
|
+
)
|
|
235
|
+
|
|
236
|
+
# AFNOR PDP
|
|
237
|
+
afnor_creds = AFNORCredentials(
|
|
238
|
+
flow_service_url="https://api.pdp.fr/flow/v1",
|
|
239
|
+
token_url="https://auth.pdp.fr/oauth/token",
|
|
240
|
+
client_id="your_client_id",
|
|
241
|
+
client_secret="your_client_secret",
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
client = FactPulseClient(
|
|
245
|
+
email="your_email@example.com",
|
|
246
|
+
password="your_password",
|
|
247
|
+
chorus_credentials=chorus_creds,
|
|
248
|
+
afnor_credentials=afnor_creds,
|
|
249
|
+
)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Resources
|
|
253
|
+
|
|
254
|
+
- **API Documentation**: https://factpulse.fr/api/facturation/documentation
|
|
255
|
+
- **Complete Example**: See `complete_example_python.py` in this package
|
|
256
|
+
- **Support**: contact@factpulse.fr
|
|
257
|
+
|
|
258
|
+
## License
|
|
259
|
+
|
|
260
|
+
MIT License - Copyright (c) 2025 FactPulse
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
# FactPulse SDK Python
|
|
2
|
+
|
|
3
|
+
Official Python client for the FactPulse API - French electronic invoicing.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Factur-X**: Generation and validation of electronic invoices (MINIMUM, BASIC, EN16931, EXTENDED profiles)
|
|
8
|
+
- **Chorus Pro**: Integration with the French public invoicing platform
|
|
9
|
+
- **AFNOR PDP/PA**: Submission of flows compliant with XP Z12-013 standard
|
|
10
|
+
- **Electronic signature**: PDF signing (PAdES-B-B, PAdES-B-T, PAdES-B-LT)
|
|
11
|
+
- **Simplified client**: JWT authentication and polling integrated via `factpulse_helpers`
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pip install factpulse
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
The `factpulse_helpers` module provides a simplified API with automatic authentication and polling:
|
|
22
|
+
|
|
23
|
+
```python
|
|
24
|
+
from factpulse_helpers import FactPulseClient
|
|
25
|
+
|
|
26
|
+
# Create the client
|
|
27
|
+
client = FactPulseClient(
|
|
28
|
+
email="your_email@example.com",
|
|
29
|
+
password="your_password"
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# Build the invoice using simplified format (auto-calculates totals)
|
|
33
|
+
invoice_data = {
|
|
34
|
+
"number": "INV-2025-001",
|
|
35
|
+
"supplier": {
|
|
36
|
+
"name": "My Company SAS",
|
|
37
|
+
"siret": "12345678901234",
|
|
38
|
+
"iban": "FR7630001007941234567890185",
|
|
39
|
+
},
|
|
40
|
+
"recipient": {
|
|
41
|
+
"name": "Client SARL",
|
|
42
|
+
"siret": "98765432109876",
|
|
43
|
+
},
|
|
44
|
+
"lines": [
|
|
45
|
+
{
|
|
46
|
+
"description": "Consulting services",
|
|
47
|
+
"quantity": 10,
|
|
48
|
+
"unitPrice": 100.0,
|
|
49
|
+
"vatRate": 20,
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
# Generate the Factur-X PDF
|
|
55
|
+
pdf_bytes = client.generate_facturx(
|
|
56
|
+
invoice_data=invoice_data,
|
|
57
|
+
pdf_source="source_invoice.pdf",
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
with open("facturx_invoice.pdf", "wb") as f:
|
|
61
|
+
f.write(pdf_bytes)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Available Helpers
|
|
65
|
+
|
|
66
|
+
### amount(value)
|
|
67
|
+
|
|
68
|
+
Converts a value to a formatted string for monetary amounts.
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
from factpulse_helpers import amount
|
|
72
|
+
|
|
73
|
+
amount(1234.5) # "1234.50"
|
|
74
|
+
amount("1234.56") # "1234.56"
|
|
75
|
+
amount(None) # "0.00"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### invoice_totals(total_excl_tax, total_vat, total_incl_tax, amount_due, ...)
|
|
79
|
+
|
|
80
|
+
Creates a complete invoice totals object.
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
from factpulse_helpers import invoice_totals
|
|
84
|
+
|
|
85
|
+
totals = invoice_totals(
|
|
86
|
+
total_excl_tax=1000.00,
|
|
87
|
+
total_vat=200.00,
|
|
88
|
+
total_incl_tax=1200.00,
|
|
89
|
+
amount_due=1200.00,
|
|
90
|
+
discount_incl_tax=50.00, # Optional
|
|
91
|
+
discount_reason="Loyalty", # Optional
|
|
92
|
+
prepayment=100.00, # Optional
|
|
93
|
+
)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### invoice_line(line_number, description, quantity, unit_price_excl_tax, line_total_excl_tax, ...)
|
|
97
|
+
|
|
98
|
+
Creates an invoice line.
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
from factpulse_helpers import invoice_line
|
|
102
|
+
|
|
103
|
+
line = invoice_line(
|
|
104
|
+
line_number=1,
|
|
105
|
+
description="Consulting services",
|
|
106
|
+
quantity=5,
|
|
107
|
+
unit_price_excl_tax=200.00,
|
|
108
|
+
line_total_excl_tax=1000.00,
|
|
109
|
+
vat_rate_code="TVA20", # Or vat_rate_value="20.00"
|
|
110
|
+
vat_category="S", # S, Z, E, AE, K
|
|
111
|
+
unit="HOUR", # FORFAIT, PIECE, HOUR, DAY...
|
|
112
|
+
reference="REF-001", # Optional
|
|
113
|
+
)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### vat_line(base_amount_excl_tax, vat_amount, ...)
|
|
117
|
+
|
|
118
|
+
Creates a VAT breakdown line.
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
from factpulse_helpers import vat_line
|
|
122
|
+
|
|
123
|
+
vat = vat_line(
|
|
124
|
+
base_amount_excl_tax=1000.00,
|
|
125
|
+
vat_amount=200.00,
|
|
126
|
+
rate_code="TVA20", # Or rate_value="20.00"
|
|
127
|
+
category="S", # S, Z, E, AE, K
|
|
128
|
+
)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### postal_address(line1, postal_code, city, ...)
|
|
132
|
+
|
|
133
|
+
Creates a structured postal address.
|
|
134
|
+
|
|
135
|
+
```python
|
|
136
|
+
from factpulse_helpers import postal_address
|
|
137
|
+
|
|
138
|
+
address = postal_address(
|
|
139
|
+
line1="123 Republic Street",
|
|
140
|
+
postal_code="75001",
|
|
141
|
+
city="Paris",
|
|
142
|
+
country="FR", # Default: "FR"
|
|
143
|
+
line2="Building A", # Optional
|
|
144
|
+
)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### electronic_address(identifier, scheme_id)
|
|
148
|
+
|
|
149
|
+
Creates an electronic address (digital identifier).
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
from factpulse_helpers import electronic_address
|
|
153
|
+
|
|
154
|
+
# SIRET (scheme_id="0225")
|
|
155
|
+
address = electronic_address("12345678901234", "0225")
|
|
156
|
+
|
|
157
|
+
# SIREN (scheme_id="0009")
|
|
158
|
+
address = electronic_address("123456789", "0009")
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### supplier(name, siret, address_line1, postal_code, city, ...)
|
|
162
|
+
|
|
163
|
+
Creates a complete supplier with automatic SIREN and intra-EU VAT calculation.
|
|
164
|
+
|
|
165
|
+
```python
|
|
166
|
+
from factpulse_helpers import supplier
|
|
167
|
+
|
|
168
|
+
s = supplier(
|
|
169
|
+
name="My Company SAS",
|
|
170
|
+
siret="12345678901234",
|
|
171
|
+
address_line1="123 Example Street",
|
|
172
|
+
postal_code="75001",
|
|
173
|
+
city="Paris",
|
|
174
|
+
iban="FR7630006000011234567890189", # Optional
|
|
175
|
+
)
|
|
176
|
+
# SIREN and intra-EU VAT number calculated automatically
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### recipient(name, siret, address_line1, postal_code, city, ...)
|
|
180
|
+
|
|
181
|
+
Creates a recipient (customer) with automatic SIREN calculation.
|
|
182
|
+
|
|
183
|
+
```python
|
|
184
|
+
from factpulse_helpers import recipient
|
|
185
|
+
|
|
186
|
+
r = recipient(
|
|
187
|
+
name="Client SARL",
|
|
188
|
+
siret="98765432109876",
|
|
189
|
+
address_line1="456 Test Avenue",
|
|
190
|
+
postal_code="69001",
|
|
191
|
+
city="Lyon",
|
|
192
|
+
)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Zero-Trust Mode (Chorus Pro / AFNOR)
|
|
196
|
+
|
|
197
|
+
To pass your own credentials without server-side storage:
|
|
198
|
+
|
|
199
|
+
```python
|
|
200
|
+
from factpulse_helpers import (
|
|
201
|
+
FactPulseClient,
|
|
202
|
+
ChorusProCredentials,
|
|
203
|
+
AFNORCredentials,
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
# Chorus Pro
|
|
207
|
+
chorus_creds = ChorusProCredentials(
|
|
208
|
+
piste_client_id="your_client_id",
|
|
209
|
+
piste_client_secret="your_client_secret",
|
|
210
|
+
chorus_pro_login="your_login",
|
|
211
|
+
chorus_pro_password="your_password",
|
|
212
|
+
sandbox=True,
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# AFNOR PDP
|
|
216
|
+
afnor_creds = AFNORCredentials(
|
|
217
|
+
flow_service_url="https://api.pdp.fr/flow/v1",
|
|
218
|
+
token_url="https://auth.pdp.fr/oauth/token",
|
|
219
|
+
client_id="your_client_id",
|
|
220
|
+
client_secret="your_client_secret",
|
|
221
|
+
)
|
|
222
|
+
|
|
223
|
+
client = FactPulseClient(
|
|
224
|
+
email="your_email@example.com",
|
|
225
|
+
password="your_password",
|
|
226
|
+
chorus_credentials=chorus_creds,
|
|
227
|
+
afnor_credentials=afnor_creds,
|
|
228
|
+
)
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Resources
|
|
232
|
+
|
|
233
|
+
- **API Documentation**: https://factpulse.fr/api/facturation/documentation
|
|
234
|
+
- **Complete Example**: See `complete_example_python.py` in this package
|
|
235
|
+
- **Support**: contact@factpulse.fr
|
|
236
|
+
|
|
237
|
+
## License
|
|
238
|
+
|
|
239
|
+
MIT License - Copyright (c) 2025 FactPulse
|