Interface ExecutionStrategy

Execution strategies are customer-configurable plans on how to process a specific case.

interface ExecutionStrategy {
    XLSXFileUploads?: {
        active?: boolean;
        sheetName?: string;
        strategy?: "asLineItemList" | "asPDF";
    };
    alias?: string;
    automated?: boolean;
    customerId?: string;
    customs?: {
        GRN?: string;
        GRNAccessCode?: string;
        LRN?: string;
        declarantRepresentative?: StakeholderModel;
    };
    dakosySubmission?: {
        active?: boolean;
    };
    dataExtraction?: {
        active?: boolean;
        annotationRemarks?: string;
        classification?: {
            automateMinConfidence?: number;
            automateOnMinConfidence?: boolean;
        };
        classifyUsingDexter?: boolean;
        engine?: "default" | "dexter_experimental" | "llm";
        engineSpecification?: string;
        exportOnConfirmedStrategy?: boolean;
        llmOptions?: {
            classificationRemarks?: string;
            extractionRemarks?: {
                documentType?: DigicustDocumentType;
                ignore?: boolean;
                ignoreLineItems?: boolean;
                remarks?: string;
                sendToFallbackEngine?: boolean;
            }[];
            onlyConsiderFirstAndLastPage?: boolean;
        };
        overrideQueues?: {
            documentType: string;
            queue: number;
        }[];
        promptRemarks?: string;
        queueMapping?: {
            documentType: DigicustDocumentType;
            queueId: string;
        }[];
        requireHumanAnnotation?: boolean;
        requireManualClassification?: boolean;
        rossumExportOnConfirmed?: boolean;
    };
    dataIntegration?: {
        active?: boolean;
        createNewCustomsCaseForEveryXItems?: {
            active?: boolean;
            aggregated?: boolean;
            threshold?: number;
        };
        createNewCustomsCaseForInvoice?: {
            active?: boolean;
        };
        createNewCustomsCasesAsMentionedInEmail?: {
            active?: boolean;
        };
        createNewCustomsCasesPerRecipient?: {
            active?: boolean;
        };
        createNewCustomsCasesPerWaybillContainer?: {
            active?: boolean;
        };
        masterDataIntegrationAutomation?: {
            createMaterialMasterData?: boolean;
            createStakeholderMasterData?: boolean;
            createTariffNumberMasterData?: boolean;
            materialIntegrationOptions?: {
                additionalProperties?: {
                    propagateTags?: boolean;
                    updateCASNumbers?: boolean;
                    updateUnitOfMeasurement?: boolean;
                    weightManagement?: {
                        updateGrossWeight?: boolean;
                        updateNetWeight?: boolean;
                    };
                };
                historyManagement?: {
                    documentCodeIntegration?: {
                        allowedSources?: DocumentCodeSource[];
                    };
                    enabledHistories?: {
                        countryOfOrigin?: boolean;
                        prices?: boolean;
                        recipients?: {
                            maxRecipients?: number;
                            trackNewRecipients?: boolean;
                        };
                    };
                    maxHistoryEntries?: number;
                    mergeIdenticalEntries?: boolean;
                };
                materialQualityRequirements?: {
                    minimumMatchConfidence?: number;
                };
                persistItemDescriptions?: boolean;
            };
            tariffNumberMatchingOptions?: {
                useCountryOfOrigin?: boolean;
                useDestinationCountry?: boolean;
                useRecipientOrImporter?: boolean;
                useShipper?: boolean;
            };
            updateAutomaticallyCreatedMaterials?: boolean;
            updateAutomaticallyCreatedStakeholders?: boolean;
            updateAutomaticallyCreatedTariffNumbers?: boolean;
            updateManuallyCreatedMaterials?: boolean;
            updateManuallyCreatedStakeholders?: boolean;
            updateManuallyCreatedTariffNumbers?: boolean;
        };
        requireUserInput?: "false" | "true" | "masterDataOrUserInput";
    };
    dataNormalization?: {
        active?: boolean;
        additionalCostsStrategy?: "ignore" | "equalDistribution" | "addToFirstItem" | "splitToAllItems" | "splitToAllItemsByNetWeight" | "splitToAllItemsByTotalValue";
        aggregateGrossWeightFromInvoicesWithPackageInformationOnly?: boolean;
        aggregatePalletsAndOtherPackages?: boolean;
        allowDateInOrderNumber?: boolean;
        alwaysAssumeThousandsForQuantity?: boolean;
        alwaysAssumeThousandsForWeights?: boolean;
        alwaysAssumeThreeDigitDecimalForWeights?: boolean;
        assumeOriginFromDepartureCountry?: boolean;
        assumeOriginFromHead?: boolean;
        calculateLineItemWeight?: "byQuantity" | "byTotalValue";
        calculateWeight?: {
            grossWeightFromNetWeight?: number;
            netWeightFromGrossWeight?: number;
        };
        checkTradePreferenceForWording?: boolean;
        customsTariffNumberMappingJsonAta?: string;
        customsTariffNumberNormalizationSettings?: CustomsTariffNumberNormalizationSettings;
        defaultInvoiceType?: "tax_invoice" | "proforma";
        defaultLicensePlate?: false | "german";
        descriptionFormatString?: string;
        descriptionFormatStringGPT?: string;
        descriptionFormatStringJsonAta?: string;
        disableAutomaticMaterialCreation?: boolean;
        disableAutomaticStakeholderCreation?: boolean;
        doNotAssumeOriginFromPreference?: boolean;
        documentCodeEnrichment?: {
            add3LNAQualifiers?: boolean;
            addNegativeCodings?: boolean;
            blacklistCodes?: string[];
            noLineItemDocumentCodes?: boolean;
        };
        eliminateArticleNumberFromDescription?: boolean;
        emailSenderAsRepresentativeEmail?: boolean;
        enforcePackageType?: PackageType;
        forceInvoiceNumberToLRN?: boolean;
        forceInvoiceNumberToReferenceNumberUCR?: boolean;
        forceInvoiceNumberToRegistrationNumberExternal?: boolean;
        foreignFreightCostRate?: number;
        freightCostCalculation?: {
            active?: boolean;
            packagePrice?: Money;
            priority?: "fallback" | "override";
            strategy?: "default" | "austriaWeightDependent" | "packageDependent" | "distanceDependent";
        };
        guaranteeValueCalculation?: "includeVAT19%" | "excludeVAT";
        guaranteeValueCalculationStrategy?: "default" | "assume25%" | "assume26%";
        guaranteeValueStrategy?: "headerFromInvoices" | "headerFromInvoiceHeader" | "lineItems" | "fromGlobalHead";
        ignoreLineItemsFromInvoice?: boolean;
        ignoreLineItemsFromTransitDeclaration?: boolean;
        ignoreLineItemsWithoutInvoice?: boolean;
        ignoreTotalValueFromProformaInvoices?: boolean;
        lineItemGrossWeightStrategy?: "default" | "forceToFirstLineItem";
        normalizeEmailDocuments?: boolean;
        normalizeEmailDocumentsOptions?: {
            remarks?: string;
        };
        omitLineItemDescription?: boolean;
        preferPackagesFromHead?: boolean;
        preferWeightFromHead?: boolean;
        removeStakeholderContactInformation?: {
            active?: boolean;
        };
        searchForItemDescriptionOnInternet?: {
            active?: boolean;
        };
        specializedDescriptionAggregationJsonAta?: string;
        statisticalValueRounding?: "noRounding" | "roundOff" | "roundUp" | "roundToNearest";
        translateLineItemDescriptions?: {
            active?: boolean;
            destinationLanguage?: string;
        };
        useQuantityAsPackageCount?: boolean;
        useSpecializedDescriptionAggregation?: boolean;
        waybillCodePreference?: "singleCode" | "seperateCodes";
    };
    dataValidation?: {
        active?: boolean;
        fraudDetection?: boolean;
    };
    defaultClassification?: DigicustDocumentType;
    defaultProcedureMode?: ProcedureMode;
    doNotSendProcessedNotification?: boolean;
    doNotSendUploadNotification?: boolean;
    events?: Event[];
    flags?: {
        [key: string]: string;
    };
    forceReference?: false | "invoiceNumber";
    forceReferenceJSONata?: string;
    handleXLSXFileUploads?: boolean;
    hsClassification?: {
        active?: boolean;
        research?: boolean;
    };
    id?: string;
    importViaSFTP?: {
        active?: boolean;
        sftp-dns-name?: string;
        sftp-inbound?: string;
        sftp-login-name?: string;
        sftp-outbound?: string;
        sftp-password?: string;
        sftp-port?: string;
    };
    isCondensed?: boolean;
    isProcessWithDextor?: boolean;
    matchingEngine?: {
        materialMatching?: {
            disableMaterialNumberMatching?: boolean;
            disableTariffNumberMatching?: boolean;
            disabled?: boolean;
            sendMasterDataDescriptionOnly?: boolean;
            sendMasterDataTariffNumberOnly?: boolean;
            tariffNumberMatchingConfiguration?: {
                matchShipperCountry?: boolean;
                stakeholderFilters?: ("shipper" | "carrier" | "declarant" | "recipient" | "consignee" | "beneficiary" | "applicant" | "importer" | "exporter" | "buyer" | "agent" | "broker" | "warehouse" | "obligater")[];
            };
        };
    };
    mergeMultipleUploads?: boolean;
    moduleId?: string;
    procedureCode?: string;
    projectId?: string;
    pseudonymization?: {
        active?: boolean;
        interval?: number;
        time?: number;
    };
    referenceInEmail?: boolean;
    rules?: Rule[];
    submission?: Submission;
    subscriptionId?: string;
    uploadWidgets?: UploadWidget[];
    whitelistedImportEmails?: string[];
}

Properties

XLSXFileUploads?: {
    active?: boolean;
    sheetName?: string;
    strategy?: "asLineItemList" | "asPDF";
}

Type declaration

  • Optional active?: boolean
  • Optional sheetName?: string
  • Optional strategy?: "asLineItemList" | "asPDF"
alias?: string
automated?: boolean
customerId?: string
customs?: {
    GRN?: string;
    GRNAccessCode?: string;
    LRN?: string;
    declarantRepresentative?: StakeholderModel;
}

Type declaration

  • Optional GRN?: string
  • Optional GRNAccessCode?: string
  • Optional LRN?: string
  • Optional declarantRepresentative?: StakeholderModel
dakosySubmission?: {
    active?: boolean;
}

Type declaration

  • Optional active?: boolean

Deprecated

dataExtraction?: {
    active?: boolean;
    annotationRemarks?: string;
    classification?: {
        automateMinConfidence?: number;
        automateOnMinConfidence?: boolean;
    };
    classifyUsingDexter?: boolean;
    engine?: "default" | "dexter_experimental" | "llm";
    engineSpecification?: string;
    exportOnConfirmedStrategy?: boolean;
    llmOptions?: {
        classificationRemarks?: string;
        extractionRemarks?: {
            documentType?: DigicustDocumentType;
            ignore?: boolean;
            ignoreLineItems?: boolean;
            remarks?: string;
            sendToFallbackEngine?: boolean;
        }[];
        onlyConsiderFirstAndLastPage?: boolean;
    };
    overrideQueues?: {
        documentType: string;
        queue: number;
    }[];
    promptRemarks?: string;
    queueMapping?: {
        documentType: DigicustDocumentType;
        queueId: string;
    }[];
    requireHumanAnnotation?: boolean;
    requireManualClassification?: boolean;
    rossumExportOnConfirmed?: boolean;
}

Type declaration

  • Optional active?: boolean
  • Optional annotationRemarks?: string
  • Optional classification?: {
        automateMinConfidence?: number;
        automateOnMinConfidence?: boolean;
    }
    • Optional automateMinConfidence?: number

      Value between 1 (very confident) to 0 (no confidence)

    • Optional automateOnMinConfidence?: boolean

      Defines whether a classification shall be assumed correct if a specific confidence level is reached

  • Optional classifyUsingDexter?: boolean

    Whether to classify using dexter classification or let user manually classify

  • Optional engine?: "default" | "dexter_experimental" | "llm"
  • Optional engineSpecification?: string
  • Optional exportOnConfirmedStrategy?: boolean
  • Optional llmOptions?: {
        classificationRemarks?: string;
        extractionRemarks?: {
            documentType?: DigicustDocumentType;
            ignore?: boolean;
            ignoreLineItems?: boolean;
            remarks?: string;
            sendToFallbackEngine?: boolean;
        }[];
        onlyConsiderFirstAndLastPage?: boolean;
    }
    • Optional classificationRemarks?: string
    • Optional extractionRemarks?: {
          documentType?: DigicustDocumentType;
          ignore?: boolean;
          ignoreLineItems?: boolean;
          remarks?: string;
          sendToFallbackEngine?: boolean;
      }[]
    • Optional onlyConsiderFirstAndLastPage?: boolean
  • Optional overrideQueues?: {
        documentType: string;
        queue: number;
    }[]

    for rossum

  • Optional promptRemarks?: string
  • Optional queueMapping?: {
        documentType: DigicustDocumentType;
        queueId: string;
    }[]
  • Optional requireHumanAnnotation?: boolean
  • Optional requireManualClassification?: boolean
  • Optional rossumExportOnConfirmed?: boolean

    Deprecated

dataIntegration?: {
    active?: boolean;
    createNewCustomsCaseForEveryXItems?: {
        active?: boolean;
        aggregated?: boolean;
        threshold?: number;
    };
    createNewCustomsCaseForInvoice?: {
        active?: boolean;
    };
    createNewCustomsCasesAsMentionedInEmail?: {
        active?: boolean;
    };
    createNewCustomsCasesPerRecipient?: {
        active?: boolean;
    };
    createNewCustomsCasesPerWaybillContainer?: {
        active?: boolean;
    };
    masterDataIntegrationAutomation?: {
        createMaterialMasterData?: boolean;
        createStakeholderMasterData?: boolean;
        createTariffNumberMasterData?: boolean;
        materialIntegrationOptions?: {
            additionalProperties?: {
                propagateTags?: boolean;
                updateCASNumbers?: boolean;
                updateUnitOfMeasurement?: boolean;
                weightManagement?: {
                    updateGrossWeight?: boolean;
                    updateNetWeight?: boolean;
                };
            };
            historyManagement?: {
                documentCodeIntegration?: {
                    allowedSources?: DocumentCodeSource[];
                };
                enabledHistories?: {
                    countryOfOrigin?: boolean;
                    prices?: boolean;
                    recipients?: {
                        maxRecipients?: number;
                        trackNewRecipients?: boolean;
                    };
                };
                maxHistoryEntries?: number;
                mergeIdenticalEntries?: boolean;
            };
            materialQualityRequirements?: {
                minimumMatchConfidence?: number;
            };
            persistItemDescriptions?: boolean;
        };
        tariffNumberMatchingOptions?: {
            useCountryOfOrigin?: boolean;
            useDestinationCountry?: boolean;
            useRecipientOrImporter?: boolean;
            useShipper?: boolean;
        };
        updateAutomaticallyCreatedMaterials?: boolean;
        updateAutomaticallyCreatedStakeholders?: boolean;
        updateAutomaticallyCreatedTariffNumbers?: boolean;
        updateManuallyCreatedMaterials?: boolean;
        updateManuallyCreatedStakeholders?: boolean;
        updateManuallyCreatedTariffNumbers?: boolean;
    };
    requireUserInput?: "false" | "true" | "masterDataOrUserInput";
}

Type declaration

  • Optional active?: boolean
  • Optional createNewCustomsCaseForEveryXItems?: {
        active?: boolean;
        aggregated?: boolean;
        threshold?: number;
    }
    • Optional active?: boolean
    • Optional aggregated?: boolean
    • Optional threshold?: number
  • Optional createNewCustomsCaseForInvoice?: {
        active?: boolean;
    }
    • Optional active?: boolean
  • Optional createNewCustomsCasesAsMentionedInEmail?: {
        active?: boolean;
    }
    • Optional active?: boolean
  • Optional createNewCustomsCasesPerRecipient?: {
        active?: boolean;
    }
    • Optional active?: boolean
  • Optional createNewCustomsCasesPerWaybillContainer?: {
        active?: boolean;
    }
    • Optional active?: boolean
  • Optional masterDataIntegrationAutomation?: {
        createMaterialMasterData?: boolean;
        createStakeholderMasterData?: boolean;
        createTariffNumberMasterData?: boolean;
        materialIntegrationOptions?: {
            additionalProperties?: {
                propagateTags?: boolean;
                updateCASNumbers?: boolean;
                updateUnitOfMeasurement?: boolean;
                weightManagement?: {
                    updateGrossWeight?: boolean;
                    updateNetWeight?: boolean;
                };
            };
            historyManagement?: {
                documentCodeIntegration?: {
                    allowedSources?: DocumentCodeSource[];
                };
                enabledHistories?: {
                    countryOfOrigin?: boolean;
                    prices?: boolean;
                    recipients?: {
                        maxRecipients?: number;
                        trackNewRecipients?: boolean;
                    };
                };
                maxHistoryEntries?: number;
                mergeIdenticalEntries?: boolean;
            };
            materialQualityRequirements?: {
                minimumMatchConfidence?: number;
            };
            persistItemDescriptions?: boolean;
        };
        tariffNumberMatchingOptions?: {
            useCountryOfOrigin?: boolean;
            useDestinationCountry?: boolean;
            useRecipientOrImporter?: boolean;
            useShipper?: boolean;
        };
        updateAutomaticallyCreatedMaterials?: boolean;
        updateAutomaticallyCreatedStakeholders?: boolean;
        updateAutomaticallyCreatedTariffNumbers?: boolean;
        updateManuallyCreatedMaterials?: boolean;
        updateManuallyCreatedStakeholders?: boolean;
        updateManuallyCreatedTariffNumbers?: boolean;
    }

    Controls master data integration automation settings

    • Optional createMaterialMasterData?: boolean

      Enable creation of material master data that does not exist yet

    • Optional createStakeholderMasterData?: boolean

      Enable creation of stakeholder master data that does not exist yet

    • Optional createTariffNumberMasterData?: boolean

      Enable creation of tariff number master data that does not exist yet

    • Optional materialIntegrationOptions?: {
          additionalProperties?: {
              propagateTags?: boolean;
              updateCASNumbers?: boolean;
              updateUnitOfMeasurement?: boolean;
              weightManagement?: {
                  updateGrossWeight?: boolean;
                  updateNetWeight?: boolean;
              };
          };
          historyManagement?: {
              documentCodeIntegration?: {
                  allowedSources?: DocumentCodeSource[];
              };
              enabledHistories?: {
                  countryOfOrigin?: boolean;
                  prices?: boolean;
                  recipients?: {
                      maxRecipients?: number;
                      trackNewRecipients?: boolean;
                  };
              };
              maxHistoryEntries?: number;
              mergeIdenticalEntries?: boolean;
          };
          materialQualityRequirements?: {
              minimumMatchConfidence?: number;
          };
          persistItemDescriptions?: boolean;
      }

      General integration options for both material and tariffNumber based master data

      • Optional additionalProperties?: {
            propagateTags?: boolean;
            updateCASNumbers?: boolean;
            updateUnitOfMeasurement?: boolean;
            weightManagement?: {
                updateGrossWeight?: boolean;
                updateNetWeight?: boolean;
            };
        }

        Controls how additional material properties are handled

        • Optional propagateTags?: boolean

          If true, material tags from items will be added to existing tags If false, tags will not be propagated Default: false

        • Optional updateCASNumbers?: boolean

          If true, CAS numbers from items will update material CAS numbers Default: true

        • Optional updateUnitOfMeasurement?: boolean

          If true, units of measurement from items will update material UoM Default: true

        • Optional weightManagement?: {
              updateGrossWeight?: boolean;
              updateNetWeight?: boolean;
          }

          Controls weight updates from items

          • Optional updateGrossWeight?: boolean

            If true, gross weights from items will update material gross weight Default: true

          • Optional updateNetWeight?: boolean

            If true, net weights from items will update material net weight Default: true

      • Optional historyManagement?: {
            documentCodeIntegration?: {
                allowedSources?: DocumentCodeSource[];
            };
            enabledHistories?: {
                countryOfOrigin?: boolean;
                prices?: boolean;
                recipients?: {
                    maxRecipients?: number;
                    trackNewRecipients?: boolean;
                };
            };
            maxHistoryEntries?: number;
            mergeIdenticalEntries?: boolean;
        }

        Controls how history data is configured and managed

        • Optional documentCodeIntegration?: {
              allowedSources?: DocumentCodeSource[];
          }

          Controls document code integration from different sources.

          • Optional allowedSources?: DocumentCodeSource[]

            Allowed sources for document code derivation

        • Optional enabledHistories?: {
              countryOfOrigin?: boolean;
              prices?: boolean;
              recipients?: {
                  maxRecipients?: number;
                  trackNewRecipients?: boolean;
              };
          }

          Controls which historical data should be tracked

          • Optional countryOfOrigin?: boolean

            Track country of origin changes over time

          • Optional prices?: boolean

            Track price changes over time with associated quantity info

          • Optional recipients?: {
                maxRecipients?: number;
                trackNewRecipients?: boolean;
            }

            Controls recipient tracking behavior

            • Optional maxRecipients?: number

              Maximum number of recipients to track Default: no limit

            • Optional trackNewRecipients?: boolean

              If true, new recipients will be added to the list If false, recipient list will not be updated Default: true

        • Optional maxHistoryEntries?: number

          Maximum number of entries to keep in each history. Default: 10

        • Optional mergeIdenticalEntries?: boolean

          If true, identical consecutive entries will be merged to save space Default: false

      • Optional materialQualityRequirements?: {
            minimumMatchConfidence?: number;
        }

        Quality requirements for material master data

        • Optional minimumMatchConfidence?: number

          Minimum confidence score for material number matching to be accepted Value between 0 and 1. Default: 0.9

      • Optional persistItemDescriptions?: boolean

        If any descriptions were found in the shipment item, they will be persisted in the master data If update mode is active, the descriptions will be replaced on each update (except if the new description is empty)

    • Optional tariffNumberMatchingOptions?: {
          useCountryOfOrigin?: boolean;
          useDestinationCountry?: boolean;
          useRecipientOrImporter?: boolean;
          useShipper?: boolean;
      }

      Matching options for tariff number master data, effectively which properties from the shipment will be used to match the tariff number These properties from the shipment (and item) will also be automatically persisted in the master data, each combination of these properties will be a separate master data entry

      • Optional useCountryOfOrigin?: boolean
      • Optional useDestinationCountry?: boolean
      • Optional useRecipientOrImporter?: boolean
      • Optional useShipper?: boolean
    • Optional updateAutomaticallyCreatedMaterials?: boolean

      Enable updates of fields in automatically created materials

    • Optional updateAutomaticallyCreatedStakeholders?: boolean

      Enable updates of fields in automatically created stakeholders

    • Optional updateAutomaticallyCreatedTariffNumbers?: boolean

      Enable updates of fields in automatically created tariff numbers

    • Optional updateManuallyCreatedMaterials?: boolean

      Enable updates of fields in manually created materials

    • Optional updateManuallyCreatedStakeholders?: boolean

      Enable updates of fields in manually created stakeholders

    • Optional updateManuallyCreatedTariffNumbers?: boolean

      Enable updates of fields in manually created tariff numbers

  • Optional requireUserInput?: "false" | "true" | "masterDataOrUserInput"
dataNormalization?: {
    active?: boolean;
    additionalCostsStrategy?: "ignore" | "equalDistribution" | "addToFirstItem" | "splitToAllItems" | "splitToAllItemsByNetWeight" | "splitToAllItemsByTotalValue";
    aggregateGrossWeightFromInvoicesWithPackageInformationOnly?: boolean;
    aggregatePalletsAndOtherPackages?: boolean;
    allowDateInOrderNumber?: boolean;
    alwaysAssumeThousandsForQuantity?: boolean;
    alwaysAssumeThousandsForWeights?: boolean;
    alwaysAssumeThreeDigitDecimalForWeights?: boolean;
    assumeOriginFromDepartureCountry?: boolean;
    assumeOriginFromHead?: boolean;
    calculateLineItemWeight?: "byQuantity" | "byTotalValue";
    calculateWeight?: {
        grossWeightFromNetWeight?: number;
        netWeightFromGrossWeight?: number;
    };
    checkTradePreferenceForWording?: boolean;
    customsTariffNumberMappingJsonAta?: string;
    customsTariffNumberNormalizationSettings?: CustomsTariffNumberNormalizationSettings;
    defaultInvoiceType?: "tax_invoice" | "proforma";
    defaultLicensePlate?: false | "german";
    descriptionFormatString?: string;
    descriptionFormatStringGPT?: string;
    descriptionFormatStringJsonAta?: string;
    disableAutomaticMaterialCreation?: boolean;
    disableAutomaticStakeholderCreation?: boolean;
    doNotAssumeOriginFromPreference?: boolean;
    documentCodeEnrichment?: {
        add3LNAQualifiers?: boolean;
        addNegativeCodings?: boolean;
        blacklistCodes?: string[];
        noLineItemDocumentCodes?: boolean;
    };
    eliminateArticleNumberFromDescription?: boolean;
    emailSenderAsRepresentativeEmail?: boolean;
    enforcePackageType?: PackageType;
    forceInvoiceNumberToLRN?: boolean;
    forceInvoiceNumberToReferenceNumberUCR?: boolean;
    forceInvoiceNumberToRegistrationNumberExternal?: boolean;
    foreignFreightCostRate?: number;
    freightCostCalculation?: {
        active?: boolean;
        packagePrice?: Money;
        priority?: "fallback" | "override";
        strategy?: "default" | "austriaWeightDependent" | "packageDependent" | "distanceDependent";
    };
    guaranteeValueCalculation?: "includeVAT19%" | "excludeVAT";
    guaranteeValueCalculationStrategy?: "default" | "assume25%" | "assume26%";
    guaranteeValueStrategy?: "headerFromInvoices" | "headerFromInvoiceHeader" | "lineItems" | "fromGlobalHead";
    ignoreLineItemsFromInvoice?: boolean;
    ignoreLineItemsFromTransitDeclaration?: boolean;
    ignoreLineItemsWithoutInvoice?: boolean;
    ignoreTotalValueFromProformaInvoices?: boolean;
    lineItemGrossWeightStrategy?: "default" | "forceToFirstLineItem";
    normalizeEmailDocuments?: boolean;
    normalizeEmailDocumentsOptions?: {
        remarks?: string;
    };
    omitLineItemDescription?: boolean;
    preferPackagesFromHead?: boolean;
    preferWeightFromHead?: boolean;
    removeStakeholderContactInformation?: {
        active?: boolean;
    };
    searchForItemDescriptionOnInternet?: {
        active?: boolean;
    };
    specializedDescriptionAggregationJsonAta?: string;
    statisticalValueRounding?: "noRounding" | "roundOff" | "roundUp" | "roundToNearest";
    translateLineItemDescriptions?: {
        active?: boolean;
        destinationLanguage?: string;
    };
    useQuantityAsPackageCount?: boolean;
    useSpecializedDescriptionAggregation?: boolean;
    waybillCodePreference?: "singleCode" | "seperateCodes";
}

Type declaration

  • Optional active?: boolean
  • Optional additionalCostsStrategy?: "ignore" | "equalDistribution" | "addToFirstItem" | "splitToAllItems" | "splitToAllItemsByNetWeight" | "splitToAllItemsByTotalValue"

    Determines how to deal with additional costs like shipping costs, packing, ...

  • Optional aggregateGrossWeightFromInvoicesWithPackageInformationOnly?: boolean
  • Optional aggregatePalletsAndOtherPackages?: boolean

    Determines whether or not to aggregate (sum up) pallets together with other package types

  • Optional allowDateInOrderNumber?: boolean
  • Optional alwaysAssumeThousandsForQuantity?: boolean
  • Optional alwaysAssumeThousandsForWeights?: boolean
  • Optional alwaysAssumeThreeDigitDecimalForWeights?: boolean
  • Optional assumeOriginFromDepartureCountry?: boolean
  • Optional assumeOriginFromHead?: boolean
  • Optional calculateLineItemWeight?: "byQuantity" | "byTotalValue"
  • Optional calculateWeight?: {
        grossWeightFromNetWeight?: number;
        netWeightFromGrossWeight?: number;
    }
    • Optional grossWeightFromNetWeight?: number
    • Optional netWeightFromGrossWeight?: number
  • Optional checkTradePreferenceForWording?: boolean

    Determines whether trade preference shall be invalidated if wording or spelling is wrong

  • Optional customsTariffNumberMappingJsonAta?: string

    Custom formatting for transforming the (autofixed) customs tariff number into a new tariff number. Default to empty (no mapping used).

    The input JSON object has the same structure as the descriptionFormatStringJsonAta:

    { "tariffNumber": "1234567890", "quantity": 1234, "tariffNumberDescription": "Einrichtungen, Maschinen, Apparate und Geräte zur Kälteerzeugung", "lineItemDescription": "Orsiro Mission 2.5/9 PTCA-Stents ", "lineItemDescriptionShort": "Orsiro Mission PTCA-Stents ", "materialDescription": "PCTA-Stents", "enrichedDescription": "PCTA-Stents", "enrichedDescriptionShort": "Stents", "preferMaterialMasterData": false, "materialMatched": true, "useCustomsTariffNumberDescription": true, "useLineItemDescriptionShortening": true, "materialMatchedByTariffNumber": true, "materialMatchedByMaterialNr": false }

  • Optional customsTariffNumberNormalizationSettings?: CustomsTariffNumberNormalizationSettings
  • Optional defaultInvoiceType?: "tax_invoice" | "proforma"
  • Optional defaultLicensePlate?: false | "german"
  • Optional descriptionFormatString?: string

    Custom formattings for the resulting description of line items. For more complex conditional formattings, use the JSONAta property instead.

    Possible variables are:

    • {line-item-description} - The normalized line-item-description from the document. Should always contain a value.
    • {line-item-description-short} - The GPT shortened line-item-description. Shortening is only applied if the line-item-description contains more than 4 words, otherwise it will be the original line-item-description
    • {material-description} - The material-description from the matched material masterdata (either by material-nr or tariff-nr). Empty if no material is matched, or matching is disabled.
    • {enriched-description} - Contains the material-description if it is not empty, or the line-item-description as a fallback value.
    • {enriched-description-short} - Contains the material-description if it is not empty, or the shortened-line-item-description as a fallback value.
    • {tariff-number-description} - The description of the matched tariff number. If no tariff number is matched or matching is disabled this will be empty.

    All these variables can be combined with an optional separator to include after the variable. This separator will only be printed if the variable is not empty. Format: {variable}[separator]

    Examples: {tariff-number-description}[ - ]{enriched-description} {tariff-number-description}[ - ]{enriched-description-short} {tariff-number-description}[ - ]{line-item-description} {material-description}[ - ]{line-item-description} {enriched-description-short}

  • Optional descriptionFormatStringGPT?: string

    Custom formattings for the resulting description of line items as a GPT prompt.

    { "tariffNumber": "1234567890", "quantity": 1234, "tariffNumberDescription": "Einrichtungen, Maschinen, Apparate und Geräte zur Kälteerzeugung", "lineItemDescription": "Orsiro Mission 2.5/9 PTCA-Stents ", "lineItemDescriptionShort": "Orsiro Mission PTCA-Stents ", "materialDescription": "PCTA-Stents", "enrichedDescription": "PCTA-Stents", "enrichedDescriptionShort": "Stents", "preferMaterialMasterData": false, "materialMatched": true, "useCustomsTariffNumberDescription": true, "useLineItemDescriptionShortening": true, "materialMatchedByTariffNumber": true, "materialMatchedByMaterialNr": false }

  • Optional descriptionFormatStringJsonAta?: string

    Custom formattings for the resulting description of line items as a JSONAta query. The result must be a string, not an object. The "simpler" descriptionFormatString will be ignored if this is set.

    The input JSON object looks like this:

    { "tariffNumber": "1234567890", "quantity": 1234, "tariffNumberDescription": "Einrichtungen, Maschinen, Apparate und Geräte zur Kälteerzeugung", "lineItemDescription": "Orsiro Mission 2.5/9 PTCA-Stents ", "lineItemDescriptionShort": "Orsiro Mission PTCA-Stents ", "materialDescription": "PCTA-Stents", "enrichedDescription": "PCTA-Stents", "enrichedDescriptionShort": "Stents", "preferMaterialMasterData": false, "materialMatched": true, "useCustomsTariffNumberDescription": true, "useLineItemDescriptionShortening": true, "materialMatchedByTariffNumber": true, "materialMatchedByMaterialNr": false }

    Examples:

    • Built-In Standard formatting depending on various state variables: useCustomsTariffNumberDescription and ( preferMaterialMasterData = false or materialMatched = false ) and $exists(tariffNumberDescription) and $string(tariffNumberDescription) != "" ? tariffNumberDescription & " - " & ( useLineItemDescriptionShortening = true and materialMatched = false ? (($exists(lineItemDescriptionShort) and $string(lineItemDescriptionShort) != "") ? lineItemDescriptionShort: lineItemDescription) : ( materialMatched = true ? materialDescription : ( useLineItemDescriptionShortening = true ? lineItemDescriptionShort : lineItemDescription ) ) ) : enrichedDescription

      Example Result with JSON input from above: "Einrichtungen, Maschinen, Apparate und Geräte zur Kälteerzeugung - PCTA-Stents"

    • Static formatting for customer preferring combined material and line-item descriptions: $exists(materialDescription) and $string(materialDescription) != "" ? materialDescription & ' - ' & lineItemDescription : lineItemDescription

      Example Result with JSON input from above: "PCTA-Stents - Orsiro Mission 2.5/9 PTCA-Stents"

  • Optional disableAutomaticMaterialCreation?: boolean

    Deprecated

  • Optional disableAutomaticStakeholderCreation?: boolean

    Deprecated

  • Optional doNotAssumeOriginFromPreference?: boolean

    Default: Assume origin from preference. Set to true to mitigate this behavior

  • Optional documentCodeEnrichment?: {
        add3LNAQualifiers?: boolean;
        addNegativeCodings?: boolean;
        blacklistCodes?: string[];
        noLineItemDocumentCodes?: boolean;
    }
    • Optional add3LNAQualifiers?: boolean
    • Optional addNegativeCodings?: boolean
    • Optional blacklistCodes?: string[]
    • Optional noLineItemDocumentCodes?: boolean
  • Optional eliminateArticleNumberFromDescription?: boolean
  • Optional emailSenderAsRepresentativeEmail?: boolean
  • Optional enforcePackageType?: PackageType
  • Optional forceInvoiceNumberToLRN?: boolean
  • Optional forceInvoiceNumberToReferenceNumberUCR?: boolean
  • Optional forceInvoiceNumberToRegistrationNumberExternal?: boolean
  • Optional foreignFreightCostRate?: number

    Between 0 and 1

  • Optional freightCostCalculation?: {
        active?: boolean;
        packagePrice?: Money;
        priority?: "fallback" | "override";
        strategy?: "default" | "austriaWeightDependent" | "packageDependent" | "distanceDependent";
    }
    • Optional active?: boolean
    • Optional packagePrice?: Money

      if strategy = packageDependent

    • Optional priority?: "fallback" | "override"
    • Optional strategy?: "default" | "austriaWeightDependent" | "packageDependent" | "distanceDependent"
  • Optional guaranteeValueCalculation?: "includeVAT19%" | "excludeVAT"
  • Optional guaranteeValueCalculationStrategy?: "default" | "assume25%" | "assume26%"
  • Optional guaranteeValueStrategy?: "headerFromInvoices" | "headerFromInvoiceHeader" | "lineItems" | "fromGlobalHead"
  • Optional ignoreLineItemsFromInvoice?: boolean
  • Optional ignoreLineItemsFromTransitDeclaration?: boolean
  • Optional ignoreLineItemsWithoutInvoice?: boolean
  • Optional ignoreTotalValueFromProformaInvoices?: boolean
  • Optional lineItemGrossWeightStrategy?: "default" | "forceToFirstLineItem"
  • Optional normalizeEmailDocuments?: boolean

    Determines whether or not data from incoming emails are extracted and normalized.

    Default

    false
    
  • Optional normalizeEmailDocumentsOptions?: {
        remarks?: string;
    }
    • Optional remarks?: string
  • Optional omitLineItemDescription?: boolean

    When set to true, line item descriptions will be omitted from the final goods description (if possible, if no other description is available it will be used).

  • Optional preferPackagesFromHead?: boolean
  • Optional preferWeightFromHead?: boolean
  • Optional removeStakeholderContactInformation?: {
        active?: boolean;
    }
    • Optional active?: boolean
  • Optional searchForItemDescriptionOnInternet?: {
        active?: boolean;
    }
    • Optional active?: boolean
  • Optional specializedDescriptionAggregationJsonAta?: string

    Experimental: Use specialized formatting for aggregated descriptions. This will be used if useSpecializedDescriptionAggregation is set to true. If not set, uses the default descriptionFormatStringJsonAta and aggregation algorithm. The input for this JSONAta query is an array of lineItemContexts.

  • Optional statisticalValueRounding?: "noRounding" | "roundOff" | "roundUp" | "roundToNearest"
  • Optional translateLineItemDescriptions?: {
        active?: boolean;
        destinationLanguage?: string;
    }
    • Optional active?: boolean
    • Optional destinationLanguage?: string
  • Optional useQuantityAsPackageCount?: boolean
  • Optional useSpecializedDescriptionAggregation?: boolean

    Enables experimental feature to use specialized description aggregation for line items, summing up quantities and concatenating lineItemDescriptions with "-" in the special "aggregated.aggregatedDescriptions" map (otherwise this property will remain empty or undefined).

  • Optional waybillCodePreference?: "singleCode" | "seperateCodes"
dataValidation?: {
    active?: boolean;
    fraudDetection?: boolean;
}

Type declaration

  • Optional active?: boolean
  • Optional fraudDetection?: boolean
defaultClassification?: DigicustDocumentType
defaultProcedureMode?: ProcedureMode
doNotSendProcessedNotification?: boolean
doNotSendUploadNotification?: boolean
events?: Event[]
flags?: {
    [key: string]: string;
}

Type declaration

  • [key: string]: string
forceReference?: false | "invoiceNumber"
forceReferenceJSONata?: string
handleXLSXFileUploads?: boolean
hsClassification?: {
    active?: boolean;
    research?: boolean;
}

Type declaration

  • Optional active?: boolean
  • Optional research?: boolean
id?: string
importViaSFTP?: {
    active?: boolean;
    sftp-dns-name?: string;
    sftp-inbound?: string;
    sftp-login-name?: string;
    sftp-outbound?: string;
    sftp-password?: string;
    sftp-port?: string;
}

Type declaration

  • Optional active?: boolean
  • Optional sftp-dns-name?: string
  • Optional sftp-inbound?: string
  • Optional sftp-login-name?: string
  • Optional sftp-outbound?: string
  • Optional sftp-password?: string
  • Optional sftp-port?: string
isCondensed?: boolean
isProcessWithDextor?: boolean

Deprecated

matchingEngine?: {
    materialMatching?: {
        disableMaterialNumberMatching?: boolean;
        disableTariffNumberMatching?: boolean;
        disabled?: boolean;
        sendMasterDataDescriptionOnly?: boolean;
        sendMasterDataTariffNumberOnly?: boolean;
        tariffNumberMatchingConfiguration?: {
            matchShipperCountry?: boolean;
            stakeholderFilters?: ("shipper" | "carrier" | "declarant" | "recipient" | "consignee" | "beneficiary" | "applicant" | "importer" | "exporter" | "buyer" | "agent" | "broker" | "warehouse" | "obligater")[];
        };
    };
}

Type declaration

  • Optional materialMatching?: {
        disableMaterialNumberMatching?: boolean;
        disableTariffNumberMatching?: boolean;
        disabled?: boolean;
        sendMasterDataDescriptionOnly?: boolean;
        sendMasterDataTariffNumberOnly?: boolean;
        tariffNumberMatchingConfiguration?: {
            matchShipperCountry?: boolean;
            stakeholderFilters?: ("shipper" | "carrier" | "declarant" | "recipient" | "consignee" | "beneficiary" | "applicant" | "importer" | "exporter" | "buyer" | "agent" | "broker" | "warehouse" | "obligater")[];
        };
    }
    • Optional disableMaterialNumberMatching?: boolean
    • Optional disableTariffNumberMatching?: boolean
    • Optional disabled?: boolean
    • Optional sendMasterDataDescriptionOnly?: boolean
    • Optional sendMasterDataTariffNumberOnly?: boolean
    • Optional tariffNumberMatchingConfiguration?: {
          matchShipperCountry?: boolean;
          stakeholderFilters?: ("shipper" | "carrier" | "declarant" | "recipient" | "consignee" | "beneficiary" | "applicant" | "importer" | "exporter" | "buyer" | "agent" | "broker" | "warehouse" | "obligater")[];
      }
      • Optional matchShipperCountry?: boolean
      • Optional stakeholderFilters?: ("shipper" | "carrier" | "declarant" | "recipient" | "consignee" | "beneficiary" | "applicant" | "importer" | "exporter" | "buyer" | "agent" | "broker" | "warehouse" | "obligater")[]
mergeMultipleUploads?: boolean
moduleId?: string
procedureCode?: string
projectId?: string
pseudonymization?: {
    active?: boolean;
    interval?: number;
    time?: number;
}

Type declaration

  • Optional active?: boolean
  • Optional interval?: number
  • Optional time?: number
referenceInEmail?: boolean
rules?: Rule[]
submission?: Submission
subscriptionId?: string
uploadWidgets?: UploadWidget[]
whitelistedImportEmails?: string[]