Emissão de cartão adicional
stable pós
Este endpoint permite que o parceiro Bankly ofereça a seus clientes a possibilidade de solicitar um cartão adicional.
NotaTodo cartão adicional será do tipo pós-pago, mesmo quando vinculado a um cartão titular do tipo Combo.
DicaAs regras específicas relacionadas à ativação, alteração de status e operações não permitidas para cartões adicionais estão documentadas em uma página dedicada. Consulte Gestão de cartão Adicional para mais detalhes.
Pré-requisitos
Para que seja possível utilizar este endpoint, é necessário que:
- O cartão titular seja do tipo pós-pago, incluindo cartão combo com a modalidade pós ativa;
- O cartão titular seja físico; cartões virtuais não são compatíveis;
- O programa vinculado ao cartão titular esteja devidamente configurado.
ImportantePara realizar a configuração do programa do cartão, o parceiro deve procurar o time de Operações da Bankly.
Requisição (Request)
Requisição HTTP
POST https://api-mtls.sandbox.bankly.com.br/cards-pci/{{proxy}}/additional--request POST \
--url 'https://api-mtls.sandbox.bankly.com.br/cards-pci/{{proxy}}/additional' \
--header 'accept: application/json' \
--header 'content-type: application/json'\
--header 'Authorization: Bearer {{Token}}'\
--header 'api-version: 1' \
--header 'x-correlation-id: {{GUID}}' \
--data '{
"cardName": "Marco M Sandbox",
"alias": "Marco Sandbox",
"password": "{{senha criptografada}}",
"additional": {
"holder": {
"name": "Marco Minas Sandbox",
"document": {
"value": "{{número do documento}}",
"type": "{{tipo do documento}}" //CPF ou CNPJ
}
}
},
"holder": {
"document": {
"value": "{{número do documento}}",
"type": "{{tipo do documento}}" //CPF ou CNPJ
},
"password": "{{senha criptografada}}"
},
"address": {
"zipCode": "03276010",
"address": "Rua Correia da Camara",
"number": "452",
"complement": "Apto 801",
"neighborhood": "Vila Tolstoi",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"metadata": {
"metadataProp1": "string",
"metadataProp2": "string"
}
}'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.create | Concede acesso para emitir um cartão adicional. |
Cabeçalhos (Headers)
| Nome | Descrição | Especificação |
|---|---|---|
api-version | Obrigatório. Versão da API. Atualmente estamos na versão 1.0. | — |
Authorization | Obrigatório. Token de autorização. | Tipo Bearer. |
accept | Obrigatório. Tipo de conteúdo de resposta. | Utilize sempre application/json. |
Content-Type | Obrigatório. Tipo de conteúdo de resposta. | Utilize sempre application/json. |
x-correlation-id | Informe um GUID, sendo um novo cada requisição. | — |
Parâmetros da rota (Path)
| Nome | Tipo | Descrição | Especificação |
|---|---|---|---|
proxy | string | Obrigatório. Código identificador do cartão titular. | Insira somente números, sem caracteres especiais. |
Corpo da requisição (Body)
No body, envie os seguintes campos em formato JSON:
| Nome | Tipo | Descrição | Especificação |
|---|---|---|---|
cardName | string | Obrigatório. Nome que será impresso no cartão. | Não é permitido o uso de números e caracteres especiais. Máximo de 19 caracteres. |
alias | string | Obrigatório. Apelido do cartão. | Não é permitido o uso de caracteres especiais. Máximo de 16 caracteres. |
password | string | Obrigatório. Senha do cartão adicional. Importante: dependendo da configuração do programa, o envio deste campo pode ser opcional. Neste caso, a senha é gerada randomicamente. | A senha deve possuir quatro dígitos e ser transmitida criptografada em formato base64. Exemplo: "TiCEhKL8h7y88..." |
additional | object | Obrigatório. Objeto que contém informações sobre o cartão adicional. | — |
additional.holder | object | Obrigatório. Objeto que contém informações sobre o portador do cartão adicional. | — |
additional.holder.name | string | Obrigatório. Nome do portador do cartão adicional. | — |
additional.holder.document | object | Obrigatório. Objeto que contém informações sobre o documento do portador do cartão adicional. | — |
additional.holder.document.value | string | Obrigatório. Número do documento do cliente (11 ou 14 dígitos). | — |
additional.holder.document.type | string | Obrigatório. Tipo do documento do cliente (CPF ou CNPJ). | — |
holder | object | Obrigatório. Objeto que contém informações sobre o titular do cartão. | — |
holder.document | object | Obrigatório. Objeto que contém informações sobre o documento do titular do cartão. | — |
holder.document.value | string | Obrigatório. Número do documento do cliente (11 ou 14 dígitos). | — |
holder.document.type | string | Obrigatório. Tipo do documento do cliente (CPF ou CNPJ). | — |
holder.password | string | Obrigatório. Senha do cartão titular. Importante: dependendo da configuração do programa, o envio deste campo pode ser opcional. | A senha deve possuir quatro dígitos e ser transmitida criptografada em formato base64. Exemplo: "AiHJpKM2w4w31..." |
metadata | object | Objeto que deverá conter informações adicionais pertinentes ao contexto, representadas por meio de pares de chave e valor. | — |
ImportantePara que o parceiro possa utilizar a opção de senha randômica, é necessário:
- Avaliação prévia pelo time de Segurança da Informação da Bankly.
- Que o usuário tenha acesso à senha, seja pelo kit enviado ou pelo endpoint de consulta de senhas.
O objeto address é opcional.
- Se não for informado, o endereço de entrega do cartão adicional será o mesmo do titular do cartão.
- Se informado, é necessário preencher os campos obrigatórios conforme indicado na tabela a seguir:
| Nome | Tipo | Descrição | Especificação |
|---|---|---|---|
address | object | Objeto que contém as informações do endereço de entrega do cartão adicional. | — |
address.zipCode | string | Obrigatório. Código postal do endereço. | Informe somente números. O CEP deve ser nacional e conter oito dígitos. |
address.address | string | Obrigatório. Logradouro (nome da rua, avenida etc.). | Máximo de 256 caracteres. |
address.number | string | Obrigatório. Número do imóvel. | — |
address.neighborhood | string | Obrigatório. Nome do bairro. | Máximo de 256 caracteres. |
address.complement | string | Complemento do endereço. | — |
address.city | string | Obrigatório. Nome da cidade. | Máximo de 256 caracteres. Devem-se evitar acentos e outros caracteres especiais. |
address.state | string | Obrigatório. Nome do estado. | Formato ISO 3166-2:BR. |
address.country | string | Obrigatório. Nome do país. | Formato ISO 3166-2:BR. |
AtençãoPara evitar problemas de entrega devido ao endereço cadastrado do titular desatualizado, recomendamos que o objeto
addressseja devidamente preenchido.
{
"cardName": "Marco M Sandbox",
"alias": "Marco Sandbox",
"password": "TiCEhKL8h7y88...",
"additional": {
"holder": {
"name": "Marco Minas Sandbox",
"document": {
"value": "00000000000",
"type": "CPF"
}
}
},
"holder": {
"document": {
"value": "11111111111",
"type": "CPF"
},
"password": "AiHJpKM2w4w31..."
},
"address": {
"zipCode": "03276010",
"address": "Rua Correia da Camara",
"number": "452",
"complement": "Apto 801",
"neighborhood": "Vila Tolstoi",
"city": "São Paulo",
"state": "SP",
"country": "BR"
},
"metadata": {
"metadataProp1": "2025-10-01T1224:07.4019873Z",
"metadataProp2": "1.0"
}
}
ImportanteAlém dos campos descritos acima, o parceiro pode enviar o objeto
embossinge suas propriedades. Mais detalhes na documentação Embossing.
Resposta (Response)
Os status code 202 indica que a solicitação foi aceita e o cartão está sendo criado.
Sendo bem-sucedido, o retorno irá trazer os seguintes campos em formato JSON:
| Nome | Tipo | Descrição | Número máximo de caracteres |
|---|---|---|---|
proxy | string | Código identificador do cartão. | 31 |
activateCode | string | Código atrelado ao cartão no momento de sua emissão. | — |
{
"proxy": "2370021007715002820",
"activateCode": "A0DDDC0951D1"
}
DicaPara simular uma requisição nesse endpoint, acesse o API Reference.
Erros
Este endpoint pode retornar alguns erros específicos, conforme a tabela a seguir:
| Status Code | Código | Mensagem | Descrição |
|---|---|---|---|
| 404 | 002 | Card not found! | Cartão titular não encontrado. |
| 409 | 101 | Program disable! | O programa do cartão titular está desabilitado. |
| 409 | 008 | Card does not belong to this customer! | O proxy informado não pertence ao titular informado. |
| 409 | 011 | Invalid password! | A senha informada para o cartão titular está incorreta. |
| 409 | ADDITIONAL_DISABLED_ON_PROGRAM | Additional card issuing disabled on program. | O opção de emissão de cartão titular está desabilitada para o programa do cartão titular informado. |
| 409 | ANALYSIS_CREDIT_NOTFOUND | Credit analysis not found for document and program informed. | O contrato de crédito do cartão titular não está ativo e assinado. |
| 409 | DUPLICATE_CARD_NAME | Card already exists for the given name. | Nome já cadastrado para o CPF informado. Não é possível ter dois cartões físicos ativos com o mesmo nome para o mesmo CPF e programa. |
| 409 | INVALID_CARD | Invalid Card For Additional Cards. | O proxy informado não é referente a um cartão físico ou é um cartão adicional. |
| 409 | SAME_DOCUMENT_AS_HOLDER | Can´t issue additional cards to same customer as main holder. | O documento do cartão adicional informado é o mesmo do que o documento do titular do cartão. |
Informamos 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_ISSUED | O cartão foi emitido. |
