Geração de token

stable pré pós

Este endpoint permite a geração de um token com os dados criptografados do cartão para a sua adição junto a uma carteira digital (Google Pay e Apple Pay).

📘

Nota

O token gerado por este endpoint deverá ser enviado ao SDK da carteira digital correspondente.

🚧

Importante

Atualmente, o cartão do cliente do parceiro Bankly somente poderá ser adicionado à Google Pay ou Apple Pay.

Pré-requisitos

Para que seja possível utilizar este endpoint, é necessário que:

  • O cliente do parceiro Bankly possua conta e cartão ativos;
  • O programa do cartão esteja configurado para tokenização de cartões via carteiras digitais;
  • O aplicativo do parceiro tenha passado pelo processo de certificação com a wallet à qual o cartão será adicionado (Google Pay/Apple Pay).

🚧

Importante

Para mais informações sobre o processo de certificação e outras questões de integração relacionadas à carteira digital, consulte o time de operações do Bankly.

Requisição

Requisição HTTP

POST https://api-mtls.sandbox.bankly.com.br/cards-pci/{proxy}/wallet/{wallet}/brand/{brand}
     --request POST \
     --url https://api-mtls.sandbox.bankly.com.br/cards-pci/proxy/wallet/{wallet}/brand/{brand}\
     --header 'Authorization: Bearer {token}' \
     --header 'accept: application/json' \
     --header 'api-version: 1.0'
url --request POST \
     --url https://api-mtls.sandbox.bankly.com.br/cards-pci/proxy/wallet/{wallet}/brand/{brand}\
     --header 'Authorization: Bearer {token}' \
		 --header 'accept: application/json' \
     --header 'api-version: 1.0' \
     --header 'Content-Type: application/json'\
     --data '{
		   "nonce": "{Apple nonce}",
		   "nonceSignature": "{Apple nonceSignature}",
		   "appleCertificate": "{Apple certificates}"
		}'

Autorização

Para garantir a segurança nas requisições, todos os endpoints do Bankly utilizam scopes como parte do seu fluxo de autorização.
Esta requisição requer o scope descrito a seguir:

ScopeDescrição
card.pci.token.createConcede acesso para a geração de um token.

Cabeçalhos (Headers)

NomeDescrição
api-versionObrigatório. Versão da API. Atualmente estamos na versão 1.0.
AuthorizationObrigatório. Token de autorização do tipo Bearer.

Parâmetros da rota (Path)

No path desta requisição envie os seguintes campos:

NomeTipoDescrição
proxypathObrigatório. Código identificador do cartão.
walletpathObrigatório. Carteira digital ao qual o cartão deverá ser adicionado, que pode ser “GooglePay” ou “ApplePay”. Importante: em caso de ApplePay, é obrigatório enviar um body nesta requisição.
brandpathObrigatório. Bandeira do cartão. Preencha este campo com “Mastercard”.

Corpo da requisição (Body)

No body, envie os seguintes campos em formato JSON:

🚧

Importante

Somente envie os campos abaixo caso o cartão deva ser adicionado à Apple Pay.

NomeTipoDescriçãoEspecificação
noncestringObrigatório. Valor gerado no dispositivo que associa uma sessão de cliente a um token ID da Apple, obtido via SDK da Apple.Formato hexadecimal
nonceSignaturestringObrigatório. Assinatura gerada no dispositivo que associa uma sessão de cliente a um token ID da Apple, obtido via SDK da Apple.Formato hexadecimal
appleCertificatestringObrigatório. Listas de certificados do dispositivo, obtidos via SDK da Apple.Formato PEM
{
   "nonce": "{Apple nonce}",
   "nonceSignature": "{Apple nonceSignature}",
   "appleCertificate": "{Apple certificates PEM format}"
}'

Resposta (Response)

O status code 200 indicará que a solicitação foi aceita com sucesso e que o token foi gerado.

Sendo bem-sucedido, o retorno irá trazer os seguintes campos em formato JSON:

NomeTipoDescrição
datastringToken gerado em formato base64, que deverá ser enviado ao SDK da carteira digital correspondente. Importante: para a tokenização na Apple Pay, ao decodificar o token, será obtido um JSON com os campos
EphemeralPublicKey, EncryptedData e ActivationData.
lastFourDigitsstringQuatro últimos dígitos do cartão.
phoneNumberstringNúmero de telefone do titular do cartão.
addressobjectObjeto que contém informações sobre o endereço do titular do cartão.
address.zipcodestringCódigo postal do endereço.
address.addressstringLogradouro (nome da rua, avenida etc.).
address.numberstringNúmero do prédio ou da casa.
address.neighborhoodstringNome do bairro.
address.complementstringComplemento do endereço.
address.citystringNome da cidade.
address.statestringNome da estado.
address.countrystringNome do país.
{
    "data": "mkzjfhcnnhat84y583hguim49801mkzjfhcnnhat84y583hguim49801mkzjfhcnnhat84y583hguim49801mkzjfhcnnhat84y583hguim49801mkzjfhcnnhat84y583hguim49801mkzjfhcnnhat84y583hguim49801",
    "lastFourDigits": "1234",
    "phoneNumber": "23415162342",
    "address": {
      "zipCode": "05402100",
      "address": "Rua 6 de Março",
      "number": "2500",
      "neighborhood": "Alter do Chão",
      "complement": "",
      "city": "Santarém",
      "state": "PA",
      "country": "Brasil"
    }
  }

👍

Dica

Para simular uma requisição nesse endpoint, acesse o API Reference.

Erros

Este endpoint pode retornar erros específicos, conforme a tabela a seguir:

Status CodeCódigoMensagemDescrição
404002Card Not FoundCartão não encontrado.
409029The card is in the process of being createdO cartão está em processo de criação.

Recordamos que esta API também poderá retornar erros comuns entre todos os endpoints. Portanto, recomendamos a consulta da documentação de erros, onde é possível encontrar as mensagens comuns em inglês que acompanham os erros 400 (se houver).

Eventos

Caso o parceiro deseje receber mensagens referentes aos eventos relacionados a esse endpoint, é preciso configurar o webhook. Os eventos são:

Nome do eventoDescrição
CARD_WAS_ADDED_TO_WALLETO cartão foi adicionado na carteira digital.
CARD_WAS_REMOVED_FROM_WALLETO cartão foi removido na carteira digital.

📘

Nota

Recordamos que os eventos descritos acima não são enviados na geração do token, e sim quando o parceiro adiciona ou remove o cartão da carteira virtual.