@factpulse/sdk 3.0.9 → 3.0.13
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.
- package/.openapi-generator/FILES +282 -8
- package/CHANGELOG.md +3 -3
- package/LICENSE +1 -1
- package/api/afnorpdppaapi.ts +10 -10
- package/api/afnorpdppadirectory-service-api.ts +560 -284
- package/api/afnorpdppaflow-service-api.ts +96 -43
- package/api/chorus-pro-api.ts +12 -10
- package/api/document-conversion-api.ts +34 -122
- package/api/downloads-api.ts +360 -0
- package/api/ereporting-api.ts +927 -0
- package/api/health-api.ts +2 -2
- package/api/invoice-processing-api.ts +158 -68
- package/api/pdfxmlverification-api.ts +64 -32
- package/api/user-api.ts +2 -2
- package/api.ts +4 -2
- package/base.ts +3 -3
- package/common.ts +17 -4
- package/configuration.ts +2 -2
- package/dist/api/afnorpdppaapi.d.ts +10 -10
- package/dist/api/afnorpdppaapi.js +10 -10
- package/dist/api/afnorpdppadirectory-service-api.d.ts +359 -229
- package/dist/api/afnorpdppadirectory-service-api.js +519 -280
- package/dist/api/afnorpdppaflow-service-api.d.ts +54 -33
- package/dist/api/afnorpdppaflow-service-api.js +76 -40
- package/dist/api/chorus-pro-api.d.ts +10 -10
- package/dist/api/chorus-pro-api.js +10 -10
- package/dist/api/document-conversion-api.d.ts +26 -62
- package/dist/api/document-conversion-api.js +32 -113
- package/dist/api/downloads-api.d.ts +170 -0
- package/dist/api/downloads-api.js +356 -0
- package/dist/api/ereporting-api.d.ts +443 -0
- package/dist/api/ereporting-api.js +878 -0
- package/dist/api/health-api.d.ts +2 -2
- package/dist/api/health-api.js +2 -2
- package/dist/api/invoice-processing-api.d.ts +94 -50
- package/dist/api/invoice-processing-api.js +145 -68
- package/dist/api/pdfxmlverification-api.d.ts +42 -26
- package/dist/api/pdfxmlverification-api.js +60 -32
- package/dist/api/user-api.d.ts +2 -2
- package/dist/api/user-api.js +2 -2
- package/dist/api.d.ts +4 -2
- package/dist/api.js +4 -2
- package/dist/base.d.ts +2 -2
- package/dist/base.js +3 -3
- package/dist/common.d.ts +8 -2
- package/dist/common.js +19 -5
- package/dist/configuration.d.ts +2 -2
- package/dist/configuration.js +2 -2
- package/dist/esm/api/afnorpdppaapi.d.ts +10 -10
- package/dist/esm/api/afnorpdppaapi.js +10 -10
- package/dist/esm/api/afnorpdppadirectory-service-api.d.ts +359 -229
- package/dist/esm/api/afnorpdppadirectory-service-api.js +520 -281
- package/dist/esm/api/afnorpdppaflow-service-api.d.ts +54 -33
- package/dist/esm/api/afnorpdppaflow-service-api.js +77 -41
- package/dist/esm/api/chorus-pro-api.d.ts +10 -10
- package/dist/esm/api/chorus-pro-api.js +10 -10
- package/dist/esm/api/document-conversion-api.d.ts +26 -62
- package/dist/esm/api/document-conversion-api.js +32 -113
- package/dist/esm/api/downloads-api.d.ts +170 -0
- package/dist/esm/api/downloads-api.js +346 -0
- package/dist/esm/api/ereporting-api.d.ts +443 -0
- package/dist/esm/api/ereporting-api.js +868 -0
- package/dist/esm/api/health-api.d.ts +2 -2
- package/dist/esm/api/health-api.js +2 -2
- package/dist/esm/api/invoice-processing-api.d.ts +94 -50
- package/dist/esm/api/invoice-processing-api.js +145 -68
- package/dist/esm/api/pdfxmlverification-api.d.ts +42 -26
- package/dist/esm/api/pdfxmlverification-api.js +60 -32
- package/dist/esm/api/user-api.d.ts +2 -2
- package/dist/esm/api/user-api.js +2 -2
- package/dist/esm/api.d.ts +4 -2
- package/dist/esm/api.js +4 -2
- package/dist/esm/base.d.ts +2 -2
- package/dist/esm/base.js +3 -3
- package/dist/esm/common.d.ts +8 -2
- package/dist/esm/common.js +17 -4
- package/dist/esm/configuration.d.ts +2 -2
- package/dist/esm/configuration.js +2 -2
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/models/accept-language.d.ts +19 -0
- package/dist/esm/models/accept-language.js +20 -0
- package/dist/esm/models/acknowledgment-status.d.ts +2 -2
- package/dist/esm/models/acknowledgment-status.js +2 -2
- package/dist/esm/models/additional-document.d.ts +2 -2
- package/dist/esm/models/additional-document.js +2 -2
- package/dist/esm/models/afnoracknowledgement-detail.d.ts +26 -0
- package/dist/esm/models/afnoracknowledgement-detail.js +17 -0
- package/dist/esm/models/afnoracknowledgement.d.ts +17 -0
- package/dist/esm/models/afnoracknowledgement.js +14 -0
- package/dist/esm/models/afnoraddress-edit.d.ts +44 -0
- package/dist/esm/models/afnoraddress-edit.js +14 -0
- package/dist/esm/models/afnoraddress-patch.d.ts +44 -0
- package/dist/esm/models/afnoraddress-patch.js +14 -0
- package/dist/esm/models/afnoraddress-put.d.ts +44 -0
- package/dist/esm/models/afnoraddress-put.js +14 -0
- package/dist/esm/models/afnoraddress-read.d.ts +48 -0
- package/dist/esm/models/afnoraddress-read.js +14 -0
- package/dist/esm/models/afnoralgorithm.d.ts +19 -0
- package/dist/esm/models/afnoralgorithm.js +20 -0
- package/dist/esm/models/afnorcontains-operator.d.ts +18 -0
- package/dist/esm/models/afnorcontains-operator.js +19 -0
- package/dist/esm/models/afnorcreate-directory-line-body-addressing-information.d.ts +29 -0
- package/dist/esm/models/afnorcreate-directory-line-body-addressing-information.js +14 -0
- package/dist/esm/models/afnorcreate-directory-line-body-period.d.ts +21 -0
- package/dist/esm/models/afnorcreate-directory-line-body-period.js +14 -0
- package/dist/esm/models/afnorcreate-directory-line-body.d.ts +17 -0
- package/dist/esm/models/afnorcreate-directory-line-body.js +14 -0
- package/dist/esm/models/afnorcreate-routing-code-body.d.ts +39 -0
- package/dist/esm/models/afnorcreate-routing-code-body.js +14 -0
- package/dist/esm/models/afnorcredentials.d.ts +2 -2
- package/dist/esm/models/afnorcredentials.js +2 -2
- package/dist/esm/models/afnordestination.d.ts +7 -10
- package/dist/esm/models/afnordestination.js +2 -7
- package/dist/esm/models/afnordiffusion-status.d.ts +19 -0
- package/dist/esm/models/afnordiffusion-status.js +20 -0
- package/dist/esm/models/afnordirectory-line-field.d.ts +23 -0
- package/dist/esm/models/afnordirectory-line-field.js +24 -0
- package/dist/esm/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-platform.d.ts +17 -0
- package/dist/esm/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-platform.js +14 -0
- package/dist/esm/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-routing-code.d.ts +33 -0
- package/dist/esm/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-routing-code.js +14 -0
- package/dist/esm/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code.d.ts +37 -0
- package/dist/esm/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code.js +14 -0
- package/dist/esm/models/afnordirectory-line-post201-response.d.ts +25 -0
- package/dist/esm/models/afnordirectory-line-post201-response.js +14 -0
- package/dist/esm/models/afnordirectory-line-search-post200-response.d.ts +21 -0
- package/dist/esm/models/afnordirectory-line-search-post200-response.js +14 -0
- package/dist/esm/models/afnorentity-type.d.ts +19 -0
- package/dist/esm/models/afnorentity-type.js +20 -0
- package/dist/esm/models/afnorerror.d.ts +21 -0
- package/dist/esm/models/afnorerror.js +14 -0
- package/dist/esm/models/afnorfacility-administrative-status.d.ts +19 -0
- package/dist/esm/models/afnorfacility-administrative-status.js +20 -0
- package/dist/esm/models/afnorfacility-nature.d.ts +19 -0
- package/dist/esm/models/afnorfacility-nature.js +20 -0
- package/dist/esm/models/afnorfacility-payload-history-ule-b2g-additional-data.d.ts +37 -0
- package/dist/esm/models/afnorfacility-payload-history-ule-b2g-additional-data.js +14 -0
- package/dist/esm/models/afnorfacility-payload-history.d.ts +37 -0
- package/dist/esm/models/afnorfacility-payload-history.js +14 -0
- package/dist/esm/models/afnorfacility-payload-included.d.ts +35 -0
- package/dist/esm/models/afnorfacility-payload-included.js +14 -0
- package/dist/esm/models/afnorfacility-type.d.ts +19 -0
- package/dist/esm/models/afnorfacility-type.js +20 -0
- package/dist/esm/models/afnorflow-ack-status.d.ts +20 -0
- package/dist/esm/models/afnorflow-ack-status.js +21 -0
- package/dist/esm/models/afnorflow-direction.d.ts +19 -0
- package/dist/esm/models/afnorflow-direction.js +20 -0
- package/dist/esm/models/afnorflow-info.d.ts +31 -0
- package/dist/esm/models/afnorflow-info.js +14 -0
- package/dist/esm/models/afnorflow-profile.d.ts +17 -0
- package/dist/esm/models/afnorflow-profile.js +18 -0
- package/dist/esm/models/afnorflow-syntax.d.ts +22 -0
- package/dist/esm/models/afnorflow-syntax.js +23 -0
- package/dist/esm/models/afnorflow-type.d.ts +30 -0
- package/dist/esm/models/afnorflow-type.js +31 -0
- package/dist/esm/models/afnorflow.d.ts +53 -0
- package/dist/esm/models/afnorflow.js +17 -0
- package/dist/esm/models/afnorfull-flow-info.d.ts +17 -0
- package/dist/esm/models/afnorfull-flow-info.js +14 -0
- package/dist/esm/models/afnorhealth-check-response.d.ts +2 -2
- package/dist/esm/models/afnorhealth-check-response.js +2 -2
- package/dist/esm/models/afnorlegal-unit-administrative-status.d.ts +19 -0
- package/dist/esm/models/afnorlegal-unit-administrative-status.js +20 -0
- package/dist/esm/models/afnorlegal-unit-payload-history.d.ts +25 -0
- package/dist/esm/models/afnorlegal-unit-payload-history.js +14 -0
- package/dist/esm/models/afnorlegal-unit-payload-included-no-siren.d.ts +21 -0
- package/dist/esm/models/afnorlegal-unit-payload-included-no-siren.js +14 -0
- package/dist/esm/models/afnorlegal-unit-payload-included.d.ts +25 -0
- package/dist/esm/models/afnorlegal-unit-payload-included.js +14 -0
- package/dist/esm/models/afnorplatform-status.d.ts +19 -0
- package/dist/esm/models/afnorplatform-status.js +20 -0
- package/dist/esm/models/afnorprocessing-rule.d.ts +23 -0
- package/dist/esm/models/afnorprocessing-rule.js +24 -0
- package/dist/esm/models/afnorreason-code-enum.d.ts +32 -0
- package/dist/esm/models/afnorreason-code-enum.js +33 -0
- package/dist/esm/models/afnorreason-code.d.ts +17 -0
- package/dist/esm/models/afnorreason-code.js +14 -0
- package/dist/esm/models/afnorrecipient-platform-type.d.ts +19 -0
- package/dist/esm/models/afnorrecipient-platform-type.js +20 -0
- package/dist/esm/models/afnorresult.d.ts +5 -2
- package/dist/esm/models/afnorresult.js +2 -2
- package/dist/esm/models/afnorrouting-code-administrative-status.d.ts +19 -0
- package/dist/esm/models/afnorrouting-code-administrative-status.js +20 -0
- package/dist/esm/models/afnorrouting-code-field.d.ts +25 -0
- package/dist/esm/models/afnorrouting-code-field.js +26 -0
- package/dist/esm/models/afnorrouting-code-payload-history-legal-unit-facility.d.ts +41 -0
- package/dist/esm/models/afnorrouting-code-payload-history-legal-unit-facility.js +14 -0
- package/dist/esm/models/afnorrouting-code-post201-response.d.ts +25 -0
- package/dist/esm/models/afnorrouting-code-post201-response.js +14 -0
- package/dist/esm/models/afnorrouting-code-search-filters-administrative-status.d.ts +17 -0
- package/dist/esm/models/afnorrouting-code-search-filters-administrative-status.js +14 -0
- package/dist/esm/models/afnorrouting-code-search-filters-routing-code-name.d.ts +19 -0
- package/dist/esm/models/afnorrouting-code-search-filters-routing-code-name.js +14 -0
- package/dist/esm/models/afnorrouting-code-search-filters-routing-identifier.d.ts +19 -0
- package/dist/esm/models/afnorrouting-code-search-filters-routing-identifier.js +14 -0
- package/dist/esm/models/afnorrouting-code-search-filters.d.ts +27 -0
- package/dist/esm/models/afnorrouting-code-search-filters.js +14 -0
- package/dist/esm/models/afnorrouting-code-search-post200-response.d.ts +21 -0
- package/dist/esm/models/afnorrouting-code-search-post200-response.js +14 -0
- package/dist/esm/models/afnorrouting-code-search-sorting-inner.d.ts +20 -0
- package/dist/esm/models/afnorrouting-code-search-sorting-inner.js +14 -0
- package/dist/esm/models/afnorrouting-code-search.d.ts +39 -0
- package/dist/esm/models/afnorrouting-code-search.js +17 -0
- package/dist/esm/models/afnorsearch-directory-line-filters-addressing-identifier.d.ts +19 -0
- package/dist/esm/models/afnorsearch-directory-line-filters-addressing-identifier.js +14 -0
- package/dist/esm/models/afnorsearch-directory-line-filters-addressing-suffix.d.ts +19 -0
- package/dist/esm/models/afnorsearch-directory-line-filters-addressing-suffix.js +14 -0
- package/dist/esm/models/afnorsearch-directory-line-filters.d.ts +23 -0
- package/dist/esm/models/afnorsearch-directory-line-filters.js +14 -0
- package/dist/esm/models/afnorsearch-directory-line-sorting-inner.d.ts +20 -0
- package/dist/esm/models/afnorsearch-directory-line-sorting-inner.js +14 -0
- package/dist/esm/models/afnorsearch-directory-line.d.ts +33 -0
- package/dist/esm/models/afnorsearch-directory-line.js +14 -0
- package/dist/esm/models/afnorsearch-flow-content.d.ts +21 -0
- package/dist/esm/models/afnorsearch-flow-content.js +14 -0
- package/dist/esm/models/afnorsearch-flow-filters.d.ts +30 -0
- package/dist/esm/models/afnorsearch-flow-filters.js +14 -0
- package/dist/esm/models/afnorsearch-flow-params.d.ts +19 -0
- package/dist/esm/models/afnorsearch-flow-params.js +14 -0
- package/dist/esm/models/afnorsearch-siren-filters-administrative-status.d.ts +17 -0
- package/dist/esm/models/afnorsearch-siren-filters-administrative-status.js +14 -0
- package/dist/esm/models/afnorsearch-siren-filters-business-name.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siren-filters-business-name.js +14 -0
- package/dist/esm/models/afnorsearch-siren-filters-entity-type.d.ts +17 -0
- package/dist/esm/models/afnorsearch-siren-filters-entity-type.js +14 -0
- package/dist/esm/models/afnorsearch-siren-filters-siren.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siren-filters-siren.js +14 -0
- package/dist/esm/models/afnorsearch-siren-filters.d.ts +21 -0
- package/dist/esm/models/afnorsearch-siren-filters.js +14 -0
- package/dist/esm/models/afnorsearch-siren-sorting-inner.d.ts +20 -0
- package/dist/esm/models/afnorsearch-siren-sorting-inner.js +14 -0
- package/dist/esm/models/afnorsearch-siren.d.ts +33 -0
- package/dist/esm/models/afnorsearch-siren.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-address-lines.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siret-filters-address-lines.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-administrative-status.d.ts +17 -0
- package/dist/esm/models/afnorsearch-siret-filters-administrative-status.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-country-subdivision.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siret-filters-country-subdivision.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-facility-type.d.ts +17 -0
- package/dist/esm/models/afnorsearch-siret-filters-facility-type.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-locality.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siret-filters-locality.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-name.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siret-filters-name.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-postal-code.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siret-filters-postal-code.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters-siret.d.ts +19 -0
- package/dist/esm/models/afnorsearch-siret-filters-siret.js +14 -0
- package/dist/esm/models/afnorsearch-siret-filters.d.ts +31 -0
- package/dist/esm/models/afnorsearch-siret-filters.js +14 -0
- package/dist/esm/models/afnorsearch-siret-sorting-inner.d.ts +20 -0
- package/dist/esm/models/afnorsearch-siret-sorting-inner.js +14 -0
- package/dist/esm/models/afnorsearch-siret.d.ts +38 -0
- package/dist/esm/models/afnorsearch-siret.js +16 -0
- package/dist/esm/models/afnorsiren-field.d.ts +22 -0
- package/dist/esm/models/afnorsiren-field.js +23 -0
- package/dist/esm/models/afnorsiren-search-post200-response.d.ts +21 -0
- package/dist/esm/models/afnorsiren-search-post200-response.js +14 -0
- package/dist/esm/models/afnorsiret-field.d.ts +31 -0
- package/dist/esm/models/afnorsiret-field.js +32 -0
- package/dist/esm/models/afnorsiret-search-post200-response.d.ts +21 -0
- package/dist/esm/models/afnorsiret-search-post200-response.js +14 -0
- package/dist/esm/models/afnorsorting-order.d.ts +19 -0
- package/dist/esm/models/afnorsorting-order.js +20 -0
- package/dist/esm/models/afnorstrict-operator.d.ts +18 -0
- package/dist/esm/models/afnorstrict-operator.js +19 -0
- package/dist/esm/models/afnorupdate-patch-directory-line-body.d.ts +17 -0
- package/dist/esm/models/afnorupdate-patch-directory-line-body.js +14 -0
- package/dist/esm/models/afnorupdate-patch-routing-code-body.d.ts +25 -0
- package/dist/esm/models/afnorupdate-patch-routing-code-body.js +14 -0
- package/dist/esm/models/afnorupdate-put-routing-code-body.d.ts +25 -0
- package/dist/esm/models/afnorupdate-put-routing-code-body.js +14 -0
- package/dist/esm/models/afnorwebhook-callback-content.d.ts +18 -0
- package/dist/esm/models/afnorwebhook-callback-content.js +14 -0
- package/dist/esm/models/aggregated-payment-input.d.ts +27 -0
- package/dist/esm/models/aggregated-payment-input.js +14 -0
- package/dist/esm/models/aggregated-transaction-input.d.ts +39 -0
- package/dist/esm/models/aggregated-transaction-input.js +14 -0
- package/dist/esm/models/allowance-charge-reason-code.d.ts +55 -0
- package/dist/esm/models/allowance-charge-reason-code.js +56 -0
- package/dist/esm/models/allowance-charge.d.ts +8 -6
- package/dist/esm/models/allowance-charge.js +2 -2
- package/dist/esm/models/allowance-reason-code.d.ts +2 -2
- package/dist/esm/models/allowance-reason-code.js +2 -2
- package/dist/esm/models/allowance-total-amount.d.ts +2 -2
- package/dist/esm/models/allowance-total-amount.js +2 -2
- package/dist/esm/models/amount-due.d.ts +2 -2
- package/dist/esm/models/amount-due.js +2 -2
- package/dist/esm/models/amount.d.ts +3 -3
- package/dist/esm/models/amount.js +2 -2
- package/dist/esm/models/amount1.d.ts +16 -0
- package/dist/esm/models/amount1.js +14 -0
- package/dist/esm/models/apierror.d.ts +2 -2
- package/dist/esm/models/apierror.js +2 -2
- package/dist/esm/models/apiprofile.d.ts +3 -2
- package/dist/esm/models/apiprofile.js +3 -2
- package/dist/esm/models/async-task-status.d.ts +2 -2
- package/dist/esm/models/async-task-status.js +2 -2
- package/dist/esm/models/base-amount.d.ts +2 -2
- package/dist/esm/models/base-amount.js +2 -2
- package/dist/esm/models/bounding-box-schema.d.ts +2 -2
- package/dist/esm/models/bounding-box-schema.js +2 -2
- package/dist/esm/models/buyercountry.d.ts +16 -0
- package/dist/esm/models/buyercountry.js +14 -0
- package/dist/esm/models/celery-status.d.ts +2 -2
- package/dist/esm/models/celery-status.js +2 -2
- package/dist/esm/models/certificate-info-response.d.ts +2 -2
- package/dist/esm/models/certificate-info-response.js +2 -2
- package/dist/esm/models/charge-total-amount.d.ts +2 -2
- package/dist/esm/models/charge-total-amount.js +2 -2
- package/dist/esm/models/{facture-electronique-rest-api-schemas-chorus-pro-chorus-pro-credentials.d.ts → chorus-pro-credentials.d.ts} +3 -3
- package/dist/esm/models/chorus-pro-credentials.js +14 -0
- package/dist/esm/models/chorus-pro-destination.d.ts +2 -2
- package/dist/esm/models/chorus-pro-destination.js +2 -2
- package/dist/esm/models/chorus-pro-result.d.ts +2 -2
- package/dist/esm/models/chorus-pro-result.js +2 -2
- package/dist/esm/models/contact.d.ts +2 -2
- package/dist/esm/models/contact.js +2 -2
- package/dist/esm/models/convert-resume-request.d.ts +2 -2
- package/dist/esm/models/convert-resume-request.js +2 -2
- package/dist/esm/models/convert-success-response.d.ts +2 -2
- package/dist/esm/models/convert-success-response.js +2 -2
- package/dist/esm/models/convert-validation-failed-response.d.ts +17 -2
- package/dist/esm/models/convert-validation-failed-response.js +2 -2
- package/dist/esm/models/country-code.d.ts +187 -0
- package/dist/esm/models/country-code.js +188 -0
- package/dist/esm/models/create-aggregated-report-request.d.ts +44 -0
- package/dist/esm/models/create-aggregated-report-request.js +14 -0
- package/dist/esm/models/create-ereporting-request.d.ts +49 -0
- package/dist/esm/models/create-ereporting-request.js +14 -0
- package/dist/esm/models/currency-code.d.ts +70 -0
- package/dist/esm/models/currency-code.js +71 -0
- package/dist/esm/models/currency.d.ts +16 -0
- package/dist/esm/models/currency.js +14 -0
- package/dist/esm/models/delivery-party.d.ts +2 -2
- package/dist/esm/models/delivery-party.js +2 -2
- package/dist/esm/models/destination.d.ts +2 -2
- package/dist/esm/models/destination.js +2 -2
- package/dist/esm/models/directory-line-include.d.ts +21 -0
- package/dist/esm/models/directory-line-include.js +22 -0
- package/dist/esm/models/doc-type.d.ts +21 -0
- package/dist/esm/models/doc-type.js +22 -0
- package/dist/esm/models/document-type-info.d.ts +2 -2
- package/dist/esm/models/document-type-info.js +2 -2
- package/dist/esm/models/electronic-address.d.ts +8 -2
- package/dist/esm/models/electronic-address.js +2 -2
- package/dist/esm/models/enriched-invoice-info.d.ts +20 -2
- package/dist/esm/models/enriched-invoice-info.js +2 -2
- package/dist/esm/models/ereporting-flow-type.d.ts +21 -0
- package/dist/esm/models/ereporting-flow-type.js +22 -0
- package/dist/esm/models/error-level.d.ts +2 -2
- package/dist/esm/models/error-level.js +2 -2
- package/dist/esm/models/error-source.d.ts +2 -2
- package/dist/esm/models/error-source.js +2 -2
- package/dist/esm/models/extraction-info.d.ts +2 -2
- package/dist/esm/models/extraction-info.js +2 -2
- package/dist/esm/models/factur-xinvoice.d.ts +2 -2
- package/dist/esm/models/factur-xinvoice.js +2 -2
- package/dist/esm/models/factur-xpdfinfo.d.ts +2 -2
- package/dist/esm/models/factur-xpdfinfo.js +2 -2
- package/dist/esm/models/facture-electronique-models-invoice-type-code.d.ts +81 -0
- package/dist/esm/models/facture-electronique-models-invoice-type-code.js +82 -0
- package/dist/esm/models/facture-electronique-rest-api-schemas-convert-validation-error.d.ts +33 -0
- package/dist/esm/models/facture-electronique-rest-api-schemas-convert-validation-error.js +14 -0
- package/dist/esm/models/facture-electronique-rest-api-schemas-processing-chorus-pro-credentials.d.ts +2 -2
- package/dist/esm/models/facture-electronique-rest-api-schemas-processing-chorus-pro-credentials.js +2 -2
- package/dist/esm/models/field-status.d.ts +2 -2
- package/dist/esm/models/field-status.js +2 -2
- package/dist/esm/models/file-info.d.ts +2 -2
- package/dist/esm/models/file-info.js +2 -2
- package/dist/esm/models/files-info.d.ts +2 -2
- package/dist/esm/models/files-info.js +2 -2
- package/dist/esm/models/flow-direction.d.ts +2 -2
- package/dist/esm/models/flow-direction.js +2 -2
- package/dist/esm/models/flow-profile.d.ts +2 -2
- package/dist/esm/models/flow-profile.js +2 -2
- package/dist/esm/models/flow-summary.d.ts +8 -2
- package/dist/esm/models/flow-summary.js +2 -2
- package/dist/esm/models/flow-syntax.d.ts +2 -2
- package/dist/esm/models/flow-syntax.js +2 -2
- package/dist/esm/models/flow-type.d.ts +12 -4
- package/dist/esm/models/flow-type.js +12 -4
- package/dist/esm/models/generate-aggregated-report-response.d.ts +46 -0
- package/dist/esm/models/generate-aggregated-report-response.js +14 -0
- package/dist/esm/models/generate-certificate-request.d.ts +2 -2
- package/dist/esm/models/generate-certificate-request.js +2 -2
- package/dist/esm/models/generate-certificate-response.d.ts +2 -2
- package/dist/esm/models/generate-certificate-response.js +2 -2
- package/dist/esm/models/generate-ereporting-response.d.ts +36 -0
- package/dist/esm/models/generate-ereporting-response.js +14 -0
- package/dist/esm/models/get-chorus-pro-id-request.d.ts +4 -4
- package/dist/esm/models/get-chorus-pro-id-request.js +2 -2
- package/dist/esm/models/get-chorus-pro-id-response.d.ts +2 -2
- package/dist/esm/models/get-chorus-pro-id-response.js +2 -2
- package/dist/esm/models/get-invoice-request.d.ts +4 -4
- package/dist/esm/models/get-invoice-request.js +2 -2
- package/dist/esm/models/get-invoice-response.d.ts +8 -2
- package/dist/esm/models/get-invoice-response.js +2 -2
- package/dist/esm/models/get-structure-request.d.ts +4 -4
- package/dist/esm/models/get-structure-request.js +2 -2
- package/dist/esm/models/get-structure-response.d.ts +8 -2
- package/dist/esm/models/get-structure-response.js +2 -2
- package/dist/esm/models/global-allowance-amount.d.ts +2 -2
- package/dist/esm/models/global-allowance-amount.js +2 -2
- package/dist/esm/models/gross-unit-price.d.ts +2 -2
- package/dist/esm/models/gross-unit-price.js +2 -2
- package/dist/esm/models/httpvalidation-error.d.ts +2 -2
- package/dist/esm/models/httpvalidation-error.js +2 -2
- package/dist/esm/models/incoming-invoice.d.ts +4 -4
- package/dist/esm/models/incoming-invoice.js +2 -2
- package/dist/esm/models/incoming-supplier.d.ts +2 -2
- package/dist/esm/models/incoming-supplier.js +2 -2
- package/dist/esm/models/index.d.ts +139 -4
- package/dist/esm/models/index.js +139 -4
- package/dist/esm/models/invoice-format.d.ts +2 -2
- package/dist/esm/models/invoice-format.js +2 -2
- package/dist/esm/models/invoice-input.d.ts +54 -0
- package/dist/esm/models/invoice-input.js +14 -0
- package/dist/esm/models/invoice-line-allowance-amount.d.ts +2 -2
- package/dist/esm/models/invoice-line-allowance-amount.js +2 -2
- package/dist/esm/models/invoice-line.d.ts +5 -2
- package/dist/esm/models/invoice-line.js +2 -2
- package/dist/esm/models/invoice-note.d.ts +5 -2
- package/dist/esm/models/invoice-note.js +2 -2
- package/dist/esm/models/invoice-payment-input.d.ts +35 -0
- package/dist/esm/models/invoice-payment-input.js +14 -0
- package/dist/esm/models/invoice-references.d.ts +2 -2
- package/dist/esm/models/invoice-references.js +2 -2
- package/dist/esm/models/invoice-status.d.ts +2 -2
- package/dist/esm/models/invoice-status.js +2 -2
- package/dist/esm/models/invoice-totals-prepayment.d.ts +2 -2
- package/dist/esm/models/invoice-totals-prepayment.js +2 -2
- package/dist/esm/models/invoice-totals.d.ts +2 -2
- package/dist/esm/models/invoice-totals.js +2 -2
- package/dist/esm/models/invoice-type-code-output.d.ts +81 -0
- package/dist/esm/models/invoice-type-code-output.js +82 -0
- package/dist/esm/models/invoice-type-code.d.ts +8 -67
- package/dist/esm/models/invoice-type-code.js +8 -67
- package/dist/esm/models/invoicing-framework-code.d.ts +2 -2
- package/dist/esm/models/invoicing-framework-code.js +2 -2
- package/dist/esm/models/invoicing-framework.d.ts +5 -2
- package/dist/esm/models/invoicing-framework.js +2 -2
- package/dist/esm/models/line-net-amount.d.ts +2 -2
- package/dist/esm/models/line-net-amount.js +2 -2
- package/dist/esm/models/line-sub-type.d.ts +20 -0
- package/dist/esm/models/line-sub-type.js +21 -0
- package/dist/esm/models/line-total-amount.d.ts +2 -2
- package/dist/esm/models/line-total-amount.js +2 -2
- package/dist/esm/models/location-inner.d.ts +13 -0
- package/dist/esm/models/location-inner.js +14 -0
- package/dist/esm/models/mandatory-note-schema.d.ts +2 -2
- package/dist/esm/models/mandatory-note-schema.js +2 -2
- package/dist/esm/models/manual-rate.d.ts +2 -2
- package/dist/esm/models/manual-rate.js +2 -2
- package/dist/esm/models/manual-vat-rate.d.ts +2 -2
- package/dist/esm/models/manual-vat-rate.js +2 -2
- package/dist/esm/models/missing-field.d.ts +2 -2
- package/dist/esm/models/missing-field.js +2 -2
- package/dist/esm/models/operation-nature.d.ts +2 -2
- package/dist/esm/models/operation-nature.js +2 -2
- package/dist/esm/models/output-format.d.ts +2 -2
- package/dist/esm/models/output-format.js +2 -2
- package/dist/esm/models/page-dimensions-schema.d.ts +2 -2
- package/dist/esm/models/page-dimensions-schema.js +2 -2
- package/dist/esm/models/payee.d.ts +2 -2
- package/dist/esm/models/payee.js +2 -2
- package/dist/esm/models/payment-amount-by-rate.d.ts +20 -0
- package/dist/esm/models/payment-amount-by-rate.js +14 -0
- package/dist/esm/models/payment-card.d.ts +2 -2
- package/dist/esm/models/payment-card.js +2 -2
- package/dist/esm/models/payment-means.d.ts +2 -2
- package/dist/esm/models/payment-means.js +2 -2
- package/dist/esm/models/pdfvalidation-result-api.d.ts +2 -2
- package/dist/esm/models/pdfvalidation-result-api.js +2 -2
- package/dist/esm/models/pdpcredentials.d.ts +2 -2
- package/dist/esm/models/pdpcredentials.js +2 -2
- package/dist/esm/models/percentage.d.ts +2 -2
- package/dist/esm/models/percentage.js +2 -2
- package/dist/esm/models/postal-address.d.ts +2 -2
- package/dist/esm/models/postal-address.js +2 -2
- package/dist/esm/models/price-allowance-amount.d.ts +2 -2
- package/dist/esm/models/price-allowance-amount.js +2 -2
- package/dist/esm/models/price-basis-quantity.d.ts +2 -2
- package/dist/esm/models/price-basis-quantity.js +2 -2
- package/dist/esm/models/processing-options.d.ts +2 -2
- package/dist/esm/models/processing-options.js +2 -2
- package/dist/esm/models/processing-rule.d.ts +23 -0
- package/dist/esm/models/processing-rule.js +24 -0
- package/dist/esm/models/product-characteristic.d.ts +2 -2
- package/dist/esm/models/product-characteristic.js +2 -2
- package/dist/esm/models/product-classification.d.ts +2 -2
- package/dist/esm/models/product-classification.js +2 -2
- package/dist/esm/models/quantity.d.ts +2 -2
- package/dist/esm/models/quantity.js +2 -2
- package/dist/esm/models/rate.d.ts +16 -0
- package/dist/esm/models/rate.js +14 -0
- package/dist/esm/models/rate1.d.ts +16 -0
- package/dist/esm/models/rate1.js +14 -0
- package/dist/esm/models/recipient.d.ts +2 -2
- package/dist/esm/models/recipient.js +2 -2
- package/dist/esm/models/report-period.d.ts +24 -0
- package/dist/esm/models/report-period.js +14 -0
- package/dist/esm/models/report-sender.d.ts +25 -0
- package/dist/esm/models/report-sender.js +14 -0
- package/dist/esm/models/rounding-amount.d.ts +2 -2
- package/dist/esm/models/rounding-amount.js +2 -2
- package/dist/esm/models/routing-code-include.d.ts +19 -0
- package/dist/esm/models/routing-code-include.js +20 -0
- package/dist/esm/models/scheme-id.d.ts +30 -2
- package/dist/esm/models/scheme-id.js +31 -3
- package/dist/esm/models/search-flow-request.d.ts +2 -2
- package/dist/esm/models/search-flow-request.js +2 -2
- package/dist/esm/models/search-flow-response.d.ts +2 -2
- package/dist/esm/models/search-flow-response.js +2 -2
- package/dist/esm/models/search-services-response.d.ts +11 -2
- package/dist/esm/models/search-services-response.js +2 -2
- package/dist/esm/models/search-structure-request.d.ts +4 -4
- package/dist/esm/models/search-structure-request.js +2 -2
- package/dist/esm/models/search-structure-response.d.ts +2 -2
- package/dist/esm/models/search-structure-response.js +2 -2
- package/dist/esm/models/sellercountry.d.ts +16 -0
- package/dist/esm/models/sellercountry.js +14 -0
- package/dist/esm/models/signature-info-api.d.ts +2 -2
- package/dist/esm/models/signature-info-api.js +2 -2
- package/dist/esm/models/signature-info.d.ts +2 -2
- package/dist/esm/models/signature-info.js +2 -2
- package/dist/esm/models/signature-parameters.d.ts +2 -2
- package/dist/esm/models/signature-parameters.js +2 -2
- package/dist/esm/models/simplified-invoice-data.d.ts +12 -2
- package/dist/esm/models/simplified-invoice-data.js +2 -2
- package/dist/esm/models/siret-include.d.ts +18 -0
- package/dist/esm/models/siret-include.js +19 -0
- package/dist/esm/models/structure-info.d.ts +2 -2
- package/dist/esm/models/structure-info.js +2 -2
- package/dist/esm/models/structure-parameters.d.ts +2 -2
- package/dist/esm/models/structure-parameters.js +2 -2
- package/dist/esm/models/structure-service.d.ts +2 -2
- package/dist/esm/models/structure-service.js +2 -2
- package/dist/esm/models/submission-mode.d.ts +2 -2
- package/dist/esm/models/submission-mode.js +2 -2
- package/dist/esm/models/submit-aggregated-report-request.d.ts +26 -0
- package/dist/esm/models/submit-aggregated-report-request.js +14 -0
- package/dist/esm/models/submit-complete-invoice-request.d.ts +2 -2
- package/dist/esm/models/submit-complete-invoice-request.js +2 -2
- package/dist/esm/models/submit-complete-invoice-response.d.ts +2 -2
- package/dist/esm/models/submit-complete-invoice-response.js +2 -2
- package/dist/esm/models/submit-ereporting-request.d.ts +26 -0
- package/dist/esm/models/submit-ereporting-request.js +14 -0
- package/dist/esm/models/submit-ereporting-response.d.ts +41 -0
- package/dist/esm/models/submit-ereporting-response.js +14 -0
- package/dist/esm/models/submit-flow-request.d.ts +2 -2
- package/dist/esm/models/submit-flow-request.js +2 -2
- package/dist/esm/models/submit-flow-response.d.ts +2 -2
- package/dist/esm/models/submit-flow-response.js +2 -2
- package/dist/esm/models/submit-gross-amount.d.ts +2 -2
- package/dist/esm/models/submit-gross-amount.js +2 -2
- package/dist/esm/models/submit-invoice-request.d.ts +4 -4
- package/dist/esm/models/submit-invoice-request.js +2 -2
- package/dist/esm/models/submit-invoice-response.d.ts +2 -2
- package/dist/esm/models/submit-invoice-response.js +2 -2
- package/dist/esm/models/submit-net-amount.d.ts +2 -2
- package/dist/esm/models/submit-net-amount.js +2 -2
- package/dist/esm/models/submit-vat-amount.d.ts +2 -2
- package/dist/esm/models/submit-vat-amount.js +2 -2
- package/dist/esm/models/supplementary-attachment.d.ts +17 -2
- package/dist/esm/models/supplementary-attachment.js +2 -2
- package/dist/esm/models/supplier.d.ts +2 -2
- package/dist/esm/models/supplier.js +2 -2
- package/dist/esm/models/task-response.d.ts +2 -2
- package/dist/esm/models/task-response.js +2 -2
- package/dist/esm/models/tax-breakdown-input.d.ts +22 -0
- package/dist/esm/models/tax-breakdown-input.js +14 -0
- package/dist/esm/models/tax-due-date-type.d.ts +23 -0
- package/dist/esm/models/tax-due-date-type.js +24 -0
- package/dist/esm/models/tax-representative.d.ts +2 -2
- package/dist/esm/models/tax-representative.js +2 -2
- package/dist/esm/models/taxable-amount.d.ts +2 -2
- package/dist/esm/models/taxable-amount.js +2 -2
- package/dist/esm/models/taxableamount.d.ts +16 -0
- package/dist/esm/models/taxableamount.js +14 -0
- package/dist/esm/models/taxamount.d.ts +16 -0
- package/dist/esm/models/taxamount.js +14 -0
- package/dist/esm/models/taxamount1.d.ts +16 -0
- package/dist/esm/models/taxamount1.js +14 -0
- package/dist/esm/models/taxamount2.d.ts +16 -0
- package/dist/esm/models/taxamount2.js +14 -0
- package/dist/esm/models/taxexclusiveamount.d.ts +16 -0
- package/dist/esm/models/taxexclusiveamount.js +14 -0
- package/dist/esm/models/taxexclusiveamount1.d.ts +16 -0
- package/dist/esm/models/taxexclusiveamount1.js +14 -0
- package/dist/esm/models/total-gross-amount.d.ts +2 -2
- package/dist/esm/models/total-gross-amount.js +2 -2
- package/dist/esm/models/total-net-amount.d.ts +2 -2
- package/dist/esm/models/total-net-amount.js +2 -2
- package/dist/esm/models/total-vatamount.d.ts +2 -2
- package/dist/esm/models/total-vatamount.js +2 -2
- package/dist/esm/models/transaction-category.d.ts +21 -0
- package/dist/esm/models/transaction-category.js +22 -0
- package/dist/esm/models/transmission-type-code.d.ts +19 -0
- package/dist/esm/models/transmission-type-code.js +20 -0
- package/dist/esm/models/unit-net-price.d.ts +2 -2
- package/dist/esm/models/unit-net-price.js +2 -2
- package/dist/esm/models/unit-of-measure.d.ts +2 -2
- package/dist/esm/models/unit-of-measure.js +2 -2
- package/dist/esm/models/validate-ereporting-request.d.ts +21 -0
- package/dist/esm/models/validate-ereporting-request.js +14 -0
- package/dist/esm/models/validate-ereporting-response.d.ts +41 -0
- package/dist/esm/models/validate-ereporting-response.js +14 -0
- package/dist/esm/models/validation-error-detail.d.ts +2 -2
- package/dist/esm/models/validation-error-detail.js +2 -2
- package/dist/esm/models/validation-error-response.d.ts +2 -2
- package/dist/esm/models/validation-error-response.js +2 -2
- package/dist/esm/models/validation-error.d.ts +4 -4
- package/dist/esm/models/validation-error.js +2 -2
- package/dist/esm/models/validation-info.d.ts +4 -4
- package/dist/esm/models/validation-info.js +2 -2
- package/dist/esm/models/validation-success-response.d.ts +2 -2
- package/dist/esm/models/validation-success-response.js +2 -2
- package/dist/esm/models/vat-rate.d.ts +2 -2
- package/dist/esm/models/vat-rate.js +2 -2
- package/dist/esm/models/vataccounting-code.d.ts +2 -2
- package/dist/esm/models/vataccounting-code.js +2 -2
- package/dist/esm/models/vatamount.d.ts +2 -2
- package/dist/esm/models/vatamount.js +2 -2
- package/dist/esm/models/vatcategory.d.ts +2 -2
- package/dist/esm/models/vatcategory.js +2 -2
- package/dist/esm/models/vatline.d.ts +2 -2
- package/dist/esm/models/vatline.js +2 -2
- package/dist/esm/models/vatpoint-date-code.d.ts +2 -2
- package/dist/esm/models/vatpoint-date-code.js +2 -2
- package/dist/esm/models/verification-success-response.d.ts +2 -2
- package/dist/esm/models/verification-success-response.js +2 -2
- package/dist/esm/models/verified-field-schema.d.ts +2 -2
- package/dist/esm/models/verified-field-schema.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/models/accept-language.d.ts +19 -0
- package/dist/models/accept-language.js +23 -0
- package/dist/models/acknowledgment-status.d.ts +2 -2
- package/dist/models/acknowledgment-status.js +2 -2
- package/dist/models/additional-document.d.ts +2 -2
- package/dist/models/additional-document.js +2 -2
- package/dist/models/afnoracknowledgement-detail.d.ts +26 -0
- package/dist/models/afnoracknowledgement-detail.js +20 -0
- package/dist/models/afnoracknowledgement.d.ts +17 -0
- package/dist/models/afnoracknowledgement.js +15 -0
- package/dist/models/afnoraddress-edit.d.ts +44 -0
- package/dist/models/afnoraddress-edit.js +15 -0
- package/dist/models/afnoraddress-patch.d.ts +44 -0
- package/dist/models/afnoraddress-patch.js +15 -0
- package/dist/models/afnoraddress-put.d.ts +44 -0
- package/dist/models/afnoraddress-put.js +15 -0
- package/dist/models/afnoraddress-read.d.ts +48 -0
- package/dist/models/afnoraddress-read.js +15 -0
- package/dist/models/afnoralgorithm.d.ts +19 -0
- package/dist/models/afnoralgorithm.js +23 -0
- package/dist/models/afnorcontains-operator.d.ts +18 -0
- package/dist/models/afnorcontains-operator.js +22 -0
- package/dist/models/afnorcreate-directory-line-body-addressing-information.d.ts +29 -0
- package/dist/models/afnorcreate-directory-line-body-addressing-information.js +15 -0
- package/dist/models/afnorcreate-directory-line-body-period.d.ts +21 -0
- package/dist/models/afnorcreate-directory-line-body-period.js +15 -0
- package/dist/models/afnorcreate-directory-line-body.d.ts +17 -0
- package/dist/models/afnorcreate-directory-line-body.js +15 -0
- package/dist/models/afnorcreate-routing-code-body.d.ts +39 -0
- package/dist/models/afnorcreate-routing-code-body.js +15 -0
- package/dist/models/afnorcredentials.d.ts +2 -2
- package/dist/models/afnorcredentials.js +2 -2
- package/dist/models/afnordestination.d.ts +7 -10
- package/dist/models/afnordestination.js +3 -8
- package/dist/models/afnordiffusion-status.d.ts +19 -0
- package/dist/models/afnordiffusion-status.js +23 -0
- package/dist/models/afnordirectory-line-field.d.ts +23 -0
- package/dist/models/afnordirectory-line-field.js +27 -0
- package/dist/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-platform.d.ts +17 -0
- package/dist/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-platform.js +15 -0
- package/dist/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-routing-code.d.ts +33 -0
- package/dist/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-routing-code.js +15 -0
- package/dist/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code.d.ts +37 -0
- package/dist/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code.js +15 -0
- package/dist/models/afnordirectory-line-post201-response.d.ts +25 -0
- package/dist/models/afnordirectory-line-post201-response.js +15 -0
- package/dist/models/afnordirectory-line-search-post200-response.d.ts +21 -0
- package/dist/models/afnordirectory-line-search-post200-response.js +15 -0
- package/dist/models/afnorentity-type.d.ts +19 -0
- package/dist/models/afnorentity-type.js +23 -0
- package/dist/models/afnorerror.d.ts +21 -0
- package/dist/models/afnorerror.js +15 -0
- package/dist/models/afnorfacility-administrative-status.d.ts +19 -0
- package/dist/models/afnorfacility-administrative-status.js +23 -0
- package/dist/models/afnorfacility-nature.d.ts +19 -0
- package/dist/models/afnorfacility-nature.js +23 -0
- package/dist/models/afnorfacility-payload-history-ule-b2g-additional-data.d.ts +37 -0
- package/dist/models/afnorfacility-payload-history-ule-b2g-additional-data.js +15 -0
- package/dist/models/afnorfacility-payload-history.d.ts +37 -0
- package/dist/models/afnorfacility-payload-history.js +15 -0
- package/dist/models/afnorfacility-payload-included.d.ts +35 -0
- package/dist/models/afnorfacility-payload-included.js +15 -0
- package/dist/models/afnorfacility-type.d.ts +19 -0
- package/dist/models/afnorfacility-type.js +23 -0
- package/dist/models/afnorflow-ack-status.d.ts +20 -0
- package/dist/models/afnorflow-ack-status.js +24 -0
- package/dist/models/afnorflow-direction.d.ts +19 -0
- package/dist/models/afnorflow-direction.js +23 -0
- package/dist/models/afnorflow-info.d.ts +31 -0
- package/dist/models/afnorflow-info.js +15 -0
- package/dist/models/afnorflow-profile.d.ts +17 -0
- package/dist/models/afnorflow-profile.js +21 -0
- package/dist/models/afnorflow-syntax.d.ts +22 -0
- package/dist/models/afnorflow-syntax.js +26 -0
- package/dist/models/afnorflow-type.d.ts +30 -0
- package/dist/models/afnorflow-type.js +34 -0
- package/dist/models/afnorflow.d.ts +53 -0
- package/dist/models/afnorflow.js +20 -0
- package/dist/models/afnorfull-flow-info.d.ts +17 -0
- package/dist/models/afnorfull-flow-info.js +15 -0
- package/dist/models/afnorhealth-check-response.d.ts +2 -2
- package/dist/models/afnorhealth-check-response.js +2 -2
- package/dist/models/afnorlegal-unit-administrative-status.d.ts +19 -0
- package/dist/models/afnorlegal-unit-administrative-status.js +23 -0
- package/dist/models/afnorlegal-unit-payload-history.d.ts +25 -0
- package/dist/models/afnorlegal-unit-payload-history.js +15 -0
- package/dist/models/afnorlegal-unit-payload-included-no-siren.d.ts +21 -0
- package/dist/models/afnorlegal-unit-payload-included-no-siren.js +15 -0
- package/dist/models/afnorlegal-unit-payload-included.d.ts +25 -0
- package/dist/models/afnorlegal-unit-payload-included.js +15 -0
- package/dist/models/afnorplatform-status.d.ts +19 -0
- package/dist/models/afnorplatform-status.js +23 -0
- package/dist/models/afnorprocessing-rule.d.ts +23 -0
- package/dist/models/afnorprocessing-rule.js +27 -0
- package/dist/models/afnorreason-code-enum.d.ts +32 -0
- package/dist/models/afnorreason-code-enum.js +36 -0
- package/dist/models/afnorreason-code.d.ts +17 -0
- package/dist/models/afnorreason-code.js +15 -0
- package/dist/models/afnorrecipient-platform-type.d.ts +19 -0
- package/dist/models/afnorrecipient-platform-type.js +23 -0
- package/dist/models/afnorresult.d.ts +5 -2
- package/dist/models/afnorresult.js +2 -2
- package/dist/models/afnorrouting-code-administrative-status.d.ts +19 -0
- package/dist/models/afnorrouting-code-administrative-status.js +23 -0
- package/dist/models/afnorrouting-code-field.d.ts +25 -0
- package/dist/models/afnorrouting-code-field.js +29 -0
- package/dist/models/afnorrouting-code-payload-history-legal-unit-facility.d.ts +41 -0
- package/dist/models/afnorrouting-code-payload-history-legal-unit-facility.js +15 -0
- package/dist/models/afnorrouting-code-post201-response.d.ts +25 -0
- package/dist/models/afnorrouting-code-post201-response.js +15 -0
- package/dist/models/afnorrouting-code-search-filters-administrative-status.d.ts +17 -0
- package/dist/models/afnorrouting-code-search-filters-administrative-status.js +15 -0
- package/dist/models/afnorrouting-code-search-filters-routing-code-name.d.ts +19 -0
- package/dist/models/afnorrouting-code-search-filters-routing-code-name.js +15 -0
- package/dist/models/afnorrouting-code-search-filters-routing-identifier.d.ts +19 -0
- package/dist/models/afnorrouting-code-search-filters-routing-identifier.js +15 -0
- package/dist/models/afnorrouting-code-search-filters.d.ts +27 -0
- package/dist/models/afnorrouting-code-search-filters.js +15 -0
- package/dist/models/afnorrouting-code-search-post200-response.d.ts +21 -0
- package/dist/models/afnorrouting-code-search-post200-response.js +15 -0
- package/dist/models/afnorrouting-code-search-sorting-inner.d.ts +20 -0
- package/dist/models/afnorrouting-code-search-sorting-inner.js +15 -0
- package/dist/models/afnorrouting-code-search.d.ts +39 -0
- package/dist/models/afnorrouting-code-search.js +20 -0
- package/dist/models/afnorsearch-directory-line-filters-addressing-identifier.d.ts +19 -0
- package/dist/models/afnorsearch-directory-line-filters-addressing-identifier.js +15 -0
- package/dist/models/afnorsearch-directory-line-filters-addressing-suffix.d.ts +19 -0
- package/dist/models/afnorsearch-directory-line-filters-addressing-suffix.js +15 -0
- package/dist/models/afnorsearch-directory-line-filters.d.ts +23 -0
- package/dist/models/afnorsearch-directory-line-filters.js +15 -0
- package/dist/models/afnorsearch-directory-line-sorting-inner.d.ts +20 -0
- package/dist/models/afnorsearch-directory-line-sorting-inner.js +15 -0
- package/dist/models/afnorsearch-directory-line.d.ts +33 -0
- package/dist/models/afnorsearch-directory-line.js +15 -0
- package/dist/models/afnorsearch-flow-content.d.ts +21 -0
- package/dist/models/afnorsearch-flow-content.js +15 -0
- package/dist/models/afnorsearch-flow-filters.d.ts +30 -0
- package/dist/models/afnorsearch-flow-filters.js +15 -0
- package/dist/models/afnorsearch-flow-params.d.ts +19 -0
- package/dist/models/afnorsearch-flow-params.js +15 -0
- package/dist/models/afnorsearch-siren-filters-administrative-status.d.ts +17 -0
- package/dist/models/afnorsearch-siren-filters-administrative-status.js +15 -0
- package/dist/models/afnorsearch-siren-filters-business-name.d.ts +19 -0
- package/dist/models/afnorsearch-siren-filters-business-name.js +15 -0
- package/dist/models/afnorsearch-siren-filters-entity-type.d.ts +17 -0
- package/dist/models/afnorsearch-siren-filters-entity-type.js +15 -0
- package/dist/models/afnorsearch-siren-filters-siren.d.ts +19 -0
- package/dist/models/afnorsearch-siren-filters-siren.js +15 -0
- package/dist/models/afnorsearch-siren-filters.d.ts +21 -0
- package/dist/models/afnorsearch-siren-filters.js +15 -0
- package/dist/models/afnorsearch-siren-sorting-inner.d.ts +20 -0
- package/dist/models/afnorsearch-siren-sorting-inner.js +15 -0
- package/dist/models/afnorsearch-siren.d.ts +33 -0
- package/dist/models/afnorsearch-siren.js +15 -0
- package/dist/models/afnorsearch-siret-filters-address-lines.d.ts +19 -0
- package/dist/models/afnorsearch-siret-filters-address-lines.js +15 -0
- package/dist/models/afnorsearch-siret-filters-administrative-status.d.ts +17 -0
- package/dist/models/afnorsearch-siret-filters-administrative-status.js +15 -0
- package/dist/models/afnorsearch-siret-filters-country-subdivision.d.ts +19 -0
- package/dist/models/afnorsearch-siret-filters-country-subdivision.js +15 -0
- package/dist/models/afnorsearch-siret-filters-facility-type.d.ts +17 -0
- package/dist/models/afnorsearch-siret-filters-facility-type.js +15 -0
- package/dist/models/afnorsearch-siret-filters-locality.d.ts +19 -0
- package/dist/models/afnorsearch-siret-filters-locality.js +15 -0
- package/dist/models/afnorsearch-siret-filters-name.d.ts +19 -0
- package/dist/models/afnorsearch-siret-filters-name.js +15 -0
- package/dist/models/afnorsearch-siret-filters-postal-code.d.ts +19 -0
- package/dist/models/afnorsearch-siret-filters-postal-code.js +15 -0
- package/dist/models/afnorsearch-siret-filters-siret.d.ts +19 -0
- package/dist/models/afnorsearch-siret-filters-siret.js +15 -0
- package/dist/models/afnorsearch-siret-filters.d.ts +31 -0
- package/dist/models/afnorsearch-siret-filters.js +15 -0
- package/dist/models/afnorsearch-siret-sorting-inner.d.ts +20 -0
- package/dist/models/afnorsearch-siret-sorting-inner.js +15 -0
- package/dist/models/afnorsearch-siret.d.ts +38 -0
- package/dist/models/afnorsearch-siret.js +19 -0
- package/dist/models/afnorsiren-field.d.ts +22 -0
- package/dist/models/afnorsiren-field.js +26 -0
- package/dist/models/afnorsiren-search-post200-response.d.ts +21 -0
- package/dist/models/afnorsiren-search-post200-response.js +15 -0
- package/dist/models/afnorsiret-field.d.ts +31 -0
- package/dist/models/afnorsiret-field.js +35 -0
- package/dist/models/afnorsiret-search-post200-response.d.ts +21 -0
- package/dist/models/afnorsiret-search-post200-response.js +15 -0
- package/dist/models/afnorsorting-order.d.ts +19 -0
- package/dist/models/afnorsorting-order.js +23 -0
- package/dist/models/afnorstrict-operator.d.ts +18 -0
- package/dist/models/afnorstrict-operator.js +22 -0
- package/dist/models/afnorupdate-patch-directory-line-body.d.ts +17 -0
- package/dist/models/afnorupdate-patch-directory-line-body.js +15 -0
- package/dist/models/afnorupdate-patch-routing-code-body.d.ts +25 -0
- package/dist/models/afnorupdate-patch-routing-code-body.js +15 -0
- package/dist/models/afnorupdate-put-routing-code-body.d.ts +25 -0
- package/dist/models/afnorupdate-put-routing-code-body.js +15 -0
- package/dist/models/afnorwebhook-callback-content.d.ts +18 -0
- package/dist/models/afnorwebhook-callback-content.js +15 -0
- package/dist/models/aggregated-payment-input.d.ts +27 -0
- package/dist/models/aggregated-payment-input.js +15 -0
- package/dist/models/aggregated-transaction-input.d.ts +39 -0
- package/dist/models/aggregated-transaction-input.js +15 -0
- package/dist/models/allowance-charge-reason-code.d.ts +55 -0
- package/dist/models/allowance-charge-reason-code.js +59 -0
- package/dist/models/allowance-charge.d.ts +8 -6
- package/dist/models/allowance-charge.js +2 -2
- package/dist/models/allowance-reason-code.d.ts +2 -2
- package/dist/models/allowance-reason-code.js +2 -2
- package/dist/models/allowance-total-amount.d.ts +2 -2
- package/dist/models/allowance-total-amount.js +2 -2
- package/dist/models/amount-due.d.ts +2 -2
- package/dist/models/amount-due.js +2 -2
- package/dist/models/amount.d.ts +3 -3
- package/dist/models/amount.js +2 -2
- package/dist/models/amount1.d.ts +16 -0
- package/dist/models/amount1.js +15 -0
- package/dist/models/apierror.d.ts +2 -2
- package/dist/models/apierror.js +2 -2
- package/dist/models/apiprofile.d.ts +3 -2
- package/dist/models/apiprofile.js +3 -2
- package/dist/models/async-task-status.d.ts +2 -2
- package/dist/models/async-task-status.js +2 -2
- package/dist/models/base-amount.d.ts +2 -2
- package/dist/models/base-amount.js +2 -2
- package/dist/models/bounding-box-schema.d.ts +2 -2
- package/dist/models/bounding-box-schema.js +2 -2
- package/dist/models/buyercountry.d.ts +16 -0
- package/dist/models/buyercountry.js +15 -0
- package/dist/models/celery-status.d.ts +2 -2
- package/dist/models/celery-status.js +2 -2
- package/dist/models/certificate-info-response.d.ts +2 -2
- package/dist/models/certificate-info-response.js +2 -2
- package/dist/models/charge-total-amount.d.ts +2 -2
- package/dist/models/charge-total-amount.js +2 -2
- package/dist/models/{facture-electronique-rest-api-schemas-chorus-pro-chorus-pro-credentials.d.ts → chorus-pro-credentials.d.ts} +3 -3
- package/dist/models/chorus-pro-credentials.js +15 -0
- package/dist/models/chorus-pro-destination.d.ts +2 -2
- package/dist/models/chorus-pro-destination.js +2 -2
- package/dist/models/chorus-pro-result.d.ts +2 -2
- package/dist/models/chorus-pro-result.js +2 -2
- package/dist/models/contact.d.ts +2 -2
- package/dist/models/contact.js +2 -2
- package/dist/models/convert-resume-request.d.ts +2 -2
- package/dist/models/convert-resume-request.js +2 -2
- package/dist/models/convert-success-response.d.ts +2 -2
- package/dist/models/convert-success-response.js +2 -2
- package/dist/models/convert-validation-failed-response.d.ts +17 -2
- package/dist/models/convert-validation-failed-response.js +2 -2
- package/dist/models/country-code.d.ts +187 -0
- package/dist/models/country-code.js +191 -0
- package/dist/models/create-aggregated-report-request.d.ts +44 -0
- package/dist/models/create-aggregated-report-request.js +15 -0
- package/dist/models/create-ereporting-request.d.ts +49 -0
- package/dist/models/create-ereporting-request.js +15 -0
- package/dist/models/currency-code.d.ts +70 -0
- package/dist/models/currency-code.js +74 -0
- package/dist/models/currency.d.ts +16 -0
- package/dist/models/currency.js +15 -0
- package/dist/models/delivery-party.d.ts +2 -2
- package/dist/models/delivery-party.js +2 -2
- package/dist/models/destination.d.ts +2 -2
- package/dist/models/destination.js +2 -2
- package/dist/models/directory-line-include.d.ts +21 -0
- package/dist/models/directory-line-include.js +25 -0
- package/dist/models/doc-type.d.ts +21 -0
- package/dist/models/doc-type.js +25 -0
- package/dist/models/document-type-info.d.ts +2 -2
- package/dist/models/document-type-info.js +2 -2
- package/dist/models/electronic-address.d.ts +8 -2
- package/dist/models/electronic-address.js +2 -2
- package/dist/models/enriched-invoice-info.d.ts +20 -2
- package/dist/models/enriched-invoice-info.js +2 -2
- package/dist/models/ereporting-flow-type.d.ts +21 -0
- package/dist/models/ereporting-flow-type.js +25 -0
- package/dist/models/error-level.d.ts +2 -2
- package/dist/models/error-level.js +2 -2
- package/dist/models/error-source.d.ts +2 -2
- package/dist/models/error-source.js +2 -2
- package/dist/models/extraction-info.d.ts +2 -2
- package/dist/models/extraction-info.js +2 -2
- package/dist/models/factur-xinvoice.d.ts +2 -2
- package/dist/models/factur-xinvoice.js +2 -2
- package/dist/models/factur-xpdfinfo.d.ts +2 -2
- package/dist/models/factur-xpdfinfo.js +2 -2
- package/dist/models/facture-electronique-models-invoice-type-code.d.ts +81 -0
- package/dist/models/facture-electronique-models-invoice-type-code.js +85 -0
- package/dist/models/facture-electronique-rest-api-schemas-convert-validation-error.d.ts +33 -0
- package/dist/models/facture-electronique-rest-api-schemas-convert-validation-error.js +15 -0
- package/dist/models/facture-electronique-rest-api-schemas-processing-chorus-pro-credentials.d.ts +2 -2
- package/dist/models/facture-electronique-rest-api-schemas-processing-chorus-pro-credentials.js +2 -2
- package/dist/models/field-status.d.ts +2 -2
- package/dist/models/field-status.js +2 -2
- package/dist/models/file-info.d.ts +2 -2
- package/dist/models/file-info.js +2 -2
- package/dist/models/files-info.d.ts +2 -2
- package/dist/models/files-info.js +2 -2
- package/dist/models/flow-direction.d.ts +2 -2
- package/dist/models/flow-direction.js +2 -2
- package/dist/models/flow-profile.d.ts +2 -2
- package/dist/models/flow-profile.js +2 -2
- package/dist/models/flow-summary.d.ts +8 -2
- package/dist/models/flow-summary.js +2 -2
- package/dist/models/flow-syntax.d.ts +2 -2
- package/dist/models/flow-syntax.js +2 -2
- package/dist/models/flow-type.d.ts +12 -4
- package/dist/models/flow-type.js +12 -4
- package/dist/models/generate-aggregated-report-response.d.ts +46 -0
- package/dist/models/generate-aggregated-report-response.js +15 -0
- package/dist/models/generate-certificate-request.d.ts +2 -2
- package/dist/models/generate-certificate-request.js +2 -2
- package/dist/models/generate-certificate-response.d.ts +2 -2
- package/dist/models/generate-certificate-response.js +2 -2
- package/dist/models/generate-ereporting-response.d.ts +36 -0
- package/dist/models/generate-ereporting-response.js +15 -0
- package/dist/models/get-chorus-pro-id-request.d.ts +4 -4
- package/dist/models/get-chorus-pro-id-request.js +2 -2
- package/dist/models/get-chorus-pro-id-response.d.ts +2 -2
- package/dist/models/get-chorus-pro-id-response.js +2 -2
- package/dist/models/get-invoice-request.d.ts +4 -4
- package/dist/models/get-invoice-request.js +2 -2
- package/dist/models/get-invoice-response.d.ts +8 -2
- package/dist/models/get-invoice-response.js +2 -2
- package/dist/models/get-structure-request.d.ts +4 -4
- package/dist/models/get-structure-request.js +2 -2
- package/dist/models/get-structure-response.d.ts +8 -2
- package/dist/models/get-structure-response.js +2 -2
- package/dist/models/global-allowance-amount.d.ts +2 -2
- package/dist/models/global-allowance-amount.js +2 -2
- package/dist/models/gross-unit-price.d.ts +2 -2
- package/dist/models/gross-unit-price.js +2 -2
- package/dist/models/httpvalidation-error.d.ts +2 -2
- package/dist/models/httpvalidation-error.js +2 -2
- package/dist/models/incoming-invoice.d.ts +4 -4
- package/dist/models/incoming-invoice.js +2 -2
- package/dist/models/incoming-supplier.d.ts +2 -2
- package/dist/models/incoming-supplier.js +2 -2
- package/dist/models/index.d.ts +139 -4
- package/dist/models/index.js +139 -4
- package/dist/models/invoice-format.d.ts +2 -2
- package/dist/models/invoice-format.js +2 -2
- package/dist/models/invoice-input.d.ts +54 -0
- package/dist/models/invoice-input.js +15 -0
- package/dist/models/invoice-line-allowance-amount.d.ts +2 -2
- package/dist/models/invoice-line-allowance-amount.js +2 -2
- package/dist/models/invoice-line.d.ts +5 -2
- package/dist/models/invoice-line.js +2 -2
- package/dist/models/invoice-note.d.ts +5 -2
- package/dist/models/invoice-note.js +2 -2
- package/dist/models/invoice-payment-input.d.ts +35 -0
- package/dist/models/invoice-payment-input.js +15 -0
- package/dist/models/invoice-references.d.ts +2 -2
- package/dist/models/invoice-references.js +2 -2
- package/dist/models/invoice-status.d.ts +2 -2
- package/dist/models/invoice-status.js +2 -2
- package/dist/models/invoice-totals-prepayment.d.ts +2 -2
- package/dist/models/invoice-totals-prepayment.js +2 -2
- package/dist/models/invoice-totals.d.ts +2 -2
- package/dist/models/invoice-totals.js +2 -2
- package/dist/models/invoice-type-code-output.d.ts +81 -0
- package/dist/models/invoice-type-code-output.js +85 -0
- package/dist/models/invoice-type-code.d.ts +8 -67
- package/dist/models/invoice-type-code.js +8 -67
- package/dist/models/invoicing-framework-code.d.ts +2 -2
- package/dist/models/invoicing-framework-code.js +2 -2
- package/dist/models/invoicing-framework.d.ts +5 -2
- package/dist/models/invoicing-framework.js +2 -2
- package/dist/models/line-net-amount.d.ts +2 -2
- package/dist/models/line-net-amount.js +2 -2
- package/dist/models/line-sub-type.d.ts +20 -0
- package/dist/models/line-sub-type.js +24 -0
- package/dist/models/line-total-amount.d.ts +2 -2
- package/dist/models/line-total-amount.js +2 -2
- package/dist/models/location-inner.d.ts +13 -0
- package/dist/models/location-inner.js +15 -0
- package/dist/models/mandatory-note-schema.d.ts +2 -2
- package/dist/models/mandatory-note-schema.js +2 -2
- package/dist/models/manual-rate.d.ts +2 -2
- package/dist/models/manual-rate.js +2 -2
- package/dist/models/manual-vat-rate.d.ts +2 -2
- package/dist/models/manual-vat-rate.js +2 -2
- package/dist/models/missing-field.d.ts +2 -2
- package/dist/models/missing-field.js +2 -2
- package/dist/models/operation-nature.d.ts +2 -2
- package/dist/models/operation-nature.js +2 -2
- package/dist/models/output-format.d.ts +2 -2
- package/dist/models/output-format.js +2 -2
- package/dist/models/page-dimensions-schema.d.ts +2 -2
- package/dist/models/page-dimensions-schema.js +2 -2
- package/dist/models/payee.d.ts +2 -2
- package/dist/models/payee.js +2 -2
- package/dist/models/payment-amount-by-rate.d.ts +20 -0
- package/dist/models/payment-amount-by-rate.js +15 -0
- package/dist/models/payment-card.d.ts +2 -2
- package/dist/models/payment-card.js +2 -2
- package/dist/models/payment-means.d.ts +2 -2
- package/dist/models/payment-means.js +2 -2
- package/dist/models/pdfvalidation-result-api.d.ts +2 -2
- package/dist/models/pdfvalidation-result-api.js +2 -2
- package/dist/models/pdpcredentials.d.ts +2 -2
- package/dist/models/pdpcredentials.js +2 -2
- package/dist/models/percentage.d.ts +2 -2
- package/dist/models/percentage.js +2 -2
- package/dist/models/postal-address.d.ts +2 -2
- package/dist/models/postal-address.js +2 -2
- package/dist/models/price-allowance-amount.d.ts +2 -2
- package/dist/models/price-allowance-amount.js +2 -2
- package/dist/models/price-basis-quantity.d.ts +2 -2
- package/dist/models/price-basis-quantity.js +2 -2
- package/dist/models/processing-options.d.ts +2 -2
- package/dist/models/processing-options.js +2 -2
- package/dist/models/processing-rule.d.ts +23 -0
- package/dist/models/processing-rule.js +27 -0
- package/dist/models/product-characteristic.d.ts +2 -2
- package/dist/models/product-characteristic.js +2 -2
- package/dist/models/product-classification.d.ts +2 -2
- package/dist/models/product-classification.js +2 -2
- package/dist/models/quantity.d.ts +2 -2
- package/dist/models/quantity.js +2 -2
- package/dist/models/rate.d.ts +16 -0
- package/dist/models/rate.js +15 -0
- package/dist/models/rate1.d.ts +16 -0
- package/dist/models/rate1.js +15 -0
- package/dist/models/recipient.d.ts +2 -2
- package/dist/models/recipient.js +2 -2
- package/dist/models/report-period.d.ts +24 -0
- package/dist/models/report-period.js +15 -0
- package/dist/models/report-sender.d.ts +25 -0
- package/dist/models/report-sender.js +15 -0
- package/dist/models/rounding-amount.d.ts +2 -2
- package/dist/models/rounding-amount.js +2 -2
- package/dist/models/routing-code-include.d.ts +19 -0
- package/dist/models/routing-code-include.js +23 -0
- package/dist/models/scheme-id.d.ts +30 -2
- package/dist/models/scheme-id.js +31 -3
- package/dist/models/search-flow-request.d.ts +2 -2
- package/dist/models/search-flow-request.js +2 -2
- package/dist/models/search-flow-response.d.ts +2 -2
- package/dist/models/search-flow-response.js +2 -2
- package/dist/models/search-services-response.d.ts +11 -2
- package/dist/models/search-services-response.js +2 -2
- package/dist/models/search-structure-request.d.ts +4 -4
- package/dist/models/search-structure-request.js +2 -2
- package/dist/models/search-structure-response.d.ts +2 -2
- package/dist/models/search-structure-response.js +2 -2
- package/dist/models/sellercountry.d.ts +16 -0
- package/dist/models/sellercountry.js +15 -0
- package/dist/models/signature-info-api.d.ts +2 -2
- package/dist/models/signature-info-api.js +2 -2
- package/dist/models/signature-info.d.ts +2 -2
- package/dist/models/signature-info.js +2 -2
- package/dist/models/signature-parameters.d.ts +2 -2
- package/dist/models/signature-parameters.js +2 -2
- package/dist/models/simplified-invoice-data.d.ts +12 -2
- package/dist/models/simplified-invoice-data.js +2 -2
- package/dist/models/siret-include.d.ts +18 -0
- package/dist/models/siret-include.js +22 -0
- package/dist/models/structure-info.d.ts +2 -2
- package/dist/models/structure-info.js +2 -2
- package/dist/models/structure-parameters.d.ts +2 -2
- package/dist/models/structure-parameters.js +2 -2
- package/dist/models/structure-service.d.ts +2 -2
- package/dist/models/structure-service.js +2 -2
- package/dist/models/submission-mode.d.ts +2 -2
- package/dist/models/submission-mode.js +2 -2
- package/dist/models/submit-aggregated-report-request.d.ts +26 -0
- package/dist/models/submit-aggregated-report-request.js +15 -0
- package/dist/models/submit-complete-invoice-request.d.ts +2 -2
- package/dist/models/submit-complete-invoice-request.js +2 -2
- package/dist/models/submit-complete-invoice-response.d.ts +2 -2
- package/dist/models/submit-complete-invoice-response.js +2 -2
- package/dist/models/submit-ereporting-request.d.ts +26 -0
- package/dist/models/submit-ereporting-request.js +15 -0
- package/dist/models/submit-ereporting-response.d.ts +41 -0
- package/dist/models/submit-ereporting-response.js +15 -0
- package/dist/models/submit-flow-request.d.ts +2 -2
- package/dist/models/submit-flow-request.js +2 -2
- package/dist/models/submit-flow-response.d.ts +2 -2
- package/dist/models/submit-flow-response.js +2 -2
- package/dist/models/submit-gross-amount.d.ts +2 -2
- package/dist/models/submit-gross-amount.js +2 -2
- package/dist/models/submit-invoice-request.d.ts +4 -4
- package/dist/models/submit-invoice-request.js +2 -2
- package/dist/models/submit-invoice-response.d.ts +2 -2
- package/dist/models/submit-invoice-response.js +2 -2
- package/dist/models/submit-net-amount.d.ts +2 -2
- package/dist/models/submit-net-amount.js +2 -2
- package/dist/models/submit-vat-amount.d.ts +2 -2
- package/dist/models/submit-vat-amount.js +2 -2
- package/dist/models/supplementary-attachment.d.ts +17 -2
- package/dist/models/supplementary-attachment.js +2 -2
- package/dist/models/supplier.d.ts +2 -2
- package/dist/models/supplier.js +2 -2
- package/dist/models/task-response.d.ts +2 -2
- package/dist/models/task-response.js +2 -2
- package/dist/models/tax-breakdown-input.d.ts +22 -0
- package/dist/models/tax-breakdown-input.js +15 -0
- package/dist/models/tax-due-date-type.d.ts +23 -0
- package/dist/models/tax-due-date-type.js +27 -0
- package/dist/models/tax-representative.d.ts +2 -2
- package/dist/models/tax-representative.js +2 -2
- package/dist/models/taxable-amount.d.ts +2 -2
- package/dist/models/taxable-amount.js +2 -2
- package/dist/models/taxableamount.d.ts +16 -0
- package/dist/models/taxableamount.js +15 -0
- package/dist/models/taxamount.d.ts +16 -0
- package/dist/models/taxamount.js +15 -0
- package/dist/models/taxamount1.d.ts +16 -0
- package/dist/models/taxamount1.js +15 -0
- package/dist/models/taxamount2.d.ts +16 -0
- package/dist/models/taxamount2.js +15 -0
- package/dist/models/taxexclusiveamount.d.ts +16 -0
- package/dist/models/taxexclusiveamount.js +15 -0
- package/dist/models/taxexclusiveamount1.d.ts +16 -0
- package/dist/models/taxexclusiveamount1.js +15 -0
- package/dist/models/total-gross-amount.d.ts +2 -2
- package/dist/models/total-gross-amount.js +2 -2
- package/dist/models/total-net-amount.d.ts +2 -2
- package/dist/models/total-net-amount.js +2 -2
- package/dist/models/total-vatamount.d.ts +2 -2
- package/dist/models/total-vatamount.js +2 -2
- package/dist/models/transaction-category.d.ts +21 -0
- package/dist/models/transaction-category.js +25 -0
- package/dist/models/transmission-type-code.d.ts +19 -0
- package/dist/models/transmission-type-code.js +23 -0
- package/dist/models/unit-net-price.d.ts +2 -2
- package/dist/models/unit-net-price.js +2 -2
- package/dist/models/unit-of-measure.d.ts +2 -2
- package/dist/models/unit-of-measure.js +2 -2
- package/dist/models/validate-ereporting-request.d.ts +21 -0
- package/dist/models/validate-ereporting-request.js +15 -0
- package/dist/models/validate-ereporting-response.d.ts +41 -0
- package/dist/models/validate-ereporting-response.js +15 -0
- package/dist/models/validation-error-detail.d.ts +2 -2
- package/dist/models/validation-error-detail.js +2 -2
- package/dist/models/validation-error-response.d.ts +2 -2
- package/dist/models/validation-error-response.js +2 -2
- package/dist/models/validation-error.d.ts +4 -4
- package/dist/models/validation-error.js +2 -2
- package/dist/models/validation-info.d.ts +4 -4
- package/dist/models/validation-info.js +2 -2
- package/dist/models/validation-success-response.d.ts +2 -2
- package/dist/models/validation-success-response.js +2 -2
- package/dist/models/vat-rate.d.ts +2 -2
- package/dist/models/vat-rate.js +2 -2
- package/dist/models/vataccounting-code.d.ts +2 -2
- package/dist/models/vataccounting-code.js +2 -2
- package/dist/models/vatamount.d.ts +2 -2
- package/dist/models/vatamount.js +2 -2
- package/dist/models/vatcategory.d.ts +2 -2
- package/dist/models/vatcategory.js +2 -2
- package/dist/models/vatline.d.ts +2 -2
- package/dist/models/vatline.js +2 -2
- package/dist/models/vatpoint-date-code.d.ts +2 -2
- package/dist/models/vatpoint-date-code.js +2 -2
- package/dist/models/verification-success-response.d.ts +2 -2
- package/dist/models/verification-success-response.js +2 -2
- package/dist/models/verified-field-schema.d.ts +2 -2
- package/dist/models/verified-field-schema.js +2 -2
- package/docs/AFNORAcknowledgement.md +22 -0
- package/docs/AFNORAcknowledgementDetail.md +26 -0
- package/docs/AFNORAddressEdit.md +33 -0
- package/docs/AFNORAddressPatch.md +33 -0
- package/docs/AFNORAddressPut.md +33 -0
- package/docs/AFNORAddressRead.md +35 -0
- package/docs/AFNORAlgorithm.md +16 -0
- package/docs/AFNORContainsOperator.md +9 -0
- package/docs/AFNORCreateDirectoryLineBody.md +22 -0
- package/docs/AFNORCreateDirectoryLineBodyAddressingInformation.md +26 -0
- package/docs/AFNORCreateDirectoryLineBodyPeriod.md +22 -0
- package/docs/AFNORCreateRoutingCodeBody.md +34 -0
- package/docs/AFNORDestination.md +3 -1
- package/docs/AFNORDiffusionStatus.md +11 -0
- package/docs/AFNORDirectoryLineField.md +19 -0
- package/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCode.md +34 -0
- package/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodePlatform.md +22 -0
- package/docs/AFNORDirectoryLinePayloadHistoryLegalUnitFacilityRoutingCodeRoutingCode.md +30 -0
- package/docs/AFNORDirectoryLinePost201Response.md +24 -0
- package/docs/AFNORDirectoryLineSearchPost200Response.md +24 -0
- package/docs/AFNOREntityType.md +11 -0
- package/docs/AFNORError.md +28 -0
- package/docs/AFNORFacilityAdministrativeStatus.md +11 -0
- package/docs/AFNORFacilityNature.md +11 -0
- package/docs/AFNORFacilityPayloadHistory.md +36 -0
- package/docs/AFNORFacilityPayloadHistoryUleB2gAdditionalData.md +30 -0
- package/docs/AFNORFacilityPayloadIncluded.md +34 -0
- package/docs/AFNORFacilityType.md +11 -0
- package/docs/AFNORFlow.md +41 -0
- package/docs/AFNORFlowAckStatus.md +13 -0
- package/docs/AFNORFlowDirection.md +11 -0
- package/docs/AFNORFlowInfo.md +31 -0
- package/docs/AFNORFlowProfile.md +12 -0
- package/docs/AFNORFlowSyntax.md +17 -0
- package/docs/AFNORFlowType.md +33 -0
- package/docs/AFNORFullFlowInfo.md +35 -0
- package/docs/AFNORLegalUnitAdministrativeStatus.md +11 -0
- package/docs/AFNORLegalUnitPayloadHistory.md +26 -0
- package/docs/AFNORLegalUnitPayloadIncluded.md +26 -0
- package/docs/AFNORLegalUnitPayloadIncludedNoSiren.md +24 -0
- package/docs/AFNORPDPPAApi.md +5 -5
- package/docs/AFNORPDPPADirectoryServiceApi.md +426 -171
- package/docs/AFNORPDPPAFlowServiceApi.md +72 -38
- package/docs/AFNORPlatformStatus.md +11 -0
- package/docs/AFNORProcessingRule.md +19 -0
- package/docs/AFNORReasonCode.md +19 -0
- package/docs/AFNORReasonCodeEnum.md +37 -0
- package/docs/AFNORRecipientPlatformType.md +11 -0
- package/docs/AFNORResult.md +6 -0
- package/docs/AFNORRoutingCodeAdministrativeStatus.md +11 -0
- package/docs/AFNORRoutingCodeField.md +23 -0
- package/docs/AFNORRoutingCodePayloadHistoryLegalUnitFacility.md +36 -0
- package/docs/AFNORRoutingCodePost201Response.md +24 -0
- package/docs/AFNORRoutingCodeSearch.md +30 -0
- package/docs/AFNORRoutingCodeSearchFilters.md +32 -0
- package/docs/AFNORRoutingCodeSearchFiltersAdministrativeStatus.md +22 -0
- package/docs/AFNORRoutingCodeSearchFiltersRoutingCodeName.md +22 -0
- package/docs/AFNORRoutingCodeSearchFiltersRoutingIdentifier.md +22 -0
- package/docs/AFNORRoutingCodeSearchPost200Response.md +24 -0
- package/docs/AFNORRoutingCodeSearchSortingInner.md +23 -0
- package/docs/AFNORSearchDirectoryLine.md +28 -0
- package/docs/AFNORSearchDirectoryLineFilters.md +28 -0
- package/docs/AFNORSearchDirectoryLineFiltersAddressingIdentifier.md +22 -0
- package/docs/AFNORSearchDirectoryLineFiltersAddressingSuffix.md +22 -0
- package/docs/AFNORSearchDirectoryLineSortingInner.md +23 -0
- package/docs/AFNORSearchFlowContent.md +25 -0
- package/docs/AFNORSearchFlowFilters.md +33 -0
- package/docs/AFNORSearchFlowParams.md +22 -0
- package/docs/AFNORSearchSiren.md +28 -0
- package/docs/AFNORSearchSirenFilters.md +26 -0
- package/docs/AFNORSearchSirenFiltersAdministrativeStatus.md +22 -0
- package/docs/AFNORSearchSirenFiltersBusinessName.md +22 -0
- package/docs/AFNORSearchSirenFiltersEntityType.md +22 -0
- package/docs/AFNORSearchSirenFiltersSiren.md +22 -0
- package/docs/AFNORSearchSirenSortingInner.md +23 -0
- package/docs/AFNORSearchSiret.md +30 -0
- package/docs/AFNORSearchSiretFilters.md +36 -0
- package/docs/AFNORSearchSiretFiltersAddressLines.md +22 -0
- package/docs/AFNORSearchSiretFiltersAdministrativeStatus.md +22 -0
- package/docs/AFNORSearchSiretFiltersCountrySubdivision.md +22 -0
- package/docs/AFNORSearchSiretFiltersFacilityType.md +22 -0
- package/docs/AFNORSearchSiretFiltersLocality.md +22 -0
- package/docs/AFNORSearchSiretFiltersName.md +22 -0
- package/docs/AFNORSearchSiretFiltersPostalCode.md +22 -0
- package/docs/AFNORSearchSiretFiltersSiret.md +22 -0
- package/docs/AFNORSearchSiretSortingInner.md +23 -0
- package/docs/AFNORSirenField.md +17 -0
- package/docs/AFNORSirenSearchPost200Response.md +24 -0
- package/docs/AFNORSiretField.md +35 -0
- package/docs/AFNORSiretSearchPost200Response.md +24 -0
- package/docs/AFNORSortingOrder.md +11 -0
- package/docs/AFNORStrictOperator.md +9 -0
- package/docs/AFNORUpdatePatchDirectoryLineBody.md +20 -0
- package/docs/AFNORUpdatePatchRoutingCodeBody.md +26 -0
- package/docs/AFNORUpdatePutRoutingCodeBody.md +26 -0
- package/docs/AFNORWebhookCallbackContent.md +21 -0
- package/docs/APIProfile.md +2 -0
- package/docs/AcceptLanguage.md +11 -0
- package/docs/AggregatedPaymentInput.md +25 -0
- package/docs/AggregatedTransactionInput.md +35 -0
- package/docs/AllowanceCharge.md +3 -3
- package/docs/AllowanceChargeReasonCode.md +83 -0
- package/docs/Amount.md +1 -1
- package/docs/{ValidationErrorLocInner.md → Amount1.md} +4 -3
- package/docs/Buyercountry.md +19 -0
- package/docs/ChorusProApi.md +20 -3
- package/docs/{FactureElectroniqueRestApiSchemasChorusProChorusProCredentials.md → ChorusProCredentials.md} +3 -3
- package/docs/ConvertValidationFailedResponse.md +5 -5
- package/docs/CountryCode.md +347 -0
- package/docs/CreateAggregatedReportRequest.md +37 -0
- package/docs/CreateEReportingRequest.md +39 -0
- package/docs/Currency.md +19 -0
- package/docs/CurrencyCode.md +113 -0
- package/docs/Destination.md +3 -1
- package/docs/DirectoryLineInclude.md +15 -0
- package/docs/DocType.md +15 -0
- package/docs/DocumentConversionApi.md +17 -71
- package/docs/DownloadsApi.md +237 -0
- package/docs/EReportingApi.md +638 -0
- package/docs/EReportingFlowType.md +15 -0
- package/docs/ElectronicAddress.md +2 -2
- package/docs/EnrichedInvoiceInfo.md +6 -6
- package/docs/FactureElectroniqueModelsInvoiceTypeCode.md +39 -0
- package/docs/FactureElectroniqueRestApiSchemasConvertValidationError.md +35 -0
- package/docs/FlowSummary.md +2 -2
- package/docs/FlowType.md +18 -2
- package/docs/GenerateAggregatedReportResponse.md +33 -0
- package/docs/GenerateEReportingResponse.md +29 -0
- package/docs/GetChorusProIdRequest.md +1 -1
- package/docs/GetInvoiceRequest.md +1 -1
- package/docs/GetInvoiceResponse.md +2 -2
- package/docs/GetStructureRequest.md +1 -1
- package/docs/GetStructureResponse.md +2 -2
- package/docs/HealthApi.md +3 -1
- package/docs/IncomingInvoice.md +1 -1
- package/docs/InvoiceInput.md +51 -0
- package/docs/InvoiceLine.md +4 -0
- package/docs/InvoiceNote.md +1 -1
- package/docs/InvoicePaymentInput.md +29 -0
- package/docs/InvoiceProcessingApi.md +56 -14
- package/docs/InvoiceTypeCode.md +6 -28
- package/docs/InvoiceTypeCodeOutput.md +39 -0
- package/docs/InvoicingFramework.md +1 -1
- package/docs/LineSubType.md +13 -0
- package/docs/LocationInner.md +18 -0
- package/docs/PDFXMLVerificationApi.md +27 -9
- package/docs/PaymentAmountByRate.md +23 -0
- package/docs/ProcessingRule.md +19 -0
- package/docs/Rate.md +19 -0
- package/docs/Rate1.md +19 -0
- package/docs/ReportPeriod.md +23 -0
- package/docs/ReportSender.md +25 -0
- package/docs/RoutingCodeInclude.md +11 -0
- package/docs/SchemeID.md +14 -0
- package/docs/SearchServicesResponse.md +3 -3
- package/docs/SearchStructureRequest.md +1 -1
- package/docs/Sellercountry.md +19 -0
- package/docs/SimplifiedInvoiceData.md +8 -0
- package/docs/SiretInclude.md +9 -0
- package/docs/SubmitAggregatedReportRequest.md +31 -0
- package/docs/SubmitEReportingRequest.md +31 -0
- package/docs/SubmitEReportingResponse.md +35 -0
- package/docs/SubmitInvoiceRequest.md +1 -1
- package/docs/SupplementaryAttachment.md +5 -5
- package/docs/TaxBreakdownInput.md +25 -0
- package/docs/TaxDueDateType.md +19 -0
- package/docs/Taxableamount.md +19 -0
- package/docs/Taxamount.md +19 -0
- package/docs/Taxamount1.md +19 -0
- package/docs/Taxamount2.md +19 -0
- package/docs/Taxexclusiveamount.md +19 -0
- package/docs/Taxexclusiveamount1.md +19 -0
- package/docs/TransactionCategory.md +15 -0
- package/docs/TransmissionTypeCode.md +11 -0
- package/docs/UserApi.md +2 -1
- package/docs/ValidateEReportingRequest.md +21 -0
- package/docs/ValidateEReportingResponse.md +31 -0
- package/docs/ValidationError.md +1 -1
- package/docs/ValidationInfo.md +1 -1
- package/index.ts +2 -2
- package/models/accept-language.ts +29 -0
- package/models/acknowledgment-status.ts +2 -2
- package/models/additional-document.ts +2 -2
- package/models/afnoracknowledgement-detail.ts +37 -0
- package/models/afnoracknowledgement.ts +29 -0
- package/models/afnoraddress-edit.ts +50 -0
- package/models/afnoraddress-patch.ts +50 -0
- package/models/afnoraddress-put.ts +50 -0
- package/models/afnoraddress-read.ts +54 -0
- package/models/afnoralgorithm.ts +29 -0
- package/models/afnorcontains-operator.ts +28 -0
- package/models/afnorcreate-directory-line-body-addressing-information.ts +35 -0
- package/models/afnorcreate-directory-line-body-period.ts +27 -0
- package/models/afnorcreate-directory-line-body.ts +27 -0
- package/models/afnorcreate-routing-code-body.ts +53 -0
- package/models/afnorcredentials.ts +2 -2
- package/models/afnordestination.ts +11 -11
- package/models/afnordiffusion-status.ts +29 -0
- package/models/afnordirectory-line-field.ts +33 -0
- package/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-platform.ts +29 -0
- package/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code-routing-code.ts +45 -0
- package/models/afnordirectory-line-payload-history-legal-unit-facility-routing-code.ts +51 -0
- package/models/afnordirectory-line-post201-response.ts +31 -0
- package/models/afnordirectory-line-search-post200-response.ts +31 -0
- package/models/afnorentity-type.ts +29 -0
- package/models/afnorerror.ts +27 -0
- package/models/afnorfacility-administrative-status.ts +29 -0
- package/models/afnorfacility-nature.ts +29 -0
- package/models/afnorfacility-payload-history-ule-b2g-additional-data.ts +43 -0
- package/models/afnorfacility-payload-history.ts +57 -0
- package/models/afnorfacility-payload-included.ts +53 -0
- package/models/afnorfacility-type.ts +29 -0
- package/models/afnorflow-ack-status.ts +30 -0
- package/models/afnorflow-direction.ts +29 -0
- package/models/afnorflow-info.ts +45 -0
- package/models/afnorflow-profile.ts +27 -0
- package/models/afnorflow-syntax.ts +32 -0
- package/models/afnorflow-type.ts +40 -0
- package/models/afnorflow.ts +74 -0
- package/models/afnorfull-flow-info.ts +35 -0
- package/models/afnorhealth-check-response.ts +2 -2
- package/models/afnorlegal-unit-administrative-status.ts +29 -0
- package/models/afnorlegal-unit-payload-history.ts +37 -0
- package/models/afnorlegal-unit-payload-included-no-siren.ts +33 -0
- package/models/afnorlegal-unit-payload-included.ts +37 -0
- package/models/afnorplatform-status.ts +29 -0
- package/models/afnorprocessing-rule.ts +33 -0
- package/models/afnorreason-code-enum.ts +42 -0
- package/models/afnorreason-code.ts +26 -0
- package/models/afnorrecipient-platform-type.ts +29 -0
- package/models/afnorresult.ts +5 -2
- package/models/afnorrouting-code-administrative-status.ts +29 -0
- package/models/afnorrouting-code-field.ts +35 -0
- package/models/afnorrouting-code-payload-history-legal-unit-facility.ts +57 -0
- package/models/afnorrouting-code-post201-response.ts +31 -0
- package/models/afnorrouting-code-search-filters-administrative-status.ts +29 -0
- package/models/afnorrouting-code-search-filters-routing-code-name.ts +29 -0
- package/models/afnorrouting-code-search-filters-routing-identifier.ts +29 -0
- package/models/afnorrouting-code-search-filters.ts +47 -0
- package/models/afnorrouting-code-search-post200-response.ts +31 -0
- package/models/afnorrouting-code-search-sorting-inner.ts +32 -0
- package/models/afnorrouting-code-search.ts +54 -0
- package/models/afnorsearch-directory-line-filters-addressing-identifier.ts +29 -0
- package/models/afnorsearch-directory-line-filters-addressing-suffix.ts +29 -0
- package/models/afnorsearch-directory-line-filters.ts +39 -0
- package/models/afnorsearch-directory-line-sorting-inner.ts +32 -0
- package/models/afnorsearch-directory-line.ts +45 -0
- package/models/afnorsearch-flow-content.ts +31 -0
- package/models/afnorsearch-flow-filters.ts +46 -0
- package/models/afnorsearch-flow-params.ts +27 -0
- package/models/afnorsearch-siren-filters-administrative-status.ts +29 -0
- package/models/afnorsearch-siren-filters-business-name.ts +29 -0
- package/models/afnorsearch-siren-filters-entity-type.ts +29 -0
- package/models/afnorsearch-siren-filters-siren.ts +29 -0
- package/models/afnorsearch-siren-filters.ts +35 -0
- package/models/afnorsearch-siren-sorting-inner.ts +32 -0
- package/models/afnorsearch-siren.ts +45 -0
- package/models/afnorsearch-siret-filters-address-lines.ts +29 -0
- package/models/afnorsearch-siret-filters-administrative-status.ts +29 -0
- package/models/afnorsearch-siret-filters-country-subdivision.ts +29 -0
- package/models/afnorsearch-siret-filters-facility-type.ts +29 -0
- package/models/afnorsearch-siret-filters-locality.ts +29 -0
- package/models/afnorsearch-siret-filters-name.ts +29 -0
- package/models/afnorsearch-siret-filters-postal-code.ts +29 -0
- package/models/afnorsearch-siret-filters-siret.ts +29 -0
- package/models/afnorsearch-siret-filters.ts +55 -0
- package/models/afnorsearch-siret-sorting-inner.ts +32 -0
- package/models/afnorsearch-siret.ts +53 -0
- package/models/afnorsiren-field.ts +32 -0
- package/models/afnorsiren-search-post200-response.ts +31 -0
- package/models/afnorsiret-field.ts +41 -0
- package/models/afnorsiret-search-post200-response.ts +31 -0
- package/models/afnorsorting-order.ts +29 -0
- package/models/afnorstrict-operator.ts +28 -0
- package/models/afnorupdate-patch-directory-line-body.ts +23 -0
- package/models/afnorupdate-patch-routing-code-body.ts +37 -0
- package/models/afnorupdate-put-routing-code-body.ts +37 -0
- package/models/afnorwebhook-callback-content.ts +26 -0
- package/models/aggregated-payment-input.ts +37 -0
- package/models/aggregated-transaction-input.ts +59 -0
- package/models/allowance-charge-reason-code.ts +65 -0
- package/models/allowance-charge.ts +14 -6
- package/models/allowance-reason-code.ts +2 -2
- package/models/allowance-total-amount.ts +2 -2
- package/models/amount-due.ts +2 -2
- package/models/amount.ts +3 -3
- package/models/amount1.ts +22 -0
- package/models/apierror.ts +2 -2
- package/models/apiprofile.ts +3 -2
- package/models/async-task-status.ts +2 -2
- package/models/base-amount.ts +2 -2
- package/models/bounding-box-schema.ts +2 -2
- package/models/buyercountry.ts +25 -0
- package/models/celery-status.ts +2 -2
- package/models/certificate-info-response.ts +2 -2
- package/models/charge-total-amount.ts +2 -2
- package/models/{facture-electronique-rest-api-schemas-chorus-pro-chorus-pro-credentials.ts → chorus-pro-credentials.ts} +3 -3
- package/models/chorus-pro-destination.ts +2 -2
- package/models/chorus-pro-result.ts +2 -2
- package/models/contact.ts +2 -2
- package/models/convert-resume-request.ts +2 -2
- package/models/convert-success-response.ts +2 -2
- package/models/convert-validation-failed-response.ts +17 -2
- package/models/country-code.ts +197 -0
- package/models/create-aggregated-report-request.ts +66 -0
- package/models/create-ereporting-request.ts +73 -0
- package/models/currency-code.ts +80 -0
- package/models/currency.ts +25 -0
- package/models/delivery-party.ts +2 -2
- package/models/destination.ts +8 -2
- package/models/directory-line-include.ts +31 -0
- package/models/doc-type.ts +31 -0
- package/models/document-type-info.ts +2 -2
- package/models/electronic-address.ts +8 -2
- package/models/enriched-invoice-info.ts +20 -2
- package/models/ereporting-flow-type.ts +31 -0
- package/models/error-level.ts +2 -2
- package/models/error-source.ts +2 -2
- package/models/extraction-info.ts +2 -2
- package/models/factur-xinvoice.ts +2 -2
- package/models/factur-xpdfinfo.ts +2 -2
- package/models/facture-electronique-models-invoice-type-code.ts +91 -0
- package/models/facture-electronique-rest-api-schemas-convert-validation-error.ts +39 -0
- package/models/facture-electronique-rest-api-schemas-processing-chorus-pro-credentials.ts +2 -2
- package/models/field-status.ts +2 -2
- package/models/file-info.ts +2 -2
- package/models/files-info.ts +2 -2
- package/models/flow-direction.ts +2 -2
- package/models/flow-profile.ts +2 -2
- package/models/flow-summary.ts +8 -2
- package/models/flow-syntax.ts +2 -2
- package/models/flow-type.ts +12 -4
- package/models/generate-aggregated-report-response.ts +50 -0
- package/models/generate-certificate-request.ts +2 -2
- package/models/generate-certificate-response.ts +2 -2
- package/models/generate-ereporting-response.ts +42 -0
- package/models/get-chorus-pro-id-request.ts +4 -4
- package/models/get-chorus-pro-id-response.ts +2 -2
- package/models/get-invoice-request.ts +4 -4
- package/models/get-invoice-response.ts +8 -2
- package/models/get-structure-request.ts +4 -4
- package/models/get-structure-response.ts +8 -2
- package/models/global-allowance-amount.ts +2 -2
- package/models/gross-unit-price.ts +2 -2
- package/models/httpvalidation-error.ts +2 -2
- package/models/incoming-invoice.ts +4 -4
- package/models/incoming-supplier.ts +2 -2
- package/models/index.ts +139 -4
- package/models/invoice-format.ts +2 -2
- package/models/invoice-input.ts +76 -0
- package/models/invoice-line-allowance-amount.ts +2 -2
- package/models/invoice-line.ts +7 -2
- package/models/invoice-note.ts +5 -2
- package/models/invoice-payment-input.ts +45 -0
- package/models/invoice-references.ts +2 -2
- package/models/invoice-status.ts +2 -2
- package/models/invoice-totals-prepayment.ts +2 -2
- package/models/invoice-totals.ts +2 -2
- package/models/invoice-type-code-output.ts +91 -0
- package/models/invoice-type-code.ts +8 -67
- package/models/invoicing-framework-code.ts +2 -2
- package/models/invoicing-framework.ts +5 -2
- package/models/line-net-amount.ts +2 -2
- package/models/line-sub-type.ts +30 -0
- package/models/line-total-amount.ts +2 -2
- package/models/location-inner.ts +19 -0
- package/models/mandatory-note-schema.ts +2 -2
- package/models/manual-rate.ts +2 -2
- package/models/manual-vat-rate.ts +2 -2
- package/models/missing-field.ts +2 -2
- package/models/operation-nature.ts +2 -2
- package/models/output-format.ts +2 -2
- package/models/page-dimensions-schema.ts +2 -2
- package/models/payee.ts +2 -2
- package/models/payment-amount-by-rate.ts +30 -0
- package/models/payment-card.ts +2 -2
- package/models/payment-means.ts +2 -2
- package/models/pdfvalidation-result-api.ts +2 -2
- package/models/pdpcredentials.ts +2 -2
- package/models/percentage.ts +2 -2
- package/models/postal-address.ts +2 -2
- package/models/price-allowance-amount.ts +2 -2
- package/models/price-basis-quantity.ts +2 -2
- package/models/processing-options.ts +2 -2
- package/models/processing-rule.ts +33 -0
- package/models/product-characteristic.ts +2 -2
- package/models/product-classification.ts +2 -2
- package/models/quantity.ts +2 -2
- package/models/rate.ts +22 -0
- package/models/rate1.ts +22 -0
- package/models/recipient.ts +2 -2
- package/models/report-period.ts +30 -0
- package/models/report-sender.ts +31 -0
- package/models/rounding-amount.ts +2 -2
- package/models/routing-code-include.ts +29 -0
- package/models/scheme-id.ts +31 -3
- package/models/search-flow-request.ts +2 -2
- package/models/search-flow-response.ts +2 -2
- package/models/search-services-response.ts +11 -2
- package/models/search-structure-request.ts +4 -4
- package/models/search-structure-response.ts +2 -2
- package/models/sellercountry.ts +25 -0
- package/models/signature-info-api.ts +2 -2
- package/models/signature-info.ts +2 -2
- package/models/signature-parameters.ts +2 -2
- package/models/simplified-invoice-data.ts +20 -2
- package/models/siret-include.ts +28 -0
- package/models/structure-info.ts +2 -2
- package/models/structure-parameters.ts +2 -2
- package/models/structure-service.ts +2 -2
- package/models/submission-mode.ts +2 -2
- package/models/submit-aggregated-report-request.ts +34 -0
- package/models/submit-complete-invoice-request.ts +2 -2
- package/models/submit-complete-invoice-response.ts +2 -2
- package/models/submit-ereporting-request.ts +34 -0
- package/models/submit-ereporting-response.ts +45 -0
- package/models/submit-flow-request.ts +2 -2
- package/models/submit-flow-response.ts +2 -2
- package/models/submit-gross-amount.ts +2 -2
- package/models/submit-invoice-request.ts +4 -4
- package/models/submit-invoice-response.ts +2 -2
- package/models/submit-net-amount.ts +2 -2
- package/models/submit-vat-amount.ts +2 -2
- package/models/supplementary-attachment.ts +17 -2
- package/models/supplier.ts +2 -2
- package/models/task-response.ts +2 -2
- package/models/tax-breakdown-input.ts +34 -0
- package/models/tax-due-date-type.ts +33 -0
- package/models/tax-representative.ts +2 -2
- package/models/taxable-amount.ts +2 -2
- package/models/taxableamount.ts +22 -0
- package/models/taxamount.ts +22 -0
- package/models/taxamount1.ts +22 -0
- package/models/taxamount2.ts +22 -0
- package/models/taxexclusiveamount.ts +22 -0
- package/models/taxexclusiveamount1.ts +22 -0
- package/models/total-gross-amount.ts +2 -2
- package/models/total-net-amount.ts +2 -2
- package/models/total-vatamount.ts +2 -2
- package/models/transaction-category.ts +31 -0
- package/models/transmission-type-code.ts +29 -0
- package/models/unit-net-price.ts +2 -2
- package/models/unit-of-measure.ts +2 -2
- package/models/validate-ereporting-request.ts +29 -0
- package/models/validate-ereporting-response.ts +49 -0
- package/models/validation-error-detail.ts +2 -2
- package/models/validation-error-response.ts +2 -2
- package/models/validation-error.ts +4 -4
- package/models/validation-info.ts +4 -4
- package/models/validation-success-response.ts +2 -2
- package/models/vat-rate.ts +2 -2
- package/models/vataccounting-code.ts +2 -2
- package/models/vatamount.ts +2 -2
- package/models/vatcategory.ts +2 -2
- package/models/vatline.ts +2 -2
- package/models/vatpoint-date-code.ts +2 -2
- package/models/verification-success-response.ts +2 -2
- package/models/verified-field-schema.ts +2 -2
- package/package.json +1 -1
- package/dist/esm/models/convert-error-response.d.ts +0 -27
- package/dist/esm/models/convert-error-response.js +0 -14
- package/dist/esm/models/convert-pending-input-response.d.ts +0 -31
- package/dist/esm/models/convert-pending-input-response.js +0 -14
- package/dist/esm/models/facture-electronique-rest-api-schemas-chorus-pro-chorus-pro-credentials.js +0 -14
- package/dist/esm/models/validation-error-loc-inner.d.ts +0 -13
- package/dist/esm/models/validation-error-loc-inner.js +0 -14
- package/dist/models/convert-error-response.d.ts +0 -27
- package/dist/models/convert-error-response.js +0 -15
- package/dist/models/convert-pending-input-response.d.ts +0 -31
- package/dist/models/convert-pending-input-response.js +0 -15
- package/dist/models/facture-electronique-rest-api-schemas-chorus-pro-chorus-pro-credentials.js +0 -15
- package/dist/models/validation-error-loc-inner.d.ts +0 -13
- package/dist/models/validation-error-loc-inner.js +0 -15
- package/docs/ConvertErrorResponse.md +0 -29
- package/docs/ConvertPendingInputResponse.md +0 -35
- package/models/convert-error-response.ts +0 -33
- package/models/convert-pending-input-response.ts +0 -39
- package/models/validation-error-loc-inner.ts +0 -19
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
4
|
* FactPulse REST API
|
|
5
|
-
* 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://
|
|
5
|
+
* 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/
|
|
6
6
|
*
|
|
7
7
|
* The version of the OpenAPI document: 1.0.0
|
|
8
|
-
*
|
|
8
|
+
* Contact: contact@factpulse.fr
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
11
|
* https://openapi-generator.tech
|
|
@@ -22,6 +22,8 @@ import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObj
|
|
|
22
22
|
// @ts-ignore
|
|
23
23
|
import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base';
|
|
24
24
|
// @ts-ignore
|
|
25
|
+
import type { APIError } from '../models';
|
|
26
|
+
// @ts-ignore
|
|
25
27
|
import type { APIProfile } from '../models';
|
|
26
28
|
// @ts-ignore
|
|
27
29
|
import type { AsyncTaskStatus } from '../models';
|
|
@@ -51,17 +53,20 @@ import type { ValidationSuccessResponse } from '../models';
|
|
|
51
53
|
export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: Configuration) {
|
|
52
54
|
return {
|
|
53
55
|
/**
|
|
54
|
-
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A
|
|
56
|
+
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A supplier SIRET + **IBAN** (required) - A recipient SIRET - Invoice lines (description, quantity, net price) **Simplified format example**: ```json { \"number\": \"FACT-2025-001\", \"supplier\": { \"siret\": \"92019522900017\", \"iban\": \"FR7630001007941234567890185\" }, \"recipient\": {\"siret\": \"35600000000048\"}, \"lines\": [ {\"description\": \"Service\", \"quantity\": 10, \"unitPrice\": 100.00, \"vatRate\": 20.0} ] } ``` **⚠️ Required fields (simplified format)**: - `number`: Unique invoice number - `supplier.siret`: Supplier\'s SIRET (14 digits) - `supplier.iban`: Bank account IBAN (no public API to retrieve it) - `recipient.siret`: Recipient\'s SIRET - `lines[]`: At least one invoice line **What happens automatically with `auto_enrich=True`**: - ✅ Name enrichment from Chorus Pro API - ✅ Address enrichment from Business Search API (free, public) - ✅ Automatic intra-EU VAT calculation (FR + key + SIREN) - ✅ Chorus Pro ID retrieval for electronic invoicing - ✅ Net/VAT/Gross totals calculation - ✅ Date generation (today + 30-day due date) - ✅ Multi-rate VAT handling **Supported identifiers**: - SIRET (14 digits): Specific establishment ⭐ Recommended - SIREN (9 digits): Company (auto-selection of headquarters) - Special types: UE_HORS_FRANCE, RIDET, TAHITI, etc. ## Checks performed during generation ### 1. Data validation (Pydantic) - Data types (amounts as Decimal, ISO 8601 dates) - Formats (14-digit SIRET, 9-digit SIREN, IBAN) - Required fields per profile - Amount consistency (Net + VAT = Gross) ### 2. CII-compliant XML generation - Serialization according to Cross Industry Invoice XSD schema - Correct UN/CEFACT namespaces - Hierarchical structure respected - UTF-8 encoding without BOM ### 3. Schematron validation - Business rules for selected profile (MINIMUM, BASIC, EN16931, EXTENDED) - Element cardinality (required, optional, repeatable) - Calculation rules (totals, VAT, discounts) - European EN 16931 compliance ### 4. PDF/A-3 conversion (if output_format=\'pdf\') - Source PDF conversion to PDF/A-3 via Ghostscript - Factur-X XML embedding in PDF - Compliant XMP metadata - ICC sRGB color profile - Removal of forbidden elements (JavaScript, forms) ## How it works 1. **Submission**: Invoice is queued in Celery for asynchronous processing 2. **Immediate return**: You receive a `task_id` (HTTP 202 Accepted) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when the task completes: ``` callback_url=https://your-server.com/webhook ``` The webhook will POST a JSON payload with: - `event_type`: `generation.completed` or `generation.failed` - `data.task_id`: The Celery task ID - `data.content_b64` or `data.xml_content`: The generated content - `X-Webhook-Signature` header for HMAC verification See `/docs/WEBHOOKS.md` for full documentation. ## Output formats - **xml**: Generates only Factur-X XML (recommended for testing) - **pdf**: Generates PDF/A-3 with embedded XML (requires `source_pdf`) ## Factur-X profiles - **MINIMUM**: Minimal data (simplified invoice) - **BASIC**: Basic information (SMEs) - **EN16931**: European standard (recommended, compliant with directive 2014/55/EU) - **EXTENDED**: All available data (large accounts) ## What you get After successful processing (status `completed`): - **XML only**: Base64-encoded Factur-X compliant XML file - **PDF/A-3**: PDF with embedded XML, ready for sending/archiving - **Metadata**: Profile, Factur-X version, file size - **Validation**: Schematron compliance confirmation ## Validation Data is automatically validated according to detected format. On error, a 422 status is returned with invalid field details.
|
|
55
57
|
* @summary Generate a Factur-X invoice
|
|
56
|
-
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete
|
|
58
|
+
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete FacturXInvoice structure (all fields) 2. **Simplified format** (🆕 P0.1): Minimal structure with auto-enrichment Format is detected automatically!
|
|
57
59
|
* @param {APIProfile} [profile] Factur-X profile: MINIMUM, BASIC, EN16931 or EXTENDED.
|
|
58
60
|
* @param {OutputFormat} [outputFormat] Output format: \\\'xml\\\' (XML only) or \\\'pdf\\\' (Factur-X PDF with embedded XML).
|
|
59
61
|
* @param {boolean} [autoEnrich] 🆕 Enable auto-enrichment from SIRET/SIREN (simplified format only)
|
|
60
62
|
* @param {File | null} [sourcePdf]
|
|
63
|
+
* @param {string | null} [callbackUrl]
|
|
64
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
65
|
+
* @param {boolean | null} [skipBrFr]
|
|
61
66
|
* @param {*} [options] Override http request option.
|
|
62
67
|
* @throws {RequiredError}
|
|
63
68
|
*/
|
|
64
|
-
generateInvoiceApiV1ProcessingGenerateInvoicePost: async (invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
69
|
+
generateInvoiceApiV1ProcessingGenerateInvoicePost: async (invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, callbackUrl?: string | null, webhookMode?: string, skipBrFr?: boolean | null, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
65
70
|
// verify required parameter 'invoiceData' is not null or undefined
|
|
66
71
|
assertParamExists('generateInvoiceApiV1ProcessingGenerateInvoicePost', 'invoiceData', invoiceData)
|
|
67
72
|
const localVarPath = `/api/v1/processing/generate-invoice`;
|
|
@@ -101,6 +106,18 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
101
106
|
if (sourcePdf !== undefined) {
|
|
102
107
|
localVarFormParams.append('source_pdf', sourcePdf as any);
|
|
103
108
|
}
|
|
109
|
+
|
|
110
|
+
if (callbackUrl !== undefined) {
|
|
111
|
+
localVarFormParams.append('callback_url', callbackUrl as any);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (webhookMode !== undefined) {
|
|
115
|
+
localVarFormParams.append('webhook_mode', webhookMode as any);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (skipBrFr !== undefined) {
|
|
119
|
+
localVarFormParams.append('skip_br_fr', String(skipBrFr) as any);
|
|
120
|
+
}
|
|
104
121
|
localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
|
|
105
122
|
localVarHeaderParameter['Accept'] = 'application/json';
|
|
106
123
|
|
|
@@ -115,7 +132,7 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
115
132
|
};
|
|
116
133
|
},
|
|
117
134
|
/**
|
|
118
|
-
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://
|
|
135
|
+
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://factpulse.fr/api/v1/processing/generate-test-certificate\" \\ -H \"Authorization: Bearer eyJ0eXAi...\" \\ -H \"Content-Type: application/json\" \\ -d \'{ \"cn\": \"Test Client XYZ\", \"organization\": \"Client XYZ Ltd\", \"email\": \"contact@xyz.com\", \"validity_days\": 365 }\' ``` ## Use cases - PDF signature testing in development - Electronic signature POC - Training and demos - Automated integration tests ## Technical compliance Certificate generated with: - RSA key 2048 or 4096 bits - SHA-256 algorithm - Key Usage extensions: `digitalSignature`, `contentCommitment` (non-repudiation) - Extended Key Usage extensions: `codeSigning`, `emailProtection` - Validity: 1 day to 10 years (configurable) - Format: PEM (certificate and key) - Optional: PKCS#12 (.p12)
|
|
119
136
|
* @summary Generate a self-signed X.509 test certificate
|
|
120
137
|
* @param {GenerateCertificateRequest} generateCertificateRequest
|
|
121
138
|
* @param {*} [options] Override http request option.
|
|
@@ -156,7 +173,7 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
156
173
|
/**
|
|
157
174
|
* Retrieves the progress status of an invoice generation task. ## Possible states The `status` field uses the `CeleryStatus` enum with values: - **PENDING, STARTED, SUCCESS, FAILURE, RETRY** See the `CeleryStatus` schema documentation for details. ## Business result When `status=\"SUCCESS\"`, the `result` field contains: - `status`: \"SUCCESS\" or \"ERROR\" (business result) - `content_b64`: Base64 encoded content (if success) - `errorCode`, `errorMessage`, `details`: AFNOR format (if business error) ## Usage Poll this endpoint every 2-3 seconds until `status` is `SUCCESS` or `FAILURE`.
|
|
158
175
|
* @summary Get task generation status
|
|
159
|
-
* @param {string} taskId
|
|
176
|
+
* @param {string} taskId Celery task ID returned by async endpoints (UUID format)
|
|
160
177
|
* @param {*} [options] Override http request option.
|
|
161
178
|
* @throws {RequiredError}
|
|
162
179
|
*/
|
|
@@ -269,6 +286,8 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
269
286
|
* Signs an uploaded PDF asynchronously via a Celery task. **Difference with /sign-pdf**: - `/sign-pdf`: Synchronous signature (blocking until completion) - `/sign-pdf-async`: Asynchronous signature (returns immediately with task_id) **Async advantages**: - No timeout for large files - No blocking of FastAPI worker - Progress tracking via task_id - Ideal for batch processing **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **⚠️ Legal disclaimer**: Same as /sign-pdf (see that endpoint\'s documentation).
|
|
270
287
|
* @summary Sign a PDF asynchronously (Celery)
|
|
271
288
|
* @param {File} pdfFile PDF file to sign (processed asynchronously)
|
|
289
|
+
* @param {string | null} [callbackUrl]
|
|
290
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
272
291
|
* @param {string | null} [reason]
|
|
273
292
|
* @param {string | null} [location]
|
|
274
293
|
* @param {string | null} [contact]
|
|
@@ -278,7 +297,7 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
278
297
|
* @param {*} [options] Override http request option.
|
|
279
298
|
* @throws {RequiredError}
|
|
280
299
|
*/
|
|
281
|
-
signPdfAsyncApiV1ProcessingSignPdfAsyncPost: async (pdfFile: File, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
300
|
+
signPdfAsyncApiV1ProcessingSignPdfAsyncPost: async (pdfFile: File, callbackUrl?: string | null, webhookMode?: string, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
282
301
|
// verify required parameter 'pdfFile' is not null or undefined
|
|
283
302
|
assertParamExists('signPdfAsyncApiV1ProcessingSignPdfAsyncPost', 'pdfFile', pdfFile)
|
|
284
303
|
const localVarPath = `/api/v1/processing/sign-pdf-async`;
|
|
@@ -303,6 +322,14 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
303
322
|
localVarFormParams.append('pdf_file', pdfFile as any);
|
|
304
323
|
}
|
|
305
324
|
|
|
325
|
+
if (callbackUrl !== undefined) {
|
|
326
|
+
localVarFormParams.append('callback_url', callbackUrl as any);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
if (webhookMode !== undefined) {
|
|
330
|
+
localVarFormParams.append('webhook_mode', webhookMode as any);
|
|
331
|
+
}
|
|
332
|
+
|
|
306
333
|
if (reason !== undefined) {
|
|
307
334
|
localVarFormParams.append('reason', reason as any);
|
|
308
335
|
}
|
|
@@ -379,13 +406,15 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
379
406
|
};
|
|
380
407
|
},
|
|
381
408
|
/**
|
|
382
|
-
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
409
|
+
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Webhook notification (recommended):** Instead of polling, add `?callback_url=https://your-server.com/webhook` to receive automatic notification: - `event_type`: `submission.completed`, `submission.failed`, or `submission.partial` - `data.submission_result`: Complete submission result - `X-Webhook-Signature` header for HMAC verification **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
383
410
|
* @summary Submit a complete invoice (asynchronous with Celery)
|
|
384
411
|
* @param {SubmitCompleteInvoiceRequest} submitCompleteInvoiceRequest
|
|
412
|
+
* @param {string | null} [callbackUrl] Webhook URL for async notification when submission completes.
|
|
413
|
+
* @param {string} [webhookMode] Webhook content delivery: \'inline\' (base64 in payload) or \'download_url\' (temporary URL, 1h TTL)
|
|
385
414
|
* @param {*} [options] Override http request option.
|
|
386
415
|
* @throws {RequiredError}
|
|
387
416
|
*/
|
|
388
|
-
submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost: async (submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
417
|
+
submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost: async (submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, callbackUrl?: string | null, webhookMode?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
389
418
|
// verify required parameter 'submitCompleteInvoiceRequest' is not null or undefined
|
|
390
419
|
assertParamExists('submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost', 'submitCompleteInvoiceRequest', submitCompleteInvoiceRequest)
|
|
391
420
|
const localVarPath = `/api/v1/processing/invoices/submit-complete-async`;
|
|
@@ -404,6 +433,14 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
404
433
|
// http bearer authentication required
|
|
405
434
|
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
|
406
435
|
|
|
436
|
+
if (callbackUrl !== undefined) {
|
|
437
|
+
localVarQueryParameter['callback_url'] = callbackUrl;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
if (webhookMode !== undefined) {
|
|
441
|
+
localVarQueryParameter['webhook_mode'] = webhookMode;
|
|
442
|
+
}
|
|
443
|
+
|
|
407
444
|
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
408
445
|
localVarHeaderParameter['Accept'] = 'application/json';
|
|
409
446
|
|
|
@@ -423,10 +460,11 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
423
460
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
424
461
|
* @param {APIProfile | null} [profile]
|
|
425
462
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). If False, uses basic metadata validation.
|
|
463
|
+
* @param {boolean | null} [skipBrFr]
|
|
426
464
|
* @param {*} [options] Override http request option.
|
|
427
465
|
* @throws {RequiredError}
|
|
428
466
|
*/
|
|
429
|
-
validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost: async (pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
467
|
+
validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost: async (pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, skipBrFr?: boolean | null, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
430
468
|
// verify required parameter 'pdfFile' is not null or undefined
|
|
431
469
|
assertParamExists('validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost', 'pdfFile', pdfFile)
|
|
432
470
|
const localVarPath = `/api/v1/processing/validate-facturx-pdf`;
|
|
@@ -458,6 +496,10 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
458
496
|
if (useVerapdf !== undefined) {
|
|
459
497
|
localVarFormParams.append('use_verapdf', String(useVerapdf) as any);
|
|
460
498
|
}
|
|
499
|
+
|
|
500
|
+
if (skipBrFr !== undefined) {
|
|
501
|
+
localVarFormParams.append('skip_br_fr', String(skipBrFr) as any);
|
|
502
|
+
}
|
|
461
503
|
localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
|
|
462
504
|
localVarHeaderParameter['Accept'] = 'application/json';
|
|
463
505
|
|
|
@@ -472,15 +514,17 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
472
514
|
};
|
|
473
515
|
},
|
|
474
516
|
/**
|
|
475
|
-
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
517
|
+
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when validation completes: ``` callback_url=https://your-server.com/webhook webhook_mode=download_url # Optional: get download URL instead of base64 ``` The webhook will POST a JSON payload with: - `event_type`: `validation.completed` or `validation.failed` - `data.is_compliant`: Whether the PDF is Factur-X compliant - `data.detected_profile`: The detected Factur-X profile - `X-Webhook-Signature` header for HMAC verification ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
476
518
|
* @summary Validate a Factur-X PDF (asynchronous with polling)
|
|
477
519
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
478
520
|
* @param {APIProfile | null} [profile]
|
|
479
521
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). May take several seconds.
|
|
522
|
+
* @param {string | null} [callbackUrl]
|
|
523
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
480
524
|
* @param {*} [options] Override http request option.
|
|
481
525
|
* @throws {RequiredError}
|
|
482
526
|
*/
|
|
483
|
-
validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost: async (pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
527
|
+
validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost: async (pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, callbackUrl?: string | null, webhookMode?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
484
528
|
// verify required parameter 'pdfFile' is not null or undefined
|
|
485
529
|
assertParamExists('validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost', 'pdfFile', pdfFile)
|
|
486
530
|
const localVarPath = `/api/v1/processing/validate-facturx-async`;
|
|
@@ -512,6 +556,14 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
512
556
|
if (useVerapdf !== undefined) {
|
|
513
557
|
localVarFormParams.append('use_verapdf', String(useVerapdf) as any);
|
|
514
558
|
}
|
|
559
|
+
|
|
560
|
+
if (callbackUrl !== undefined) {
|
|
561
|
+
localVarFormParams.append('callback_url', callbackUrl as any);
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
if (webhookMode !== undefined) {
|
|
565
|
+
localVarFormParams.append('webhook_mode', webhookMode as any);
|
|
566
|
+
}
|
|
515
567
|
localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
|
|
516
568
|
localVarHeaderParameter['Accept'] = 'application/json';
|
|
517
569
|
|
|
@@ -574,10 +626,11 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
574
626
|
* @summary Validate an existing Factur-X XML
|
|
575
627
|
* @param {File} xmlFile Factur-X XML file to validate (.xml format).
|
|
576
628
|
* @param {APIProfile} [profile] Validation profile (MINIMUM, BASIC, EN16931, EXTENDED).
|
|
629
|
+
* @param {boolean | null} [skipBrFr]
|
|
577
630
|
* @param {*} [options] Override http request option.
|
|
578
631
|
* @throws {RequiredError}
|
|
579
632
|
*/
|
|
580
|
-
validateXmlApiV1ProcessingValidateXmlPost: async (xmlFile: File, profile?: APIProfile, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
633
|
+
validateXmlApiV1ProcessingValidateXmlPost: async (xmlFile: File, profile?: APIProfile, skipBrFr?: boolean | null, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
581
634
|
// verify required parameter 'xmlFile' is not null or undefined
|
|
582
635
|
assertParamExists('validateXmlApiV1ProcessingValidateXmlPost', 'xmlFile', xmlFile)
|
|
583
636
|
const localVarPath = `/api/v1/processing/validate-xml`;
|
|
@@ -605,6 +658,10 @@ export const InvoiceProcessingApiAxiosParamCreator = function (configuration?: C
|
|
|
605
658
|
if (profile !== undefined) {
|
|
606
659
|
localVarFormParams.append('profile', profile as any);
|
|
607
660
|
}
|
|
661
|
+
|
|
662
|
+
if (skipBrFr !== undefined) {
|
|
663
|
+
localVarFormParams.append('skip_br_fr', String(skipBrFr) as any);
|
|
664
|
+
}
|
|
608
665
|
localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
|
|
609
666
|
localVarHeaderParameter['Accept'] = 'application/json';
|
|
610
667
|
|
|
@@ -628,24 +685,27 @@ export const InvoiceProcessingApiFp = function(configuration?: Configuration) {
|
|
|
628
685
|
const localVarAxiosParamCreator = InvoiceProcessingApiAxiosParamCreator(configuration)
|
|
629
686
|
return {
|
|
630
687
|
/**
|
|
631
|
-
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A
|
|
688
|
+
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A supplier SIRET + **IBAN** (required) - A recipient SIRET - Invoice lines (description, quantity, net price) **Simplified format example**: ```json { \"number\": \"FACT-2025-001\", \"supplier\": { \"siret\": \"92019522900017\", \"iban\": \"FR7630001007941234567890185\" }, \"recipient\": {\"siret\": \"35600000000048\"}, \"lines\": [ {\"description\": \"Service\", \"quantity\": 10, \"unitPrice\": 100.00, \"vatRate\": 20.0} ] } ``` **⚠️ Required fields (simplified format)**: - `number`: Unique invoice number - `supplier.siret`: Supplier\'s SIRET (14 digits) - `supplier.iban`: Bank account IBAN (no public API to retrieve it) - `recipient.siret`: Recipient\'s SIRET - `lines[]`: At least one invoice line **What happens automatically with `auto_enrich=True`**: - ✅ Name enrichment from Chorus Pro API - ✅ Address enrichment from Business Search API (free, public) - ✅ Automatic intra-EU VAT calculation (FR + key + SIREN) - ✅ Chorus Pro ID retrieval for electronic invoicing - ✅ Net/VAT/Gross totals calculation - ✅ Date generation (today + 30-day due date) - ✅ Multi-rate VAT handling **Supported identifiers**: - SIRET (14 digits): Specific establishment ⭐ Recommended - SIREN (9 digits): Company (auto-selection of headquarters) - Special types: UE_HORS_FRANCE, RIDET, TAHITI, etc. ## Checks performed during generation ### 1. Data validation (Pydantic) - Data types (amounts as Decimal, ISO 8601 dates) - Formats (14-digit SIRET, 9-digit SIREN, IBAN) - Required fields per profile - Amount consistency (Net + VAT = Gross) ### 2. CII-compliant XML generation - Serialization according to Cross Industry Invoice XSD schema - Correct UN/CEFACT namespaces - Hierarchical structure respected - UTF-8 encoding without BOM ### 3. Schematron validation - Business rules for selected profile (MINIMUM, BASIC, EN16931, EXTENDED) - Element cardinality (required, optional, repeatable) - Calculation rules (totals, VAT, discounts) - European EN 16931 compliance ### 4. PDF/A-3 conversion (if output_format=\'pdf\') - Source PDF conversion to PDF/A-3 via Ghostscript - Factur-X XML embedding in PDF - Compliant XMP metadata - ICC sRGB color profile - Removal of forbidden elements (JavaScript, forms) ## How it works 1. **Submission**: Invoice is queued in Celery for asynchronous processing 2. **Immediate return**: You receive a `task_id` (HTTP 202 Accepted) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when the task completes: ``` callback_url=https://your-server.com/webhook ``` The webhook will POST a JSON payload with: - `event_type`: `generation.completed` or `generation.failed` - `data.task_id`: The Celery task ID - `data.content_b64` or `data.xml_content`: The generated content - `X-Webhook-Signature` header for HMAC verification See `/docs/WEBHOOKS.md` for full documentation. ## Output formats - **xml**: Generates only Factur-X XML (recommended for testing) - **pdf**: Generates PDF/A-3 with embedded XML (requires `source_pdf`) ## Factur-X profiles - **MINIMUM**: Minimal data (simplified invoice) - **BASIC**: Basic information (SMEs) - **EN16931**: European standard (recommended, compliant with directive 2014/55/EU) - **EXTENDED**: All available data (large accounts) ## What you get After successful processing (status `completed`): - **XML only**: Base64-encoded Factur-X compliant XML file - **PDF/A-3**: PDF with embedded XML, ready for sending/archiving - **Metadata**: Profile, Factur-X version, file size - **Validation**: Schematron compliance confirmation ## Validation Data is automatically validated according to detected format. On error, a 422 status is returned with invalid field details.
|
|
632
689
|
* @summary Generate a Factur-X invoice
|
|
633
|
-
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete
|
|
690
|
+
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete FacturXInvoice structure (all fields) 2. **Simplified format** (🆕 P0.1): Minimal structure with auto-enrichment Format is detected automatically!
|
|
634
691
|
* @param {APIProfile} [profile] Factur-X profile: MINIMUM, BASIC, EN16931 or EXTENDED.
|
|
635
692
|
* @param {OutputFormat} [outputFormat] Output format: \\\'xml\\\' (XML only) or \\\'pdf\\\' (Factur-X PDF with embedded XML).
|
|
636
693
|
* @param {boolean} [autoEnrich] 🆕 Enable auto-enrichment from SIRET/SIREN (simplified format only)
|
|
637
694
|
* @param {File | null} [sourcePdf]
|
|
695
|
+
* @param {string | null} [callbackUrl]
|
|
696
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
697
|
+
* @param {boolean | null} [skipBrFr]
|
|
638
698
|
* @param {*} [options] Override http request option.
|
|
639
699
|
* @throws {RequiredError}
|
|
640
700
|
*/
|
|
641
|
-
async generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TaskResponse>> {
|
|
642
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData, profile, outputFormat, autoEnrich, sourcePdf, options);
|
|
701
|
+
async generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, callbackUrl?: string | null, webhookMode?: string, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TaskResponse>> {
|
|
702
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData, profile, outputFormat, autoEnrich, sourcePdf, callbackUrl, webhookMode, skipBrFr, options);
|
|
643
703
|
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
644
704
|
const localVarOperationServerBasePath = operationServerMap['InvoiceProcessingApi.generateInvoiceApiV1ProcessingGenerateInvoicePost']?.[localVarOperationServerIndex]?.url;
|
|
645
705
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
646
706
|
},
|
|
647
707
|
/**
|
|
648
|
-
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://
|
|
708
|
+
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://factpulse.fr/api/v1/processing/generate-test-certificate\" \\ -H \"Authorization: Bearer eyJ0eXAi...\" \\ -H \"Content-Type: application/json\" \\ -d \'{ \"cn\": \"Test Client XYZ\", \"organization\": \"Client XYZ Ltd\", \"email\": \"contact@xyz.com\", \"validity_days\": 365 }\' ``` ## Use cases - PDF signature testing in development - Electronic signature POC - Training and demos - Automated integration tests ## Technical compliance Certificate generated with: - RSA key 2048 or 4096 bits - SHA-256 algorithm - Key Usage extensions: `digitalSignature`, `contentCommitment` (non-repudiation) - Extended Key Usage extensions: `codeSigning`, `emailProtection` - Validity: 1 day to 10 years (configurable) - Format: PEM (certificate and key) - Optional: PKCS#12 (.p12)
|
|
649
709
|
* @summary Generate a self-signed X.509 test certificate
|
|
650
710
|
* @param {GenerateCertificateRequest} generateCertificateRequest
|
|
651
711
|
* @param {*} [options] Override http request option.
|
|
@@ -660,7 +720,7 @@ export const InvoiceProcessingApiFp = function(configuration?: Configuration) {
|
|
|
660
720
|
/**
|
|
661
721
|
* Retrieves the progress status of an invoice generation task. ## Possible states The `status` field uses the `CeleryStatus` enum with values: - **PENDING, STARTED, SUCCESS, FAILURE, RETRY** See the `CeleryStatus` schema documentation for details. ## Business result When `status=\"SUCCESS\"`, the `result` field contains: - `status`: \"SUCCESS\" or \"ERROR\" (business result) - `content_b64`: Base64 encoded content (if success) - `errorCode`, `errorMessage`, `details`: AFNOR format (if business error) ## Usage Poll this endpoint every 2-3 seconds until `status` is `SUCCESS` or `FAILURE`.
|
|
662
722
|
* @summary Get task generation status
|
|
663
|
-
* @param {string} taskId
|
|
723
|
+
* @param {string} taskId Celery task ID returned by async endpoints (UUID format)
|
|
664
724
|
* @param {*} [options] Override http request option.
|
|
665
725
|
* @throws {RequiredError}
|
|
666
726
|
*/
|
|
@@ -693,6 +753,8 @@ export const InvoiceProcessingApiFp = function(configuration?: Configuration) {
|
|
|
693
753
|
* Signs an uploaded PDF asynchronously via a Celery task. **Difference with /sign-pdf**: - `/sign-pdf`: Synchronous signature (blocking until completion) - `/sign-pdf-async`: Asynchronous signature (returns immediately with task_id) **Async advantages**: - No timeout for large files - No blocking of FastAPI worker - Progress tracking via task_id - Ideal for batch processing **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **⚠️ Legal disclaimer**: Same as /sign-pdf (see that endpoint\'s documentation).
|
|
694
754
|
* @summary Sign a PDF asynchronously (Celery)
|
|
695
755
|
* @param {File} pdfFile PDF file to sign (processed asynchronously)
|
|
756
|
+
* @param {string | null} [callbackUrl]
|
|
757
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
696
758
|
* @param {string | null} [reason]
|
|
697
759
|
* @param {string | null} [location]
|
|
698
760
|
* @param {string | null} [contact]
|
|
@@ -702,8 +764,8 @@ export const InvoiceProcessingApiFp = function(configuration?: Configuration) {
|
|
|
702
764
|
* @param {*} [options] Override http request option.
|
|
703
765
|
* @throws {RequiredError}
|
|
704
766
|
*/
|
|
705
|
-
async signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile: File, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
|
|
706
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile, reason, location, contact, fieldName, usePadesLt, useTimestamp, options);
|
|
767
|
+
async signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile: File, callbackUrl?: string | null, webhookMode?: string, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<any>> {
|
|
768
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile, callbackUrl, webhookMode, reason, location, contact, fieldName, usePadesLt, useTimestamp, options);
|
|
707
769
|
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
708
770
|
const localVarOperationServerBasePath = operationServerMap['InvoiceProcessingApi.signPdfAsyncApiV1ProcessingSignPdfAsyncPost']?.[localVarOperationServerIndex]?.url;
|
|
709
771
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
@@ -722,14 +784,16 @@ export const InvoiceProcessingApiFp = function(configuration?: Configuration) {
|
|
|
722
784
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
723
785
|
},
|
|
724
786
|
/**
|
|
725
|
-
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
787
|
+
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Webhook notification (recommended):** Instead of polling, add `?callback_url=https://your-server.com/webhook` to receive automatic notification: - `event_type`: `submission.completed`, `submission.failed`, or `submission.partial` - `data.submission_result`: Complete submission result - `X-Webhook-Signature` header for HMAC verification **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
726
788
|
* @summary Submit a complete invoice (asynchronous with Celery)
|
|
727
789
|
* @param {SubmitCompleteInvoiceRequest} submitCompleteInvoiceRequest
|
|
790
|
+
* @param {string | null} [callbackUrl] Webhook URL for async notification when submission completes.
|
|
791
|
+
* @param {string} [webhookMode] Webhook content delivery: \'inline\' (base64 in payload) or \'download_url\' (temporary URL, 1h TTL)
|
|
728
792
|
* @param {*} [options] Override http request option.
|
|
729
793
|
* @throws {RequiredError}
|
|
730
794
|
*/
|
|
731
|
-
async submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TaskResponse>> {
|
|
732
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest, options);
|
|
795
|
+
async submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, callbackUrl?: string | null, webhookMode?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TaskResponse>> {
|
|
796
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest, callbackUrl, webhookMode, options);
|
|
733
797
|
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
734
798
|
const localVarOperationServerBasePath = operationServerMap['InvoiceProcessingApi.submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost']?.[localVarOperationServerIndex]?.url;
|
|
735
799
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
@@ -740,26 +804,29 @@ export const InvoiceProcessingApiFp = function(configuration?: Configuration) {
|
|
|
740
804
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
741
805
|
* @param {APIProfile | null} [profile]
|
|
742
806
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). If False, uses basic metadata validation.
|
|
807
|
+
* @param {boolean | null} [skipBrFr]
|
|
743
808
|
* @param {*} [options] Override http request option.
|
|
744
809
|
* @throws {RequiredError}
|
|
745
810
|
*/
|
|
746
|
-
async validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PDFValidationResultAPI>> {
|
|
747
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile, profile, useVerapdf, options);
|
|
811
|
+
async validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PDFValidationResultAPI>> {
|
|
812
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile, profile, useVerapdf, skipBrFr, options);
|
|
748
813
|
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
749
814
|
const localVarOperationServerBasePath = operationServerMap['InvoiceProcessingApi.validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost']?.[localVarOperationServerIndex]?.url;
|
|
750
815
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
751
816
|
},
|
|
752
817
|
/**
|
|
753
|
-
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
818
|
+
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when validation completes: ``` callback_url=https://your-server.com/webhook webhook_mode=download_url # Optional: get download URL instead of base64 ``` The webhook will POST a JSON payload with: - `event_type`: `validation.completed` or `validation.failed` - `data.is_compliant`: Whether the PDF is Factur-X compliant - `data.detected_profile`: The detected Factur-X profile - `X-Webhook-Signature` header for HMAC verification ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
754
819
|
* @summary Validate a Factur-X PDF (asynchronous with polling)
|
|
755
820
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
756
821
|
* @param {APIProfile | null} [profile]
|
|
757
822
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). May take several seconds.
|
|
823
|
+
* @param {string | null} [callbackUrl]
|
|
824
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
758
825
|
* @param {*} [options] Override http request option.
|
|
759
826
|
* @throws {RequiredError}
|
|
760
827
|
*/
|
|
761
|
-
async validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TaskResponse>> {
|
|
762
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile, profile, useVerapdf, options);
|
|
828
|
+
async validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, callbackUrl?: string | null, webhookMode?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TaskResponse>> {
|
|
829
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile, profile, useVerapdf, callbackUrl, webhookMode, options);
|
|
763
830
|
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
764
831
|
const localVarOperationServerBasePath = operationServerMap['InvoiceProcessingApi.validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost']?.[localVarOperationServerIndex]?.url;
|
|
765
832
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
@@ -782,11 +849,12 @@ export const InvoiceProcessingApiFp = function(configuration?: Configuration) {
|
|
|
782
849
|
* @summary Validate an existing Factur-X XML
|
|
783
850
|
* @param {File} xmlFile Factur-X XML file to validate (.xml format).
|
|
784
851
|
* @param {APIProfile} [profile] Validation profile (MINIMUM, BASIC, EN16931, EXTENDED).
|
|
852
|
+
* @param {boolean | null} [skipBrFr]
|
|
785
853
|
* @param {*} [options] Override http request option.
|
|
786
854
|
* @throws {RequiredError}
|
|
787
855
|
*/
|
|
788
|
-
async validateXmlApiV1ProcessingValidateXmlPost(xmlFile: File, profile?: APIProfile, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ValidationSuccessResponse>> {
|
|
789
|
-
const localVarAxiosArgs = await localVarAxiosParamCreator.validateXmlApiV1ProcessingValidateXmlPost(xmlFile, profile, options);
|
|
856
|
+
async validateXmlApiV1ProcessingValidateXmlPost(xmlFile: File, profile?: APIProfile, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ValidationSuccessResponse>> {
|
|
857
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.validateXmlApiV1ProcessingValidateXmlPost(xmlFile, profile, skipBrFr, options);
|
|
790
858
|
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
791
859
|
const localVarOperationServerBasePath = operationServerMap['InvoiceProcessingApi.validateXmlApiV1ProcessingValidateXmlPost']?.[localVarOperationServerIndex]?.url;
|
|
792
860
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
@@ -801,21 +869,24 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
801
869
|
const localVarFp = InvoiceProcessingApiFp(configuration)
|
|
802
870
|
return {
|
|
803
871
|
/**
|
|
804
|
-
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A
|
|
872
|
+
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A supplier SIRET + **IBAN** (required) - A recipient SIRET - Invoice lines (description, quantity, net price) **Simplified format example**: ```json { \"number\": \"FACT-2025-001\", \"supplier\": { \"siret\": \"92019522900017\", \"iban\": \"FR7630001007941234567890185\" }, \"recipient\": {\"siret\": \"35600000000048\"}, \"lines\": [ {\"description\": \"Service\", \"quantity\": 10, \"unitPrice\": 100.00, \"vatRate\": 20.0} ] } ``` **⚠️ Required fields (simplified format)**: - `number`: Unique invoice number - `supplier.siret`: Supplier\'s SIRET (14 digits) - `supplier.iban`: Bank account IBAN (no public API to retrieve it) - `recipient.siret`: Recipient\'s SIRET - `lines[]`: At least one invoice line **What happens automatically with `auto_enrich=True`**: - ✅ Name enrichment from Chorus Pro API - ✅ Address enrichment from Business Search API (free, public) - ✅ Automatic intra-EU VAT calculation (FR + key + SIREN) - ✅ Chorus Pro ID retrieval for electronic invoicing - ✅ Net/VAT/Gross totals calculation - ✅ Date generation (today + 30-day due date) - ✅ Multi-rate VAT handling **Supported identifiers**: - SIRET (14 digits): Specific establishment ⭐ Recommended - SIREN (9 digits): Company (auto-selection of headquarters) - Special types: UE_HORS_FRANCE, RIDET, TAHITI, etc. ## Checks performed during generation ### 1. Data validation (Pydantic) - Data types (amounts as Decimal, ISO 8601 dates) - Formats (14-digit SIRET, 9-digit SIREN, IBAN) - Required fields per profile - Amount consistency (Net + VAT = Gross) ### 2. CII-compliant XML generation - Serialization according to Cross Industry Invoice XSD schema - Correct UN/CEFACT namespaces - Hierarchical structure respected - UTF-8 encoding without BOM ### 3. Schematron validation - Business rules for selected profile (MINIMUM, BASIC, EN16931, EXTENDED) - Element cardinality (required, optional, repeatable) - Calculation rules (totals, VAT, discounts) - European EN 16931 compliance ### 4. PDF/A-3 conversion (if output_format=\'pdf\') - Source PDF conversion to PDF/A-3 via Ghostscript - Factur-X XML embedding in PDF - Compliant XMP metadata - ICC sRGB color profile - Removal of forbidden elements (JavaScript, forms) ## How it works 1. **Submission**: Invoice is queued in Celery for asynchronous processing 2. **Immediate return**: You receive a `task_id` (HTTP 202 Accepted) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when the task completes: ``` callback_url=https://your-server.com/webhook ``` The webhook will POST a JSON payload with: - `event_type`: `generation.completed` or `generation.failed` - `data.task_id`: The Celery task ID - `data.content_b64` or `data.xml_content`: The generated content - `X-Webhook-Signature` header for HMAC verification See `/docs/WEBHOOKS.md` for full documentation. ## Output formats - **xml**: Generates only Factur-X XML (recommended for testing) - **pdf**: Generates PDF/A-3 with embedded XML (requires `source_pdf`) ## Factur-X profiles - **MINIMUM**: Minimal data (simplified invoice) - **BASIC**: Basic information (SMEs) - **EN16931**: European standard (recommended, compliant with directive 2014/55/EU) - **EXTENDED**: All available data (large accounts) ## What you get After successful processing (status `completed`): - **XML only**: Base64-encoded Factur-X compliant XML file - **PDF/A-3**: PDF with embedded XML, ready for sending/archiving - **Metadata**: Profile, Factur-X version, file size - **Validation**: Schematron compliance confirmation ## Validation Data is automatically validated according to detected format. On error, a 422 status is returned with invalid field details.
|
|
805
873
|
* @summary Generate a Factur-X invoice
|
|
806
|
-
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete
|
|
874
|
+
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete FacturXInvoice structure (all fields) 2. **Simplified format** (🆕 P0.1): Minimal structure with auto-enrichment Format is detected automatically!
|
|
807
875
|
* @param {APIProfile} [profile] Factur-X profile: MINIMUM, BASIC, EN16931 or EXTENDED.
|
|
808
876
|
* @param {OutputFormat} [outputFormat] Output format: \\\'xml\\\' (XML only) or \\\'pdf\\\' (Factur-X PDF with embedded XML).
|
|
809
877
|
* @param {boolean} [autoEnrich] 🆕 Enable auto-enrichment from SIRET/SIREN (simplified format only)
|
|
810
878
|
* @param {File | null} [sourcePdf]
|
|
879
|
+
* @param {string | null} [callbackUrl]
|
|
880
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
881
|
+
* @param {boolean | null} [skipBrFr]
|
|
811
882
|
* @param {*} [options] Override http request option.
|
|
812
883
|
* @throws {RequiredError}
|
|
813
884
|
*/
|
|
814
|
-
generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, options?: RawAxiosRequestConfig): AxiosPromise<TaskResponse> {
|
|
815
|
-
return localVarFp.generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData, profile, outputFormat, autoEnrich, sourcePdf, options).then((request) => request(axios, basePath));
|
|
885
|
+
generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, callbackUrl?: string | null, webhookMode?: string, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig): AxiosPromise<TaskResponse> {
|
|
886
|
+
return localVarFp.generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData, profile, outputFormat, autoEnrich, sourcePdf, callbackUrl, webhookMode, skipBrFr, options).then((request) => request(axios, basePath));
|
|
816
887
|
},
|
|
817
888
|
/**
|
|
818
|
-
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://
|
|
889
|
+
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://factpulse.fr/api/v1/processing/generate-test-certificate\" \\ -H \"Authorization: Bearer eyJ0eXAi...\" \\ -H \"Content-Type: application/json\" \\ -d \'{ \"cn\": \"Test Client XYZ\", \"organization\": \"Client XYZ Ltd\", \"email\": \"contact@xyz.com\", \"validity_days\": 365 }\' ``` ## Use cases - PDF signature testing in development - Electronic signature POC - Training and demos - Automated integration tests ## Technical compliance Certificate generated with: - RSA key 2048 or 4096 bits - SHA-256 algorithm - Key Usage extensions: `digitalSignature`, `contentCommitment` (non-repudiation) - Extended Key Usage extensions: `codeSigning`, `emailProtection` - Validity: 1 day to 10 years (configurable) - Format: PEM (certificate and key) - Optional: PKCS#12 (.p12)
|
|
819
890
|
* @summary Generate a self-signed X.509 test certificate
|
|
820
891
|
* @param {GenerateCertificateRequest} generateCertificateRequest
|
|
821
892
|
* @param {*} [options] Override http request option.
|
|
@@ -827,7 +898,7 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
827
898
|
/**
|
|
828
899
|
* Retrieves the progress status of an invoice generation task. ## Possible states The `status` field uses the `CeleryStatus` enum with values: - **PENDING, STARTED, SUCCESS, FAILURE, RETRY** See the `CeleryStatus` schema documentation for details. ## Business result When `status=\"SUCCESS\"`, the `result` field contains: - `status`: \"SUCCESS\" or \"ERROR\" (business result) - `content_b64`: Base64 encoded content (if success) - `errorCode`, `errorMessage`, `details`: AFNOR format (if business error) ## Usage Poll this endpoint every 2-3 seconds until `status` is `SUCCESS` or `FAILURE`.
|
|
829
900
|
* @summary Get task generation status
|
|
830
|
-
* @param {string} taskId
|
|
901
|
+
* @param {string} taskId Celery task ID returned by async endpoints (UUID format)
|
|
831
902
|
* @param {*} [options] Override http request option.
|
|
832
903
|
* @throws {RequiredError}
|
|
833
904
|
*/
|
|
@@ -854,6 +925,8 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
854
925
|
* Signs an uploaded PDF asynchronously via a Celery task. **Difference with /sign-pdf**: - `/sign-pdf`: Synchronous signature (blocking until completion) - `/sign-pdf-async`: Asynchronous signature (returns immediately with task_id) **Async advantages**: - No timeout for large files - No blocking of FastAPI worker - Progress tracking via task_id - Ideal for batch processing **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **⚠️ Legal disclaimer**: Same as /sign-pdf (see that endpoint\'s documentation).
|
|
855
926
|
* @summary Sign a PDF asynchronously (Celery)
|
|
856
927
|
* @param {File} pdfFile PDF file to sign (processed asynchronously)
|
|
928
|
+
* @param {string | null} [callbackUrl]
|
|
929
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
857
930
|
* @param {string | null} [reason]
|
|
858
931
|
* @param {string | null} [location]
|
|
859
932
|
* @param {string | null} [contact]
|
|
@@ -863,8 +936,8 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
863
936
|
* @param {*} [options] Override http request option.
|
|
864
937
|
* @throws {RequiredError}
|
|
865
938
|
*/
|
|
866
|
-
signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile: File, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<any> {
|
|
867
|
-
return localVarFp.signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile, reason, location, contact, fieldName, usePadesLt, useTimestamp, options).then((request) => request(axios, basePath));
|
|
939
|
+
signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile: File, callbackUrl?: string | null, webhookMode?: string, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<any> {
|
|
940
|
+
return localVarFp.signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile, callbackUrl, webhookMode, reason, location, contact, fieldName, usePadesLt, useTimestamp, options).then((request) => request(axios, basePath));
|
|
868
941
|
},
|
|
869
942
|
/**
|
|
870
943
|
* Unified endpoint to submit a complete invoice to different destinations. **Automated workflow:** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Destination credentials - 2 modes available:** **Mode 1 - Retrieval via JWT (recommended):** - Credentials are retrieved automatically via the JWT `client_uid` - Do not provide the `credentials` field in `destination` - Zero-trust architecture: no secrets in the payload - Example: `\"destination\": {\"type\": \"chorus_pro\"}` **Mode 2 - Credentials in the payload:** - Provide credentials directly in the payload - Useful for tests or third-party integrations - Example: `\"destination\": {\"type\": \"chorus_pro\", \"credentials\": {...}}` **Electronic signature (optional) - 2 modes available:** **Mode 1 - Stored certificate (recommended):** - Certificate is retrieved automatically via the JWT `client_uid` - No key to provide in the payload - PAdES-B-LT signature with timestamp (eIDAS compliant) - Example: `\"signature\": {\"reason\": \"Factur-X compliance\"}` **Mode 2 - Keys in the payload (for tests):** - Provide `key_pem` and `cert_pem` directly - PEM format accepted: raw or base64 - Useful for tests or special cases without stored certificate - Example: `\"signature\": {\"key_pem\": \"-----BEGIN...\", \"cert_pem\": \"-----BEGIN...\"}` If `key_pem` and `cert_pem` are provided → Mode 2 Otherwise → Mode 1 (certificate retrieved via `client_uid`)
|
|
@@ -877,14 +950,16 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
877
950
|
return localVarFp.submitCompleteInvoiceApiV1ProcessingInvoicesSubmitCompletePost(submitCompleteInvoiceRequest, options).then((request) => request(axios, basePath));
|
|
878
951
|
},
|
|
879
952
|
/**
|
|
880
|
-
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
953
|
+
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Webhook notification (recommended):** Instead of polling, add `?callback_url=https://your-server.com/webhook` to receive automatic notification: - `event_type`: `submission.completed`, `submission.failed`, or `submission.partial` - `data.submission_result`: Complete submission result - `X-Webhook-Signature` header for HMAC verification **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
881
954
|
* @summary Submit a complete invoice (asynchronous with Celery)
|
|
882
955
|
* @param {SubmitCompleteInvoiceRequest} submitCompleteInvoiceRequest
|
|
956
|
+
* @param {string | null} [callbackUrl] Webhook URL for async notification when submission completes.
|
|
957
|
+
* @param {string} [webhookMode] Webhook content delivery: \'inline\' (base64 in payload) or \'download_url\' (temporary URL, 1h TTL)
|
|
883
958
|
* @param {*} [options] Override http request option.
|
|
884
959
|
* @throws {RequiredError}
|
|
885
960
|
*/
|
|
886
|
-
submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, options?: RawAxiosRequestConfig): AxiosPromise<TaskResponse> {
|
|
887
|
-
return localVarFp.submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest, options).then((request) => request(axios, basePath));
|
|
961
|
+
submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, callbackUrl?: string | null, webhookMode?: string, options?: RawAxiosRequestConfig): AxiosPromise<TaskResponse> {
|
|
962
|
+
return localVarFp.submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest, callbackUrl, webhookMode, options).then((request) => request(axios, basePath));
|
|
888
963
|
},
|
|
889
964
|
/**
|
|
890
965
|
* Validates a complete Factur-X PDF according to European and French standards. ## Applied validation standards - **EN 16931**: European semantic standard (directive 2014/55/EU) - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Factur-X / ZUGFeRD**: Franco-German specification - **Schematron**: XML business rules validation - **eIDAS**: European regulation on electronic identification (signatures) ## Checks performed ### 1. Factur-X XML extraction and validation **Checks performed:** - Presence of embedded XML file (`factur-x.xml` or `zugferd-invoice.xml`) - Automatic profile detection (MINIMUM, BASIC, EN16931, EXTENDED) - XML parsing with UTF-8 validation - GuidelineSpecifiedDocumentContextParameter/ID extraction **Schematron validation:** - Business rules for detected profile (MINIMUM: 45 rules, EN16931: 178 rules) - Cardinality of required elements - Calculation consistency (net, VAT, gross amounts, discounts) - Identifier formats (SIRET, intra-EU VAT, IBAN) - Standardized codes (ISO country codes, UN/ECE units, VAT codes) **What is verified:** - ✅ XML structure conforming to Cross Industry Invoice XSD - ✅ Correct UN/CEFACT namespace - ✅ European business rules (BR-xx) - ✅ French-specific rules (FR-xx) ### 2. PDF/A-3 compliance **Basic validation (metadata):** - Presence of `/Type` field set to `Catalog` - Metadata `pdfaid:part` = 3 (PDF/A-3) - Metadata `pdfaid:conformance` = B or U - PDF version >= 1.4 **Strict VeraPDF validation (if use_verapdf=True):** - 146+ ISO 19005-3 rules (PDF/A-3B) - Absence of forbidden content (JavaScript, multimedia, dynamic forms) - Correctly embedded fonts and subsets - Compliant color spaces (sRGB, DeviceGray) - Valid file structure (cross-reference table) - XMP metadata conforming to ISO 16684-1 **What is verified:** - ✅ Long-term archivable file (20+ years) - ✅ Guaranteed readability (embedded fonts) - ✅ Legal compliance (France, Germany, EU) ### 3. XMP metadata (eXtensible Metadata Platform) **Checks performed:** - Presence of `<?xpacket>` block with XMP metadata - `fx:` namespace for Factur-X: `urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#` - Required Factur-X fields: - `fx:ConformanceLevel`: Profile (MINIMUM, BASIC, EN16931, EXTENDED) - `fx:DocumentFileName`: Embedded XML name - `fx:DocumentType`: \"INVOICE\" - `fx:Version`: Factur-X version (1.0.07) **What is verified:** - ✅ Metadata conforming to ISO 16684-1 - ✅ Correct declared Factur-X profile - ✅ Supported Factur-X version ### 4. Electronic signatures **Detection and analysis:** - Presence of `/Sig` dictionaries in PDF - Signature type: PAdES (PDF Advanced Electronic Signature) - Information extraction: - Signer name (`/Name`) - Signing date (`/M`) - Signature reason (`/Reason`) - Signature location (`/Location`) - Signature type (approval, certification) **What is verified:** - ✅ Presence of signatures or seals - ✅ Number of signatures (single or multi-signature) - ℹ️ No cryptographic verification (requires certificates) ## Parameters - **pdf_file** (required): The Factur-X PDF file to validate - **profile** (optional): Expected profile. If absent, auto-detected from XML - **use_verapdf** (optional, default=false): Enable strict PDF/A validation with VeraPDF - `false`: Fast metadata validation (2-3 seconds) - `true`: Complete ISO 19005-3 validation (15-30 seconds, **recommended for production**) ## Detailed response ```json { \"isCompliant\": true, \"xml\": { \"present\": true, \"compliant\": true, \"profile\": \"EN16931\", \"errors\": [] }, \"pdfa\": { \"compliant\": true, \"version\": \"PDF/A-3B\", \"method\": \"verapdf\", \"errors\": [] }, \"xmp\": { \"present\": true, \"compliant\": true, \"metadata\": {...} }, \"signatures\": { \"present\": true, \"count\": 1, \"details\": [...] } } ``` ## Use cases - **Before sending**: Validate generated invoice before transmission to client - **On reception**: Verify compliance of invoice received from supplier - **Audit**: Check quality of invoice batches - **Legal compliance**: Ensure B2B/B2G obligations are met in France - **Debugging**: Identify issues in generation process - **Archiving**: Guarantee long-term validity (PDF/A-3) ## Processing time - Basic validation: 2-3 seconds - VeraPDF validation: 15-30 seconds (depends on PDF size)
|
|
@@ -892,23 +967,26 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
892
967
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
893
968
|
* @param {APIProfile | null} [profile]
|
|
894
969
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). If False, uses basic metadata validation.
|
|
970
|
+
* @param {boolean | null} [skipBrFr]
|
|
895
971
|
* @param {*} [options] Override http request option.
|
|
896
972
|
* @throws {RequiredError}
|
|
897
973
|
*/
|
|
898
|
-
validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<PDFValidationResultAPI> {
|
|
899
|
-
return localVarFp.validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile, profile, useVerapdf, options).then((request) => request(axios, basePath));
|
|
974
|
+
validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig): AxiosPromise<PDFValidationResultAPI> {
|
|
975
|
+
return localVarFp.validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile, profile, useVerapdf, skipBrFr, options).then((request) => request(axios, basePath));
|
|
900
976
|
},
|
|
901
977
|
/**
|
|
902
|
-
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
978
|
+
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when validation completes: ``` callback_url=https://your-server.com/webhook webhook_mode=download_url # Optional: get download URL instead of base64 ``` The webhook will POST a JSON payload with: - `event_type`: `validation.completed` or `validation.failed` - `data.is_compliant`: Whether the PDF is Factur-X compliant - `data.detected_profile`: The detected Factur-X profile - `X-Webhook-Signature` header for HMAC verification ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
903
979
|
* @summary Validate a Factur-X PDF (asynchronous with polling)
|
|
904
980
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
905
981
|
* @param {APIProfile | null} [profile]
|
|
906
982
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). May take several seconds.
|
|
983
|
+
* @param {string | null} [callbackUrl]
|
|
984
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
907
985
|
* @param {*} [options] Override http request option.
|
|
908
986
|
* @throws {RequiredError}
|
|
909
987
|
*/
|
|
910
|
-
validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<TaskResponse> {
|
|
911
|
-
return localVarFp.validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile, profile, useVerapdf, options).then((request) => request(axios, basePath));
|
|
988
|
+
validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, callbackUrl?: string | null, webhookMode?: string, options?: RawAxiosRequestConfig): AxiosPromise<TaskResponse> {
|
|
989
|
+
return localVarFp.validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile, profile, useVerapdf, callbackUrl, webhookMode, options).then((request) => request(axios, basePath));
|
|
912
990
|
},
|
|
913
991
|
/**
|
|
914
992
|
* Validates electronic signatures present in an uploaded PDF. **Verifications performed**: - Presence of signatures - Document integrity (not modified since signing) - Certificate validity - Chain of trust (if available) - Presence of timestamp (PAdES-B-T) - Validation data (PAdES-B-LT) **Supported standards**: PAdES-B-B, PAdES-B-T, PAdES-B-LT, ISO 32000-2. **⚠️ Note**: This validation is technical (cryptographic integrity). Legal validity depends on the eIDAS level of the certificate (SES/AdES/QES) and the context of use.
|
|
@@ -925,11 +1003,12 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
925
1003
|
* @summary Validate an existing Factur-X XML
|
|
926
1004
|
* @param {File} xmlFile Factur-X XML file to validate (.xml format).
|
|
927
1005
|
* @param {APIProfile} [profile] Validation profile (MINIMUM, BASIC, EN16931, EXTENDED).
|
|
1006
|
+
* @param {boolean | null} [skipBrFr]
|
|
928
1007
|
* @param {*} [options] Override http request option.
|
|
929
1008
|
* @throws {RequiredError}
|
|
930
1009
|
*/
|
|
931
|
-
validateXmlApiV1ProcessingValidateXmlPost(xmlFile: File, profile?: APIProfile, options?: RawAxiosRequestConfig): AxiosPromise<ValidationSuccessResponse> {
|
|
932
|
-
return localVarFp.validateXmlApiV1ProcessingValidateXmlPost(xmlFile, profile, options).then((request) => request(axios, basePath));
|
|
1010
|
+
validateXmlApiV1ProcessingValidateXmlPost(xmlFile: File, profile?: APIProfile, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig): AxiosPromise<ValidationSuccessResponse> {
|
|
1011
|
+
return localVarFp.validateXmlApiV1ProcessingValidateXmlPost(xmlFile, profile, skipBrFr, options).then((request) => request(axios, basePath));
|
|
933
1012
|
},
|
|
934
1013
|
};
|
|
935
1014
|
};
|
|
@@ -939,22 +1018,25 @@ export const InvoiceProcessingApiFactory = function (configuration?: Configurati
|
|
|
939
1018
|
*/
|
|
940
1019
|
export class InvoiceProcessingApi extends BaseAPI {
|
|
941
1020
|
/**
|
|
942
|
-
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A
|
|
1021
|
+
* Generates an electronic invoice in Factur-X format compliant with European standards. ## Applied Standards - **Factur-X** (France): FNFE-MPE standard (Forum National de la Facture Électronique) - **ZUGFeRD** (Germany): German format compatible with Factur-X - **EN 16931**: European semantic standard for electronic invoicing - **ISO 19005-3** (PDF/A-3): Long-term electronic archiving - **Cross Industry Invoice (CII)**: UN/CEFACT XML syntax ## 🆕 New: Simplified format with auto-enrichment (P0.1) You can now create an invoice by providing only: - An invoice number - A supplier SIRET + **IBAN** (required) - A recipient SIRET - Invoice lines (description, quantity, net price) **Simplified format example**: ```json { \"number\": \"FACT-2025-001\", \"supplier\": { \"siret\": \"92019522900017\", \"iban\": \"FR7630001007941234567890185\" }, \"recipient\": {\"siret\": \"35600000000048\"}, \"lines\": [ {\"description\": \"Service\", \"quantity\": 10, \"unitPrice\": 100.00, \"vatRate\": 20.0} ] } ``` **⚠️ Required fields (simplified format)**: - `number`: Unique invoice number - `supplier.siret`: Supplier\'s SIRET (14 digits) - `supplier.iban`: Bank account IBAN (no public API to retrieve it) - `recipient.siret`: Recipient\'s SIRET - `lines[]`: At least one invoice line **What happens automatically with `auto_enrich=True`**: - ✅ Name enrichment from Chorus Pro API - ✅ Address enrichment from Business Search API (free, public) - ✅ Automatic intra-EU VAT calculation (FR + key + SIREN) - ✅ Chorus Pro ID retrieval for electronic invoicing - ✅ Net/VAT/Gross totals calculation - ✅ Date generation (today + 30-day due date) - ✅ Multi-rate VAT handling **Supported identifiers**: - SIRET (14 digits): Specific establishment ⭐ Recommended - SIREN (9 digits): Company (auto-selection of headquarters) - Special types: UE_HORS_FRANCE, RIDET, TAHITI, etc. ## Checks performed during generation ### 1. Data validation (Pydantic) - Data types (amounts as Decimal, ISO 8601 dates) - Formats (14-digit SIRET, 9-digit SIREN, IBAN) - Required fields per profile - Amount consistency (Net + VAT = Gross) ### 2. CII-compliant XML generation - Serialization according to Cross Industry Invoice XSD schema - Correct UN/CEFACT namespaces - Hierarchical structure respected - UTF-8 encoding without BOM ### 3. Schematron validation - Business rules for selected profile (MINIMUM, BASIC, EN16931, EXTENDED) - Element cardinality (required, optional, repeatable) - Calculation rules (totals, VAT, discounts) - European EN 16931 compliance ### 4. PDF/A-3 conversion (if output_format=\'pdf\') - Source PDF conversion to PDF/A-3 via Ghostscript - Factur-X XML embedding in PDF - Compliant XMP metadata - ICC sRGB color profile - Removal of forbidden elements (JavaScript, forms) ## How it works 1. **Submission**: Invoice is queued in Celery for asynchronous processing 2. **Immediate return**: You receive a `task_id` (HTTP 202 Accepted) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when the task completes: ``` callback_url=https://your-server.com/webhook ``` The webhook will POST a JSON payload with: - `event_type`: `generation.completed` or `generation.failed` - `data.task_id`: The Celery task ID - `data.content_b64` or `data.xml_content`: The generated content - `X-Webhook-Signature` header for HMAC verification See `/docs/WEBHOOKS.md` for full documentation. ## Output formats - **xml**: Generates only Factur-X XML (recommended for testing) - **pdf**: Generates PDF/A-3 with embedded XML (requires `source_pdf`) ## Factur-X profiles - **MINIMUM**: Minimal data (simplified invoice) - **BASIC**: Basic information (SMEs) - **EN16931**: European standard (recommended, compliant with directive 2014/55/EU) - **EXTENDED**: All available data (large accounts) ## What you get After successful processing (status `completed`): - **XML only**: Base64-encoded Factur-X compliant XML file - **PDF/A-3**: PDF with embedded XML, ready for sending/archiving - **Metadata**: Profile, Factur-X version, file size - **Validation**: Schematron compliance confirmation ## Validation Data is automatically validated according to detected format. On error, a 422 status is returned with invalid field details.
|
|
943
1022
|
* @summary Generate a Factur-X invoice
|
|
944
|
-
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete
|
|
1023
|
+
* @param {string} invoiceData Invoice data in JSON format. Two formats accepted: 1. **Classic format**: Complete FacturXInvoice structure (all fields) 2. **Simplified format** (🆕 P0.1): Minimal structure with auto-enrichment Format is detected automatically!
|
|
945
1024
|
* @param {APIProfile} [profile] Factur-X profile: MINIMUM, BASIC, EN16931 or EXTENDED.
|
|
946
1025
|
* @param {OutputFormat} [outputFormat] Output format: \\\'xml\\\' (XML only) or \\\'pdf\\\' (Factur-X PDF with embedded XML).
|
|
947
1026
|
* @param {boolean} [autoEnrich] 🆕 Enable auto-enrichment from SIRET/SIREN (simplified format only)
|
|
948
1027
|
* @param {File | null} [sourcePdf]
|
|
1028
|
+
* @param {string | null} [callbackUrl]
|
|
1029
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
1030
|
+
* @param {boolean | null} [skipBrFr]
|
|
949
1031
|
* @param {*} [options] Override http request option.
|
|
950
1032
|
* @throws {RequiredError}
|
|
951
1033
|
*/
|
|
952
|
-
public generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, options?: RawAxiosRequestConfig) {
|
|
953
|
-
return InvoiceProcessingApiFp(this.configuration).generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData, profile, outputFormat, autoEnrich, sourcePdf, options).then((request) => request(this.axios, this.basePath));
|
|
1034
|
+
public generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData: string, profile?: APIProfile, outputFormat?: OutputFormat, autoEnrich?: boolean, sourcePdf?: File | null, callbackUrl?: string | null, webhookMode?: string, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig) {
|
|
1035
|
+
return InvoiceProcessingApiFp(this.configuration).generateInvoiceApiV1ProcessingGenerateInvoicePost(invoiceData, profile, outputFormat, autoEnrich, sourcePdf, callbackUrl, webhookMode, skipBrFr, options).then((request) => request(this.axios, this.basePath));
|
|
954
1036
|
}
|
|
955
1037
|
|
|
956
1038
|
/**
|
|
957
|
-
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://
|
|
1039
|
+
* Generates a self-signed X.509 certificate for PDF electronic signature testing. **⚠️ WARNING: TEST certificate only!** This certificate is: - ✅ Suitable for testing and development - ✅ Compatible with PDF signing (PAdES) - ✅ Compliant with eIDAS **SES** level (Simple Electronic Signature) - ❌ **NEVER usable in production** - ❌ **Not recognized** by browsers and PDF readers - ❌ **No legal value** ## eIDAS levels - **SES** (Simple): Self-signed certificate ← Generated by this endpoint - **AdES** (Advanced): Commercial CA certificate (Let\'s Encrypt, etc.) - **QES** (Qualified): Qualified certificate from QTSP (CertEurope, Universign, etc.) ## Usage Once generated, the certificate can be: 1. **Saved in Django** (recommended): - Django Admin > Signing Certificates - Upload `certificate_pem` and `private_key_pem` 2. **Used directly**: - Sign a PDF with `/sign-pdf` - The certificate will be automatically used ## Example call ```bash curl -X POST \"https://factpulse.fr/api/v1/processing/generate-test-certificate\" \\ -H \"Authorization: Bearer eyJ0eXAi...\" \\ -H \"Content-Type: application/json\" \\ -d \'{ \"cn\": \"Test Client XYZ\", \"organization\": \"Client XYZ Ltd\", \"email\": \"contact@xyz.com\", \"validity_days\": 365 }\' ``` ## Use cases - PDF signature testing in development - Electronic signature POC - Training and demos - Automated integration tests ## Technical compliance Certificate generated with: - RSA key 2048 or 4096 bits - SHA-256 algorithm - Key Usage extensions: `digitalSignature`, `contentCommitment` (non-repudiation) - Extended Key Usage extensions: `codeSigning`, `emailProtection` - Validity: 1 day to 10 years (configurable) - Format: PEM (certificate and key) - Optional: PKCS#12 (.p12)
|
|
958
1040
|
* @summary Generate a self-signed X.509 test certificate
|
|
959
1041
|
* @param {GenerateCertificateRequest} generateCertificateRequest
|
|
960
1042
|
* @param {*} [options] Override http request option.
|
|
@@ -967,7 +1049,7 @@ export class InvoiceProcessingApi extends BaseAPI {
|
|
|
967
1049
|
/**
|
|
968
1050
|
* Retrieves the progress status of an invoice generation task. ## Possible states The `status` field uses the `CeleryStatus` enum with values: - **PENDING, STARTED, SUCCESS, FAILURE, RETRY** See the `CeleryStatus` schema documentation for details. ## Business result When `status=\"SUCCESS\"`, the `result` field contains: - `status`: \"SUCCESS\" or \"ERROR\" (business result) - `content_b64`: Base64 encoded content (if success) - `errorCode`, `errorMessage`, `details`: AFNOR format (if business error) ## Usage Poll this endpoint every 2-3 seconds until `status` is `SUCCESS` or `FAILURE`.
|
|
969
1051
|
* @summary Get task generation status
|
|
970
|
-
* @param {string} taskId
|
|
1052
|
+
* @param {string} taskId Celery task ID returned by async endpoints (UUID format)
|
|
971
1053
|
* @param {*} [options] Override http request option.
|
|
972
1054
|
* @throws {RequiredError}
|
|
973
1055
|
*/
|
|
@@ -996,6 +1078,8 @@ export class InvoiceProcessingApi extends BaseAPI {
|
|
|
996
1078
|
* Signs an uploaded PDF asynchronously via a Celery task. **Difference with /sign-pdf**: - `/sign-pdf`: Synchronous signature (blocking until completion) - `/sign-pdf-async`: Asynchronous signature (returns immediately with task_id) **Async advantages**: - No timeout for large files - No blocking of FastAPI worker - Progress tracking via task_id - Ideal for batch processing **Supported standards**: PAdES-B-B, PAdES-B-T (timestamping), PAdES-B-LT (long-term archiving). **⚠️ Legal disclaimer**: Same as /sign-pdf (see that endpoint\'s documentation).
|
|
997
1079
|
* @summary Sign a PDF asynchronously (Celery)
|
|
998
1080
|
* @param {File} pdfFile PDF file to sign (processed asynchronously)
|
|
1081
|
+
* @param {string | null} [callbackUrl]
|
|
1082
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
999
1083
|
* @param {string | null} [reason]
|
|
1000
1084
|
* @param {string | null} [location]
|
|
1001
1085
|
* @param {string | null} [contact]
|
|
@@ -1005,8 +1089,8 @@ export class InvoiceProcessingApi extends BaseAPI {
|
|
|
1005
1089
|
* @param {*} [options] Override http request option.
|
|
1006
1090
|
* @throws {RequiredError}
|
|
1007
1091
|
*/
|
|
1008
|
-
public signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile: File, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options?: RawAxiosRequestConfig) {
|
|
1009
|
-
return InvoiceProcessingApiFp(this.configuration).signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile, reason, location, contact, fieldName, usePadesLt, useTimestamp, options).then((request) => request(this.axios, this.basePath));
|
|
1092
|
+
public signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile: File, callbackUrl?: string | null, webhookMode?: string, reason?: string | null, location?: string | null, contact?: string | null, fieldName?: string, usePadesLt?: boolean, useTimestamp?: boolean, options?: RawAxiosRequestConfig) {
|
|
1093
|
+
return InvoiceProcessingApiFp(this.configuration).signPdfAsyncApiV1ProcessingSignPdfAsyncPost(pdfFile, callbackUrl, webhookMode, reason, location, contact, fieldName, usePadesLt, useTimestamp, options).then((request) => request(this.axios, this.basePath));
|
|
1010
1094
|
}
|
|
1011
1095
|
|
|
1012
1096
|
/**
|
|
@@ -1021,14 +1105,16 @@ export class InvoiceProcessingApi extends BaseAPI {
|
|
|
1021
1105
|
}
|
|
1022
1106
|
|
|
1023
1107
|
/**
|
|
1024
|
-
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
1108
|
+
* Asynchronous version of the `/invoices/submit-complete` endpoint using Celery for background processing. **Automated workflow (same as synchronous version):** 1. **Auto-enrichment** (optional): retrieves data via public APIs and Chorus Pro/AFNOR 2. **Factur-X PDF generation**: creates a PDF/A-3 with embedded XML 3. **Electronic signature** (optional): signs the PDF with a certificate 4. **Submission**: sends to the chosen destination (Chorus Pro or AFNOR PDP) **Supported destinations:** - **Chorus Pro**: French B2G platform (invoices to public sector) - **AFNOR PDP**: Partner Dematerialization Platforms **Differences with synchronous version:** - ✅ **Non-blocking**: Returns immediately with a `task_id` (HTTP 202 Accepted) - ✅ **Background processing**: Invoice is processed by a Celery worker - ✅ **Progress tracking**: Use `/tasks/{task_id}/status` to track status - ✅ **Ideal for high volumes**: Allows processing many invoices in parallel **How to use:** 1. **Submission**: Call this endpoint with your invoice data 2. **Immediate return**: You receive a `task_id` (e.g., \"abc123-def456\") 3. **Tracking**: Call `/tasks/{task_id}/status` to check progress 4. **Result**: When `status = \"SUCCESS\"`, the `result` field contains the complete response **Webhook notification (recommended):** Instead of polling, add `?callback_url=https://your-server.com/webhook` to receive automatic notification: - `event_type`: `submission.completed`, `submission.failed`, or `submission.partial` - `data.submission_result`: Complete submission result - `X-Webhook-Signature` header for HMAC verification **Credentials and signature**: Same modes as the synchronous version (JWT or payload).
|
|
1025
1109
|
* @summary Submit a complete invoice (asynchronous with Celery)
|
|
1026
1110
|
* @param {SubmitCompleteInvoiceRequest} submitCompleteInvoiceRequest
|
|
1111
|
+
* @param {string | null} [callbackUrl] Webhook URL for async notification when submission completes.
|
|
1112
|
+
* @param {string} [webhookMode] Webhook content delivery: \'inline\' (base64 in payload) or \'download_url\' (temporary URL, 1h TTL)
|
|
1027
1113
|
* @param {*} [options] Override http request option.
|
|
1028
1114
|
* @throws {RequiredError}
|
|
1029
1115
|
*/
|
|
1030
|
-
public submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, options?: RawAxiosRequestConfig) {
|
|
1031
|
-
return InvoiceProcessingApiFp(this.configuration).submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest, options).then((request) => request(this.axios, this.basePath));
|
|
1116
|
+
public submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest: SubmitCompleteInvoiceRequest, callbackUrl?: string | null, webhookMode?: string, options?: RawAxiosRequestConfig) {
|
|
1117
|
+
return InvoiceProcessingApiFp(this.configuration).submitCompleteInvoiceAsyncApiV1ProcessingInvoicesSubmitCompleteAsyncPost(submitCompleteInvoiceRequest, callbackUrl, webhookMode, options).then((request) => request(this.axios, this.basePath));
|
|
1032
1118
|
}
|
|
1033
1119
|
|
|
1034
1120
|
/**
|
|
@@ -1037,24 +1123,27 @@ export class InvoiceProcessingApi extends BaseAPI {
|
|
|
1037
1123
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
1038
1124
|
* @param {APIProfile | null} [profile]
|
|
1039
1125
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). If False, uses basic metadata validation.
|
|
1126
|
+
* @param {boolean | null} [skipBrFr]
|
|
1040
1127
|
* @param {*} [options] Override http request option.
|
|
1041
1128
|
* @throws {RequiredError}
|
|
1042
1129
|
*/
|
|
1043
|
-
public validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options?: RawAxiosRequestConfig) {
|
|
1044
|
-
return InvoiceProcessingApiFp(this.configuration).validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile, profile, useVerapdf, options).then((request) => request(this.axios, this.basePath));
|
|
1130
|
+
public validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig) {
|
|
1131
|
+
return InvoiceProcessingApiFp(this.configuration).validateFacturxPdfApiV1ProcessingValidateFacturxPdfPost(pdfFile, profile, useVerapdf, skipBrFr, options).then((request) => request(this.axios, this.basePath));
|
|
1045
1132
|
}
|
|
1046
1133
|
|
|
1047
1134
|
/**
|
|
1048
|
-
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
1135
|
+
* Validates a Factur-X PDF asynchronously with polling system. ## How it works 1. **Submission**: PDF is queued for asynchronous validation 2. **Immediate return**: You receive a `task_id` (HTTP 202) 3. **Tracking**: Use the `/tasks/{task_id}/status` endpoint to track progress ## Advantages of asynchronous mode - **No timeout**: Ideal for large PDFs or VeraPDF validation (which can take several seconds) - **Scalability**: Validations are processed by dedicated Celery workers - **Status tracking**: Allows you to monitor validation progress - **Non-blocking**: Your client doesn\'t wait during validation ## Webhook notification (recommended) Instead of polling, you can receive a webhook notification when validation completes: ``` callback_url=https://your-server.com/webhook webhook_mode=download_url # Optional: get download URL instead of base64 ``` The webhook will POST a JSON payload with: - `event_type`: `validation.completed` or `validation.failed` - `data.is_compliant`: Whether the PDF is Factur-X compliant - `data.detected_profile`: The detected Factur-X profile - `X-Webhook-Signature` header for HMAC verification ## When to use this mode? - **VeraPDF validation enabled** (`use_verapdf=True`): Strict validation can take 2-10 seconds - **Large PDF files**: PDFs > 1 MB - **Batch processing**: Validating multiple invoices in parallel - **Asynchronous integration**: Your system supports polling ## Checks performed ### 1. Factur-X XML extraction and validation - Verifies presence of Factur-X compliant embedded XML file - Automatically detects profile used (MINIMUM, BASIC, EN16931, EXTENDED) - Validates XML against detected profile\'s Schematron rules ### 2. PDF/A compliance - **Without VeraPDF**: Basic metadata validation (fast, ~100ms) - **With VeraPDF**: Strict ISO 19005 validation (146+ rules, 2-10s) - Detects PDF/A version (PDF/A-1, PDF/A-3, etc.) - Detailed non-compliance reports ### 3. XMP metadata - Verifies presence of XMP metadata in PDF - Validates Factur-X metadata compliance (profile, version) - Extracts all available XMP metadata ### 4. Electronic signatures - Detects presence of electronic signatures or seals - Extracts information about each signature (signer, date, reason) - Counts number of signatures present ## Parameters - **pdf_file**: The Factur-X PDF file to validate - **profile**: Expected Factur-X profile (optional). If not specified, profile will be auto-detected from embedded XML file. - **use_verapdf**: Enable strict PDF/A validation with VeraPDF. ⚠️ **Warning**: VeraPDF can take 2-10 seconds depending on PDF size. Recommended only in asynchronous mode to avoid timeouts. ## Retrieving results After submission, use `GET /tasks/{task_id}/status` endpoint to retrieve the result. **Polling example**: ```python import requests import time # 1. Submit task response = requests.post(\"/validate-facturx-async\", files={\"pdf_file\": pdf_file}) task_id = response.json()[\"taskId\"] # 2. Poll every 2 seconds while True: status_response = requests.get(f\"/tasks/{task_id}/status\") status = status_response.json() if status[\"status\"] == \"SUCCESS\": result = status[\"result\"][\"validation_result\"] print(f\"Compliant: {result[\'is_compliant\']}\") break elif status[\"status\"] == \"FAILURE\": print(f\"Error: {status[\'result\'][\'errorMessage\']}\") break time.sleep(2) # Wait 2 seconds before next check ``` ## Use cases - Validate invoices before sending with VeraPDF (strict validation) - Process invoice batches in parallel - Integrate validation into an asynchronous pipeline - Validate large PDFs without timeout risk
|
|
1049
1136
|
* @summary Validate a Factur-X PDF (asynchronous with polling)
|
|
1050
1137
|
* @param {File} pdfFile Factur-X PDF file to validate (.pdf format).
|
|
1051
1138
|
* @param {APIProfile | null} [profile]
|
|
1052
1139
|
* @param {boolean} [useVerapdf] Enable strict PDF/A validation with VeraPDF (recommended for production). May take several seconds.
|
|
1140
|
+
* @param {string | null} [callbackUrl]
|
|
1141
|
+
* @param {string} [webhookMode] Webhook content delivery: \\\'inline\\\' (base64 in payload) or \\\'download_url\\\' (temporary URL, 1h TTL)
|
|
1053
1142
|
* @param {*} [options] Override http request option.
|
|
1054
1143
|
* @throws {RequiredError}
|
|
1055
1144
|
*/
|
|
1056
|
-
public validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, options?: RawAxiosRequestConfig) {
|
|
1057
|
-
return InvoiceProcessingApiFp(this.configuration).validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile, profile, useVerapdf, options).then((request) => request(this.axios, this.basePath));
|
|
1145
|
+
public validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile: File, profile?: APIProfile | null, useVerapdf?: boolean, callbackUrl?: string | null, webhookMode?: string, options?: RawAxiosRequestConfig) {
|
|
1146
|
+
return InvoiceProcessingApiFp(this.configuration).validateFacturxPdfAsyncApiV1ProcessingValidateFacturxAsyncPost(pdfFile, profile, useVerapdf, callbackUrl, webhookMode, options).then((request) => request(this.axios, this.basePath));
|
|
1058
1147
|
}
|
|
1059
1148
|
|
|
1060
1149
|
/**
|
|
@@ -1073,11 +1162,12 @@ export class InvoiceProcessingApi extends BaseAPI {
|
|
|
1073
1162
|
* @summary Validate an existing Factur-X XML
|
|
1074
1163
|
* @param {File} xmlFile Factur-X XML file to validate (.xml format).
|
|
1075
1164
|
* @param {APIProfile} [profile] Validation profile (MINIMUM, BASIC, EN16931, EXTENDED).
|
|
1165
|
+
* @param {boolean | null} [skipBrFr]
|
|
1076
1166
|
* @param {*} [options] Override http request option.
|
|
1077
1167
|
* @throws {RequiredError}
|
|
1078
1168
|
*/
|
|
1079
|
-
public validateXmlApiV1ProcessingValidateXmlPost(xmlFile: File, profile?: APIProfile, options?: RawAxiosRequestConfig) {
|
|
1080
|
-
return InvoiceProcessingApiFp(this.configuration).validateXmlApiV1ProcessingValidateXmlPost(xmlFile, profile, options).then((request) => request(this.axios, this.basePath));
|
|
1169
|
+
public validateXmlApiV1ProcessingValidateXmlPost(xmlFile: File, profile?: APIProfile, skipBrFr?: boolean | null, options?: RawAxiosRequestConfig) {
|
|
1170
|
+
return InvoiceProcessingApiFp(this.configuration).validateXmlApiV1ProcessingValidateXmlPost(xmlFile, profile, skipBrFr, options).then((request) => request(this.axios, this.basePath));
|
|
1081
1171
|
}
|
|
1082
1172
|
}
|
|
1083
1173
|
|