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 (Request)
Requisição HTT
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'
--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:
Scope | Descrição |
---|---|
card.pci.token.create | Concede acesso para a geração de um token. |
Cabeçalhos (Headers)
Nome | Descrição |
---|---|
api-version | Obrigatório. Versão da API. Atualmente estamos na versão 1.0. |
Authorization | Obrigatório. Token de autorização do tipo Bearer. |
Parâmetros da rota (Path)
No path desta requisição envie os seguintes campos:
Nome | Tipo | Descrição |
---|---|---|
proxy | path | Obrigatório. Código identificador do cartão. |
wallet | path | Obrigató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. |
brand | path | Obrigató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.
Nome | Tipo | Descrição | Especificação |
---|---|---|---|
nonce | string | Obrigató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. |
nonceSignature | string | Obrigató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. |
appleCertificate | string | Obrigató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:
Nome | Tipo | Descrição |
---|---|---|
data | string | Token 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 camposEphemeralPublicKey , EncryptedData e ActivationData . |
lastFourDigits | string | Quatro últimos dígitos do cartão. |
phoneNumber | string | Número de telefone do titular do cartão. |
address | object | Objeto que contém informações sobre o endereço do titular do cartão. |
address.zipcode | string | Código postal do endereço. |
address.address | string | Logradouro (nome da rua, avenida etc.). |
address.number | string | Número do imóvel. |
address.neighborhood | string | Nome do bairro. |
address.complement | string | Complemento do endereço. |
address.city | string | Nome da cidade. |
address.state | string | Nome da estado. |
address.country | string | Nome 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 Code | Código | Mensagem | Descrição |
---|---|---|---|
404 | 002 | Card Not Found | Cartão não encontrado. |
409 | 029 | The card is in the process of being created | O 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 evento | Descrição |
---|---|
CARD_WAS_ADDED_TO_WALLET | O cartão foi adicionado na carteira digital. |
CARD_WAS_REMOVED_FROM_WALLET | O 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.
Updated 14 days ago