Modelos de documento: listar e consultar
Lista os modelos de fatura, romaneio e nota de crédito, consulta um modelo, acha o padrão de um tipo e lista as variáveis disponíveis.
Um modelo de documento é um HTML com marcadores {{variavel}} que a plataforma preenche com os dados de um pedido para gerar uma fatura, um romaneio de separação, uma nota de crédito ou um documento livre. Estas rotas leem os modelos da loja. Para editar, veja Criar e editar modelos. Basta ser administrador da loja: nenhuma delas exige um privilégio específico.
Listar modelos
/api/v1/admin/documentsAdminListar modelos de documento
Parâmetros de consulta
typestringinvoicepacking_slipcredit_memocustomSó modelos deste tipo. Sem o parâmetro, todos.
Exemplo de requisição (listar)
bash
curl "$BASE_URL/api/v1/admin/documents?type=invoice" \
-H "Authorization: Bearer $TOKEN"Resposta (listar)
200Modelos
json
{
"documents": [{
"id": "3204f98e-2c66-42d5-baee-bbc191a1b063",
"name": "Etiqueta de pedido",
"type": "custom",
"body_html": "<h1>Pedido {{order_number}}</h1><p>{{customer_name}} total {{total}}</p>",
"variables": ["order_number", "customer_name", "total"],
"is_default": false,
"language": "pt-BR",
"created_at": "2026-10-11T21:19:07.694671Z",
"updated_at": "2026-10-11T21:19:07.694671Z"
}],
"total": 1
}Campos da resposta
documentsarrayModelos da loja.
documents[].iduuidId do modelo.
documents[].namestringNome do modelo.
documents[].typestringinvoicepacking_slipcredit_memocustomTipo do documento.
documents[].body_htmlstringO HTML do documento, com marcadores
{{variavel}}. As aspas, < e > vêm escapados como \u003c no JSON (é só a forma de escrever; ao decodificar volta o HTML).documents[].variablesarrayNomes das variáveis que o autor declarou usar. É informativo: é gravado como veio, não é calculado nem conferido contra o corpo.
documents[].is_defaultbooleanSe é o modelo padrão do seu tipo e idioma.
documents[].languagestringIdioma, por exemplo
pt-BR.documents[].created_atstringCriação, RFC 3339.
documents[].updated_atstringÚltima alteração, RFC 3339.
totalintegerQuantidade.
Erros (listar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 500 | type fora de invoice, packing_slip, credit_memo, custom. Hoje volta como 500, não 400. | {"error":"failed to list documents","detail":"invalid document type: foo"} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Consultar modelo
/api/v1/admin/documents/{id}AdminConsultar um modelo
Parâmetros de caminho
iduuidobrigatórioId do modelo (UUID).
Exemplo de requisição (consultar)
bash
curl "$BASE_URL/api/v1/admin/documents/3204f98e-2c66-42d5-baee-bbc191a1b063" \
-H "Authorization: Bearer $TOKEN"Resposta (consultar)
200Modelo
json
{
"id": "3204f98e-2c66-42d5-baee-bbc191a1b063",
"name": "Etiqueta de pedido",
"type": "custom",
"body_html": "<h1>Pedido {{order_number}}</h1><p>{{customer_name}} total {{total}}</p>",
"variables": ["order_number", "customer_name", "total"],
"is_default": false,
"language": "pt-BR",
"created_at": "2026-10-11T21:19:07.694671Z",
"updated_at": "2026-10-11T21:19:07.694671Z"
}Campos da resposta
iduuidId do modelo.
namestringNome do modelo.
typestringinvoicepacking_slipcredit_memocustomTipo do documento.
body_htmlstringO HTML do documento, com marcadores
{{variavel}}. As aspas, < e > vêm escapados como \u003c no JSON (é só a forma de escrever; ao decodificar volta o HTML).variablesarrayNomes das variáveis que o autor declarou usar. É informativo: é gravado como veio, não é calculado nem conferido contra o corpo.
is_defaultbooleanSe é o modelo padrão do seu tipo e idioma.
languagestringIdioma, por exemplo
pt-BR.created_atstringCriação, RFC 3339.
updated_atstringÚltima alteração, RFC 3339.
Erros (consultar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 404 | O modelo não existe. | {"error":"document not found"} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Modelo padrão
/api/v1/admin/documents/defaultAdminAchar o modelo padrão de um tipo
Parâmetros de consulta
typestringobrigatórioinvoicepacking_slipcredit_memocustomTipo do documento.
languagestringpadrão: pt-BRIdioma.
Exemplo de requisição (padrão)
bash
curl "$BASE_URL/api/v1/admin/documents/default?type=invoice&language=pt-BR" \
-H "Authorization: Bearer $TOKEN"Resposta (padrão)
200Modelo padrão
json
{
"id": "3204f98e-2c66-42d5-baee-bbc191a1b063",
"name": "Etiqueta de pedido",
"type": "invoice",
"body_html": "<h1>Pedido {{order_number}}</h1><p>{{customer_name}} total {{total}}</p>",
"variables": ["order_number", "customer_name", "total"],
"is_default": true,
"language": "pt-BR",
"created_at": "2026-10-11T21:19:07.694671Z",
"updated_at": "2026-10-11T21:19:07.694671Z"
}Campos da resposta
iduuidId do modelo.
namestringNome do modelo.
typestringinvoicepacking_slipcredit_memocustomTipo do documento.
body_htmlstringO HTML do documento, com marcadores
{{variavel}}. As aspas, < e > vêm escapados como \u003c no JSON (é só a forma de escrever; ao decodificar volta o HTML).variablesarrayNomes das variáveis que o autor declarou usar. É informativo: é gravado como veio, não é calculado nem conferido contra o corpo.
is_defaultbooleanSe é o modelo padrão do seu tipo e idioma.
languagestringIdioma, por exemplo
pt-BR.created_atstringCriação, RFC 3339.
updated_atstringÚltima alteração, RFC 3339.
Erros (padrão)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 400 | Falta type. | {"error":"type parameter is required"} |
| 404 | Não há modelo padrão para o tipo. | {"error":"no default document found for this type"} |
| 500 | type fora de invoice, packing_slip, credit_memo, custom. Hoje volta como 500, não 400. | {"error":"failed to get default document","detail":"invalid document type: foo"} |
| 500 | Falha inesperada no servidor. | {"error":"failed to ..."} |
Variáveis disponíveis
/api/v1/admin/documents/fieldsAdminVariáveis disponíveis nos modelos
Exemplo de requisição (variáveis)
bash
curl "$BASE_URL/api/v1/admin/documents/fields" \
-H "Authorization: Bearer $TOKEN"Resposta (variáveis)
200Variáveis
json
{
"fields": [
{ "name": "order_number", "label": "Order Number", "source": "order.order_number" },
{ "name": "total", "label": "Total", "source": "order.total" },
{ "name": "items_table", "label": "Order Items Table (HTML)", "source": "items" }
],
"total": 31
}Campos da resposta
fieldsarrayVariáveis que o editor oferece.
fields[].namestringNome da variável: escreva
{{name}} no HTML.fields[].labelstringRótulo em inglês.
fields[].sourcestringDe onde vem o dado.
totalintegerQuantidade.
Erros (variáveis)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |