Para enviar as solicitações para a API, algumas informações são necessárias:

  1. ClientApplicationKey: Chave pública da aplicação gerada pela Stone.
    O ClientApplicationKey deve ser enviado no cabeçalho da solicitação na chave Authorization

  2. 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

  3. 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-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.

  1. 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

  2. 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:

CampoValor
ClientApplicationKey21e6a65b-234d-43e4-21r7-6c767890d2qt
SecretKeyDre2VsFGTHYqHht0Yi66FTRmLTkzsderFGthbvWQY6RfAtY9

Com essas duas informações em mãos, temos:

CampoValor
ClientApplicationKey21e6a65b-234d-43e4-21r7-6c767890d2qt
ClientEncryptionStringString-XPTO
Signature//No próximo passo vamos demonstrar como gerar essa chave.
StoneCode123456987
Date20181112

❗️

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:

CampoValor
SecretKeyDre2VsFGTHYqHht0Yi66FTRmLTkzsderFGthbvWQY6RfAtY9
ClientEncryptionStringString-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 é:

CampoValor
Signature4b74dc82fc7589e6aafda8fcca1f061b7aee48b48013fd52bb7e8e68bf895504d4544a5d02508f8408
a645e8fd8da57582580925be4a353db8e312d87f3897f0

Dessa forma temos todos os dados necessários para montar o request:

CampoValor
ClientApplicationKey21e6a65b-234d-43e4-21r7-6c767890d2qt
ClientEncryptionStringString-XPTO
Signature4b74dc82fc7589e6aafda8fcca1f061b7aee48b48013fd52bb7e8e68bf895504d4544
a5d02508f8408a645e8fd8da57582580925be4a353db8e312d87f3897f0
StoneCode123456987
Date20181112
URLhttps://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