Tabela de bins

API de Tabela de BINs permite com que o estabelecimento comercial identifique uma transação Elo e realize o roteamento adequado de autorização, possibilitando ainda utilização destas informações para fins de prevenção de fraudes.

Feito para:  Estabelecimentos ComerciaisAdquirentesFacilitadores

Como funciona

Primeiros passos

  1. Leia Introdução ao GraphQL, com exemplos reais da nossa API.

  2. Crie um usuário no portal do desenvolvedor.

  3. Cadastre sua primeira aplicação.

  4. Utilize o dashboard para acessar suas configurações de acesso.

  5. Para explorar rapidamente as APIs aqui na página de documentação, use o console de GraphQL, na seção de referências. Nele, você pode ver as consultas de exemplo, executá-las e alterá-las.

Primeiros passos na plataforma de Desenvolvedores Elo

Jaydson GomesDesenvolvedor Evangelista

O número do cartão (PAN - Primary Account Number) é segmentado por prefixos chamados "BIN", sigla em inglês para Bank Identification Number ou Número de Identificação do Banco.

O tamanho do prefixo, também conhecido como "tamanho do BIN", diz quantos dígitos à esquerda do número do cartão são utilizados. Originalmente já foi de apenas 4 dígitos, hoje são 6 e espera-se que chegue até 9 dígitos. Logo o tamanho é parametrizado como uma faixa, informada na consulta binTable { sizeRange } (veja mais a seguir).

Como o tamanho do BIN impacta no tamanho do número do cartão (PAN), cada BIN parametriza os tamanhos de PAN que ele espera, também como uma faixa na consulta BIN { panSizeRange }.

Uma vez reconhecido o BIN, pode-se então consultar o sistema por diversos atributos, tais como:

  • Qual o país de origem (domicílio) do cartão? BIN { country }

  • O cartão pode ser utilizado internacionalmente? BIN { isInternational }

  • Qual o financiamento do cartão? crédito, débito, múltiplo (ambos)? BIN { funding }

  • É um cartão corporativo ou de pessoas físicas? BIN { isCompany }

  • É um cartão real ou virtual (CardToken)? BIN { isToken }

  • Onde posso capturar o cartão? (Ex. Caixa Eletrônico, Ponto de Venda, Internet...) BIN { allowedCaptures }

  • Quais tipo de uso? (Ex. Crédito à Vista, Crédito Parcelado pela Loja, Débito...) BIN { usage }

  • Qual é a bandeira do cartão? BIN { brand }

  • Qual rede o cartão pode ser utilizado? (Ex. Elo, Elo-Discovery...) BIN { cardNetwork }

  • Qual o emissor (banco) do cartão? BIN { issuer }

  • Quais serviços ao portador o cartão oferece? (Ex. Seguro Viagem) BIN { services }

Um BIN pode ser consultado com a consulta bin(id):

query OneBin {
  bin(number: "509069") { # Banco do Brasil - Grafite

    # Deverá retornar Banco do Brasil
    issuer {
      name
    }

    # Deverá retornar Grafite
    product {
      name
    }

    # Capturas permitidas (i.e: ponto de venda `POS`, Internet,
    # Telemarketing...)
    allowedCaptures {
      name
      code
    }

    # Usos permitidos (i.e: Crédito à Vista, Débito, Parcelado pela
    # Loja...)
    usages {
      name
      code
    }

    # Serviços (benefícios) ao portador (i.e: Seguro de Viagem,
    # Proteção de Compra, Garantia Estendida, WiFi)
    services {
      name
    }
  }
}

Tais parâmetros podem ser utilizados por terceiros, por exemplo um comerciante, para validação do cartão e até prevenção à fraude. No entanto consultar um BIN por vez pode não ser eficiente, já que os BINs não mudam com tanta frequência. Seria melhor baixar uma cópia de toda a tabela.

Para isso utilizamos a consulta binTable, a qual retorna uma lista de todos os BINs e cada um pode ser consultado do mesmo modo que utilizamos individualmente no exemplo anterior:

query TableOfBins {
  binTable {
    # Faixa de tamanho (em dígitos) do BIN
    #
    # Indica quais os tamanhos de BIN estão presentes na tabela, por
    # exemplo `{ min: 6, max: 9 }` indica que deve-se conferir os
    # prefixos do número do cartão (PAN) de tamanhos 6, 7, 8 e 9.
    #
    # Caso os valores sejam idênticos, apenas um tamanho é suportado,
    # por exemplo `{ min: 6, max: 6 }`, somente o tamanho 6 está
    # presente.
    sizeRange {
      min
      max
    }

    # BINs em uso (alocados).
    #
    # Nesta consulta iremos extrair muitos dados como exemplo, caso
    # nem todos sejam de seu interesse, pode simplesmente apagar as
    # linhas.
    #
    # Caso mais informações sejam necessárias, como `ID` de algum
    # subcampo, endereço de um emissor ou afins, basta incluí-los
    # conforme os campos listados para cada subtipo.
    bins {
      # Número do BIN
      #
      # O tamanho em caracteres define o número de dígitos (tamanho)
      # do BIN.
      number

      # Faixa de tamanhos do número do cartão (PAN).
      #
      #
      # O número do cartão (PAN - Primary Account Number) tem em
      # geral tamanho de 16 dígitos, sendo retornado como `min: 16,
      # max: 16`. Porém devido à necessidade de mais cartões
      # disponíveis, o mercado está gradualmente migrando para mais
      # dígitos -- espera-se que num futuro próximo chegue até a 19.
      #
      # Ao pedir e validar entrada do usuário, encontre um BIN válido
      # para o prefixo e então verifique este campo para saber se o
      # número de dígitos está correto.
      panSizeRange {
        min
        max
      }

      # Se o cartão é `CREDIT`, `DEBIT` ou `MULTIPLE` (ambos).
      funding

      # Se o cartão permite uso internacional ou apenas doméstico
      isInternational

      # Se o cartão é corporativo ou pessoa física
      isCompany

      # Se o cartão é virtual, ou seja, um _token_
      isToken

      # Produto do cartão, ex: Nanquim, Grafite, Viagem...
      product {
        name
      }

      # Capturas permitidas (i.e: ponto de venda `POS`, Internet,
      # Telemarketing...)
      allowedCaptures {
        name
        code
      }

      # Usos permitidos (i.e: Crédito à Vista, Débito, Parcelado pela
      # Loja...)
      usages {
        name
        code
      }
    }
  }
}

No entanto estes parâmetros não são frequentemente modificados, geralmente uma vez na semana. Para isso devemos anotar a última atualização e utilizá-la na próxima consulta, caso ela não tenha sido modificada, nada será retornado.

Para isso utilizamos a consulta binTable com o parâmetro ifNoneMatch passando o último etag retornado, ou null caso a tabela nunca tenha sido baixada. Os nomes e uso são exatamente iguais ao If-None-Match e ETag do HTTP, utilizado para evitar baixar recursos inalterados.

Poucas mudanças sobre o exemplo anterior:

query TableOfBins {
  binTable(ifNoneMatch: "algo-retornado-no-etag-anteriormente-ou-null") {

    # salve este valor em conjunto com a tabela,  
    # e use-o como ifNoneMatch na próxima consulta
    etag  
    # ... demais campos consultados, como feito antes
  }
}



Consulta informações de BIN de um dado número

Se o número não estiver associado a um BIN alocado, então retorna null.

Em geral utilizado apenas em testes ou demonstrações dado que os usuários baixam toda a tabela com binTable() e fazem consultas locais. Dado que a frequência de atualizações é baixa (1 vez por semana).

Argumentos:

number: String obrigatório

O número do BIN, que por sua vez é um prefixo do número do cartão (PAN - Primary Account Number), ou seja pega-se os primeiros dígitos (à esquerda).

A quantidade de dígitos é parametrizada em binTable { sizeRange }, por exemplo { min: 6, max: 9 } indica que o sistema suporta BIN de tamanhos 6, 7, 8 e 9.



Baixa toda a tabela caso a tabela tenha sido modificada depois de uma certa data ou versão.

ifModifiedSince e ifNoneMatch são equivalentes ao uso no HTTP (If-Modified-Since para Last-Modified, If-None-Match para ETag) e podem ser utilizados para buscar por atualizações em uma única chamada.

Caso ifModifiedSince e ifNoneMatch sejam especificados e a tabela não tenha sido alterada, null é retornado indicando que a tabela não mudou.

Argumentos:

ifModifiedSince: DateTime

Caso fornecido, só retorna a tabela se esta foi atualizada posteriormente à data. Neste caso todos os dados da faixa são retornados, não apenas os que mudaram.

ifNoneMatch: String

Caso fornecido, só retorna a tabela se for diferente do ETag passado. Neste caso todos os dados da faixa são retornados, não apenas os que mudaram.






Define uma faixa de números inteiros.

Tanto min quanto max são inclusos na faixa. Ou seja:

  • min: 10, max: 12 define os números: 10, 11 e 12;

  • min: 100, max: 100 define apenas o número 100.

Campos:

min

:

Int obrigatório

Número mínimo (inicial), incluso na faixa.


max

:

Int obrigatório

Número máximo (final), incluso na faixa.



Informação de produto associado ao cartão

Cada cartão é relacionado a um produto. No caso da Elo, exemplos de produto são:

  • Básico

  • Clássico

  • Corporativo

  • Grafite

  • Nanquim

  • Viagem

  • Pré-pago

Campos:

id

:

ID obrigatório

Identificador Global Único para este objeto


code

:

CodeProduct obrigatório

Código que identifica produto.


name

:

String obrigatório

Nome do produto.

Exemplos de Produtos Elo:

  • Básico

  • Clássico

  • Corporativo

  • Grafite

  • Nanquim

  • Viagem

  • Pré-pago


image

(


width:

Int

Caso fornecido, largura da imagem, em pixels.

height:

Int

Caso fornecido, altura da imagem, em pixels.

mimeType:

String

Caso fornecido, o tipo de arquivo desejado (mime-type).

)

:

ImageUrl

URL da imagem. Caso sejam providos sugestões de altura e largura (opcionais) para o tamanho a ser mostrado, o servidor irá retornar a URL para a imagem com o tamanho mais próximo ao requisitado. Caso seja provido o mimeType, a este será dada preferência, o que é muito útil em dispositivos que lidam com um único formato de imagens. Tanto o tamanho quanto o mimeType da imagem apontada pela URL são retornados.


url

:

String

URL do produto



Bandeira (marca) do cartão

A bandeira do cartão atualmente retorna Elo.

Campos:

id

:

ID obrigatório

Identificador Global Único para este objeto


name

:

String obrigatório

Nome da bandeira


image

(


width:

Int

Caso fornecido, largura da imagem, em pixels.

height:

Int

Caso fornecido, altura da imagem, em pixels.

mimeType:

String

Caso fornecido, o tipo de arquivo desejado (mime-type).

)

:

ImageUrl

URL da imagem. Caso sejam providos sugestões de altura e largura (opcionais) para o tamanho a ser mostrado, o servidor irá retornar a URL para a imagem com o tamanho mais próximo ao requisitado. Caso seja provido o mimeType, a este será dada preferência, o que é muito útil em dispositivos que lidam com um único formato de imagens. Tanto o tamanho quanto o mimeType da imagem apontada pela URL são retornados.


url

:

String

URL da bandeira



Modo de captura (entrada) do cartão.

O modo de captura define como o cartão pode ser utilizado, exemplos tradicionais:

  • POS (Point of Sale, ou Ponto de Venda)

  • TEF (Transferência Eletrônica de Fundos)

  • Internet (lojas virtuais, e-commerce)

  • Telemarketing (centrais de venda por telefone)

  • ATM (Automated Teller Machine, ou Caixa Eletrônico)

Campos:

id

:

ID obrigatório

Identificador Global Único para este objeto


name

:

String obrigatório

Nome da Captura


code

:

Int obrigatório

Código Bancário da Captura

Nos sistemas tradicionais pode ser necessário transitar o código da captura, que é fornecido por este número.

Por exemplo:

  • OUTROS = 0

  • POS = 1

  • TEF = 2

  • INTERNET = 3

  • TELEMARKETING = 4

  • ATM = 5

  • E-COMMERCE = 7

  • CONTA CARTÃO ARMAZENADA = 10

  • CONTACTLESS = 81

  • MOBILE COMMERCE (MCOMMERCE) = 82

  • CONTACTLESS = 83

  • FALLBACK = 85

  • CONTACTLESS = 86

  • TARJA TOTAL = 90

  • VOICE RESPONSE UNIT (VRU) / (URA) = 91

  • BATCH DE AUTORIZAÇÕES = 92

  • BATCH DE AUTORIZAÇÕES CASH ACCESS = 91

  • CARTÃO COM CHIP SEM TRATAMENTO CVV = 95



Uso de um Cartão.

Define como as compras poderão ser realizadas, por exemplo:

  • Crédito à Vista

  • Débito

  • Parcelado pela loja

Campos:

id

:

ID obrigatório

Identificador Global Único para este objeto


name

:

String obrigatório

Nome do Uso


code

:

Int obrigatório

Código Bancário do Uso

Nos sistemas tradicionais pode ser necessário transitar o código do uso, que é fornecido por este número.

Por exemplo:

  • Crédito à Vista = 70

  • Débito = 71

  • Parcelado Loja = 72



Rede para utilização do Cartão

Cada cartão deve ser utilizado em uma rede, por exemplo para cartões Elo:

  • Elo para cartões domésticos;

  • Elo-Discovery para cartões internacionais.

Campos:

id

:

ID obrigatório

Identificador Global Único para este objeto


name

:

String obrigatório

Nome da Rede

Exemplos para Elo:

  • Elo para cartões domésticos;

  • Elo-Discovery para cartões internacionais.


image

(


width:

Int

Caso fornecido, largura da imagem, em pixels.

height:

Int

Caso fornecido, altura da imagem, em pixels.

mimeType:

String

Caso fornecido, o tipo de arquivo desejado (mime-type).

)

:

ImageUrl

URL da imagem. Caso sejam providos sugestões de altura e largura (opcionais) para o tamanho a ser mostrado, o servidor irá retornar a URL para a imagem com o tamanho mais próximo ao requisitado. Caso seja provido o mimeType, a este será dada preferência, o que é muito útil em dispositivos que lidam com um único formato de imagens. Tanto o tamanho quanto o mimeType da imagem apontada pela URL são retornados.


url

:

String

URL da rede



Entidade do Emissor de Cartão

Campos:

id

:

ID obrigatório

name

:

String obrigatório

legalName

:

String obrigatório

description

:

String

image

(


width:

Int

height:

Int

mimeType:

String

)

:

ImageUrl

legalIds

:

CompanyLegalIds obrigatório

contacts

:

lista obrigatória de CompanyContact obrigatório

addresses

:

lista obrigatória de Address obrigatório

url

:

String

cards

(


first:

Int

Limita a lista às primeiras entradas, caso provido. Se for null, a listagem é ilimitada. Utilizado em navegação para frente.

after:

String

Inicia após o cursor opaco, se provido. Utilizado em navegação para frente.

last:

Int

Limita a lista às últimas entradas, caso provido. Se for null, a listagem é ilimitada. Utilizado em navegação para trás.

before:

String

Inicia antes do cursor opaco, se provido. Utilizado em navegação para trás.

filter:

CardFilterInput

Aplica filtro, se provido.

)

:

CardsConnection

Consulta todos os objetos de cartão (Card) disponíveis no contexto.

Se executado por um portador de cartão, serão retornados todos os cartões que este possui e foram emitidos por este emissor.

Se executado por um emissor de cartão, serão retornados todos os cartões emitidos por este.

Em outros casos, como ao ser executado por um comerciante, um erro será produzido.



Metadados de cartão: como representar o cartão visualmente

Campos:

image

(


width:

Int

height:

Int

mimeType:

String

)

:

ImageUrl

URL da imagem. Caso sejam providos sugestões de altura e largura (opcionais) para o tamanho a ser mostrado, o servidor irá retornar a URL para a imagem com o tamanho mais próximo ao requisitado. Caso seja provido o mimeType, a este será dada preferência, o que é muito útil em dispositivos que lidam com um único formato de imagens. Tanto o tamanho quanto o mimeType da imagem apontada pela URL são retornados.


backgroundColor

:

String

Cor de fundo (background) em notação web padrão: ffffff (branco), ff0000 (vermelho), 00ff00 (verde), 0000ff (azul). Deve ser usado em conjunto com foregroundColor quando não é possível usar imagem.


foregroundColor

:

String

Cor de primeiro plano (foreground) em notação web padrão: ffffff (branco), ff0000 (vermelho), 00ff00 (verde), 0000ff (azul). Deve ser usado em conjunto com backgroundColor quando não é possível usar imagem.


issuer

:

String

Emissor de cartão, i.e.: "Um Banco" Deve ser usado quando não é possível utilizar imagem.

É o mesmo que consultar o BIN { issuer { name } }


brand

:

String

Bandeira do cartão, i.e: Elo Deve ser usado quando não é possível utilizar imagem.

É o mesmo que consultar o BIN { brand { name } }


product

:

String

Nome do produto associado ao cartão, i.e.: Nanquim, Grafite.

É o mesmo que consultar o BIN { product { name } }



Serviço disponível ao portador do cartão.

A Elo oferece aos portadores serviços como acesso à internet, estes são representados por este tipo.

Campos:

id

:

ID obrigatório

Identificador Global Único para este objeto


name

:

String obrigatório

Nome do serviço


description

:

String

Descrição do serviço


image

(


width:

Int

Caso fornecido, largura da imagem, em pixels.

height:

Int

Caso fornecido, altura da imagem, em pixels.

mimeType:

String

Caso fornecido, o tipo de arquivo desejado (mime-type).

)

:

ImageUrl

URL da imagem. Caso sejam providos sugestões de altura e largura (opcionais) para o tamanho a ser mostrado, o servidor irá retornar a URL para a imagem com o tamanho mais próximo ao requisitado. Caso seja provido o mimeType, a este será dada preferência, o que é muito útil em dispositivos que lidam com um único formato de imagens. Tanto o tamanho quanto o mimeType da imagem apontada pela URL são retornados.


url

:

String

URL do serviço


discounts

:

Discounts

Percentual de descontos



Representa um BIN (Bank Identification Number ou Número de Identificação do Banco) no sistema.

O BIN é relativo aos números iniciais de um cartão e identifica o emissor e produtos associados ao mesmo.

Cada bandeira tem faixas de BIN reservadas a seu uso, estas estão disponíveis como reserved na consulta binTable.

Porém o maior interesse é por BIN em uso (alocados), o qual carregará informações sobre o emissor (banco), financiamento (funding, se crédito, débito ou ambos), produtos (pagamentos à prazo, pré-pago, Cartão para construção civil - Construcard...) e mesmo serviços como emissão de seguros ou acesso à WiFi.

A tabela de BIN é dinâmica:

  • Conforme os cartões de um mesmo prefixo (BIN) vão sendo inutilizados e ficam sem usuários, o BIN pode ser então reciclado para um novo uso.

  • Conforme novos produtos são inseridos, um BIN previamente reservado e sem usuários será então alocado, entrando em uso.

Por isso é importante manter a tabela de BIN atualizada, vide consulta binTable. Para saber se a tabela foi atualizada utilize os campos de nome similares ao HTTP lastModified (data e horário da última modificação) e etag (entity tag ou etiqueta da entidade), que oferece um identificador único sobre a tabela, se ele mudou então a tabela mudou.

Campos:

number

:

String obrigatório

panSizeRange

:

IntRange obrigatório

funding

:

CardFunding obrigatório

product

:

CardProduct obrigatório

country

:

String obrigatório

isInternational

:

Boolean obrigatório

regexp

:

String obrigatório

isCompany

:

Boolean obrigatório

Se true, então o cartão é corporativo, ou seja, pessoa jurídica. Se false, então o cartão é para pessoas físicas.


isToken

:

Boolean obrigatório

Diz se o cartão é virtual (token, vide CardToken).

Tokens são muitas vezes compreendidos como "cartões virtuais" (VCN - Virtual Card Numbers), eles são associados a um cartão real e podem ter maior controle, como restrição de moeda, número de compras, valor das compras, categoria de comerciante e outros.

O maior uso de tokens é para reduzir problemas com segurança, seja de um comerciante ou portador.

Se true, então este BIN é utilizado para tokens ao invés de cartões físicos (plástico). Se false então este BIN é utilizado para cartões tradicionais, físicos (plástico).


brand

:

CardBrand obrigatório

Bandeira do Cartão

A bandeira responsável pelo Cartão. Para cartões da Elo, sempre será Elo.


allowedCaptures

:

lista obrigatória de CardCapture obrigatório

Modos de captura permitidos para o cartão.

Esta lista diz quais os modos de captura são permitidos para o cartão, por exemplo se POS então pode ser utilizado num ponto de venda (Point Of Sale), caso contrário ao tentar utilizá-lo com tal irá resultar em transação rejeitada.


usages

:

lista obrigatória de CardUsage obrigatório

Usos permitidos permitidos para o cartão.

Esta lista diz se o cartão pode ser utilizado para débito, para crédito à vista, crédito parcelado pela loja, dentre outros.


network

:

CardNetwork obrigatório

Rede para uso do Cartão.

Cada cartão deve ser utilizado em uma rede, a qual é listada neste campo. Por exemplo os cartões Elo utilizam as redes:

  • Elo: uso doméstico (isInternational = false);

  • Elo-Discovery: uso internacional.


issuer

:

CardIssuer obrigatório

Emissor do cartão.

Todo BIN está associado a um e apenas um emissor, o qual pode ser consultado com este campo para obtenção do identificador global único, razão social, nome fantasia, CNPJ, endereço, contatos e afins.


metadata

:

CardMetadata obrigatório

Metadados para apresentação do cartão ao usuário.

Metadados tais como:

  • imagem

  • cores Estes deverão ser utilizados para apresentação de um cartão ao usuário de modo a esclarecer a informação e evitar erros.


services

:

lista obrigatória de CardHolderService obrigatório

Serviços (benefícios) disponíveis ao portador do cartão.

Os serviços, também conhecidos como benefícios, ao portador. Por exemplo:

  • Seguro Viagem, para compra de passagens aéreas;

  • Proteção de Compra, para compra de bens;

  • Garantia Estendida, para compra de bens;

  • Acesso ao WiFi.


creditSettlementBankNumber

:

Int

Número do Banco liquidante da operação de Crédito

Indica qual o código do banco deverá ser utilizado para liquidar operações de crédito.

API Privada


debitSettlementBankNumber

:

Int

Número do Banco liquidante da operação de Crédito

Indica qual o código do banco deverá ser utilizado para liquidar operações de crédito.

API Privada



Representa um BIN (Bank Identification Number ou Número de Identificação do Banco) reservado no sistema.

Este BIN não está em uso no momento, porém tem alguns atributos reconhecidos os quais podem ser utilizados em sistemas antifraudes ou para provisionamentos diversos.

Campos:

number

:

String obrigatório

panSizeRange

:

IntRange obrigatório

funding

:

CardFunding obrigatório

product

:

CardProduct obrigatório

country

:

String obrigatório

isInternational

:

Boolean obrigatório

regexp

:

String obrigatório


Tabela de BINs.

Tabela de todos os BINs (Bank Identification Number ou Número de Identificação do Banco) no sistema, tanto os alocados (bins) quanto os reservados (reserved).

Os usuários da tabela são sistemas que frequentemente verificam números de cartão e seus atributos, por exemplo lojas virtuais (e-commerce).

A tabela tem "versão" (etag), bem como data e horário da última modificação, permitindo ao usuário identificar mudanças. Em geral as tabelas são modificadas semanalmente.

Campos:

lastModified

:

DateTime obrigatório

Data e horário da última modificação da tabela.

Pode ser utilizada para identificar que a tabela mudou. Seja fazendo uma consulta pela data e horário, seja fazendo a consulta binTable e passando a data e horário da última versão conhecida -- caso a tabela não tenha mudado, nada será retornado.


etag

:

String obrigatório

Etiqueta da Entidade (Entity Tag).

Similar ao uso em cabeçalhos HTTP, o ETag serve como um identificador que muda quando o conteúdo da tabela muda.

Assim como lastModified, pode ser utilizado para identificar alterações na tabela. Seja consultando pelo novo etag, seja fazendo consulta binTable e passando o etag anterior -- caso a tabela não tenha mudado, nada será retornado.


sizeRange

:

IntRange obrigatório

Tamanhos de BIN conhecidos.

A faixa de tamanhos dos números de dígitos que compõe BINs. Ou seja, ao consultar-se os BINs não deve-se fazer com um tamanho fixo (i.e: 6) e sim todos os tamanhos definidos nesta faixa.

No passado os BINs eram de apenas 4, hoje são de 6 dígitos, porém o mercado está migrando para até 9 dígitos nos próximos anos. Logo utilize a quantidade de dígitos parametrizada no seu código!

Exemplo: sizeRange { min: 6, max: 9 } informa que deve-se obter prefixos de tamanho 6, 7, 8 e 9 à partir do número do cartão e então buscá-los na tabela.


bins

:

lista obrigatória de BIN obrigatório

Listagem de BINs em uso (alocados).


reserved

:

lista obrigatória de ReservedBIN obrigatório

Listagem de BINs reservados, porém sem uso.


binsRegexp

:

String obrigatório

Expressão Regular que identifica BINs em uso (alocados).

A expressão regular retornada irá identificar o BIN (number) e o número de dígitos relativos ao panSizeRange de cada entrada.

Para comodidade do usuário da expressão regular, um grupo será retornado para o BIN encontrado. O número do grupo é indefinido pois vários são utilizados e construídos de forma automática. Porém um e apenas um grupo é retornado em caso de sucesso. Veja os exemplos abaixo para mais detalhes.

Por exemplo, considere uma Tabela de BINs com apenas duas entradas em uso (alocadas):

  • number: "509069" com panSizeRange: { min: 16, max: 16 };

  • number: "12345678" com panSizeRange: { min: 17, max: 19}.

A expressão regular será: ^(?:(12345678)\d{9,11}|(509069)\d{10})$. Caso identifique o BIN 12345678, por exemplo o cartão 12345678123456789, então o grupo 1 será retornado com o valor 12345678 (BIN). Caso identifique o BIN 509069, por exemplo o cartão 5090691234567890, então o grupo 2 será retornado com o valor 509069 (BIN). Caso outro BIN seja passado, ou o número de dígitos de um cartão não seja correspondente ao panSizeRange do BIN, então nenhum grupo será retornado e a expressão regular não encontrará nada.


reservedRegexp

:

String obrigatório

Expressão Regular que identifica BINs reservados, porém sem uso.

A expressão regular retornada irá identificar o BIN (number) e o número de dígitos relativos ao panSizeRange de cada entrada.

Para comodidade do usuário da expressão regular, um grupo será retornado para o BIN encontrado. O número do grupo é indefinido pois vários são utilizados e construídos de forma automática. Porém um e apenas um grupo é retornado em caso de sucesso. Veja os exemplos abaixo para mais detalhes.

Por exemplo, considere uma Tabela de BINs com apenas duas entradas reservadas (sem uso):

  • number: "509069" com panSizeRange: { min: 16, max: 16 };

  • number: "12345678" com panSizeRange: { min: 17, max: 19}.

A expressão regular será: ^(?:(12345678)\d{9,11}|(509069)\d{10})$. Caso identifique o BIN 12345678, por exemplo o cartão 12345678123456789, então o grupo 1 será retornado com o valor 12345678 (BIN). Caso identifique o BIN 509069, por exemplo o cartão 5090691234567890, então o grupo 2 será retornado com o valor 509069 (BIN). Caso outro BIN seja passado, ou o número de dígitos de um cartão não seja correspondente ao panSizeRange do BIN, então nenhum grupo será retornado e a expressão regular não encontrará nada.


allBinsRegexp

:

String obrigatório

Expressão Regular que identifica todos os BINs (alocados e reservados).

A expressão regular retornada irá identificar o BIN (number) e o número de dígitos relativos ao panSizeRange de cada entrada.

Para comodidade do usuário da expressão regular, um grupo será retornado para o BIN encontrado. O número do grupo é indefinido pois vários são utilizados e construídos de forma automática. Porém um e apenas um grupo é retornado em caso de sucesso. Veja os exemplos abaixo para mais detalhes.

Por exemplo, considere uma Tabela de BINs com apenas duas entradas reservadas (sem uso):

  • number: "509069" com panSizeRange: { min: 16, max: 16 };

  • number: "12345678" com panSizeRange: { min: 17, max: 19}.

A expressão regular será: ^(?:(12345678)\d{9,11}|(509069)\d{10})$. Caso identifique o BIN 12345678, por exemplo o cartão 12345678123456789, então o grupo 1 será retornado com o valor 12345678 (BIN). Caso identifique o BIN 509069, por exemplo o cartão 5090691234567890, então o grupo 2 será retornado com o valor 509069 (BIN). Caso outro BIN seja passado, ou o número de dígitos de um cartão não seja correspondente ao panSizeRange do BIN, então nenhum grupo será retornado e a expressão regular não encontrará nada.





Financiamento do cartão: crédito, débito, múltiplo, Alimentação e Refeição.


Valores possíveis:


CREDIT

Cartão de Crédito


DEBIT

Cartão de Débito


MULTIPLE

Cartão de Crédito e Débito (ambos simultaneamente).


MEAL

Cartão de benefícios (Refeição)


FOOD

Cartão de benefícios (Alimentação)