export declare enum NotasBrPlanTier { Essential = "Essential", Professional = "Professional" } export declare enum NbInvoiceType { NFSe = "NFSe",// serviço — prefeitura / plataforma nacional NFe = "NFe",// modelo 55 — produto com entrega/transporte NFCe = "NFCe" } export declare enum NbInvoiceModel { Model55 = "55", Model65 = "65" } export declare enum NbInvoiceStatus { Pending = "Pending",// salva no sistema, não enviada WaitingData = "WaitingData",// falta informação obrigatória WaitingAuthorization = "WaitingAuthorization",// enviada, aguardando o órgão Authorized = "Authorized", Rejected = "Rejected",// recusada por erro nos dados — corrigir e retransmitir Denied = "Denied",// irregularidade cadastral — consome o número, não reaproveita WaitingCancellation = "WaitingCancellation", Cancelled = "Cancelled" } export declare enum NbInvoicePurpose { Normal = "Normal", Complementary = "Complementary", Adjustment = "Adjustment", Return = "Return" } export declare enum NbOperationType { Outgoing = "Outgoing",// saída (padrão) Incoming = "Incoming" } export declare enum NbFreightModality { EmitterPaid = "EmitterPaid",// CIF RecipientPaid = "RecipientPaid",// FOB ThirdPartyPaid = "ThirdPartyPaid", OwnSender = "OwnSender", OwnRecipient = "OwnRecipient", NoFreight = "NoFreight" } export declare enum NbPaymentMethod { Cash = "Cash", Pix = "Pix", CreditCard = "CreditCard", DebitCard = "DebitCard", BankSlip = "BankSlip", Check = "Check", Voucher = "Voucher", NoPayment = "NoPayment" } export declare enum NbPaymentTerm { Immediate = "Immediate",// à vista (padrão) Deferred = "Deferred" } export declare enum NbGoodsOrigin { National = "0", ForeignDirectImport = "1", ForeignDomesticMarket = "2", NationalImportContentOver40 = "3", NationalBasicProductiveProcess = "4", NationalImportContentUnder40 = "5", ForeignDirectImportNoSimilar = "6", ForeignDomesticMarketNoSimilar = "7", NationalImportContentOver70 = "8" } export declare enum NbTaxRegime { Mei = "Mei", SimplesNacional = "SimplesNacional", PresumedProfit = "PresumedProfit",// Lucro Presumido RealProfit = "RealProfit" } export declare enum NbIcmsTaxpayerType { Taxpayer = "Taxpayer",// 1 — contribuinte com IE ExemptTaxpayer = "ExemptTaxpayer",// 2 — isento de inscrição NonTaxpayer = "NonTaxpayer" } export declare enum NbTaxSituationKind { Cst = "Cst", Csosn = "Csosn" } export declare enum NbPersonType { Individual = "Individual",// PF Company = "Company" } export declare enum NbEnvironment { Production = "Production", Homologation = "Homologation" } export declare enum NbCertificateStatus { Missing = "Missing",// nunca enviado — bloqueia a emissão Valid = "Valid", Expiring = "Expiring",// dentro da janela de alerta Expired = "Expired", Invalid = "Invalid" } export declare enum NbCreditPackage { Small = "Small", Medium = "Medium", Large = "Large" } export declare enum NbCreditEntryType { Purchase = "Purchase", Consumption = "Consumption", Refund = "Refund",// nota rejeitada/cancelada devolve o crédito Adjustment = "Adjustment" } export declare enum NbQuotaSource { Trial = "Trial", PlanAllowance = "PlanAllowance", Credit = "Credit" } export declare enum NbInvoiceEventType { Created = "Created", Updated = "Updated", TransmissionRequested = "TransmissionRequested", Authorized = "Authorized", Rejected = "Rejected", Denied = "Denied", CancellationRequested = "CancellationRequested", Cancelled = "Cancelled", CorrectionLetterIssued = "CorrectionLetterIssued", EmailSent = "EmailSent", Deleted = "Deleted" } export declare enum NbMemberStatus { Active = "Active", Invited = "Invited", Removed = "Removed" } export interface NbAddress { zipCode: string; street: string; number: string; complement?: string; district: string; city: string; cityIbgeCode: string; state: string; } export interface NbCnae { code: string; description: string; isPrimary: boolean; } export interface NbInvoiceRecipient { personId?: string; personType?: NbPersonType; document?: string; name: string; tradeName?: string; stateRegistration?: string; municipalRegistration?: string; icmsTaxpayerType?: NbIcmsTaxpayerType; address?: NbAddress; emails: string[]; } export interface NbInvoiceItem { productId?: string; code: string; description: string; unit: string; quantity: number; unitPriceCents: number; discountCents: number; totalCents: number; ncm: string; cfop: string; taxSituationCode: string; goodsOrigin: NbGoodsOrigin; cest?: string; gtin?: string; ibptPercent?: number; } export interface NbInvoiceTotals { itemsTotalCents: number; discountCents: number; freightCents: number; totalCents: number; approximateTaxesCents?: number; } export interface NbInvoiceFreight { modality: NbFreightModality; carrierName?: string; carrierDocument?: string; freightCents?: number; vehiclePlate?: string; vehicleState?: string; volumeQuantity?: number; volumeKind?: string; volumeBrand?: string; grossWeight?: number; netWeight?: number; } export interface NbInvoiceBilling { number: string; amountCents: number; dueDate: string; sequence: number; } export interface NbInvoiceWithholdings { pisCents: number; cofinsCents: number; csllCents: number; inssCents: number; irCents: number; } export interface NbInvoiceServiceInfo { serviceId?: string; cnaeCode: string; lc116Item: string; nationalTaxCode?: string; municipalServiceCode?: string; nbsCode?: string; description: string; competence: string; provisionState: string; provisionCityIbgeCode: string; issRate: number; issWithheld: boolean; issCents: number; withholdings: NbInvoiceWithholdings; } export interface NbInvoiceRejection { code: string; message: string; friendlyMessage: string; field?: string; } export interface NbCorrectionLetter { sequence: number; text: string; protocol?: string; createdAt: string; } export interface NbInvoiceEventLog { type: NbInvoiceEventType; at: string; message?: string; userId?: string; } export interface NbPlanConfig { tier: NotasBrPlanTier; monthlyPriceCents: number; annualPriceCents: number; monthlyInvoiceAllowance: number; maxCompanies: number | null; maxUsers: number | null; } export interface NbCreditPackageConfig { creditPackage: NbCreditPackage; priceCents: number; quantity: number; } export interface NbTrialConfig { durationDays: number; invoicesPerDay: number; } export interface NbBillingTable { version: string; plans: Record; creditPackages: Record; trial: NbTrialConfig; }