Integração, Boas Práticas e Apêndices
Fluxo de Integração Recomendado
As cinco etapas abaixo cobrem a integração ponta-a-ponta de uma aplicação cliente ao módulo PayShield Pan .
Provisionamento
Solicite à First Tech a criação do
client_ide o registo das chaves criptográficas necessárias (LMK do tenant e as ZPKs por canal: emissor, adquirente, terminais, gráfica) .Mapeie cada caso de uso a um par origem/destino e ao endpoint correspondente, conforme a matriz de operações (Secção 3).
Documente internamente os
keyIdse os seus algoritmos (AES vs 3DES), uma vez que o algoritmo não é exposto pela API e tem de ser conhecido pelo integrador.
Autenticação
Obtenha o token Bearer junto ao Auth0 da First Tech .
Implemente um sistema de cache do token, respeitando o TTL (Time-To-Live) fornecido pelo provedor.
Implemente a renovação proativa antes da expiração para evitar erros
401em transações críticas.
Operação
Construa o body de acordo com o endpoint alvo. Tenha especial atenção às convenções de nome de campo (ex.:
zpkKeyIdSrc/DstemPinEmbossing/PinInternalization, versuskeyIdemTranslatePin*) .Valide a compatibilidade formato × algoritmo antes de enviar (Secção 4.3).
Trate a resposta inspecionando primeiro o
retCodeantes de avaliar a flagretValid.
Tratamento de Erros
O
retCode 01noValidatePinIssuerKeyé a resposta esperada quando o PIN está incorreto; não se trata de um erro técnico .Os
retCode 10ou11(paridade de chave) indicam que a chave está corrompida e precisa de ser reprovisionada (abra um chamado com a First Tech).O
retCode 17indica que a tradução para o par origem/destino está bloqueada pelas políticas do HSM.O
retCode 69(formato desabilitado) indica uma violação da matriz de compatibilidade (ex.: formato 48 em 3DES).Os erros
5xxpodem ser transitórios. Implemente um mecanismo de retry com backoff exponencial e jitter, mas NUNCA registe o PIN nos logs durante este processo.
Observabilidade
Métricas Mínimas: Monitorize a taxa de chamadas por endpoint, a latência nos percentis
p50/p95/p99, e a taxa de erro agrupada porretCode.Alertas: Configure alarmes em caso de desvio de SLA, num incremento súbito de
retCode 01(que pode indicar um ataque de força bruta), em erros401persistentes, e em quaisquerretCodesde paridade.Regra de Ouro (Logs): É estritamente PROIBIDO registar em log os campos
pin,pinDb,pinBlockSrc,generatedPinou qualquer conteúdo doretMultiValue. Registe apenas oclient_id, o endpoint, oretCodee a duração da chamada.
Boas Práticas
Segurança
O PIN em claro NUNCA deve ser visto pela aplicação. Toda a manipulação acontece sob cifragem (LMK, ZPK, TPK). Se o desenho arquitetural exigir o PIN em claro, o desenho está incorreto .
Restrinja o acesso ao endpoint
apivin.first-tech.netatravés de uma allowlist de IPs, sempre que possível.Implemente rate limits por
client_idna sua infraestrutura para evitar enumeração de PINs (ex.: um máximo deNtentativas por PAN por hora).Em fluxos de
ValidatePinIssuerKey, propague apenas o valor booleano doretValidpara a camada de negócio; nunca exponha oretDescriptionao cliente final.
Performance
Reaproveite as conexões HTTP (keep-alive). O serviço Hop V4 já mantém uma conexão persistente e otimizada com o HSM .
Em jobs de migração, dimensione lotes pequenos (50 a 200 registos) para não saturar a fila de processamento do HSM.
Distribua os jobs de migração durante as janelas de menor movimento (off-peak) para preservar a capacidade de processamento das transações online.
Guia de Troubleshooting Rápido
HTTP 401 em todas as chamadas
Token expirado ou ausente.
Renovar token no Auth0; verificar header Authorization.
retCode 17 em PinEmbossing
Tradução LMK → ZPK desabilitada para o par de chaves.
Verificar as políticas do HSM aplicadas ao seu tenant.
retCode 69 em PinEmbossing com formato 48
Formato 48 não suportado em ZPK 3DES (destino).
Usar formatos 01-47 no pinBlockFmtDst.
retCode 81 com pinLength informado
Tamanho real do PIN no PinBlock difere do declarado.
Validar a rotina de geração do PinBlock na origem.
retCode 88
PinBlock com PIN de tamanho zero (alerta).
Revisar processo de geração na origem.
retCode 10 ou 11
Erro de paridade na chave.
Solicitar reprovisionamento da chave à First Tech.
ValidatePinIssuerKey sempre retorna retValid false
formatCode / formatCodeDb invertidos ou keyIds trocados.
Validar o payload rigorosamente contra o exemplo da Secção 15.3.
TranslatePan retorna formato inesperado
AES Key Block LMK força nativamente o formato 48 no resultado.
Documentar esta regra nas integrações downstream que processam a resposta.
Apêndices
Apêndice A - Glossário
AES
Advanced Encryption Standard. Algoritmo simétrico padrão (128, 192 e 256 bits).
AES Key Block LMK
Modelo de armazenamento de chaves AES no HSM em formato Key Block (TR-31).
3DES Key Block LMK
Modelo de armazenamento de chaves 3DES no HSM em formato Key Block.
BDK
Base Derivation Key. Chave-mãe DUKPT.
DUKPT
Derived Unique Key Per Transaction. Esquema de derivação por transação.
formatCode
Índice abreviado de formato de PinBlock (0/1/3/4).
ISO PIN Block Format 4
Formato moderno de PinBlock (Thales 48), exclusivo para chaves AES.
LMK
Local Master Key. Chave-mestra AES interna do HSM da First Tech.
pinBlockFmt
Código direto Thales de formato de PinBlock (01, 02... 48).
TPK / ZPK
Terminal PIN Key / Zone PIN Key. Chaves partilhadas entre zonas ou terminais.
Variant LMK
Modelo legado de armazenamento de chaves no HSM (anterior ao Key Block).
Apêndice B - Referência Rápida de Endpoints
Gerar PIN sob LMK
/v4/PayShieldPan/GeneratePin
LMK
Gerar PIN sob ZPK do emissor
/v4/PayShieldPan/GeneratePinIssuerKey
ZPK
LMK AES → ZPK 3DES
/v4/PayShieldPan/PinEmbossing
AES → 3DES
ZPK 3DES → LMK AES
/v4/PayShieldPan/PinInternalization
3DES → AES
LMK AES → ZPK AES
/v4/PayShieldPan/TranslatePinLmkToZpk
AES → AES
ZPK AES → LMK AES
/v4/PayShieldPan/TranslatePinZpkToLmk
AES → AES
Trocar PAN preservando PIN
/v4/PayShieldPan/TranslatePan
LMK → LMK
Trocar PAN + traduzir PIN
/v4/PayShieldPan/TranslatePinPan
LMK → ZPK
Validar PIN recebido
/v4/PayShieldPan/ValidatePinIssuerKey
ZPK 3DES → LMK AES (validação)
Last updated

