Integrando com o Silent Order Post

O funcionamento do Silent Order Post ocorre em quatro etapas:

  1. Autenticação da loja por meio da criação do access_token OAuth2 para acesso à API do Silent Order Post;
  2. Criação do AccessToken do SOP na API do Silent Order Post para integrar o script;
  3. Execução do script;
  4. Envio da requisição de autorização da transação à API Cielo E-commerce informando o PaymentToken.

1. Obtendo o AccessToken OAuth2

Quando o comprador acessa o checkout, a loja deve gerar o access_token a partir da API de autenticação (OAuth2). Em caso de sucesso, a API retornará um access_token que deverá ser utilizado na próxima camada de autenticação da ferramenta.

Para obter o access_token no padrão OAuth 2.0, envie requisição utilizando o VERBO HTTP POST para a seguinte URL, formada pela "URL base do ambiente + endpoint", no modelo server-to-server:

AmbienteURL base + endpointAuthorization
SANDBOXhttps://authsandbox.braspag.com.br/oauth2/token"Basic {base64}"
PRODUÇÃOhttps://auth.braspag.com.br/oauth2/token"Basic {base64}"

Nota: O valor "{base64}" para a autorização do tipo "Basic" deve ser obtido da seguinte forma:

  1. Concatene o ClientId e o ClientSecret (ClientId:ClientSecret).
  2. Codifique o resultado da concatenação em base64.
  3. Realize uma requisição ao servidor de autenticação utilizando o código alfanumérico gerado.

Solicite à equipe de suporte a criação do ClientId e do ClientSecret de sua loja para utilização nos ambientes sandbox e de produção. No chamado, informe que deseja realizar a integração do Silent Order Post e forneça seu MerchantId.

Requisição

--request POST "https://authsandbox.braspag.com.br/oauth2/token"
--header "Authorization: Basic {base64}"
--header "Content-Type: application/x-www-form-urlencoded" 
--data-binary "grant_type=client_credentials"
ParâmetrosFormatoEnvio
Authorization"Basic {base64}"Envio no header.
Content-Type"application/x-www-form-urlencoded"Envio no header.
grant_type"client_credentials"Envio no body.

Resposta

{
  "access_token": "faSYkjfiod8ddJxFTU3vti_ ... _xD0i0jqcw",
  "token_type": "bearer",
  "expires_in": 599
}
Propriedades da RespostaDescrição
access_tokenO token de autenticação solicitado. Ele será utilizado no passo de obtenção do AccessToken do SOP.
token_typeIndica o tipo de token.
expires_inExpiração do token de acesso, em segundos. Quando o token expira, é necessário obter um novo.

2. Obtendo o AccessToken SOP

Crie o AccessToken do Silent Order Post (SOP) enviando uma requisição POST. Informe o access_token OAuth2 obtido na etapa anterior como o Bearer no cabeçalho da requisição.

O AccessToken do SOP será informado no script na etapa 3.

AmbienteURL base + endpoint
Sandboxhttps://transactionsandbox.pagador.com.br/post/api/public/v2/accesstoken
Produçãohttps://transaction.pagador.com.br/post/api/public/v2/accesstoken

Requisição

--request POST "https://transactionsandbox.pagador.com.br/post/api/public/v2/accesstoken"
--header "Content-Type: application/json"
--header "MerchantId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
--header "Authorization: Bearer faSYkjfiod8ddJxFTU3vti_ ... _xD0i0jqcw"
--data-binary
--verbose
PropriedadeDescriçãoTipoTamanhoObrigatório?
MerchantIdIdentificador da loja na API Cielo E-commerce.GUID36Sim
AuthorizationBearer [AccessToken OAuth2]texto36Sim

Resposta

Como resposta, a loja receberá um JSON ("HTTP 201 Created") contendo, entre outras informações, o token (AccessToken SOP).

{
    "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "AccessToken": "MzA5YWIxNmQtYWIzZi00YmM2LWEwN2QtYTg2OTZjZjQxN2NkMDIzODk5MjI3Mg==",
    "Issued": "2023-08-05T08:50:04",
    "ExpiresIn": "2023-08-05T09:10:04"
}
PropriedadeDescriçãoTipoTamanhoFormato
MerchantIdIdentificador da loja na API Cielo E-commerce.GUID36xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AccessTokenToken de acesso do Silent Order Post (AccessToken SOP). Por questões de segurança, este token dará permissão para o estabelecimento salvar apenas um cartão dentro de um prazo já estipulado na resposta, através do atributo ExpiresIn (por padrão, 20 minutos). O que acontecer primeiro invalidará esse mesmo token para impedir um uso futuro.texto--NjBhMjY1ODktNDk3YS00NGJkLWI5YTQtYmNmNTYxYzhlNjdiLTQwMzgxMjAzMQ==
IssuedData e hora da geração do AccessToken.texto--AAAA-MM-DDTHH:MM:SS
ExpiresInData e hora da expiração do AccessToken.texto--AAAA-MM-DDTHH:MM:SS

3. Implementando o script

Mapeando classes

Faça o download do script do Silent Order Post e insira o script no formato JavaScript na sua página de checkout. Esse script permitirá à Cielo processar todas as informações de cartão sem intervenção da loja.

Parametrize os elementos de formulário com as seguintes classes:

PropriedadeNome da ClasseObrigatório?
Nome do portador do cartão de crédito/débitobp-sop-cardholdernameSim
Número do cartão de crédito/débitobp-sop-cardnumberSim
Data de validade do cartão de crédito/débitobp-sop-cardexpirationdateSim
Código de segurança do cartão de crédito/débitobp-sop-cardcvvcSim
Modalidade do cartão a ser verificada ("debitCard" ou "creditCard").bp-sop-cardtypeNão*

*Se a classe bp-sop-cardtype não for informada, o script irá assumir que o cartão usado na compra é um cartão de crédito.

Definindo parâmetros

Parâmetros do script

Os parâmetros do script devem ser inseridos no HTML da página de checkout para referenciar o script.

PropriedadeDescrição
accessTokenToken de acesso do Silent Order Post (AccessToken SOP).
environmentTipo de ambiente: "sandbox" para teste / "production" para produção.
languageIdioma: "pt" para português/ "en" para inglês/ "es"para espanhol.
enableTokenize"true" (salva o cartão diretamente no cofre Cielo, retornando um CardToken ao invés de um PaymentToken) / "false" (caso contrário).*
cvvRequired"false" (desliga a obrigatoriedade de envio do CVV) / "true" (caso contrário). A loja precisa ter autorização da adquirente para transacionar sem o CVV.
cardTypeUse "creditCard" ou "debitCard" para forçar a verificação da modalidade do cartão. Importante para validar cartões múltiplos. Se nada for enviado, o emissor considerará apenas a modalidade "Crédito".

* O serviço correspondente precisa estar habilitado.

ℹ️

Para habilitar a tokenização de cartões, entre em contato com o Atendimento.

Usando o Silent Order Post com a tokenização e armazenamento de cartões
Você pode usar o Silent Order Post para trafegar os dados de cartão pela Cielo e armazenar e tokenizar o cartão de forma segura e criptografada no cofre Cielo, que conta com a certificação PCI DSS.

Saiba mais em Tokenização de cartões

Retornos do script

O script irá retornar um JSON com o PaymentToken (cartão tokenizado que deverá ser enviado na autorização) e informações sobre o cartão.

Exemplo de JSON de retorno do script

{
  "PaymentToken": "366f8470-54d0-43cb-95f5-c80a502afc27",
}

Propriedades do retorno do script

PropriedadeDescriçãoCondição
PaymentToken*Token efêmero utilizado para pagamento no formato de um GUID (36). Tem duração de 20 minutos e pode ser usado apenas uma vez. É o valor que deve ser enviado na requisição de autorização.***
CardTokenToken permanente utilizado para pagamento no formato de um GUID (36).Quando enableTokenize for "true".

_Em Parâmetros do script, se enableTokenize for _true*, o script irá retornar o CardToken em vez do PaymentToken. Saiba mais sobre CardToken em Tokenização de cartões.

Implementando eventos

O script fornecido pela Cielo oferece os seguintes três eventos para manipulação e tratamento por parte da loja:

EventoDescrição
onSuccessEvento em caso de sucesso. Retorna o PaymentToken e também os dados do cartão, caso tenha solicitado realizar a verificação do cartão. Por questões de segurança, esse PaymentToken poderá ser usado para uma única autorização. Após seu processamento, ele será invalidado.
onErrorEvento em caso de erro. Retorna o código e a descrição do erro.
onInvalidEvento em caso de fornecimento de dados incorretos. Retorna detalhes de campos com erro. As mensagens retornadas no resultado da validação são disponibilizadas nas seguintes linguagens: português (default), inglês e espanhol.

Características do PaymentToken:
Por questões de segurança, o PaymentToken poderá ser usado para uma única autorização e/ou dentro do período de 20 minutos. Após seu processamento, o PaymentToken será invalidado.

4. Autorizando com PaymentToken

Após a obtenção do PaymentToken através do script, execute o processo de autorização, enviando o PaymentToken no lugar de dados do cartão.

Para submeter uma transação de crédito, envie o parâmetro Payment.CreditCard.PaymentToken em vez de Payment.CreditCard. Saiba mais no manual da API Cielo E-commerce;
Para submeter uma transação de débito, envie o parâmetro Payment.DebitCard.PaymentToken em vez de Payment.DebitCard. Saiba mais no manual da API Cielo E-commerce.

Veja o exemplo abaixo, descrevendo o envio dos dados de autenticação da requisição de autorização da API Cielo E-commerce.

Requisição

{  
   "MerchantOrderId":"2017051002",
   "Customer":
   {  
     (...)
   },
   "Payment":
   {  
     (...)
     "CreditCard":{  
         "PaymentToken":"eedcb896-40e1-465b-b34c-6d1119dbb6cf"
     }
   }
}
CampoDescriçãoTipo/TamanhoObrigatório?
Payment.CreditCard.PaymentTokenFornece o PaymentToken gerado através do script. Esta informação substitui os dados do cartão. Substituir por DebitCard se for utilizar um cartão de débitoGUID / 36Sim

Resposta

Consulte o Manual da API Cielo E-commerce para exemplos de resposta a requisições de autorização.

Exemplo de integração

Compartilhamos no nosso GitHub um exemplo prático de como você deve mapear as classes e integrar o Silent Order Post ao seu checkout.