@swan-io/shared-business 18.0.3 → 18.1.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swan-io/shared-business",
3
- "version": "18.0.3",
3
+ "version": "18.1.0",
4
4
  "engines": {
5
5
  "node": ">22.12.0"
6
6
  },
@@ -28,7 +28,7 @@
28
28
  "react": ">=19.0.0",
29
29
  "react-dom": ">=19.0.0",
30
30
  "react-native-web": ">=0.21.2",
31
- "@swan-io/lake": "18.0.3"
31
+ "@swan-io/lake": "18.1.0"
32
32
  },
33
33
  "dependencies": {
34
34
  "@formatjs/intl": "^4.1.16",
@@ -53,6 +53,6 @@
53
53
  "react-dom": "^19.2.7",
54
54
  "react-native-web": "^0.21.2",
55
55
  "type-fest": "^5.8.0",
56
- "@swan-io/lake": "18.0.3"
56
+ "@swan-io/lake": "18.1.0"
57
57
  }
58
58
  }
@@ -1,7 +1,8 @@
1
1
  import { type SupportedLanguage } from "../utils/i18n";
2
2
  type AccountStatementHeaderProps = {
3
3
  partnerLogoUrl?: string;
4
+ partnerLogoAlt?: string;
4
5
  language?: SupportedLanguage;
5
6
  };
6
- export declare const AccountStatementHeader: ({ partnerLogoUrl, language, }: AccountStatementHeaderProps) => import("react").JSX.Element;
7
+ export declare const AccountStatementHeader: ({ partnerLogoUrl, partnerLogoAlt, language, }: AccountStatementHeaderProps) => import("react").JSX.Element;
7
8
  export {};
@@ -57,7 +57,7 @@ const logoStyle = {
57
57
  objectFit: "contain",
58
58
  objectPosition: "left",
59
59
  };
60
- export const AccountStatementHeader = ({ partnerLogoUrl, language, }) => {
60
+ export const AccountStatementHeader = ({ partnerLogoUrl, partnerLogoAlt, language, }) => {
61
61
  const t = useTranslation(language);
62
- return (_jsxs("div", { style: styles.container, children: [_jsx("div", { style: styles.logo, children: isNotNullishOrEmpty(partnerLogoUrl) ? (_jsxs(_Fragment, { children: [_jsx("img", { src: partnerLogoUrl, style: logoStyle }), _jsxs("div", { style: styles.partnership, children: [_jsx("div", { style: styles.partnershipText, children: t("accountStatement.partnership") }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] })] })) : (_jsx(SwanLogo, { style: styles.defaultLogo })) }), _jsxs("div", { style: styles.pageNumber, children: [t("accountStatement.page"), " ", _jsx("span", { className: "pageNumber" }), "/", _jsx("span", { className: "totalPages" })] })] }));
62
+ return (_jsxs("div", { style: styles.container, children: [_jsx("div", { style: styles.logo, children: isNotNullishOrEmpty(partnerLogoUrl) ? (_jsxs(_Fragment, { children: [_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: logoStyle }), _jsxs("div", { style: styles.partnership, children: [_jsx("div", { style: styles.partnershipText, children: t("accountStatement.partnership") }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] })] })) : (_jsx(SwanLogo, { style: styles.defaultLogo })) }), _jsxs("div", { style: styles.pageNumber, children: [t("accountStatement.page"), " ", _jsx("span", { className: "pageNumber" }), "/", _jsx("span", { className: "totalPages" })] })] }));
63
63
  };
@@ -26,6 +26,7 @@ type Transaction = {
26
26
  type CreditStatementV1Props = {
27
27
  version: "v1";
28
28
  partnerLogoUrl?: string;
29
+ partnerLogoAlt?: string;
29
30
  style?: StyleProp<ViewStyle>;
30
31
  accountHolderType: "Individual" | "Company";
31
32
  accountHolderName: string;
@@ -41,7 +42,7 @@ type CreditStatementV1Props = {
41
42
  repaymentDate: string;
42
43
  closingBalance: Amount;
43
44
  };
44
- export declare const CreditStatementV1: ({ partnerLogoUrl, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }: CreditStatementV1Props) => import("react").JSX.Element;
45
+ export declare const CreditStatementV1: ({ partnerLogoUrl, partnerLogoAlt, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }: CreditStatementV1Props) => import("react").JSX.Element;
45
46
  export type CreditStatementProps = CreditStatementV1Props;
46
47
  export declare const CreditStatement: (props: CreditStatementProps) => import("react").JSX.Element;
47
48
  export {};
@@ -96,8 +96,8 @@ const logoStyle = {
96
96
  objectPosition: "left",
97
97
  };
98
98
  const formatMaskedPan = (value) => `••${value.slice(-4)}`;
99
- export const CreditStatementV1 = ({ partnerLogoUrl, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }) => {
100
- return (_jsxs(Box, { style: styles.container, direction: "column", justifyContent: "spaceBetween", children: [_jsxs(Box, { direction: "row", justifyContent: "spaceBetween", alignItems: "start", children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(LakeText, { style: styles.mediumText, children: t("accountStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsxs(Box, { children: [_jsx(LakeText, { style: styles.pageTitle, children: t("creditStatement.titleDocument") }), _jsx(LakeText, { style: styles.text, color: colors.gray[700], children: accountHolderType === "Company"
99
+ export const CreditStatementV1 = ({ partnerLogoUrl, partnerLogoAlt, accountHolderType, accountHolderName, accountHolderAddress, iban, bic, openingDate, closingDate, transactions, issueDate, issuerName, siret, repaymentDate, closingBalance, }) => {
100
+ return (_jsxs(Box, { style: styles.container, direction: "column", justifyContent: "spaceBetween", children: [_jsxs(Box, { direction: "row", justifyContent: "spaceBetween", alignItems: "start", children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(LakeText, { style: styles.mediumText, children: t("accountStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsxs(Box, { children: [_jsx(LakeText, { style: styles.pageTitle, children: t("creditStatement.titleDocument") }), _jsx(LakeText, { style: styles.text, color: colors.gray[700], children: accountHolderType === "Company"
101
101
  ? t("accountStatement.titleDocument.companyDescription")
102
102
  : t("accountStatement.titleDocument.individualDescription") }), _jsx(LakeText, { align: "right", style: styles.smallText, children: t("creditStatement.issueDate", {
103
103
  issueDate: dayjs(issueDate).format(locale.dateFormat),
@@ -14,6 +14,7 @@ type RIBv1Props = {
14
14
  iban: string;
15
15
  partnerColor: string;
16
16
  partnerLogoUrl?: string;
17
+ partnerLogoAlt?: string;
17
18
  } & ({
18
19
  accountCountry: "FRA";
19
20
  agency: string;
@@ -67,7 +67,7 @@ const logoStyle = {
67
67
  objectFit: "contain",
68
68
  objectPosition: "left",
69
69
  };
70
- const RIBv1 = ({ accountHolderAddress, bank, bankAddress, bic, iban, partnerColor, partnerLogoUrl, ...props }) => (_jsx(WithPartnerAccentColor, { color: partnerColor, children: _jsxs(View, { style: styles.container, children: [_jsxs(View, { style: styles.half, children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, style: { ...logoStyle, height: LOGO_MAX_HEIGHT, maxWidth: LOGO_MAX_WIDTH } })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Space, { width: 24 }), _jsx(LakeHeading, { align: "right", color: colors.gray[900], level: 2, style: commonStyles.fill, variant: "h3", children: t("rib.bankDetails") })] }), _jsx(Space, { height: 24 }), _jsxs(Box, { direction: "row", alignItems: "center", children: [_jsx(Item, { kind: "main", color: "partner", label: t("rib.iban"), value: iban }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "main", color: "partner", label: t("rib.bic"), value: bic })] }), _jsx(Space, { height: 8 }), _jsx(Box, { direction: "row", alignItems: "center", children: match(props)
70
+ const RIBv1 = ({ accountHolderAddress, bank, bankAddress, bic, iban, partnerColor, partnerLogoUrl, partnerLogoAlt, ...props }) => (_jsx(WithPartnerAccentColor, { color: partnerColor, children: _jsxs(View, { style: styles.container, children: [_jsxs(View, { style: styles.half, children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: { ...logoStyle, height: LOGO_MAX_HEIGHT, maxWidth: LOGO_MAX_WIDTH } })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Space, { width: 24 }), _jsx(LakeHeading, { align: "right", color: colors.gray[900], level: 2, style: commonStyles.fill, variant: "h3", children: t("rib.bankDetails") })] }), _jsx(Space, { height: 24 }), _jsxs(Box, { direction: "row", alignItems: "center", children: [_jsx(Item, { kind: "main", color: "partner", label: t("rib.iban"), value: iban }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "main", color: "partner", label: t("rib.bic"), value: bic })] }), _jsx(Space, { height: 8 }), _jsx(Box, { direction: "row", alignItems: "center", children: match(props)
71
71
  .with({ accountCountry: "FRA" }, ({ agency, bankKey, bankNumber }) => (_jsxs(_Fragment, { children: [_jsx(Item, { kind: "small", label: t("rib.bank"), value: bank }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.agency"), value: agency }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.number"), value: bankNumber }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.key"), value: bankKey })] })))
72
72
  .with({ accountCountry: "DEU" }, ({ accountNumber }) => (_jsxs(_Fragment, { children: [_jsx(Item, { kind: "small", label: t("rib.bank"), value: bank }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.accountNumber"), value: accountNumber })] })))
73
73
  .with({ accountCountry: "ESP" }, ({ agency, bankNumber, nationalCode }) => (_jsxs(_Fragment, { children: [_jsx(Item, { kind: "small", label: t("rib.bank"), value: bank }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.agency"), value: agency }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.nationalCode"), value: nationalCode }), _jsx(Space, { width: 24 }), _jsx(Item, { kind: "small", label: t("rib.number"), value: bankNumber })] })))
@@ -3,7 +3,7 @@ import { LakeLabel } from "@swan-io/lake/src/components/LakeLabel";
3
3
  import { LakeTextInput } from "@swan-io/lake/src/components/LakeTextInput";
4
4
  import { t } from "../utils/i18n";
5
5
  import { getCompanyTaxNumberHelp, getCompanyTaxNumberPlaceholder, getIndividualTaxNumberHelp, getIndividualTaxNumberPlaceholder, getTaxNumberLabel, } from "../utils/validation";
6
- export const TaxIdentificationNumberInput = ({ ref, value, error, valid, disabled, onChange, onBlur, country, isCompany, required, label = getTaxNumberLabel(isCompany), placeholder = isCompany
6
+ export const TaxIdentificationNumberInput = ({ ref, value, error, valid, disabled, onChange, onBlur, country, isCompany, required, label = getTaxNumberLabel(isCompany, country), placeholder = isCompany
7
7
  ? getCompanyTaxNumberPlaceholder(country)
8
8
  : getIndividualTaxNumberPlaceholder(country), }) => {
9
9
  return (_jsx(LakeLabel, { label: label, optionalLabel: required === true ? undefined : t("common.optional"), render: id => (_jsx(LakeTextInput, { id: id, ref: ref, placeholder: placeholder, help: isCompany ? getCompanyTaxNumberHelp(country) : getIndividualTaxNumberHelp(country), value: value, error: error, valid: valid, disabled: disabled, onChangeText: onChange, onBlur: onBlur })) }));
@@ -7,6 +7,7 @@ type TransactionType = "SepaCreditTransferIn" | "SepaCreditTransferOut" | "SepaI
7
7
  type TransactionStatementV1Props = {
8
8
  version: "v1";
9
9
  partnerLogoUrl?: string;
10
+ partnerLogoAlt?: string;
10
11
  generationDate: string;
11
12
  executionDate: string;
12
13
  type: TransactionType;
@@ -28,7 +29,7 @@ type TransactionStatementV1Props = {
28
29
  creditorBankIdentifier?: string;
29
30
  style?: StyleProp<ViewStyle>;
30
31
  };
31
- export declare const TransactionStatementV1: ({ partnerLogoUrl, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }: TransactionStatementV1Props) => import("react").JSX.Element;
32
+ export declare const TransactionStatementV1: ({ partnerLogoUrl, partnerLogoAlt, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }: TransactionStatementV1Props) => import("react").JSX.Element;
32
33
  export type TransactionStatementProps = TransactionStatementV1Props;
33
34
  export declare const TransactionStatement: (props: TransactionStatementProps) => import("react").JSX.Element;
34
35
  export {};
@@ -70,8 +70,8 @@ const logoStyle = {
70
70
  objectFit: "contain",
71
71
  objectPosition: "left",
72
72
  };
73
- export const TransactionStatementV1 = ({ partnerLogoUrl, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }) => {
74
- return (_jsxs(View, { style: [styles.container, style], children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(Text, { style: styles.partnershipText, children: t("transactionStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.pageTitle, children: t("transactionStatement.title.document") }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.sectionTitle, children: t("transactionStatement.title.transactionInformation") }), _jsx(Space, { height: 8 }), _jsxs(Stack, { space: 8, children: [_jsx(Line, { name: t("transactionStatement.information.executionDate"), value: executionDate }), _jsx(Line, { name: t("transactionStatement.information.type"), value: match(type)
73
+ export const TransactionStatementV1 = ({ partnerLogoUrl, partnerLogoAlt, generationDate, executionDate, type, amount, instructedAmount, amountCredited, targetTransferAmount, exchangeRate, fees, label, reference, debtorName, debtorAccountNumber, debtorBankName, debtorBankIdentifier, creditorName, creditorAccountNumber, creditorBankName, creditorBankIdentifier, style, }) => {
74
+ return (_jsxs(View, { style: [styles.container, style], children: [_jsxs(Box, { direction: "row", alignItems: "center", children: [isNotNullishOrEmpty(partnerLogoUrl) ? (_jsx("img", { src: partnerLogoUrl, alt: partnerLogoAlt, style: logoStyle })) : (_jsx(SwanLogo, { style: styles.defaultLogo })), _jsx(Separator, { horizontal: true, space: 8 }), _jsx(Text, { style: styles.partnershipText, children: t("transactionStatement.partnership") }), _jsx(Space, { width: 4 }), _jsx(SwanLogo, { color: colors.gray[900], style: styles.swanLogo })] }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.pageTitle, children: t("transactionStatement.title.document") }), _jsx(Space, { height: 24 }), _jsx(Text, { style: styles.sectionTitle, children: t("transactionStatement.title.transactionInformation") }), _jsx(Space, { height: 8 }), _jsxs(Stack, { space: 8, children: [_jsx(Line, { name: t("transactionStatement.information.executionDate"), value: executionDate }), _jsx(Line, { name: t("transactionStatement.information.type"), value: match(type)
75
75
  .with("SepaCreditTransferIn", () => t("transactionStatement.type.SepaCreditTransferIn"))
76
76
  .with("SepaCreditTransferOut", () => t("transactionStatement.type.SepaCreditTransferOut"))
77
77
  .with("SepaInstantCreditTransferIn", () => t("transactionStatement.type.SepaInstantCreditTransferIn"))
@@ -69,35 +69,35 @@
69
69
  "common.open": "Openen",
70
70
  "common.optional": "Optioneel",
71
71
  "common.previous": "Vorige",
72
- "common.rejectionReason.BadDocumentQuality": "De kwaliteit van het document is te laag om te lezen. Upload een scan of foto met hogere resolutie.",
73
- "common.rejectionReason.CompanyNameMismatch": "De bedrijfsnaam komt niet overeen met de gegevens van Swan. Upload een document met de juiste bedrijfsnaam.",
74
- "common.rejectionReason.ComplianceReason": "Extra verificatie is nodig voor compliance. Bekijk het redenveld voor meer informatie van Swan.",
75
- "common.rejectionReason.DeclaredAmountMismatch": "Het opgegeven bedrag komt niet overeen met de gegevens van Swan. Upload een document met het juiste bedrag.",
76
- "common.rejectionReason.ExpiredDocument": "Het document is verlopen. Upload de meest recente beschikbare versie.",
77
- "common.rejectionReason.FullDocumentRequired": "Het volledige document is vereist. Upload het complete document, inclusief alle pagina's en beide zijden indien van toepassing.",
78
- "common.rejectionReason.HandwrittenOrCertifiedElectronicSignatureRequired": "De handtekening moet met de hand zijn gezet of elektronisch gecertificeerd zijn. Upload een document met een geldige handtekening.",
72
+ "common.rejectionReason.BadDocumentQuality": "De kwaliteit van het document is te slecht om te kunnen lezen. Upload een scan of foto met een hogere resolutie.",
73
+ "common.rejectionReason.CompanyNameMismatch": "De bedrijfsnaam komt niet overeen met de gegevens die bij Swan bekend zijn. Upload een document met de juiste bedrijfsnaam.",
74
+ "common.rejectionReason.ComplianceReason": "Er is aanvullende verificatie nodig om aan de regels te voldoen. Kijk in het veld Reden voor meer informatie van Swan.",
75
+ "common.rejectionReason.DeclaredAmountMismatch": "Het opgegeven bedrag komt niet overeen met de gegevens die bij Swan bekend zijn. Upload een document met het juiste bedrag.",
76
+ "common.rejectionReason.ExpiredDocument": "Het document is te oud. Upload de meest recente versie die er beschikbaar is.",
77
+ "common.rejectionReason.FullDocumentRequired": "Het volledige document is vereist. Upload het complete document, inclusief alle pagina's en beide zijden, indien van toepassing.",
78
+ "common.rejectionReason.HandwrittenOrCertifiedElectronicSignatureRequired": "De handtekening moet handgeschreven zijn of elektronisch gecertificeerd. Upload een document met een geldige handtekening.",
79
79
  "common.rejectionReason.IbanMismatch": "De IBAN op het document komt niet overeen met de transactiegegevens. Upload een document met de juiste IBAN.",
80
- "common.rejectionReason.InvalidAddress": "Het adres komt niet overeen met de gegevens van Swan. Upload een document met het juiste adres.",
81
- "common.rejectionReason.InvalidDepositBankName": "De banknaam in de statuten komt niet overeen met de gegevens van Swan. Upload een document met de juiste banknaam.",
82
- "common.rejectionReason.InvalidDocument": "Het document is ongeldig of niet in een geaccepteerd formaat. Bekijk het redenveld voor meer details van Swan.",
83
- "common.rejectionReason.InvalidOrMissingData": "Vereiste informatie is ongeldig of ontbreekt. Bekijk het redenveld voor meer details van Swan.",
84
- "common.rejectionReason.InvalidTransaction": "Het ingediende document komt niet overeen met deze transactie. Bekijk het redenveld voor meer details van Swan.",
85
- "common.rejectionReason.MissingAccommodationProviderId": "Het ID van de accommodatieaanbieder is vereist. Upload alle drie de accommodatie-documenten samen.",
86
- "common.rejectionReason.MissingAccommodationProviderIdLetter": "De ID-brief van de accommodatieaanbieder is vereist. Upload alle drie de accommodatie-documenten samen.",
87
- "common.rejectionReason.MissingAccommodationProviderLetter": "De brief van de accommodatieaanbieder is vereist. Upload alle drie de accommodatie-documenten samen.",
88
- "common.rejectionReason.MissingCompanyDomiciliationStatement": "De domiciliëringsverklaring van het bedrijf is vereist. Dit document bevestigt het geregistreerde adres van het bedrijf. Upload het om verder te gaan.",
89
- "common.rejectionReason.MissingCompanyProviderRegisterExtract": "Het uittreksel uit het register van het bedrijf van de accommodatieaanbieder is vereist. Upload het om verder te gaan.",
90
- "common.rejectionReason.MissingDescription": "Meer informatie is nodig om deze transactie te begrijpen. Upload een ondersteunend document, zoals een verkoopcontract of offerte.",
91
- "common.rejectionReason.MissingProviderProofOfAddress": "Het bewijs van adres van de accommodatieaanbieder is vereist. Upload beide documenten van de accommodatieaanbieder samen.",
92
- "common.rejectionReason.MissingProviderProofOfAddressAndIdDocument": "Het identiteitsbewijs en bewijs van adres van de accommodatieaanbieder zijn vereist. Upload beide documenten van de accommodatieaanbieder samen.",
80
+ "common.rejectionReason.InvalidAddress": "Het adres komt niet overeen met het adres dat bij Swan bekend is. Upload een document met het correcte adres.",
81
+ "common.rejectionReason.InvalidDepositBankName": "De banknaam in de statuten komt niet overeen met de banknaam die bij Swan bekend is. Upload een document met de juiste banknaam.",
82
+ "common.rejectionReason.InvalidDocument": "Het document is niet geldig of heeft een onjuiste indeling. Kijk in het veld Reden voor meer informatie van Swan.",
83
+ "common.rejectionReason.InvalidOrMissingData": "Vereiste informatie is ongeldig of ontbreekt. Kijk in het veld Reden voor meer details van Swan.",
84
+ "common.rejectionReason.InvalidTransaction": "Het ingediende document komt niet overeen met deze transactie. Kijk in het veld Reden voor meer details van Swan.",
85
+ "common.rejectionReason.MissingAccommodationProviderId": "Het identificatiebewijs van de accommodatieverstrekker is vereist. Upload alle drie de accommodatiedocumenten tegelijk.",
86
+ "common.rejectionReason.MissingAccommodationProviderIdLetter": "De ID-brief van de accommodatieverstrekker is verplicht. Upload alle drie de accommodatiedocumenten tegelijk.",
87
+ "common.rejectionReason.MissingAccommodationProviderLetter": "De brief van de accommodatieverstrekker is verplicht. Upload alle drie de accommodatiedocumenten tegelijk.",
88
+ "common.rejectionReason.MissingCompanyDomiciliationStatement": "De verklaring van de bedrijfslocatie is verplicht. Dit document bevestigt het geregistreerde adres van het bedrijf. Upload deze verklaring om door te gaan.",
89
+ "common.rejectionReason.MissingCompanyProviderRegisterExtract": "Het uittreksel uit het handelsregister van het bedrijf van de accommodatieverstrekker is verplicht. Upload het om door te gaan.",
90
+ "common.rejectionReason.MissingDescription": "Er is meer informatie nodig om inzicht in deze transactie te krijgen. Upload een ondersteunend document, zoals een verkoopcontract of offerte.",
91
+ "common.rejectionReason.MissingProviderProofOfAddress": "Het adresbewijs van de accommodatieverstrekker is verplicht. Upload beide documenten van de accommodatieverstrekker samen.",
92
+ "common.rejectionReason.MissingProviderProofOfAddressAndIdDocument": "Het identificatiebewijs en het bewijs van adres van de accommodatieverstrekker zijn verplicht. Upload beide documenten van de accommodatieverstrekker samen.",
93
93
  "common.rejectionReason.MissingSignature": "Het document moet ondertekend en gedateerd zijn. Upload de gecorrigeerde versie om verder te gaan.",
94
94
  "common.rejectionReason.Other": "Bekijk de reden en uitleg van Swan.",
95
- "common.rejectionReason.PowerOfAttorneyToSwanRequired": "Een volmacht aan Swan is vereist. Upload deze om verder te gaan.",
96
- "common.rejectionReason.ProviderColorIdDocumentRequired": "Het identiteitsbewijs moet in kleur worden ingediend. Upload een kleurenversie om verder te gaan.",
95
+ "common.rejectionReason.PowerOfAttorneyToSwanRequired": "Er is een volmacht aan Swan vereist. Upload deze om verder te gaan.",
96
+ "common.rejectionReason.ProviderColorIdDocumentRequired": "Het identiteitsbewijs moet in kleur ingediend worden. Upload een versie in kleur om verder te gaan.",
97
97
  "common.rejectionReason.TransactionAmountMismatch": "Het bedrag op het ingediende document komt niet overeen met de transactiegegevens. Upload een document met het juiste bedrag.",
98
98
  "common.rejectionReason.TransactionDateMismatch": "De datum op het document komt niet overeen met de transactiegegevens. Upload een document met de juiste datum.",
99
99
  "common.rejectionReason.TransactionNameMismatch": "De namen op het document komen niet overeen met de transactiegegevens. Upload een document met de juiste namen.",
100
- "common.rejectionReason.UnacceptableDocument": "Het document komt niet overeen met het gevraagde type. Bekijk het redenveld voor meer details van Swan.",
100
+ "common.rejectionReason.UnacceptableDocument": "Het document komt niet overeen met het gevraagde type. Controleer het veld Reden voor meer informatie van Swan.",
101
101
  "common.remove": "Verwijderen",
102
102
  "common.showLess": "Toon minder",
103
103
  "common.showMore": "Toon meer",
@@ -158,11 +158,11 @@
158
158
  "fileTile.status.Pending": "In afwachting van verificatie",
159
159
  "fileTile.status.Validated": "Gevalideerd",
160
160
  "fileTile.uploading": "Bezig met uploaden…",
161
- "forecastYearlyIncome.from0To500000": "Minder dan € 500.000",
162
- "forecastYearlyIncome.from1000001To5000000": "€ 1.000.000,- tot € 5.000.000",
163
- "forecastYearlyIncome.from500001To1000000": "€ 500.000,- tot € 1.000.000",
164
- "forecastYearlyIncome.moreThan5000000": "Meer dan € 5.000.000",
165
- "monthlyPaymentVolume.between10000And50000": "€ 10.000,- tot € 50.000,- per maand",
161
+ "forecastYearlyIncome.from0To500000": "Minder dan € 500.000,-",
162
+ "forecastYearlyIncome.from1000001To5000000": "Tussen € 1.000.000,- en € 5.000.000,-",
163
+ "forecastYearlyIncome.from500001To1000000": "Tussen € 500.000,- en € 1.000.000,-",
164
+ "forecastYearlyIncome.moreThan5000000": "Meer dan 5.000.000,-",
165
+ "monthlyPaymentVolume.between10000And50000": "Tussen de € 10.000,- en € 50.000,- per maand",
166
166
  "monthlyPaymentVolume.between50000And100000": "Tussen € 50.000,- en € 100.000,- per maand",
167
167
  "monthlyPaymentVolume.lessThan10000": "Minder dan € 10.000,- per maand",
168
168
  "monthlyPaymentVolume.moreThan100000": "Meer dan € 100.000,- per maand",
@@ -20,7 +20,7 @@ export { printFormat as printIbanFormat } from "iban";
20
20
  export declare const validateIban: (iban: string) => string | undefined;
21
21
  export declare const validateDate: (value: ExtractedDate | undefined) => string | undefined;
22
22
  export declare const validateBirthdate: (value: ExtractedDate | undefined) => string | undefined;
23
- export declare const getTaxNumberLabel: (isCompany: boolean) => string;
23
+ export declare const getTaxNumberLabel: (isCompany: boolean, country: CompanyCountryCCA3) => string;
24
24
  export declare const getIndividualTaxNumberPlaceholder: (country: IndividualCountryCCA3 | CompanyCountryCCA3) => string | undefined;
25
25
  export declare const getCompanyTaxNumberPlaceholder: (country: IndividualCountryCCA3 | CompanyCountryCCA3) => string | undefined;
26
26
  export declare const getCompanyTaxNumberHelp: (country: CompanyCountryCCA3) => string;
@@ -238,8 +238,9 @@ export const validateBirthdate = (value) => {
238
238
  /*
239
239
  * Translation helpers for tax validation
240
240
  */
241
- export const getTaxNumberLabel = (isCompany) => match({ isCompany, lang: locale.language })
241
+ export const getTaxNumberLabel = (isCompany, country) => match({ isCompany, lang: locale.language, country })
242
242
  .with({ isCompany: true, lang: "de" }, () => "Steuer-Nummer")
243
+ .with({ country: "NLD" }, () => "RSIN")
243
244
  .otherwise(() => t("taxIdentificationNumber.label"));
244
245
  export const getIndividualTaxNumberPlaceholder = (country) => match({ country, lang: locale.language })
245
246
  .with({ country: "DEU", lang: P.not("de") }, () => "Steueridentifikationsnummer")