Para enviar as solicitações para a API, algumas informações são necessárias:
-
ClientApplicationKey: Chave pública da aplicação gerada pela Stone.
O ClientApplicationKey deve ser enviado no cabeçalho da solicitação na chaveAuthorization
-
ClientEncryptionString: Chave aleatória que será gerada pela aplicação cliente.
A ClientEncryptionString deve ser enviada no cabeçalho da solicitação na chaveX-Authorization-Raw-Data
-
Signature: Chave ClientEncryptionString cifrada utilizando a SecretKey fornecida juntamente com a chave pública (ClientApplicationKey) gerada pela Stone.
A Signature deve ser enviada no cabeçalho da solicitação na chaveX-Authorization-Encrypted-Data
HMAC SHA-512
A Signature é um HMAC gerado com algoritmo SHA-512. Deve-se utilizar como String de codificação o ClientEncryptionString juntamente do SecretKey gerado pela Stone.
É possível encontrar diversas plataformas web que geram a conversão HMAC com o algoritimo SHA-512, como, por exemplo, o Freeformatter.
-
Data de referência: Dia para o qual você deseja solicitar o arquivo. (Formato yyyyMMdd).
A data de referência devem ser usadas para completar a URL do endpoint -
Código de afiliação Stone: Stone Code do cliente.
O Stone Code deve ser usado como parametro para completar a URL do endpoint
Enpoint
https://conciliation.stone.com.br/v1/merchant/{affiliationCode}/conciliation-file/{referenceDate}
EXEMPLO
Abaixo segue um exemplo utilizando credenciais inválidas. Após solicitada sua credencial para nossa API de Conciliação V2.2, lhe encaminharemos duas chaves:
Campo | Valor |
---|---|
ClientApplicationKey | 21e6a65b-234d-43e4-21r7-6c767890d2qt |
SecretKey | Dre2VsFGTHYqHht0Yi66FTRmLTkzsderFGthbvWQY6RfAtY9 |
Com essas duas informações em mãos, temos:
Campo | Valor |
---|---|
ClientApplicationKey | 21e6a65b-234d-43e4-21r7-6c767890d2qt |
ClientEncryptionString | String-XPTO |
Signature | //No próximo passo vamos demonstrar como gerar essa chave. |
StoneCode | 123456987 |
Date | 20181112 |
ClientEncryptionString
Esta chave é de livre escolha do integrador, mas lembre-se que esta chave será utilizada para gerar a Signature.
Neste momento precisamos gerar a chave Signature. Com os seguintes dados:
Campo | Valor |
---|---|
SecretKey | Dre2VsFGTHYqHht0Yi66FTRmLTkzsderFGthbvWQY6RfAtY9 |
ClientEncryptionString | String-XPTO |
Algorítimo de criptografia | SHA512 |
Para gerar a Signature precisamos aplicar o algoritmo SHA512 no conteúdo da chave ClientEncryptionString utilizando a chave secreta SecretKey.
Podemos realizar este processo utilizando bibliotecas, algoritmos específicos ou mesmo por plataformas como: Freeformatter.
O resultado do processo com os dados do exemplo é:
Campo | Valor |
---|---|
Signature | 4b74dc82fc7589e6aafda8fcca1f061b7aee48b48013fd52bb7e8e68bf895504d4544a5d02508f8408 a645e8fd8da57582580925be4a353db8e312d87f3897f0 |
Dessa forma temos todos os dados necessários para montar o request:
Campo | Valor |
---|---|
ClientApplicationKey | 21e6a65b-234d-43e4-21r7-6c767890d2qt |
ClientEncryptionString | String-XPTO |
Signature | 4b74dc82fc7589e6aafda8fcca1f061b7aee48b48013fd52bb7e8e68bf895504d4544 a5d02508f8408a645e8fd8da57582580925be4a353db8e312d87f3897f0 |
StoneCode | 123456987 |
Date | 20181112 |
URL | https://conciliation.stone.com.br/v1/merchant/$StoneCode$/conciliation-file/$date$ |
A URI do request fica desta forma:
https://conciliation.stone.com.br/v1/merchant/123456987/conciliation-file/20181112
O Header do request fica desta forma:
Authorization: Bearer 21e6a65b-234d-43e4-21r7-6c767890d2qt
x-authorization-raw-data: String-XPTO
x-authorization-encrypted-data: 4b74dc82fc7589e6aafda8fcca1f061b7aee48b48013fd52bb7e8e68bf895504d4544a5d02508f8408a645e8fd8da57582580925be4a353db8e312d87f3897f0