Backend · Pagamentos

Idempotência de Requisições

Implementa Idempotency-Key: a mesma cobrança ou pedido nunca é processado duas vezes, com trava em andamento (409) e payload divergente (422). Fim do cliente cobrado em dobro.

Idempotência · Checkout · API · 9 testes automatizados · Licença MIT · Criado por FlowCore Soluções LTDA

Como instalar

  1. Funciona onde você já roda Node 18+, Cloudflare Workers, Deno, Bun, Vercel e Netlify Functions. Zero dependência: só fetch e Web Crypto, que já vêm no runtime.
  2. Crie src/lib/idempotencia.ts Cole o código da aba Código.
  3. Use
    const idem = criarIdempotencia({ ttlMs: 24 * 3600_000 });
    const r = await idem.executar(req.headers.get("Idempotency-Key"), body, async () => {
      const pedido = await criarPedido(body);
      return { status: 201, corpo: pedido };
    });
    return Response.json(r.corpo, { status: r.status, headers: r.headers });
  4. Rode o teste junto O arquivo de teste (aba Teste) cobre 9 cenários. Copie para src/lib/ ao lado e rode:
    npm install -D vitest
    npx vitest run src/lib

Código no GitHub · Biblioteca de códigos

Mais em Pagamentos