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 chave
Authorization -
ClientEncryptionString: Chave aleatória que será gerada pela aplicação cliente. A ClientEncryptionString deve ser enviada no cabeçalho da solicitação na chave
X-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 chave
X-Authorization-Encrypted-Data
HMAC SHA-512A 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 deve ser usada para completar a URL do endpoint
-
Código de afiliação Stone: Stone Code do cliente. O Stone Code deve ser usado como parâmetro para completar a URL do endpoint
Enpointhttps://conciliation.stone.com.br/v1/merchant/{affiliationCode}/conciliation-file/{referenceDate}
EXEMPLO
Segue um exemplo utilizando credenciais inválidas. Após solicitada sua credencial para nossa API de Conciliação V2.2, 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 |
ClientEncryptionStringEsta 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