import {z} from 'zod' export type DocumentType = 'INVOICE' | 'CREDIT_NOTE' | 'DEBIT_NOTE' | 'SELFBILLING_INVOICE' | 'SELFBILLING_CREDIT_NOTE'; export type DocumentState = 'DRAFT' | 'TRANSIT' | 'FAILED' | 'SENT' | 'RECEIVED'; export type DocumentDirection = 'INBOUND' | 'OUTBOUND'; export type CurrencyCode = 'EUR' | 'USD' | 'GBP' | 'JPY' | 'CHF' | 'CAD' | 'AUD' | 'NZD' | 'CNY' | 'INR' | 'SEK' | 'NOK' | 'DKK' | 'SGD' | 'HKD'; export type TaxCategoryCode = 'AE' | 'E' | 'S' | 'Z' | 'G' | 'O' | 'K' | 'L' | 'M' | 'B'; export type VATExemptionCode = 'VATEX-EU-79-C' | 'VATEX-EU-132' | 'VATEX-EU-132-1A' | 'VATEX-EU-132-1B' | 'VATEX-EU-132-1C' | 'VATEX-EU-132-1D' | 'VATEX-EU-132-1E' | 'VATEX-EU-132-1F' | 'VATEX-EU-132-1G' | 'VATEX-EU-132-1H' | 'VATEX-EU-132-1I' | 'VATEX-EU-132-1J' | 'VATEX-EU-132-1K' | 'VATEX-EU-132-1L' | 'VATEX-EU-132-1M' | 'VATEX-EU-132-1N' | 'VATEX-EU-132-1O' | 'VATEX-EU-132-1P' | 'VATEX-EU-132-1Q' | 'VATEX-EU-143' | 'VATEX-EU-143-1A' | 'VATEX-EU-143-1B' | 'VATEX-EU-143-1C' | 'VATEX-EU-143-1D' | 'VATEX-EU-143-1E' | 'VATEX-EU-143-1F' | 'VATEX-EU-143-1FA' | 'VATEX-EU-143-1G' | 'VATEX-EU-143-1H' | 'VATEX-EU-143-1I' | 'VATEX-EU-143-1J' | 'VATEX-EU-143-1K' | 'VATEX-EU-143-1L' | 'VATEX-EU-144' | 'VATEX-EU-146-1E' | 'VATEX-EU-148' | 'VATEX-EU-148-A' | 'VATEX-EU-148-B' | 'VATEX-EU-148-C' | 'VATEX-EU-148-D' | 'VATEX-EU-148-E' | 'VATEX-EU-148-F' | 'VATEX-EU-148-G' | 'VATEX-EU-151' | 'VATEX-EU-151-1A' | 'VATEX-EU-151-1AA' | 'VATEX-EU-151-1B' | 'VATEX-EU-151-1C' | 'VATEX-EU-151-1D' | 'VATEX-EU-151-1E' | 'VATEX-EU-159' | 'VATEX-EU-309' | 'VATEX-EU-AE' | 'VATEX-EU-D' | 'VATEX-EU-F' | 'VATEX-EU-G' | 'VATEX-EU-I' | 'VATEX-EU-IC' | 'VATEX-EU-O' | 'VATEX-EU-J' | 'VATEX-FR-FRANCHISE' | 'VATEX-FR-CNWVAT'; export type PaymentDetailCreate = {iban?: (string | null) | undefined, swift?: (string | null) | undefined, bank_account_number?: (string | null) | undefined, payment_reference?: (string | null) | undefined}; export type TaxDetailCreateInput = {amount?: (number | string | null) | undefined, rate?: (string | null) | undefined}; export type UnitOfMeasureCode = '10' | '11' | '13' | '14' | '15' | '20' | '21' | '22' | '23' | '24' | '25' | '27' | '28' | '33' | '34' | '35' | '37' | '38' | '40' | '41' | '56' | '57' | '58' | '59' | '60' | '61' | '74' | '77' | '80' | '81' | '85' | '87' | '89' | '91' | '1I' | 'EA' | 'E01' | 'E07' | 'E09' | 'E10' | 'E12' | 'E14' | 'E17' | 'E20' | 'E23' | 'E25' | 'E27' | 'E31' | 'E34' | 'E35' | 'E36' | 'E37' | 'E38' | 'E39' | 'E40' | 'E41' | 'E42' | 'E43' | 'E44' | 'E45' | 'E46' | 'E47' | 'E48' | 'E49' | 'E50' | 'E51' | 'E52' | 'E53' | 'E54' | 'E55' | 'E56' | 'E57' | 'E58' | 'E60' | 'E62' | 'E65' | 'E66' | 'E67' | 'E69' | 'E70' | 'E71' | 'E73' | 'E75' | 'E76' | '2A' | '2B' | '2C' | '2G' | '2H' | '2I' | '2J' | '2K' | '2L' | '2M' | '2N' | '2P' | '2Q' | '2R' | '2U' | '2X' | '2Y' | '2Z' | '3B' | '3C' | '4C' | '4G' | '4H' | '4K' | '4L' | '4M' | '4N' | '4O' | '4P' | '4Q' | '4R' | '4T' | '4U' | '4W' | '4X' | '5A' | '5B' | '5E' | '5J' | 'A10' | 'A11' | 'A12' | 'A13' | 'A14' | 'A15' | 'A16' | 'A17' | 'A18' | 'A19' | 'A2' | 'A20' | 'A21' | 'A22' | 'A23' | 'A24' | 'A26' | 'A27' | 'A28' | 'A29' | 'A3' | 'A30' | 'A31' | 'A32' | 'A33' | 'A34' | 'A35' | 'A36' | 'A37' | 'A38' | 'A39' | 'A4' | 'A40' | 'A41' | 'A42' | 'A43' | 'A44' | 'A45' | 'A46' | 'A47' | 'A48' | 'A49' | 'A5' | 'A50' | 'A51' | 'A52' | 'A53' | 'A54' | 'A55' | 'A56' | 'A57' | 'A58' | 'A59' | 'A6' | 'A60' | 'A61' | 'A62' | 'A63' | 'A64' | 'A65' | 'A66' | 'A67' | 'A68' | 'A69' | 'A7' | 'A70' | 'A71' | 'A72' | 'A73' | 'A74' | 'A75' | 'A76' | 'A77' | 'A78' | 'A79' | 'A8' | 'A80' | 'A81' | 'A82' | 'A83' | 'A84' | 'A85' | 'A86' | 'A87' | 'A88' | 'A89' | 'A9' | 'A90' | 'A91' | 'A92' | 'A93' | 'A94' | 'A95' | 'A96' | 'A97' | 'A98' | 'A99' | 'ACR' | 'AH' | 'AI' | 'AK' | 'AMH' | 'AMT' | 'ANN' | 'B1' | 'B11' | 'B12' | 'B13' | 'B14' | 'B15' | 'B16' | 'B17' | 'B18' | 'B19' | 'B20' | 'B21' | 'B22' | 'B23' | 'B24' | 'B25' | 'B26' | 'B27' | 'B28' | 'B29' | 'B3' | 'B30' | 'B31' | 'B32' | 'B33' | 'B34' | 'B35' | 'B36' | 'B37' | 'B38' | 'B39' | 'B4' | 'B40' | 'B41' | 'B42' | 'B43' | 'B44' | 'B45' | 'B46' | 'B47' | 'B48' | 'B49' | 'B5' | 'B50' | 'B52' | 'B53' | 'B54' | 'B55' | 'B56' | 'B57' | 'B58' | 'B59' | 'B6' | 'B60' | 'B61' | 'B62' | 'B63' | 'B64' | 'B65' | 'B66' | 'B67' | 'B68' | 'B69' | 'B7' | 'B70' | 'B71' | 'B72' | 'B73' | 'B74' | 'B75' | 'B76' | 'B77' | 'B78' | 'B79' | 'B8' | 'B80' | 'B81' | 'B82' | 'B83' | 'B84' | 'B85' | 'B86' | 'B87' | 'B88' | 'B89' | 'B9' | 'B90' | 'B91' | 'B92' | 'B93' | 'B94' | 'B95' | 'B96' | 'B97' | 'B98' | 'B99' | 'BAR' | 'BB' | 'BFT' | 'BHP' | 'BIL' | 'BLD' | 'BLL' | 'BUA' | 'BUI' | 'C0' | 'C10' | 'C11' | 'C12' | 'C13' | 'C14' | 'C15' | 'C16' | 'C17' | 'C18' | 'C19' | 'C20' | 'C21' | 'C22' | 'C23' | 'C24' | 'C25' | 'C26' | 'C27' | 'C28' | 'C29' | 'C30' | 'C31' | 'C32' | 'C33' | 'C34' | 'C35' | 'C36' | 'C37' | 'C38' | 'C39' | 'C40' | 'C41' | 'C42' | 'C43' | 'C44' | 'C45' | 'C46' | 'C47' | 'C48' | 'C49' | 'C50' | 'C51' | 'C52' | 'C53' | 'C54' | 'C55' | 'C56' | 'C57' | 'C58' | 'C59' | 'C60' | 'C61' | 'C63' | 'C64' | 'C65' | 'C66' | 'C67' | 'C68' | 'C69' | 'C70' | 'C71' | 'C72' | 'C73' | 'C74' | 'C75' | 'C76' | 'C77' | 'C78' | 'C79' | 'C80' | 'C81' | 'C82' | 'C83' | 'C84' | 'C85' | 'C86' | 'C87' | 'C88' | 'C89' | 'C90' | 'C91' | 'C92' | 'C93' | 'C94' | 'C95' | 'C96' | 'C97' | 'C98' | 'C99' | 'CDL' | 'CEL' | 'CHU' | 'CIU' | 'CLT' | 'CMK' | 'CMQ' | 'CMT' | 'CNP' | 'CNT' | 'COU' | 'CTG' | 'CTN' | 'CUR' | 'CWA' | 'CWI' | 'DAN' | 'DAY' | 'DB' | 'DD' | 'DG' | 'DI' | 'DLT' | 'DMK' | 'DMQ' | 'DMT' | 'DPC' | 'DPT' | 'DRA' | 'DZN' | 'DZP' | 'FOT' | 'GLL' | 'GLI' | 'GRM' | 'GRO' | 'HUR' | 'HTZ' | 'INH' | 'KGM' | 'KMT' | 'MTR' | 'SMI' | 'MIN' | 'MON' | 'ONZ' | 'LBR' | 'QT' | 'SEC' | 'FTK' | 'INK' | 'MTK' | 'YDK' | 'TNE' | 'VLT' | 'WTT' | 'YRD' | 'FTQ' | 'INQ' | 'MTQ' | 'YDQ' | 'HAR' | 'KLT' | 'MLT' | 'MMT' | 'KMK' | 'MMK' | 'XAA' | 'XAB' | 'XAC' | 'XAD' | 'XAE' | 'XAF' | 'XAG' | 'XAH' | 'XAI' | 'XAJ' | 'XAL' | 'XAM' | 'XAP' | 'XAT' | 'XAV' | 'XB4' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XBE' | 'XBF' | 'XBG' | 'XBH' | 'XBI' | 'XBJ' | 'XBK' | 'XBL' | 'XBM' | 'XBN' | 'XBO' | 'XBP' | 'XBQ' | 'XBR' | 'XBS' | 'XBT' | 'XBU' | 'XBV' | 'XBW' | 'XBX' | 'XBY' | 'XBZ' | 'XCA' | 'XCB' | 'XCC' | 'XCD' | 'XCE' | 'XCF' | 'XCG' | 'XCH' | 'XCI' | 'XCJ' | 'XCK' | 'XCL' | 'XCM' | 'XCN' | 'XCO' | 'XCP' | 'XCQ' | 'XCR' | 'XCS' | 'XCT' | 'XCU' | 'XCV' | 'XCW' | 'XCX' | 'XCY' | 'XCZ' | 'XDA' | 'XDB' | 'XDC' | 'XDD' | 'XDE' | 'XDF' | 'XDG' | 'XDH' | 'XDI' | 'XDJ' | 'XDK' | 'XDL' | 'XDM' | 'XDN' | 'XDP' | 'XDQ' | 'XDR' | 'XDS' | 'XDT' | 'XDU' | 'XDV' | 'XDW' | 'XDX' | 'XDY' | 'XDZ' | 'XEA' | 'XEB' | 'XEC' | 'XED' | 'XEE' | 'XEF' | 'XEG' | 'XEH' | 'XEI' | 'XEJ' | 'XEK' | 'XEL' | 'XEM' | 'XEN' | 'XEP' | 'XEQ' | 'XER' | 'XES' | 'XET' | 'XEU' | 'XEV' | 'XEW' | 'XEX' | 'XEY' | 'XFB' | 'XFC' | 'XFD' | 'XFE' | 'XFF' | 'XFG' | 'XFH' | 'XFI' | 'XFJ' | 'XFK' | 'XFL' | 'XFM' | 'XFN' | 'XFO' | 'XFP' | 'XFQ' | 'XFR' | 'XFS' | 'XFT' | 'XFU' | 'XFV' | 'XFW' | 'XFX' | 'XFY' | 'XFZ' | 'XGA' | 'XGB' | 'XGC' | 'XGD' | 'XGE' | 'XGF' | 'XGG' | 'XGH' | 'XGI' | 'XGJ' | 'XGK' | 'XGL' | 'XGM' | 'XGN' | 'XGO' | 'XGP' | 'XGQ' | 'XGR' | 'XGS' | 'XGT' | 'XGU' | 'XGV' | 'XGW' | 'XGX' | 'XGY' | 'XGZ' | 'XHA' | 'XHB' | 'XHC' | 'XHD' | 'XHE' | 'XHF' | 'XHG' | 'XHH' | 'XHI' | 'XHJ' | 'XHK' | 'XHL' | 'XHM' | 'XHN' | 'XHP' | 'XHQ' | 'XHR' | 'XHS' | 'XHT' | 'XHU' | 'XHV' | 'XHW' | 'XHX' | 'XHY' | 'XHZ' | 'XIA' | 'XIB' | 'XIC' | 'XID' | 'XIE' | 'XIF' | 'XIG' | 'XIH' | 'XII' | 'XIJ' | 'XIK' | 'XIL' | 'XIM' | 'XIN' | 'XIO' | 'XJA' | 'XJB' | 'XJC' | 'XJD' | 'XJE' | 'XJF' | 'XJG' | 'XJH' | 'XJI' | 'XJJ' | 'XJK' | 'XJL' | 'XJM' | 'XJN' | 'XJO' | 'XJP' | 'XJQ' | 'XJR' | 'XJS' | 'XJT' | 'XJU' | 'XJV' | 'XJW' | 'XJX' | 'XJY' | 'XJZ' | 'XLA' | 'XLB' | 'XLC' | 'XLD' | 'XLE' | 'XLF' | 'XLG' | 'XLH' | 'XLI' | 'XLJ' | 'XLK' | 'XLL' | 'XLM' | 'XLN' | 'XLO' | 'XLP' | 'XLQ' | 'XLR' | 'XLS' | 'XLT' | 'XLU' | 'XLV' | 'XLW' | 'XLX' | 'XLY' | 'XLZ' | 'XMA' | 'XMB' | 'XMC' | 'XMD' | 'XME' | 'XMF' | 'XMG' | 'XMH' | 'XMI' | 'XMJ' | 'XMK' | 'XML' | 'XMM' | 'XMN' | 'XMO' | 'XMP' | 'XMQ' | 'XMR' | 'XMS' | 'XMT' | 'XMU' | 'XMV' | 'XMW' | 'XMX' | 'XMY' | 'XMZ' | 'XNA' | 'XNB' | 'XNC' | 'XND' | 'XNE' | 'XNF' | 'XNG' | 'XNH' | 'XNI' | 'XNJ' | 'XNK' | 'XNL' | 'XNM' | 'XOA' | 'XOB' | 'XOC' | 'XOD' | 'XOE' | 'XOF' | 'XOG' | 'XOH' | 'XOI' | 'XOJ' | 'XOK' | 'XOL' | 'XOM' | 'XON' | 'XOO' | 'XOP' | 'XOQ' | 'XOR' | 'XOS' | 'XOT' | 'XOU' | 'XOV' | 'XOW' | 'XOX' | 'XOY' | 'XOZ' | 'XP1' | 'XP2' | 'XP3' | 'XP4' | 'XPA' | 'XPB' | 'XPC' | 'XPD' | 'XPE' | 'XPF' | 'XPG' | 'XPH' | 'XPI' | 'XPJ' | 'XPK' | 'XPL' | 'XPM' | 'XPN' | 'XPO' | 'XPP' | 'XPQ' | 'XPR' | 'XPS' | 'XPT' | 'XPU' | 'XPV' | 'XPW' | 'XPX' | 'XPY' | 'XPZ' | 'XQA' | 'XQB' | 'XQC' | 'XQD' | 'XQE' | 'XQF' | 'XQG' | 'XQH' | 'XQI' | 'XQJ' | 'XQK' | 'XQL' | 'XQM' | 'XQN' | 'XQO' | 'XQP' | 'XQQ' | 'XQR' | 'XQS' | 'XRD' | 'XRE' | 'XRF' | 'XRG' | 'XRH' | 'XRI' | 'XRJ' | 'XRK' | 'XRL' | 'XRM' | 'XRN' | 'XRO' | 'XRP' | 'XRQ' | 'XRR' | 'XRS' | 'XRT' | 'XRU' | 'XRV' | 'XRW' | 'XRX' | 'XRY' | 'XRZ' | 'XSA' | 'XSB' | 'XSC' | 'XSD' | 'XSE' | 'XSF' | 'XSG' | 'XSH' | 'XSI' | 'XSJ' | 'XSK' | 'XSL' | 'XSM' | 'XSN' | 'XSO' | 'XSP' | 'XSQ' | 'XSR' | 'XSS' | 'XST' | 'XSU' | 'XSV' | 'XSW' | 'XSX' | 'XSY' | 'XSZ' | 'XTA' | 'XTB' | 'XTC' | 'XTD' | 'XTE' | 'XTF' | 'XTG' | 'XTI' | 'XTJ' | 'XTK' | 'XTL' | 'XTM' | 'XTN' | 'XTO' | 'XTR' | 'XTS' | 'XTT' | 'XTU' | 'XTV' | 'XTW' | 'XTX' | 'XTY' | 'XTZ' | 'XUC' | 'XUN' | 'XVA' | 'XVG' | 'XVI' | 'XVK' | 'XVL' | 'XVN' | 'XVO' | 'XVP' | 'XVQ' | 'XVR' | 'XVS' | 'XVY' | 'XWA' | 'XWB' | 'XWC' | 'XWD' | 'XWF' | 'XWG' | 'XWH' | 'XWJ' | 'XWK' | 'XWL' | 'XWM' | 'XWN' | 'XWP' | 'XWQ' | 'XWR' | 'XWS' | 'XWT' | 'XWU' | 'XWV' | 'XWW' | 'XWX' | 'XWY' | 'XWZ' | 'XXA' | 'XXB' | 'XXC' | 'XXD' | 'XXF' | 'XXG' | 'XXH' | 'XXJ' | 'XXK' | 'XYA' | 'XYB' | 'XYC' | 'XYD' | 'XYF' | 'XYG' | 'XYH' | 'XYJ' | 'XYK' | 'XYL' | 'XYM' | 'XYN' | 'XYP' | 'XYQ' | 'XYR' | 'XYS' | 'XYT' | 'XYV' | 'XYW' | 'XYX' | 'XYY' | 'XYZ' | 'XZA' | 'XZB' | 'XZC' | 'XZD' | 'XZF' | 'XZG' | 'XZH' | 'XZJ' | 'XZK' | 'XZL' | 'XZM' | 'XZN' | 'XZP' | 'XZQ' | 'XZR' | 'XZS' | 'XZT' | 'XZU' | 'XZV' | 'XZW' | 'XZX' | 'XZY' | 'XZZ' | 'ZZ' | 'NAR' | 'C62' | 'LTR' | 'H87'; export type AllowanceReasonCode = '41' | '42' | '60' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '70' | '71' | '88' | '95' | '100' | '102' | '103' | '104' | '105'; export type AllowanceInput = {reason?: (string | null) | undefined, reason_code?: (AllowanceReasonCode | null) | undefined, multiplier_factor?: (number | string | null) | undefined, amount?: (number | string | null) | undefined, base_amount?: (number | string | null) | undefined, tax_rate?: (number | string | null) | undefined, tax_code?: TaxCategoryCode | undefined}; export type ChargeReasonCode = 'AA' | 'AAA' | 'AAC' | 'AAD' | 'AAE' | 'AAF' | 'AAH' | 'AAI' | 'AAS' | 'AAT' | 'AAV' | 'AAY' | 'AAZ' | 'ABA' | 'ABB' | 'ABC' | 'ABD' | 'ABF' | 'ABK' | 'ABL' | 'ABN' | 'ABR' | 'ABS' | 'ABT' | 'ABU' | 'ACF' | 'ACG' | 'ACH' | 'ACI' | 'ACJ' | 'ACK' | 'ACL' | 'ACM' | 'ACS' | 'ADC' | 'ADE' | 'ADJ' | 'ADK' | 'ADL' | 'ADM' | 'ADN' | 'ADO' | 'ADP' | 'ADQ' | 'ADR' | 'ADT' | 'ADW' | 'ADY' | 'ADZ' | 'AEA' | 'AEB' | 'AEC' | 'AED' | 'AEF' | 'AEH' | 'AEI' | 'AEJ' | 'AEK' | 'AEL' | 'AEM' | 'AEN' | 'AEO' | 'AEP' | 'AES' | 'AET' | 'AEU' | 'AEV' | 'AEW' | 'AEX' | 'AEY' | 'AEZ' | 'AJ' | 'AU' | 'CA' | 'CAB' | 'CAD' | 'CAE' | 'CAF' | 'CAI' | 'CAJ' | 'CAK' | 'CAL' | 'CAM' | 'CAN' | 'CAO' | 'CAP' | 'CAQ' | 'CAR' | 'CAS' | 'CAT' | 'CAU' | 'CAV' | 'CAW' | 'CAX' | 'CAY' | 'CAZ' | 'CD' | 'CG' | 'CS' | 'CT' | 'DAB' | 'DAC' | 'DAD' | 'DAF' | 'DAG' | 'DAH' | 'DAI' | 'DAJ' | 'DAK' | 'DAL' | 'DAM' | 'DAN' | 'DAO' | 'DAP' | 'DAQ' | 'DL' | 'EG' | 'EP' | 'ER' | 'FAA' | 'FAB' | 'FAC' | 'FC' | 'FH' | 'FI' | 'GAA' | 'HAA' | 'HD' | 'HH' | 'IAA' | 'IAB' | 'ID' | 'IF' | 'IR' | 'IS' | 'KO' | 'L1' | 'LA' | 'LAA' | 'LAB' | 'LF' | 'MAE' | 'MI' | 'ML' | 'NAA' | 'OA' | 'PA' | 'PAA' | 'PC' | 'PL' | 'PRV' | 'RAB' | 'RAC' | 'RAD' | 'RAF' | 'RE' | 'RF' | 'RH' | 'RV' | 'SA' | 'SAA' | 'SAD' | 'SAE' | 'SAI' | 'SG' | 'SH' | 'SM' | 'SU' | 'TAB' | 'TAC' | 'TT' | 'TV' | 'V1' | 'V2' | 'WH' | 'XAA' | 'YY' | 'ZZZ'; export type ChargeInput = {reason?: (string | null) | undefined, reason_code?: (ChargeReasonCode | null) | undefined, multiplier_factor?: (number | string | null) | undefined, amount?: (number | string | null) | undefined, base_amount?: (number | string | null) | undefined, tax_rate?: (number | string | null) | undefined, tax_code?: (TaxCategoryCode | null) | undefined}; export type ItemAttribute = {name: string, value?: (string | null) | undefined}; export type LineItemCreateInput = {amount?: (number | string | null) | undefined, date: unknown, description?: (string | null) | undefined, quantity?: (number | string | null) | undefined, product_code?: (string | null) | undefined, tax?: (number | string | null) | undefined, tax_rate?: (number | string | null) | undefined, unit?: (UnitOfMeasureCode | null) | undefined, unit_price?: (number | string | null) | undefined, allowances?: (Array | null) | undefined, charges?: (Array | null) | undefined, item_attributes?: (Array | null) | undefined}; export type DocumentAttachmentCreate = {file_name: string, file_type?: string | undefined, file_size?: number | undefined, file_data?: (string | null) | undefined}; export type DocumentCreate = {document_type?: DocumentType | undefined, state?: DocumentState | undefined, direction?: DocumentDirection | undefined, customer_name?: (string | null) | undefined, customer_id?: (string | null) | undefined, customer_email?: (string | null) | undefined, purchase_order?: (string | null) | undefined, invoice_id?: (string | null) | undefined, invoice_date?: (string | null) | undefined, due_date?: (string | null) | undefined, note?: (string | null) | undefined, vendor_name?: (string | null) | undefined, vendor_email?: (string | null) | undefined, vendor_address?: (string | null) | undefined, vendor_address_recipient?: (string | null) | undefined, customer_address?: (string | null) | undefined, customer_address_recipient?: (string | null) | undefined, billing_address?: (string | null) | undefined, billing_address_recipient?: (string | null) | undefined, shipping_address?: (string | null) | undefined, shipping_address_recipient?: (string | null) | undefined, currency?: CurrencyCode | undefined, tax_code?: TaxCategoryCode | undefined, vatex?: (VATExemptionCode | null) | undefined, vatex_note?: (string | null) | undefined, subtotal?: (number | string | null) | undefined, total_discount?: (number | string | null) | undefined, total_tax?: (number | string | null) | undefined, invoice_total?: (number | string | null) | undefined, amount_due?: (number | string | null) | undefined, previous_unpaid_balance?: (number | string | null) | undefined, remittance_address?: (string | null) | undefined, remittance_address_recipient?: (string | null) | undefined, service_address?: (string | null) | undefined, service_address_recipient?: (string | null) | undefined, service_start_date?: (string | null) | undefined, service_end_date?: (string | null) | undefined, vendor_tax_id?: (string | null) | undefined, vendor_company_id?: (string | null) | undefined, customer_tax_id?: (string | null) | undefined, customer_company_id?: (string | null) | undefined, customer_peppol_id?: (string | null) | undefined, payment_term?: (string | null) | undefined, payment_details?: (Array | null) | undefined, tax_details?: (Array | null) | undefined, items?: Array | undefined, attachments?: (Array | null) | undefined, allowances?: (Array | null) | undefined, charges?: (Array | null) | undefined}; export type CreateApiApiDocumentsArgs = {construct_pdf?: boolean | undefined, body: DocumentCreate}; export type CreateApiApiDocumentsOptions = {baseUrl?: string | undefined, HTTPBearer?: string | undefined, fetch?: typeof fetch | undefined}; export const documentType = z.enum(["INVOICE", "CREDIT_NOTE", "DEBIT_NOTE", "SELFBILLING_INVOICE", "SELFBILLING_CREDIT_NOTE"]); export const documentState = z.enum(["DRAFT", "TRANSIT", "FAILED", "SENT", "RECEIVED"]); export const documentDirection = z.enum(["INBOUND", "OUTBOUND"]); export const currencyCode = z.enum(["EUR", "USD", "GBP", "JPY", "CHF", "CAD", "AUD", "NZD", "CNY", "INR", "SEK", "NOK", "DKK", "SGD", "HKD"]); export const taxCategoryCode = z.enum(["AE", "E", "S", "Z", "G", "O", "K", "L", "M", "B"]); export const vATExemptionCode = z.enum(["VATEX-EU-79-C", "VATEX-EU-132", "VATEX-EU-132-1A", "VATEX-EU-132-1B", "VATEX-EU-132-1C", "VATEX-EU-132-1D", "VATEX-EU-132-1E", "VATEX-EU-132-1F", "VATEX-EU-132-1G", "VATEX-EU-132-1H", "VATEX-EU-132-1I", "VATEX-EU-132-1J", "VATEX-EU-132-1K", "VATEX-EU-132-1L", "VATEX-EU-132-1M", "VATEX-EU-132-1N", "VATEX-EU-132-1O", "VATEX-EU-132-1P", "VATEX-EU-132-1Q", "VATEX-EU-143", "VATEX-EU-143-1A", "VATEX-EU-143-1B", "VATEX-EU-143-1C", "VATEX-EU-143-1D", "VATEX-EU-143-1E", "VATEX-EU-143-1F", "VATEX-EU-143-1FA", "VATEX-EU-143-1G", "VATEX-EU-143-1H", "VATEX-EU-143-1I", "VATEX-EU-143-1J", "VATEX-EU-143-1K", "VATEX-EU-143-1L", "VATEX-EU-144", "VATEX-EU-146-1E", "VATEX-EU-148", "VATEX-EU-148-A", "VATEX-EU-148-B", "VATEX-EU-148-C", "VATEX-EU-148-D", "VATEX-EU-148-E", "VATEX-EU-148-F", "VATEX-EU-148-G", "VATEX-EU-151", "VATEX-EU-151-1A", "VATEX-EU-151-1AA", "VATEX-EU-151-1B", "VATEX-EU-151-1C", "VATEX-EU-151-1D", "VATEX-EU-151-1E", "VATEX-EU-159", "VATEX-EU-309", "VATEX-EU-AE", "VATEX-EU-D", "VATEX-EU-F", "VATEX-EU-G", "VATEX-EU-I", "VATEX-EU-IC", "VATEX-EU-O", "VATEX-EU-J", "VATEX-FR-FRANCHISE", "VATEX-FR-CNWVAT"]); export const paymentDetail = z.object({iban: z.string().nullable().optional(), swift: z.string().nullable().optional(), bank_account_number: z.string().nullable().optional(), payment_reference: z.string().nullable().optional()}); export const taxDetail = z.object({amount: z.string().nullable().optional(), rate: z.string().nullable().optional()}); export const unitOfMeasureCode = z.enum(["10", "11", "13", "14", "15", "20", "21", "22", "23", "24", "25", "27", "28", "33", "34", "35", "37", "38", "40", "41", "56", "57", "58", "59", "60", "61", "74", "77", "80", "81", "85", "87", "89", "91", "1I", "EA", "E01", "E07", "E09", "E10", "E12", "E14", "E17", "E20", "E23", "E25", "E27", "E31", "E34", "E35", "E36", "E37", "E38", "E39", "E40", "E41", "E42", "E43", "E44", "E45", "E46", "E47", "E48", "E49", "E50", "E51", "E52", "E53", "E54", "E55", "E56", "E57", "E58", "E60", "E62", "E65", "E66", "E67", "E69", "E70", "E71", "E73", "E75", "E76", "2A", "2B", "2C", "2G", "2H", "2I", "2J", "2K", "2L", "2M", "2N", "2P", "2Q", "2R", "2U", "2X", "2Y", "2Z", "3B", "3C", "4C", "4G", "4H", "4K", "4L", "4M", "4N", "4O", "4P", "4Q", "4R", "4T", "4U", "4W", "4X", "5A", "5B", "5E", "5J", "A10", "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A2", "A20", "A21", "A22", "A23", "A24", "A26", "A27", "A28", "A29", "A3", "A30", "A31", "A32", "A33", "A34", "A35", "A36", "A37", "A38", "A39", "A4", "A40", "A41", "A42", "A43", "A44", "A45", "A46", "A47", "A48", "A49", "A5", "A50", "A51", "A52", "A53", "A54", "A55", "A56", "A57", "A58", "A59", "A6", "A60", "A61", "A62", "A63", "A64", "A65", "A66", "A67", "A68", "A69", "A7", "A70", "A71", "A72", "A73", "A74", "A75", "A76", "A77", "A78", "A79", "A8", "A80", "A81", "A82", "A83", "A84", "A85", "A86", "A87", "A88", "A89", "A9", "A90", "A91", "A92", "A93", "A94", "A95", "A96", "A97", "A98", "A99", "ACR", "AH", "AI", "AK", "AMH", "AMT", "ANN", "B1", "B11", "B12", "B13", "B14", "B15", "B16", "B17", "B18", "B19", "B20", "B21", "B22", "B23", "B24", "B25", "B26", "B27", "B28", "B29", "B3", "B30", "B31", "B32", "B33", "B34", "B35", "B36", "B37", "B38", "B39", "B4", "B40", "B41", "B42", "B43", "B44", "B45", "B46", "B47", "B48", "B49", "B5", "B50", "B52", "B53", "B54", "B55", "B56", "B57", "B58", "B59", "B6", "B60", "B61", "B62", "B63", "B64", "B65", "B66", "B67", "B68", "B69", "B7", "B70", "B71", "B72", "B73", "B74", "B75", "B76", "B77", "B78", "B79", "B8", "B80", "B81", "B82", "B83", "B84", "B85", "B86", "B87", "B88", "B89", "B9", "B90", "B91", "B92", "B93", "B94", "B95", "B96", "B97", "B98", "B99", "BAR", "BB", "BFT", "BHP", "BIL", "BLD", "BLL", "BUA", "BUI", "C0", "C10", "C11", "C12", "C13", "C14", "C15", "C16", "C17", "C18", "C19", "C20", "C21", "C22", "C23", "C24", "C25", "C26", "C27", "C28", "C29", "C30", "C31", "C32", "C33", "C34", "C35", "C36", "C37", "C38", "C39", "C40", "C41", "C42", "C43", "C44", "C45", "C46", "C47", "C48", "C49", "C50", "C51", "C52", "C53", "C54", "C55", "C56", "C57", "C58", "C59", "C60", "C61", "C63", "C64", "C65", "C66", "C67", "C68", "C69", "C70", "C71", "C72", "C73", "C74", "C75", "C76", "C77", "C78", "C79", "C80", "C81", "C82", "C83", "C84", "C85", "C86", "C87", "C88", "C89", "C90", "C91", "C92", "C93", "C94", "C95", "C96", "C97", "C98", "C99", "CDL", "CEL", "CHU", "CIU", "CLT", "CMK", "CMQ", "CMT", "CNP", "CNT", "COU", "CTG", "CTN", "CUR", "CWA", "CWI", "DAN", "DAY", "DB", "DD", "DG", "DI", "DLT", "DMK", "DMQ", "DMT", "DPC", "DPT", "DRA", "DZN", "DZP", "FOT", "GLL", "GLI", "GRM", "GRO", "HUR", "HTZ", "INH", "KGM", "KMT", "MTR", "SMI", "MIN", "MON", "ONZ", "LBR", "QT", "SEC", "FTK", "INK", "MTK", "YDK", "TNE", "VLT", "WTT", "YRD", "FTQ", "INQ", "MTQ", "YDQ", "HAR", "KLT", "MLT", "MMT", "KMK", "MMK", "XAA", "XAB", "XAC", "XAD", "XAE", "XAF", "XAG", "XAH", "XAI", "XAJ", "XAL", "XAM", "XAP", "XAT", "XAV", "XB4", "XBA", "XBB", "XBC", "XBD", "XBE", "XBF", "XBG", "XBH", "XBI", "XBJ", "XBK", "XBL", "XBM", "XBN", "XBO", "XBP", "XBQ", "XBR", "XBS", "XBT", "XBU", "XBV", "XBW", "XBX", "XBY", "XBZ", "XCA", "XCB", "XCC", "XCD", "XCE", "XCF", "XCG", "XCH", "XCI", "XCJ", "XCK", "XCL", "XCM", "XCN", "XCO", "XCP", "XCQ", "XCR", "XCS", "XCT", "XCU", "XCV", "XCW", "XCX", "XCY", "XCZ", "XDA", "XDB", "XDC", "XDD", "XDE", "XDF", "XDG", "XDH", "XDI", "XDJ", "XDK", "XDL", "XDM", "XDN", "XDP", "XDQ", "XDR", "XDS", "XDT", "XDU", "XDV", "XDW", "XDX", "XDY", "XDZ", "XEA", "XEB", "XEC", "XED", "XEE", "XEF", "XEG", "XEH", "XEI", "XEJ", "XEK", "XEL", "XEM", "XEN", "XEP", "XEQ", "XER", "XES", "XET", "XEU", "XEV", "XEW", "XEX", "XEY", "XFB", "XFC", "XFD", "XFE", "XFF", "XFG", "XFH", "XFI", "XFJ", "XFK", "XFL", "XFM", "XFN", "XFO", "XFP", "XFQ", "XFR", "XFS", "XFT", "XFU", "XFV", "XFW", "XFX", "XFY", "XFZ", "XGA", "XGB", "XGC", "XGD", "XGE", "XGF", "XGG", "XGH", "XGI", "XGJ", "XGK", "XGL", "XGM", "XGN", "XGO", "XGP", "XGQ", "XGR", "XGS", "XGT", "XGU", "XGV", "XGW", "XGX", "XGY", "XGZ", "XHA", "XHB", "XHC", "XHD", "XHE", "XHF", "XHG", "XHH", "XHI", "XHJ", "XHK", "XHL", "XHM", "XHN", "XHP", "XHQ", "XHR", "XHS", "XHT", "XHU", "XHV", "XHW", "XHX", "XHY", "XHZ", "XIA", "XIB", "XIC", "XID", "XIE", "XIF", "XIG", "XIH", "XII", "XIJ", "XIK", "XIL", "XIM", "XIN", "XIO", "XJA", "XJB", "XJC", "XJD", "XJE", "XJF", "XJG", "XJH", "XJI", "XJJ", "XJK", "XJL", "XJM", "XJN", "XJO", "XJP", "XJQ", "XJR", "XJS", "XJT", "XJU", "XJV", "XJW", "XJX", "XJY", "XJZ", "XLA", "XLB", "XLC", "XLD", "XLE", "XLF", "XLG", "XLH", "XLI", "XLJ", "XLK", "XLL", "XLM", "XLN", "XLO", "XLP", "XLQ", "XLR", "XLS", "XLT", "XLU", "XLV", "XLW", "XLX", "XLY", "XLZ", "XMA", "XMB", "XMC", "XMD", "XME", "XMF", "XMG", "XMH", "XMI", "XMJ", "XMK", "XML", "XMM", "XMN", "XMO", "XMP", "XMQ", "XMR", "XMS", "XMT", "XMU", "XMV", "XMW", "XMX", "XMY", "XMZ", "XNA", "XNB", "XNC", "XND", "XNE", "XNF", "XNG", "XNH", "XNI", "XNJ", "XNK", "XNL", "XNM", "XOA", "XOB", "XOC", "XOD", "XOE", "XOF", "XOG", "XOH", "XOI", "XOJ", "XOK", "XOL", "XOM", "XON", "XOO", "XOP", "XOQ", "XOR", "XOS", "XOT", "XOU", "XOV", "XOW", "XOX", "XOY", "XOZ", "XP1", "XP2", "XP3", "XP4", "XPA", "XPB", "XPC", "XPD", "XPE", "XPF", "XPG", "XPH", "XPI", "XPJ", "XPK", "XPL", "XPM", "XPN", "XPO", "XPP", "XPQ", "XPR", "XPS", "XPT", "XPU", "XPV", "XPW", "XPX", "XPY", "XPZ", "XQA", "XQB", "XQC", "XQD", "XQE", "XQF", "XQG", "XQH", "XQI", "XQJ", "XQK", "XQL", "XQM", "XQN", "XQO", "XQP", "XQQ", "XQR", "XQS", "XRD", "XRE", "XRF", "XRG", "XRH", "XRI", "XRJ", "XRK", "XRL", "XRM", "XRN", "XRO", "XRP", "XRQ", "XRR", "XRS", "XRT", "XRU", "XRV", "XRW", "XRX", "XRY", "XRZ", "XSA", "XSB", "XSC", "XSD", "XSE", "XSF", "XSG", "XSH", "XSI", "XSJ", "XSK", "XSL", "XSM", "XSN", "XSO", "XSP", "XSQ", "XSR", "XSS", "XST", "XSU", "XSV", "XSW", "XSX", "XSY", "XSZ", "XTA", "XTB", "XTC", "XTD", "XTE", "XTF", "XTG", "XTI", "XTJ", "XTK", "XTL", "XTM", "XTN", "XTO", "XTR", "XTS", "XTT", "XTU", "XTV", "XTW", "XTX", "XTY", "XTZ", "XUC", "XUN", "XVA", "XVG", "XVI", "XVK", "XVL", "XVN", "XVO", "XVP", "XVQ", "XVR", "XVS", "XVY", "XWA", "XWB", "XWC", "XWD", "XWF", "XWG", "XWH", "XWJ", "XWK", "XWL", "XWM", "XWN", "XWP", "XWQ", "XWR", "XWS", "XWT", "XWU", "XWV", "XWW", "XWX", "XWY", "XWZ", "XXA", "XXB", "XXC", "XXD", "XXF", "XXG", "XXH", "XXJ", "XXK", "XYA", "XYB", "XYC", "XYD", "XYF", "XYG", "XYH", "XYJ", "XYK", "XYL", "XYM", "XYN", "XYP", "XYQ", "XYR", "XYS", "XYT", "XYV", "XYW", "XYX", "XYY", "XYZ", "XZA", "XZB", "XZC", "XZD", "XZF", "XZG", "XZH", "XZJ", "XZK", "XZL", "XZM", "XZN", "XZP", "XZQ", "XZR", "XZS", "XZT", "XZU", "XZV", "XZW", "XZX", "XZY", "XZZ", "ZZ", "NAR", "C62", "LTR", "H87"]); export const allowanceReasonCode = z.enum(["41", "42", "60", "62", "63", "64", "65", "66", "67", "68", "70", "71", "88", "95", "100", "102", "103", "104", "105"]); export const allowanceOutput = z.object({reason: z.string().nullable().optional(), reason_code: allowanceReasonCode.nullable().optional(), multiplier_factor: z.string().nullable().optional(), amount: z.string().nullable().optional(), base_amount: z.string().nullable().optional(), tax_rate: z.string().nullable().optional(), tax_code: taxCategoryCode.optional()}); export const chargeReasonCode = z.enum(["AA", "AAA", "AAC", "AAD", "AAE", "AAF", "AAH", "AAI", "AAS", "AAT", "AAV", "AAY", "AAZ", "ABA", "ABB", "ABC", "ABD", "ABF", "ABK", "ABL", "ABN", "ABR", "ABS", "ABT", "ABU", "ACF", "ACG", "ACH", "ACI", "ACJ", "ACK", "ACL", "ACM", "ACS", "ADC", "ADE", "ADJ", "ADK", "ADL", "ADM", "ADN", "ADO", "ADP", "ADQ", "ADR", "ADT", "ADW", "ADY", "ADZ", "AEA", "AEB", "AEC", "AED", "AEF", "AEH", "AEI", "AEJ", "AEK", "AEL", "AEM", "AEN", "AEO", "AEP", "AES", "AET", "AEU", "AEV", "AEW", "AEX", "AEY", "AEZ", "AJ", "AU", "CA", "CAB", "CAD", "CAE", "CAF", "CAI", "CAJ", "CAK", "CAL", "CAM", "CAN", "CAO", "CAP", "CAQ", "CAR", "CAS", "CAT", "CAU", "CAV", "CAW", "CAX", "CAY", "CAZ", "CD", "CG", "CS", "CT", "DAB", "DAC", "DAD", "DAF", "DAG", "DAH", "DAI", "DAJ", "DAK", "DAL", "DAM", "DAN", "DAO", "DAP", "DAQ", "DL", "EG", "EP", "ER", "FAA", "FAB", "FAC", "FC", "FH", "FI", "GAA", "HAA", "HD", "HH", "IAA", "IAB", "ID", "IF", "IR", "IS", "KO", "L1", "LA", "LAA", "LAB", "LF", "MAE", "MI", "ML", "NAA", "OA", "PA", "PAA", "PC", "PL", "PRV", "RAB", "RAC", "RAD", "RAF", "RE", "RF", "RH", "RV", "SA", "SAA", "SAD", "SAE", "SAI", "SG", "SH", "SM", "SU", "TAB", "TAC", "TT", "TV", "V1", "V2", "WH", "XAA", "YY", "ZZZ"]); export const chargeOutput = z.object({reason: z.string().nullable().optional(), reason_code: chargeReasonCode.nullable().optional(), multiplier_factor: z.string().nullable().optional(), amount: z.string().nullable().optional(), base_amount: z.string().nullable().optional(), tax_rate: z.string().nullable().optional(), tax_code: taxCategoryCode.nullable().optional()}); export const itemAttribute = z.object({name: z.string(), value: z.string().nullable().optional()}); export const lineItem = z.object({amount: z.string().nullable().optional(), date: z.unknown(), description: z.string().nullable().optional(), quantity: z.string().nullable().optional(), product_code: z.string().nullable().optional(), tax: z.string().nullable().optional(), tax_rate: z.string().nullable().optional(), unit: unitOfMeasureCode.nullable().optional(), unit_price: z.string().nullable().optional(), allowances: z.array(allowanceOutput).nullable().optional(), charges: z.array(chargeOutput).nullable().optional(), item_attributes: z.array(itemAttribute).nullable().optional()}); export const documentAttachment = z.object({file_name: z.string(), file_type: z.string().optional(), file_size: z.number().int().optional(), id: z.string(), file_url: z.string().nullable().optional()}); export const allowanceBase = z.object({reason: z.string().nullable().optional(), reason_code: allowanceReasonCode.nullable().optional(), multiplier_factor: z.string().nullable().optional(), amount: z.string().nullable().optional(), base_amount: z.string().nullable().optional(), tax_rate: z.string().nullable().optional(), tax_code: taxCategoryCode.optional()}); export const chargeBase = z.object({reason: z.string().nullable().optional(), reason_code: chargeReasonCode.nullable().optional(), multiplier_factor: z.string().nullable().optional(), amount: z.string().nullable().optional(), base_amount: z.string().nullable().optional(), tax_rate: z.string().nullable().optional(), tax_code: taxCategoryCode.nullable().optional()}); export const documentResponse = z.object({document_type: documentType.optional(), state: documentState.optional(), direction: documentDirection.optional(), customer_name: z.string().nullable().optional(), customer_id: z.string().nullable().optional(), customer_email: z.string().nullable().optional(), purchase_order: z.string().nullable().optional(), invoice_id: z.string().nullable().optional(), invoice_date: z.string().nullable().optional(), due_date: z.string().nullable().optional(), note: z.string().nullable().optional(), vendor_name: z.string().nullable().optional(), vendor_email: z.string().nullable().optional(), vendor_address: z.string().nullable().optional(), vendor_address_recipient: z.string().nullable().optional(), customer_address: z.string().nullable().optional(), customer_address_recipient: z.string().nullable().optional(), billing_address: z.string().nullable().optional(), billing_address_recipient: z.string().nullable().optional(), shipping_address: z.string().nullable().optional(), shipping_address_recipient: z.string().nullable().optional(), currency: currencyCode.optional(), tax_code: taxCategoryCode.optional(), vatex: vATExemptionCode.nullable().optional(), vatex_note: z.string().nullable().optional(), subtotal: z.string().nullable().optional(), total_discount: z.string().nullable().optional(), total_tax: z.string().nullable().optional(), invoice_total: z.string().nullable().optional(), amount_due: z.string().nullable().optional(), remittance_address: z.string().nullable().optional(), remittance_address_recipient: z.string().nullable().optional(), service_address: z.string().nullable().optional(), service_address_recipient: z.string().nullable().optional(), service_start_date: z.string().nullable().optional(), service_end_date: z.string().nullable().optional(), vendor_tax_id: z.string().nullable().optional(), vendor_company_id: z.string().nullable().optional(), customer_tax_id: z.string().nullable().optional(), customer_company_id: z.string().nullable().optional(), customer_peppol_id: z.string().nullable().optional(), payment_term: z.string().nullable().optional(), id: z.string(), created_at: z.string(), payment_details: z.array(paymentDetail).nullable().optional(), tax_details: z.array(taxDetail).nullable().optional(), items: z.array(lineItem).nullable().optional(), attachments: z.array(documentAttachment).nullable().optional(), allowances: z.array(allowanceBase).nullable().optional(), charges: z.array(chargeBase).nullable().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 Document * * POST /api/documents/ */ export const createApiApiDocuments = async (args: CreateApiApiDocumentsArgs, options?: CreateApiApiDocumentsOptions) => { const {baseUrl = "https://api.e-invoice.be", fetch: fetchFn = fetch, HTTPBearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args.construct_pdf != null) query.append("construct_pdf", String(args.construct_pdf)) if (HTTPBearer !== undefined) headers.set('authorization', `Bearer ${HTTPBearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/api/documents/${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(documentResponse, await res.json()) };