Testes
Uma chave de teste não movimenta dinheiro real — mas quase todo o resto é real.
As chaves de teste
As suas chaves existem em duas famílias: sk_live_… e sk_test_…. A chave utilizada marca a
operação durante toda a sua vida; nada transfere uma operação de uma família para a outra.
Com uma chave de teste:
- nenhum fornecedor é chamado. Responde sempre uma simulação em seu lugar — uma execução de teste não consegue alcançar um canal real nem perturbá-lo.
- o livro-razão, as liquidações e as notificações transacionais ficam excluídos. Nenhum movimento contabilístico, nenhum total de liquidação, nenhum SMS ou e-mail ao pagador.
- todo o resto é real: a cadeia de aceitação, os seus webhooks, os seus registos de desenvolvedor, as suas linhas de reporting e a totalidade dos controlos de risco.
Montantes mágicos
Os dois últimos dígitos do montante escolhem o resultado. É a única forma de ensaiar os caminhos de falha, que um canal em bom estado nunca produz.
| O montante termina em | O que acontece |
|---|---|
99 |
Recusado no envio, de forma definitiva. A classe «número inválido» — não repita |
98 |
Recusado no envio, de forma temporária. A classe «falha do canal» — repetir faz sentido |
97 |
Aceite e depois falhado. Primeiro pending, depois failed |
| qualquer outra coisa | Aceite e depois success |
Aplica-se igualmente a cobranças, pagamentos, reembolsos e anulações.
O caso 97 é o que realmente vale a pena ensaiar
É a sequência que as integrações deixam passar: o seu webhook recebe pending, marca a encomenda
como «a aguardar pagamento», e depois chega failed e tem de desfazer o que pending fez. Sem
uma forma de a provocar, a primeira vez que esse caminho é percorrido é em produção.
Um montante que codificou uma falha falha de ponta a ponta: uma operação não pode ao mesmo tempo recusar e ter êxito, por mais vezes que a leia.
Identidades de teste
Os controlos de conformidade ensaiam-se da mesma maneira, com identidades mágicas. Apenas correspondem a operações de teste.
| Identidade | O que ensaia | O que deve ver |
|---|---|---|
+221700000001 — «Test Sanctionne Fort» |
Correspondência forte com uma lista de sanções | O pagamento é recusado. |
| «Test Sanctionne Nom Seul» (apenas nome, sem número) | Correspondência apenas pelo nome | Aceite e depois retido para análise — ver abaixo |
+221700000003 — «Test Personne Politiquement Exposee» |
Pessoa politicamente exposta | Análise reforçada, não uma recusa |
+221700000004 — «Test Identite Mineure» |
Identidade conhecida como menor | Recusado num corredor restrito (jogo, apostas), aceite nos restantes |
Conjunto de identidades em vigor: fixture-2026-09-13-1. É idêntico em todos os ambientes e muda
por versão — um teste escrito contra um conjunto com nome permanece reproduzível.
Um nome por si só nunca é uma recusa
A segunda linha surpreende, e é deliberado: uma correspondência apenas pelo nome não detém um pagamento. Os sobrenomes são partilhados; recusar com base no nome significaria recusar muitíssimas pessoas por o escreverem corretamente. Por isso o pagamento é aceite e retido para análise, e a sua integração deve tratar isso como uma espera, não como uma falha.
Uma recusa exige um identificador forte: um número, um documento.
⚠️ Estas identidades não são pessoas reais e nunca correspondem a um pagamento em produção. Usá-las com uma chave
sk_live_não produz nada: são identidades de ensaio, e nada mais.
O que pode ensaiar
risk.statusa passar parareviewe paraheld, tanto no webhook como numa leitura;- os eventos
payment.heldepayment.released; - um processo de conformidade aberto na via de teste: visível para si, e que nunca chega à nossa equipa de conformidade nem a qualquer total regulamentar.
O que uma execução de teste não mostra
Três limites, ditos com clareza em vez de descobertos mais tarde:
- Nenhum movimento contabilístico. O livro-razão está fora do perímetro de teste, pelo que nada relativo a um saldo disponível, a uma retenção ou a uma libertação de fundos pode ser verificado aqui.
- Os tempos não são os de produção. A simulação não tem pagador: a confirmação vem de uma varredura com a sua própria cadência, não de alguns segundos após um código USSD. Teste a transição, nunca o relógio.
- As notificações transacionais não são enviadas. Nem ao pagador nem a si.
O que não deve fazer
- Não deduza os seus tempos de produção a partir dos tempos de teste. Ver o ponto 2.
- Não trate
pendingcomo uma falha, nem em teste nem em produção. - Nunca copie uma identidade de teste para os seus dados de produção. Ali não corresponde a nada, e um dado de ensaio num registo real é uma pista falsa para quem o ler depois.