A API Paylog permite integrar clientes, produtos, pacotes, pedidos e cotações de frete à sua operação. Os recursos são HTTP, recebem e retornam JSON e são isolados pela conta vinculada ao token.
Esta é a documentação semântica 1.0.0 da API disponível sob /api/v1.
Endereço base
https://ev.paylog.cash/api/v1
Todos os endpoints desta referência usam esse endereço. Por exemplo, a rota relativa /clientes corresponde a https://ev.paylog.cash/api/v1/clientes.
Convenções das requisições
| Item | Valor | Obrigatoriedade | Observação |
|---|---|---|---|
Authorization |
Bearer SEU_TOKEN |
Obrigatório | Enviado em todas as chamadas da API v1. |
Accept |
application/json |
Obrigatório | Garante respostas JSON inclusive em erros. |
Content-Type |
application/json |
Condicional | Obrigatório quando a requisição possui corpo JSON. |
| Codificação | UTF-8 | Obrigatório | Use UTF-8 nos textos enviados. |
| Datas | ISO 8601 ou formato indicado no campo | Condicional | Cada recurso informa o formato aceito e retornado. |
curl --request GET \
--url 'https://ev.paylog.cash/api/v1/clientes?page=1' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer SEU_TOKEN'
GET /api/v1/clientes?page=1 HTTP/1.1
Host: ev.paylog.cash
Accept: application/json
Authorization: Bearer SEU_TOKEN
Como ler as tabelas
Os contratos desta documentação distinguem a presença de um campo na requisição e na resposta:
| Termo | Significado |
|---|---|
| Obrigatório | A requisição é rejeitada quando o campo não é enviado ou não é válido. |
| Opcional | O campo pode ser omitido; a página informa o valor padrão ou o comportamento resultante. |
| Condicional | O campo é exigido somente na condição descrita. |
| Sempre | A chave existe em toda resposta de sucesso daquele endpoint, mesmo quando o valor é null ou []. |
| Quando aplicável | A chave só aparece quando a condição descrita ocorre. |
Opcional não significa que o campo não influencia o resultado. Na calculadora de frete, por exemplo, omitir o peso ou o valor declarado transforma a cotação em estimativa.
Valores monetários
Não existe uma unidade monetária única para todos os campos. Consulte a tabela do endpoint antes de enviar ou interpretar um valor.
| Contexto | Unidade | Exemplo |
|---|---|---|
Campos identificados como *_centavos |
centavos, inteiro | 12990 representa R$ 129,90. |
| Valores de clientes, produtos, pacotes e pedidos | unidade indicada na página do recurso | Não converta sem conferir o contrato do campo. |
valor_declarado da calculadora de frete |
reais, número decimal | 197.00 representa R$ 197,00. |
valor_centavos da cotação de frete |
centavos, inteiro | 2079 representa R$ 20,79. |
{
"valor_declarado": 197.00, // Requisição de frete: reais (R$ 197,00).
"valor_centavos": 2079 // Resposta de frete: centavos (R$ 20,79).
}
Endpoints públicos da v1
Todos os endpoints abaixo pertencem à integração do produtor. A Calculadora de Frete exige somente um token válido; os demais também verificam a permissão indicada na conta.
| Método | Endpoint | Permissão | Finalidade |
|---|---|---|---|
GET |
/clientes |
listar_cliente_api |
Listar clientes. |
GET |
/clientes/{id} |
editar_cliente_api |
Consultar um cliente. |
POST |
/clientes |
criar_cliente_api |
Cadastrar um cliente. |
PUT |
/clientes/{id} |
editar_cliente_api |
Atualizar um cliente. |
GET |
/produtos |
listar_produtos_api |
Listar produtos. |
GET |
/produtos/{id} |
listar_produtos_api |
Consultar um produto. |
POST |
/produtos |
criar_produtos_api |
Cadastrar um produto com tipo, peso e dimensões. |
PATCH |
/produtos/{id} |
criar_produtos_api |
Atualizar os campos enviados de um produto. |
GET |
/pacotes |
listar_pacote_api |
Listar pacotes. |
GET |
/pacotes/{id} |
listar_pacote_api |
Consultar um pacote. |
GET |
/pedidos |
listar_pedido_api |
Listar pedidos. |
GET |
/pedidos/{id} |
listar_pedido_api |
Consultar um pedido. |
GET |
/pedidos/{id}/rastreamento |
listar_pedido_api |
Consultar o histórico de rastreamento. |
POST |
/pedidos |
criar_pedido_api |
Criar um pedido com pacote. |
POST |
/pedidos/carrinho |
criar_pedido_api |
Criar um pedido informando os produtos. |
POST |
/pedidos/{id}/aprovar |
editar_pedido_api |
Aprovar um pedido. |
POST |
/pedidos/{id}/cancelar |
editar_pedido_api |
Cancelar um pedido que ainda não saiu. |
POST |
/pedidos/{id}/pausar |
editar_pedido_api |
Pausar o processamento. |
POST |
/pedidos/{id}/retomar |
editar_pedido_api |
Retomar um pedido pausado. |
POST |
/frete/calcular |
Token válido | Cotar as transportadoras habilitadas. |
Status dos pedidos
O campo status_code_id usa os códigos abaixo.
| Código | Status |
|---|---|
1 |
Pendente |
2 |
Aguardando Faturamento |
3 |
Faturado |
4 |
Preparação |
5 |
Devolvido |
6 |
Estornado |
7 |
Enviado |
8 |
Parado |
9 |
Cancelado |
10 |
Pago - Aguardando NF/DC |
11 |
Correção |
12 |
Pedidos Agregado (Upsell) |
13 |
Falha no Faturamento |
14 |
Entregue |
15 |
Reenviado |
16 |
Aguardando Transportadora |
17 |
Etiqueta Pronta |
18 |
Aguardando Retirada |
19 |
Saiu para Entrega |
20 |
Ao Remetente |
Motivos de pedido parado
Quando status_code_id é 8, motivo_parado_id pode identificar a causa atual.
| Código | Motivo |
|---|---|
1 |
Falta de Estoque |
2 |
Falta de Crédito |
3 |
Não Conseguiu Contato |
4 |
A pedido do produtor |
5 |
Erro fiscal |
6 |
Tipo De Emissão não Configurado |
7 |
Pacote Desativado |
8 |
Produto Desativado |
9 |
Produtor Desativado |
10 |
Produtor Suspenso |
11 |
Inadimplência |
12 |
Integração Inativa |
13 |
Aguardando Edição do Produtor |
14 |
Produto Não Associado |
15 |
Erro na Baixa de Estoque |
16 |
Parado manualmente |
17 |
Erro fiscal permanente (emissor) |
Status de pacotes e produtos
| Recurso | Código | Status |
|---|---|---|
| Pacote | 0 |
Pendente |
| Pacote | 1 |
Ativo |
| Pacote | 2 |
Desabilitado |
| Produto | 0 |
Pendente |
| Produto | 1 |
Aprovado |
| Produto | 2 |
Desabilitado |
Respostas e erros
| HTTP | Significado | Contrato de resposta |
|---|---|---|
200 |
Consulta ou atualização concluída | JSON descrito na página do endpoint. |
201 |
Recurso criado | JSON com o recurso ou identificador criado, conforme a página. |
401 |
Token ausente, inválido ou expirado | Mensagem de não autenticação. |
403 |
Usuário sem a permissão necessária | Mensagem de acesso negado. |
404 |
Recurso inexistente ou fora da conta autenticada | Usado por /pacotes/{id}. Os demais recursos usam outro status para o mesmo caso — veja a nota abaixo. |
422 |
Dados inválidos | Objeto com os erros de validação. |
429 |
Limite de requisições excedido | Só a calculadora de frete é limitada: 60 requisições por minuto por usuário autenticado. Os demais endpoints não têm limite próprio. |
500 |
Erro interno inesperado | Mensagem genérica; não repita indefinidamente. |
Não existe um único status para "recurso não encontrado". Um ID inexistente e um ID de outra conta sempre recebem a mesma resposta — nunca revelando dados de terceiros — mas o status varia por recurso, e em produtos varia até por verbo: /clientes/{id} e /pedidos/{id} (inclusive /rastreamento e os comandos) retornam 401, /pacotes/{id} retorna 404, GET /produtos/{id} retorna 204 No Content e PATCH /produtos/{id} retorna 404 com { "message": "Produto não encontrado." }. Trate todos esses casos como "não encontrado" na sua integração.
Em integrações automáticas, registre o status HTTP, o corpo da resposta e um identificador próprio da operação. Nunca registre o token.