Ler uma venda
Devolve o detalhe de uma venda: valores por perna, estado do pagamento e o que já foi creditado no livro.
Autenticação
A sessão do painel autentica esta rota, e ela é lida de forma autoritativa: não há parâmetro em que o chamador aponte para outra conta.
Esta rota não exige escopo nomeado — o que não quer dizer que ela seja aberta: sem a credencial acima ela recusa.
Exige sessão de vendedor. A lista é sempre a da conta da sessão: não há filtro que alcance a venda de outro vendedor.
Parâmetros
Caminho
| Nome | Tipo | Descrição |
|---|---|---|
saleIdobrigatório | texto (uuid) | O identificador da venda, como ele aparece na listagem. |
Respostas
200 · sucesso
{
"approvedAt": "2026-01-15T12:00:00.000Z",
"buyer": {
"document": "000.000.000-00",
"documentKind": "cpf",
"email": "comprador@exemplo.com.br",
"name": "Loja Exemplo",
"originIp": "exemplo",
"phone": "+55 11 90000-0000",
"scope": "full"
},
"cardBrand": "exemplo",
"cardLast4": "0000",
"currency": "BRL",
"declineReason": {
"category": "insufficient_funds",
"message": "exemplo"
},
"displayedSumCents": 129900,
"installments": 2,
"isForecast": true,
"legParties": [
{
"amountCents": 129900,
"bps": 0,
"document": {
"number": "exemplo",
"type": "cpf"
},
"email": "comprador@exemplo.com.br",
"name": "Loja Exemplo",
"role": "afiliado"
}
],
"lines": [
{
"absorbsResidue": true,
"amountCents": 129900,
"bps": 0,
"isViewerLeg": true,
"kind": "participant_leg",
"role": "produtor"
}
],
"method": "pix",
"occurredAt": "2026-01-15T12:00:00.000Z",
"offer": {
"billingInterval": "monthly",
"name": "Loja Exemplo",
"subscriptionId": "0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06"
},
"origin": {
"capturedAt": "2026-01-15T12:00:00.000Z",
"cookies": [
{
"name": "Loja Exemplo",
"value": "exemplo"
}
],
"device": {
"canvasHash": "exemplo",
"clientHints": {
"architecture": "exemplo",
"bitness": "exemplo",
"brands": [
"exemplo"
],
"fullVersionList": [
"exemplo"
],
"mobile": true,
"model": "exemplo",
"platform": "exemplo",
"platformVersion": "exemplo"
},
"colorDepth": 1,
"connectionType": "exemplo",
"cookieEnabled": true,
"deviceMemoryMegabytes": 1,
"doNotTrack": true,
"globalPrivacyControl": true,
"hardwareConcurrency": 1,
"languages": [
"exemplo"
],
"maxTouchPoints": 1,
"pixelRatioHundredths": 1,
"platform": "exemplo",
"requestHeaders": {},
"screenHeight": 1,
"screenWidth": 1,
"timeZone": "exemplo",
"userAgent": "exemplo",
"utcOffsetMinutes": 1,
"vendor": "exemplo",
"viewportHeight": 1,
"viewportWidth": 1,
"webglRenderer": "exemplo",
"webglVendor": "exemplo"
},
"edgeGeo": {
"city": "exemplo",
"continent": "exemplo",
"country": "exemplo",
"latitude": "exemplo",
"longitude": "exemplo",
"postalCode": "exemplo",
"region": "exemplo",
"regionCode": "exemplo",
"timeZone": "exemplo"
},
"fingerprintHash": "exemplo",
"firstSeenAt": "2026-01-15T12:00:00.000Z",
"landingUrl": "https://loja.exemplo.com.br/webhooks",
"referrerUrl": "https://loja.exemplo.com.br/webhooks",
"returningVisitor": true,
"storage": [
{
"name": "Loja Exemplo",
"value": "exemplo"
}
],
"urlParams": [
{
"name": "Loja Exemplo",
"value": "exemplo"
}
],
"visitCount": 1
},
"parentSaleId": "0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06",
"productName": "exemplo",
"productPriceCents": 129900,
"publicId": "7K3M9XABCD",
"refundedAmountCents": 129900,
"reversal": {
"full": true,
"grossCents": 129900,
"kind": "refund",
"viewerCents": 129900
},
"saleId": "0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06",
"saleTotalCents": 129900,
"state": "pending",
"strategy": [
{
"amountCents": 129900,
"kind": "bump",
"offerName": "exemplo",
"productName": "exemplo"
}
],
"tracking": [
{
"param": "src",
"value": "exemplo"
}
],
"view": "participant",
"viewerLegCents": 129900,
"viewerRelease": [
{
"bucket": "merchant_available",
"releaseAt": "2026-01-15T12:00:00.000Z"
}
],
"walletBrand": "exemplo"
}O detalhe da venda. O documento do comprador sai inteiro, sem máscara, a quem já tem direito de lê-lo. O final do cartão (cardLast4) só sai para o produtor primário: coprodutor e afiliado recebem null, e a visão de comissão não traz esse campo, nem o preço do produto, as parcelas e a oferta.
404 · não encontrado
A venda não existe, ou não é sua.
Erros desta rota
| Status | Código | Quando | O que fazer |
|---|---|---|---|
| 404 | SALE_NOT_FOUND | A venda não existe, ou é de outra conta. As duas causas respondem igual de propósito: distinguir revelaria a existência de venda alheia. | Confira o identificador na listagem de vendas. Repetir não muda o resultado. |
Os códigos são estáveis e fazem parte do contrato. A lista completa, com todos os vocabulários, está na tabela de erros.