import {z} from 'zod' export type GetApiApiV2AccountHolderSoleTraderOptions = {baseUrl: string, Bearer?: string | undefined, fetch?: typeof fetch | undefined}; export const categoryDescription = z.object({locale: z.string().optional(), displayText: z.string().optional()}); export const soleTrader = z.object({tradingAsName: z.string().optional(), businessCategory: z.enum(["NOT_PROVIDED", "ARTS_CRAFTS_AND_COLLECTIBLES", "BABY", "BEAUTY_AND_FRAGRANCES", "BOOKS_AND_MAGAZINES", "BUSINESS_TO_BUSINESS", "CLOTHING_ACCESSORIES_AND_SHOES", "COMPUTERS_ACCESSORIES_AND_SERVICES", "EDUCATION", "ELECTRONICS_AND_TELECOM", "ENTERTAINMENT_AND_MEDIA", "FINANCIAL_SERVICES_AND_PRODUCTS", "FOOD_RETAIL_AND_SERVICE", "GIFTS_AND_FLOWERS", "HEALTH_AND_PERSONAL_CARE", "HOME_AND_GARDEN", "NONPROFIT", "PETS_AND_ANIMALS", "RELIGION_AND_SPIRITUALITY_FOR_PROFIT", "RETAIL_NOT_ELSEWHERE_CLASSIFIED", "SERVICES_OTHER", "SPORTS_AND_OUTDOORS", "TOYS_AND_HOBBIES", "TRAVEL", "VEHICLE_SERVICE_AND_ACCESSORIES", "PROFESSIONAL_SERVICES", "RETAIL_BARS_AND_RESTAURANTS", "ENTERTAINMENT_AND_TRAVEL", "HEALTH_AND_SOCIAL_CARE", "TRANSPORT_AND_VEHICLES", "CONSTRUCTION_TRADES_AND_CLEANING", "PROPERTY", "EXERCISE_AND_FITNESS", "EDUCATION_AND_SKILLS", "NON_PROFIT", "MANUFACTURING_RND_AND_AGRICULTURE"]).optional(), businessSubCategory: z.enum(["NOT_PROVIDED", "ART_AND_CRAFT_SUPPLIES", "ART_DEALERS_AND_GALLERIES", "CAMERA_AND_PHOTOGRAPHIC_SUPPLIES", "DIGITAL_ART", "MEMORABILIA", "MUSIC_STORE_INSTRUMENTS_AND_SHEET_MUSIC", "SEWING_NEEDLEWORK_AND_FABRICS", "STAMP_AND_COIN", "STATIONARY_PRINTING_AND_WRITING_PAPER", "VINTAGE_AND_COLLECTIBLES", "CLOTHING", "FURNITURE", "BABY_PRODUCTS_OTHER", "SAFETY_AND_HEALTH", "BATH_AND_BODY", "FRAGRANCES_AND_PERFUMES", "MAKEUP_AND_COSMETICS", "AUDIO_BOOKS", "DIGITAL_CONTENT", "EDUCATIONAL_AND_TEXTBOOKS", "FICTION_AND_NONFICTION", "MAGAZINES", "BOOKS_PUBLISHING_AND_PRINTING", "RARE_AND_USED_BOOKS", "ACCOUNTING", "ADVERTISING", "AGRICULTURAL", "ARCHITECTURAL_ENGINEERING_AND_SURVEYING_SERVICES", "CHEMICALS_AND_ALLIED_PRODUCTS", "COMMERCIAL_PHOTOGRAPHY_ART_AND_GRAPHICS", "CONSTRUCTION", "CONSULTING_SERVICES", "EDUCATIONAL_SERVICES", "EQUIPMENT_RENTALS_AND_LEASING_SERVICES", "EQUIPMENT_REPAIR_SERVICES", "HIRING_SERVICES", "INDUSTRIAL_AND_MANUFACTURING_SUPPLIES", "MAILING_LISTS", "MARKETING", "MULTILEVEL_MARKETING", "OFFICE_AND_COMMERCIAL_FURNITURE", "OFFICE_SUPPLIES_AND_EQUIPMENT", "PUBLISHING_AND_PRINTING", "QUICK_COPY_AND_REPRODUCTION_SERVICES", "SHIPPING_AND_PACKING", "STENOGRAPHIC_AND_SECRETARIAL_SUPPORT_SERVICES", "WHOLESALE", "CHILDRENS_CLOTHING", "MENS_CLOTHING", "WOMENS_CLOTHING", "SHOES", "MILITARY_AND_CIVIL_SERVICE_UNIFORMS", "ACCESSORIES", "RETAIL_FINE_JEWELRY_AND_WATCHES", "WHOLESALE_PRECIOUS_STONES_AND_METALS", "FASHION_JEWELLERY", "COMPUTER_AND_DATA_PROCESSING_SERVICES", "DESKTOPS_LAPTOPS_AND_NOTEBOOKS", "COMPUTER_DIGITAL_CONTENT", "ECOMMERCE_SERVICES", "MAINTENANCE_AND_REPAIR_SERVICES", "MONITORS_AND_PROJECTORS", "NETWORKING", "ONLINE_GAMING", "PARTS_AND_ACCESSORIES", "PERIPHERALS", "SOFTWARE", "TRAINING_SERVICES", "WEB_HOSTING_AND_DESIGN", "BUSINESS_AND_SECRETARIAL_SCHOOLS", "CHILD_DAYCARE_SERVICES", "DANCE_HALLS_STUDIOS_AND_SCHOOLS", "VOCATIONAL_AND_TRADE_SCHOOLS", "CAMERAS_CAMCORDERS_AND_EQUIPMENT", "CELL_PHONES_PDAS_AND_PAGERS", "GENERAL_ELECTRONIC_ACCESSORIES", "HOME_AUDIO", "HOME_ELECTRONICS", "SECURITY_AND_SURVEILLANCE", "TELECOMMUNICATION_EQUIPMENT_AND_SALES", "TELECOMMUNICATION_SERVICES", "TELEPHONE_CARDS", "ENTERTAINMENT_MEMORABILIA", "MOVIE_TICKETS", "MOVIES_DVDS_VIDEOTAPES", "MUSIC_CDS_CASSETTES_AND_ALBUMS", "CABLE_SATELLITE_AND_OTHER_PAY_TV_AND_RADIO", "CONCERT_TICKETS", "THEATER_TICKETS", "TOYS_AND_GAMES", "ENTERTAINMENT_DIGITAL_CONTENT", "ENTERTAINERS", "ONLINE_GAMES", "VIDEO_GAMES_AND_SYSTEMS", "FINANCIAL_ACCOUNTING", "DEBT_COUNSELING_SERVICE", "FINANCIAL_AND_INVESTMENT_ADVICE", "REAL_ESTATE_AGENT", "RENTAL_PROPERTY_MANAGEMENT", "ALCOHOLIC_BEVERAGES", "CATERING_SERVICES", "COFFEE_AND_TEA", "GOURMET_FOODS", "SPECIALTY_AND_MISCELLANEOUS_FOOD_STORES", "RESTAURANT", "TOBACCO", "VITAMINS_AND_SUPPLEMENTS", "FLORIST", "GIFT_CARD_NOVELTY_AND_SOUVENIR_SHOPS", "GIFTS_GOURMET_FOODS", "NURSERY_PLANTS_AND_FLOWERS", "PARTY_SUPPLIES", "DENTAL_CARE", "MEDICAL_CARE", "MEDICAL_EQUIPMENT_AND_SUPPLIES", "VISION_CARE", "HEALTH_VITAMINS_AND_SUPPLEMENTS", "APPLIANCES", "HOME_ART_DEALERS_AND_GALLERIES", "BED_AND_BATH", "CONSTRUCTION_MATERIAL", "DRAPERY_WINDOW_COVERING_AND_UPHOLSTERY", "EXTERMINATING_AND_DISINFECTING_SERVICES", "FIREPLACE_AND_FIREPLACE_SCREENS", "HOME_FURNITURE", "GARDEN_SUPPLIES", "GLASS_PAINT_AND_WALLPAPER", "HARDWARE_AND_TOOLS", "HOME_DECOR", "HOUSEWARES", "KITCHENWARE", "LANDSCAPING", "RUGS_AND_CARPETS", "SECURITY_AND_SURVEILLANCE_EQUIPMENT", "SWIMMING_POOLS_AND_SPAS", "CHARITY", "POLITICAL", "RELIGIOUS", "OTHER", "PERSONAL", "EDUCATIONAL", "MEDICATION_AND_SUPPLEMENTS", "PET_SHOPS_PET_FOOD_AND_SUPPLIES", "SPECIALTY_OR_RARE_PETS", "VETERINARY_SERVICES", "MEMBERSHIP_SERVICES", "MERCHANDISE", "SERVICES_NOT_ELSEWHERE_CLASSIFIED", "RETAIL_CHEMICALS_AND_ALLIED_PRODUCTS", "DEPARTMENT_STORE", "DISCOUNT_STORE", "DURABLE_GOODS", "NONDURABLE_GOODS", "USED_AND_SECONDHAND_STORE", "VARIETY_STORE", "SERVICES_ADVERTISING", "SHOPPING_SERVICES_AND_BUYING_CLUBS", "CAREER_SERVICES", "CARPENTRY", "CHILD_CARE_SERVICES", "CLEANING_AND_MAINTENANCE", "COMMERCIAL_PHOTOGRAPHY", "SERVICES_COMPUTER_AND_DATA_PROCESSING_SERVICES", "COMPUTER_NETWORK_SERVICES", "SERVICES_CONSULTING_SERVICES", "COUNSELING_SERVICES", "COURIER_SERVICES", "SERVICES_DENTAL_CARE", "SERVICES_ECOMMERCE_SERVICES", "ELECTRICAL_AND_SMALL_APPLIANCE_REPAIR", "ENTERTAINMENT", "EQUIPMENT_RENTAL_AND_LEASING_SERVICES", "EVENT_AND_WEDDING_PLANNING", "GENERAL_CONTRACTORS", "GRAPHIC_AND_COMMERCIAL_DESIGN", "HEALTH_AND_BEAUTY_SPAS", "IDS_LICENSES_AND_PASSPORTS", "IMPORTING_AND_EXPORTING", "INFORMATION_RETRIEVAL_SERVICES", "LANDSCAPING_AND_HORTICULTURAL", "LEGAL_SERVICES_AND_ATTORNEYS", "LOCAL_DELIVERY_SERVICE", "SERVICES_MEDICAL_CARE", "MEMBERSHIP_CLUBS_AND_ORGANIZATIONS", "SERVICES_MISC_PUBLISHING_AND_PRINTING", "MOVING_AND_STORAGE", "PHOTOFINISHING", "PHOTOGRAPHIC_STUDIOS__PORTRAITS", "PROTECTIVE_AND_SECURITY_SERVICES", "SERVICES_QUICK_COPY_AND_REPRODUCTION_SERVICES", "RADIO_TELEVISION_AND_STEREO_REPAIR", "REAL_ESTATE_AGENT_", "SERVICES_RENTAL_PROPERTY_MANAGEMENT", "REUPHOLSTERY_AND_FURNITURE_REPAIR", "SERVICES_SERVICES_NOT_ELSEWHERE_CLASSIFIED", "SERVICES_SHIPPING_AND_PACKING", "SWIMMING_POOL_SERVICES", "TAILORS_AND_ALTERATIONS", "TELECOMMUNICATION_SERVICE", "UTILITIES", "SERVICES_VISION_CARE", "WATCH_CLOCK_AND_JEWELRY_REPAIR", "ATHLETIC_SHOES", "BICYCLE_SHOP_SERVICE_AND_REPAIR", "BOATING_SAILING_AND_ACCESSORIES", "CAMPING_AND_OUTDOORS", "SPORTS_DANCE_HALLS_STUDIOS_AND_SCHOOLS", "EXERCISE_AND_FITNESS", "FAN_GEAR_AND_MEMORABILIA", "HUNTING", "MARTIAL_ARTS_WEAPONS", "SPORT_GAMES_AND_TOYS", "SPORTING_EQUIPMENT", "SPORTS_SWIMMING_POOLS_AND_SPAS", "ARTS_AND_CRAFTS", "HOBBIES_CAMERA_AND_PHOTOGRAPHIC_SUPPLIES", "HOBBY_TOY_AND_GAME_SHOPS", "HOBBIES_MEMORABILIA", "MUSIC_STORE__INSTRUMENTS_AND_SHEET_MUSIC", "HOBBIES_STAMP_AND_COIN", "HOBBIES_STATIONARY_PRINTING_AND_WRITING_PAPER", "HOBBIES_VINTAGE_AND_COLLECTIBLES", "HOBBIES_VIDEO_GAMES_AND_SYSTEMS", "AIRLINE", "AUTO_RENTAL", "BUS_LINE", "CRUISES", "LODGING_AND_ACCOMMODATIONS", "LUGGAGE_AND_LEATHER_GOODS", "RECREATIONAL_SERVICES", "SPORTING_AND_RECREATION_CAMPS", "TAXICABS_AND_LIMOUSINES", "TIMESHARES", "TOURS", "TRAILER_PARKS_OR_CAMPGROUNDS", "TRANSPORTATION_SERVICES__OTHER", "TRAVEL_AGENCY", "NEW_PARTS_AND_SUPPLIES__MOTOR_VEHICLE", "USED_PARTS__MOTOR_VEHICLE", "AUDIO_AND_VIDEO", "AUTO_BODY_REPAIR_AND_PAINT", "SERVICES_AUTO_RENTAL", "AUTO_SERVICE", "AUTOMOTIVE_TIRE_SUPPLY_AND_SERVICE", "BOAT_RENTAL_AND_LEASES", "CAR_WASH", "MOTOR_HOME_AND_RECREATIONAL_VEHICLE_RENTAL", "TOOLS_AND_EQUIPMENT", "TOWING_SERVICE", "TRUCK_AND_UTILITY_TRAILER_RENTAL", "VEHICLE_ACCESSORIES", "CLEANING", "DECORATING", "ELECTRICIAN", "PLUMBER", "GAS_AND_HEATING", "CARPENTRY_TRADE", "ROOFING", "GARDENING_AND_TREE_SURGERY", "GENERAL_CONTRACTOR", "CONSTRUCTION_SUPPLIER", "WASTE_AND_RECYCLING", "SCRAP_METAL", "SITE_AND_BUILDING_MANAGEMENT", "PEST_CONTROL", "CONSTRUCTION_TRADES_AND_CLEANING_OTHER", "PERSONAL_TUTOR", "MUSIC_TEACHERS", "PROFESSIONAL_TRAINER", "PUBLIC_SPEAKING", "NURSERY", "CHILDMINDER", "NANNY_OR_AU_PAIR", "CHILDRENS_ACTIVITIES", "STUDENT_RECRUITMENT", "STUDENT_SUPPORT", "SCHOOLS_COLLEGES_AND_TRAINING", "EDUCATION_AND_SKILLS_OTHER", "DIGITAL_CONTENT_OR_GAMES", "VIDEO_PRODUCTION", "INFLUENCER", "PROMOTION_AND_PUBLISHING", "CATERING", "ENTERTAINERS_AND_DJS", "EVENTS_AND_WEDDINGS", "EVENTS_PRODUCTS", "EVENTS_STAFFING_AND_SERVICES", "TRAVEL_AGENT", "TOUR_GUIDE", "LODGING_AND_ACCOMMODATION", "TV_AND_RADIO", "MUSICIAN_OR_GROUPS", "ENTERTAINMENT_AND_TRAVEL_OTHER", "PERSONAL_TRAINER", "SPORTS_COACH", "SPORTS_CLUB", "SPORTS_AND_FITNESS_VENUE", "GYM_OPERATOR", "CLASS_INSTRUCTOR", "EXERCISE_AND_FITNESS_OTHER", "DOCTOR_NURSE_OR_MIDWIFE", "PHARMACY", "PERSONAL_AND_SOCIAL_CARE", "PHYSIOTHERAPIST", "NUTRITION_AND_DIET", "MENTAL_HEALTH_AND_COUNSELLING", "MEDICAL_EQUIPMENT_AND_SUPPLIERS", "DENTAL", "OPTICIAN", "OTHER_MEDICAL_THERAPY", "CHIROPRACTOR_OR_OSTEOPATH", "PODIATRIST", "COMPLIMENTARY_AND_ALTERNATIVE_MEDICINE", "HEALTH_AND_SOCIAL_CARE_OTHER", "MANUFACTURING", "INDUSTRIAL_ENGINEER", "FOOD_OR_DRINK_PRODUCTION", "RESEARCH_AND_DEVELOPMENT", "LIVESTOCK_FARMING", "CROP_FARMING", "HORTICULTURE_OR_PLANT_NURSERY", "FORESTRY", "VETERINARY", "SUPPLIER_TO_AGRICULTURE_OR_INDUSTRY", "EQUESTRIAN", "ANIMAL_CARE", "ARMS_MANUFACTURER", "MINING", "OIL_AND_GAS", "COAL", "COMMERCIAL_FISHING", "MANUFACTURING_RND_AND_AGRICULTURE_OTHER", "ANIMALS", "ARTS_CULTURE_AND_HUMANITIES", "COMMUNITY_DEVELOPMENT", "EDUCATION", "ENVIRONMENT", "HEALTH_AND_DISEASE", "HUMAN_AND_CIVIL_RIGHTS", "CHILDREN_YOUTH_AND_FAMILY", "HOMELESSNESS", "INTERNATIONAL", "RESEARCH_AND_PUBLIC_POLICY", "RELIGION", "POLITICAL_PARTY", "NON_PROFIT_OTHER", "ARCHITECT_STRUCTURAL_ENGINEER_OR_SURVEYOR", "ACCOUNTANCY_AND_BOOKKEEPING", "BUSINESS_SERVICES", "FINANCIAL_OR_INVESTMENT_ADVICE", "MORTGAGE_BROKERS", "SOFTWARE_AND_IT", "WEBSITE_DEVELOPMENT", "MANAGEMENT_CONSULTANCY", "PROJECT_MANAGEMENT", "MARKETING_ADVERTISING_AND_DESIGN", "GRAPHIC_DESIGN_AND_ILLUSTRATION", "INTERIOR_DESIGN", "RECRUITMENT_AND_HIRING", "LEGAL", "PHOTOGRAPHY", "SECURITY", "PROBATE_ESTATE_MANAGEMENT", "PAYROLL_PROVIDER", "INSOLVENCY_PRACTITIONER", "TRUST_AND_COMPANY_SERVICE", "PROFESSIONAL_SERVICES_OTHER", "RETAIL_DEPOSIT_TAKER", "DEBT_MANAGEMENT", "DEBT_COLLECTOR", "ASSET_FINANCE", "BUY_NOW_PAY_LATER", "PEER_TO_PEER_LENDING", "PAY_DAY_LENDER", "PAWN_BROKER", "CREDIT_CARDS", "TERM_LOANS", "MORTGAGE_LENDER", "CLAIMS_MANAGEMENT", "EMONEY_PREPAID", "INSURANCE", "PENSION_PROVIDER", "CREDIT_REFERENCE_AGENCY", "CURRENCY_EXCHANGE", "CRYPTO_EXCHANGE", "COMMODITY_EXCHANGE", "MONEY_TRANSFER", "INVESTMENT_BANK", "FUND_MANAGER", "FUND_MANAGEMENT", "INTERNATIONAL_FINANCE", "MERCHANT_BANKING", "MARKET_MAKER", "SHARE_TRADING", "EQUITIES_TRADING", "DERIVATIVES_TRADING", "FX_TRADING", "INVESTMENT_MANAGEMENT", "ASSET_MANAGEMENT", "INVESTMENT_DEAL_ARRANGEMENTS", "BEARER_SHARES", "PROPERTY_OWNER", "PROPERTY_INVESTOR", "PROPERTY_INVESTMENT_FUND", "RESIDENTS_ASSOCIATION", "LEASEHOLD_OR_FREEHOLD", "HOLIDAY_OR_SHORT_TERM_LETS", "PROPERTY_REDEVELOPMENT", "ESTATE_AGENT", "PROPERTY_MANAGEMENT", "STORAGE", "PROPERTY_OTHER", "RESTAURANT_OR_CAFE", "TAKEAWAY", "STREET_FOOD_OR_MARKET_STALL", "RETAIL", "WHOLESALING", "SALONS", "NAIL_PARLOUR", "TATTOO_PARLOUR", "AT_HOME_SERVICES", "LICENSED_RETAIL", "LICENSED_FOOD_VENUE", "NEWSAGENTS_CONVENIENCE_STORES", "MOBILE_PHONE_SALES", "IMPORT_EXPORT", "AUCTION_HOUSE", "FIREARMS_MILITARY_GOODS", "GAMBLING_BETTING", "JEWELLERY_PRECIOUS_STONES_OR_METALS", "ANTIQUE_ART_DEALER", "DATING_ESCORT_SERVICES", "ADULT_INDUSTRY", "ILLEGAL_OR_UNLICENSED_DRUGS", "DROPSHIPPING", "RETAIL_BARS_AND_RESTAURANTS_OTHER", "HGV_OR_BUS_OR_COACH_DRIVER", "TAXI_OR_PRIVATE_HIRE_DRIVER", "TRAIN_DRIVER", "OTHER_PROFESSIONAL_DRIVER", "HOME_DELIVERY_AND_COURIER_FIRMS", "HAULAGE_FIRMS", "TAXI_OR_PRIVATE_HIRE_OPERATOR", "MINIBUS_OR_COACH_OPERATOR", "VEHICLE_REPAIR_AND_MAINTENANCE", "NEW_CARS_OR_VEHICLE_SALES", "VEHICLE_RENTAL", "BICYCLE_SHOPS", "USED_CAR_OR_VEHICLE_SALES", "VEHICLE_PARTS", "CAR_WASHING", "TRANSPORT_AND_VEHICLES_OTHER"]).optional(), businessCategoryDescriptions: z.array(categoryDescription).optional(), businessSubCategoryDescriptions: z.array(categoryDescription).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 }; /** * Get sole trader business details * * GET /api/v2/account-holder/sole-trader */ export const getApiApiV2AccountHolderSoleTrader = async (options: GetApiApiV2AccountHolderSoleTraderOptions) => { const {baseUrl, fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (Bearer !== undefined) headers.set('authorization', `Bearer ${Bearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/api/v2/account-holder/sole-trader${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(soleTrader, await res.json()) };