Repository navigation
docs: align stamped invoice contracts and restore reference builds - #311
Merged
Merged
Conversation
raul-facturapi
approved these changes
Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The API reference reports incompatible schema intersections when a specialized field narrows a nullable shared definition. The site also renders six complete API reference pages across its two locales, exhausting Node's default heap. Contract-only CI does not catch either rendering problem.
Customer updates declare their allowed fields directly, retaining the distinction between omitted values and explicit null. Cancellation status has a named shared schema. Invoice responses keep their named status variants instead of duplicating them inside Invoice, and the request variants remain unchanged.
StampProperties defines the shared stamp metadata, including version and optional legend. Stamp allows incomplete metadata, while InvoiceStamp requires the original string and the existing certified fields. This expresses complement_string as a required string on valid/canceled invoices without intersecting string with a nullable definition. The invoice UUID remains the sole fiscal identifier.
Only the localized /api/ and /en/api/ references render the complete API. The previous /api-es/ and /api-en/ URLs redirect to the corresponding language, preserving query parameters and anchors. The build succeeds without increasing Node's heap limit. Pull-request CI builds both locales as well as checking the OpenAPI contract; no dependencies are added.
The customer selector in Create Invoice uses concise labels and a short description instead of nested type summaries. These presentation changes leave the downloadable contract unchanged. Request samples retain their independent selection.
The non-null response guarantee must be available for historical stamped invoices before this contract and its consuming SDK are published. SDK enum bindings need to follow the extracted cancellation-status schema. The renderer fixes from #313 are incorporated here, with its commit preserved.
Validation: both Spanish and English contracts pass reference, structural-alignment and generated-type checks. The full site builds in both locales, including a clean installation from the lockfile. The clean local build completes in approximately 20 seconds with 4.6 GiB maximum resident memory, without a heap override. Browser checks cover the four redirect paths, query parameters and anchors, both languages and color modes, and customer alternatives. A React hydration warning also reproduces with the preceding configuration and remains unresolved. CI is rerunning for the latest commit.