@facturino/node 1.2.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import type { FacturinoConfig, RequestOptions } from './types.js';
2
- export declare const VERSION = "1.2.0";
2
+ export declare const VERSION = "2.1.0";
3
3
  /** HTTP client with retries, exponential backoff, and structured errors. */
4
4
  export declare class HttpClient {
5
5
  private readonly apiKey;
@@ -2,11 +2,11 @@ import { ApiError, ApiInternalError, AuthenticationError, ConflictError, Connect
2
2
  const DEFAULT_BASE_URL = 'https://facturino.com/api';
3
3
  const DEFAULT_MAX_RETRIES = 3;
4
4
  const DEFAULT_TIMEOUT = 30000;
5
- const DEFAULT_API_VERSION = '2026-03-01';
5
+ const DEFAULT_API_VERSION = '2026-09-01';
6
6
  const RETRYABLE_STATUS_CODES = new Set([429, 500, 502, 503]);
7
7
  const INITIAL_RETRY_DELAY_MS = 500;
8
8
  const MAX_RETRY_DELAY_MS = 30000;
9
- export const VERSION = '1.2.0';
9
+ export const VERSION = '2.1.0';
10
10
  /** HTTP client with retries, exponential backoff, and structured errors. */
11
11
  export class HttpClient {
12
12
  constructor(apiKey, config = {}) {
@@ -17,6 +17,8 @@ import { ReceivedInvoices } from './resources/received-invoices.js';
17
17
  import { Reporting } from './resources/reporting.js';
18
18
  import { AccountResource } from './resources/account.js';
19
19
  import { Billing } from './resources/billing.js';
20
+ import { TaxDecisions } from './resources/taxDecisions.js';
21
+ import { EuThresholdLedgers } from './resources/euThresholdLedgers.js';
20
22
  import { Usage } from './resources/usage.js';
21
23
  import { Validate } from './resources/validate.js';
22
24
  import { Reference } from './resources/reference.js';
@@ -42,6 +44,9 @@ declare class Facturino {
42
44
  readonly jobs: Jobs;
43
45
  readonly reference: Reference;
44
46
  readonly sandbox: Sandbox;
47
+ readonly taxDecisions: TaxDecisions;
48
+ /** Annual ledger of the common EUR 10,000 threshold. */
49
+ readonly euThresholdLedgers: EuThresholdLedgers;
45
50
  readonly usage: Usage;
46
51
  readonly validate: Validate;
47
52
  readonly webhooks: Webhooks;
@@ -53,7 +58,7 @@ declare class Facturino {
53
58
  }
54
59
  export default Facturino;
55
60
  export { Facturino };
56
- export type { FacturinoConfig, RequestOptions, PaginationParams, PaginatedResponse, ApiErrorBody, Address, Contact, ContactRole, LineItem, VatBreakdown, Totals, CustomerRef, CustomerSnapshot, LifecycleEntry, Currency, Unit, VatCode, VatexCode, PaymentMethod, InvoiceType, InvoiceStatus, InvoiceDates, InvoicePaymentTerms, InvoiceEinvoicing, InvoicePortal, InvoiceArchive, InvoiceFiles, Invoice, InvoiceExpandField, InvoiceExpanded, InvoiceRetrieveParams, InvoiceBuyerParam, InvoiceCreateDates, InvoiceCreateParams, InvoiceLineItemParam, InvoiceUpdateParams, InvoiceListParams, IncomingInvoiceCreateParams, InvoiceStatusResponse, InvoiceVerifyResponse, DocumentUrlResponse, JobResponse, PaymentLinkResponse, PaymentLinkCreateParams, PaymentTokenResponse, Payment, PaymentCreateParams, Customer, CustomerCreateParams, CustomerUpdateParams, CustomerListParams, CustomerLookupParams, SireneLookupResponse, SireneCompany, Product, PriceHistoryEntry, ProductCreateParams, ProductUpdateParams, ProductListParams, QuoteStatus, QuoteDates, QuoteSignature, Quote, QuoteCreateParams, QuoteUpdateParams, QuoteListParams, CreditNoteType, CreditNoteStatus, CreditNoteReasonCode, CreditNote, CreditNoteCreateParams, CreditNoteUpdateParams, CreditNoteListParams, WebhookEventType, WebhookEvent, EventListParams, WebhookEndpoint, WebhookEndpointCreateParams, WebhookEndpointUpdateParams, RecurringFrequency, RecurringInvoice, RecurringInvoiceCreateParams, RecurringInvoiceUpdateParams, RecurringInvoiceListParams, BankDetails, InvoiceSettings, CreditNoteSettings, CreditNoteNumberingMode, Company, CompanyUpdateParams, CgvResponse, FecExportParams, EReportingType, EReportingStatus, EReportingLine, EReportingLineResponse, EReporting, EReportingCreateParams, EReportingListParams, JobType, JobStatus, Job, SandboxResetResponse, SimulateStatusParams, SimulateStatusResponse, ReceivedInvoiceStatus, ReceivedInvoice, ReceivedInvoiceListParams, ReceivedInvoiceRefuseParams, ReceivedInvoiceRecordPaymentParams, ReceivedInvoiceActionResponse, VatReportParams, VatReportBreakdown, VatReport, RevenueReportParams, RevenueReportBreakdownItem, RevenueReport, AccountPlan, Account, BillingCycle, BillingSubscription, PlatformInvoice, UsageMeter, UsageSummary, ValidateParams, ValidateResponse, LegalForm, NafCode, LegalFormInput, NafCodeInput, PaProvider, HealthStatus, } from './types.js';
61
+ export type { FacturinoConfig, RequestOptions, PaginationParams, PaginatedResponse, ApiErrorBody, Address, Contact, ContactRole, LineItem, VatBreakdown, Totals, CustomerRef, CustomerSnapshot, LifecycleEntry, Currency, Unit, VatCode, VatexCode, PaymentMethod, InvoiceType, InvoiceStatus, InvoiceDates, InvoicePaymentTerms, InvoiceEinvoicing, InvoicePortal, InvoiceArchive, InvoiceFiles, Invoice, InvoiceExpandField, InvoiceExpanded, InvoiceRetrieveParams, InvoiceBuyerParam, InvoiceCreateDates, InvoiceCreateParams, InvoiceBindTaxDecisionParams, CommercialDraft, CommercialDraftLine, InvoiceLineItemParam, InvoiceUpdateParams, InvoiceListParams, IncomingInvoiceCreateParams, InvoiceStatusResponse, InvoiceVerifyResponse, DocumentUrlResponse, JobResponse, PaymentLinkResponse, PaymentLinkCreateParams, PaymentTokenResponse, Payment, PaymentCreateParams, Customer, CustomerCreateParams, CustomerUpdateParams, CustomerListParams, CustomerLookupParams, SireneLookupResponse, SireneCompany, Product, PriceHistoryEntry, ProductCreateParams, ProductUpdateParams, ProductListParams, QuoteStatus, QuoteDates, QuoteSignature, Quote, QuoteCreateParams, QuoteUpdateParams, QuoteListParams, CreditNoteType, CreditNoteStatus, CreditNoteReasonCode, CreditNote, CreditNoteCreateParams, CreditNoteUpdateParams, CreditNoteListParams, WebhookEventType, WebhookEvent, EventListParams, WebhookEndpoint, WebhookEndpointCreateParams, WebhookEndpointUpdateParams, RecurringFrequency, RecurringInvoice, RecurringInvoiceCreateParams, RecurringInvoiceUpdateParams, RecurringInvoiceListParams, BankDetails, InvoiceSettings, CreditNoteSettings, CreditNoteNumberingMode, Company, CompanyUpdateParams, CgvResponse, FecExportParams, EReportingType, EReportingStatus, EReportingLine, EReportingLineResponse, EReporting, EReportingCreateParams, EReportingListParams, JobType, JobStatus, Job, SandboxResetResponse, SimulateStatusParams, SimulateStatusResponse, ReceivedInvoiceStatus, ReceivedInvoice, ReceivedInvoiceListParams, ReceivedInvoiceRefuseParams, ReceivedInvoiceRecordPaymentParams, ReceivedInvoiceActionResponse, VatReportParams, VatReportBreakdown, VatReport, RevenueReportParams, RevenueReportBreakdownItem, RevenueReport, AccountPlan, Account, BillingCycle, BillingSubscription, PlatformInvoice, UsageMeter, UsageSummary, ValidateParams, ValidateResponse, PriceMode, SupplyCategory, PrimarySupplyCategory, RateCategory, GoodsMovement, TaxDecisionStatus, TaxDecisionDiscount, TaxDecisionLineParam, TaxDecisionCreateParams, TaxDecision, TaxDecisionLine, TaxDecisionCustomer, TaxDecisionIssue, TaxDecisionObligationReason, TaxDecisionSettledObligations, TaxDecisionEuB2cDestination, EuThresholdLedger, EuThresholdLedgerEntry, EuThresholdLedgerEntryList, EuThresholdReservation, EuThresholdCoverageMode, EuThresholdCorrectionKind, EuThresholdReviewCode, OpenEuThresholdLedgerParams, EuThresholdAdjustmentParams, EuThresholdCorrectionParams, EuThresholdReviewParams, EuThresholdReviewResolutionParams, EuThresholdEntryListParams, TaxDecisionThresholdTrace, TaxDecisionDestinationRate, TaxDecisionDestinationMechanism, TaxDecisionEvidenceRelief, TaxDecisionVatBreakdownEntry, LocationEvidenceKind, LocationEvidenceParam, LocationEvidenceResult, NonEuBusinessEvidenceParam, NonEuBusinessEvidenceResult, EvidenceSource, ViesResult, InvoiceChannel, TransactionReporting, PaymentReporting, TaxSource, TaxSnapshot, DocumentStatus, TransmissionStatus, TransmissionDetail, PaymentStatus, DecisionBackedLineParam, InvoiceCreateBaseParams, CreditedLineParam, RecurringTaxLineParam, RecurringIntegrationTaxLineParam, RecurringTaxInputsParam, FacturinoTaxDecisionCreateParams, IntegrationTaxDecisionCreateParams, IntegrationTaxDecisionLineParam, LegalForm, NafCode, LegalFormInput, NafCodeInput, PaProvider, HealthStatus, } from './types.js';
57
62
  export { FacturinoError, ApiError, InvalidRequestError, ValidationError, AuthenticationError, PermissionError, NotFoundError, ConflictError, RateLimitError, PlanLimitError, ApiInternalError, ConnectionError, } from './errors.js';
58
63
  export { Webhooks } from './webhooks.js';
59
64
  export { AutoPaginatingList } from './pagination.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,0GAA0G;AAC1G,cAAM,SAAS;IACb,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAEX,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe;CA4BrD;AAED,eAAe,SAAS,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,CAAA;AAEpB,YAAY,EACV,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,OAAO,EACP,mBAAmB,EACnB,QAAQ,EACR,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,cAAc,EACd,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,kBAAkB,EAClB,gBAAgB,EAChB,4BAA4B,EAC5B,4BAA4B,EAC5B,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,OAAO,EACP,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EACpB,OAAO,EACP,SAAS,EACT,GAAG,EACH,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EACb,WAAW,EACX,OAAO,EAEP,YAAY,EACZ,mBAAmB,EACnB,eAAe,EAEf,UAAU,EACV,YAAY,EAEZ,cAAc,EACd,gBAAgB,EAEhB,SAAS,EACT,OAAO,EACP,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -18,6 +18,8 @@ import { ReceivedInvoices } from './resources/received-invoices.js';
18
18
  import { Reporting } from './resources/reporting.js';
19
19
  import { AccountResource } from './resources/account.js';
20
20
  import { Billing } from './resources/billing.js';
21
+ import { TaxDecisions } from './resources/taxDecisions.js';
22
+ import { EuThresholdLedgers } from './resources/euThresholdLedgers.js';
21
23
  import { Usage } from './resources/usage.js';
22
24
  import { Validate } from './resources/validate.js';
23
25
  import { Reference } from './resources/reference.js';
@@ -44,6 +46,8 @@ class Facturino {
44
46
  this.jobs = new Jobs(client);
45
47
  this.reference = new Reference(client);
46
48
  this.sandbox = new Sandbox(client);
49
+ this.taxDecisions = new TaxDecisions(client);
50
+ this.euThresholdLedgers = new EuThresholdLedgers(client);
47
51
  this.usage = new Usage(client);
48
52
  this.validate = new Validate(client);
49
53
  this.webhooks = new Webhooks();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAG9C,0GAA0G;AAC1G,MAAM,SAAS;IA6Bb,YAAY,MAAc,EAAE,MAAwB;QAClD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAE7C,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;CACF;AAED,eAAe,SAAS,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,CAAA;AA6MpB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,99 @@
1
+ import type { HttpClient } from '../client.js';
2
+ import type { EuThresholdAdjustmentParams, EuThresholdCorrectionParams, EuThresholdEntryListParams, EuThresholdLedger, EuThresholdLedgerEntryList, EuThresholdReviewParams, EuThresholdReviewResolutionParams, OpenEuThresholdLedgerParams, RequestOptions } from '../types.js';
3
+ /**
4
+ * The annual EU threshold ledger — the running total the common EUR 10,000
5
+ * threshold is assessed on.
6
+ *
7
+ * It is deliberately separate from the seller's fiscal profile: a profile
8
+ * revision is an immutable RULE that decisions freeze, while a turnover total
9
+ * moves with every sale and gets corrected. Keeping them apart is what lets a
10
+ * correction be recorded without rewriting the rule a frozen decision was taken
11
+ * under.
12
+ *
13
+ * It carries TWO counters, strictly apart and INDEPENDENT: the common
14
+ * EUR 10,000 threshold (art. 59c(1) — distance sales of goods AND cross-border
15
+ * services to consumers) and the EUR 100,000 location-evidence threshold
16
+ * (Reg. 282/2011 art. 24b — electronically supplied services, domestic ones
17
+ * included). Reading one off the other would open a single-evidence regime on
18
+ * turnover the regulation does not count towards it, and neither bounds the
19
+ * other: a seller whose electronic services are mostly domestic legitimately
20
+ * declares more on the second than on the first.
21
+ *
22
+ * Nothing is assumed. Opening a year declares four figures — the two totals and
23
+ * their services part — plus whether every covered sale goes through Facturino.
24
+ * Sales made elsewhere are never assumed absent: under `mixed_channels` they
25
+ * enter through adjustments, and the ledger serves a decision only up to the day
26
+ * those channels are declared complete through.
27
+ *
28
+ * The ledger is append-only: there is no update and no delete. Giving an amount
29
+ * back is a qualified CORRECTION, which names the movement it corrects; what
30
+ * cannot be qualified that way puts the ledger under review instead.
31
+ */
32
+ export declare class EuThresholdLedgers {
33
+ private readonly client;
34
+ constructor(client: HttpClient);
35
+ /**
36
+ * Open a calendar year.
37
+ *
38
+ * A year already open is never rewritten (`eu_threshold_year_already_open`):
39
+ * decisions were frozen on its opening figures.
40
+ */
41
+ open(params: OpenEuThresholdLedgerParams, options?: RequestOptions): Promise<EuThresholdLedger>;
42
+ /**
43
+ * Read the ledger of a year: acquired totals, held slices, what remains, and
44
+ * the first page of movements.
45
+ */
46
+ retrieve(year: string, params?: EuThresholdEntryListParams): Promise<EuThresholdLedger>;
47
+ /** Alias of {@link retrieve}. */
48
+ get(year: string): Promise<EuThresholdLedger>;
49
+ /**
50
+ * Walk the movements page by page, newest first.
51
+ *
52
+ * The ledger keeps every movement; a page shows some. `next_cursor` names the
53
+ * last one returned.
54
+ */
55
+ listEntries(year: string, params?: EuThresholdEntryListParams): Promise<EuThresholdLedgerEntryList>;
56
+ /**
57
+ * Record turnover made on another channel.
58
+ *
59
+ * Append-only and idempotent on your own `reference`, compared through a
60
+ * canonical fingerprint of the WHOLE body: replaying the same adjustment adds
61
+ * nothing, and reusing the reference for any different fact answers
62
+ * `eu_threshold_entry_conflict`. A negative amount is impossible here —
63
+ * giving an amount back is {@link correct}.
64
+ */
65
+ adjust(year: string, params: EuThresholdAdjustmentParams, options?: RequestOptions): Promise<EuThresholdLedger>;
66
+ /**
67
+ * Take a qualified amount back out of the running total.
68
+ *
69
+ * Directive 2006/112/EC art. 90(1) reduces the taxable amount of a supply on
70
+ * cancellation, refusal or a price reduction after the supply, and the
71
+ * thresholds count the VALUE of the supplies — so the correction names the
72
+ * movement it corrects (`correctsEntryId`), its qualification, the resource it
73
+ * rests on and its evidence. The ledger keeps the BALANCE of each movement
74
+ * inside the transaction, so the corrections of one movement never add up to
75
+ * more than it brought in (`eu_threshold_correction_exceeds_counted`); an
76
+ * unknown movement answers `eu_threshold_correction_target_unknown`, and one
77
+ * that brought no turnover in `eu_threshold_correction_target_not_correctable`.
78
+ * Each entry publishes its `remainingMin`, so the balance is readable before
79
+ * the correction is attempted.
80
+ *
81
+ * Decisions already frozen are never rewritten: they were correct on the
82
+ * figures of their own day. Only the total the NEXT operations read changes.
83
+ */
84
+ correct(year: string, params: EuThresholdCorrectionParams, options?: RequestOptions): Promise<EuThresholdLedger>;
85
+ /**
86
+ * Stop deciding on this ledger: its running total is known to be wrong.
87
+ *
88
+ * Every reservation then answers `eu_threshold_review_required`. This is the
89
+ * honest exit when an amount must come out and no qualified correction can
90
+ * name the movement it corrects.
91
+ */
92
+ review(year: string, params: EuThresholdReviewParams, options?: RequestOptions): Promise<EuThresholdLedger>;
93
+ /**
94
+ * Serve decisions again — on a RECONCILIATION that matches, never on a
95
+ * comment. See {@link EuThresholdReviewResolutionParams}.
96
+ */
97
+ resolveReview(year: string, params: EuThresholdReviewResolutionParams, options?: RequestOptions): Promise<EuThresholdLedger>;
98
+ }
99
+ //# sourceMappingURL=euThresholdLedgers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"euThresholdLedgers.d.ts","sourceRoot":"","sources":["../../../src/resources/euThresholdLedgers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,EAC3B,cAAc,EACf,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C;;;;;OAKG;IACG,IAAI,CACR,MAAM,EAAE,2BAA2B,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;;OAGG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAM7F,iCAAiC;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInD;;;;;OAKG;IACG,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,0BAA0B,GAClC,OAAO,CAAC,0BAA0B,CAAC;IAMtC;;;;;;;;OAQG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,2BAA2B,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;;;;;;;;;;;;OAiBG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,2BAA2B,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;OAMG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;OAGG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,iCAAiC,EACzC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,CAAC;CAO9B"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * The annual EU threshold ledger — the running total the common EUR 10,000
3
+ * threshold is assessed on.
4
+ *
5
+ * It is deliberately separate from the seller's fiscal profile: a profile
6
+ * revision is an immutable RULE that decisions freeze, while a turnover total
7
+ * moves with every sale and gets corrected. Keeping them apart is what lets a
8
+ * correction be recorded without rewriting the rule a frozen decision was taken
9
+ * under.
10
+ *
11
+ * It carries TWO counters, strictly apart and INDEPENDENT: the common
12
+ * EUR 10,000 threshold (art. 59c(1) — distance sales of goods AND cross-border
13
+ * services to consumers) and the EUR 100,000 location-evidence threshold
14
+ * (Reg. 282/2011 art. 24b — electronically supplied services, domestic ones
15
+ * included). Reading one off the other would open a single-evidence regime on
16
+ * turnover the regulation does not count towards it, and neither bounds the
17
+ * other: a seller whose electronic services are mostly domestic legitimately
18
+ * declares more on the second than on the first.
19
+ *
20
+ * Nothing is assumed. Opening a year declares four figures — the two totals and
21
+ * their services part — plus whether every covered sale goes through Facturino.
22
+ * Sales made elsewhere are never assumed absent: under `mixed_channels` they
23
+ * enter through adjustments, and the ledger serves a decision only up to the day
24
+ * those channels are declared complete through.
25
+ *
26
+ * The ledger is append-only: there is no update and no delete. Giving an amount
27
+ * back is a qualified CORRECTION, which names the movement it corrects; what
28
+ * cannot be qualified that way puts the ledger under review instead.
29
+ */
30
+ export class EuThresholdLedgers {
31
+ constructor(client) {
32
+ this.client = client;
33
+ }
34
+ /**
35
+ * Open a calendar year.
36
+ *
37
+ * A year already open is never rewritten (`eu_threshold_year_already_open`):
38
+ * decisions were frozen on its opening figures.
39
+ */
40
+ async open(params, options) {
41
+ return this.client.post('/v1/eu-threshold-ledgers', params, options);
42
+ }
43
+ /**
44
+ * Read the ledger of a year: acquired totals, held slices, what remains, and
45
+ * the first page of movements.
46
+ */
47
+ async retrieve(year, params) {
48
+ return this.client.get(`/v1/eu-threshold-ledgers/${year}${toQuery(params)}`);
49
+ }
50
+ /** Alias of {@link retrieve}. */
51
+ async get(year) {
52
+ return this.retrieve(year);
53
+ }
54
+ /**
55
+ * Walk the movements page by page, newest first.
56
+ *
57
+ * The ledger keeps every movement; a page shows some. `next_cursor` names the
58
+ * last one returned.
59
+ */
60
+ async listEntries(year, params) {
61
+ return this.client.get(`/v1/eu-threshold-ledgers/${year}/entries${toQuery(params)}`);
62
+ }
63
+ /**
64
+ * Record turnover made on another channel.
65
+ *
66
+ * Append-only and idempotent on your own `reference`, compared through a
67
+ * canonical fingerprint of the WHOLE body: replaying the same adjustment adds
68
+ * nothing, and reusing the reference for any different fact answers
69
+ * `eu_threshold_entry_conflict`. A negative amount is impossible here —
70
+ * giving an amount back is {@link correct}.
71
+ */
72
+ async adjust(year, params, options) {
73
+ return this.client.post(`/v1/eu-threshold-ledgers/${year}/adjustments`, params, options);
74
+ }
75
+ /**
76
+ * Take a qualified amount back out of the running total.
77
+ *
78
+ * Directive 2006/112/EC art. 90(1) reduces the taxable amount of a supply on
79
+ * cancellation, refusal or a price reduction after the supply, and the
80
+ * thresholds count the VALUE of the supplies — so the correction names the
81
+ * movement it corrects (`correctsEntryId`), its qualification, the resource it
82
+ * rests on and its evidence. The ledger keeps the BALANCE of each movement
83
+ * inside the transaction, so the corrections of one movement never add up to
84
+ * more than it brought in (`eu_threshold_correction_exceeds_counted`); an
85
+ * unknown movement answers `eu_threshold_correction_target_unknown`, and one
86
+ * that brought no turnover in `eu_threshold_correction_target_not_correctable`.
87
+ * Each entry publishes its `remainingMin`, so the balance is readable before
88
+ * the correction is attempted.
89
+ *
90
+ * Decisions already frozen are never rewritten: they were correct on the
91
+ * figures of their own day. Only the total the NEXT operations read changes.
92
+ */
93
+ async correct(year, params, options) {
94
+ return this.client.post(`/v1/eu-threshold-ledgers/${year}/corrections`, params, options);
95
+ }
96
+ /**
97
+ * Stop deciding on this ledger: its running total is known to be wrong.
98
+ *
99
+ * Every reservation then answers `eu_threshold_review_required`. This is the
100
+ * honest exit when an amount must come out and no qualified correction can
101
+ * name the movement it corrects.
102
+ */
103
+ async review(year, params, options) {
104
+ return this.client.post(`/v1/eu-threshold-ledgers/${year}/review`, params, options);
105
+ }
106
+ /**
107
+ * Serve decisions again — on a RECONCILIATION that matches, never on a
108
+ * comment. See {@link EuThresholdReviewResolutionParams}.
109
+ */
110
+ async resolveReview(year, params, options) {
111
+ return this.client.post(`/v1/eu-threshold-ledgers/${year}/review/resolve`, params, options);
112
+ }
113
+ }
114
+ /** Query string for the cursor pagination, empty when nothing is asked. */
115
+ function toQuery(params) {
116
+ if (params === undefined)
117
+ return '';
118
+ const search = new URLSearchParams();
119
+ if (params.limit !== undefined)
120
+ search.set('limit', String(params.limit));
121
+ if (params.starting_after !== undefined)
122
+ search.set('starting_after', params.starting_after);
123
+ const query = search.toString();
124
+ return query === '' ? '' : `?${query}`;
125
+ }
126
+ //# sourceMappingURL=euThresholdLedgers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"euThresholdLedgers.js","sourceRoot":"","sources":["../../../src/resources/euThresholdLedgers.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,kBAAkB;IAC7B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CACR,MAAmC,EACnC,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAoB,0BAA0B,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACzF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAmC;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB,4BAA4B,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CACrD,CAAA;IACH,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,MAAmC;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CACpB,4BAA4B,IAAI,WAAW,OAAO,CAAC,MAAM,CAAC,EAAE,CAC7D,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,MAAmC,EACnC,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,4BAA4B,IAAI,cAAc,EAC9C,MAAM,EACN,OAAO,CACR,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,OAAO,CACX,IAAY,EACZ,MAAmC,EACnC,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,4BAA4B,IAAI,cAAc,EAC9C,MAAM,EACN,OAAO,CACR,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,MAA+B,EAC/B,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,4BAA4B,IAAI,SAAS,EACzC,MAAM,EACN,OAAO,CACR,CAAA;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,IAAY,EACZ,MAAyC,EACzC,OAAwB;QAExB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,4BAA4B,IAAI,iBAAiB,EACjD,MAAM,EACN,OAAO,CACR,CAAA;IACH,CAAC;CACF;AAED,2EAA2E;AAC3E,SAAS,OAAO,CAAC,MAAmC;IAClD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IACnC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IACpC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACzE,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAC5F,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC/B,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAA;AACxC,CAAC"}
@@ -1,12 +1,20 @@
1
1
  import type { HttpClient } from '../client.js';
2
2
  import { AutoPaginatingList } from '../pagination.js';
3
3
  import { Payments } from './payments.js';
4
- import type { Invoice, InvoiceCreateParams, InvoiceUpdateParams, InvoiceListParams, InvoiceRetrieveParams, InvoiceStatusResponse, InvoiceVerifyResponse, DocumentUrlResponse, JobResponse, PaymentLinkResponse, PaymentLinkCreateParams, PaymentTokenResponse, PaginatedResponse, LifecycleEntry, IncomingInvoiceCreateParams, ReceivedInvoice, RequestOptions } from '../types.js';
4
+ import type { Invoice, InvoiceCreateParams, InvoiceBindTaxDecisionParams, InvoiceUpdateParams, InvoiceListParams, InvoiceRetrieveParams, InvoiceStatusResponse, InvoiceVerifyResponse, DocumentUrlResponse, JobResponse, PaymentLinkResponse, PaymentLinkCreateParams, PaymentTokenResponse, PaginatedResponse, LifecycleEntry, IncomingInvoiceCreateParams, ReceivedInvoice, RequestOptions } from '../types.js';
5
5
  /** Manages invoice lifecycle — creation, finalization, sending, and document retrieval. */
6
6
  export declare class Invoices {
7
7
  private readonly client;
8
8
  readonly payments: Payments;
9
9
  constructor(client: HttpClient);
10
+ /**
11
+ * Create an invoice — ALWAYS backed by a FINAL tax decision (`taxDecisionId`
12
+ * + `decisionLines`), whatever its fiscal source. The decided VAT, amounts
13
+ * and mentions are copied verbatim and frozen; `deposits` and `schedule` are
14
+ * settled server-side against the decided amount, inside the creation
15
+ * transaction. The types enforce this at compile time; the checks below turn
16
+ * the same misuse into an immediate local error instead of a round trip.
17
+ */
10
18
  create(params: InvoiceCreateParams, options?: RequestOptions): Promise<Invoice>;
11
19
  list(params?: InvoiceListParams): AutoPaginatingList<Invoice>;
12
20
  /**
@@ -19,6 +27,28 @@ export declare class Invoices {
19
27
  update(id: string, params: InvoiceUpdateParams): Promise<Invoice>;
20
28
  /** Soft-delete (draft only). */
21
29
  del(id: string): Promise<void>;
30
+ /**
31
+ * Bind a FINAL tax decision to a commercial draft that already exists —
32
+ * typically the one `quotes.convert()` produced.
33
+ *
34
+ * This closes the quote cycle on ONE document:
35
+ *
36
+ * ```ts
37
+ * const { invoiceId } = await facturino.quotes.convert(quoteId)
38
+ * const decision = await facturino.taxDecisions.create({ ... }, { idempotencyKey })
39
+ * await facturino.invoices.bindTaxDecision(invoiceId, {
40
+ * taxDecisionId: decision.id,
41
+ * decisionLines: [{ taxLineRef: 'l1', unit: 'unit' }],
42
+ * })
43
+ * await facturino.invoices.finalize(invoiceId)
44
+ * ```
45
+ *
46
+ * The invoice stays a DRAFT: binding freezes the VAT, `finalize()` issues it.
47
+ * Idempotent on the decision — replaying the same call returns the same
48
+ * invoice. Binding a different decision to a bound invoice, or the same
49
+ * decision to a second invoice, is a conflict.
50
+ */
51
+ bindTaxDecision(id: string, params: InvoiceBindTaxDecisionParams, options?: RequestOptions): Promise<Invoice>;
22
52
  /** Assign number and lock. Irreversible. */
23
53
  finalize(id: string, options?: RequestOptions): Promise<Invoice>;
24
54
  /** Submit to PA. Returns 202 (async). */
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,27 @@ export class Invoices {
6
6
  this.client = client;
7
7
  this.payments = new Payments(client);
8
8
  }
9
+ /**
10
+ * Create an invoice — ALWAYS backed by a FINAL tax decision (`taxDecisionId`
11
+ * + `decisionLines`), whatever its fiscal source. The decided VAT, amounts
12
+ * and mentions are copied verbatim and frozen; `deposits` and `schedule` are
13
+ * settled server-side against the decided amount, inside the creation
14
+ * transaction. The types enforce this at compile time; the checks below turn
15
+ * the same misuse into an immediate local error instead of a round trip.
16
+ */
9
17
  async create(params, options) {
18
+ const runtime = params;
19
+ if (typeof runtime.taxDecisionId !== 'string' || runtime.taxDecisionId.length === 0) {
20
+ throw new Error(`'taxDecisionId' is required: every invoice is backed by a FINAL tax decision `
21
+ + `(facturino or integration source). Create one with taxDecisions.create() first.`);
22
+ }
23
+ if (!Array.isArray(runtime.decisionLines) || runtime.decisionLines.length === 0) {
24
+ throw new Error(`'decisionLines' is required: one presentation line per decision line, matched by 'taxLineRef'.`);
25
+ }
26
+ if ('lines' in runtime && runtime.lines !== undefined) {
27
+ throw new Error(`'lines' is not part of the invoice contract: the VAT of an invoice comes from its `
28
+ + `tax decision. Send 'decisionLines' (presentation only).`);
29
+ }
10
30
  return this.client.post('/v1/invoices', params, options);
11
31
  }
12
32
  list(params) {
@@ -30,6 +50,37 @@ export class Invoices {
30
50
  async del(id) {
31
51
  await this.client.del(`/v1/invoices/${id}`);
32
52
  }
53
+ /**
54
+ * Bind a FINAL tax decision to a commercial draft that already exists —
55
+ * typically the one `quotes.convert()` produced.
56
+ *
57
+ * This closes the quote cycle on ONE document:
58
+ *
59
+ * ```ts
60
+ * const { invoiceId } = await facturino.quotes.convert(quoteId)
61
+ * const decision = await facturino.taxDecisions.create({ ... }, { idempotencyKey })
62
+ * await facturino.invoices.bindTaxDecision(invoiceId, {
63
+ * taxDecisionId: decision.id,
64
+ * decisionLines: [{ taxLineRef: 'l1', unit: 'unit' }],
65
+ * })
66
+ * await facturino.invoices.finalize(invoiceId)
67
+ * ```
68
+ *
69
+ * The invoice stays a DRAFT: binding freezes the VAT, `finalize()` issues it.
70
+ * Idempotent on the decision — replaying the same call returns the same
71
+ * invoice. Binding a different decision to a bound invoice, or the same
72
+ * decision to a second invoice, is a conflict.
73
+ */
74
+ async bindTaxDecision(id, params, options) {
75
+ const runtime = params;
76
+ if (typeof runtime.taxDecisionId !== 'string' || runtime.taxDecisionId.length === 0) {
77
+ throw new Error(`'taxDecisionId' is required: a draft is fiscalised by binding a FINAL tax decision to it.`);
78
+ }
79
+ if (!Array.isArray(runtime.decisionLines) || runtime.decisionLines.length === 0) {
80
+ throw new Error(`'decisionLines' is required: one presentation line per decision line, matched by 'taxLineRef'.`);
81
+ }
82
+ return this.client.post(`/v1/invoices/${id}/bind-tax-decision`, params, options);
83
+ }
33
84
  /** Assign number and lock. Irreversible. */
34
85
  async finalize(id, options) {
35
86
  return this.client.post(`/v1/invoices/${id}/finalize`, undefined, options);
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { HttpClient } from '../client.js';
2
+ import type { TaxDecision, TaxDecisionCreateParams, RequestOptions } from '../types.js';
3
+ export declare class TaxDecisions {
4
+ private readonly client;
5
+ constructor(client: HttpClient);
6
+ /**
7
+ * Take a decision on a commercial operation.
8
+ *
9
+ * Business idempotency is durable here, beyond the 24-hour transport window,
10
+ * and it is keyed on the KEY — not on the operation. The SAME
11
+ * `idempotencyKey` with the SAME canonical body always replays the SAME
12
+ * decision, so a retry after a lost response costs nothing and charges
13
+ * nothing twice. Two DIFFERENT keys describing the same operation produce TWO
14
+ * decisions: nothing matches them up, and reusing one key with a different
15
+ * body answers `409`.
16
+ *
17
+ * Only a `final` decision carries amounts. On `pending_verification` or
18
+ * `unsupported`, `totals` and `amountToCharge` are `null` — never `0` — and
19
+ * `issues` says what is missing.
20
+ */
21
+ create(params: TaxDecisionCreateParams, options: RequestOptions & {
22
+ idempotencyKey: string;
23
+ }): Promise<TaxDecision>;
24
+ /**
25
+ * Read a decision back — typically after a payment capture, to check that the
26
+ * captured amount, currency and buyer match what was decided.
27
+ */
28
+ retrieve(id: string): Promise<TaxDecision>;
29
+ /** Alias of {@link TaxDecisions.retrieve}, for consistency with the other resources. */
30
+ get(id: string): Promise<TaxDecision>;
31
+ }
32
+ //# sourceMappingURL=taxDecisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxDecisions.d.ts","sourceRoot":"","sources":["../../../src/resources/taxDecisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAgBvF,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C;;;;;;;;;;;;;;OAcG;IACG,MAAM,CACV,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,cAAc,GAAG;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GACnD,OAAO,CAAC,WAAW,CAAC;IAkBvB;;;OAGG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIhD,wFAAwF;IAClF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAG5C"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Tax decisions — the fiscal position of one commercial operation.
3
+ *
4
+ * A decision fixes the VAT, the exact amount to charge and the three reporting
5
+ * axes, then never changes. Ask for one BEFORE you charge anything: the amount
6
+ * to debit is `amountToCharge`, not a total computed locally.
7
+ *
8
+ * The resource is immutable by design — there is no update and no delete. To
9
+ * re-decide the same operation after supplying missing evidence, create a new
10
+ * decision with `retryOfTaxDecisionId`.
11
+ */
12
+ /** Maximum length the API accepts for `Idempotency-Key`. */
13
+ const MAX_IDEMPOTENCY_KEY_LENGTH = 255;
14
+ export class TaxDecisions {
15
+ constructor(client) {
16
+ this.client = client;
17
+ }
18
+ /**
19
+ * Take a decision on a commercial operation.
20
+ *
21
+ * Business idempotency is durable here, beyond the 24-hour transport window,
22
+ * and it is keyed on the KEY — not on the operation. The SAME
23
+ * `idempotencyKey` with the SAME canonical body always replays the SAME
24
+ * decision, so a retry after a lost response costs nothing and charges
25
+ * nothing twice. Two DIFFERENT keys describing the same operation produce TWO
26
+ * decisions: nothing matches them up, and reusing one key with a different
27
+ * body answers `409`.
28
+ *
29
+ * Only a `final` decision carries amounts. On `pending_verification` or
30
+ * `unsupported`, `totals` and `amountToCharge` are `null` — never `0` — and
31
+ * `issues` says what is missing.
32
+ */
33
+ async create(params, options) {
34
+ const key = typeof options?.idempotencyKey === 'string' ? options.idempotencyKey.trim() : '';
35
+ if (key.length === 0) {
36
+ throw new Error('Idempotency-Key is required to create a tax decision');
37
+ }
38
+ // The API caps the key at 255 characters. Checking it here turns a round
39
+ // trip and a 400 into an immediate, local error.
40
+ if (key.length > MAX_IDEMPOTENCY_KEY_LENGTH) {
41
+ throw new Error(`Idempotency-Key must be at most ${MAX_IDEMPOTENCY_KEY_LENGTH} characters (received ${key.length})`);
42
+ }
43
+ // 201 on creation, 200 when the same key already produced this decision.
44
+ // Both carry the decision itself, so the caller reads one shape either way;
45
+ // a different body under the same key answers 409 (ConflictError).
46
+ return this.client.post('/v1/tax-decisions', params, options);
47
+ }
48
+ /**
49
+ * Read a decision back — typically after a payment capture, to check that the
50
+ * captured amount, currency and buyer match what was decided.
51
+ */
52
+ async retrieve(id) {
53
+ return this.client.get(`/v1/tax-decisions/${id}`);
54
+ }
55
+ /** Alias of {@link TaxDecisions.retrieve}, for consistency with the other resources. */
56
+ async get(id) {
57
+ return this.retrieve(id);
58
+ }
59
+ }
60
+ //# sourceMappingURL=taxDecisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxDecisions.js","sourceRoot":"","sources":["../../../src/resources/taxDecisions.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,4DAA4D;AAC5D,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAEtC,MAAM,OAAO,YAAY;IACvB,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CACV,MAA+B,EAC/B,OAAoD;QAEpD,MAAM,GAAG,GAAG,OAAO,OAAO,EAAE,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5F,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACzE,CAAC;QACD,yEAAyE;QACzE,iDAAiD;QACjD,IAAI,GAAG,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,mCAAmC,0BAA0B,yBAAyB,GAAG,CAAC,MAAM,GAAG,CACpG,CAAA;QACH,CAAC;QACD,yEAAyE;QACzE,4EAA4E;QAC5E,mEAAmE;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAc,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAc,qBAAqB,EAAE,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,wFAAwF;IACxF,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;CACF"}