factpulse 2.0.37__py3-none-any.whl → 3.0.23__py3-none-any.whl
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.
Potentially problematic release.
This version of factpulse might be problematic. Click here for more details.
- factpulse/__init__.py +542 -197
- factpulse/api/__init__.py +7 -4
- factpulse/api/afnorpdppa_api.py +49 -47
- factpulse/api/afnorpdppa_directory_service_api.py +1225 -310
- factpulse/api/afnorpdppa_flow_service_api.py +212 -81
- factpulse/api/chorus_pro_api.py +271 -218
- factpulse/api/document_conversion_api.py +1222 -0
- factpulse/api/downloads_api.py +1171 -0
- factpulse/api/e_reporting_api.py +3254 -0
- factpulse/api/{sant_api.py → health_api.py} +29 -22
- factpulse/api/invoice_processing_api.py +3634 -0
- factpulse/api/{vrification_pdfxml_api.py → pdfxml_verification_api.py} +331 -252
- factpulse/api/{utilisateur_api.py → user_api.py} +21 -17
- factpulse/api_client.py +4 -3
- factpulse/configuration.py +11 -6
- factpulse/exceptions.py +3 -2
- factpulse/models/__init__.py +265 -95
- factpulse/models/accept_language.py +38 -0
- factpulse/models/acknowledgment_status.py +39 -0
- factpulse/models/additional_document.py +116 -0
- factpulse/models/afnor_acknowledgement.py +100 -0
- factpulse/models/afnor_acknowledgement_detail.py +105 -0
- factpulse/models/afnor_address_edit.py +111 -0
- factpulse/models/afnor_address_patch.py +141 -0
- factpulse/models/afnor_address_put.py +129 -0
- factpulse/models/afnor_address_read.py +113 -0
- factpulse/models/afnor_algorithm.py +41 -0
- factpulse/models/afnor_contains_operator.py +37 -0
- factpulse/models/afnor_create_directory_line_body.py +98 -0
- factpulse/models/afnor_create_directory_line_body_addressing_information.py +122 -0
- factpulse/models/afnor_create_directory_line_body_period.py +91 -0
- factpulse/models/afnor_create_routing_code_body.py +153 -0
- factpulse/models/afnor_credentials.py +107 -0
- factpulse/models/afnor_destination.py +127 -0
- factpulse/models/afnor_diffusion_status.py +38 -0
- factpulse/models/afnor_directory_line_field.py +42 -0
- factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code.py +139 -0
- factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_platform.py +92 -0
- factpulse/models/afnor_directory_line_payload_history_legal_unit_facility_routing_code_routing_code.py +134 -0
- factpulse/models/afnor_directory_line_post201_response.py +94 -0
- factpulse/models/afnor_directory_line_search_post200_response.py +104 -0
- factpulse/models/afnor_entity_type.py +38 -0
- factpulse/models/afnor_error.py +97 -0
- factpulse/models/afnor_facility_administrative_status.py +38 -0
- factpulse/models/afnor_facility_nature.py +38 -0
- factpulse/models/afnor_facility_payload_history.py +140 -0
- factpulse/models/afnor_facility_payload_history_ule_b2g_additional_data.py +98 -0
- factpulse/models/afnor_facility_payload_included.py +134 -0
- factpulse/models/afnor_facility_type.py +38 -0
- factpulse/models/afnor_flow.py +129 -0
- factpulse/models/afnor_flow_ack_status.py +39 -0
- factpulse/models/afnor_flow_direction.py +38 -0
- factpulse/models/afnor_flow_info.py +112 -0
- factpulse/models/afnor_flow_profile.py +39 -0
- factpulse/models/afnor_flow_syntax.py +41 -0
- factpulse/models/afnor_flow_type.py +49 -0
- factpulse/models/afnor_full_flow_info.py +117 -0
- factpulse/models/afnor_health_check_response.py +92 -0
- factpulse/models/afnor_legal_unit_administrative_status.py +38 -0
- factpulse/models/afnor_legal_unit_payload_history.py +107 -0
- factpulse/models/afnor_legal_unit_payload_included.py +107 -0
- factpulse/models/afnor_legal_unit_payload_included_no_siren.py +95 -0
- factpulse/models/afnor_platform_status.py +38 -0
- factpulse/models/afnor_processing_rule.py +42 -0
- factpulse/models/afnor_reason_code.py +141 -0
- factpulse/models/afnor_reason_code_enum.py +51 -0
- factpulse/models/afnor_recipient_platform_type.py +38 -0
- factpulse/models/afnor_result.py +127 -0
- factpulse/models/afnor_routing_code_administrative_status.py +38 -0
- factpulse/models/afnor_routing_code_field.py +44 -0
- factpulse/models/afnor_routing_code_payload_history_legal_unit_facility.py +158 -0
- factpulse/models/afnor_routing_code_post201_response.py +113 -0
- factpulse/models/afnor_routing_code_search.py +122 -0
- factpulse/models/afnor_routing_code_search_filters.py +128 -0
- factpulse/models/afnor_routing_code_search_filters_administrative_status.py +92 -0
- factpulse/models/afnor_routing_code_search_filters_routing_code_name.py +102 -0
- factpulse/models/afnor_routing_code_search_filters_routing_identifier.py +102 -0
- factpulse/models/afnor_routing_code_search_post200_response.py +104 -0
- factpulse/models/afnor_routing_code_search_sorting_inner.py +92 -0
- factpulse/models/afnor_search_directory_line.py +109 -0
- factpulse/models/afnor_search_directory_line_filters.py +116 -0
- factpulse/models/afnor_search_directory_line_filters_addressing_identifier.py +92 -0
- factpulse/models/afnor_search_directory_line_filters_addressing_suffix.py +92 -0
- factpulse/models/afnor_search_directory_line_sorting_inner.py +92 -0
- factpulse/models/afnor_search_flow_content.py +104 -0
- factpulse/models/afnor_search_flow_filters.py +106 -0
- factpulse/models/afnor_search_flow_params.py +95 -0
- factpulse/models/afnor_search_siren.py +109 -0
- factpulse/models/afnor_search_siren_filters.py +110 -0
- factpulse/models/afnor_search_siren_filters_administrative_status.py +92 -0
- factpulse/models/afnor_search_siren_filters_business_name.py +92 -0
- factpulse/models/afnor_search_siren_filters_entity_type.py +92 -0
- factpulse/models/afnor_search_siren_filters_siren.py +102 -0
- factpulse/models/afnor_search_siren_sorting_inner.py +92 -0
- factpulse/models/afnor_search_siret.py +122 -0
- factpulse/models/afnor_search_siret_filters.py +140 -0
- factpulse/models/afnor_search_siret_filters_address_lines.py +92 -0
- factpulse/models/afnor_search_siret_filters_administrative_status.py +92 -0
- factpulse/models/afnor_search_siret_filters_country_subdivision.py +92 -0
- factpulse/models/afnor_search_siret_filters_facility_type.py +92 -0
- factpulse/models/afnor_search_siret_filters_locality.py +92 -0
- factpulse/models/afnor_search_siret_filters_name.py +92 -0
- factpulse/models/afnor_search_siret_filters_postal_code.py +102 -0
- factpulse/models/afnor_search_siret_filters_siret.py +102 -0
- factpulse/models/afnor_search_siret_sorting_inner.py +92 -0
- factpulse/models/afnor_siren_field.py +41 -0
- factpulse/models/afnor_siren_search_post200_response.py +104 -0
- factpulse/models/afnor_siret_field.py +50 -0
- factpulse/models/afnor_siret_search_post200_response.py +104 -0
- factpulse/models/afnor_sorting_order.py +38 -0
- factpulse/models/afnor_strict_operator.py +37 -0
- factpulse/models/afnor_update_patch_directory_line_body.py +89 -0
- factpulse/models/afnor_update_patch_routing_code_body.py +120 -0
- factpulse/models/afnor_update_put_routing_code_body.py +114 -0
- factpulse/models/afnor_webhook_callback_content.py +92 -0
- factpulse/models/aggregated_payment_input.py +106 -0
- factpulse/models/aggregated_transaction_input.py +136 -0
- factpulse/models/allowance_charge.py +150 -0
- factpulse/models/allowance_charge_reason_code.py +74 -0
- factpulse/models/allowance_reason_code.py +43 -0
- factpulse/models/allowance_total_amount.py +146 -0
- factpulse/models/amount.py +140 -0
- factpulse/models/amount1.py +140 -0
- factpulse/models/amount_due.py +140 -0
- factpulse/models/api_error.py +6 -5
- factpulse/models/api_profile.py +41 -0
- factpulse/models/async_task_status.py +98 -0
- factpulse/models/base_amount.py +146 -0
- factpulse/models/bounding_box_schema.py +11 -10
- factpulse/models/buyercountry.py +137 -0
- factpulse/models/celery_status.py +41 -0
- factpulse/models/certificate_info_response.py +25 -24
- factpulse/models/charge_total_amount.py +146 -0
- factpulse/models/chorus_pro_credentials.py +14 -13
- factpulse/models/chorus_pro_destination.py +109 -0
- factpulse/models/chorus_pro_result.py +102 -0
- factpulse/models/contact.py +114 -0
- factpulse/models/convert_resume_request.py +88 -0
- factpulse/models/convert_success_response.py +127 -0
- factpulse/models/convert_validation_failed_response.py +121 -0
- factpulse/models/country_code.py +206 -0
- factpulse/models/create_aggregated_report_request.py +170 -0
- factpulse/models/create_e_reporting_request.py +173 -0
- factpulse/models/currency.py +137 -0
- factpulse/models/currency_code.py +89 -0
- factpulse/models/delivery_party.py +122 -0
- factpulse/models/destination.py +28 -27
- factpulse/models/directory_line_include.py +40 -0
- factpulse/models/doc_type.py +40 -0
- factpulse/models/document_type_info.py +92 -0
- factpulse/models/e_reporting_flow_type.py +40 -0
- factpulse/models/e_reporting_validation_error.py +97 -0
- factpulse/models/electronic_address.py +91 -0
- factpulse/models/enriched_invoice_info.py +134 -0
- factpulse/models/error_level.py +3 -2
- factpulse/models/error_source.py +3 -2
- factpulse/models/extraction_info.py +94 -0
- factpulse/models/factur_x_invoice.py +321 -0
- factpulse/models/factur_xpdf_info.py +92 -0
- factpulse/models/facture_electronique_rest_api_schemas_ereporting_invoice_type_code.py +41 -0
- factpulse/models/facture_electronique_rest_api_schemas_processing_chorus_pro_credentials.py +116 -0
- factpulse/models/field_status.py +41 -0
- factpulse/models/file_info.py +95 -0
- factpulse/models/files_info.py +107 -0
- factpulse/models/flow_direction.py +38 -0
- factpulse/models/flow_profile.py +39 -0
- factpulse/models/flow_summary.py +132 -0
- factpulse/models/flow_syntax.py +41 -0
- factpulse/models/flow_type.py +49 -0
- factpulse/models/generate_aggregated_report_response.py +100 -0
- factpulse/models/generate_certificate_request.py +27 -26
- factpulse/models/generate_certificate_response.py +16 -15
- factpulse/models/generate_e_reporting_response.py +96 -0
- factpulse/models/get_chorus_pro_id_request.py +101 -0
- factpulse/models/get_chorus_pro_id_response.py +99 -0
- factpulse/models/get_invoice_request.py +99 -0
- factpulse/models/get_invoice_response.py +143 -0
- factpulse/models/get_structure_request.py +101 -0
- factpulse/models/get_structure_response.py +143 -0
- factpulse/models/global_allowance_amount.py +140 -0
- factpulse/models/gross_unit_price.py +146 -0
- factpulse/models/http_validation_error.py +3 -2
- factpulse/models/incoming_invoice.py +175 -0
- factpulse/models/incoming_supplier.py +145 -0
- factpulse/models/invoice_format.py +39 -0
- factpulse/models/invoice_input.py +179 -0
- factpulse/models/invoice_line.py +370 -0
- factpulse/models/invoice_line_allowance_amount.py +146 -0
- factpulse/models/invoice_note.py +95 -0
- factpulse/models/invoice_payment_input.py +110 -0
- factpulse/models/invoice_references.py +195 -0
- factpulse/models/invoice_status.py +97 -0
- factpulse/models/invoice_totals.py +178 -0
- factpulse/models/invoice_totals_prepayment.py +146 -0
- factpulse/models/invoice_type_code.py +52 -0
- factpulse/models/invoice_type_code_output.py +52 -0
- factpulse/models/invoicing_framework.py +111 -0
- factpulse/models/invoicing_framework_code.py +40 -0
- factpulse/models/line_net_amount.py +146 -0
- factpulse/models/line_sub_type.py +39 -0
- factpulse/models/line_total_amount.py +146 -0
- factpulse/models/location_inner.py +139 -0
- factpulse/models/mandatory_note_schema.py +125 -0
- factpulse/models/manual_rate.py +140 -0
- factpulse/models/manual_vat_rate.py +140 -0
- factpulse/models/missing_field.py +108 -0
- factpulse/models/operation_nature.py +50 -0
- factpulse/models/output_format.py +38 -0
- factpulse/models/page_dimensions_schema.py +90 -0
- factpulse/models/payee.py +169 -0
- factpulse/models/payment_amount_by_rate.py +98 -0
- factpulse/models/payment_card.py +100 -0
- factpulse/models/payment_means.py +42 -0
- factpulse/models/pdf_validation_result_api.py +170 -0
- factpulse/models/pdp_credentials.py +16 -15
- factpulse/models/percentage.py +146 -0
- factpulse/models/postal_address.py +135 -0
- factpulse/models/price_allowance_amount.py +146 -0
- factpulse/models/price_basis_quantity.py +146 -0
- factpulse/models/processing_options.py +95 -0
- factpulse/models/processing_rule.py +42 -0
- factpulse/models/product_characteristic.py +90 -0
- factpulse/models/product_classification.py +102 -0
- factpulse/models/quantity.py +140 -0
- factpulse/models/rate.py +140 -0
- factpulse/models/rate1.py +140 -0
- factpulse/models/recipient.py +168 -0
- factpulse/models/report_period.py +91 -0
- factpulse/models/report_sender.py +98 -0
- factpulse/models/rounding_amount.py +146 -0
- factpulse/models/routing_code_include.py +38 -0
- factpulse/models/schematron_validation_error.py +128 -0
- factpulse/models/scheme_id.py +18 -4
- factpulse/models/search_flow_request.py +144 -0
- factpulse/models/search_flow_response.py +102 -0
- factpulse/models/search_services_response.py +102 -0
- factpulse/models/search_structure_request.py +120 -0
- factpulse/models/search_structure_response.py +102 -0
- factpulse/models/sellercountry.py +137 -0
- factpulse/models/signature_info.py +7 -6
- factpulse/models/signature_info_api.py +123 -0
- factpulse/models/signature_parameters.py +134 -0
- factpulse/models/simplified_invoice_data.py +151 -0
- factpulse/models/siret_include.py +37 -0
- factpulse/models/structure_info.py +15 -14
- factpulse/models/structure_parameters.py +92 -0
- factpulse/models/structure_service.py +94 -0
- factpulse/models/submission_mode.py +39 -0
- factpulse/models/submit_aggregated_report_request.py +127 -0
- factpulse/models/submit_complete_invoice_request.py +117 -0
- factpulse/models/submit_complete_invoice_response.py +146 -0
- factpulse/models/submit_e_reporting_request.py +127 -0
- factpulse/models/submit_e_reporting_response.py +117 -0
- factpulse/models/submit_flow_request.py +124 -0
- factpulse/models/submit_flow_response.py +110 -0
- factpulse/models/submit_gross_amount.py +140 -0
- factpulse/models/submit_invoice_request.py +177 -0
- factpulse/models/submit_invoice_response.py +104 -0
- factpulse/models/submit_net_amount.py +140 -0
- factpulse/models/submit_vat_amount.py +140 -0
- factpulse/models/supplementary_attachment.py +96 -0
- factpulse/models/supplier.py +226 -0
- factpulse/models/task_response.py +88 -0
- factpulse/models/tax_breakdown_input.py +104 -0
- factpulse/models/tax_due_date_type.py +42 -0
- factpulse/models/tax_representative.py +96 -0
- factpulse/models/taxable_amount.py +140 -0
- factpulse/models/taxableamount.py +140 -0
- factpulse/models/taxamount.py +140 -0
- factpulse/models/taxamount1.py +140 -0
- factpulse/models/taxamount2.py +140 -0
- factpulse/models/taxexclusiveamount.py +140 -0
- factpulse/models/taxexclusiveamount1.py +140 -0
- factpulse/models/total_gross_amount.py +140 -0
- factpulse/models/total_net_amount.py +140 -0
- factpulse/models/total_vat_amount.py +140 -0
- factpulse/models/transaction_category.py +40 -0
- factpulse/models/transmission_type_code.py +38 -0
- factpulse/models/unit_net_price.py +140 -0
- factpulse/models/unit_of_measure.py +42 -0
- factpulse/models/validate_e_reporting_request.py +92 -0
- factpulse/models/validate_e_reporting_response.py +113 -0
- factpulse/models/validation_error.py +6 -5
- factpulse/models/validation_error_detail.py +7 -6
- factpulse/models/validation_error_response.py +88 -0
- factpulse/models/validation_info.py +106 -0
- factpulse/models/validation_success_response.py +88 -0
- factpulse/models/vat_accounting_code.py +40 -0
- factpulse/models/vat_amount.py +140 -0
- factpulse/models/vat_category.py +45 -0
- factpulse/models/vat_line.py +141 -0
- factpulse/models/vat_point_date_code.py +39 -0
- factpulse/models/vat_rate.py +146 -0
- factpulse/models/verification_success_response.py +136 -0
- factpulse/models/verified_field_schema.py +130 -0
- factpulse/rest.py +3 -2
- factpulse-3.0.23.dist-info/METADATA +294 -0
- factpulse-3.0.23.dist-info/RECORD +306 -0
- {factpulse-2.0.37.dist-info → factpulse-3.0.23.dist-info}/licenses/LICENSE +1 -1
- factpulse_helpers/__init__.py +34 -34
- factpulse_helpers/client.py +1020 -795
- factpulse_helpers/exceptions.py +68 -68
- factpulse/api/traitement_facture_api.py +0 -3437
- factpulse/models/adresse_electronique.py +0 -90
- factpulse/models/adresse_postale.py +0 -120
- factpulse/models/cadre_de_facturation.py +0 -110
- factpulse/models/categorie_tva.py +0 -44
- factpulse/models/champ_verifie_schema.py +0 -129
- factpulse/models/code_cadre_facturation.py +0 -39
- factpulse/models/code_raison_reduction.py +0 -42
- factpulse/models/consulter_facture_request.py +0 -98
- factpulse/models/consulter_facture_response.py +0 -142
- factpulse/models/consulter_structure_request.py +0 -100
- factpulse/models/consulter_structure_response.py +0 -142
- factpulse/models/credentials_afnor.py +0 -106
- factpulse/models/credentials_chorus_pro.py +0 -115
- factpulse/models/destinataire.py +0 -130
- factpulse/models/destination_afnor.py +0 -127
- factpulse/models/destination_chorus_pro.py +0 -108
- factpulse/models/dimension_page_schema.py +0 -89
- factpulse/models/direction_flux.py +0 -37
- factpulse/models/donnees_facture_simplifiees.py +0 -124
- factpulse/models/facture_enrichie_info.py +0 -133
- factpulse/models/facture_entrante.py +0 -196
- factpulse/models/facture_factur_x.py +0 -183
- factpulse/models/flux_resume.py +0 -131
- factpulse/models/format_facture.py +0 -38
- factpulse/models/format_sortie.py +0 -37
- factpulse/models/fournisseur.py +0 -153
- factpulse/models/fournisseur_entrant.py +0 -144
- factpulse/models/information_signature_api.py +0 -122
- factpulse/models/ligne_de_poste.py +0 -183
- factpulse/models/ligne_de_poste_montant_remise_ht.py +0 -145
- factpulse/models/ligne_de_poste_taux_tva_manuel.py +0 -145
- factpulse/models/ligne_de_tva.py +0 -132
- factpulse/models/mode_depot.py +0 -38
- factpulse/models/mode_paiement.py +0 -41
- factpulse/models/montant_a_payer.py +0 -139
- factpulse/models/montant_base_ht.py +0 -139
- factpulse/models/montant_ht_total.py +0 -139
- factpulse/models/montant_remise_globale_ttc.py +0 -139
- factpulse/models/montant_total.py +0 -133
- factpulse/models/montant_total_acompte.py +0 -145
- factpulse/models/montant_total_ligne_ht.py +0 -139
- factpulse/models/montant_ttc_total.py +0 -139
- factpulse/models/montant_tva.py +0 -139
- factpulse/models/montant_tva_ligne.py +0 -139
- factpulse/models/montant_tva_total.py +0 -139
- factpulse/models/montant_unitaire_ht.py +0 -139
- factpulse/models/nature_operation.py +0 -49
- factpulse/models/note.py +0 -94
- factpulse/models/note_obligatoire_schema.py +0 -124
- factpulse/models/obtenir_id_chorus_pro_request.py +0 -100
- factpulse/models/obtenir_id_chorus_pro_response.py +0 -98
- factpulse/models/options_processing.py +0 -94
- factpulse/models/parametres_signature.py +0 -133
- factpulse/models/parametres_structure.py +0 -91
- factpulse/models/pdf_factur_x_info.py +0 -91
- factpulse/models/piece_jointe_complementaire.py +0 -95
- factpulse/models/profil_api.py +0 -39
- factpulse/models/profil_flux.py +0 -38
- factpulse/models/quantite.py +0 -139
- factpulse/models/rechercher_services_response.py +0 -101
- factpulse/models/rechercher_structure_request.py +0 -119
- factpulse/models/rechercher_structure_response.py +0 -101
- factpulse/models/references.py +0 -124
- factpulse/models/reponse_healthcheck_afnor.py +0 -91
- factpulse/models/reponse_recherche_flux.py +0 -101
- factpulse/models/reponse_soumission_flux.py +0 -109
- factpulse/models/reponse_tache.py +0 -87
- factpulse/models/reponse_validation_erreur.py +0 -87
- factpulse/models/reponse_validation_succes.py +0 -87
- factpulse/models/reponse_verification_succes.py +0 -135
- factpulse/models/requete_recherche_flux.py +0 -143
- factpulse/models/requete_soumission_flux.py +0 -123
- factpulse/models/resultat_afnor.py +0 -105
- factpulse/models/resultat_chorus_pro.py +0 -101
- factpulse/models/resultat_validation_pdfapi.py +0 -169
- factpulse/models/service_structure.py +0 -93
- factpulse/models/soumettre_facture_complete_request.py +0 -116
- factpulse/models/soumettre_facture_complete_response.py +0 -145
- factpulse/models/soumettre_facture_request.py +0 -176
- factpulse/models/soumettre_facture_response.py +0 -103
- factpulse/models/statut_acquittement.py +0 -38
- factpulse/models/statut_celery.py +0 -40
- factpulse/models/statut_champ_api.py +0 -40
- factpulse/models/statut_facture.py +0 -96
- factpulse/models/statut_tache.py +0 -97
- factpulse/models/syntaxe_flux.py +0 -40
- factpulse/models/tauxmanuel.py +0 -139
- factpulse/models/type_document.py +0 -40
- factpulse/models/type_facture.py +0 -37
- factpulse/models/type_flux.py +0 -40
- factpulse/models/type_tva.py +0 -39
- factpulse/models/unite.py +0 -41
- factpulse/models/validation_error_loc_inner.py +0 -138
- factpulse-2.0.37.dist-info/METADATA +0 -292
- factpulse-2.0.37.dist-info/RECORD +0 -134
- {factpulse-2.0.37.dist-info → factpulse-3.0.23.dist-info}/WHEEL +0 -0
- {factpulse-2.0.37.dist-info → factpulse-3.0.23.dist-info}/top_level.txt +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
2
|
|
|
3
3
|
"""
|
|
4
|
-
|
|
4
|
+
FactPulse REST API
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
REST API for electronic invoicing in France: Factur-X, AFNOR PDP/PA, electronic signatures. ## 🎯 Main Features ### 📄 Factur-X Invoice Generation - **Formats**: XML only or PDF/A-3 with embedded XML - **Profiles**: MINIMUM, BASIC, EN16931, EXTENDED - **Standards**: EN 16931 (EU directive 2014/55), ISO 19005-3 (PDF/A-3), CII (UN/CEFACT) - **🆕 Simplified Format**: Generation from SIRET + auto-enrichment (Chorus Pro API + Business Search) ### ✅ Validation and Compliance - **XML Validation**: Schematron (45 to 210+ rules depending on profile) - **PDF Validation**: PDF/A-3, Factur-X XMP metadata, electronic signatures - **VeraPDF**: Strict PDF/A validation (146+ ISO 19005-3 rules) - **Asynchronous Processing**: Celery support for heavy validations (VeraPDF) ### 📡 AFNOR PDP/PA Integration (XP Z12-013) - **Flow Submission**: Send invoices to Partner Dematerialization Platforms - **Flow Search**: View submitted invoices - **Download**: Retrieve PDF/A-3 with XML - **Directory Service**: Company search (SIREN/SIRET) - **Multi-client**: Support for multiple PDP configs per user (stored credentials or zero-storage) ### ✍️ PDF Electronic Signature - **Standards**: PAdES-B-B, PAdES-B-T (RFC 3161 timestamping), PAdES-B-LT (long-term archival) - **eIDAS Levels**: SES (self-signed), AdES (commercial CA), QES (QTSP) - **Validation**: Cryptographic integrity and certificate verification - **Certificate Generation**: Self-signed X.509 certificates for testing ### 🔄 Asynchronous Processing - **Celery**: Asynchronous generation, validation and signing - **Polling**: Status tracking via `/tasks/{task_id}/status` - **No timeout**: Ideal for large files or heavy validations ## 🔒 Authentication All requests require a **JWT token** in the Authorization header: ``` Authorization: Bearer YOUR_JWT_TOKEN ``` ### How to obtain a JWT token? #### 🔑 Method 1: `/api/token/` API (Recommended) **URL:** `https://factpulse.fr/api/token/` This method is **recommended** for integration in your applications and CI/CD workflows. **Prerequisites:** Having set a password on your account **For users registered via email/password:** - You already have a password, use it directly **For users registered via OAuth (Google/GitHub):** - You must first set a password at: https://factpulse.fr/accounts/password/set/ - Once the password is created, you can use the API **Request example:** ```bash curl -X POST https://factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\" }' ``` **Optional `client_uid` parameter:** To select credentials for a specific client (PA/PDP, Chorus Pro, signing certificates), add `client_uid`: ```bash curl -X POST https://factpulse.fr/api/token/ \\ -H \"Content-Type: application/json\" \\ -d '{ \"username\": \"your_email@example.com\", \"password\": \"your_password\", \"client_uid\": \"550e8400-e29b-41d4-a716-446655440000\" }' ``` The `client_uid` will be included in the JWT and allow the API to automatically use: - AFNOR/PDP credentials configured for this client - Chorus Pro credentials configured for this client - Electronic signature certificates configured for this client **Response:** ```json { \"access\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\", // Access token (validity: 30 min) \"refresh\": \"eyJ0eXAiOiJKV1QiLCJhbGc...\" // Refresh token (validity: 7 days) } ``` **Advantages:** - ✅ Full automation (CI/CD, scripts) - ✅ Programmatic token management - ✅ Refresh token support for automatic access renewal - ✅ Easy integration in any language/tool #### 🖥️ Method 2: Dashboard Generation (Alternative) **URL:** https://factpulse.fr/api/dashboard/ This method is suitable for quick tests or occasional use via the graphical interface. **How it works:** - Log in to the dashboard - Use the \"Generate Test Token\" or \"Generate Production Token\" buttons - Works for **all** users (OAuth and email/password), without requiring a password **Token types:** - **Test Token**: 24h validity, 1000 calls/day quota (free) - **Production Token**: 7 days validity, quota based on your plan **Advantages:** - ✅ Quick for API testing - ✅ No password required - ✅ Simple visual interface **Disadvantages:** - ❌ Requires manual action - ❌ No refresh token - ❌ Less suited for automation ### 📚 Full Documentation For more information on authentication and API usage: https://factpulse.fr/documentation-api/
|
|
7
7
|
|
|
8
8
|
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Contact: contact@factpulse.fr
|
|
9
10
|
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
11
|
|
|
11
12
|
Do not edit the class manually.
|
|
@@ -16,8 +17,13 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
|
|
16
17
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
17
18
|
from typing_extensions import Annotated
|
|
18
19
|
|
|
19
|
-
from pydantic import StrictStr
|
|
20
|
-
from typing import Any
|
|
20
|
+
from pydantic import Field, StrictBytes, StrictStr
|
|
21
|
+
from typing import Any, Dict, Optional, Tuple, Union
|
|
22
|
+
from typing_extensions import Annotated
|
|
23
|
+
from factpulse.models.afnor_flow import AFNORFlow
|
|
24
|
+
from factpulse.models.afnor_flow_info import AFNORFlowInfo
|
|
25
|
+
from factpulse.models.afnor_search_flow_content import AFNORSearchFlowContent
|
|
26
|
+
from factpulse.models.afnor_search_flow_params import AFNORSearchFlowParams
|
|
21
27
|
|
|
22
28
|
from factpulse.api_client import ApiClient, RequestSerialized
|
|
23
29
|
from factpulse.api_response import ApiResponse
|
|
@@ -40,7 +46,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
40
46
|
@validate_call
|
|
41
47
|
def download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get(
|
|
42
48
|
self,
|
|
43
|
-
flow_id: StrictStr,
|
|
49
|
+
flow_id: Annotated[StrictStr, Field(description="AFNOR flow identifier (UUID)")],
|
|
50
|
+
doc_type: Annotated[Optional[Any], Field(description="Type of file to download: Metadata (default, JSON), Original, Converted, or ReadableView")] = None,
|
|
44
51
|
_request_timeout: Union[
|
|
45
52
|
None,
|
|
46
53
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -53,13 +60,15 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
53
60
|
_content_type: Optional[StrictStr] = None,
|
|
54
61
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
55
62
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
56
|
-
) ->
|
|
57
|
-
"""
|
|
63
|
+
) -> AFNORFlow:
|
|
64
|
+
"""Download a flow
|
|
58
65
|
|
|
59
|
-
|
|
66
|
+
Download a file related to a given flow (AFNOR XP Z12-013 compliant): - Metadata [Default]: provides the flow metadata as JSON - Original: the document initially sent by the emitter - Converted: the document optionally converted by the system - ReadableView: the document optionally generated as readable file
|
|
60
67
|
|
|
61
|
-
:param flow_id: (required)
|
|
68
|
+
:param flow_id: AFNOR flow identifier (UUID) (required)
|
|
62
69
|
:type flow_id: str
|
|
70
|
+
:param doc_type: Type of file to download: Metadata (default, JSON), Original, Converted, or ReadableView
|
|
71
|
+
:type doc_type: DocType
|
|
63
72
|
:param _request_timeout: timeout setting for this request. If one
|
|
64
73
|
number provided, it will be total request
|
|
65
74
|
timeout. It can also be a pair (tuple) of
|
|
@@ -84,6 +93,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
84
93
|
|
|
85
94
|
_param = self._download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
|
|
86
95
|
flow_id=flow_id,
|
|
96
|
+
doc_type=doc_type,
|
|
87
97
|
_request_auth=_request_auth,
|
|
88
98
|
_content_type=_content_type,
|
|
89
99
|
_headers=_headers,
|
|
@@ -91,10 +101,14 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
91
101
|
)
|
|
92
102
|
|
|
93
103
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
94
|
-
'200': "
|
|
95
|
-
'400':
|
|
96
|
-
'401':
|
|
97
|
-
'
|
|
104
|
+
'200': "AFNORFlow",
|
|
105
|
+
'400': "AFNORError",
|
|
106
|
+
'401': "AFNORError",
|
|
107
|
+
'403': "AFNORError",
|
|
108
|
+
'404': "AFNORError",
|
|
109
|
+
'429': "AFNORError",
|
|
110
|
+
'500': "AFNORError",
|
|
111
|
+
'503': "AFNORError",
|
|
98
112
|
'422': "HTTPValidationError",
|
|
99
113
|
}
|
|
100
114
|
response_data = self.api_client.call_api(
|
|
@@ -111,7 +125,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
111
125
|
@validate_call
|
|
112
126
|
def download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_with_http_info(
|
|
113
127
|
self,
|
|
114
|
-
flow_id: StrictStr,
|
|
128
|
+
flow_id: Annotated[StrictStr, Field(description="AFNOR flow identifier (UUID)")],
|
|
129
|
+
doc_type: Annotated[Optional[Any], Field(description="Type of file to download: Metadata (default, JSON), Original, Converted, or ReadableView")] = None,
|
|
115
130
|
_request_timeout: Union[
|
|
116
131
|
None,
|
|
117
132
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -124,13 +139,15 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
124
139
|
_content_type: Optional[StrictStr] = None,
|
|
125
140
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
126
141
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
127
|
-
) -> ApiResponse[
|
|
128
|
-
"""
|
|
142
|
+
) -> ApiResponse[AFNORFlow]:
|
|
143
|
+
"""Download a flow
|
|
129
144
|
|
|
130
|
-
|
|
145
|
+
Download a file related to a given flow (AFNOR XP Z12-013 compliant): - Metadata [Default]: provides the flow metadata as JSON - Original: the document initially sent by the emitter - Converted: the document optionally converted by the system - ReadableView: the document optionally generated as readable file
|
|
131
146
|
|
|
132
|
-
:param flow_id: (required)
|
|
147
|
+
:param flow_id: AFNOR flow identifier (UUID) (required)
|
|
133
148
|
:type flow_id: str
|
|
149
|
+
:param doc_type: Type of file to download: Metadata (default, JSON), Original, Converted, or ReadableView
|
|
150
|
+
:type doc_type: DocType
|
|
134
151
|
:param _request_timeout: timeout setting for this request. If one
|
|
135
152
|
number provided, it will be total request
|
|
136
153
|
timeout. It can also be a pair (tuple) of
|
|
@@ -155,6 +172,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
155
172
|
|
|
156
173
|
_param = self._download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
|
|
157
174
|
flow_id=flow_id,
|
|
175
|
+
doc_type=doc_type,
|
|
158
176
|
_request_auth=_request_auth,
|
|
159
177
|
_content_type=_content_type,
|
|
160
178
|
_headers=_headers,
|
|
@@ -162,10 +180,14 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
162
180
|
)
|
|
163
181
|
|
|
164
182
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
165
|
-
'200': "
|
|
166
|
-
'400':
|
|
167
|
-
'401':
|
|
168
|
-
'
|
|
183
|
+
'200': "AFNORFlow",
|
|
184
|
+
'400': "AFNORError",
|
|
185
|
+
'401': "AFNORError",
|
|
186
|
+
'403': "AFNORError",
|
|
187
|
+
'404': "AFNORError",
|
|
188
|
+
'429': "AFNORError",
|
|
189
|
+
'500': "AFNORError",
|
|
190
|
+
'503': "AFNORError",
|
|
169
191
|
'422': "HTTPValidationError",
|
|
170
192
|
}
|
|
171
193
|
response_data = self.api_client.call_api(
|
|
@@ -182,7 +204,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
182
204
|
@validate_call
|
|
183
205
|
def download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_without_preload_content(
|
|
184
206
|
self,
|
|
185
|
-
flow_id: StrictStr,
|
|
207
|
+
flow_id: Annotated[StrictStr, Field(description="AFNOR flow identifier (UUID)")],
|
|
208
|
+
doc_type: Annotated[Optional[Any], Field(description="Type of file to download: Metadata (default, JSON), Original, Converted, or ReadableView")] = None,
|
|
186
209
|
_request_timeout: Union[
|
|
187
210
|
None,
|
|
188
211
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -196,12 +219,14 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
196
219
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
197
220
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
198
221
|
) -> RESTResponseType:
|
|
199
|
-
"""
|
|
222
|
+
"""Download a flow
|
|
200
223
|
|
|
201
|
-
|
|
224
|
+
Download a file related to a given flow (AFNOR XP Z12-013 compliant): - Metadata [Default]: provides the flow metadata as JSON - Original: the document initially sent by the emitter - Converted: the document optionally converted by the system - ReadableView: the document optionally generated as readable file
|
|
202
225
|
|
|
203
|
-
:param flow_id: (required)
|
|
226
|
+
:param flow_id: AFNOR flow identifier (UUID) (required)
|
|
204
227
|
:type flow_id: str
|
|
228
|
+
:param doc_type: Type of file to download: Metadata (default, JSON), Original, Converted, or ReadableView
|
|
229
|
+
:type doc_type: DocType
|
|
205
230
|
:param _request_timeout: timeout setting for this request. If one
|
|
206
231
|
number provided, it will be total request
|
|
207
232
|
timeout. It can also be a pair (tuple) of
|
|
@@ -226,6 +251,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
226
251
|
|
|
227
252
|
_param = self._download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
|
|
228
253
|
flow_id=flow_id,
|
|
254
|
+
doc_type=doc_type,
|
|
229
255
|
_request_auth=_request_auth,
|
|
230
256
|
_content_type=_content_type,
|
|
231
257
|
_headers=_headers,
|
|
@@ -233,10 +259,14 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
233
259
|
)
|
|
234
260
|
|
|
235
261
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
236
|
-
'200': "
|
|
237
|
-
'400':
|
|
238
|
-
'401':
|
|
239
|
-
'
|
|
262
|
+
'200': "AFNORFlow",
|
|
263
|
+
'400': "AFNORError",
|
|
264
|
+
'401': "AFNORError",
|
|
265
|
+
'403': "AFNORError",
|
|
266
|
+
'404': "AFNORError",
|
|
267
|
+
'429': "AFNORError",
|
|
268
|
+
'500': "AFNORError",
|
|
269
|
+
'503': "AFNORError",
|
|
240
270
|
'422': "HTTPValidationError",
|
|
241
271
|
}
|
|
242
272
|
response_data = self.api_client.call_api(
|
|
@@ -249,6 +279,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
249
279
|
def _download_flow_proxy_api_v1_afnor_flow_v1_flows_flow_id_get_serialize(
|
|
250
280
|
self,
|
|
251
281
|
flow_id,
|
|
282
|
+
doc_type,
|
|
252
283
|
_request_auth,
|
|
253
284
|
_content_type,
|
|
254
285
|
_headers,
|
|
@@ -273,6 +304,10 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
273
304
|
if flow_id is not None:
|
|
274
305
|
_path_params['flowId'] = flow_id
|
|
275
306
|
# process the query parameters
|
|
307
|
+
if doc_type is not None:
|
|
308
|
+
|
|
309
|
+
_query_params.append(('docType', doc_type.value))
|
|
310
|
+
|
|
276
311
|
# process the header parameters
|
|
277
312
|
# process the form parameters
|
|
278
313
|
# process the body parameter
|
|
@@ -283,7 +318,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
283
318
|
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
284
319
|
[
|
|
285
320
|
'application/json',
|
|
286
|
-
'application/pdf'
|
|
321
|
+
'application/pdf',
|
|
322
|
+
'application/xml'
|
|
287
323
|
]
|
|
288
324
|
)
|
|
289
325
|
|
|
@@ -328,7 +364,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
328
364
|
) -> object:
|
|
329
365
|
"""Healthcheck Flow Service
|
|
330
366
|
|
|
331
|
-
|
|
367
|
+
Check Flow Service availability (AFNOR XP Z12-013 compliant)
|
|
332
368
|
|
|
333
369
|
:param _request_timeout: timeout setting for this request. If one
|
|
334
370
|
number provided, it will be total request
|
|
@@ -361,6 +397,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
361
397
|
|
|
362
398
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
363
399
|
'200': "object",
|
|
400
|
+
'500': "AFNORError",
|
|
401
|
+
'503': "AFNORError",
|
|
364
402
|
}
|
|
365
403
|
response_data = self.api_client.call_api(
|
|
366
404
|
*_param,
|
|
@@ -391,7 +429,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
391
429
|
) -> ApiResponse[object]:
|
|
392
430
|
"""Healthcheck Flow Service
|
|
393
431
|
|
|
394
|
-
|
|
432
|
+
Check Flow Service availability (AFNOR XP Z12-013 compliant)
|
|
395
433
|
|
|
396
434
|
:param _request_timeout: timeout setting for this request. If one
|
|
397
435
|
number provided, it will be total request
|
|
@@ -424,6 +462,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
424
462
|
|
|
425
463
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
426
464
|
'200': "object",
|
|
465
|
+
'500': "AFNORError",
|
|
466
|
+
'503': "AFNORError",
|
|
427
467
|
}
|
|
428
468
|
response_data = self.api_client.call_api(
|
|
429
469
|
*_param,
|
|
@@ -454,7 +494,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
454
494
|
) -> RESTResponseType:
|
|
455
495
|
"""Healthcheck Flow Service
|
|
456
496
|
|
|
457
|
-
|
|
497
|
+
Check Flow Service availability (AFNOR XP Z12-013 compliant)
|
|
458
498
|
|
|
459
499
|
:param _request_timeout: timeout setting for this request. If one
|
|
460
500
|
number provided, it will be total request
|
|
@@ -487,6 +527,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
487
527
|
|
|
488
528
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
489
529
|
'200': "object",
|
|
530
|
+
'500': "AFNORError",
|
|
531
|
+
'503': "AFNORError",
|
|
490
532
|
}
|
|
491
533
|
response_data = self.api_client.call_api(
|
|
492
534
|
*_param,
|
|
@@ -558,6 +600,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
558
600
|
@validate_call
|
|
559
601
|
def search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post(
|
|
560
602
|
self,
|
|
603
|
+
afnor_search_flow_params: AFNORSearchFlowParams,
|
|
561
604
|
_request_timeout: Union[
|
|
562
605
|
None,
|
|
563
606
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -570,11 +613,13 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
570
613
|
_content_type: Optional[StrictStr] = None,
|
|
571
614
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
572
615
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
573
|
-
) ->
|
|
574
|
-
"""
|
|
616
|
+
) -> AFNORSearchFlowContent:
|
|
617
|
+
"""Search flows
|
|
575
618
|
|
|
576
|
-
|
|
619
|
+
Search invoicing flows by criteria (AFNOR XP Z12-013 compliant)
|
|
577
620
|
|
|
621
|
+
:param afnor_search_flow_params: (required)
|
|
622
|
+
:type afnor_search_flow_params: AFNORSearchFlowParams
|
|
578
623
|
:param _request_timeout: timeout setting for this request. If one
|
|
579
624
|
number provided, it will be total request
|
|
580
625
|
timeout. It can also be a pair (tuple) of
|
|
@@ -598,6 +643,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
598
643
|
""" # noqa: E501
|
|
599
644
|
|
|
600
645
|
_param = self._search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
|
|
646
|
+
afnor_search_flow_params=afnor_search_flow_params,
|
|
601
647
|
_request_auth=_request_auth,
|
|
602
648
|
_content_type=_content_type,
|
|
603
649
|
_headers=_headers,
|
|
@@ -605,11 +651,13 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
605
651
|
)
|
|
606
652
|
|
|
607
653
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
608
|
-
'200': "
|
|
609
|
-
'400':
|
|
610
|
-
'401':
|
|
611
|
-
'
|
|
612
|
-
'429':
|
|
654
|
+
'200': "AFNORSearchFlowContent",
|
|
655
|
+
'400': "AFNORError",
|
|
656
|
+
'401': "AFNORError",
|
|
657
|
+
'403': "AFNORError",
|
|
658
|
+
'429': "AFNORError",
|
|
659
|
+
'500': "AFNORError",
|
|
660
|
+
'503': "AFNORError",
|
|
613
661
|
}
|
|
614
662
|
response_data = self.api_client.call_api(
|
|
615
663
|
*_param,
|
|
@@ -625,6 +673,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
625
673
|
@validate_call
|
|
626
674
|
def search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_with_http_info(
|
|
627
675
|
self,
|
|
676
|
+
afnor_search_flow_params: AFNORSearchFlowParams,
|
|
628
677
|
_request_timeout: Union[
|
|
629
678
|
None,
|
|
630
679
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -637,11 +686,13 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
637
686
|
_content_type: Optional[StrictStr] = None,
|
|
638
687
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
639
688
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
640
|
-
) -> ApiResponse[
|
|
641
|
-
"""
|
|
689
|
+
) -> ApiResponse[AFNORSearchFlowContent]:
|
|
690
|
+
"""Search flows
|
|
642
691
|
|
|
643
|
-
|
|
692
|
+
Search invoicing flows by criteria (AFNOR XP Z12-013 compliant)
|
|
644
693
|
|
|
694
|
+
:param afnor_search_flow_params: (required)
|
|
695
|
+
:type afnor_search_flow_params: AFNORSearchFlowParams
|
|
645
696
|
:param _request_timeout: timeout setting for this request. If one
|
|
646
697
|
number provided, it will be total request
|
|
647
698
|
timeout. It can also be a pair (tuple) of
|
|
@@ -665,6 +716,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
665
716
|
""" # noqa: E501
|
|
666
717
|
|
|
667
718
|
_param = self._search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
|
|
719
|
+
afnor_search_flow_params=afnor_search_flow_params,
|
|
668
720
|
_request_auth=_request_auth,
|
|
669
721
|
_content_type=_content_type,
|
|
670
722
|
_headers=_headers,
|
|
@@ -672,11 +724,13 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
672
724
|
)
|
|
673
725
|
|
|
674
726
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
675
|
-
'200': "
|
|
676
|
-
'400':
|
|
677
|
-
'401':
|
|
678
|
-
'
|
|
679
|
-
'429':
|
|
727
|
+
'200': "AFNORSearchFlowContent",
|
|
728
|
+
'400': "AFNORError",
|
|
729
|
+
'401': "AFNORError",
|
|
730
|
+
'403': "AFNORError",
|
|
731
|
+
'429': "AFNORError",
|
|
732
|
+
'500': "AFNORError",
|
|
733
|
+
'503': "AFNORError",
|
|
680
734
|
}
|
|
681
735
|
response_data = self.api_client.call_api(
|
|
682
736
|
*_param,
|
|
@@ -692,6 +746,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
692
746
|
@validate_call
|
|
693
747
|
def search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_without_preload_content(
|
|
694
748
|
self,
|
|
749
|
+
afnor_search_flow_params: AFNORSearchFlowParams,
|
|
695
750
|
_request_timeout: Union[
|
|
696
751
|
None,
|
|
697
752
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -705,10 +760,12 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
705
760
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
706
761
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
707
762
|
) -> RESTResponseType:
|
|
708
|
-
"""
|
|
763
|
+
"""Search flows
|
|
709
764
|
|
|
710
|
-
|
|
765
|
+
Search invoicing flows by criteria (AFNOR XP Z12-013 compliant)
|
|
711
766
|
|
|
767
|
+
:param afnor_search_flow_params: (required)
|
|
768
|
+
:type afnor_search_flow_params: AFNORSearchFlowParams
|
|
712
769
|
:param _request_timeout: timeout setting for this request. If one
|
|
713
770
|
number provided, it will be total request
|
|
714
771
|
timeout. It can also be a pair (tuple) of
|
|
@@ -732,6 +789,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
732
789
|
""" # noqa: E501
|
|
733
790
|
|
|
734
791
|
_param = self._search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
|
|
792
|
+
afnor_search_flow_params=afnor_search_flow_params,
|
|
735
793
|
_request_auth=_request_auth,
|
|
736
794
|
_content_type=_content_type,
|
|
737
795
|
_headers=_headers,
|
|
@@ -739,11 +797,13 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
739
797
|
)
|
|
740
798
|
|
|
741
799
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
742
|
-
'200': "
|
|
743
|
-
'400':
|
|
744
|
-
'401':
|
|
745
|
-
'
|
|
746
|
-
'429':
|
|
800
|
+
'200': "AFNORSearchFlowContent",
|
|
801
|
+
'400': "AFNORError",
|
|
802
|
+
'401': "AFNORError",
|
|
803
|
+
'403': "AFNORError",
|
|
804
|
+
'429': "AFNORError",
|
|
805
|
+
'500': "AFNORError",
|
|
806
|
+
'503': "AFNORError",
|
|
747
807
|
}
|
|
748
808
|
response_data = self.api_client.call_api(
|
|
749
809
|
*_param,
|
|
@@ -754,6 +814,7 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
754
814
|
|
|
755
815
|
def _search_flows_proxy_api_v1_afnor_flow_v1_flows_search_post_serialize(
|
|
756
816
|
self,
|
|
817
|
+
afnor_search_flow_params,
|
|
757
818
|
_request_auth,
|
|
758
819
|
_content_type,
|
|
759
820
|
_headers,
|
|
@@ -779,6 +840,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
779
840
|
# process the header parameters
|
|
780
841
|
# process the form parameters
|
|
781
842
|
# process the body parameter
|
|
843
|
+
if afnor_search_flow_params is not None:
|
|
844
|
+
_body_params = afnor_search_flow_params
|
|
782
845
|
|
|
783
846
|
|
|
784
847
|
# set the HTTP header `Accept`
|
|
@@ -789,6 +852,19 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
789
852
|
]
|
|
790
853
|
)
|
|
791
854
|
|
|
855
|
+
# set the HTTP header `Content-Type`
|
|
856
|
+
if _content_type:
|
|
857
|
+
_header_params['Content-Type'] = _content_type
|
|
858
|
+
else:
|
|
859
|
+
_default_content_type = (
|
|
860
|
+
self.api_client.select_header_content_type(
|
|
861
|
+
[
|
|
862
|
+
'application/json'
|
|
863
|
+
]
|
|
864
|
+
)
|
|
865
|
+
)
|
|
866
|
+
if _default_content_type is not None:
|
|
867
|
+
_header_params['Content-Type'] = _default_content_type
|
|
792
868
|
|
|
793
869
|
# authentication setting
|
|
794
870
|
_auth_settings: List[str] = [
|
|
@@ -815,6 +891,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
815
891
|
@validate_call
|
|
816
892
|
def submit_flow_proxy_api_v1_afnor_flow_v1_flows_post(
|
|
817
893
|
self,
|
|
894
|
+
flow_info: AFNORFlowInfo,
|
|
895
|
+
file: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description="Flow file (PDF/A-3 with embedded XML or XML)")],
|
|
818
896
|
_request_timeout: Union[
|
|
819
897
|
None,
|
|
820
898
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -828,10 +906,14 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
828
906
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
829
907
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
830
908
|
) -> object:
|
|
831
|
-
"""
|
|
909
|
+
"""Submit an invoicing flow
|
|
832
910
|
|
|
833
|
-
|
|
911
|
+
Submits an electronic invoice to a Partner Dematerialization Platform (PDP) in compliance with the AFNOR XP Z12-013 standard
|
|
834
912
|
|
|
913
|
+
:param flow_info: (required)
|
|
914
|
+
:type flow_info: AFNORFlowInfo
|
|
915
|
+
:param file: Flow file (PDF/A-3 with embedded XML or XML) (required)
|
|
916
|
+
:type file: bytearray
|
|
835
917
|
:param _request_timeout: timeout setting for this request. If one
|
|
836
918
|
number provided, it will be total request
|
|
837
919
|
timeout. It can also be a pair (tuple) of
|
|
@@ -855,6 +937,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
855
937
|
""" # noqa: E501
|
|
856
938
|
|
|
857
939
|
_param = self._submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
|
|
940
|
+
flow_info=flow_info,
|
|
941
|
+
file=file,
|
|
858
942
|
_request_auth=_request_auth,
|
|
859
943
|
_content_type=_content_type,
|
|
860
944
|
_headers=_headers,
|
|
@@ -863,12 +947,16 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
863
947
|
|
|
864
948
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
865
949
|
'200': "object",
|
|
866
|
-
'
|
|
867
|
-
'400':
|
|
868
|
-
'401':
|
|
869
|
-
'403':
|
|
870
|
-
'404':
|
|
871
|
-
'
|
|
950
|
+
'202': "AFNORFullFlowInfo",
|
|
951
|
+
'400': "AFNORError",
|
|
952
|
+
'401': "AFNORError",
|
|
953
|
+
'403': "AFNORError",
|
|
954
|
+
'404': "AFNORError",
|
|
955
|
+
'413': "AFNORError",
|
|
956
|
+
'422': "AFNORError",
|
|
957
|
+
'429': "AFNORError",
|
|
958
|
+
'500': "AFNORError",
|
|
959
|
+
'503': "AFNORError",
|
|
872
960
|
}
|
|
873
961
|
response_data = self.api_client.call_api(
|
|
874
962
|
*_param,
|
|
@@ -884,6 +972,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
884
972
|
@validate_call
|
|
885
973
|
def submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_with_http_info(
|
|
886
974
|
self,
|
|
975
|
+
flow_info: AFNORFlowInfo,
|
|
976
|
+
file: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description="Flow file (PDF/A-3 with embedded XML or XML)")],
|
|
887
977
|
_request_timeout: Union[
|
|
888
978
|
None,
|
|
889
979
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -897,10 +987,14 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
897
987
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
898
988
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
899
989
|
) -> ApiResponse[object]:
|
|
900
|
-
"""
|
|
990
|
+
"""Submit an invoicing flow
|
|
901
991
|
|
|
902
|
-
|
|
992
|
+
Submits an electronic invoice to a Partner Dematerialization Platform (PDP) in compliance with the AFNOR XP Z12-013 standard
|
|
903
993
|
|
|
994
|
+
:param flow_info: (required)
|
|
995
|
+
:type flow_info: AFNORFlowInfo
|
|
996
|
+
:param file: Flow file (PDF/A-3 with embedded XML or XML) (required)
|
|
997
|
+
:type file: bytearray
|
|
904
998
|
:param _request_timeout: timeout setting for this request. If one
|
|
905
999
|
number provided, it will be total request
|
|
906
1000
|
timeout. It can also be a pair (tuple) of
|
|
@@ -924,6 +1018,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
924
1018
|
""" # noqa: E501
|
|
925
1019
|
|
|
926
1020
|
_param = self._submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
|
|
1021
|
+
flow_info=flow_info,
|
|
1022
|
+
file=file,
|
|
927
1023
|
_request_auth=_request_auth,
|
|
928
1024
|
_content_type=_content_type,
|
|
929
1025
|
_headers=_headers,
|
|
@@ -932,12 +1028,16 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
932
1028
|
|
|
933
1029
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
934
1030
|
'200': "object",
|
|
935
|
-
'
|
|
936
|
-
'400':
|
|
937
|
-
'401':
|
|
938
|
-
'403':
|
|
939
|
-
'404':
|
|
940
|
-
'
|
|
1031
|
+
'202': "AFNORFullFlowInfo",
|
|
1032
|
+
'400': "AFNORError",
|
|
1033
|
+
'401': "AFNORError",
|
|
1034
|
+
'403': "AFNORError",
|
|
1035
|
+
'404': "AFNORError",
|
|
1036
|
+
'413': "AFNORError",
|
|
1037
|
+
'422': "AFNORError",
|
|
1038
|
+
'429': "AFNORError",
|
|
1039
|
+
'500': "AFNORError",
|
|
1040
|
+
'503': "AFNORError",
|
|
941
1041
|
}
|
|
942
1042
|
response_data = self.api_client.call_api(
|
|
943
1043
|
*_param,
|
|
@@ -953,6 +1053,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
953
1053
|
@validate_call
|
|
954
1054
|
def submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_without_preload_content(
|
|
955
1055
|
self,
|
|
1056
|
+
flow_info: AFNORFlowInfo,
|
|
1057
|
+
file: Annotated[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]], Field(description="Flow file (PDF/A-3 with embedded XML or XML)")],
|
|
956
1058
|
_request_timeout: Union[
|
|
957
1059
|
None,
|
|
958
1060
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -966,10 +1068,14 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
966
1068
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
967
1069
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
968
1070
|
) -> RESTResponseType:
|
|
969
|
-
"""
|
|
1071
|
+
"""Submit an invoicing flow
|
|
970
1072
|
|
|
971
|
-
|
|
1073
|
+
Submits an electronic invoice to a Partner Dematerialization Platform (PDP) in compliance with the AFNOR XP Z12-013 standard
|
|
972
1074
|
|
|
1075
|
+
:param flow_info: (required)
|
|
1076
|
+
:type flow_info: AFNORFlowInfo
|
|
1077
|
+
:param file: Flow file (PDF/A-3 with embedded XML or XML) (required)
|
|
1078
|
+
:type file: bytearray
|
|
973
1079
|
:param _request_timeout: timeout setting for this request. If one
|
|
974
1080
|
number provided, it will be total request
|
|
975
1081
|
timeout. It can also be a pair (tuple) of
|
|
@@ -993,6 +1099,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
993
1099
|
""" # noqa: E501
|
|
994
1100
|
|
|
995
1101
|
_param = self._submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
|
|
1102
|
+
flow_info=flow_info,
|
|
1103
|
+
file=file,
|
|
996
1104
|
_request_auth=_request_auth,
|
|
997
1105
|
_content_type=_content_type,
|
|
998
1106
|
_headers=_headers,
|
|
@@ -1001,12 +1109,16 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
1001
1109
|
|
|
1002
1110
|
_response_types_map: Dict[str, Optional[str]] = {
|
|
1003
1111
|
'200': "object",
|
|
1004
|
-
'
|
|
1005
|
-
'400':
|
|
1006
|
-
'401':
|
|
1007
|
-
'403':
|
|
1008
|
-
'404':
|
|
1009
|
-
'
|
|
1112
|
+
'202': "AFNORFullFlowInfo",
|
|
1113
|
+
'400': "AFNORError",
|
|
1114
|
+
'401': "AFNORError",
|
|
1115
|
+
'403': "AFNORError",
|
|
1116
|
+
'404': "AFNORError",
|
|
1117
|
+
'413': "AFNORError",
|
|
1118
|
+
'422': "AFNORError",
|
|
1119
|
+
'429': "AFNORError",
|
|
1120
|
+
'500': "AFNORError",
|
|
1121
|
+
'503': "AFNORError",
|
|
1010
1122
|
}
|
|
1011
1123
|
response_data = self.api_client.call_api(
|
|
1012
1124
|
*_param,
|
|
@@ -1017,6 +1129,8 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
1017
1129
|
|
|
1018
1130
|
def _submit_flow_proxy_api_v1_afnor_flow_v1_flows_post_serialize(
|
|
1019
1131
|
self,
|
|
1132
|
+
flow_info,
|
|
1133
|
+
file,
|
|
1020
1134
|
_request_auth,
|
|
1021
1135
|
_content_type,
|
|
1022
1136
|
_headers,
|
|
@@ -1041,6 +1155,10 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
1041
1155
|
# process the query parameters
|
|
1042
1156
|
# process the header parameters
|
|
1043
1157
|
# process the form parameters
|
|
1158
|
+
if flow_info is not None:
|
|
1159
|
+
_form_params.append(('flowInfo', flow_info))
|
|
1160
|
+
if file is not None:
|
|
1161
|
+
_files['file'] = file
|
|
1044
1162
|
# process the body parameter
|
|
1045
1163
|
|
|
1046
1164
|
|
|
@@ -1052,6 +1170,19 @@ class AFNORPDPPAFlowServiceApi:
|
|
|
1052
1170
|
]
|
|
1053
1171
|
)
|
|
1054
1172
|
|
|
1173
|
+
# set the HTTP header `Content-Type`
|
|
1174
|
+
if _content_type:
|
|
1175
|
+
_header_params['Content-Type'] = _content_type
|
|
1176
|
+
else:
|
|
1177
|
+
_default_content_type = (
|
|
1178
|
+
self.api_client.select_header_content_type(
|
|
1179
|
+
[
|
|
1180
|
+
'multipart/form-data'
|
|
1181
|
+
]
|
|
1182
|
+
)
|
|
1183
|
+
)
|
|
1184
|
+
if _default_content_type is not None:
|
|
1185
|
+
_header_params['Content-Type'] = _default_content_type
|
|
1055
1186
|
|
|
1056
1187
|
# authentication setting
|
|
1057
1188
|
_auth_settings: List[str] = [
|