billdotcom-sdk-v3
Version:
TypeScript SDK for Bill.com V3 API
1,281 lines (1,272 loc) • 88.7 kB
TypeScript
import { z } from 'zod';
interface BillClientOptions {
autoLogin?: boolean;
}
interface LoginCredentials {
username: string;
password: string;
organizationId: string;
devKey: string;
environment?: 'sandbox' | 'production';
}
/**
* @deprecated Use BillClientOptions for constructor and LoginCredentials for login()
*/
interface BillClientConfig {
username: string;
password: string;
organizationId: string;
devKey: string;
environment?: 'sandbox' | 'production';
autoLogin?: boolean;
}
interface PaginationParams {
max?: number;
page?: string | null;
}
/**
* Supported filter operators for Bill.com API search operations
*/
type FilterOperator = 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin' | 'sw';
/**
* Filter for 'in' and 'nin' operators that accept arrays
*/
interface ArrayFilter {
field: string;
op: 'in' | 'nin';
value: string[];
}
/**
* Filter for scalar operators (eq, ne, gt, gte, lt, lte, sw)
*/
interface ScalarFilter {
field: string;
op: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'sw';
value: string | number | boolean;
}
/**
* Union type for all filter types
*/
type Filter = ArrayFilter | ScalarFilter;
interface ListParams extends PaginationParams {
filters?: Filter[];
sort?: Array<{
field: string;
order: 'asc' | 'desc';
}>;
}
interface PaginatedResponse<T> {
nextPage?: string;
prevPage?: string;
results: T[];
}
interface ApiResponse<T> {
response_status: number;
response_message: string;
response_data: T;
}
interface LoginResponse {
sessionId: string;
organizationId: string;
userId: string;
apiEndPoint: string;
}
interface SessionInfo {
sessionId: string;
organizationId: string;
userId: string;
apiEndPoint: string;
}
type EntityStatus = 'active' | 'inactive' | 'archived';
interface RequestConfig {
baseUrl: string;
devKey: string;
sessionId?: string;
}
declare abstract class BaseResource<TEntity, TCreateRequest, TUpdateRequest, TListParams extends ListParams = ListParams> {
protected readonly getConfig: () => RequestConfig;
protected abstract readonly endpoint: string;
protected abstract readonly bulkResponseKey: string;
constructor(getConfig: () => RequestConfig);
list(params?: TListParams): Promise<PaginatedResponse<TEntity>>;
get(id: string): Promise<TEntity>;
create(data: TCreateRequest): Promise<TEntity>;
createMultiple(data: TCreateRequest[]): Promise<TEntity[]>;
update(id: string, data: TUpdateRequest): Promise<TEntity>;
archive(id: string): Promise<TEntity>;
restore(id: string): Promise<TEntity>;
}
/** Valid account types for a vendor */
declare const VENDOR_ACCOUNT_TYPES: readonly ["BUSINESS", "PERSON", "NONE", "UNDEFINED"];
/** Valid bank account types */
declare const VENDOR_BANK_ACCOUNT_TYPES: readonly ["CHECKING", "SAVINGS"];
/** Valid bank account owner types */
declare const VENDOR_BANK_ACCOUNT_OWNER_TYPES: readonly ["BUSINESS", "PERSON"];
/** Valid virtual card statuses */
declare const VENDOR_VIRTUAL_CARD_STATUSES: readonly ["ENROLLED", "UNENROLLED", "PENDING", "UNKNOWN", "VERBAL_COMMITMENT", "REQUIRE_MORE_INFO", "UNDEFINED"];
/** Valid payment methods */
declare const VENDOR_PAY_BY_TYPES: readonly ["ACH", "CHECK", "VIRTUAL_CARD", "RPPS", "UNDEFINED"];
/** Valid payment sub-types */
declare const VENDOR_PAY_BY_SUB_TYPES: readonly ["MULTIPLE", "LOCAL", "WIRE", "UNDEFINED", "NONE"];
/** Valid tax ID types */
declare const VENDOR_TAX_ID_TYPES: readonly ["SSN", "EIN", "UNDEFINED"];
/** Valid alternate payment types */
declare const VENDOR_ALTERNATE_PAY_BY_TYPES: readonly ["UNDEFINED", "CREDIT_CARD", "AMEX"];
/** Fields that can be used for filtering vendors */
declare const VENDOR_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "shortName", "accountNumber", "accountType", "email", "createdTime", "updatedTime"];
/** Fields that can be used for sorting vendors */
declare const VENDOR_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"];
declare const VendorAccountTypeSchema: z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
NONE: "NONE";
UNDEFINED: "UNDEFINED";
}>;
declare const VendorAddressSchema: z.ZodObject<{
line1: z.ZodOptional<z.ZodString>;
line2: z.ZodOptional<z.ZodString>;
city: z.ZodOptional<z.ZodString>;
stateOrProvince: z.ZodOptional<z.ZodString>;
zipOrPostalCode: z.ZodOptional<z.ZodString>;
country: z.ZodOptional<z.ZodString>;
countryName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const VendorBankAccountTypeSchema: z.ZodEnum<{
CHECKING: "CHECKING";
SAVINGS: "SAVINGS";
}>;
declare const VendorBankAccountOwnerTypeSchema: z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
}>;
declare const VendorBankAccountSchema: z.ZodObject<{
nameOnAccount: z.ZodOptional<z.ZodString>;
accountNumber: z.ZodOptional<z.ZodString>;
routingNumber: z.ZodOptional<z.ZodString>;
type: z.ZodOptional<z.ZodEnum<{
CHECKING: "CHECKING";
SAVINGS: "SAVINGS";
}>>;
ownerType: z.ZodOptional<z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
}>>;
paymentCurrency: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const VendorVirtualCardStatusSchema: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
ENROLLED: "ENROLLED";
UNENROLLED: "UNENROLLED";
PENDING: "PENDING";
UNKNOWN: "UNKNOWN";
VERBAL_COMMITMENT: "VERBAL_COMMITMENT";
REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO";
}>;
declare const VendorPayByTypeSchema: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
ACH: "ACH";
CHECK: "CHECK";
VIRTUAL_CARD: "VIRTUAL_CARD";
RPPS: "RPPS";
}>;
declare const VendorVirtualCardSchema: z.ZodObject<{
status: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
ENROLLED: "ENROLLED";
UNENROLLED: "UNENROLLED";
PENDING: "PENDING";
UNKNOWN: "UNKNOWN";
VERBAL_COMMITMENT: "VERBAL_COMMITMENT";
REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO";
}>>;
remitEmail: z.ZodOptional<z.ZodString>;
enrollDate: z.ZodOptional<z.ZodString>;
declineDate: z.ZodOptional<z.ZodString>;
alternatePayByType: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
CREDIT_CARD: "CREDIT_CARD";
AMEX: "AMEX";
}>>;
}, z.core.$strip>;
declare const VendorPaymentInformationSchema: z.ZodObject<{
payeeName: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
lastPaymentDate: z.ZodOptional<z.ZodString>;
payByType: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
ACH: "ACH";
CHECK: "CHECK";
VIRTUAL_CARD: "VIRTUAL_CARD";
RPPS: "RPPS";
}>>;
payBySubType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
NONE: "NONE";
UNDEFINED: "UNDEFINED";
MULTIPLE: "MULTIPLE";
LOCAL: "LOCAL";
WIRE: "WIRE";
}>>>;
bankAccount: z.ZodOptional<z.ZodObject<{
nameOnAccount: z.ZodOptional<z.ZodString>;
accountNumber: z.ZodOptional<z.ZodString>;
routingNumber: z.ZodOptional<z.ZodString>;
type: z.ZodOptional<z.ZodEnum<{
CHECKING: "CHECKING";
SAVINGS: "SAVINGS";
}>>;
ownerType: z.ZodOptional<z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
}>>;
paymentCurrency: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
virtualCard: z.ZodOptional<z.ZodObject<{
status: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
ENROLLED: "ENROLLED";
UNENROLLED: "UNENROLLED";
PENDING: "PENDING";
UNKNOWN: "UNKNOWN";
VERBAL_COMMITMENT: "VERBAL_COMMITMENT";
REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO";
}>>;
remitEmail: z.ZodOptional<z.ZodString>;
enrollDate: z.ZodOptional<z.ZodString>;
declineDate: z.ZodOptional<z.ZodString>;
alternatePayByType: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
CREDIT_CARD: "CREDIT_CARD";
AMEX: "AMEX";
}>>;
}, z.core.$strip>>;
paymentPurpose: z.ZodOptional<z.ZodObject<{
text: z.ZodOptional<z.ZodString>;
code: z.ZodOptional<z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const VendorAdditionalInfoSchema: z.ZodObject<{
taxId: z.ZodOptional<z.ZodString>;
taxIdType: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
SSN: "SSN";
EIN: "EIN";
}>>;
track1099: z.ZodOptional<z.ZodBoolean>;
leadTimeInDays: z.ZodOptional<z.ZodNumber>;
combinePayments: z.ZodOptional<z.ZodBoolean>;
paymentTermId: z.ZodOptional<z.ZodString>;
companyName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const VendorBalanceSchema: z.ZodObject<{
amount: z.ZodOptional<z.ZodNumber>;
lastUpdatedDate: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const VendorAutoPaySchema: z.ZodObject<{
enabled: z.ZodOptional<z.ZodBoolean>;
bankAccountId: z.ZodOptional<z.ZodString>;
createdBy: z.ZodOptional<z.ZodString>;
maxAmount: z.ZodOptional<z.ZodNumber>;
daysBeforeDueDate: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
declare const VendorSchema: z.ZodObject<{
id: z.ZodString;
archived: z.ZodBoolean;
name: z.ZodString;
shortName: z.ZodOptional<z.ZodString>;
accountNumber: z.ZodOptional<z.ZodString>;
accountType: z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
NONE: "NONE";
UNDEFINED: "UNDEFINED";
}>;
email: z.ZodOptional<z.ZodString>;
phone: z.ZodOptional<z.ZodString>;
address: z.ZodOptional<z.ZodObject<{
line1: z.ZodOptional<z.ZodString>;
line2: z.ZodOptional<z.ZodString>;
city: z.ZodOptional<z.ZodString>;
stateOrProvince: z.ZodOptional<z.ZodString>;
zipOrPostalCode: z.ZodOptional<z.ZodString>;
country: z.ZodOptional<z.ZodString>;
countryName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
paymentInformation: z.ZodOptional<z.ZodObject<{
payeeName: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
lastPaymentDate: z.ZodOptional<z.ZodString>;
payByType: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
ACH: "ACH";
CHECK: "CHECK";
VIRTUAL_CARD: "VIRTUAL_CARD";
RPPS: "RPPS";
}>>;
payBySubType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
NONE: "NONE";
UNDEFINED: "UNDEFINED";
MULTIPLE: "MULTIPLE";
LOCAL: "LOCAL";
WIRE: "WIRE";
}>>>;
bankAccount: z.ZodOptional<z.ZodObject<{
nameOnAccount: z.ZodOptional<z.ZodString>;
accountNumber: z.ZodOptional<z.ZodString>;
routingNumber: z.ZodOptional<z.ZodString>;
type: z.ZodOptional<z.ZodEnum<{
CHECKING: "CHECKING";
SAVINGS: "SAVINGS";
}>>;
ownerType: z.ZodOptional<z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
}>>;
paymentCurrency: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
virtualCard: z.ZodOptional<z.ZodObject<{
status: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
ENROLLED: "ENROLLED";
UNENROLLED: "UNENROLLED";
PENDING: "PENDING";
UNKNOWN: "UNKNOWN";
VERBAL_COMMITMENT: "VERBAL_COMMITMENT";
REQUIRE_MORE_INFO: "REQUIRE_MORE_INFO";
}>>;
remitEmail: z.ZodOptional<z.ZodString>;
enrollDate: z.ZodOptional<z.ZodString>;
declineDate: z.ZodOptional<z.ZodString>;
alternatePayByType: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
CREDIT_CARD: "CREDIT_CARD";
AMEX: "AMEX";
}>>;
}, z.core.$strip>>;
paymentPurpose: z.ZodOptional<z.ZodObject<{
text: z.ZodOptional<z.ZodString>;
code: z.ZodOptional<z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>;
}, z.core.$strip>>;
additionalInfo: z.ZodOptional<z.ZodObject<{
taxId: z.ZodOptional<z.ZodString>;
taxIdType: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
SSN: "SSN";
EIN: "EIN";
}>>;
track1099: z.ZodOptional<z.ZodBoolean>;
leadTimeInDays: z.ZodOptional<z.ZodNumber>;
combinePayments: z.ZodOptional<z.ZodBoolean>;
paymentTermId: z.ZodOptional<z.ZodString>;
companyName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
rppsId: z.ZodOptional<z.ZodString>;
bankAccountStatus: z.ZodOptional<z.ZodString>;
recurringPayments: z.ZodOptional<z.ZodBoolean>;
billCurrency: z.ZodOptional<z.ZodString>;
balance: z.ZodOptional<z.ZodObject<{
amount: z.ZodOptional<z.ZodNumber>;
lastUpdatedDate: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
autoPay: z.ZodOptional<z.ZodObject<{
enabled: z.ZodOptional<z.ZodBoolean>;
bankAccountId: z.ZodOptional<z.ZodString>;
createdBy: z.ZodOptional<z.ZodString>;
maxAmount: z.ZodOptional<z.ZodNumber>;
daysBeforeDueDate: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>>;
networkStatus: z.ZodOptional<z.ZodString>;
createdTime: z.ZodString;
updatedTime: z.ZodString;
}, z.core.$strip>;
declare const CreateVendorRequestSchema: z.ZodObject<{
name: z.ZodString;
accountType: z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
NONE: "NONE";
UNDEFINED: "UNDEFINED";
}>;
email: z.ZodOptional<z.ZodString>;
phone: z.ZodOptional<z.ZodString>;
address: z.ZodOptional<z.ZodObject<{
line1: z.ZodOptional<z.ZodString>;
line2: z.ZodOptional<z.ZodString>;
city: z.ZodOptional<z.ZodString>;
stateOrProvince: z.ZodOptional<z.ZodString>;
zipOrPostalCode: z.ZodOptional<z.ZodString>;
country: z.ZodOptional<z.ZodString>;
countryName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
paymentInformation: z.ZodOptional<z.ZodObject<{
payeeName: z.ZodOptional<z.ZodString>;
bankAccount: z.ZodOptional<z.ZodObject<{
nameOnAccount: z.ZodOptional<z.ZodString>;
accountNumber: z.ZodOptional<z.ZodString>;
routingNumber: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>;
additionalInfo: z.ZodOptional<z.ZodObject<{
track1099: z.ZodOptional<z.ZodBoolean>;
combinePayments: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
billCurrency: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const UpdateVendorRequestSchema: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
accountType: z.ZodOptional<z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
NONE: "NONE";
UNDEFINED: "UNDEFINED";
}>>;
email: z.ZodOptional<z.ZodString>;
phone: z.ZodOptional<z.ZodString>;
address: z.ZodOptional<z.ZodObject<{
line1: z.ZodOptional<z.ZodString>;
line2: z.ZodOptional<z.ZodString>;
city: z.ZodOptional<z.ZodString>;
stateOrProvince: z.ZodOptional<z.ZodString>;
zipOrPostalCode: z.ZodOptional<z.ZodString>;
country: z.ZodOptional<z.ZodString>;
countryName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
paymentInformation: z.ZodOptional<z.ZodObject<{
payeeName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
additionalInfo: z.ZodOptional<z.ZodObject<{
track1099: z.ZodOptional<z.ZodBoolean>;
combinePayments: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
billCurrency: z.ZodOptional<z.ZodString>;
autoPay: z.ZodOptional<z.ZodObject<{
enabled: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const VendorListParamsSchema: z.ZodObject<{
max: z.ZodOptional<z.ZodNumber>;
page: z.ZodOptional<z.ZodString>;
filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
in: "in";
nin: "nin";
}>;
value: z.ZodArray<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
eq: "eq";
ne: "ne";
gt: "gt";
gte: "gte";
lt: "lt";
lte: "lte";
sw: "sw";
}>;
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
}, z.core.$strip>]>>>;
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
field: z.ZodString;
order: z.ZodEnum<{
asc: "asc";
desc: "desc";
}>;
}, z.core.$strip>>>;
}, z.core.$strip>;
type VendorAccountType = z.infer<typeof VendorAccountTypeSchema>;
type VendorAddress = z.infer<typeof VendorAddressSchema>;
type VendorBankAccount = z.infer<typeof VendorBankAccountSchema>;
type VendorVirtualCard = z.infer<typeof VendorVirtualCardSchema>;
type VendorPaymentInformation = z.infer<typeof VendorPaymentInformationSchema>;
type VendorAdditionalInfo = z.infer<typeof VendorAdditionalInfoSchema>;
type VendorBalance = z.infer<typeof VendorBalanceSchema>;
type VendorAutoPay = z.infer<typeof VendorAutoPaySchema>;
type Vendor = z.infer<typeof VendorSchema>;
type CreateVendorRequest = z.infer<typeof CreateVendorRequestSchema>;
type UpdateVendorRequest = z.infer<typeof UpdateVendorRequestSchema>;
type VendorListParams = z.infer<typeof VendorListParamsSchema>;
/** Valid payment statuses for a bill */
declare const BILL_PAYMENT_STATUSES: readonly ["PAID", "UNPAID", "PARTIAL", "SCHEDULED", "UNDEFINED"];
/** Valid approval statuses for a bill */
declare const BILL_APPROVAL_STATUSES: readonly ["UNASSIGNED", "ASSIGNED", "APPROVING", "APPROVED", "DENIED"];
/** Valid approver statuses */
declare const APPROVER_STATUSES: readonly ["WAITING", "APPROVED", "DENIED", "REROUTED", "UNDEFINED"];
/** Fields that can be used for filtering bills */
declare const BILL_FILTERABLE_FIELDS: readonly ["id", "archived", "vendorId", "amount", "dueDate", "paymentStatus", "approvalStatus", "createdTime", "updatedTime"];
/** Fields that can be used for sorting bills */
declare const BILL_SORTABLE_FIELDS: readonly ["dueDate", "amount", "createdTime", "updatedTime"];
declare const BillPaymentStatusSchema: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
PAID: "PAID";
UNPAID: "UNPAID";
PARTIAL: "PARTIAL";
SCHEDULED: "SCHEDULED";
}>;
declare const BillApprovalStatusSchema: z.ZodEnum<{
UNASSIGNED: "UNASSIGNED";
ASSIGNED: "ASSIGNED";
APPROVING: "APPROVING";
APPROVED: "APPROVED";
DENIED: "DENIED";
}>;
declare const ApproverStatusSchema: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
APPROVED: "APPROVED";
DENIED: "DENIED";
WAITING: "WAITING";
REROUTED: "REROUTED";
}>;
declare const BillApproverSchema: z.ZodObject<{
userId: z.ZodString;
status: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
APPROVED: "APPROVED";
DENIED: "DENIED";
WAITING: "WAITING";
REROUTED: "REROUTED";
}>;
approverOrder: z.ZodNumber;
statusChangedTime: z.ZodString;
}, z.core.$strip>;
declare const BillClassificationsSchema: z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const BillLineItemClassificationsSchema: z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
employeeId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
customerId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const BillInvoiceSchema: z.ZodObject<{
invoiceNumber: z.ZodString;
invoiceDate: z.ZodString;
}, z.core.$strip>;
declare const BillVendorCreditSchema: z.ZodObject<{
id: z.ZodString;
amount: z.ZodNumber;
}, z.core.$strip>;
declare const BillLineItemSchema: z.ZodObject<{
id: z.ZodOptional<z.ZodString>;
amount: z.ZodOptional<z.ZodNumber>;
quantity: z.ZodOptional<z.ZodNumber>;
price: z.ZodOptional<z.ZodNumber>;
description: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
employeeId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
customerId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const BillSchema: z.ZodObject<{
id: z.ZodString;
archived: z.ZodBoolean;
vendorId: z.ZodOptional<z.ZodString>;
vendorName: z.ZodOptional<z.ZodString>;
fundingAmount: z.ZodOptional<z.ZodNumber>;
amount: z.ZodOptional<z.ZodNumber>;
paidAmount: z.ZodOptional<z.ZodNumber>;
dueAmount: z.ZodOptional<z.ZodNumber>;
scheduledAmount: z.ZodOptional<z.ZodNumber>;
creditAmount: z.ZodNumber;
exchangeRate: z.ZodOptional<z.ZodNumber>;
description: z.ZodOptional<z.ZodString>;
dueDate: z.ZodString;
invoice: z.ZodObject<{
invoiceNumber: z.ZodString;
invoiceDate: z.ZodString;
}, z.core.$strip>;
billLineItems: z.ZodArray<z.ZodObject<{
id: z.ZodOptional<z.ZodString>;
amount: z.ZodOptional<z.ZodNumber>;
quantity: z.ZodOptional<z.ZodNumber>;
price: z.ZodOptional<z.ZodNumber>;
description: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
employeeId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
customerId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>;
payFromChartOfAccountId: z.ZodOptional<z.ZodString>;
paymentStatus: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
PAID: "PAID";
UNPAID: "UNPAID";
PARTIAL: "PARTIAL";
SCHEDULED: "SCHEDULED";
}>;
approvalStatus: z.ZodEnum<{
UNASSIGNED: "UNASSIGNED";
ASSIGNED: "ASSIGNED";
APPROVING: "APPROVING";
APPROVED: "APPROVED";
DENIED: "DENIED";
}>;
createdTime: z.ZodString;
updatedTime: z.ZodString;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
approvers: z.ZodOptional<z.ZodArray<z.ZodObject<{
userId: z.ZodString;
status: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
APPROVED: "APPROVED";
DENIED: "DENIED";
WAITING: "WAITING";
REROUTED: "REROUTED";
}>;
approverOrder: z.ZodNumber;
statusChangedTime: z.ZodString;
}, z.core.$strip>>>;
purchaseOrderNumber: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const CreateBillRequestSchema: z.ZodObject<{
vendorId: z.ZodString;
description: z.ZodOptional<z.ZodString>;
dueDate: z.ZodString;
billLineItems: z.ZodArray<z.ZodObject<{
amount: z.ZodOptional<z.ZodNumber>;
quantity: z.ZodOptional<z.ZodNumber>;
price: z.ZodOptional<z.ZodNumber>;
description: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
employeeId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
customerId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>;
invoice: z.ZodObject<{
invoiceNumber: z.ZodString;
invoiceDate: z.ZodString;
}, z.core.$strip>;
payFromChartOfAccountId: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
vendorCredits: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodString;
amount: z.ZodNumber;
}, z.core.$strip>>>;
purchaseOrderNumber: z.ZodOptional<z.ZodString>;
billApprovals: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
declare const UpdateBillRequestSchema: z.ZodObject<{
vendorId: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
dueDate: z.ZodOptional<z.ZodString>;
billLineItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
amount: z.ZodOptional<z.ZodNumber>;
quantity: z.ZodOptional<z.ZodNumber>;
price: z.ZodOptional<z.ZodNumber>;
description: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
employeeId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
customerId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>>;
invoice: z.ZodOptional<z.ZodObject<{
invoiceNumber: z.ZodString;
invoiceDate: z.ZodString;
}, z.core.$strip>>;
payFromChartOfAccountId: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
vendorCredits: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodString;
amount: z.ZodNumber;
}, z.core.$strip>>>;
purchaseOrderNumber: z.ZodOptional<z.ZodString>;
billApprovals: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
declare const BillListParamsSchema: z.ZodObject<{
max: z.ZodOptional<z.ZodNumber>;
page: z.ZodOptional<z.ZodString>;
filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
in: "in";
nin: "nin";
}>;
value: z.ZodArray<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
eq: "eq";
ne: "ne";
gt: "gt";
gte: "gte";
lt: "lt";
lte: "lte";
sw: "sw";
}>;
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
}, z.core.$strip>]>>>;
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
field: z.ZodString;
order: z.ZodEnum<{
asc: "asc";
desc: "desc";
}>;
}, z.core.$strip>>>;
}, z.core.$strip>;
type BillPaymentStatus = z.infer<typeof BillPaymentStatusSchema>;
type BillApprovalStatus = z.infer<typeof BillApprovalStatusSchema>;
type ApproverStatus = z.infer<typeof ApproverStatusSchema>;
type BillApprover = z.infer<typeof BillApproverSchema>;
type BillClassifications = z.infer<typeof BillClassificationsSchema>;
type BillLineItemClassifications = z.infer<typeof BillLineItemClassificationsSchema>;
type BillInvoice = z.infer<typeof BillInvoiceSchema>;
type BillVendorCredit = z.infer<typeof BillVendorCreditSchema>;
type BillLineItem = z.infer<typeof BillLineItemSchema>;
type Bill = z.infer<typeof BillSchema>;
type CreateBillRequest = z.infer<typeof CreateBillRequestSchema>;
type UpdateBillRequest = z.infer<typeof UpdateBillRequestSchema>;
type BillListParams = z.infer<typeof BillListParamsSchema>;
/** Valid account types for chart of accounts */
declare const ACCOUNT_TYPES: readonly ["UNSPECIFIED", "ACCOUNTS_PAYABLE", "ACCOUNTS_RECEIVABLE", "BANK", "COST_OF_GOODS_SOLD", "CREDIT_CARD", "EQUITY", "EXPENSE", "FIXED_ASSET", "INCOME", "LONG_TERM_LIABILITY", "OTHER_ASSET", "OTHER_CURRENT_ASSET", "OTHER_CURRENT_LIABILITY", "OTHER_EXPENSE", "OTHER_INCOME", "NON_POSTING"];
/** Fields that can be used for filtering chart of accounts */
declare const CHART_OF_ACCOUNT_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "parentId", "createdTime", "updatedTime"];
/** Fields that can be used for sorting chart of accounts */
declare const CHART_OF_ACCOUNT_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"];
declare const AccountTypeSchema: z.ZodEnum<{
CREDIT_CARD: "CREDIT_CARD";
UNSPECIFIED: "UNSPECIFIED";
ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE";
ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE";
BANK: "BANK";
COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD";
EQUITY: "EQUITY";
EXPENSE: "EXPENSE";
FIXED_ASSET: "FIXED_ASSET";
INCOME: "INCOME";
LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY";
OTHER_ASSET: "OTHER_ASSET";
OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET";
OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY";
OTHER_EXPENSE: "OTHER_EXPENSE";
OTHER_INCOME: "OTHER_INCOME";
NON_POSTING: "NON_POSTING";
}>;
declare const ChartOfAccountSchema: z.ZodObject<{
id: z.ZodString;
archived: z.ZodBoolean;
name: z.ZodString;
description: z.ZodOptional<z.ZodString>;
parentId: z.ZodOptional<z.ZodString>;
account: z.ZodObject<{
type: z.ZodEnum<{
CREDIT_CARD: "CREDIT_CARD";
UNSPECIFIED: "UNSPECIFIED";
ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE";
ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE";
BANK: "BANK";
COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD";
EQUITY: "EQUITY";
EXPENSE: "EXPENSE";
FIXED_ASSET: "FIXED_ASSET";
INCOME: "INCOME";
LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY";
OTHER_ASSET: "OTHER_ASSET";
OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET";
OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY";
OTHER_EXPENSE: "OTHER_EXPENSE";
OTHER_INCOME: "OTHER_INCOME";
NON_POSTING: "NON_POSTING";
}>;
number: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
createdTime: z.ZodString;
updatedTime: z.ZodString;
}, z.core.$strip>;
declare const CreateChartOfAccountRequestSchema: z.ZodObject<{
name: z.ZodString;
description: z.ZodOptional<z.ZodString>;
parentId: z.ZodOptional<z.ZodString>;
account: z.ZodObject<{
type: z.ZodEnum<{
CREDIT_CARD: "CREDIT_CARD";
UNSPECIFIED: "UNSPECIFIED";
ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE";
ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE";
BANK: "BANK";
COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD";
EQUITY: "EQUITY";
EXPENSE: "EXPENSE";
FIXED_ASSET: "FIXED_ASSET";
INCOME: "INCOME";
LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY";
OTHER_ASSET: "OTHER_ASSET";
OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET";
OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY";
OTHER_EXPENSE: "OTHER_EXPENSE";
OTHER_INCOME: "OTHER_INCOME";
NON_POSTING: "NON_POSTING";
}>;
number: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
}, z.core.$strip>;
declare const UpdateChartOfAccountRequestSchema: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
parentId: z.ZodOptional<z.ZodString>;
account: z.ZodOptional<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<{
CREDIT_CARD: "CREDIT_CARD";
UNSPECIFIED: "UNSPECIFIED";
ACCOUNTS_PAYABLE: "ACCOUNTS_PAYABLE";
ACCOUNTS_RECEIVABLE: "ACCOUNTS_RECEIVABLE";
BANK: "BANK";
COST_OF_GOODS_SOLD: "COST_OF_GOODS_SOLD";
EQUITY: "EQUITY";
EXPENSE: "EXPENSE";
FIXED_ASSET: "FIXED_ASSET";
INCOME: "INCOME";
LONG_TERM_LIABILITY: "LONG_TERM_LIABILITY";
OTHER_ASSET: "OTHER_ASSET";
OTHER_CURRENT_ASSET: "OTHER_CURRENT_ASSET";
OTHER_CURRENT_LIABILITY: "OTHER_CURRENT_LIABILITY";
OTHER_EXPENSE: "OTHER_EXPENSE";
OTHER_INCOME: "OTHER_INCOME";
NON_POSTING: "NON_POSTING";
}>>;
number: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const ChartOfAccountListParamsSchema: z.ZodObject<{
max: z.ZodOptional<z.ZodNumber>;
page: z.ZodOptional<z.ZodString>;
filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
in: "in";
nin: "nin";
}>;
value: z.ZodArray<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
eq: "eq";
ne: "ne";
gt: "gt";
gte: "gte";
lt: "lt";
lte: "lte";
sw: "sw";
}>;
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
}, z.core.$strip>]>>>;
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
field: z.ZodString;
order: z.ZodEnum<{
asc: "asc";
desc: "desc";
}>;
}, z.core.$strip>>>;
}, z.core.$strip>;
type AccountType = z.infer<typeof AccountTypeSchema>;
type ChartOfAccount = z.infer<typeof ChartOfAccountSchema>;
type CreateChartOfAccountRequest = z.infer<typeof CreateChartOfAccountRequestSchema>;
type UpdateChartOfAccountRequest = z.infer<typeof UpdateChartOfAccountRequestSchema>;
type ChartOfAccountListParams = z.infer<typeof ChartOfAccountListParamsSchema>;
/** Fields that can be used for filtering accounting classes */
declare const ACCOUNTING_CLASS_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "shortName", "parentId", "createdTime", "updatedTime"];
/** Fields that can be used for sorting accounting classes */
declare const ACCOUNTING_CLASS_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"];
declare const AccountingClassSchema: z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
shortName: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
parentId: z.ZodOptional<z.ZodString>;
archived: z.ZodBoolean;
createdTime: z.ZodString;
updatedTime: z.ZodString;
}, z.core.$strip>;
declare const CreateAccountingClassRequestSchema: z.ZodObject<{
name: z.ZodString;
shortName: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
parentId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const UpdateAccountingClassRequestSchema: z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
shortName: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
parentId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const AccountingClassListParamsSchema: z.ZodObject<{
max: z.ZodOptional<z.ZodNumber>;
page: z.ZodOptional<z.ZodString>;
filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
in: "in";
nin: "nin";
}>;
value: z.ZodArray<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
eq: "eq";
ne: "ne";
gt: "gt";
gte: "gte";
lt: "lt";
lte: "lte";
sw: "sw";
}>;
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
}, z.core.$strip>]>>>;
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
field: z.ZodString;
order: z.ZodEnum<{
asc: "asc";
desc: "desc";
}>;
}, z.core.$strip>>>;
}, z.core.$strip>;
type AccountingClass = z.infer<typeof AccountingClassSchema>;
type CreateAccountingClassRequest = z.infer<typeof CreateAccountingClassRequestSchema>;
type UpdateAccountingClassRequest = z.infer<typeof UpdateAccountingClassRequestSchema>;
type AccountingClassListParams = z.infer<typeof AccountingClassListParamsSchema>;
/** Valid statuses for an invoice */
declare const INVOICE_STATUSES: readonly ["OPEN", "PARTIAL_PAYMENT", "PAID", "SCHEDULED", "VOID", "UNDEFINED"];
/** Valid payment statuses for invoice payments */
declare const INVOICE_PAYMENT_STATUSES: readonly ["PAID", "SCHEDULED", "UNDEFINED"];
/** Fields that can be used for filtering invoices */
declare const INVOICE_FILTERABLE_FIELDS: readonly ["id", "archived", "invoiceNumber", "customerId", "status", "dueDate", "invoiceDate", "totalAmount", "createdTime", "updatedTime"];
/** Fields that can be used for sorting invoices */
declare const INVOICE_SORTABLE_FIELDS: readonly ["invoiceDate", "dueDate", "totalAmount", "createdTime", "updatedTime"];
declare const InvoiceStatusSchema: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
PAID: "PAID";
SCHEDULED: "SCHEDULED";
OPEN: "OPEN";
PARTIAL_PAYMENT: "PARTIAL_PAYMENT";
VOID: "VOID";
}>;
declare const InvoicePaymentStatusSchema: z.ZodEnum<{
UNDEFINED: "UNDEFINED";
PAID: "PAID";
SCHEDULED: "SCHEDULED";
}>;
declare const InvoiceClassificationsSchema: z.ZodObject<{
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const InvoiceLineItemClassificationsSchema: z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const InvoiceLineItemSchema: z.ZodObject<{
id: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
price: z.ZodOptional<z.ZodNumber>;
quantity: z.ZodOptional<z.ZodNumber>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const InvoicePaymentSchema: z.ZodObject<{
id: z.ZodOptional<z.ZodString>;
amount: z.ZodOptional<z.ZodNumber>;
status: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
PAID: "PAID";
SCHEDULED: "SCHEDULED";
}>>;
date: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const InvoiceConvenienceFeeSchema: z.ZodObject<{
percentage: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
declare const InvoiceSchema: z.ZodObject<{
id: z.ZodString;
archived: z.ZodBoolean;
invoiceNumber: z.ZodOptional<z.ZodString>;
invoiceDate: z.ZodOptional<z.ZodString>;
dueDate: z.ZodOptional<z.ZodString>;
customerId: z.ZodOptional<z.ZodString>;
totalAmount: z.ZodOptional<z.ZodNumber>;
dueAmount: z.ZodOptional<z.ZodNumber>;
scheduledAmount: z.ZodOptional<z.ZodNumber>;
creditAmount: z.ZodOptional<z.ZodNumber>;
status: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
PAID: "PAID";
SCHEDULED: "SCHEDULED";
OPEN: "OPEN";
PARTIAL_PAYMENT: "PARTIAL_PAYMENT";
VOID: "VOID";
}>>;
exchangeRate: z.ZodOptional<z.ZodNumber>;
createdTime: z.ZodString;
updatedTime: z.ZodString;
invoiceLineItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
price: z.ZodOptional<z.ZodNumber>;
quantity: z.ZodOptional<z.ZodNumber>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>>;
payToChartOfAccountId: z.ZodOptional<z.ZodString>;
payments: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodOptional<z.ZodString>;
amount: z.ZodOptional<z.ZodNumber>;
status: z.ZodOptional<z.ZodEnum<{
UNDEFINED: "UNDEFINED";
PAID: "PAID";
SCHEDULED: "SCHEDULED";
}>>;
date: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>>;
classifications: z.ZodOptional<z.ZodObject<{
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
salesTaxItemId: z.ZodOptional<z.ZodString>;
salesTaxTotal: z.ZodOptional<z.ZodNumber>;
salesTaxPercentage: z.ZodOptional<z.ZodNumber>;
enableCardPayment: z.ZodOptional<z.ZodBoolean>;
convenienceFee: z.ZodOptional<z.ZodObject<{
percentage: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>>;
invoicePdfId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const CreateInvoiceRequestSchema: z.ZodObject<{
invoiceNumber: z.ZodString;
invoiceDate: z.ZodString;
dueDate: z.ZodString;
customer: z.ZodObject<{
id: z.ZodString;
}, z.core.$strip>;
invoiceLineItems: z.ZodArray<z.ZodObject<{
quantity: z.ZodOptional<z.ZodNumber>;
price: z.ZodOptional<z.ZodNumber>;
description: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>;
payToChartOfAccountId: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
salesTaxItemId: z.ZodOptional<z.ZodString>;
salesTaxTotal: z.ZodOptional<z.ZodNumber>;
salesTaxPercentage: z.ZodOptional<z.ZodNumber>;
enableCardPayment: z.ZodOptional<z.ZodBoolean>;
convenienceFee: z.ZodOptional<z.ZodObject<{
percentage: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const UpdateInvoiceRequestSchema: z.ZodObject<{
invoiceNumber: z.ZodOptional<z.ZodString>;
invoiceDate: z.ZodOptional<z.ZodString>;
dueDate: z.ZodOptional<z.ZodString>;
customerId: z.ZodOptional<z.ZodString>;
invoiceLineItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
quantity: z.ZodOptional<z.ZodNumber>;
price: z.ZodOptional<z.ZodNumber>;
description: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
chartOfAccountId: z.ZodOptional<z.ZodString>;
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
itemId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
}, z.core.$strip>>>;
payToChartOfAccountId: z.ZodOptional<z.ZodString>;
classifications: z.ZodOptional<z.ZodObject<{
accountingClassId: z.ZodOptional<z.ZodString>;
departmentId: z.ZodOptional<z.ZodString>;
jobId: z.ZodOptional<z.ZodString>;
locationId: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
salesTaxItemId: z.ZodOptional<z.ZodString>;
salesTaxTotal: z.ZodOptional<z.ZodNumber>;
salesTaxPercentage: z.ZodOptional<z.ZodNumber>;
enableCardPayment: z.ZodOptional<z.ZodBoolean>;
convenienceFee: z.ZodOptional<z.ZodObject<{
percentage: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>>;
}, z.core.$strip>;
declare const InvoiceListParamsSchema: z.ZodObject<{
max: z.ZodOptional<z.ZodNumber>;
page: z.ZodOptional<z.ZodString>;
filters: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
in: "in";
nin: "nin";
}>;
value: z.ZodArray<z.ZodString>;
}, z.core.$strip>, z.ZodObject<{
field: z.ZodString;
op: z.ZodEnum<{
eq: "eq";
ne: "ne";
gt: "gt";
gte: "gte";
lt: "lt";
lte: "lte";
sw: "sw";
}>;
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
}, z.core.$strip>]>>>;
sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
field: z.ZodString;
order: z.ZodEnum<{
asc: "asc";
desc: "desc";
}>;
}, z.core.$strip>>>;
}, z.core.$strip>;
type InvoiceStatus = z.infer<typeof InvoiceStatusSchema>;
type InvoicePaymentStatus = z.infer<typeof InvoicePaymentStatusSchema>;
type InvoiceClassifications = z.infer<typeof InvoiceClassificationsSchema>;
type InvoiceLineItemClassifications = z.infer<typeof InvoiceLineItemClassificationsSchema>;
type InvoiceLineItem = z.infer<typeof InvoiceLineItemSchema>;
type InvoicePayment = z.infer<typeof InvoicePaymentSchema>;
type InvoiceConvenienceFee = z.infer<typeof InvoiceConvenienceFeeSchema>;
type Invoice = z.infer<typeof InvoiceSchema>;
type CreateInvoiceRequest = z.infer<typeof CreateInvoiceRequestSchema>;
type UpdateInvoiceRequest = z.infer<typeof UpdateInvoiceRequestSchema>;
type InvoiceListParams = z.infer<typeof InvoiceListParamsSchema>;
/** Valid account types for a customer */
declare const CUSTOMER_ACCOUNT_TYPES: readonly ["BUSINESS", "PERSON", "NONE"];
/** Fields that can be used for filtering customers */
declare const CUSTOMER_FILTERABLE_FIELDS: readonly ["id", "archived", "name", "email", "companyName", "accountNumber", "createdTime", "updatedTime"];
/** Fields that can be used for sorting customers */
declare const CUSTOMER_SORTABLE_FIELDS: readonly ["name", "createdTime", "updatedTime"];
declare const CustomerAccountTypeSchema: z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
NONE: "NONE";
}>;
declare const CustomerContactSchema: z.ZodObject<{
firstName: z.ZodOptional<z.ZodString>;
lastName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const CustomerAddressSchema: z.ZodObject<{
city: z.ZodOptional<z.ZodString>;
country: z.ZodOptional<z.ZodString>;
line1: z.ZodOptional<z.ZodString>;
zipOrPostalCode: z.ZodOptional<z.ZodString>;
line2: z.ZodOptional<z.ZodString>;
stateOrProvince: z.ZodOptional<z.ZodString>;
countryName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const CustomerBalanceSchema: z.ZodObject<{
amount: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
declare const CustomerSchema: z.ZodObject<{
id: z.ZodString;
archived: z.ZodBoolean;
email: z.ZodOptional<z.ZodString>;
name: z.ZodOptional<z.ZodString>;
companyName: z.ZodOptional<z.ZodString>;
contact: z.ZodOptional<z.ZodObject<{
firstName: z.ZodOptional<z.ZodString>;
lastName: z.ZodOptional<z.ZodString>;
}, z.core.$strip>>;
phone: z.ZodOptional<z.ZodString>;
fax: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
invoiceCurrency: z.ZodOptional<z.ZodString>;
accountType: z.ZodOptional<z.ZodEnum<{
BUSINESS: "BUSINESS";
PERSON: "PERSON";
NONE: "NONE";
}>>;
paymentTermId: z.ZodOptional<z.ZodString>;
accountNumber: z.ZodOptional<z.ZodString>;
billingAddress: z.ZodOptional<z.ZodObject<{
city: z.ZodOptional<z.ZodString>;
country: z.ZodOptional<z.ZodString>;
line1: z.ZodOptional<z.ZodString>;
zipOrPostalCode: z.ZodOptional<z.ZodString>;
line2: z.ZodOptional<z.ZodString>;
stateOrProvince: z.ZodOptional<z.ZodString>;
countryName: z.ZodOptional<z.ZodString>;
}, z.core.$stri