Obter um template
Retorna um template com o corpo do documento e as variáveis classificadas por origem.
https://external-api.arbitralis.com.br/api/external/v1/templates/{id}X-API-KEYSíncrono — a resposta já traz o resultadoRetorna um template específico com o corpo do documento e as variáveis que ele declara.
O valor está nas variáveis classificadas: elas dizem exatamente quais dados a sua integração precisa enviar e quais a Arbitralis preenche sozinha.
iduuidobrigatórioIdentificador do template. Obtenha em Listar templates.
versionstringopcionalpadrão publishedVersão a retornar. Use draft para inspecionar um rascunho ainda não publicado.
draftpublishedVariáveis classificadas
Cada variável do template vem com a origem do dado. É isso que diz o que você precisa enviar:
| Campo | Descrição |
|---|---|
key | Nome da variável no corpo do template ({{key}}) |
source | De onde vem o valor — ver tabela abaixo |
required | Se o template exige a variável |
mustSendInPayload | Se você precisa enviar o valor |
origin | Campo da plataforma que preenche a variável, quando aplicável |
definitionId | Identificador do campo personalizado |
type | Tipo do campo personalizado (TEXT, DATE, NUMBER, ENUM…) |
enumOptions | Valores aceitos quando o tipo é ENUM |
Origens
source | Significado | Você envia? |
|---|---|---|
BASE_PLATFORM | A Arbitralis preenche a partir dos dados da notificação — nome, CPF, valor, datas | Não |
CUSTOM_FIELD | Campo personalizado do workspace — número de contrato, protocolo, vencimento | Sim |
UNKNOWN | Variável no corpo do template sem correspondência conhecida | Sim, se quiser preenchê-la |
A regra prática
Filtre por mustSendInPayload: true e você tem exatamente a lista de chaves a incluir em
metadata ao criar a notificação ou nos itens do
lote.
Do template ao envio
const { data: template } = await obterTemplate(templateId);
const chavesNecessarias = template.variables
.filter((v) => v.mustSendInPayload && v.required)
.map((v) => v.key);
const faltando = chavesNecessarias.filter((chave) => !(chave in meusDados));
if (faltando.length > 0) {
throw new Error(`Variáveis obrigatórias ausentes: ${faltando.join(', ')}`);
}
await criarNotificacao({
deliveryMethod: 'DIGITAL',
notificationTemplateId: template.id,
amount: meusDados.valor,
contact: { name: meusDados.nome, taxId: meusDados.cpf, phoneNumbers: [meusDados.telefone] },
metadata: Object.fromEntries(chavesNecessarias.map((chave) => [chave, meusDados[chave]])),
});Variável UNKNOWN não é bloqueante
Uma variável UNKNOWN indica que o template referencia algo que não corresponde a um campo da
plataforma nem a um campo personalizado ativo. O envio funciona, mas o placeholder pode sair vazio
no documento. Vale revisar o template no painel.
Erros
| Código | Causa |
|---|---|
401 | API key ausente, inválida ou inativa |
404 | Template inexistente, arquivado, fora do workspace, ou sem a versão solicitada |
429 | Limite de requisições excedido |
curl -X GET "https://external-api.arbitralis.com.br/api/external/v1/templates/4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a" \
-H "X-API-KEY: arb_live_SUA_CHAVE"const templateId = '4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a';
const response = await fetch(
`https://external-api.arbitralis.com.br/api/external/v1/templates/${templateId}`,
{ headers: { 'X-API-KEY': 'arb_live_SUA_CHAVE' } }
);
const { data: template } = await response.json();
const precisoEnviar = template.variables
.filter((variavel) => variavel.mustSendInPayload && variavel.required)
.map((variavel) => variavel.key);
console.log('Envie estes campos em metadata:', precisoEnviar);import requests
template_id = "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a"
response = requests.get(
f"https://external-api.arbitralis.com.br/api/external/v1/templates/{template_id}",
headers={"X-API-KEY": "arb_live_SUA_CHAVE"},
)
template = response.json()["data"]
preciso_enviar = [
v["key"] for v in template["variables"] if v["mustSendInPayload"] and v["required"]
]{
"success": true,
"data": {
"id": "4d5e6f7a-8b9c-4d0e-9f1a-2b3c4d5e6f7a",
"name": "Cobrança — contratos em atraso",
"title": "Notificação Extrajudicial de Cobrança",
"status": "PUBLISHED",
"type": "CUSTOM",
"bodyHtml": "<p>Prezado(a) {{nome}},</p><p>Consta débito referente ao contrato {{numero_contrato}}, com vencimento em {{data_vencimento}}, no valor de {{valor}}.</p>",
"bodyText": "Prezado(a) {{nome}}, consta débito referente ao contrato {{numero_contrato}}...",
"variables": [
{
"key": "nome",
"source": "BASE_PLATFORM",
"required": true,
"mustSendInPayload": false,
"origin": "pessoa.nomeCompleto"
},
{
"key": "valor",
"source": "BASE_PLATFORM",
"required": true,
"mustSendInPayload": false,
"origin": "item.valor"
},
{
"key": "numero_contrato",
"source": "CUSTOM_FIELD",
"required": true,
"mustSendInPayload": true,
"definitionId": "8d2e3f4a-5b6c-7d8e-9f0a-1b2c3d4e5f6a",
"type": "TEXT"
},
{
"key": "data_vencimento",
"source": "CUSTOM_FIELD",
"required": false,
"mustSendInPayload": true,
"definitionId": "2b3c4d5e-6f7a-4b9c-8d1e-2f3a4b5c6d7e",
"type": "DATE"
}
],
"updatedAt": "2026-08-01T09:14:22.000Z"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Template não encontrado",
"errorEventId": "c2e4d7f9-3b55-4ea0-8021-6d4c9f3b2e44"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or inactive API key."
}
}