Se o seu sistema já tem os produtos e os preços, ele manda a lista para cá por HTTP e recebe de volta a etiqueta, o encarte ou o cardápio prontos, com um link de impressão. Ninguém digita nada duas vezes.
https://encarte.pedidofacil.cloud/api/v1Toda chamada precisa de um token. Você cria em Integrações, dentro da sua conta, escolhendo quais módulos ele pode usar. O token aparece uma única vez: guardamos apenas um resumo criptográfico dele, então não há como recuperá-lo depois — se perder, revogue e crie outro.
Mande-o no cabeçalho Authorization de toda requisição:
Authorization: Bearer pfk_0123456789abcdef...
Para conferir se está funcionando:
curl -H "Authorization: Bearer SEU_TOKEN" \
https://encarte.pedidofacil.cloud/api/v1/conta
É o caminho mais usado: você manda os produtos e recebe o lote criado, já com o link de impressão que pode ser aberto direto pelo seu sistema, sem login.
POST https://encarte.pedidofacil.cloud/api/v1/etiquetas
Authorization: Bearer SEU_TOKEN
Content-Type: application/json
{
"titulo": "Ofertas da semana",
"tamanho": "media",
"estilo": "oferta",
"termica": true,
"itens": [
{ "nome": "Arroz Tio João 5kg", "preco": "24,90", "preco_de": "29,90", "qtd": 2 },
{ "nome": "Feijão Carioca 1kg", "preco": "7,49", "unidade": "kg" },
{
"nome": "Creme Gelado 1L",
"preco": "7,00",
"codigo": "7891000315507",
"fabricacao": "30/09/2026",
"validade": "30/10/2026",
"opcoes_titulo": "Sabor",
"opcoes": ["Morango", "Uva", "Limão"],
"textos": ["Conservar refrigerado"]
}
]
}
Resposta (201 Created):
{
"dados": {
"id": 128,
"titulo": "Ofertas da semana",
"tamanho": "media",
"url_impressao": "https://encarte.pedidofacil.cloud/i/5f1c...",
"url_editor": "https://encarte.pedidofacil.cloud/etiquetas/128/editar",
"total_etiquetas": 4,
"por_pagina": 12,
"documento": { ... }
}
}
url_impressao numa aba (ou num iframe) e mande imprimir: a página já sai no tamanho
exato da etiqueta e tem o botão de salvar em PDF.
| Campo | Tipo | Para que serve |
|---|---|---|
nome | texto (60) | Nome do produto. Obrigatório na prática. |
detalhe | texto (30) | Complemento, como "pacote 500 g". |
preco | texto ou número | Aceita "24,90", "24.90" ou 24.9. |
preco_de | texto ou número | Preço antigo, sai riscado. |
unidade | texto (8) | Ex.: kg, 100g, un. |
qtd | número 1–100 | Quantas cópias dessa etiqueta imprimir. |
fabricacao, validade | texto (12) | Datas em dd/mm/aaaa. |
lote | texto (16) | Número do lote. |
codigo | texto (24) | Código de barras. 13 números = EAN-13, 8 = EAN-8, com letras = Code 128. |
textos | lista (2) | Linhas livres, ex.: "Conservar refrigerado". |
opcoes | lista (12) | Lista com quadradinho para marcar à caneta (sabores, tamanhos). |
opcoes_titulo | texto (16) | Nome da lista, ex.: "Sabor". |
Campos fora dessa lista são ignorados, e valores fora do permitido são cortados para o limite — a API nunca grava um documento que a tela não saiba desenhar.
| Método | Caminho | Escopo | O que faz |
|---|---|---|---|
| GET | /api/v1/conta | — | Confere o token e devolve os dados da conta. |
| GET | /api/v1/etiquetas | etiquetas | Lista os lotes. Aceita ?pagina= e ?por_pagina=. |
| POST | /api/v1/etiquetas | etiquetas | Cria um lote. |
| GET | /api/v1/etiquetas/{id} | etiquetas | Devolve um lote com o documento inteiro. |
| POST | /api/v1/etiquetas/{id} | etiquetas | Atualiza. Só os campos enviados mudam. |
| DELETE | /api/v1/etiquetas/{id} | etiquetas | Apaga o lote. |
Encartes — mesma lógica, a lista se chama produtos | |||
| GET | /api/v1/encartes | encartes | Lista os encartes. |
| POST | /api/v1/encartes | encartes | Cria. Com "publicar": true já devolve o link público. |
| GET | /api/v1/encartes/{id} | encartes | Devolve um encarte. |
| POST | /api/v1/encartes/{id} | encartes | Atualiza. |
| DELETE | /api/v1/encartes/{id} | encartes | Apaga. |
Cardápios — a lista se chama secoes, cada seção tem itens | |||
| GET | /api/v1/cardapios | cardapios | Lista os cardápios. |
| POST | /api/v1/cardapios | cardapios | Cria. Com "publicar": true devolve o link do cardápio digital. |
| GET | /api/v1/cardapios/{id} | cardapios | Devolve um cardápio. |
| POST | /api/v1/cardapios/{id} | cardapios | Atualiza. |
| DELETE | /api/v1/cardapios/{id} | cardapios | Apaga. |
| TV indoor — por enquanto só consulta | |||
| GET | /api/v1/tv/telas | tv | Telas cadastradas, com quem está online agora. |
| GET | /api/v1/tv/slides | tv | O que está na fila de exibição. |
Seguem o mesmo padrão das etiquetas; muda só o nome da lista.
POST https://encarte.pedidofacil.cloud/api/v1/encartes
{
"titulo": "Ofertas da semana",
"formato": "A4",
"tema": "supermercado",
"publicar": true,
"produtos": [
{ "nome": "Arroz 5kg", "preco": "24,90", "preco_de": "29,90", "emoji": "\ud83c\udf5a" },
{ "nome": "Feijão 1kg", "preco": "7,49" }
]
}
POST https://encarte.pedidofacil.cloud/api/v1/cardapios
{
"titulo": "Cardápio da casa",
"publicar": true,
"secoes": [
{
"nome": "Lanches",
"itens": [ { "nome": "X-Burger", "descricao": "Pão, carne e queijo", "preco": "22,00" } ]
}
]
}
Com "publicar": true, a resposta traz url_publica — o endereço que você pode
mandar no WhatsApp ou colocar num QR Code. Sem isso, o campo volta null e a arte fica
só na conta.
Todo erro vem no mesmo formato, com um código estável — trate pelo código, não pelo texto:
{ "erro": { "codigo": "sem_escopo", "mensagem": "Este token não tem permissão para o módulo \"etiquetas\"." } }
| HTTP | Código | O que houve |
|---|---|---|
| 400 | json_invalido | O corpo não era um JSON válido. |
| 401 | sem_token | Faltou o cabeçalho Authorization. |
| 401 | token_invalido | Token errado, expirado ou revogado. |
| 402 | assinatura_inativa | A assinatura da conta não está ativa (só afeta gravação). |
| 403 | sem_escopo | O token não tem o módulo liberado. |
| 403 | token_somente_leitura | O token só pode consultar. |
| 403 | ip_bloqueado | Chamada veio de um IP fora da lista do token. |
| 404 | nao_encontrado | O registro não existe nessa conta. |
| 422 | itens_obrigatorios | Faltou a lista itens. |
| 429 | limite_excedido | Passou do limite de chamadas por minuto. |
$ch = curl_init('https://encarte.pedidofacil.cloud/api/v1/etiquetas');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'titulo' => 'Ofertas de hoje',
'termica' => true,
'itens' => $produtos, // [['nome' => ..., 'preco' => ...], ...]
], JSON_UNESCAPED_UNICODE),
]);
$resposta = json_decode(curl_exec($ch), true);
$linkImpressao = $resposta['dados']['url_impressao'];
Na TV, hoje a API só consulta telas e a fila. Mandar arte para a TV depende da imagem já montada, que por ora é gerada no navegador — se isso for importante para o seu caso, fale com a gente que avaliamos o caminho.
Falar com o suporte