# LeztyPay > Gateway de pagamentos PIX: sua aplicação cria uma cobrança por API, recebe um webhook assinado quando ela é paga e saca o saldo para uma chave PIX. > Esta é a documentação pública da API. Tudo sob /v1, autenticação por chave Bearer, ambiente de teste na mesma base URL. ## Prompt Cole este prompt no seu assistente antes de pedir a integração. A versão com botão de copiar está em https://docs.leztypay.com/prompt. Você vai integrar a LeztyPay, um gateway de pagamentos PIX brasileiro: a API cria uma cobrança PIX, entrega um webhook assinado quando ela é paga e permite sacar o saldo para uma chave PIX. Antes de escrever qualquer linha de código, leia estas duas fontes: - https://docs.leztypay.com/llms-full.txt (a documentação inteira em texto) - https://docs.leztypay.com/openapi.json (a referência da API, OpenAPI 3.1, com todos os campos) Ambientes: a mesma API atende os dois, na base URL https://api.leztypay.com. Uma chave que começa com sk_test_ põe a conta no ambiente de teste, onde nenhum dinheiro se move e o resultado de cada cobrança é escolhido pelos dois últimos dígitos do valor. Uma chave sk_live_ vale dinheiro de verdade. Comece no teste e só troque a chave no fim. Minha stack é {{stack}} e minha chave de teste é {{chave_de_teste}}. Implemente nesta ordem: 1. Criação de cobrança PIX, sempre com um header Idempotency-Key próprio por tentativa de cobrança. 2. Receptor do webhook: verifique a assinatura sobre o corpo cru antes de desserializar, responda 2xx rápido e processe em segundo plano. 3. Idempotência no receptor: o mesmo evento pode chegar mais de uma vez e fora de ordem, então deduplique pelo id do evento e reconcilie consultando a cobrança. Regras que você não pode quebrar: - A chave sk_live_ nunca aparece no front-end, em repositório, em log nem em mensagem de erro. Ela fica em variável de ambiente ou cofre, e só o servidor a usa. - Nenhum nome ou formato de campo sai da sua memória: confira cada um no openapi.json. - Se alguma coisa não estiver na documentação, diga que não está em vez de inventar. ## Páginas - [Visão geral](https://docs.leztypay.com/): O que a LeztyPay faz, base URL, ambiente de teste e por onde começar. - [Quickstart](https://docs.leztypay.com/quickstart): Cinco minutos: chave de teste, primeira cobrança PIX, QR e o webhook transaction.paid. - [Autenticação](https://docs.leztypay.com/autenticacao): Chave Bearer sk_live_ ou sk_test_, uma por ambiente, rotação em 24 h e revogação. - [Idempotência](https://docs.leztypay.com/idempotencia): Idempotency-Key nos POST financeiros, replay, conflito e o que é seguro repetir. - [Erros](https://docs.leztypay.com/erros): Envelope único de erro e a classificação operacional de cada code. - [Paginação](https://docs.leztypay.com/paginacao): Cursor, limit, next_cursor, ordem estável e cursor inválido. - [Limites](https://docs.leztypay.com/limites): Rate limit por chave, Retry-After, tamanho de corpo e faixa de valor. - [Cobranças](https://docs.leztypay.com/cobrancas): O recurso de cobrança PIX e o ciclo de vida dela. - [Criar uma cobrança](https://docs.leztypay.com/cobrancas/criar): Valor, taxa congelada, cliente, itens, metadata e postback por cobrança. - [QR Code](https://docs.leztypay.com/cobrancas/qr-code): BR Code copia e cola contra imagem, como renderizar e o que nunca reconstruir. - [Expiração](https://docs.leztypay.com/cobrancas/expiracao): O prazo pedido é pedido, não garantia; quem decide é o processador; pagamento tardio. - [Consultar](https://docs.leztypay.com/cobrancas/consultar): Consulta por id, listagem, filtros, busca e a timeline da cobrança. - [Webhooks](https://docs.leztypay.com/webhooks): Por que webhook e não polling; endpoint da conta contra postback por cobrança. - [Assinatura](https://docs.leztypay.com/webhooks/assinatura): X-Signature com HMAC sobre o corpo cru, janela de 300 s e duas assinaturas na rotação. - [Verificar em Node](https://docs.leztypay.com/webhooks/verificar-node): Exemplo completo de verificação em Node, com Express e com handler cru. - [Retries](https://docs.leztypay.com/webhooks/retries): Seis tentativas de 1 min a 24 h, entrega morta e desativação do endpoint. - [Idempotência e ordem](https://docs.leztypay.com/webhooks/idempotencia): Deduplicar por X-Event-Id, eventos fora de ordem e reconciliar pela consulta. - [Reenvio](https://docs.leztypay.com/webhooks/reenvio): Reenviar uma entrega, disparar um ping e inspecionar entregas passadas. - [Catálogo de eventos](https://docs.leztypay.com/webhooks/eventos): Todo tipo de evento público e qual objeto vem em data.object. - [Ambiente de teste](https://docs.leztypay.com/sandbox): Mesma API e mesma base URL, dados separados, nada de dinheiro de verdade. - [Gatilhos](https://docs.leztypay.com/sandbox/gatilhos): Como pagar, expirar, falhar, duplicar webhook e simular MED pelos centavos do valor. - [Saques](https://docs.leztypay.com/saques): Saldo, reserva e quando o dinheiro fica disponível para saque. - [Chave PIX](https://docs.leztypay.com/saques/chave-pix): A chave é do titular, como cadastrar e por que um saque por vez. - [Solicitar saque](https://docs.leztypay.com/saques/solicitar): Pré-condições, erros de negócio e o ciclo até liquidado ou falho. ## Referência da API - [OpenAPI 3.1](https://docs.leztypay.com/openapi.json): todos os campos de request e response, por operação. É a fonte de verdade; nenhuma página desta documentação repete campo.