Criação de cartão Físico / Virtual

Este endpoint permite que o parceiro Hiperbanco ofereça a seus clientes a possibilidade de adquirir um cartão físico.

Pré-requisitos

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

  • O parceiro defina um programa para seus cartões;
  • O cliente do parceiro possua uma conta ativa.

Requisição (Request)

Requisição HTTP

POST https://sandbox.hiperbanco.com.br/Cards/create/[typeCard}
--request POST 'https://sandbox.hiperbanco.com.br/Cards/create/Physical' \
--header 'version: cutting-edge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}' \
--data-raw '{
  "documentNumber": "11122233344",
  "cardName": "Testando Card",
  "alias": "testando",
  "bankAgency": "0001",
  "bankAccount": "00012345",
  "programId": 111,
  "password": "1111",
  "address": {
    "address": "Av. Sete de Setembro",
    "zipCode": "40060000",
    "city": "Salvador",
    "state": "BA",
    "country": "BR",
    "neighborhood": "Campo Grande",
    "number": "100",
    "complement": "Apto 101"
  }
}'
--request POST 'https://sandbox.hiperbanco.com.br/Cards/create/Virtual' \
--header 'version: cutting-edge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}' \
--data-raw '{
  "documentNumber": "12345678909",
  "cardName": "Netflix",
  "alias": "Netflix 01",
  "bankAgency": "0001",
  "bankAccount": "123456",
  "programId": 111,
  "password": "1111"
}'

Cabeçalhos (Headers)

NomePropriedadeDescrição
versioncutting-edgeObrigatório. Essa propriedade garante que o response da API seja retornado no formato JSON
AuthorizationBearer tokenObrigatório. Token de autorização do tipo Bearer.

Parâmetros da rota (Path)

NomeTipoDescriçãoEspecificação
typeCardpathObrigatório. Tipo do cartãoOs cartões podem ser do tipo Virtual (para a emissão de cartão virtual) ou Physical (para a emissão de cartão físico).

Corpo da requisição (Body)

No body, envie os seguintes campos em formato JSON:

CampoTipoDescriçãoEspecificação
documentNumberstringObrigatório. Número do documento do titular.Informe somente números. Máximo de 14 caracteres.
cardNamestringObrigatório. Nome impresso no cartão.Não é permitido o uso de números e caracteres especiais. Máximo de 19 caracteres.
aliasstringObrigatório. Nome de identificação do cartão.Não é permitido o uso de caracteres especiais. Máximo de 16 caracteres.
bankAgencystringObrigatório. Número da agência.
bankAccountstringObrigatório. Número da conta bancária.
programIdnumberObrigatório. Identificador do programa previamente definido.
passwordstringObrigatório. Senha do cartão.Preencha com apenas 4 dígitos. Exemplo: “4853”.
addressobjectObjeto que deverá conter informações sobre o endereço do titular do cartão ao qual deve ser realizado a entrega.Máximo de 255 caracteres.
address.addressstringLogradouro (nome da rua, avenida etc.).Máximo de 255 caracteres.
address.zipCodestringCódigo postal do endereço.Informe somente números. O CEP deve ser nacional e conter oito dígitos.
address.citystringNome da cidade.Máximo de 255 caracteres. Devem-se evitar acentos e outros caracteres especiais.
address.statestringNome do estado.Formato ISO 3166-2:BR.
address.countrystringPaís.Formato ISO 3166-2:BR.
address.neighborhoodstringBairro.Máximo de 255 caracteres.
address.numberstringNúmero do endereço.
address.complementstringComplemento do endereço.Máximo de 255 caracteres.
⚠️

Importante

O objeto address é obrigatório na emissão de cartões físicos, pois representa o endereço de entrega do cartão.

{
  "documentNumber": "12345678909",
  "cardName": "Netflix",
  "alias": "Netflix 01",
  "bankAgency": "0001",
  "bankAccount": "123456",
  "programId": 111,
  "password": "1111"
}
{
  "documentNumber": "11122233344",
  "cardName": "Testando Card",
  "alias": "testando",
  "bankAgency": "0001",
  "bankAccount": "00012345",
  "programId": 111,
  "password": "1111",
  "address": {
    "address": "Av. Sete de Setembro",
    "zipCode": "40060000",
    "city": "Salvador",
    "state": "BA",
    "country": "BR",
    "neighborhood": "Campo Grande",
    "number": "100",
    "complement": "Apto 101"
  }
}

Resposta (Response)

Os status code 200 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:

Cartão Virtual

NomeTipoDescrição
proxystringCódigo identificador do cartão.
activateCodestringCódigo atrelado ao cartão no momento de sua emissão.
{
    "proxy": "7912821000000718668",
    "activateCode": "C96024295843"
}

Cartão Físico

NomeTipoDescrição
datastringMensagem informando que o cartão foi enviado para análise.
{
    "data": "Card sent for analysis."
}

Erros

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

Status CodeCódigoMensagemDescrição
401PROGRAM_NOT_IN_LOTProgram does not belong to lot.O programa não pertence ao lote.
406DELIVERY_ADDRESS_REQUIRED_FOR_PHYSICAL_CARDDelivery address must be informed when requesting the physical card.O cartão físico necessita de um endereço para entrega.
406PROGRAM_DISABLEDProgram disable!Requisição válida, porém, não foi aceita devido a alguma regra de negócio contratada.
406PROGRAM_UNDEFINEDProgram undefined!Nenhum programa definido para a operação.
406ACCOUNT_NOT_OWNED_BY_CUSTOMERAccount does not belong to the customer!A conta não pertence ao cliente.
406ACCOUNT_INACTIVEThe account is inactive!Conta inativa.
406DUPLICATE_CARD_NAMECard 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.
409CARD_LIMIT_REACHED_FOR_PROGRAMIt is not possible to create new cards as it has reached the limit configured for this program.A requisição com os dados enviados já foi realizada e está em processamento.
422ACCOUNT_ALREADY_HAS_PHYSICAL_CARDThe account already has an active physical card or it is to be approved.A conta já possui um cartão físico ativo ou está pendente de aprovação.
404ONBOARDING_NOT_FOUNDOnboarding not found searching by number and branchOnboarding não encontrado.
404ACCOUNT_NOT_FOUNDAccount not found searching by number and branchConta não encontrada.

Recordamos que esta API também poderá retornar erros comuns entre todos os endpoints 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_ISSUEDO cartão foi emitido.