Getnet DocsGetnet Docs

Autenticar Requisições

A segurança na Get Smart API Cloud é garantida por meio de uma assinatura digital incluída em cada requisição e resposta. Este guia explica como gerar essa assinatura usando sua Merchant Secret Key (Chave Secreta do Estabelecimento) e como verificar as respostas enviadas pelo servidor.

A Lógica de Assinatura

A API não utiliza um Bearer token padrão ou Basic Auth. Em vez disso, ela utiliza um mecanismo de assinatura customizado baseado no algoritmo de hash SHA-256.

Cada envelope de mensagem JSON contém dois campos de nível superior:

  1. info: O payload real de dados.
  2. signature: O hash criptográfico que verifica o payload info.

O Algoritmo

Para gerar uma assinatura válida, siga esta sequência específica:

  1. Extrair o Payload: Pegue todo o conteúdo do objeto JSON info.
  2. Minimizar o JSON: Certifique-se de que a string JSON esteja “minimizada” (remova todos os espaços em branco extras, tabulações e quebras de linha). Ela deve começar com { e terminar com }.
  3. Adicionar o Segredo: Adicione a sua Merchant Secret Key diretamente ao final da string JSON minimizada.
  4. Hash: Calcule o hash SHA-256 desta string combinada.
  5. Formato: O hash resultante (string hexadecimal) é a sua assinatura.

Exemplo Passo a Passo

Vamos percorrer o processo de geração utilizando os dados de exemplo fornecidos no manual de integração.

Credenciais:

  • Código do Estabelecimento: 777888991
  • Chave Secreta: AAABBB

Passo 1: Construir o Objeto info

{
  "comercio": "777888991",
  "timestamp": "20250428 111217",
  "terminal": 1,
  "notificacion": {
    "urlNotificacion": "[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)",
    "correoNotificacion": "email@comercio.es"
  },
  "datosOperacion": {
    "importe": "15.00",
    "factura": "FACTURA1"
  }
}

Passo 2: Minimizar a String JSON

Serialize o objeto em uma string sem espaçamento:

{"comercio":"777888991","timestamp":"20250428 111217","terminal":1,"notificacion":{"urlNotificacion":"[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)","correoNotificacion":"email@comercio.es"},"datosOperacion":{"importe":"15.00","factura":"FACTURA1"}}

Passo 3: Adicionar a Chave Secreta

Adicione a chave AAABBB ao final:

{"comercio":"777888991","timestamp":"20250428 111217","terminal":1,"notificacion":{"urlNotificacion":"[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)","correoNotificacion":"email@comercio.es"},"datosOperacion":{"importe":"15.00","factura":"FACTURA1"}}AAABBB

Passo 4: Calcular o Hash SHA-256

Passar a string acima por uma calculadora SHA-256 resulta em: 0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646

Passo 5: Formar a Requisição Final

Coloque o hash no campo signature:

{
  "info": {
    ... (the JSON object from Step 1) ...
  },
  "signature": "0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646"
}

Verificando Respostas

Quando a API responde, ela inclui uma signature calculada usando a mesma Chave Secreta. Para verificar se a resposta é autêntica e não foi adulterada:

  1. Extraia o objeto info da resposta.
  2. Execute exatamente os mesmos passos de geração de assinatura (Minimizar -> Adicionar Chave -> Hash).
  3. Compare o hash calculado com a signature recebida na resposta.

Sempre verifique a assinatura da resposta antes de confiar nos códigos de status ou resultados da transação dentro do bloco info.

Solução de Problemas de Assinatura

O erro mais comum é TPC0101: Firma Incorrecta (Assinatura Incorreta).

Causa ComumSolução
Formatação JSONCertifique-se de que está fazendo o hash da string exata que está enviando. Algumas bibliotecas JSON adicionam espaços ou reordenam chaves. A assinatura é sensível à representação específica em nível de byte.
Codificação de CaracteresCertifique-se de que a string esteja codificada em UTF-8 antes de fazer o hash.
Confusão de ChavesVerifique se você está usando a chave correta para o ambiente (Chave de Teste para URL de Sandbox, Chave de Produção para URL de Produção).

Próximos Passos

Agora que você pode se autenticar, você está pronto para explorar a arquitetura principal ou implementar fluxos de pagamento específicos.