Processo de Autorização para uso dos Serviços da API

A autorização para realizar chamadas à API segue o protocolo OAuth2. Ao cadastrar um estabelecimento, o Desenvolvedor da Automação terá acesso às devidas credenciais para utilizar a API. Essas credenciais consistem de um site_id e um site_secret correspondentes ao estabelecimento. Como passo inicial para começar a utilizar os recursos da API Omnichannel, a Automação deve informar esses dois parâmetros ao endpoint /auth-token da API para obter tokens de autorização. Feito esse passo, a Automação deve informar esses tokens em todas as chamadas aos serviços da API.

[Geração do site_secret da loja]#

A Automação pode obter o site_secret de uma loja de duas maneiras distintas: pessoalmente pelo canal de atendimento ou "programaticamente" pela API.

  1. Ao iniciar o processo de integração, o Cliente ou o Desenvolvedor podem solicitar ao nosso time de suporte essas credenciais. Caberá ao Desenvolvedor fornecer uma forma para o Cliente instalar essas credenciais na Automação de maneira segura.

  2. Caso o Cliente possua uma assinatura digital da cadeia ICP-Brasil, a Automação pode, em tempo de execução, utilizar a API Omnichannel para geração e download das credenciais. Esta aseção descreve o endpoint para esse propósito. A cada chamada ao endpoint, um novo site_secret e gerado e o anterior perde a validade.

O site_secret equivale a uma senha associada a cada site_id e serve o propósito de autenticação para obtenção do auth-token. Ou seja, ele permite ao aplicativo realizar transações com o Omni API em nome do site_id. Por isso ele deve ser armazenado de forma segura no aplicativo.

Recomendamos também que a automação renove o site_secret periodicamente. Caso utilize este endpoint, é possível, por exemplo, renovar o site_secret diariamente.

Detalhes da chamada#


Os detalhes desta operação ainda estão em discussão (os parâmetros podem sofrer alterações).


  • Recurso: /v1/site_secret

  • Método HTTP: [POST]

  • Content-Type: application/json;charset=UTF-8

  • Parâmetros do corpo:

ParâmetroDescriçãoTipoTamanhoObrigatório
certificate_chainArquivo da cadeia de certificados para validação da assinatura. Deve obrigatoriamente conter o Certificado ICP (chave pública assinada pela CA) correspondente ao CNPJ da loja associada ao site_id informado. Recomendamos que contenha também os certificados intermediários da CA que assinaram o certificado da loja. O formato deve ser uma string PEM com a sequência “\n” no lugar das quebras de linha.String
jwtO conteúdo deste parâmetro deve ser um JSON Web Token (JWT) codificado, ou seja, uma String no formato: <Header codificado em Base64Url>.<Payload codificado em Base64Url>.<Assinatura de (Header + "." + Payload) codificado em Base64Url> Seguir as especificações do Header e Payload informados na tabela do conteúdo do jwt abaixo.String
Conteúdo jwt
Header
ParâmetroDescriçãoTipoTamanhoObrigatório
algValor RS256StringSIM
typValor JWTString  SIM
Payload
ParâmetroDescriçãoTipoTamanhoObrigatório
issConteúdo integral e inalterado do campo Common Name do certificado ICP (Normalmente está no formato “Nome Empresarial:CNPJ)StringSIM
subValor do site_idString  SIM
audValor “omnichannel”
iatHorário da criação deste JWT no formato NumericDate da RFC 7519 (número de segundos desde 1970-01-01T00:00:00Z UTC)NumberSIM
clientIdValor do clientIdStringSIM
parâmetro extra do GatewayOs parâmetros extras do Gateway são parâmetros adicionais de identificação da loja definidos pelo Gateway de Pagamento (isto é, cabe ao Gateway de Pagamento especificar e informar esses parâmetros para a Automação). O servidor Omni utilizará esses e os demais parâmetros do Payload para autenticar a loja junto ao Gateway de Pagamento. Os parâmetros extras serão repassados ao Gateway sem alteração. Por exemplo, se a Automação estiver integrando com o Gateway da Adquirente Bin, os parâmetros extras devem ser:
"institutionNumber": [String],
"serviceContractId": [String],
"terminalId": [String],
"merchantId": [String]
StringSIM

Resposta#

  • Content-Type: application/json;charset=UTF-8
ParâmetroDescriçãoTipoTamanhoObrigatório
site_secretToken de autorização para acesso aos serviços da APIString

Exemplo#

Conteúdo não codificado do JWT (apenas para ilustração para reprodução do exemplo, pois não é enviado nesse formato):

- Header:
{
"alg":"RS256",
"typ":"JWT"
}
- Payload:
{
"iss": "Loja Fiserv Teste 01:00111222000181",
"sub": "SITEID000000000",
"aud": "omnichannel",
"iat": 1692239022,
"clientId": "CLIENTID00000",
"institutionNumber": "00000004",
"serviceContractId": "110",
"terminalId": "GPRG0V7A"
}
- Verify Signature:
RSASHA256(
base64UrlEncode(Header) + "." +
base64UrlEncode(Payload),
Chave Privada do Cliente
)
- Chave privada do Cliente:\
\-\-\-\--BEGIN RSA PRIVATE KEY\-\-\-\--
MIIEpAIBAAKCAQEAyNDjmnCpBK9i6SIanVeHkh3HOp4vPgwfdSxRpaAy57YE8IZw\
qJKHJ7iiDGgTwnKerwYuwUpi4T4eMcI0gesHq4K28gkkJSOJjHJx3kh43ZazVk2z\
WYQOCc70ahvsfgGlyy3wb1idMla+KgeYgbs1EG+6Q/5OooFISkiS4DgZqKKOiDdz\
UsEVzdLll5Uc15iSMaCnULp8rq0YEA2w3bx5n0LY3tvtfrVgiyE8+tFSFmbzghU7\
9DBvFomN4i/sup786z24URFXo+nx6qZK2mi7xHGEXG8Aolo1Z4tB6LvRIkEhpHOu\
T9Lv0mXHgZKMPFjaCvF5NfFKYa4Sh5Kml7p3MwIDAQABAoIBAQCIVKfwFUPpllgE\
Bc8jumSjYev7c6CG8xv4JFpZouRsQjogQGUDTFbNNJ9u5MllXQM1t3DOcH2ohM9i\
4IFdIf5XBarFrkcHn5Sl8Jw1V+YWKVUe5ik4QFp3djSgRMzMzrmLsmhkbzhpEFKR\
ng5/JGTl/7PorSEdWb+GDrcH2Y4x2NYG/BDSjWEQan35dwhDVWxowoslE0UZTT7m\
6NiMmlN90wwzeVIshP2y4xI8GnnbbG/ivoUh0FsizfLgWCOAwaXCh62CVfi5CWi2\
BQsW7no23lVG/xd60I7/pKXwpLKtYfeJGOjSkqMRiMRMTVAm+IE3nV3+9IHZmExm\
ZOQjr8phAoGBAOlLOJDGIKlBizvx6BTvZg3Hv64ktauzgsuwPMjUSKt69k4b+uTT\
cqT5DPVCvxrNfFSKLTobNQa5kK3VDlf8jwSC847DCpsvGqKfem2A2ERy4dwHMKhh\
DC4cecTqw8I+MFicAHRSCYpdQao7c0mqALzFhiXitCW+28pFnBOUl+pPAoGBANxc\
chP4pe1JH6XxIzRzf+tfLsQN/izmts5XWQuiJJARht/VppyCWBnpTZT8g8kZbC2x\
AU1EXPzFaOGgTBF7CPWNbaD4UHW2ddyoSA1WSYDLDmEdouJ5dkuCd+XGDKksiYqq\
rtNG1zIzjFcmxBINudBC0580edR8AVBvhrR5KH/dAoGBANZicqPP/nmrqsi2f8Cl\
UtI9Cm98eppDx2FpHiKrufAjei7DVadsjIEAASFtafK2fJevtuob0HnSkxq7nIfM\
ppzNvgYmRBvhiIeDKF1ytssIC3hH/zXsoOXK8ze7SZO51HHJQj2imfPVyR8nrMU3\
/Z97oNA16bh6EL5rg4cW2RfPAoGAUdV6//OtGwu21xdP7aCe9rfoVCKmK+KaLNK/\
XNSgI2h+4A0lzKWTNjwv9Y45Gqt4Qxei1iD3L1/YbUHsPemlEBuvhMHyj2RtLL7J\
0zoiHdRKyMIKxXQ5/By9jfUYqpLBmV99gTSjoh8GlS7uTY4PXUoT8OG6BLDwhACG\
0+rSoXkCgYBzWJeASuu/lA9pH6hzhrazvuBs2h5j8qayrr+F0vHjLQ6mmgI4lmv2\
njQDfUD2slNm6LKNM0fyfrijD66lPRWxyMzhht3OidP5VF5AMbvVCF5SUshx4gtg\
a1mqEu0UFkzQ+ltgPgvtiErZ7I4igj5lFMPODzEbnkp1dcAuXb6jSw==\
\-\-\-\--END RSA PRIVATE KEY\-\-\-\--

Requisição e Resposta

POST /v1/site_secret HTTP/1.1
Host: server.example.com
Content-Type: application/json;charset=UTF-8
{
"jwt":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJMb2phIEZpc2VydiBUZXN0ZSAwMTowMDExMTIyMjAwMDE4MSIsInN1YiI6IlNJVEVJRDAwMDAwMDAwMCIsImF1ZCI6Im9tbmljaGFubmVsIiwiaWF0IjoxNjkyMjM5MDIyLCJjbGllbnRfaWQiOiJDTElFTlRJRDAwMDAwIiwiaW5zdGl0dXRpb25OdW1iZXIiOiIwMDAwMDAwNCIsInNlcnZpY2VDb250cmFjdElkIjoiMTEwIiwidGVybWluYWxJZCI6IkdQUkcwVjdBIn0.a_5tXe1JxxmsOzoPiRUqIzqY1iOfWnFi-a4OTLWpNyhYsfMHUUZmZksiKCV3TZch9asrVpDbyw5VikX0OrsAok4jk4wHlqsmfyoonx3AGT4sE37jXntoic_-6QWDaZea3ZB66rauiniGEFF39Bk-2Lle5YttizxLsOCKzYpffXZa2jL7uwGwtP6tzx7TH1kqeMv98pSVaA1G1fGKFh5lhXJMEdTMyxlTSF9PO91hH2ZaKPeaIgLhJsW7AEaG73CZNNILqCGs03Pmb-4kiENMzqA2ICAS-5Knw0A_lrNIZt-c6Chn3mpOx_Q6GZZKVlkqD9glJJ3O5WT4rfbnoQTNjQ",
"certificate_chain":"-----BEGIN CERTIFICATE-----\nMIIF7TCCA9WgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgYUxCzAJBgNVBAYTAkJS\nMRkwFwYDVQQKDBBURVNURSBJQ1AtQnJhc2lsMTwwOgYDVQQLDDNURVNURSBTZWNy\nZXRhcmlhIGRhIFJlY2VpdGEgRmVkZXJhbCBkbyBCcmFzaWwgLSBSRkIxHTAbBgNV\nBAMMFEFDIE9tbmljaGFubmVsIFRFU1RFMB4XDTIzMDkwNDE2MTQxOVoXDTQ4MDQy\nNDE2MTQxOVowggEjMQswCQYDVQQGEwJCUjELMAkGA1UECAwCUlMxFTATBgNVBAcM\nDFBvcnRvIEFsZWdyZTEZMBcGA1UECgwQVEVTVEUgSUNQLUJyYXNpbDE8MDoGA1UE\nCwwzVEVTVEUgU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2ls\nIC0gUkZCMRYwFAYDVQQLDA1SRkIgZS1DTlBKIEExMR0wGwYDVQQLDBRBQyBPbW5p\nY2hhbm5lbCBURVNURTEXMBUGA1UECwwONjIxNzM2MjAwMDAxODAxGTAXBgNVBAsM\nEFZJREVPQ09ORkVSRU5DSUExLDAqBgNVBAMMI0xvamEgRmlzZXJ2IFRlc3RlIDAx\nOjAwMTExMjIyMDAwMTgxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nyNDjmnCpBK9i6SIanVeHkh3HOp4vPgwfdSxRpaAy57YE8IZwqJKHJ7iiDGgTwnKe\nrwYuwUpi4T4eMcI0gesHq4K28gkkJSOJjHJx3kh43ZazVk2zWYQOCc70ahvsfgGl\nyy3wb1idMla+KgeYgbs1EG+6Q/5OooFISkiS4DgZqKKOiDdzUsEVzdLll5Uc15iS\nMaCnULp8rq0YEA2w3bx5n0LY3tvtfrVgiyE8+tFSFmbzghU79DBvFomN4i/sup78\n6z24URFXo+nx6qZK2mi7xHGEXG8Aolo1Z4tB6LvRIkEhpHOuT9Lv0mXHgZKMPFja\nCvF5NfFKYa4Sh5Kml7p3MwIDAQABo4HFMIHCMAkGA1UdEwQCMAAwEQYJYIZIAYb4\nQgEBBAQDAgWgMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGll\nbnQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFN8jLkrN2qAVRNBq2l7k+T0YdAd1MB8G\nA1UdIwQYMBaAFFL4pFDfbP+MZSC15Fj4CGbMmPVxMA4GA1UdDwEB/wQEAwIF4DAd\nBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDQYJKoZIhvcNAQELBQADggIB\nAAE8ONhnz42mYSD80WupxdQeQZIMWCWQvCWR7w4dGSIEpYOcMdydD4jTrBAP2Z7u\nvrjkHoBMJiM07Ondl3PYZNobU4a7sbxndebFDZ1HgmugYYC9d3miUtX1P9Z9bogQ\n2REgJltEtg0fnVZzPhe4b4lRVBK+80apcnPnS6IekxEnbnmvMXlPuYskcXv9+AUa\nufYCIC9Wb+97SDEwbc2e08IoC6Lp57XTs0nUV8iPzxwhGhgKqNP+Ys+wWlkZCwjX\nxaYvgIhGbwBYvgiR3ADi1Ih9Uj/WvclaOKY1P49dlmYq3TfgTkNVdZd7KvL33VMz\nY/bNWVRCk8rQ54Ks6j4LUcAmZTUtYh4boONCYjtipZFg2ODztt1lYavI+y+by8kf\ndiI3y52c3+ri1lrJnyBv1QTiPKBD0OTwfgAR7XvYo3bVGV7nQlKsTlcoU9LxgC8s\nKgZsF63QIJU6ZcQlxtUgglz+1+DQ9mEr/ICoEUaZXWgWQIUifyP7aSTeEg24Z1a1\nqEiCnSiHq0NyunxGeO053pAwIYYLnZzJ7ugmJ9DMDy/fLPEqtUQw+SYy2O4UIP/I\nGon1hjgETdPIpAdQxHYE69vfvopd5wgiyU4oD3QqyqV6L7eOLTCh9dkCG6+0kWx2\nQbPFnds2ae3f7fUJrxO6ugk7ngg8FoQ5L2rDOtB1En7R\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIGDTCCA/WgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgaIxCzAJBgNVBAYTAkJS\nMRkwFwYDVQQKDBBURVNURSBJQ1AtQnJhc2lsMTowOAYDVQQLDDFURVNURSBBdXRv\ncmlkYWRlIENlcnRpZmljYWRvcmEgUmFpeiBCcmFzaWxlaXJhIHY1MTwwOgYDVQQD\nDDNURVNURSBBQyBTZWNyZXRhcmlhIGRhIFJlY2VpdGEgRmVkZXJhbCBkbyBCcmFz\naWwgdjQwIBcNMjMwOTA0MTYxNDE4WhgPMjA1MTAxMTkxNjE0MThaMIGFMQswCQYD\nVQQGEwJCUjEZMBcGA1UECgwQVEVTVEUgSUNQLUJyYXNpbDE8MDoGA1UECwwzVEVT\nVEUgU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZC\nMR0wGwYDVQQDDBRBQyBPbW5pY2hhbm5lbCBURVNURTCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAKlRkS2pq8dij/eIQ5kMu/JOLovPHON6LnZSQGibrZtM\nuZgNl3ysfNktNxMx0uGXRqi+qgjlPoRzAmTOc69SSnMQYLdpUmFT/D7ti48yrkye\nOqzz6uusSy5ibU2SGQWu5CyAIj3CAIdYFufMhBZNMbAHkYXgUN2Y3UfvtglFbtel\nhHHHZwGe2z1xuLd9tJ1K0gkVT/66Bf8wilx6+DBz4UY8cZLKy4/Fpq8buFOnEAEk\nqIH0VOc2aY4JUMTlgOnkbw2L5EN3iC9ewJ0JjLCt5ug3D5Jugn14rKtG/KFmV7h1\nzd9hjtnJgknAzazkUgnLOzEK6XMPZteG5B5DWcliziyIrkKGpzF6X/WbQOV2LIZn\nu14nPbi3Vhgt3ZDI5so78/PnSfr12PocxxBEGG5fvXnYmYj0e7MAwgKqswne0PSG\ncsl1ZwynFGE1hY+mTY0BlXQ3dnosZtZmFDWT4tkqZQYlDNbh0CK3/rhVEMPe4mwR\nQu8FudOUOEPVcBlcewf1Tsbx1GKV0xiwzHrr4V8J+zEATLjevdEgHFxM96EeJ/zp\nyHK+f1f1bkG18U1POS7NtqaNONVTSkK8mrPKTMU3gEjPI/0k4vplilFSz7gfW20I\nAhu0UX12jIjGsu+fhcLOK3m91bwND7cwLMEppVmqxiYXz4zcrmJiB+wPClRK5ynR\nAgMBAAGjZjBkMB0GA1UdDgQWBBRS+KRQ32z/jGUgteRY+AhmzJj1cTAfBgNVHSME\nGDAWgBQ4ETqdCjGDvuN/71R9AtopKsFFJDASBgNVHRMBAf8ECDAGAQH/AgEAMA4G\nA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAr79B9i8LTaHXvK2hmLeB\n8twLJ1ZiHKiRs5ir2VURy/5PV7IS4bIfQGLKyZvl8EyGwjV+LhH15xcLHvkeLpiR\nyQk0nFo2dkAyhZCsQcukXoOlSKWsSMQZ9MkQHeE+4UxcWOQTTgVmSt+R9SXLN89F\nVSFmqzqZHwEFdkzHNULhb/eAQ0+evM6b88Pu4qmbKhZt4cF1azixKQJpa3fYM0WE\nYh0UiA9ShMIseXJyqFI/Ai1Sn7CigfnZ53yDh8A0jOK3TOZdIdXlOzHuz6gRteCh\n3rfjyOybYX39bazi26566aNHSW0Q8kx4R5IL3xz4WGisKUBnUaP7tzlwJUtj3cIi\n8bsl6GEhOoboRQ13J7Inzt7hCF0+AvTgkO19pXSdCqPZwj1NauJFGyguvwojpPhc\nZNfwbuF0qktJB5A7pbK1qLSI5KUy1u+q2AskVz8LQKctJeT4TnVgGF1HaEQrxvOC\nORy+2aR5cXp9vXOoTDYoa3cWcfzw5pJR17FjVBp/EEXl97CUMvDuPX1mBhOPjs8j\ni0bfbgcxN8Rjaaz8F2MMFglccpuiDyKcM3hGrLLXAgK18iGkux90OWtfLMtz8Nl8\niXZ9bH0qhWCNUg86mYpffeWPiENJQCjL6UiZ7P5tYKyELDigGxJ4Ep78n1eM7aFs\nYW6YOoNjbJc+Mw8QcD2hXS0=\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIGMTCCBBmgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgakxCzAJBgNVBAYTAkJS\nMRkwFwYDVQQKDBBURVNURSBJQ1AtQnJhc2lsMUMwQQYDVQQLDDpURVNURSBJbnN0\naXR1dG8gTmFjaW9uYWwgZGUgVGVjbm9sb2dpYSBkYSBJbmZvcm1hY2FvIC0gSVRJ\nMTowOAYDVQQDDDFURVNURSBBdXRvcmlkYWRlIENlcnRpZmljYWRvcmEgUmFpeiBC\ncmFzaWxlaXJhIHY1MCAXDTIzMDkwNDE2MTQxNloYDzIwNTEwMTE5MTYxNDE2WjCB\nojELMAkGA1UEBhMCQlIxGTAXBgNVBAoMEFRFU1RFIElDUC1CcmFzaWwxOjA4BgNV\nBAsMMVRFU1RFIEF1dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVp\ncmEgdjUxPDA6BgNVBAMMM1RFU1RFIEFDIFNlY3JldGFyaWEgZGEgUmVjZWl0YSBG\nZWRlcmFsIGRvIEJyYXNpbCB2NDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBANgqdQRoWs2nxxHLoY5SY+3hICOXfcNQXIMlKrEZ6NjrvXQyqbxHB4/w8gli\nl2T03pkMYR4Q1QSXiW7Dq6+6d2pqDo60F7wIEUmUIggJg0kXI8ziE2LOAKR7EcM9\nOQdgT5q0/ZLEpywZgCiymdZcGx7MQ2/vRHYa15QSIUhaDIjDeJPucxGJRf+i5mSf\nZmIWPsJ8eBg+m/N1Ss381gaR3tI3oy7Ax1dL8TSG4NNFUJiau7QCjLLGVNKeiorH\nRwMA2Bzjn5HMe2Okk0FT7ro30rtLdVmka2Fz8Xf+K1xFK0Ks/c7E4+z7mRfw2RZa\nWn281V9T5gYTgyAAAaMxbckM+/FGfotcHYUQMyzYIMWefNXDXxnOOya2V8qvoDNK\njZD5YELHytp7nX11Lk8yVxmVcaHXqQM6XIp7u5haXVGWK2+YGR3P1UqQNH5xdga2\nW4/s04K7Rgqv3k0y9T331DDFyolyRXkKPNKkOIxAf1aDLeIUJ5uleY+MfWKbzfpz\n1bIRDyC70m4q4ZU8lI48p74EXF0JZIDgF4wve7HqSnvWQ+bz7+Uf0ZT68ZKnCZuU\n2ohhBw5ajOMRVIA1B6haMVA7JLH+ueFh6p9RPSk1byVQzNujlu87xkTcf6D3bEBj\n3IvqbFQQCGafuPUIF/k1AV2Au4CbD/HcFn6VvMSQjQqQdvSxAgMBAAGjZjBkMB0G\nA1UdDgQWBBQ4ETqdCjGDvuN/71R9AtopKsFFJDAfBgNVHSMEGDAWgBQbxNpySzfl\nc4IsRjD2Xjy9SDD+XzASBgNVHRMBAf8ECDAGAQH/AgEBMA4GA1UdDwEB/wQEAwIB\nhjANBgkqhkiG9w0BAQsFAAOCAgEARcyDf5I4Re3rBiyUf4/zzk4/7mS3yWN9puvj\nNEgryzIQDz04cJ+uRUfkVj1Dd8r3YRitT4OGKFM6a38LBxhb2o+TrvfGH2BOVrdP\nPdFjHX8UvdoC1vQSyxw6VhZodHnlxq0qa/v1T9KaPMWnNX1k+2b0BsE4rJP8E5/8\nQPSDQ/t8Ak2wG66ncdwfBLnZRizEu8cI1QkawUqafGYKWhvrxRLMexthxA4hijM3\nF2zW24ixOXheYovYKz78NQWGVn5CymnnVpvjINBh1h0r1PetWUju2v/EolJZn60g\nVM/IRSQMBzASZrfLRSJRuETceEhE7xt2e41SD1Yg8mpcKRd40kZHtne/nyaUs+un\nFfte+f/8x5h6KTnCNMeBE7X2nJ38aytR4TmluT0RhEpLrOwTpkUPqvagZTtXSCHQ\nYasPKHiqS1Ve9AEQ/gvtCKK9aw+iwzADmQPc8WiqpMNDyS5dZTs4e7+f5vhWXdxo\n/MEBZ8UTnHhJH1hTVcxrSPQyqKEzYsLep4+p5HPDjElhHqxw3ErPpgpgl/rJvSCw\n4DZfnIE4gVH0vNmQrCGAmH4OzmXTLsv8IR/euChxjhIiU59ZCAKLtVdXDlhy7nnl\nanKccMVgayWyqm/3dcD603zUnyeIuQyUWKLXpohkZQeirpxEpJuGlfKxcqE8TR/I\n6GLayoQ=\n-----END CERTIFICATE-----\n"
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"site_secret":"siteSecretExample123",
}

Token#

Antes de chamar qualquer serviço da API, a Automação deve primeiro gerar um token de autorização através do endpoint /auth-token. Cada token possui um tempo de validade, portanto a Automação também precisa gerar o token sempre que essa validade expirar.

Detalhes da chamada#

  • Recurso: /v1/auth-token

  • Método HTTP: POST

  • Content-Type: application/x-www-form-urlencoded

  • Parâmetros do corpo:


ParâmetroDescriçãoTipoTamanhoObrigatório
grant_typeTipo de autorização (usar sempre o valor “client_credentials”)AN??SIM
site_idIdentificação da loja pedindo recurso da APIAN??SIM
site_secretSenha da lojaAN??SIM
client_id

Resposta#

  • Content-Type: application/json;charset=UTF-8

  • Corpo:


ParâmetroDescriçãoTipoTamanhoObrigatório
access_tokenToken de autorização para acesso aos serviços da APIAN??SIM
token_typeTipo do token (sempre “Bearer”)AN??SIM
expires_inTempo em segundosN??SIM

Exemplo#

Requisição e Resposta

POST /v1/auth-token HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=CLIENTID00000&site_id=SITEID000000000&site_secret=siteSecretExample123
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"accessTokenExample456",
"token_type":"Bearer",
"expires_in":3600
}

Uso do token#

Nas demais chamada à API, a Automação deve incluir o token no campo "Authorization" do cabeçalho, no seguinte formato:

Authorization: Bearer valor de access_token

Caso a chamada resulte no erro HTTP 401, a Automação deve gerar um novo token.

Política de troca e envio de secret#

Boa prática requer que o site_secret deve ser trocado de tempos em tempos e a automação tem a responsabilidade de trocar o site_secret.

A área de segurança da Fiserv determina que o processo de passagem do site_secret deve ser feito de forma a atender as normas de segurança, não pode envolver envio em claro por e-mail ou por meios já considerados inseguros.