import {z} from 'zod' export type GermanBusinessLegalForm = 'gmbh' | 'ug'; export type BusinessRegistrationRequest = {id: string, court?: string | undefined, legal_form: GermanBusinessLegalForm, incorporation_country: string, incorporation_date: string} | {id: string, incorporation_country: string, incorporation_date: string}; export type IndustryRequestNaceRev = '2.1'; export type BusinessIndustryCodeEnumTwoOne = 'A.1.11' | 'A.1.12' | 'A.1.13' | 'A.1.14' | 'A.1.15' | 'A.1.16' | 'A.1.19' | 'A.1.21' | 'A.1.22' | 'A.1.23' | 'A.1.24' | 'A.1.25' | 'A.1.26' | 'A.1.27' | 'A.1.28' | 'A.1.29' | 'A.1.30' | 'A.1.41' | 'A.1.42' | 'A.1.43' | 'A.1.44' | 'A.1.45' | 'A.1.46' | 'A.1.47' | 'A.1.48' | 'A.1.50' | 'A.1.61' | 'A.1.62' | 'A.1.63' | 'A.1.70' | 'A.2.10' | 'A.2.20' | 'A.2.30' | 'A.2.40' | 'A.3.11' | 'A.3.12' | 'A.3.21' | 'A.3.22' | 'A.3.30' | 'B.5.10' | 'B.5.20' | 'B.6.10' | 'B.6.20' | 'B.7.10' | 'B.7.21' | 'B.7.29' | 'B.8.11' | 'B.8.12' | 'B.8.91' | 'B.8.92' | 'B.8.93' | 'B.8.99' | 'B.9.10' | 'B.9.90' | 'C.10.11' | 'C.10.12' | 'C.10.13' | 'C.10.20' | 'C.10.31' | 'C.10.32' | 'C.10.39' | 'C.10.41' | 'C.10.42' | 'C.10.51' | 'C.10.52' | 'C.10.61' | 'C.10.62' | 'C.10.71' | 'C.10.72' | 'C.10.73' | 'C.10.81' | 'C.10.82' | 'C.10.83' | 'C.10.84' | 'C.10.85' | 'C.10.86' | 'C.10.89' | 'C.10.91' | 'C.10.92' | 'C.11.01' | 'C.11.02' | 'C.11.03' | 'C.11.04' | 'C.11.05' | 'C.11.06' | 'C.11.07' | 'C.12.00' | 'C.13.10' | 'C.13.20' | 'C.13.30' | 'C.13.91' | 'C.13.92' | 'C.13.93' | 'C.13.94' | 'C.13.95' | 'C.13.96' | 'C.13.99' | 'C.14.10' | 'C.14.21' | 'C.14.22' | 'C.14.23' | 'C.14.24' | 'C.14.29' | 'C.15.11' | 'C.15.12' | 'C.15.20' | 'C.16.11' | 'C.16.12' | 'C.16.21' | 'C.16.22' | 'C.16.23' | 'C.16.24' | 'C.16.25' | 'C.16.26' | 'C.16.27' | 'C.16.28' | 'C.17.11' | 'C.17.12' | 'C.17.21' | 'C.17.22' | 'C.17.23' | 'C.17.24' | 'C.17.25' | 'C.18.11' | 'C.18.12' | 'C.18.13' | 'C.18.14' | 'C.18.20' | 'C.19.10' | 'C.19.20' | 'C.20.11' | 'C.20.12' | 'C.20.13' | 'C.20.14' | 'C.20.15' | 'C.20.16' | 'C.20.17' | 'C.20.20' | 'C.20.30' | 'C.20.41' | 'C.20.42' | 'C.20.51' | 'C.20.59' | 'C.20.60' | 'C.21.10' | 'C.21.20' | 'C.22.11' | 'C.22.12' | 'C.22.21' | 'C.22.22' | 'C.22.23' | 'C.22.24' | 'C.22.25' | 'C.22.26' | 'C.23.11' | 'C.23.12' | 'C.23.13' | 'C.23.14' | 'C.23.15' | 'C.23.20' | 'C.23.31' | 'C.23.32' | 'C.23.41' | 'C.23.42' | 'C.23.43' | 'C.23.44' | 'C.23.45' | 'C.23.51' | 'C.23.52' | 'C.23.61' | 'C.23.62' | 'C.23.63' | 'C.23.64' | 'C.23.65' | 'C.23.66' | 'C.23.70' | 'C.23.91' | 'C.23.99' | 'C.24.10' | 'C.24.20' | 'C.24.31' | 'C.24.32' | 'C.24.33' | 'C.24.34' | 'C.24.41' | 'C.24.42' | 'C.24.43' | 'C.24.44' | 'C.24.45' | 'C.24.46' | 'C.24.51' | 'C.24.52' | 'C.24.53' | 'C.24.54' | 'C.25.11' | 'C.25.12' | 'C.25.21' | 'C.25.22' | 'C.25.30' | 'C.25.40' | 'C.25.51' | 'C.25.52' | 'C.25.53' | 'C.25.61' | 'C.25.62' | 'C.25.63' | 'C.25.91' | 'C.25.92' | 'C.25.93' | 'C.25.94' | 'C.25.99' | 'C.26.11' | 'C.26.12' | 'C.26.20' | 'C.26.30' | 'C.26.40' | 'C.26.51' | 'C.26.52' | 'C.26.60' | 'C.26.70' | 'C.27.11' | 'C.27.12' | 'C.27.20' | 'C.27.31' | 'C.27.32' | 'C.27.33' | 'C.27.40' | 'C.27.51' | 'C.27.52' | 'C.27.90' | 'C.28.11' | 'C.28.12' | 'C.28.13' | 'C.28.14' | 'C.28.15' | 'C.28.21' | 'C.28.22' | 'C.28.23' | 'C.28.24' | 'C.28.25' | 'C.28.29' | 'C.28.30' | 'C.28.41' | 'C.28.42' | 'C.28.91' | 'C.28.92' | 'C.28.93' | 'C.28.94' | 'C.28.95' | 'C.28.96' | 'C.28.97' | 'C.28.99' | 'C.29.10' | 'C.29.20' | 'C.29.31' | 'C.29.32' | 'C.30.11' | 'C.30.12' | 'C.30.13' | 'C.30.20' | 'C.30.31' | 'C.30.32' | 'C.30.40' | 'C.30.91' | 'C.30.92' | 'C.30.99' | 'C.31.00' | 'C.32.11' | 'C.32.12' | 'C.32.13' | 'C.32.20' | 'C.32.30' | 'C.32.40' | 'C.32.50' | 'C.32.91' | 'C.32.99' | 'C.33.11' | 'C.33.12' | 'C.33.13' | 'C.33.14' | 'C.33.15' | 'C.33.16' | 'C.33.17' | 'C.33.18' | 'C.33.19' | 'C.33.20' | 'D.35.11' | 'D.35.12' | 'D.35.13' | 'D.35.14' | 'D.35.15' | 'D.35.16' | 'D.35.21' | 'D.35.22' | 'D.35.23' | 'D.35.24' | 'D.35.30' | 'D.35.40' | 'E.36.00' | 'E.37.00' | 'E.38.11' | 'E.38.12' | 'E.38.21' | 'E.38.22' | 'E.38.23' | 'E.38.31' | 'E.38.32' | 'E.38.33' | 'E.39.00' | 'F.41.00' | 'F.42.11' | 'F.42.12' | 'F.42.13' | 'F.42.21' | 'F.42.22' | 'F.42.91' | 'F.42.99' | 'F.43.11' | 'F.43.12' | 'F.43.13' | 'F.43.21' | 'F.43.22' | 'F.43.23' | 'F.43.24' | 'F.43.31' | 'F.43.32' | 'F.43.33' | 'F.43.34' | 'F.43.35' | 'F.43.41' | 'F.43.42' | 'F.43.50' | 'F.43.60' | 'F.43.91' | 'F.43.99' | 'G.46.11' | 'G.46.12' | 'G.46.13' | 'G.46.14' | 'G.46.15' | 'G.46.16' | 'G.46.17' | 'G.46.18' | 'G.46.19' | 'G.46.21' | 'G.46.22' | 'G.46.23' | 'G.46.24' | 'G.46.31' | 'G.46.32' | 'G.46.33' | 'G.46.34' | 'G.46.35' | 'G.46.36' | 'G.46.37' | 'G.46.38' | 'G.46.39' | 'G.46.41' | 'G.46.42' | 'G.46.43' | 'G.46.44' | 'G.46.45' | 'G.46.46' | 'G.46.47' | 'G.46.48' | 'G.46.49' | 'G.46.50' | 'G.46.61' | 'G.46.62' | 'G.46.63' | 'G.46.64' | 'G.46.71' | 'G.46.72' | 'G.46.73' | 'G.46.81' | 'G.46.82' | 'G.46.83' | 'G.46.84' | 'G.46.85' | 'G.46.86' | 'G.46.87' | 'G.46.89' | 'G.46.90' | 'G.47.11' | 'G.47.12' | 'G.47.21' | 'G.47.22' | 'G.47.23' | 'G.47.24' | 'G.47.25' | 'G.47.26' | 'G.47.27' | 'G.47.30' | 'G.47.40' | 'G.47.51' | 'G.47.52' | 'G.47.53' | 'G.47.54' | 'G.47.55' | 'G.47.61' | 'G.47.62' | 'G.47.63' | 'G.47.64' | 'G.47.69' | 'G.47.71' | 'G.47.72' | 'G.47.73' | 'G.47.74' | 'G.47.75' | 'G.47.76' | 'G.47.77' | 'G.47.78' | 'G.47.79' | 'G.47.81' | 'G.47.82' | 'G.47.83' | 'G.47.91' | 'G.47.92' | 'H.49.11' | 'H.49.12' | 'H.49.20' | 'H.49.31' | 'H.49.32' | 'H.49.33' | 'H.49.34' | 'H.49.39' | 'H.49.41' | 'H.49.42' | 'H.49.50' | 'H.50.10' | 'H.50.20' | 'H.50.30' | 'H.50.40' | 'H.51.10' | 'H.51.21' | 'H.51.22' | 'H.52.10' | 'H.52.21' | 'H.52.22' | 'H.52.23' | 'H.52.24' | 'H.52.25' | 'H.52.26' | 'H.52.31' | 'H.52.32' | 'H.53.10' | 'H.53.20' | 'H.53.30' | 'I.55.10' | 'I.55.20' | 'I.55.30' | 'I.55.40' | 'I.55.90' | 'I.56.11' | 'I.56.12' | 'I.56.21' | 'I.56.22' | 'I.56.30' | 'I.56.40' | 'J.58.11' | 'J.58.12' | 'J.58.13' | 'J.58.19' | 'J.58.21' | 'J.58.29' | 'J.59.11' | 'J.59.12' | 'J.59.13' | 'J.59.14' | 'J.59.20' | 'J.60.10' | 'J.60.20' | 'J.60.31' | 'J.60.39' | 'K.61.10' | 'K.61.20' | 'K.61.90' | 'K.62.10' | 'K.62.20' | 'K.62.90' | 'K.63.10' | 'K.63.91' | 'K.63.92' | 'L.64.11' | 'L.64.19' | 'L.64.21' | 'L.64.22' | 'L.64.31' | 'L.64.32' | 'L.64.91' | 'L.64.92' | 'L.64.99' | 'L.65.11' | 'L.65.12' | 'L.65.20' | 'L.65.30' | 'L.66.11' | 'L.66.12' | 'L.66.19' | 'L.66.21' | 'L.66.22' | 'L.66.29' | 'L.66.30' | 'M.68.11' | 'M.68.12' | 'M.68.20' | 'M.68.31' | 'M.68.32' | 'N.69.10' | 'N.69.20' | 'N.70.10' | 'N.70.20' | 'N.71.11' | 'N.71.12' | 'N.71.20' | 'N.72.10' | 'N.72.20' | 'N.73.11' | 'N.73.12' | 'N.73.20' | 'N.73.30' | 'N.74.11' | 'N.74.12' | 'N.74.13' | 'N.74.14' | 'N.74.20' | 'N.74.30' | 'N.74.91' | 'N.74.99' | 'N.75.00' | 'O.77.11' | 'O.77.12' | 'O.77.21' | 'O.77.22' | 'O.77.31' | 'O.77.32' | 'O.77.33' | 'O.77.34' | 'O.77.35' | 'O.77.39' | 'O.77.40' | 'O.77.51' | 'O.77.52' | 'O.78.10' | 'O.78.20' | 'O.79.11' | 'O.79.12' | 'O.79.90' | 'O.80.01' | 'O.80.09' | 'O.81.10' | 'O.81.21' | 'O.81.22' | 'O.81.23' | 'O.81.30' | 'O.82.10' | 'O.82.20' | 'O.82.30' | 'O.82.40' | 'O.82.91' | 'O.82.92' | 'O.82.99' | 'P.84.11' | 'P.84.12' | 'P.84.13' | 'P.84.21' | 'P.84.22' | 'P.84.23' | 'P.84.24' | 'P.84.25' | 'P.84.30' | 'Q.85.10' | 'Q.85.20' | 'Q.85.31' | 'Q.85.32' | 'Q.85.33' | 'Q.85.40' | 'Q.85.51' | 'Q.85.52' | 'Q.85.53' | 'Q.85.59' | 'Q.85.61' | 'Q.85.69' | 'R.86.10' | 'R.86.21' | 'R.86.22' | 'R.86.23' | 'R.86.91' | 'R.86.92' | 'R.86.93' | 'R.86.94' | 'R.86.95' | 'R.86.96' | 'R.86.97' | 'R.86.99' | 'R.87.10' | 'R.87.20' | 'R.87.30' | 'R.87.91' | 'R.87.99' | 'R.88.10' | 'R.88.91' | 'R.88.99' | 'S.90.11' | 'S.90.12' | 'S.90.13' | 'S.90.20' | 'S.90.31' | 'S.90.39' | 'S.91.11' | 'S.91.12' | 'S.91.21' | 'S.91.22' | 'S.91.30' | 'S.91.41' | 'S.91.42' | 'S.92.00' | 'S.93.11' | 'S.93.12' | 'S.93.13' | 'S.93.19' | 'S.93.21' | 'S.93.29' | 'T.94.11' | 'T.94.12' | 'T.94.20' | 'T.94.91' | 'T.94.92' | 'T.94.99' | 'T.95.10' | 'T.95.21' | 'T.95.22' | 'T.95.23' | 'T.95.24' | 'T.95.25' | 'T.95.29' | 'T.95.31' | 'T.95.32' | 'T.95.40' | 'T.96.10' | 'T.96.21' | 'T.96.22' | 'T.96.23' | 'T.96.30' | 'T.96.40' | 'T.96.91' | 'T.96.99' | 'U.97.00' | 'U.98.10' | 'U.98.20'; export type IndustryRequest = {nace_rev: IndustryRequestNaceRev, code: BusinessIndustryCodeEnumTwoOne}; export type AddressRequest = {line_1: string, line_2?: string | undefined, postal_code: string, city: string, country: string}; export type BusinessTaxResidencyRequest = {country: string, tax_number: string, vat_id?: string | undefined, business_identification_number?: string | undefined}; export type BusinessNFETypeEnum = 'active' | 'passive'; export type BusinessRequest = {name: string, registration: BusinessRegistrationRequest, industry: IndustryRequest, registered_address: AddressRequest, taxation_countries: Array, fatca_relevant: boolean, expected_annual_revenue: unknown, currency: string, legal_entity_identifier?: string | undefined, single_tier_ownership?: boolean | undefined, nfe_type: BusinessNFETypeEnum}; export type CreateApiBusinessesArgs = {'LMG-Data-Privacy-Access-Principal': string, 'LMG-Data-Privacy-Access-Justification': string, body: BusinessRequest}; export type CreateApiBusinessesOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const germanBusinessLegalForm = z.enum(["gmbh", "ug"]); export const businessRegistrationResponse = z.discriminatedUnion("incorporation_country", [z.object({id: z.string().min(1).max(255), court: z.string().min(1).max(255).optional(), legal_form: germanBusinessLegalForm, incorporation_country: z.string().min(2).max(2), incorporation_date: z.string()}), z.object({id: z.string().min(1).max(255), incorporation_country: z.string().min(2).max(2), incorporation_date: z.string()})]); export const businessIndustryNaceRev = z.enum(["2", "2.1"]); export const businessIndustryCodeEnumTwo = z.enum(["A.1.11", "A.1.12", "A.1.13", "A.1.14", "A.1.15", "A.1.16", "A.1.19", "A.1.21", "A.1.22", "A.1.23", "A.1.24", "A.1.25", "A.1.26", "A.1.27", "A.1.28", "A.1.29", "A.1.30", "A.1.41", "A.1.42", "A.1.43", "A.1.44", "A.1.45", "A.1.46", "A.1.47", "A.1.49", "A.1.50", "A.1.61", "A.1.62", "A.1.63", "A.1.64", "A.1.70", "A.2.10", "A.2.20", "A.2.30", "A.2.40", "A.3.11", "A.3.12", "A.3.21", "A.3.22", "B.5.10", "B.5.20", "B.6.10", "B.6.20", "B.7.10", "B.7.21", "B.7.29", "B.8.11", "B.8.12", "B.8.91", "B.8.92", "B.8.93", "B.8.99", "B.9.10", "B.9.90", "C.10.11", "C.10.12", "C.10.13", "C.10.20", "C.10.31", "C.10.32", "C.10.39", "C.10.41", "C.10.42", "C.10.51", "C.10.52", "C.10.61", "C.10.62", "C.10.71", "C.10.72", "C.10.73", "C.10.81", "C.10.82", "C.10.83", "C.10.84", "C.10.85", "C.10.86", "C.10.89", "C.10.91", "C.10.92", "C.11.01", "C.11.02", "C.11.03", "C.11.04", "C.11.05", "C.11.06", "C.11.07", "C.12.00", "C.13.10", "C.13.20", "C.13.30", "C.13.91", "C.13.92", "C.13.93", "C.13.94", "C.13.95", "C.13.96", "C.13.99", "C.14.11", "C.14.12", "C.14.13", "C.14.14", "C.14.19", "C.14.20", "C.14.31", "C.14.39", "C.15.11", "C.15.12", "C.15.20", "C.16.10", "C.16.21", "C.16.22", "C.16.23", "C.16.24", "C.16.29", "C.17.11", "C.17.12", "C.17.21", "C.17.22", "C.17.23", "C.17.24", "C.17.29", "C.18.11", "C.18.12", "C.18.13", "C.18.14", "C.18.20", "C.19.10", "C.19.20", "C.20.11", "C.20.12", "C.20.13", "C.20.14", "C.20.15", "C.20.16", "C.20.17", "C.20.20", "C.20.30", "C.20.41", "C.20.42", "C.20.51", "C.20.52", "C.20.53", "C.20.59", "C.20.60", "C.21.10", "C.21.20", "C.22.11", "C.22.19", "C.22.21", "C.22.22", "C.22.23", "C.22.24", "C.23.11", "C.23.12", "C.23.13", "C.23.14", "C.23.19", "C.23.20", "C.23.31", "C.23.32", "C.23.41", "C.23.42", "C.23.43", "C.23.44", "C.23.49", "C.23.51", "C.23.52", "C.23.61", "C.23.62", "C.23.63", "C.23.64", "C.23.65", "C.23.69", "C.23.70", "C.23.91", "C.23.99", "C.24.10", "C.24.20", "C.24.31", "C.24.32", "C.24.33", "C.24.34", "C.24.41", "C.24.42", "C.24.43", "C.24.44", "C.24.45", "C.24.46", "C.24.51", "C.24.52", "C.24.53", "C.24.54", "C.25.11", "C.25.12", "C.25.21", "C.25.29", "C.25.30", "C.25.40", "C.25.50", "C.25.61", "C.25.62", "C.25.71", "C.25.72", "C.25.73", "C.25.91", "C.25.92", "C.25.93", "C.25.94", "C.25.95", "C.26.11", "C.26.12", "C.26.20", "C.26.30", "C.26.40", "C.26.51", "C.26.52", "C.26.60", "C.26.70", "C.26.80", "C.27.11", "C.27.12", "C.27.20", "C.27.31", "C.27.32", "C.27.33", "C.27.40", "C.27.51", "C.27.52", "C.27.90", "C.28.11", "C.28.12", "C.28.13", "C.28.14", "C.28.15", "C.28.21", "C.28.22", "C.28.23", "C.28.24", "C.28.25", "C.28.29", "C.28.30", "C.28.41", "C.28.49", "C.28.91", "C.28.92", "C.28.93", "C.28.94", "C.28.95", "C.28.96", "C.28.99", "C.29.10", "C.29.20", "C.29.31", "C.29.32", "C.30.11", "C.30.12", "C.30.20", "C.30.30", "C.30.40", "C.30.91", "C.30.92", "C.30.99", "C.31.01", "C.31.02", "C.31.03", "C.31.09", "C.32.11", "C.32.12", "C.32.13", "C.32.20", "C.32.30", "C.32.40", "C.32.50", "C.32.91", "C.32.99", "C.33.11", "C.33.12", "C.33.13", "C.33.14", "C.33.15", "C.33.16", "C.33.17", "C.33.19", "C.33.20", "D.35.11", "D.35.12", "D.35.13", "D.35.14", "D.35.21", "D.35.22", "D.35.23", "D.35.30", "E.36.00", "E.37.00", "E.38.11", "E.38.12", "E.38.21", "E.38.22", "E.38.31", "E.38.32", "E.39.00", "F.41.10", "F.41.20", "F.42.11", "F.42.12", "F.42.13", "F.42.21", "F.42.22", "F.42.91", "F.42.99", "F.43.11", "F.43.12", "F.43.13", "F.43.21", "F.43.22", "F.43.29", "F.43.31", "F.43.32", "F.43.33", "F.43.34", "F.43.39", "F.43.91", "F.43.99", "G.45.11", "G.45.19", "G.45.20", "G.45.31", "G.45.32", "G.45.40", "G.46.11", "G.46.12", "G.46.13", "G.46.14", "G.46.15", "G.46.16", "G.46.17", "G.46.18", "G.46.19", "G.46.21", "G.46.22", "G.46.23", "G.46.24", "G.46.31", "G.46.32", "G.46.33", "G.46.34", "G.46.35", "G.46.36", "G.46.37", "G.46.38", "G.46.39", "G.46.41", "G.46.42", "G.46.43", "G.46.44", "G.46.45", "G.46.46", "G.46.47", "G.46.48", "G.46.49", "G.46.51", "G.46.52", "G.46.61", "G.46.62", "G.46.63", "G.46.64", "G.46.65", "G.46.66", "G.46.69", "G.46.71", "G.46.72", "G.46.73", "G.46.74", "G.46.75", "G.46.76", "G.46.77", "G.46.90", "G.47.11", "G.47.19", "G.47.21", "G.47.22", "G.47.23", "G.47.24", "G.47.25", "G.47.26", "G.47.29", "G.47.30", "G.47.41", "G.47.42", "G.47.43", "G.47.51", "G.47.52", "G.47.53", "G.47.54", "G.47.59", "G.47.61", "G.47.62", "G.47.63", "G.47.64", "G.47.65", "G.47.71", "G.47.72", "G.47.73", "G.47.74", "G.47.75", "G.47.76", "G.47.77", "G.47.78", "G.47.79", "G.47.81", "G.47.82", "G.47.89", "G.47.91", "G.47.99", "H.49.10", "H.49.20", "H.49.31", "H.49.32", "H.49.39", "H.49.41", "H.49.42", "H.49.50", "H.50.10", "H.50.20", "H.50.30", "H.50.40", "H.51.10", "H.51.21", "H.51.22", "H.52.10", "H.52.21", "H.52.22", "H.52.23", "H.52.24", "H.52.29", "H.53.10", "H.53.20", "I.55.10", "I.55.20", "I.55.30", "I.55.90", "I.56.10", "I.56.21", "I.56.29", "I.56.30", "J.58.11", "J.58.12", "J.58.13", "J.58.14", "J.58.19", "J.58.21", "J.58.29", "J.59.11", "J.59.12", "J.59.13", "J.59.14", "J.59.20", "J.60.10", "J.60.20", "J.61.10", "J.61.20", "J.61.30", "J.61.90", "J.62.01", "J.62.02", "J.62.03", "J.62.09", "J.63.11", "J.63.12", "J.63.91", "J.63.99", "K.64.11", "K.64.19", "K.64.20", "K.64.30", "K.64.91", "K.64.92", "K.64.99", "K.65.11", "K.65.12", "K.65.20", "K.65.30", "K.66.11", "K.66.12", "K.66.19", "K.66.21", "K.66.22", "K.66.29", "K.66.30", "L.68.10", "L.68.20", "L.68.31", "L.68.32", "M.69.10", "M.69.20", "M.70.10", "M.70.21", "M.70.22", "M.71.11", "M.71.12", "M.71.20", "M.72.11", "M.72.19", "M.72.20", "M.73.11", "M.73.12", "M.73.20", "M.74.10", "M.74.20", "M.74.30", "M.74.90", "M.75.00", "M.77.11", "M.77.12", "M.77.21", "M.77.22", "M.77.29", "N.77.31", "N.77.32", "N.77.33", "N.77.34", "N.77.35", "N.77.39", "N.77.40", "N.78.10", "N.78.20", "N.78.30", "N.79.11", "N.79.12", "N.79.90", "N.80.10", "N.80.20", "N.80.30", "N.81.10", "N.81.21", "N.81.22", "N.81.29", "N.81.30", "N.82.11", "N.82.19", "N.82.20", "N.82.30", "N.82.91", "N.82.92", "N.82.99", "N.84.11", "N.84.12", "N.84.13", "N.84.21", "N.84.22", "N.84.23", "N.84.24", "N.84.25", "O.84.30", "P.85.10", "P.85.20", "P.85.31", "P.85.32", "P.85.41", "P.85.42", "P.85.51", "P.85.52", "P.85.53", "P.85.59", "P.85.60", "Q.86.10", "Q.86.21", "Q.86.22", "Q.86.23", "Q.86.90", "Q.87.10", "Q.87.20", "Q.87.30", "Q.87.90", "Q.88.10", "Q.88.91", "Q.88.99", "R.90.01", "R.90.02", "R.90.03", "R.90.04", "R.91.01", "R.91.02", "R.91.03", "R.91.04", "R.92.00", "R.93.11", "R.93.12", "R.93.13", "R.93.19", "R.93.21", "R.93.29", "S.94.11", "S.94.12", "S.94.20", "S.94.91", "S.94.92", "S.94.99", "S.95.11", "S.95.12", "S.95.21", "S.95.22", "S.95.23", "S.95.24", "S.95.25", "S.95.29", "S.96.01", "S.96.02", "S.96.03", "S.96.04", "S.96.09", "T.97.00", "T.98.10", "T.98.20", "U.99.00"]); export const businessIndustryCodeEnumTwoOne = z.enum(["A.1.11", "A.1.12", "A.1.13", "A.1.14", "A.1.15", "A.1.16", "A.1.19", "A.1.21", "A.1.22", "A.1.23", "A.1.24", "A.1.25", "A.1.26", "A.1.27", "A.1.28", "A.1.29", "A.1.30", "A.1.41", "A.1.42", "A.1.43", "A.1.44", "A.1.45", "A.1.46", "A.1.47", "A.1.48", "A.1.50", "A.1.61", "A.1.62", "A.1.63", "A.1.70", "A.2.10", "A.2.20", "A.2.30", "A.2.40", "A.3.11", "A.3.12", "A.3.21", "A.3.22", "A.3.30", "B.5.10", "B.5.20", "B.6.10", "B.6.20", "B.7.10", "B.7.21", "B.7.29", "B.8.11", "B.8.12", "B.8.91", "B.8.92", "B.8.93", "B.8.99", "B.9.10", "B.9.90", "C.10.11", "C.10.12", "C.10.13", "C.10.20", "C.10.31", "C.10.32", "C.10.39", "C.10.41", "C.10.42", "C.10.51", "C.10.52", "C.10.61", "C.10.62", "C.10.71", "C.10.72", "C.10.73", "C.10.81", "C.10.82", "C.10.83", "C.10.84", "C.10.85", "C.10.86", "C.10.89", "C.10.91", "C.10.92", "C.11.01", "C.11.02", "C.11.03", "C.11.04", "C.11.05", "C.11.06", "C.11.07", "C.12.00", "C.13.10", "C.13.20", "C.13.30", "C.13.91", "C.13.92", "C.13.93", "C.13.94", "C.13.95", "C.13.96", "C.13.99", "C.14.10", "C.14.21", "C.14.22", "C.14.23", "C.14.24", "C.14.29", "C.15.11", "C.15.12", "C.15.20", "C.16.11", "C.16.12", "C.16.21", "C.16.22", "C.16.23", "C.16.24", "C.16.25", "C.16.26", "C.16.27", "C.16.28", "C.17.11", "C.17.12", "C.17.21", "C.17.22", "C.17.23", "C.17.24", "C.17.25", "C.18.11", "C.18.12", "C.18.13", "C.18.14", "C.18.20", "C.19.10", "C.19.20", "C.20.11", "C.20.12", "C.20.13", "C.20.14", "C.20.15", "C.20.16", "C.20.17", "C.20.20", "C.20.30", "C.20.41", "C.20.42", "C.20.51", "C.20.59", "C.20.60", "C.21.10", "C.21.20", "C.22.11", "C.22.12", "C.22.21", "C.22.22", "C.22.23", "C.22.24", "C.22.25", "C.22.26", "C.23.11", "C.23.12", "C.23.13", "C.23.14", "C.23.15", "C.23.20", "C.23.31", "C.23.32", "C.23.41", "C.23.42", "C.23.43", "C.23.44", "C.23.45", "C.23.51", "C.23.52", "C.23.61", "C.23.62", "C.23.63", "C.23.64", "C.23.65", "C.23.66", "C.23.70", "C.23.91", "C.23.99", "C.24.10", "C.24.20", "C.24.31", "C.24.32", "C.24.33", "C.24.34", "C.24.41", "C.24.42", "C.24.43", "C.24.44", "C.24.45", "C.24.46", "C.24.51", "C.24.52", "C.24.53", "C.24.54", "C.25.11", "C.25.12", "C.25.21", "C.25.22", "C.25.30", "C.25.40", "C.25.51", "C.25.52", "C.25.53", "C.25.61", "C.25.62", "C.25.63", "C.25.91", "C.25.92", "C.25.93", "C.25.94", "C.25.99", "C.26.11", "C.26.12", "C.26.20", "C.26.30", "C.26.40", "C.26.51", "C.26.52", "C.26.60", "C.26.70", "C.27.11", "C.27.12", "C.27.20", "C.27.31", "C.27.32", "C.27.33", "C.27.40", "C.27.51", "C.27.52", "C.27.90", "C.28.11", "C.28.12", "C.28.13", "C.28.14", "C.28.15", "C.28.21", "C.28.22", "C.28.23", "C.28.24", "C.28.25", "C.28.29", "C.28.30", "C.28.41", "C.28.42", "C.28.91", "C.28.92", "C.28.93", "C.28.94", "C.28.95", "C.28.96", "C.28.97", "C.28.99", "C.29.10", "C.29.20", "C.29.31", "C.29.32", "C.30.11", "C.30.12", "C.30.13", "C.30.20", "C.30.31", "C.30.32", "C.30.40", "C.30.91", "C.30.92", "C.30.99", "C.31.00", "C.32.11", "C.32.12", "C.32.13", "C.32.20", "C.32.30", "C.32.40", "C.32.50", "C.32.91", "C.32.99", "C.33.11", "C.33.12", "C.33.13", "C.33.14", "C.33.15", "C.33.16", "C.33.17", "C.33.18", "C.33.19", "C.33.20", "D.35.11", "D.35.12", "D.35.13", "D.35.14", "D.35.15", "D.35.16", "D.35.21", "D.35.22", "D.35.23", "D.35.24", "D.35.30", "D.35.40", "E.36.00", "E.37.00", "E.38.11", "E.38.12", "E.38.21", "E.38.22", "E.38.23", "E.38.31", "E.38.32", "E.38.33", "E.39.00", "F.41.00", "F.42.11", "F.42.12", "F.42.13", "F.42.21", "F.42.22", "F.42.91", "F.42.99", "F.43.11", "F.43.12", "F.43.13", "F.43.21", "F.43.22", "F.43.23", "F.43.24", "F.43.31", "F.43.32", "F.43.33", "F.43.34", "F.43.35", "F.43.41", "F.43.42", "F.43.50", "F.43.60", "F.43.91", "F.43.99", "G.46.11", "G.46.12", "G.46.13", "G.46.14", "G.46.15", "G.46.16", "G.46.17", "G.46.18", "G.46.19", "G.46.21", "G.46.22", "G.46.23", "G.46.24", "G.46.31", "G.46.32", "G.46.33", "G.46.34", "G.46.35", "G.46.36", "G.46.37", "G.46.38", "G.46.39", "G.46.41", "G.46.42", "G.46.43", "G.46.44", "G.46.45", "G.46.46", "G.46.47", "G.46.48", "G.46.49", "G.46.50", "G.46.61", "G.46.62", "G.46.63", "G.46.64", "G.46.71", "G.46.72", "G.46.73", "G.46.81", "G.46.82", "G.46.83", "G.46.84", "G.46.85", "G.46.86", "G.46.87", "G.46.89", "G.46.90", "G.47.11", "G.47.12", "G.47.21", "G.47.22", "G.47.23", "G.47.24", "G.47.25", "G.47.26", "G.47.27", "G.47.30", "G.47.40", "G.47.51", "G.47.52", "G.47.53", "G.47.54", "G.47.55", "G.47.61", "G.47.62", "G.47.63", "G.47.64", "G.47.69", "G.47.71", "G.47.72", "G.47.73", "G.47.74", "G.47.75", "G.47.76", "G.47.77", "G.47.78", "G.47.79", "G.47.81", "G.47.82", "G.47.83", "G.47.91", "G.47.92", "H.49.11", "H.49.12", "H.49.20", "H.49.31", "H.49.32", "H.49.33", "H.49.34", "H.49.39", "H.49.41", "H.49.42", "H.49.50", "H.50.10", "H.50.20", "H.50.30", "H.50.40", "H.51.10", "H.51.21", "H.51.22", "H.52.10", "H.52.21", "H.52.22", "H.52.23", "H.52.24", "H.52.25", "H.52.26", "H.52.31", "H.52.32", "H.53.10", "H.53.20", "H.53.30", "I.55.10", "I.55.20", "I.55.30", "I.55.40", "I.55.90", "I.56.11", "I.56.12", "I.56.21", "I.56.22", "I.56.30", "I.56.40", "J.58.11", "J.58.12", "J.58.13", "J.58.19", "J.58.21", "J.58.29", "J.59.11", "J.59.12", "J.59.13", "J.59.14", "J.59.20", "J.60.10", "J.60.20", "J.60.31", "J.60.39", "K.61.10", "K.61.20", "K.61.90", "K.62.10", "K.62.20", "K.62.90", "K.63.10", "K.63.91", "K.63.92", "L.64.11", "L.64.19", "L.64.21", "L.64.22", "L.64.31", "L.64.32", "L.64.91", "L.64.92", "L.64.99", "L.65.11", "L.65.12", "L.65.20", "L.65.30", "L.66.11", "L.66.12", "L.66.19", "L.66.21", "L.66.22", "L.66.29", "L.66.30", "M.68.11", "M.68.12", "M.68.20", "M.68.31", "M.68.32", "N.69.10", "N.69.20", "N.70.10", "N.70.20", "N.71.11", "N.71.12", "N.71.20", "N.72.10", "N.72.20", "N.73.11", "N.73.12", "N.73.20", "N.73.30", "N.74.11", "N.74.12", "N.74.13", "N.74.14", "N.74.20", "N.74.30", "N.74.91", "N.74.99", "N.75.00", "O.77.11", "O.77.12", "O.77.21", "O.77.22", "O.77.31", "O.77.32", "O.77.33", "O.77.34", "O.77.35", "O.77.39", "O.77.40", "O.77.51", "O.77.52", "O.78.10", "O.78.20", "O.79.11", "O.79.12", "O.79.90", "O.80.01", "O.80.09", "O.81.10", "O.81.21", "O.81.22", "O.81.23", "O.81.30", "O.82.10", "O.82.20", "O.82.30", "O.82.40", "O.82.91", "O.82.92", "O.82.99", "P.84.11", "P.84.12", "P.84.13", "P.84.21", "P.84.22", "P.84.23", "P.84.24", "P.84.25", "P.84.30", "Q.85.10", "Q.85.20", "Q.85.31", "Q.85.32", "Q.85.33", "Q.85.40", "Q.85.51", "Q.85.52", "Q.85.53", "Q.85.59", "Q.85.61", "Q.85.69", "R.86.10", "R.86.21", "R.86.22", "R.86.23", "R.86.91", "R.86.92", "R.86.93", "R.86.94", "R.86.95", "R.86.96", "R.86.97", "R.86.99", "R.87.10", "R.87.20", "R.87.30", "R.87.91", "R.87.99", "R.88.10", "R.88.91", "R.88.99", "S.90.11", "S.90.12", "S.90.13", "S.90.20", "S.90.31", "S.90.39", "S.91.11", "S.91.12", "S.91.21", "S.91.22", "S.91.30", "S.91.41", "S.91.42", "S.92.00", "S.93.11", "S.93.12", "S.93.13", "S.93.19", "S.93.21", "S.93.29", "T.94.11", "T.94.12", "T.94.20", "T.94.91", "T.94.92", "T.94.99", "T.95.10", "T.95.21", "T.95.22", "T.95.23", "T.95.24", "T.95.25", "T.95.29", "T.95.31", "T.95.32", "T.95.40", "T.96.10", "T.96.21", "T.96.22", "T.96.23", "T.96.30", "T.96.40", "T.96.91", "T.96.99", "U.97.00", "U.98.10", "U.98.20"]); export const businessIndustry = z.object({nace_rev: businessIndustryNaceRev, code: z.union([businessIndustryCodeEnumTwo, businessIndustryCodeEnumTwoOne])}); export const address = z.object({line_1: z.string().max(128), line_2: z.string().max(128).optional(), postal_code: z.string().max(50), city: z.string().max(150), country: z.string().min(2).max(2)}); export const businessTaxResidencyResponse = z.object({country: z.string().min(2).max(2), tax_number: z.string(), vat_id: z.string().optional(), business_identification_number: z.string().min(1).max(255).optional()}); export const businessNFETypeEnum = z.enum(["active", "passive"]); export const businessResponse = z.object({id: z.string(), name: z.string(), registration: businessRegistrationResponse, industry: businessIndustry.optional(), registered_address: address, taxation_countries: z.array(businessTaxResidencyResponse), fatca_relevant: z.boolean().optional(), expected_annual_revenue: z.string().optional(), currency: z.string().min(3).max(3).optional(), legal_entity_identifier: z.string().optional(), single_tier_ownership: z.boolean().nullable().optional(), nfe_type: businessNFETypeEnum.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Create Business * * POST /businesses */ export const createApiBusinesses = async (args: CreateApiBusinessesArgs, options?: CreateApiBusinessesOptions) => { const {baseUrl = "https://sandbox.api.lemon.markets/v1", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args['LMG-Data-Privacy-Access-Principal'] != null) headers.set("LMG-Data-Privacy-Access-Principal", String(args['LMG-Data-Privacy-Access-Principal'])) if (args['LMG-Data-Privacy-Access-Justification'] != null) headers.set("LMG-Data-Privacy-Access-Justification", String(args['LMG-Data-Privacy-Access-Justification'])) if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/businesses${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(businessResponse, await res.json()) };