Compartilhamento
Configura a recompensa em pontos por pedidos vindos de links compartilhados e consulta o relatório de cliques, pedidos e receita da indicação.
Com o compartilhamento ligado, o botão "Compartilhar" da vitrine gera um link rastreado para a página (ou produto). Cada clique é contado. Se alguém compra pelo link, o pedido é atribuído ao cliente que compartilhou, e ele ganha pontos de recompensa.
Três regras definem se os pontos saem: o compartilhamento deve estar ligado (enabled), o pedido deve ter total igual ou acima do mínimo (min_order_cents) e o comprador não pode ser o próprio autor do link. Se o pedido for depois cancelado ou devolvido, os pontos são estornados, uma única vez.
As três rotas exigem o privilégio manage_settings.
Ler a configuração
/api/v1/admin/sharing/settingsAdminLer a recompensa do compartilhamento
curl "$BASE_URL/api/v1/admin/sharing/settings" \
-H "Authorization: Bearer $TOKEN"{ "enabled": true, "points_per_order": 10, "min_order_cents": 5000 }Campos da resposta
enabledbooleanpoints_per_orderinteger0 não dá pontos, mas o pedido ainda é contado no relatório.min_order_centsinteger5000 = R$ 50,00).Alterar a configuração
/api/v1/admin/sharing/settingsAdminSalvar a recompensa do compartilhamento
Grava os três campos de uma vez. Valores negativos viram 0. Envie sempre os três: os omitidos são gravados como false ou 0.
Corpo da requisição
enabledbooleanobrigatóriopoints_per_orderintegerobrigatóriomin_order_centsintegerobrigatóriocurl -X PUT "$BASE_URL/api/v1/admin/sharing/settings" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"enabled":true,"points_per_order":15,"min_order_cents":8000}'A resposta repete os valores gravados (já com os negativos trocados por 0).
{ "enabled": true, "points_per_order": 15, "min_order_cents": 8000 }Relatório de indicações
/api/v1/admin/sharing/reportAdminTotais de links, cliques, pedidos e receita do compartilhamento
Soma o desempenho do canal numa janela de datas e lista os 50 clientes que mais geraram receita.
Parâmetros de consulta
fromstringpadrão: 30 dias atrásYYYY-MM-DD. Valor inválido é ignorado e vale o padrão.tostringpadrão: agoraYYYY-MM-DD. Com YYYY-MM-DD, o dia entra por inteiro. Valor inválido é ignorado.curl "$BASE_URL/api/v1/admin/sharing/report?from=2026-09-01&to=2026-09-30" \
-H "Authorization: Bearer $TOKEN"{
"totals": { "links": 18, "clicks": 104, "orders": 3, "revenue_cents": 45900, "points_awarded": 30 },
"top_sharers": [
{
"user_id": "220b672c-90fe-4841-ae86-bd4f1ace982e",
"name": "Priscila Gomes",
"clicks": 41,
"orders": 2,
"revenue_cents": 31900,
"points_awarded": 20
}
]
}Campos da resposta
totals.linksintegertotals.clicksintegertotals.ordersintegertotals.revenue_centsintegertotals.points_awardedintegertop_sharersarraytop_sharers[].user_iduuidtop_sharers[].namestringtop_sharers[].clicksintegertop_sharers[].ordersintegertop_sharers[].revenue_centsintegertop_sharers[].points_awardedintegerErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | PUT com corpo que não é JSON. | {"error":"invalid body"} |
| 401 | Sem token ou token expirado. | {"error":"invalid or expired token"} |
| 403 | Sem manage_settings. | {"error":"insufficient privileges","required":"manage_settings"} |
| 500 | Falha ao ler ou gravar. | {"error":"..."} |