Cadastro de dispositivo Pix
Cadastro de dispositivo Pix
O módulo pix_device transforma o cadastro de dispositivo de acesso que o Regulamento do Pix (art. 89, §6º a §9º, incluídos pela Resolução BCB nº 403/2024) obriga o PSP a manter num cadastro verificado por biometria. No ato de cadastrar um aparelho novo, o titular passa pelo face match e pela prova de vida do mesmo fluxo, que são o segundo fator que a Instrução Normativa BCB nº 491/2024 aceita, e o aparelho só é vinculado ao titular quando a verificação inteira aprova.
create de flow o recusa até a abertura. O campo de identidade do aparelho na criação de sessão também ainda não está publicado. O contrato de resposta abaixo é o que o backend já emite, para você planejar a integração.O módulo exige face e liveness no mesmo flow, e a exigência vem da norma, não de preferência nossa: sem eles, o vínculo seria com quem digitou, e não com quem é. A identidade do aparelho chega pelo seu servidor, com a chave secreta, nunca pelo navegador do titular: quem está do outro lado da câmera é o adversário do produto e não pode escolher o próprio identificador de dispositivo.
// pix_device no check_details: o cadastro verificado do aparelho
{ "module": "pix_device", "passed": true, "outcome": "approved", "score": 92,
"data": { "device_id": "pxd_01H…", // id estável do aparelho, e a chave da revogação
"status": "active", // active | pending_verification | verification_failed
"platform": "ios", // o que você declarou na criação da sessão
"activated_at": "2026-06-17T14:31:52.114Z", // só quando ativou
"limits_advisory": { "unregistered_max_per_tx_cents": 20000,
"unregistered_max_daily_cents": 100000 } } }O limits_advisory carrega os limites da IN BCB nº 491/2024, art. 9º, para dispositivo não cadastrado (duzentos reais por transação e mil reais por dia), em centavos. Ele é informativo por contrato: quem aplica limite é o seu motor, nunca o nosso. O campo existe para o seu motor carregar os números certos sem alguém ter que reescrevê-los à mão a cada mudança de norma.
No resumo checks o módulo sai como "pix_device": "active" (o vínculo nasceu), "review" (há uma pergunta esperando gente) ou "pending" (ainda sem desfecho do aparelho). Nunca leia pending como "cadastrado".
review com a evidência, e não recusa automática: família dividindo um aparelho é comum e legítimo, e a decisão dura sobre o dispositivo é sempre do PSP. O titular, na tela, vê apenas "revisão manual", nunca "este aparelho já pertence a outra pessoa".O que nunca sai no payload: a impressão digital do aparelho (você já tem o valor que enviou, e devolver o nosso derivado dele só serviria para alguém testar palpites contra ele) e o apelido do aparelho, que é dado do usuário final, guardado cifrado em repouso e nunca devolvido em resposta de API.
Revogação. Quando um aparelho é revogado, no bloqueio reversível ou na exclusão definitiva da IN BCB nº 491/2024 (art. 7º, com o recadastro obrigatório da IN BCB nº 594/2025), o seu backend recebe no mesmo endpoint de webhook de sempre, com a mesma assinatura, um evento pix_device.revoked. É por ele que o seu motor de limites fica sabendo que um aparelho roubado saiu do cadastro. A exclusão é terminal: recadastrar exige uma sessão de verificação nova. Quem revoga é o painel, em Dispositivos PIX: é lá que se bloqueia, desbloqueia ou exclui um aparelho, e o evento acima sai desse ato.
// evento pix_device.revoked no seu endpoint de webhook
{ "id": "evt_pxd_01H…_pix_device_revoked_1",
"schema_version": 1,
"event": "pix_device.revoked",
"livemode": true,
"created": "2026-06-18T09:02:44.120Z",
"data": { "object": "pix_device",
"device_id": "pxd_01H…",
"verification_id": "ver_01H…", // pode ser null: revogado antes de a verificação decidir
"reference_id": "usr_1207",
"status": "blocked", // blocked (reversível) | removed (terminal)
"reason": "stolen", // stolen | compromised | user_request | admin
"revoked_at": "2026-06-18T09:02:43.900Z" } }Pronto para integrar? A chave de sandbox sai no painel, logo depois do cadastro. Criar conta grátis