@timbro/invoices 0.11.0 → 0.13.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 (59) hide show
  1. package/README.md +46 -0
  2. package/dist/admin.d.ts +2 -1
  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 +117 -112
  9. package/dist/fiscal-engine-runtime.provenance.json +194 -189
  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 +31 -1
  17. package/dist/generated/hosted/sdk.gen.d.ts.map +1 -1
  18. package/dist/generated/hosted/sdk.gen.js +389 -1
  19. package/dist/generated/hosted/types.gen.d.ts +878 -36
  20. package/dist/generated/hosted/types.gen.d.ts.map +1 -1
  21. package/dist/generated/hosted/zod-response.gen.d.ts +6005 -192
  22. package/dist/generated/hosted/zod-response.gen.d.ts.map +1 -1
  23. package/dist/generated/hosted/zod-response.gen.js +766 -231
  24. package/dist/generated/hosted/zod.gen.d.ts +1622 -7
  25. package/dist/generated/hosted/zod.gen.d.ts.map +1 -1
  26. package/dist/generated/hosted/zod.gen.js +830 -215
  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 +1345 -105
  31. package/dist/generated/invoice-api-contract.d.ts.map +1 -1
  32. package/dist/generated/invoice-api-contract.js +1755 -163
  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 +534 -51
  39. package/dist/generated/types.gen.d.ts.map +1 -1
  40. package/dist/generated/zod-response.gen.d.ts +21272 -4130
  41. package/dist/generated/zod-response.gen.d.ts.map +1 -1
  42. package/dist/generated/zod-response.gen.js +230 -4
  43. package/dist/generated/zod.gen.d.ts +17458 -2747
  44. package/dist/generated/zod.gen.d.ts.map +1 -1
  45. package/dist/generated/zod.gen.js +2333 -1441
  46. package/dist/generated-operation-client.d.ts +2 -2
  47. package/dist/generated-operation-client.d.ts.map +1 -1
  48. package/dist/hosted-tenant.d.ts +9 -0
  49. package/dist/hosted-tenant.d.ts.map +1 -1
  50. package/dist/hosted-tenant.js +7 -0
  51. package/dist/index.d.ts +2 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/invoice-hosted-controls.d.ts +31 -3
  54. package/dist/invoice-hosted-controls.d.ts.map +1 -1
  55. package/dist/invoice-hosted-controls.js +73 -12
  56. package/dist/problem-contract.d.ts +2 -0
  57. package/dist/problem-contract.d.ts.map +1 -1
  58. package/dist/timbro_fiscal_engine_bg.wasm +0 -0
  59. package/package.json +3 -3
package/README.md CHANGED
@@ -74,6 +74,41 @@ if (deliveries.hasMore && deliveries.nextCursor !== null) {
74
74
 
75
75
  `business.retrieve` returns current capabilities, setup status, and requirements. Update only the business members being replaced with `business.update`; import a signing certificate with `business.importSigningCertificate`; and read the business again to confirm retained state. `issueTestInvoice` always uses the test environment. Invoice API keys are issued for one explicit mode and returned once. The Gateway enforces credential authority for each task.
76
76
 
77
+ Certification has its own retained progress and certificate purpose. Start preparation once, then read the same resource to resume. Use the returned service URLs in DGII; these are assigned for the authenticated business and do not change its production directory entries.
78
+
79
+ ```ts
80
+ const certification = await timbro.business.certification.start({
81
+ path: "external_software",
82
+ idempotencyKey: "certification-start-1",
83
+ });
84
+ const progress = await timbro.business.certification.retrieve();
85
+ if (progress.status === "in_progress") {
86
+ await timbro.business.certification.submitEvidence({
87
+ expectedRevision: progress.revision,
88
+ step: 1,
89
+ outcome: "submitted",
90
+ idempotencyKey: "report-1",
91
+ });
92
+ }
93
+ ```
94
+
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
+
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
+
77
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.
78
113
 
79
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.
@@ -82,6 +117,17 @@ For ERP attribution, the optional `source: {id, version}` identifies the immutab
82
117
 
83
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.
84
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
+
85
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.
86
132
 
87
133
  Before offering a document type, read whether the issuer can issue it now:
package/dist/admin.d.ts CHANGED
@@ -7,8 +7,9 @@ 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
- export type { HostedTenant, HostedTenantClient, HostedTenantClientOptions, HostedTenantCreateCommand, HostedTenantEnvironment, HostedTenantRelease, HostedTenantReleaseCommand, HostedTenantWebhookSecretRotationCommand, HostedWebhookSecretRotation, } from "./hosted-tenant.ts";
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";
13
14
  export type { HostedWorkspaceTransportOptions } from "./hosted-workspace-transport.ts";
14
15
  export { createHostedWorkspaceTransport } from "./hosted-workspace-transport.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
+ }