Documentação da API
Cote frete, gere etiqueta com declaração de conteúdo e acompanhe pedidos — cada chamada debita direto da sua carteira pré-paga, sem espera de pagamento por pedido.
Autenticação
Toda chamada autenticada usa sua API key no header Authorization. Gere uma key no dashboard, aba "Área do desenvolvedor".
Authorization: Bearer pf_live_xxxxxxxxxxxxxxxxxxxxxxxx
A API key só é mostrada uma vez, no momento em que você gera. Se perder, revogue e gere outra.
Carteira
Toda etiqueta é debitada da sua carteira na hora. Recarregue via Pangeia Pay antes de gerar etiquetas.
/api/carteiraRetorna o saldo atual.
{"saldo": 137.42}
/api/carteira/extrato?limit=50Lista os lançamentos (créditos e débitos), mais recentes primeiro.
[
{
"id": "...", "tipo": "debito", "valor": 26.28,
"descricao": "Etiqueta SEDEX - Correios",
"saldo_apos": 111.14, "created_at": "2026-08-04T12:00:00Z"
}
]
/api/carteira/recarregarCria uma cobrança Pangeia Pay (PIX). O saldo é creditado automaticamente assim que o pagamento é confirmado.
| Campo | Tipo | Obrigatório |
|---|---|---|
valor | number | sim |
documento | string (CPF) | na primeira recarga |
{
"id": "...", "valor": 99.99, "status": "aguardando_pagamento",
"pagamento_url": "https://pay.pangeialabs.com/pagar/...",
"pix_code": "00020126...6304XXXX",
"pix_qrcode_base64": "iVBORw0KGgo..."
}
valor pode sair com centavos ajustados em relação ao que você pediu — é assim que o Pangeia Pay identifica qual PIX corresponde a qual cobrança; cobre exatamente esse valor. pix_qrcode_base64 já vem pronto pra virar <img src="data:image/png;base64,...">.
Canais de remessa
Antes de cotar/gerar etiquetas, cadastre a origem (remetente) e veja quais canais realmente atendem esse endereço.
/api/cep/<cep>Utilitário pra preencher endereço automaticamente a partir do CEP (logradouro, bairro, cidade, UF). Não exige autenticação.
{"address": "Rua Bela Cintra", "district": "Consolação", "city": "São Paulo", "state_abbr": "SP"}
/api/vendedor/canais/descobrirRoda cotações de prova pra listar canais suportados (Correios + modalidades de coleta) disponíveis pra um CEP de origem. Não exige autenticação.
| Campo | Tipo |
|---|---|
postal_code | string |
/api/vendedor/canaisSalva o remetente e a lista de canais habilitados (ids de serviço retornados pela descoberta).
{
"remetente": {
"name": "...", "document": "...", "email": "...", "phone": "...",
"address": "...", "number": "...", "district": "...", "city": "...",
"state_abbr": "...", "postal_code": "..."
},
"canais_habilitados": [1, 2, 32]
}
/api/vendedor/canais?pid=...Consulta pública (sem API key) do remetente e canais configurados de um vendedor pelo pid Pangeia ID.
Cotação
/api/freteCotação por CEP de origem/destino direto, ou por vendedor_id (usa o remetente salvo e já filtra pelos canais que esse vendedor habilitou).
| Campo | Tipo |
|---|---|
vendedor_id | string — alternativa a from_postal_code |
from_postal_code | string |
to_postal_code | string |
width / height / length | number (cm) |
weight | number (kg) |
[
{
"id": 2, "service": "SEDEX",
"carrier": {"id": 1, "name": "Correios", "logo_url": "/midia/transportadora/correios.png"},
"price": 26.28, "currency": "R$",
"delivery_time": {"min": 3, "max": 5},
"type": "dropoff"
}
]
type: "dropoff" (leva em qualquer agência dos Correios) ou "pickup" (transportadora busca no endereço do remetente).
Pedidos / Etiquetas
/api/dashboard/etiquetasGera a etiqueta na hora, debitando o preço da sua carteira. Se a geração falhar depois de debitado, o valor é estornado automaticamente.
| Campo | Tipo |
|---|---|
remetente | objeto (mesmo formato de canais.remetente) |
destinatario | objeto |
produtos | array de {name, quantity, unitary_value} |
volume | {width, height, length, weight} |
service_id | number — id retornado pela cotação |
/api/pedidos?limit=50Lista seus pedidos (como comprador ou como vendedor configurado), mais recentes primeiro.
/api/pedidos/<id>Detalhe de um pedido específico.
/api/pedidos/<id>/rastreioAtualiza e retorna o status de rastreio da transportadora.
/api/pedidos/<id>/cancelarCancela o envio (se ainda não coletado pela transportadora).
/api/pedidos/<id>/etiquetaPDF/material de remessa (etiqueta + declaração de conteúdo).
Webhooks
Cada app cadastrado no dashboard tem sua própria webhook_url e webhook_secret. Eventos de mudança de status de envio são enviados por POST pra essa URL.
Ainda em construção — hoje a API key e o secret já são gerados e ficam prontos; o disparo automático de eventos (etiqueta gerada, postada, entregue, cancelada) é o próximo passo.
Erros
| HTTP | Significado |
|---|---|
400 | Dados inválidos ou faltando |
401 | API key ausente, inválida ou revogada |
402 | Saldo insuficiente na carteira |
404 | Recurso não encontrado |
502 | Falha ao falar com a transportadora ou o meio de pagamento |
Toda resposta de erro segue o formato {"error": "mensagem legível"}.
