@timbro/invoices 0.12.0 → 0.14.0-next.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.
Files changed (56) hide show
  1. package/README.md +27 -1
  2. package/dist/admin.d.ts +1 -0
  3. package/dist/admin.d.ts.map +1 -1
  4. package/dist/admin.js +1 -0
  5. package/dist/certification-workbook.d.ts +9 -0
  6. package/dist/certification-workbook.d.ts.map +1 -0
  7. package/dist/certification-workbook.js +13 -0
  8. package/dist/fiscal-engine-runtime.manifest.json +121 -116
  9. package/dist/fiscal-engine-runtime.provenance.json +198 -193
  10. package/dist/generated/certification-api-contract.d.ts +430 -0
  11. package/dist/generated/certification-api-contract.d.ts.map +1 -0
  12. package/dist/generated/certification-api-contract.js +483 -0
  13. package/dist/generated/hosted/index.d.ts +3 -3
  14. package/dist/generated/hosted/index.d.ts.map +1 -1
  15. package/dist/generated/hosted/index.js +2 -2
  16. package/dist/generated/hosted/sdk.gen.d.ts +13 -1
  17. package/dist/generated/hosted/sdk.gen.d.ts.map +1 -1
  18. package/dist/generated/hosted/sdk.gen.js +165 -1
  19. package/dist/generated/hosted/types.gen.d.ts +308 -6
  20. package/dist/generated/hosted/types.gen.d.ts.map +1 -1
  21. package/dist/generated/hosted/zod-response.gen.d.ts +322 -20
  22. package/dist/generated/hosted/zod-response.gen.d.ts.map +1 -1
  23. package/dist/generated/hosted/zod-response.gen.js +113 -5
  24. package/dist/generated/hosted/zod.gen.d.ts +221 -5
  25. package/dist/generated/hosted/zod.gen.d.ts.map +1 -1
  26. package/dist/generated/hosted/zod.gen.js +133 -5
  27. package/dist/generated/index.d.ts +3 -3
  28. package/dist/generated/index.d.ts.map +1 -1
  29. package/dist/generated/index.js +2 -2
  30. package/dist/generated/invoice-api-contract.d.ts +1346 -106
  31. package/dist/generated/invoice-api-contract.d.ts.map +1 -1
  32. package/dist/generated/invoice-api-contract.js +1756 -164
  33. package/dist/generated/problem-catalog.d.ts.map +1 -1
  34. package/dist/generated/problem-catalog.js +2 -0
  35. package/dist/generated/sdk.gen.d.ts +5 -1
  36. package/dist/generated/sdk.gen.d.ts.map +1 -1
  37. package/dist/generated/sdk.gen.js +109 -1
  38. package/dist/generated/types.gen.d.ts +544 -55
  39. package/dist/generated/types.gen.d.ts.map +1 -1
  40. package/dist/generated/zod-response.gen.d.ts +20971 -3786
  41. package/dist/generated/zod-response.gen.d.ts.map +1 -1
  42. package/dist/generated/zod-response.gen.js +228 -6
  43. package/dist/generated/zod.gen.d.ts +17521 -2762
  44. package/dist/generated/zod.gen.d.ts.map +1 -1
  45. package/dist/generated/zod.gen.js +2328 -1438
  46. package/dist/generated-operation-client.d.ts +2 -2
  47. package/dist/generated-operation-client.d.ts.map +1 -1
  48. package/dist/index.d.ts +2 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/invoice-hosted-controls.d.ts +11 -2
  51. package/dist/invoice-hosted-controls.d.ts.map +1 -1
  52. package/dist/invoice-hosted-controls.js +26 -1
  53. package/dist/problem-contract.d.ts +3 -1
  54. package/dist/problem-contract.d.ts.map +1 -1
  55. package/dist/timbro_fiscal_engine_bg.wasm +0 -0
  56. package/package.json +2 -2
package/README.md CHANGED
@@ -94,6 +94,21 @@ if (progress.status === "in_progress") {
94
94
 
95
95
  Keep each command's idempotency key and reuse it after a timeout. `expectedRevision` prevents a report from overwriting newer progress. Reported DGII outcomes remain unverified until their evidence is reviewed; a report does not authorize invoicing. A server handling a person's certificate upload uses `business.importSigningCertificate` with `purpose: "certification"`, `certificateP12Base64`, and `password`. It receives certification progress and leaves the test and live certificates unchanged.
96
96
 
97
+ During certification, retain the original `.xlsx` downloaded from DGII with `business.certification.uploadTestSet`. Pass a `File`, or `{name, bytes}` with a `Uint8Array`; the SDK encodes the wire request. The file must contain between 1 byte and 3 MiB.
98
+
99
+ ```ts
100
+ const testSet = await timbro.business.certification.uploadTestSet({
101
+ kind: "ecf",
102
+ file: dgiiWorkbook,
103
+ idempotencyKey: "certification-workbook-upload-1",
104
+ });
105
+ const { current } = await timbro.business.certification.retrieveTestSet();
106
+ ```
107
+
108
+ Here `dgiiWorkbook` is the original `File` selected by the person, or its filename and bytes read by the server. The response contains the original file hash, worksheet case counts, and outstanding review requirements. `current` is null before any upload. Uploading does not sign or submit a document, consume a fiscal number, or advance DGII progress.
109
+
110
+ Retry an uncertain upload with the same file, filename, and idempotency key. A corrected file needs a new key. A valid replacement retains earlier originals; a rejected replacement leaves the current workbook unchanged. `review_required` and `case_mapping_pending` require resolving the official case mapping before execution.
111
+
97
112
  Webhook endpoints support list, create, retrieve, delete, delivery listing, event replay, secret rotation, suspension, and reactivation. Lists return `data`, `hasMore`, and `nextCursor`; pass the cursor to the next page with the same filters. Delivery `eventType` remains a string so stored deliveries from earlier event contracts can still be read. Use a Gateway host for these hosted controls; native Source origins expose their Source operations separately.
98
113
 
99
114
  Persist the request and its `invoiceReference` before submitting it. An equivalent retry returns the same retained Invoice ID and current state. Changed content under that reference returns `invoice_reference_conflict`. An optional `idempotencyKey` in the second argument binds a command independently of the reference. A timeout or lost response does not justify a new reference or a second invoice.
@@ -102,6 +117,17 @@ For ERP attribution, the optional `source: {id, version}` identifies the immutab
102
117
 
103
118
  Amounts are exact decimal strings. `unitPrice` is interpreted using the item's `tax.included` flag. Timbro groups items by tax kind and `tax.included`, and rounds each group's taxable base and ITBIS once from the exact quantity × unit price amounts; a legal tip is 10% of each tipped item's value without ITBIS. `incomeType` is explicit when supplied; otherwise the issuer's configured default must exist. A create request may supply `expectedTotals` to assert accounting agreement. A mismatch refuses admission without consuming a fiscal number.
104
119
 
120
+ E31, E41, and E46 items also accept `adjustments` with separate `discounts` and
121
+ `surcharges` arrays, each limited to 12 entries. Each entry is a fixed amount or
122
+ a percentage; Timbro derives its fiscal effect. This line-level input is
123
+ separate from document-level adjustments. Other document types do not yet
124
+ accept it. Their remaining commercial profiles are tracked in
125
+ [E32](https://github.com/indexa-labs/Timbro/issues/27),
126
+ [E33](https://github.com/indexa-labs/Timbro/issues/28),
127
+ [E34](https://github.com/indexa-labs/Timbro/issues/29),
128
+ [E44](https://github.com/indexa-labs/Timbro/issues/32), and
129
+ [E45](https://github.com/indexa-labs/Timbro/issues/33).
130
+
105
131
  The request is discriminated by `type`. E31 and E32 have sales fields, E41 has supplier and withholding fields, and E45 has buyer and government eligibility fields. They use the same methods and Invoice identity.
106
132
 
107
133
  Before offering a document type, read whether the issuer can issue it now:
@@ -118,7 +144,7 @@ for (const documentType of readiness.documentTypes) {
118
144
  }
119
145
  ```
120
146
 
121
- Each of the ten e-CF types is `ready` only when the issuer profile is complete, the signing certificate is valid now, and a numbering range is eligible. `reasons` lists every blocker in issuer, certificate, numbering order, and `numbering.remaining` and `numbering.expiresOn` describe the range Timbro assigns from next. Admission still decides each document. Pass `hosted: { checkoutTenantId, environment }` to read a hosted tenant with a first-party service credential; an ERP connected through the Checkout Gateway reads the same verdicts on `GET /v1/business`.
147
+ Each of the ten e-CF types is `ready` only when the issuer profile is complete, the signing certificate is valid now, and a numbering range is eligible. `reasons` lists every blocker in issuer, certificate, numbering order, and `numbering.remaining`, `numbering.expiresOn`, and `numbering.confirmation` describe the range Timbro assigns from next. A range the business recorded is `not_yet_confirmed` and issues; it becomes `confirmed` when DGII accepts an e-CF numbered from it. If DGII rejects a number as outside the authorized sequence or expired, the type reports `sequence_rejected_by_dgii` until a corrected sequence is recorded. Admission still decides each document. Pass `hosted: { checkoutTenantId, environment }` to read a hosted tenant with a first-party service credential; an ERP connected through the Checkout Gateway reads the same verdicts on `GET /v1/business`.
122
148
 
123
149
  An optional preview evaluates the request without creating an Invoice, reserving a number, or producing files:
124
150
 
package/dist/admin.d.ts CHANGED
@@ -7,6 +7,7 @@ export type { FiscalDocument, FiscalDocumentAction, FiscalDocumentIssueCommand,
7
7
  export { toFiscalDocumentSnapshot } from "./fiscal-operation.ts";
8
8
  export type { FiscalOperationTimingReport, TimingStageId } from "./fiscal-operation-timing.ts";
9
9
  export { TIMING_STAGE_IDS } from "./fiscal-operation-timing.ts";
10
+ export { certificationApiContract } from "./generated/certification-api-contract.ts";
10
11
  export type { FiscalOperationOutcomeResource, InvoiceDeliveryResource, InvoicePage, InvoicePreview, InvoiceReceipt, InvoiceReceiptAccess, InvoiceRequest, InvoiceResource, InvoiceType, PrintedRepresentationProfile, SourceCreditNoteCorrection, SourceDebitNoteCorrection, SourceFiscalAction, WebhookDelivery, WebhookDeliveryPage, WebhookDeliveryState, } from "./generated/index.ts";
11
12
  export type { HostedTenant, HostedTenantCertificateImportCommand, HostedTenantClient, HostedTenantClientOptions, HostedTenantCreateCommand, HostedTenantEnvironment, HostedTenantRelease, HostedTenantReleaseCommand, HostedTenantWebhookSecretRotationCommand, HostedWebhookSecretRotation, } from "./hosted-tenant.ts";
12
13
  export { createHostedTenantClient } from "./hosted-tenant.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
package/dist/admin.js CHANGED
@@ -2,6 +2,7 @@ export { walkCollectionPages } from "./collection.js";
2
2
  export { createDirectConnectionClient, generateDirectConnectionCredential, } from "./direct-connection.js";
3
3
  export { toFiscalDocumentSnapshot } from "./fiscal-operation.js";
4
4
  export { TIMING_STAGE_IDS } from "./fiscal-operation-timing.js";
5
+ export { certificationApiContract } from "./generated/certification-api-contract.js";
5
6
  export { createHostedTenantClient } from "./hosted-tenant.js";
6
7
  export { createHostedWorkspaceTransport } from "./hosted-workspace-transport.js";
7
8
  export { createTimbroInvoices, verifyInvoicePdfDownload, verifyInvoiceXmlDownload, } from "./invoice.js";
@@ -0,0 +1,9 @@
1
+ export type CertificationWorkbookFile = File | {
2
+ readonly name: string;
3
+ readonly bytes: Uint8Array;
4
+ };
5
+ export declare function encodeCertificationWorkbook(file: CertificationWorkbookFile): Promise<{
6
+ name: string;
7
+ contentBase64: string;
8
+ }>;
9
+ //# sourceMappingURL=certification-workbook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certification-workbook.d.ts","sourceRoot":"","sources":["../src/certification-workbook.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GACjC,IAAI,GACJ;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B,CAAC;AAIN,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC;IAC1F,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAWD"}
@@ -0,0 +1,13 @@
1
+ const MAX_WORKBOOK_BYTES = 3 * 1024 * 1024;
2
+ export async function encodeCertificationWorkbook(file) {
3
+ const size = "arrayBuffer" in file ? file.size : file.bytes.byteLength;
4
+ if (size < 1 || size > MAX_WORKBOOK_BYTES) {
5
+ throw new RangeError("The DGII workbook must contain between 1 byte and 3 MiB.");
6
+ }
7
+ const bytes = "arrayBuffer" in file ? new Uint8Array(await file.arrayBuffer()) : file.bytes;
8
+ let binary = "";
9
+ for (const byte of bytes) {
10
+ binary += String.fromCharCode(byte);
11
+ }
12
+ return { name: file.name, contentBase64: btoa(binary) };
13
+ }