Create invoice document from template
well_create_invoice_document_from_templateRender values through an invoice template this workspace built from its own invoice, and store the resulting PDF.
Give the template's document_id and input: the invoice's values, in the same shape the built-in invoice designs take. Call well_list_generative_documents with kind "invoice" to read that shape as a JSON Schema. Values that do not match are refused with the path and reason of the first problems found (at most 50), so fix them and call again.
The template must already be kept by the user. A template still awaiting review, or one that was declined, refuses to render.
Totals are never supplied: the subtotal, the tax rows, each lot's subtotal and the grand total are computed from the lines when the template runs, so a printed total can never disagree with the lines above it.
The PDF is stored as its own document and the tool returns its document_id.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | The invoice's values, matching the invoice kind's params_json_schema. | |
| document_id | Yes | The kept template document to render through. | |
| workspace_id | No | Target workspace. Omit when the token authorizes one workspace. Required when it authorizes several — a write lands in exactly one workspace and this call would not say which. | |
| conversation_id | No | The conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation. | |
| idempotency_key | No | Optional client-supplied key. A retried write with the same key returns the original result instead of re-applying the operation. | |
| workspace_scope | No | Restrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | ||
| issues | No | The first input values that did not match the invoice schema. | |
| success | Yes | ||
| filename | No | ||
| document_id | No | The stored PDF. | |
| refusal_reason | No | The WellError code when the render is refused. | |
| conversation_id | No | The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation. | |
| newly_connected | No | Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later. | |
| conversation_id_note | No | Present only when the server opened a fresh lane, stating that no choice recorded earlier was read. | |
| template_document_id | No | ||
| conversation_id_source | No | Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened. |