Pular para o conteúdo

Atualiza o status de uma compra consultando o provedor

POST/api/checkout/purchases/{purchaseId}/refresh

Auth
Exige token
X-CommunityId
X-CommunityId Envie o X-CommunityId da comunidade em que a operação acontece.

Para a tela de confirmação, quando o webhook do provedor atrasa ou se perde. Se a compra está `PENDING` ou `PROCESSING` (ou `FAILED` há menos de 7 dias: um PIX cancelado pode ser pago mesmo assim), consulta o pedido na Stone (só leitura) e aplica o que ele diz, exatamente como o webhook faria: pago conclui a compra (e abre a assinatura, lança no ledger, manda o e-mail); falhou ou cancelado fecha a compra como `FAILED`; ainda aberto não muda nada. Idempotente: se o webhook chegar depois, nada é feito duas vezes. Só o comprador, na comunidade do `X-CommunityId`; compra de outra pessoa ou de outra comunidade responde 404. O provedor é consultado no máximo uma vez a cada 10 segundos por compra (`outcome = throttled` dentro dessa janela); compra já concluída responde o status sem consultar (`outcome = unchanged`). Limite de 30 requisições por minuto por IP (429). `outcome`: `paid` (o provedor diz pago; a compra foi ou já estava concluída), `failed` (o provedor diz falhou/cancelado), `pending` (pedido ainda aberto), `unchanged` (compra já fechada, provedor não consultado), `throttled` (consultado há pouco), `skipped` (compra sem pedido no provedor). `subscription` é a assinatura aberta pela compra (ou a renovada, numa cobrança de renovação), ou null.

Parâmetros

NomeOndeTipoDescrição
purchaseIdobrigatóriopathstring (uuid)

Headers

NomeTipoDescrição
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Corpo da requisição application/json

A especificação não declara os campos deste corpo (upload multipart, por exemplo). Consulte o guia do assunto.

Respostas

CódigoDescrição
200Status atual da compra, depois da consulta ao provedor.
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
429Requisições demais em pouco tempo.
500Erro interno do servidor.
502Provedor de pagamento indisponível; nada foi alterado.

Exemplo com curl

curl -X POST "https://api.memberfy.net/api/checkout/purchases/<purchaseId>/refresh" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'