Simular um payload de webhook do Stripe

Um mock GET que retorna um evento payment_intent.succeeded no formato do Stripe, pronto para alimentar o seu handler de webhook.

Este modelo fornece uma URL ativa que retorna um evento payment_intent.succeeded no formato do Stripe, para que você possa construir e depurar um handler de webhook sem acionar pagamentos reais. Aponte seu handler para a URL, ou copie o payload diretamente para um fixture de teste. Ele reproduz a forma do evento, não a assinatura do Stripe — portanto, é a ferramenta certa para lógica de análise e a ferramenta errada para verificar o Stripe-Signature.

Retorna um evento pronto — alimente-o diretamente no seu próprio handler.

Payload de resposta

{
  "id": "evt_1QsErTLl2dK9Nqi7",
  "object": "event",
  "type": "payment_intent.succeeded",
  "created": {{now.unix}},
  "data": {
    "object": {
      "id": "pi_3QsErTLl2dK9Nqi71m2XvBnR",
      "object": "payment_intent",
      "amount": 4999,
      "currency": "usd",
      "status": "succeeded"
    }
  }
}

Campos que valem a pena conhecer

Campo O que significa
id Um ID de evento sintético — os IDs reais do Stripe seguem a mesma forma evt_... mas nunca são reutilizados.
type O tipo de evento em que o seu handler baseia as condições; mude-o para acionar um caminho de código diferente.
created Timestamp Unix do evento, gerado de forma nova em cada chamada através de {{now.unix}}.
data.object.amount O valor da cobrança em unidades menores (centavos) — 4999 significa $ 49.99.
data.object.status O status do payment_intent; edite o corpo da resposta para testar outros estados, como requires_action.

Criar o mock

curl -X POST https://quickmock.dev/api/mocks \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "GET",
  "response_status": 200,
  "content_type": "application/json",
  "response_body": "{\"id\":\"evt_1QsErTLl2dK9Nqi7\",\"object\":\"event\",\"type\":\"payment_intent.succeeded\",\"created\":{{now.unix}},\"data\":{\"object\":{\"id\":\"pi_3QsErTLl2dK9Nqi71m2XvBnR\",\"object\":\"payment_intent\",\"amount\":4999,\"currency\":\"usd\",\"status\":\"succeeded\"}}}"
}'

Chame-o

curl https://quickmock.dev/m/<slug>

O que você obtém

GET /m/<slug> -> 200 a Stripe-style payment_intent.succeeded event
data.object.amount is in minor units (cents)

Como isso difere do original

Este é um evento estático reduzido de um payload real do Stripe — sem cabeçalho Stripe-Signature, sem objetos reais por trás dos IDs. Use-o para moldar a lógica de análise (parsing) do seu handler, não para testar a verificação de assinatura.

Fontes

FAQ

Esta é a API real do Stripe?
Não. É um evento estático reduzido de um payload real do Stripe e servido a partir da sua própria URL de mock. Os IDs são sintéticos e não há nada por trás deles — nenhuma cobrança, nenhum cliente, nenhum objeto real para buscar.
Posso testar a verificação de assinatura com isso?
Não, e isso é deliberado. Não há cabeçalho Stripe-Signature, porque produzir um exigiria o segredo de assinatura do Stripe. Teste a verificação usando a própria CLI do Stripe; use isso para tudo depois que a verificação de assinatura passar.
Como eu testo um tipo de evento diferente?
Edite o corpo da resposta e altere o campo type, além do que o novo evento carrega em data.object. Essa é a maneira mais rápida de exercitar uma parte do seu handler que você não pode acionar facilmente no modo de teste do Stripe.

Pronto para usar?

Abrir no construtor de mocks para ajustar primeiro

Combina bem com este guia: Testar um receptor de webhook

Modelos relacionados

← Todos os modelos

Última atualização: 2026-10-17