Pix simulado
O Pix do Wolf Sandbox segue o fluxo assíncrono de um Pix real — QR Code, espera, confirmação por evento do provedor e vencimento — sem banco nem dinheiro de verdade.
O QR Code não é pagável
O copia-e-cola segue o formato BR Code (EMV com CRC), mas a chave, o recebedor e o identificador trazem a marca SIMULADO. Nenhum aplicativo de banco consegue pagá-lo.
Fluxo
- Crie o PaymentIntent com
"pix"empayment_method_types. - Confirme com
{"payment_method": {"type": "pix"}}: a resposta é202comstatus: "processing"enext_action. Mostre o QR (gerado a partir deqr_code_payload) e o vencimento ao comprador. O eventopayment.processingtrazexpires_at. - “Pague”: chame
POST /v1/simulator/payment-intents/{id}/pix/payou use o botão Simular pagamento do checkout hospedado. - A Wolf processa o evento de provedor
pix.paidnuma única transação: PaymentIntentsucceeded, Charge, lançamento no ledger e eventos. O pedido ligado virapaide a sessão de checkout,completed— cada um exatamente uma vez. O webhookpayment.paidsegue para os seus endpoints.
A próxima ação
Objeto PaymentNextAction
{
"id": "pi_3b9f0c2d1e4a5b6c7d8e9f0a1b2c3d4e",
"order_id": null,
"amount_minor": "9900",
"currency": "BRL",
"provider_id": "simulator",
"failure_code": null,
"payment_method_types": [
"pix",
"card"
],
"description": "Curso de fotografia",
"metadata": {
"pedido_interno": "A-1001"
},
"payer": {
"name": "Ana Compradora",
"email": "ana@example.com",
"phone": "+5511987654321",
"document": {
"type": "cpf",
"last2": "25"
}
},
"cancellation_reason": null,
"status": "processing",
"latest_provider_attempt_id": "pat_5d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a",
"payment_method_type": "pix",
"next_action": {
"type": "pix_qr",
"qr_code_payload": "00020101021226780014br.gov.bcb.pix0120SIMULADO-NAO-PAGAVEL0232SIMULADO - NENHUMA COBRANCA REAL520400005303986540599.005802BR5921WOLF SANDBOX SIMULADO6009SAO PAULO62290525SIMULADO3b9f0c2d1e4a5b6c76304726B",
"expires_at": "2026-11-06T12:30:00.000Z"
},
"expires_at": "2026-11-06T12:30:00.000Z"
}Vencimento
- O Pix vence 30 minutos depois da confirmação (
expires_at). - Sem pagamento até lá, a varredura automática (em até cerca de 2 minutos após o vencimento) cancela o PaymentIntent com
cancellation_reason: "expired"e emitepayment.canceled. Nada é lançado no ledger. - Simular o pagamento de um Pix vencido ou cancelado responde
409 INVALID_STATE_TRANSITION. Para cobrar de novo, crie outro PaymentIntent. - Simular de novo um Pix já pago não faz nada: o PaymentIntent continua
succeeded, sem segunda cobrança.
No checkout hospedado
O comprador escolhe Pix, informa nome, e-mail e (opcionalmente) CPF, vê o QR sintético com contagem regressiva e pode clicar em Simular pagamento. A página acompanha o estado e mostra a confirmação com os ids do pedido e do pagamento. Veja Payment Links.