Usuário Provisóro

Permite o cadastro de usuários de forma simplificada facilitando a captura de dados de usuários.

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

Disponibilizando interfaces de entrada mais simplificadas com campos não obrigatórios, esta API fornece um conjunto de mutations graphQL para o cadastro rápido das informações de um usuário ou portador de cartão.

A captura desses dados pode auxiliar a área de negócios trazendo mais insumos para as tomadas de decisões estratégicas visando sempre a melhor experiência dos usuários dentro do ecossistema de APIs da Elo.

Para criação de um usuário provisório deve-se utilizar a mutation createProvisionedUser. Forneça o maior número de informações do usuário possível e para especificar a origem do cadastro utilize o campo origin. A mutation abaixo mostra a criação de um provisioned user.

mutation {
    createProvisionedUser(
        input: {
            clientMutationId: "123", 
            name: "name", 
            legalIds: {
                cpf: "123456789", 
                rg: {
                    number: "0978654322", 
                    issuerOrganization: "SSP", 
                    issuerState: "SP", 
                    issueDate: "2018-04-24"
                }
            }, 
            birthday: "1993-08-09", 
            gender: MALE, 
            maritalStatus: SINGLE, 
            income: {
                personal: 1000.01, 
                family: 1000.01, 
                currency: "BRL"
            }, 
            contacts: {
                type: PHONE, 
                context: "context",
                value: "+5527999365103"
            }, 
            addresses: {
                context: "Casa", 
                country: "BRA", 
                city: "Campinas", 
                state: "São Paulo", 
                stateAbbrev: "SP", 
                zip: "2343434", 
                district: "district", 
                kind: "AV.", 
                number: 123, 
                place: "Sao Jose dos baurus", 
                complement: "complement", 
                reference: "reference", 
                instructions: "Instructuions", 
                lon: 1232, 
                lat: 12121
            }
            origin: "Campanha USE Elo"
        }
    ) 
    {
        clientMutationId
        id
        name
    }
}

Para alterar os dados de um usuário já existente dentro do ecossistema de APIs, é possível utilizar a mutation updateProvisionedUser informando apenas os campos que devem ser alterados.

mutation {
  updateProvisionedUser(
        input: {
            clientMutationId: "232", 
            id: "5d83bdde-99bd-4ab7-bc5c-a1e5f8f8c244", 
            legalIds: {
                cpf: "1234567890", 
                rg: {
                    number: "0987654321", 
                    issuerOrganization: "SSP", 
                    issuerState: "SP", 
                    issueDate: "2018-04-24"
                }
            }, 
            birthday: "1993-08-09", 
            addresses: {
                number: 321, 
                country: "BRA", 
                state: "São Paulo", 
                city: "Campinas", 
                zip: "12312312", 
                place: "place"
            }, 
            contacts: {
                type: PHONE, 
                value: "+5527999365103"
            }            
        }
    ) 
    {
        clientMutationId
        user {
            id
            name
            legalIds {
                cpf { number }
            }
            contacts {
                type
                context
                value
                verified
            }
            addresses {
                context
                country
                city
                state
                zip
                district
                kind
                number
                place
                complement
                reference
                instructions
                lon
                lat
            }
            cards {
                id
                last4
                status { status }
            }
        }
        cards { id }
    }
}

A API oferece a opção da criação de um cartão para um usuário provisório. Para criar um cartão é necessário utilizar a função createProvisionedCard. Esta mutation é responsável por criar um novo cartão associado ao usuário. Para poder fazer uso dessa função o usuário provisório deve estar criado e ter cadastrado uma chave pública.

Para cadastrar uma chave pública use a mutation addPublicKeyToProvisionedUser.

mutation {
  addPublicKeyToProvisionedUser(
        input: {
            clientMutationId: "123", 
            userId: "5d83bdde-99bd-4ab7-bc5c-a1e5f8f8c244", 
            key: "{\"kty\":\"EC\", \"kid\":\"my-public-key-id-1\", \"x\":\"g_Sr4WwVDt5Qy3KonZyXqFwWykTR9KVMCt8Sx-dXSB8\",\"y\":\"ydSE-mUMtuhBTI_txDpd2ivb7e6FNzxq4e_18iHFZ2U\",\"crv\":\"P-256\"}", 
            format: JWK
        }
    ) 
    {
        clientMutationId
        user {
            id
            verified
            username
            name
            firstName
            lastName
            displayName
            legalIds {
                cpf { number }
            }
            birthday
            age
            gender
            maritalStatus
            income {
                personal
                family
                currency
            }
            contacts {
                type
                context
                value
                verified
            }
            addresses {
                context
                country
                city
                state
                zip
                district
                kind
                number
                place
                complement
                reference
                instructions
                lon
                lat
            }
        }
        publicKey {
            id
            key
            fingerprint
        }
    }
}

Para criar um cartão é necessário primeiro obter os dados sensíveis.O campo sensitive é o conteúdo sensível (Número do cartão, Nome do portador, Vencimento, etc) gerado a partir de um processo de assinatura e criptografia, cujo payload foi assinado a partir do uso de uma a chave privada do usuário e na sequência criptografado fazendo uso de uma chave pública do servidor. Saiba como obter o sensitive.

Após obtido os dados sensíveis do cartão, é necessário utilizar a mutation createProvisionedCard. Essa mutation cria um cartão para o usuário em questão.

mutation {
    createProvisionedCard(
        input: {
            clientMutationId: "1232", 
            userId: "5d83bdde-99bd-4ab7-bc5c-a1e5f8f8c244", 
            sensitive: "eyJhbGciOiJFQ0RILUVTIiwiZW5jIjoiQTEyOENCQy1IUzI1NiIsImVwayI6eyJ", 
            bin: "655500", 
            last4: "6378"
        }
    ) 
    {
        clientMutationId
        card {
            id
            last4
            bin {
                number
            }
            expiry {
                month
                year
            }
            status { status }
        }
    }
}

Para consultar os dados de um usuário provisório basta utilizar a query informando os dados desejados como mostra o exemplo abaixo:

query {
    provisionedUsers(filter: {name: "name", legalId: {cpf: ""}, bin: "", last4: ""}) {
        edges {
            node {
                id
                age
                name
                birthday
                gender
                maritalStatus
                income {
                    personal
                    family
                    currency
                }
            }
        }
    }
}

ProvisionedUserFilterInput

Entrada para filtragens de busca por usuários provisorio

Todos os campos especificados (não-null) são aplicados (comportamento AND), para obter comportamento OR, utilize várias consultas.

Parâmetros de entrada

name (String) Procura o usuário provisorio pelo seu name

legalId (LegalIdsInput) Procura o usuário provisorio pelo seu documento

bin (String) O tamanho do número em caracteres define o tamanho do prefixo utilizado. 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! Veja também panSizeRange, afinal quando o tamanho do prefixo muda, em geral muda-se também o tamanho total do cartão.

last4 (String) Últimos 4 dígitos do cartão, para ser mostrado ao usuário Pode ser nulo dependendo de permissões e acesso.

CardFilterInput

Entrada que filtra cartões a serem retornados

Parâmetros de entrada

status (CardStatus) Se não-nula, retorna apenas cartões com dado estado. Exemplo: ACTIVE Se null, retorna cartões em todos os estados.

usageConstraints (CardUsageConstraintsInput) Se não-nula, retorna apenas cartões com as dadas restrições de uso. Se null, retorna cartões com quaisquer restrições de uso.

cardHolderServiceId (ID) Se não-nula, retorna apenas cartões oferecendo um certo serviço (CardHolderService), referente a availableServices. Se null, retorna cartões que ofereçam quaisquer serviços.

funding (CardFunding) Se não-nula, retorna apenas cartões com dado financiamento. Exemplo: DEBIT Se null, retorna cartões em todos os tipos.

cardProductId (ID) Se não-nula, retorna apenas cartões de um certo produto (CardProduct). Se null, retorna cartões de todos os produtos.

cardBrandId (ID) Se não-nula, retorna apenas cartões de uma certa bandeira (CardBrand). Se null, retorna cartões de todas as bandeiras.

NOTA: em cardBrandId só possuí bandeira ELO disponível.

cardCaptureId (ID) Se não-nula, retorna apenas cartões que permitem uma dada captura (CardCapture). Se null, retorna cartões de todas as capturas.

cardUsageId (ID) Se não-nula, retorna apenas cartões de um certo uso (CardUsage). Se null, retorna cartões de todos os usos.

cardNetworkId (ID) Se não-nula, retorna apenas cartões de um certa rede (CardNetwork). Se null, retorna cartões de todas as redes.

cardIssuerId (ID) Se não-nula, retorna apenas cartões de um certo emissor (CardIssuer). Se null, retorna cartões de todos os emissores.

CardUsageConstraintsInput

Entrada de informações sobre como o cartão ou token podem ser usados.

Emissores, cartões e produtos podem impor restrições extras.

Parâmetros de entrada

maxUsage (Int) Número de vezes que o cartão pode ser usado.

-1 significa ilimitado null significa uso não definido.

expiry (DateTime) Uso é permitido até a data e horário de validade

allowedTxAmounts ([CardCurrencyRangeInput]) Quantias permitidas por transações permitidas (TX) como limites por moedas.

Cada moeda será listada no máximo uma vez.

Nenhuma conversão de moedas é executada. Se uma moeda não é listada, é porque não é autorizada.

Se null, é ilimitada.

allowedMerchants ([ID]) Lista de comerciantes autorizados.

Se null, é ilimitada.

allowedMerchantCategories ([MerchantCategoryRangeInput]) Série de categorias de comerciantes autorizadas, definidas por código ISO.

Se null, é ilimitada.

deniedMerchantCategories ([MerchantCategoryRangeInput]) Série de categorias de comerciantes proibidas, definidas por código ISO.

Se null, é ilimitada.

CardCurrencyRangeInput

Define limites operacionais para uma moeda.

Parâmetros de entrada

currency (String!) Código da moeda com 3 letras (ISO4217) Exemplo: EUR, USD, BRL...

min (Float) Valor mínimo ou null para ilimitado.

max (Float) Valor máximo ou null para ilimitado.

MerchantCategoryRangeInput

Série de códigos ISO18245 para categorias de comerciantes.

Também conhecido como MCC (Merchant Category Code), tem 4 dígitos.

Parâmetros de entrada

min (Int) Código ISO18245 mínimo a ser incluído na série.

max (Int) Código ISO18245 máximo a ser incluído na série.

TravelInsuranceFilter

Entrada que filtra Seguros Viagem (TravelInsurance) a serem retornados.

Parâmetros de entrada

status (CardHolderInsuranceStatus) Se não-nula, retorna apenas seguros com dado estado. Exemplo: ACTIVE. Se null, retorna seguros em todos os estados.

startDate (Date) Se não-nula, retorna apenas seguros posteriores à data (inclusive). Se null, retorna até o seguro mais antigo.

endDate (Date) Se não-nula, retorna apenas seguros anteriores à data (inclusive). Se null, retorna até o seguro mais recente.

originCountry (String) Se não-nula, retorna apenas seguros emitidos para o dado País de Origem da viagem. Se null, retorna seguros para todas as origens.

Código do país com 3 letras (ISO3166-alpha3). Exemplos: USA, BRA...

destinationCountry (String) Se não-nula, retorna apenas seguros emitidos para o dado País de Destino da viagem. Se null, retorna seguros para todos os destinos.

Código do país com 3 letras (ISO3166-alpha3). Exemplos: USA, BRA...

ExtendedWarrantyInsuranceFilter

Entrada que filtra Seguros de Garantia Estendida (ExtendedWarrantyInsurance) a serem retornados.

Parâmetros de entrada

status (CardHolderInsuranceStatus) Se não-nula, retorna apenas seguros com dado estado. Exemplo: ACTIVE. Se null, retorna seguros em todos os estados.

startDate (Date) Se não-nula, retorna apenas seguros posteriores à data (inclusive). Se null, retorna até o seguro mais antigo.

endDate (Date) Se não-nula, retorna apenas seguros anteriores à data (inclusive). Se null, retorna até o seguro mais recente.

categoryId (ID) Se não-nula, retorna apenas seguros de uma certa categoria de produtos. Se null, retorna seguros de todas as categorias de produtos.

Obtenha lista de categorias com extendedWarrantyProductCategories.

PurchaseProtectionInsuranceFilter

Entrada que filtra Seguros de Proteção de Compra de Produtos (PurchaseSecurityInsurance) a serem retornados.

Parâmetros de entrada

status (CardHolderInsuranceStatus) Se não-nula, retorna apenas seguros com dado estado. Exemplo: ACTIVE. Se null, retorna seguros em todos os estados.

startDate (Date) Se não-nula, retorna apenas seguros posteriores à data (inclusive). Se null, retorna até o seguro mais antigo.

endDate (Date) Se não-nula, retorna apenas seguros anteriores à data (inclusive). Se null, retorna até o seguro mais recente.

categoryId (ID) Se não-nula, retorna apenas seguros de uma certa categoria de produtos. Se null, retorna seguros de todas as categorias de produtos.

Obtenha lista de categorias com purchaseSecurityProductCategories.

SearchFilterInput

Entrada para filtragens de busca com informações textuais.

Parâmetros de entrada

filter (String) TODO: document filter language, something like Google or GMail

CardTransactionFilterInput

Entrada que filtra transações a serem retornadas.

Parâmetros de entrada

startTimestamp (DateTime) Se não-nula, retorna apenas transações à partir (inclusive) da data e horário dados. Se null, retorna transações até o início dos tempos.

endTimestamp (DateTime) Se não-nula, retorna apenas transações até (inclusive) a data e horário dados. Se null, retorna transações até o momento atual.

includeMerchantCategories ([MerchantCategoryRangeInput]) Se não-nula e não vazia, especifica série de códigos ISO de categorias a serem incluídas.

Se null ou vazia, não filtra por categoria de comerciantes (MCC).

excludeMerchantCategories ([MerchantCategoryRangeInput]) Se não-nula e não vazia, especifica série de códigos ISO de categorias a serem excluídas.

Se null ou vazia, não filtra por categoria de comerciantes (MCC).

status (CardTransactionStatus) Se não-nula, retorna apenas transações no dado estado. Se null, retorna transações em qualquer estado.

captureId (ID) Se não-nula, retorna apenas transações capturadas pelo dado método Se null, retorna transações capturadas por qualquer método.

Exemplos de método de captura: POS, TEF, Internet...

O id se refere ao CardCapture { id }

usageId (ID) Se não-nula, retorna apenas transações com o uso especificado. Se null, retorna transações com qualquer uso.

Exemplos de uso: Débito, Crédito à Vista, Crédito parcelado pela loja...

O id se refere ao CardUsage { id }

CardTransactionSummaryFilterInput

Entrada que filtra transações a serem consolidadas retornadas.

Parâmetros de entrada

startTimestamp (DateTime) Se não-nula, retorna apenas transações à partir (inclusive) da data e horário dados. Se null, retorna transações até o início dos tempos.

endTimestamp (DateTime) Se não-nula, retorna apenas transações até (inclusive) a data e horário dados. Se null, retorna transações até o momento atual.

includeMerchantCategories ([MerchantCategoryRangeInput]) Se não-nula e não vazia, especifica série de códigos ISO de categorias a serem incluídas.

Se null ou vazia, não filtra por categoria de comerciantes (MCC).

excludeMerchantCategories ([MerchantCategoryRangeInput]) Se não-nula e não vazia, especifica série de códigos ISO de categorias a serem excluídas.

Se null ou vazia, não filtra por categoria de comerciantes (MCC).

CardFraudTransactionFilterInput

Entrada que filtra transações fraudulentas a serem retornadas.

Parâmetros de entrada

cardTransactionId (ID) Identificador Global Único para CardTransaction.

O id se refere ao CardTransaction { id }

codeCapture (Int) Tipo de Captura cardCapture { code: Int }.

codeUsage (Int) Uso do Cartão CardUsage { code: Int }.

legalIds (CompanyLegalIdsInput) Os documentos legais para determinar o comerciante (i.e: CNPJ)

Ao menos um documento legal deverá ser especificado para que esta consulta retorne o comerciante.

iso (Int) ISO18245

startTimestamp (DateTime) Se não-nula, retorna apenas transações fraudulentas à partir (inclusive) da data e horário dados. Se null, retorna transações fraudulentas até o início dos tempos.

endTimestamp (DateTime) Se não-nula, retorna apenas transações fraudulentas até (inclusive) a data e horário dados. Se null, retorna transações fraudulentas até o momento atual.

CompanyLegalIdsInput

Entrada para CompanyLegalIds

Parâmetros de entrada

cnpj (String) Número CNPJ sem hífen ou pontos

TrackFilter

Filtros para as trilha do cartão.

Parâmetros de entrada

type (TrackType!)

key (String!)

CreateProvisionedUserInput

Entrada para mutação createProvisionedUser().

Nota: não existe um campo image a ser enviado, para tal utilize a mutação setImage().

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String) Identificador de ProvisionedUser opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

name (String) Nome completo do portador como nos documentos oficiais (RG, CPF)

legalIds (LegalIdsInput) Todos os documentos legais de identificação do usuário.

birthday (Date) Data de nascimento

gender (Gender) Masculino ou Feminino, conforme documentos oficiais

maritalStatus (MaritalStatus) Estado civil

income (PersonYearlyIncomeInput) Renda anual do usuário (individual e familiar).

occupationId (ID) Profissão do usuário.

Utilize valores já conhecidos e retornados na consulta personOccupations, membros id.

Enviar uma ocupação desconhecida irá resultar em erro.

contacts ([PersonContactInput]) Contatos do usuário

addresses ([AddressInput]) Endereços postais

origin (String) Identifica a origem(campanhã) do cadastro do usuário.

UpdateProvisionedUserInput

Entrada para mutação UpdateProvisionedUser().

Nota: não existe um campo image a ser enviado, para tal utilize a mutação setImage().

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String) Identificador de ProvisionedUser opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

id (String!) Identificador global único referente ao usuário a ser modificado

legalIds (LegalIdsInput) Todos os documentos legais de identificação do usuário.

birthday (Date) Data de nascimento

gender (Gender) Masculino ou Feminino, conforme documentos oficiais

maritalStatus (MaritalStatus) Estado civil

income (PersonYearlyIncomeInput) Renda anual do usuário (individual e familiar).

occupationId (ID) Profissão do usuário.

Utilize valores já conhecidos e retornados na consulta personOccupations, membros id.

Enviar uma ocupação desconhecida irá resultar em erro.

contacts ([PersonContactInput]) Contatos do usuário

addresses ([AddressInput]) Endereços postais

card (CreateProvisionedCardInput) O cartão criado e associado ao portador.

AddPublicKeyToUserInput

Entrada para mutação addPublicKeyToUser()

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String) Identificador de cliente opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

userId (ID!) Identificador global único do Usuário a adicionar chave pública

key (String!) Conteúdo da chave pública. O formato é especificado em format.

Caso a chave já esteja associada ao usuário ela não será adicionada novamente e a mutação retornará a publicKey já existente, com o mesmo id.

format (CryptoKeyFormat) Formato da chave key.

Se null, tenta descobrir à partir do conteúdo de key.

CreateProvisionedCardInput

Entrada para mutação createProvisionedCard().

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String) Identificador de cliente opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

userId (String!) Identificador global único referente ao usuário.

sensitive (String) Conteúdo sensível (número do cartão, código de verificação e validade) o qual foi assinado e então cifrado conforme a estrutura a seguir.

Estrutura de assinatura e criptografia:

  JWE.Encrypt(recipient=ServerKey, format=compact,
      JWS.Sign(issuer=UserKey, format=compact,
          JSON.Stringify(CardSensitiveInput)
      )
  )

Ou seja, os dados conforme o esquema JSON CardSensitiveInput devem ser serializados e então assinados utilizando JSON Web Signature (JWS) em formato compacto e então cifrados utilizando JSON Web Encryption (JWE) também em formato compacto. O resultado final deve ser utilizado como valor deste parâmetro.

O esquema define as seguintes chaves para o objeto de entrada (CardSensitiveInput):

  • pan: O número da conta primária (Primary Account Number), também conhecido como \"número do cartão\" físico. Exemplo: "1234567890123456"
  • expiry: Data de validade do cartão, ou seja, quando ele expira. É um objeto composto pelas chaves month e year descritas a seguir. Exemplo: {"month": 2, "year": 2020}
    • month: Mês da validade do cartão. Número inteiro entre 1 (Janeiro) e 12 (Dezembro).
    • year: Ano da validade do cartão. Número inteiro com 4 dígitos (2017, não 17).
  • name: Nome do portador do cartão. Exemplo: "João da Silva".

    A autorização é feita com os campos csc ou authCode e seus respectivos horários de entrada. Note que apenas um deles deve ser especificado:

JSON Schema: CardSensitiveInput.json

O número do cartão (pan) será utilizado para descoberta dos demais campos do cartão, como availableServices, bin, funding, product, isInternational, isCompany, isToken, brand, allowedCaptures, usages, network, issuer e metadata.

bin (String) O tamanho do número em caracteres define o tamanho do prefixo utilizado. 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! Veja também panSizeRange, afinal quando o tamanho do prefixo muda, em geral muda-se também o tamanho total do cartão.

last4 (String) Últimos 4 dígitos do cartão, para ser mostrado ao usuário Pode ser nulo dependendo de permissões e acesso.

billingAddress (AddressInput) Endereço de cobrança do cartão.

usageConstraints (CardUsageConstraintsInput) Restrições de uso do cartão.

Caso indisponível ou sem restrições, usar null.

CardStatusInterface

Interface que todo estado de cartão (CardStatus) deve implementar

Parâmetros de entrada

status (CardStatus!) O estado

SocialNetworkInterface

Interface comum às Redes Sociais

Parâmetros de entrada

provider (String!) Nome do provedor da rede social, ex: Facebook, Twitter...

username (String!) Nome de usuário na rede social

provisionedUsers (ProvisionedUsersConnection)

Query (consulta) de usuários provisorio.

Parâmetros de entrada

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 (ProvisionedUserFilterInput) Aplica filtro, se provido.

Parâmetros de saída

pageInfo (PageInfo!) Cursor opaco para ser usado com queries (consultas) after ou before.

edges ([ProvisionedUsersEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

ProvisionedUsersConnection

Conexão de ProvisionedUsers em conformidade com o Relay.

Parâmetros de entrada

pageInfo (PageInfo!) Cursor opaco para ser usado com queries (consultas) after ou before.

edges ([ProvisionedUsersEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

PageInfo

PageInfo compatível com Relay.

Parâmetros de entrada

hasPreviousPage (Boolean!)

hasNextPage (Boolean!)

startCursor (String)

endCursor (String)

ProvisionedUsersEdge

Aresta de conexão contendo um ProvisionedUsers em conformidade com o Relay.

Parâmetros de entrada

cursor (String!) Cursor opaco para ser usado com queries (consultas) after ou before.

node (ProvisionedUser) O objeto User que compõe esta aresta de conexão.

ProvisionedUser

Usuário Provisorio do Sistema Disponivel para receber dados parciais do cadastro de User

API Privada

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

username (String) Nome do usuário para acesso ao sistema

name (String) Nome completo do portador como nos documentos oficiais (RG, CPF)

legalIds (LegalIds) Todos os documentos legais de identificação do usuário.

birthday (Date) Data de nascimento

age (Int) Idade em anos

gender (Gender) Masculino ou Feminino, conforme documentos oficiais

maritalStatus (MaritalStatus) Estado civil

income (PersonYearlyIncome) Renda anual do usuário (individual e familiar).

occupation (PersonOccupation) Profissão do usuário.

Por padrão adota-se a língua de quem faz a requisição, porém uma diferente pode ser requisitada e está será utilizada, ou a mais próxima disponível. O formato é: en_US (Inglês dos EUA), en (Inglês genérico), pt_BR (Português do Brasil), pt (Português genérico). O formato é o mesmo de IETF language tag.

contacts ([PersonContact]) Contatos do usuário

addresses ([Address]) Endereços postais

cards ([Card]) O cartão criado e associado ao portador.

cardTokens ([CardToken]) O token criado, seu PAN e CSC (Código de Segurança) são retornados usando seu membro sensitive.

migrated (Boolean!) Identifica se o usuário foi migrado para base de cadastro de Portador.

origin (String) Identifica a origem(campanhã) do cadastro do usuário.

agreements ([UserAgreement]) Termos de uso aceitos pelo usuário

LegalIds

Toda a possível identificação legal de uma pessoa ou empresa

Parâmetros de entrada

cnpj (CNPJ)

cpf (CPF)

rg (RG)

CNPJ

CNPJ: Cadastro Nacional Pessoas Jurídicas

Parâmetros de entrada

number (String!) número do CNPJ (dígitos) sem hífen ou pontos.

CPF

CPF: Cadastro Pessoa Física

Parâmetros de entrada

number (String!) número do CPF (dígitos) sem hífen ou pontos.

RG

RG: documento de Registro Geral

Parâmetros de entrada

number (String!) número do RG (dígitos) sem hífen ou pontos.

issuerOrganization (String) organização emissora do documento (exemplo: SSP)

issuerState (String) estado de emissão do documento (exemplo: SP)

issueDate (Date) data de emissão do documento

PersonYearlyIncome

Renda anual de uma pessoa física (individual e familiar).

Parâmetros de entrada

personal (Float) Renda anual pessoal (individual) da pessoa física.

family (Float) Renda anual total da família da pessoa física.

currency (String) Moeda associada aos valores informados.

Código da moeda com 3 letras ISO4217 Exemplo: EUR, USD, BRL...

PersonOccupation

Profissão (ocupação) de uma pessoa física.

Parâmetros de entrada

id (ID!) Identificador opaco da Profissão

Deve ser informado como entrada em mutações que precisam de profissão.

display (String!) Texto a ser exibido ao usuário em formulários e consultas.

Este texto é localizado (traduzido) para a linguagem informada na consulta.

PersonContact

Ítem de contato com pessoa física, como email ou telefone...

Com o intuito de manter a privacidade, o campo value pode ser mascarado.

Parâmetros de entrada

type (PersonContactType!) Tipo designa como interpretar o valor, podendo ser telefone, email, ou aplicativo de mensagens instantâneas.

context (String) Contexto do contato, que varia com o tipo:

  • Se o tipo for PHONE ou EMAIL, este poderia ser: vendas, suporte ...
  • Se o tipo for IM, pode ser: skype, whatsapp, facebook messenger...
  • Se for OTHER, pode ser qualquer texto

value (String!) Valor do contato. Exemplos: +12345678 para telefone, `user@server.com` para email, etc.

Este campo pode ser transformado dependendo de regras de acesso e permissões. Um comerciante pode receber valores mascarados com o intuito de manter a privacidade da pessoa física. Um exemplo seria receber apenas os últimos 4 dígitos do telefone, ou apenas as primeiras letras do email seguida do domínio.

verified (VerifiedStatus) O processo de verificação é feito por nosso sistema enviando uma mensagem ao contato e então pedindo que a chave enviada seja reenviada ao sistema.

NOTA: apenas os tipos de contatos PHONE e EMAIL são verificáveis. Os demais retornarão sempre NOT_APPLICABLE.

Address

Endereço Físico Mundial, que pode ser usado para envios ou contas

Parâmetros de entrada

context (String) Contexto do endereço, por exemplo: Casa, Trabalho, Matriz, Filial

Análogo a campo de mesmo nome em PersonContact e CompanyContact.

country (String!) Código do país com 3 letras (ISO3166-alpha3). Exemplos: USA, BRA...

city (String!) Nome da cidade em UTF-8

state (String) Nome do estado por completo ou abreviado (opcional).

Abreviações de estados podem não estar disponíveis para alguns países, casos em que o nome por completo é retornado.

zip (String) Código postal (opcional)

district (String) Distrito opcional

kind (String) O tipo deve ser Av. (Avenida), R. (Rua), Rd. (Rodovia)...

number (Int) Número da construção

place (String!) Nome da via, para ser usado em conjunto com kind e number, compondo a primeira linha de endereço.

complement (String) Complemento opcional, como número de apartamento.

reference (String) Ponto de referência (exemplo: próximo ao posto)

instructions (String) Instruções (exemplo: autorização do receptor)

lon (Float) Longitude, opcional: em graus.

Contém a longitude caso seja manualmente provido ou automaticamente descoberto à partir do endereço. Caso não seja possível prover, será null.

lat (Float) Latitude, opcional: em graus.

Contém a latitude caso seja manualmente provido ou automaticamente descoberto à partir do endereço. Caso não seja possível prover, será null.

Card

Um cartão de crédito ou débito.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

sensitive (String) Conteúdo sensível o qual foi assinado e então cifrado conforme a estrutura:

  JWE.Encrypt(recipient=ServerKey, format=compact,
      JWS.Sign(issuer=UserKey, format=compact,
          JSON.Stringify(CardInterfaceSensitive)
      )
  )

Para obter os dados sensíveis, faça o processo reverso:

  JSON.Parse(payload of
      JWS.Verify(payload of
          JWE.Decrypt(sensitive)
      )
  )

Ou seja, os dados conforme o esquema JSON CardInterfaceSensitive devem ser decifrados utilizando JSON Web Encrypt (JWE) e então ter sua assinatura verificada por JSON Web Signature (JWS) e então interpretados como uma string JSON.

O esquema define as seguintes chaves para o objeto resultante da decodificação (CardInterfaceSensitive):

  • pan: O número da conta primária (Primary Account Number), também conhecido como \"número do cartão\" (físico ou virtual). Exemplo: "1234567890123456"
  • expiry: Data de validade do cartão, ou seja, quando ele expira. É um objeto composto pelas chaves month e year descritas a seguir. Exemplo: {"month": 2, "year": 2020}
    • month: Mês da validade do cartão. Número inteiro entre 1 (Janeiro) e 12 (Dezembro).
    • year: Ano da validade do cartão. Número inteiro com 4 dígitos (2017, não 17).
  • name: Nome do portador do cartão. Exemplo: "João da Silva".
  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico. É opcional, alguns sistemas não retornam o código de segurança por meio eletrônico e este deve ser consultado no cartão físico; para tokens de cartões virtuais (Virtual Card Number - VCN) pode ser retornado apenas na mutação createCardToken. Exemplo: "123".

    JSON Schema: CardInterfaceSensitive.json

    Nota: pode ser nulo por falta de permissões.

last4 (String) Últimos 4 dígitos do cartão, para ser mostrado ao usuário

Pode ser nulo dependendo de permissões e acesso.

expiry (CardExpiry) Data de validade do cartão

Pode ser nulo dependendo de permissões e acesso.

holder (CardHolder) Nome e contato do portador do cartão

Pode ser nulo dependendo de permissões e acesso.

billingAddress (Address) Endereço para conta

Pode ser nulo dependendo de permissões e acesso.

status (CardStatusInterface!) Se o cartão é inativo, ativo ou suspenso.

Pode ser CardStatusInactive, CardStatusActive ou CardStatusSuspended. Use fragmentos para pegar campos extras.

usageConstraints (CardUsageConstraints) Como o cartão pode ser usado

availableServices ([CardHolderService]) Serviços (benefícios) disponíveis ao portador deste cartão.

Para listagem dos serviços em uso, veja usedServices.

Pode ser null em caso de falta de permissão.

usedServices ([CardHolderService]) Serviços (benefícios) em uso pelo portador deste cartão.

Para listagem de todos os serviços disponíveis, veja availableServices.

Pode ser null em caso de falta de permissão.

bin (BIN) Informações do BIN do cartão.

BIN (Bank Identification Number ou Número de Identificação do Banco) elucida várias propriedades do cartão, muitas delas replicadas na própria interface do cartão para facilidade de acesso.

Pode ser null em caso de falta de permissão.

funding (CardFunding) Qual o financiamento do cartão: Crédito, Débito ou Múltiplo (ambos)

Pode ser null em caso de falta de permissão.

product (CardProduct) Produto associado ao Cartão.

Cada cartão é associado a um tipo de produto. Por exemplo os cartões Elo utilizam os produtos:

  • Básico
  • Clássico
  • Corporativo
  • Grafite
  • Nanquim
  • Viagem
  • Pré-pago

    Pode ser null em caso de falta de permissão.

isInternational (Boolean) Diz se o cartão é de uso internacional.

Se true, então o cartão é de uso internacional e doméstico. Se false, então o cartão só permite uso doméstico.

Pode ser null em caso de falta de permissão.

isCompany (Boolean) Diz se o cartão é corporativo (pessoa jurídica) ou pessoa física.

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

Pode ser null em caso de falta de permissão.

isToken (Boolean) 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).

Pode ser null em caso de falta de permissão.

brand (CardBrand) Bandeira do Cartão

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

Pode ser null em caso de falta de permissão.

allowedCaptures ([CardCapture]) 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.

Pode ser null em caso de falta de permissão.

usages ([CardUsage]) 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.

Pode ser null em caso de falta de permissão.

network (CardNetwork) 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.

    Pode ser null em caso de falta de permissão.

issuer (CardIssuer) 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.

Pode ser null em caso de falta de permissão.

metadata (CardMetadata) 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.

    Pode ser null em caso de falta de permissão.

trackings ([Track]) Só será retornado os dados caso seja um CardIssuer realizando a consulta, caso outro tipo de usuário faça essa consulta o campo deve retornar vazio.

transactions (CardTransactionsConnection) Consulta transações deste cartão.

A consulta paginada permite obter transações deste cartão com um filtro opcional.

Ao ser chamado por um Merchant (comerciante), apenas suas transações com este cartão serão exibidas (filtro implícito).

Pode ser null em caso de falta de permissão.

transactionsSummary ([CardTransactionCategorySummary]) Retorna lista de sumários de transações por categorias de comerciante.

Ao invés de retornar todas as transações e seus campos conforme disponível em transactions(), esta consulta segmenta por MCC e retorna uma entrada por cada categoria, com o número de transações e o valor final em BRL (R$).

Note que apenas transações aprovadas são listadas.

fraudTransactions (CardFraudTransactionsConnection)

queueFraudTransactions (CardFraudTransactionsConnection)

CardExpiry

Validade do cartão: Mês e Ano

Parâmetros de entrada

month (Int!) Mês - Janeiro é 1, Dezembro é 12

year (Int!) Ano - 4 dígitos, exemplo: 2017, não 17.

CardHolder

Portador de cartão

Usualmente uma pessoa

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

name (String) Nome completo do portador como nos documentos oficiais (RG, CPF)

firstName (String) Primeiro nome do portador

lastName (String) Último nome do portador

displayName (String) Nome de usuário a ser exibido (exemplo: encurtado, alias...)

companyName (String) Nome da empresa.

Para cartões corporativos (pessoa jurídica), este campo informa o nome fantasia da empresa. Para a razão social, veja companyLegalName.

Para cartões de pessoa física será sempre null.

companyLegalName (String) Nome legal da empresa, como escrito em documentos.

Para cartões corporativos (pessoa jurídica), este campo informa a razão social da empresa. Para nome fantasia, veja companyName

Para cartões de pessoa física será sempre null.

legalIds (LegalIds) Todos os documentos legais de identificação de empresas ou pessoas.

birthday (Date) Data de nascimento

age (Int) Idade em anos

gender (Gender) Masculino ou Feminino, conforme documentos oficiais

maritalStatus (MaritalStatus) Estado civil

income (PersonYearlyIncome) Renda anual do portador (individual e familiar).

Este campo é informacional e pode ser utilizado no preenchimento de formulários de outros serviços, por exemplo para emissão de seguros.

occupation (PersonOccupation) Profissão do portador.

Este campo é informacional e pode ser utilizado no preenchimento de formulários de outros serviços, por exemplo para emissão de seguros.

Por padrão adota-se a língua de quem faz a requisição, porém uma diferente pode ser requisitada e está será utilizada, ou a mais próxima disponível. O formato é: en_US (Inglês dos EUA), en (Inglês genérico), pt_BR (Português do Brasil), pt (Português genérico). O formato é o mesmo de IETF language tag.

image (ImageUrl) URL para foto de perfil. 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.

contacts ([PersonContact]) Contatos do portador de cartão

addresses ([Address]) Endereço postal

wallets ([Wallet]) Carteiras em posse deste portador de cartão.

cards (CardsConnection) Cartões em posse.

Lista todos os cartões de um portador utilizando paginação e um filtro opcional.

Note que nem todos os campos de um cartão serão retornados pois estes têm privacidade restrita ao portador, emissor ou demais entidades autorizadas pela plataforma.

Opcionalmente pode-se utilizar o filter para selecionar apenas cartões de um certo emissor, produto, que oferece algum serviço ou que tenha alguma restrição de uso.

travelInsurances (TravelInsurancesConnection) Seguros Viagem relacionados ao portador.

Lista todos os seguros viagem relacionados ao portador utilizando paginação e um filtro opcional.

A ordem da listagem é do mais recente para o mais antigo.

Opcionalmente pode-se utilizar o filter para selecionar apenas seguros ativos, expirados, cancelados e limitar a um certo intervalo de datas.

extendedWarrantyInsurances (ExtendedWarrantyInsurancesConnection) Seguros de Garantia Estendida relacionados ao portador.

Lista todos os seguros de extensão de garantia de produtos relacionados ao portador utilizando paginação e um filtro opcional.

A ordem da listagem é do mais recente para o mais antigo.

Opcionalmente pode-se utilizar o filter para selecionar apenas seguros ativos, expirados, cancelados e limitar a um certo intervalo de datas.

purchaseProtectionInsurances (PurchaseProtectionInsurancesConnection) Seguros de Proteção de Compra relacionados ao portador.

Lista todos os seguros de proteção de compra de produtos relacionados ao portador utilizando paginação e um filtro opcional.

A ordem da listagem é do mais recente para o mais antigo.

Opcionalmente pode-se utilizar o filter para selecionar apenas seguros ativos, expirados, cancelados e limitar a um certo intervalo de datas.

ImageUrl

URL de imagem com tamanho e mimeType.

Parâmetros de entrada

url (String!) URL para acessar a imagem

width (Int!) largura em pixels

height (Int!) altura em pixels

mimeType (String!) Tipo do arquivo na convenção (MIME - Multipurpose Internet Mail Extensions), como image/png, image/jpeg

Wallet

Carteira digital (Digital Wallet)

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

name (String!) Nome da carteira

holder (CardHolder!) Nome e contato do portador

cards (CardsConnection) Consulta todos os cartões disponíveis no contexto.

Se executado por um portador de cartão, então retorna todos os cartões contidos na carteira.

Caso contrário, se requisitado por emissores ou comerciantes, produz um erro.

CardsConnection

Conexão de Card em conformidade com o Relay.

Parâmetros de entrada

pageInfo (PageInfo!) Conexão de Card em conformidade com o Relay.

edges ([CardsEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

CardsEdge

Aresta de conexão contendo um Card em conformidade com o Relay.

Parâmetros de entrada

cursor (String!) Cursor opaco para ser usado com queries (consultas) after ou before.

node (Card) O objeto Card que compõe essa aresta conexão.

TravelInsurancesConnection

Conexão de TravelInsurance em conformidade com o Relay.

Parâmetros de entrada

pageInfo (PageInfo!) Cursor opaco para ser usado com queries (consultas) after ou before.

edges ([TravelInsurancesEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

TravelInsurancesEdge

Aresta de conexão contendo um TravelInsurance em conformidade com o Relay.

Parâmetros de entrada

cursor (String!) Cursor opaco para ser usado com queries (consultas) after ou before.

node (TravelInsurance) O objeto TravelInsurance que compõe esta aresta de conexão.

TravelInsurance

Seguro de Viagem para portadores de cartão ou dependentes.

Cada instância de seguro viagem é correspondente a uma chamada de createTravelInsurance(), atrelada a um portador de cartões e o BIN que oferece tal serviço (benefício), além de ter um viajante associado (o segurado) e uma lista de beneficiários.

Para viagens com múltiplos viajantes, um seguro de viagem deve ser emitido para cada viajante, ou seja, uma chama de createTravelInsurance() para cada viajante, resultando em um TravelInsurance para cada um.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

cardHolder (CardHolder!) O Portador, segurado primário da viagem.

O serviço (benefício) de seguro de viagem é oferecido para determinados produtos (i.e: Cartões Elo Nanquim) ao portador do cartão e extensível a demais segurados que viajarão em conjunto.

Em caso de viagem com múltiplos viajantes, o cardHolder será o mesmo, porém os dados do viajante (traveler) listados neste seguro serão referentes ao viajante segurado.

bin (BIN!) O BIN (Bank Identification Number) referente ao cartão que ofereceu o seguro.

O serviço (benefício) de seguro é oferecido para determinados produtos (i.e: Cartões Elo Nanquim), o qual é determinado pelo seu BIN.

merchant (MerchantInsurance) Informações do comerciante.

journey (Journey!) Dados da Viagem.

startDate (Date!) A data inicial da cobertura.

A data inicial é computada automaticamente como a data de emissão do seguro.

endDate (Date!) A data final da cobertura.

A data final é computada automaticamente à partir da data da nota fiscal (invoiceDate) acrescida dos dias da proteção escolhidos (securityDays).

companyInsurance (String!) Seguradora responsável pelo seguro.

BIN

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.

Parâmetros de entrada

number (String!) Número desta entrada, único na tabela.

O tamanho do número em caracteres define o tamanho do prefixo utilizado. 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!

Veja também panSizeRange, afinal quando o tamanho do prefixo muda, em geral muda-se também o tamanho total do cartão.

panSizeRange (IntRange!) Define os tamanhos de número de cartão (PAN) necessários para este BIN. 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.

funding (CardFunding!) Qual o financiamento do cartão: Crédito, Débito ou Múltiplo (ambos).

product (CardProduct!) Produto associado ao Cartão.

Cada cartão é associado a um tipo de produto. Por exemplo os cartões Elo utilizam os produtos:

  • Básico
  • Clássico
  • Corporativo
  • Grafite
  • Nanquim
  • Viagem
  • Pré-pago

country (String!) Código do país com 3 letras (ISO3166-alpha3). Exemplos: USA, BRA...

País de origem do cartão, ou seja, onde é domiciliado -- é considerado doméstico.

O cartão só poderá ser utilizado neste país caso isInternational for false.

isInternational (Boolean!) Diz se o cartão é de uso internacional. Se true, então o cartão é de uso internacional e doméstico. Se false, então o cartão só permite uso doméstico e só poderá ser utilizado no país especificado em country.

regexp (String!) Expressão Regular que identifica este BIN em particular. A expressão regular retornada irá identificar o BIN (number) e o número de dígitos relativos ao panSizeRange.

Por exemplo, para o number: "509069" com panSizeRange: { min: 16, max: 16 } a expressão regular será: ^509069\d{10}$. Já para um fictício number: "12345678" com panSizeRange: { min: 17, max: 19}, a expressão regular será ^12345678\d{9,11}$

isCompany (Boolean!) Diz se o cartão é corporativo (pessoa jurídica) ou pessoa física.

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!) 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!) Bandeira do Cartão

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

allowedCaptures (CardCapture!) 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 (CardUsage!) 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!) 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!) 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!) 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 (CardHolderService!) 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

IntRange

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.

Parâmetros de entrada

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

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

CardProduct

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

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

code (CodeProduct!) Código que identifica produto.

name (String!) Nome do produto.

Exemplos de Produtos Elo:

  • Básico
  • Clássico
  • Corporativo
  • Grafite
  • Nanquim
  • Viagem
  • Pré-pago

image (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

CardBrand

Bandeira (marca) do cartão

A bandeira do cartão atualmente retorna Elo.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

name (String!) Nome da bandeira

image (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

CardCapture

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)

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

name (String!) Nome da Captura

code (Int!) 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:

  • POS = 1
  • TEF = 2
  • Internet = 3
  • Telemarketing = 4
  • ATM = 5

CardUsage

Uso de um Cartão.

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

  • Crédito à Vista
  • Débito
  • Parcelado pela loja

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

name (String!) Nome do Uso

code (Int!) 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

CardNetwork

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.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

name (String!) Nome da Rede

Exemplos para Elo:

  • Elo para cartões domésticos;
  • Elo-Discovery para cartões internacionais.

image (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

CardIssuer

Entidade do Emissor de Cartão

Parâmetros de entrada

id (ID!) Identificador Global Único para o objeto.

name (String!) Nome visível publicamente. Normalmente nome bem conhecido, marca, etc.

legalName (String!) Nome legal, como escrito em documentos.

description (String) Descrição da empresa para ser apresentado a usuários.

image (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.

legalIds (CompanyLegalIds!) Todos os documentos legais de identificação da empresa.

contacts (CompanyContact!) Contatos da empresa.

addresses (Address!) Endereço físico da empresa.

url (String) Endereço Virtual (Uniform Resource Locator).

cards (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.

CompanyLegalIds

Toda a possível identificação legal de uma empresa.

Parâmetros de entrada

cnpj (CNPJ)

CompanyContact

Ítem de contato com a empresa, como email ou telefone...

Parâmetros de entrada

type (CompanyContactType!) Tipo designa como interpretar o valor, podendo ser telefone, email, ou aplicativo de mensagens instantâneas.

context (String) Contexto do contato, que varia com o tipo:

  • Se o tipo for PHONE ou EMAIL, este poderia ser: vendas, suporte ...
  • Se o tipo for IM, pode ser: skype, whatsapp, facebook messenger...
  • Se for OTHER, pode ser qualquer texto

value (String!) Valor do contato. Exemplos: +12345678 para telefone, `user@server.com` para email, etc.

CardMetadata

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

Parâmetros de entrada

image (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 } }

CardHolderService

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.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

name (String!) Nome do serviço

description (String) Descrição do serviço

image (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

Discounts

Informa o percentual de descontos (ex: 100% de desconto, 50% de desconto, ou se não tem desconto)

Parâmetros de entrada

holderOrAdditional (Int) Percentual de desconto aplicado para o portador ou adicional.

companion (Int) Percentual de desconto aplicado ao acompanhante.

MerchantInsurance

Parâmetros de entrada

legalId (String!) Documento Legal (CNPJ ou CPF) que identifica o comerciante.

Apenas dígitos, sem hífen ou pontos.

name (String!) Nome Fantasia do Comerciante

legalName (String!) Razão Social do Comerciante

Journey

Dados da viagem.

Parâmetros de entrada

companyTravel (String) Companhia responsável pela viagem.

journeyLocator (String!) Número de Confirmação.

trips (Trip!) Trechos da vigem (Possíveis escalas).

purpose (TravelPurpose!) Propósito da viagem (lazer, negócios...)

Trip

Trechos da vigem (Possíveis escalas).

Parâmetros de entrada

tripNumber (Int!) Identificador Global Único do trecho da viagem.

tripLocator (String!) Número de Confirmação.

type (TripType!) Identifica o tipo de viagem.

departure (Layover!) Informações da saída da escala.

arrival (Layover!) Informações da chegada da escala.

travelers (TravelInsuranceTraveler!) Dados do(s) Viajante(s) a qual este seguro se refere.

Para emissão de seguro informar os dados de todos os viajantes, informe todos os campos obrigatórios.

Layover

Informações da escala.

Parâmetros de entrada

IataCode (String) IATA - Associação Internacional de Transportes Aéreos

Caso o tipo da viagem seja aérea, esse campo deve ser informado.

Exemplo: GRU - Guarulhos/SP

IcaoCode (String) ICAO ou OACI - Organização da Aviação Civil Internacional

Exemplo: SBGR - Guarulhos/SP

city (String!) Nome da Cidade.

country (String!) País da viagem. Código do país com 3 letras (ISO3166-alpha3). Exemplos: USA, BRA...

dateTime (DateTime!) Data e hora da escala. Seguindo o formato estendido ISO 8601: Exemplo: "2017-06-01T12:00:00-03:00"

TravelInsuranceTraveler

Viajante do Seguro Viagem

Parâmetros de entrada

insurances ([InsuranceTraveler]) Lista de Seguro viagem contratados.

legalIds (InsuranceLegalIds!) Todos os documentos legais de identificação do viajante.

name (String!) Nome completo do viajante como no documento oficial (CPF).

birthday (Date!) Data de nascimento.

gender (Gender!) Masculino ou Feminino, conforme documentos oficiais.

pregnancyWeeks (Int) Se feminino e estiver grávida, de quantas semanas.

Se masculino ou não estiver grávida, será null.

maritalStatus (MaritalStatus!) Estado civil.

occupation (PersonOccupation!) Profissão do viajante.

Por padrão adota-se a língua de quem faz a requisição, porém uma diferente pode ser requisitada e está será utilizada, ou a mais próxima disponível. O formato é: en_US (Inglês dos EUA), en (Inglês genérico), pt_BR (Português do Brasil), pt (Português genérico). O formato é o mesmo de IETF language tag.

income (PersonYearlyIncome!) Renda anual do viajante (individual e familiar).

address (Address!) Endereço do viajante.

contacts ([PersonContact]) Contatos do viajante.

politicalExposure (Boolean!) Pessoa Exposta Politicamente.

InsuranceTraveler

Dados de Seguro viagem contratados para viajante.

Parâmetros de entrada

insuranceId (ID!) Identificador Global Único de Seguro contratado, retornado pela seguradora.

description (String!) Descrição do Produto

status (CardHolderInsuranceStatus!)

InsuranceLegalIds

Toda a possível identificação legal de pessoa Física

Parâmetros de entrada

cpf (CPF!)

rg (RG)

TravelPurpose

Propósito (Motivo) da Viagem

Parâmetros de entrada

leisure (Boolean!) Se true, um dos propósitos da viagem é lazer.

business (Boolean!) Se true, um dos propósitos da viagem é negócios.

adventure (Boolean!) Se true, um dos propósitos da viagem é realizar atividades de aventura.

Atividades de aventura ou perigosas, tais como andar a cavalo, jet ski, bungee jump, rafting, canoagem ou ciclismo.

ExtendedWarrantyInsurancesConnection

_("ExtendedWarrantyInsurancesConnection")

Parâmetros de entrada

pageInfo (PageInfo!) _("ExtendedWarrantyInsurancesConnection.pageInfo")

edges ([ExtendedWarrantyInsurancesEdge]) _("ExtendedWarrantyInsurancesConnection.edges")

totalCount (Int) _("ExtendedWarrantyInsurancesConnection.totalCount")

ExtendedWarrantyInsurancesEdge

_("ExtendedWarrantyInsurancesEdge")

Parâmetros de entrada

cursor (String!) _("ExtendedWarrantyInsurancesEdge.cursor")

node (ExtendedWarrantyInsurance) _("ExtendedWarrantyInsurancesEdge.node")

ExtendedWarrantyInsurance

Seguro de Garantia Estendida para portadores de cartão.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

insuranceId (ID!) Identificador Global Único de Seguro contratado, retornado pela seguradora.

cardHolder (CardHolder!) O Portador do cartão ao qual o seguro se refere.

O serviço (benefício) de seguro é oferecido para determinados produtos (i.e: Cartões Elo Nanquim) ao portador do cartão.

bin (BIN!) O BIN (Bank Identification Number) referente ao cartão que ofereceu o seguro.

O serviço (benefício) de seguro é oferecido para determinados produtos (i.e: Cartões Elo Nanquim), o qual é determinado pelo seu BIN.

status (CardHolderInsuranceStatus!)

merchant (MerchantInsurance) Informações do comerciante.

startDate (Date!) A data inicial da cobertura.

A data inicial é computada automaticamente como a data de emissão do seguro.

endDate (Date!) A data final da cobertura.

A data final é computada automaticamente à partir da data da nota fiscal (invoiceDate) acrescida dos meses de garantia do fabricante (manufacturerWarrantyMonths) e então dos meses estendidos com este seguro (extendedWarrantyMonths).

companyInsurance (String!) Seguradora responsável pelo seguro.

invoiceNumber (String!) Número da Nota Fiscal

invoiceDate (Date!) Data da Nota Fiscal

serialNumber (String!) Número de Série do Produto

category (ExtendedWarrantyProductCategory!) Categoria do Produto

Por padrão adota-se a língua de quem faz a requisição, porém uma diferente pode ser requisitada e está será utilizada, ou a mais próxima disponível. O formato é: en_US (Inglês dos EUA), en (Inglês genérico), pt_BR (Português do Brasil), pt (Português genérico). O formato é o mesmo de IETF language tag.

brand (String!) Marca do Produto

model (String!) Modelo do Produto

description (String!) Descrição do Produto

value (Float!) Valor do Produto

extendedWarrantyMonths (Int!) Número de meses estendidos por este seguro.

manufacturerWarrantyMonths (Int!) Número de meses cobertos pela garantia do fabricante.

ExtendedWarrantyProductCategory

Categoria de Produtos para Seguros de Garantia Estendida

Parâmetros de entrada

id (ID!) Identificador opaco da categoria de produto.

Deve ser informado como entrada quando a categoria for requisitada.

display (String!) Texto a ser exibido ao usuário em formulários e consultas.

Este texto é localizado (traduzido) para a linguagem informada na consulta ou mutação

products (ProductCategory!) Produto segurado.

ProductCategory

Produto coberto pelo seguro

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

display (String!) Texto a ser exibido ao usuário em formulários e consultas.

PurchaseProtectionInsurancesConnection

Conexão de PurchaseSecurityInsurance em conformidade com o Relay.

Parâmetros de entrada

pageInfo (PageInfo!) Cursor opaco para ser usado com queries (consultas) after ou before.

edges ([PurchaseProtectionInsurancesEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

PurchaseProtectionInsurancesEdge

Aresta de conexão contendo um PurchaseSecurityInsurance em conformidade com o

Relay.

Parâmetros de entrada

cursor (String!) Cursor opaco para ser usado com queries (consultas) after ou before.

node (PurchaseProtectionInsurance) O objeto PurchaseSecurityInsurance que compõe esta aresta de conexão.

PurchaseProtectionInsurance

Seguro de Proteção de Compra de Produtos para portadores de cartão.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

insuranceId (ID!) Identificador Global Único de Seguro contratado, retornado pela seguradora.

cardHolder (CardHolder!) O Portador do cartão ao qual o seguro se refere.

O serviço (benefício) de seguro é oferecido para determinados produtos (i.e: Cartões Elo Nanquim) ao portador do cartão.

merchant (MerchantInsurance) Informações do comerciante.

bin (BIN!) O BIN (Bank Identification Number) referente ao cartão que ofereceu o seguro.

O serviço (benefício) de seguro é oferecido para determinados produtos (i.e: Cartões Elo Nanquim), o qual é determinado pelo seu BIN.

status (CardHolderInsuranceStatus!)

startDate (Date!) A data inicial da cobertura.

A data inicial é computada automaticamente como a data de emissão do seguro.

endDate (Date!) A data final da cobertura.

A data final é computada automaticamente à partir da data da nota fiscal (invoiceDate) acrescida dos dias da proteção escolhidos (securityDays).

companyInsurance (String!) Seguradora responsável pelo seguro.

invoiceNumber (String!) Número da Nota Fiscal

invoiceDate (Date!) Data da Nota Fiscal

serialNumber (String!) Número de Série do Produto

category (PurchaseProtectionProductCategory) Categoria do Produto

Por padrão adota-se a língua de quem faz a requisição, porém uma diferente pode ser requisitada e está será utilizada, ou a mais próxima disponível. O formato é: en_US (Inglês dos EUA), en (Inglês genérico), pt_BR (Português do Brasil), pt (Português genérico). O formato é o mesmo de IETF language tag.

brand (String!) Marca do Produto

model (String!) Modelo do Produto

description (String!) Descrição do Produto

value (Float!) Valor do Produto

coverageDays (Int!) Número de dias o qual o produto será protegido (segurado).

PurchaseProtectionProductCategory

_t("PurchaseProtectionProductCategory")

Parâmetros de entrada

id (ID!) _t("PurchaseProtectionProductCategory.id")

display (String!) _t("PurchaseProtectionProductCategory.display")

products (ProductCategory!) Produto segurado.

CardUsageConstraints

Informações sobre como o cartão ou token podem ser usados.

Observe que as restrições do cartão ou token podem ser especificadas no momento de criação usando CardUsageConstraintsInput. Emissores, cartões e produtos podem impor restrições extras.

Parâmetros de entrada

maxUsage (Int) Número de vezes que o cartão pode ser usado.

-1 significa ilimitado null significa uso não definido.

expiry (DateTime) Uso é permitido até a data e horário de validade

allowedTxAmounts ([CardCurrencyRange]) Quantias permitidas por transações permitidas (TX) como limites por moedas.

Cada moeda será listada no máximo uma vez.

Nenhuma conversão de moedas é executada. Se uma moeda não é listada, é porque não é autorizada.

Se null, é ilimitada.

allowedMerchants ([Merchant]) Lista de comerciantes autorizados.

Se null, é ilimitada.

allowedMerchantCategories ([MerchantCategory]) Categorias de comerciantes autorizadas.

Se null, é ilimitada.

Se não-nula, então é a lista completa de categorias permitidas após aplicar filtros definidos por solicitantes, emissor e restrições de produto.

deniedMerchantCategories ([MerchantCategory]) Categorias de comerciantes proibidas.

Se null, é ilimitada.

Se não-nula, então é a lista completa de categorias proibidas após aplicar filtros definidos por solicitantes, emissor e restrições de produto.

CardCurrencyRange

Declara limites operacionais para uma moeda.

Parâmetros de entrada

currency (String!) Código da moeda com 3 letras (ISO4217) Exemplo: EUR, USD, BRL...

min (Float) Valor mínimo ou null para ilimitado.

max (Float) Valor máximo ou null para ilimitado.

Merchant

Um estabelecimento comercial que realiza transações com cartões Elo.

Parâmetros de entrada

id (ID!) Identificador Global Único para o objeto.

name (String!) Nome visível publicamente. Normalmente nome bem conhecido, marca, etc.

legalName (String!) Nome legal, como escrito em documentos.

description (String) Descrição da empresa para ser apresentado a usuários.

image (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.

legalIds (CompanyLegalIds!) Todos os documentos legais de identificação da empresa.

contacts (CompanyContact!) Contatos da empresa.

addresses (Address!) Endereço físico da empresa.

url (String) Endereço Virtual (Uniform Resource Locator).

categories (MerchantCategory!) Categorias de comerciantes (Código ISO, nome)

transactionFees ([MerchantTransactionFees]) Preços de Transações efetivos para o Comerciante

As taxas e custos são associados a um uso (i.e: Crédito à vista, Crédito parcelado pela loja...), quantidade de parcelas e tem uma validade, ou seja, são dinâmicos. Devem ser consultados e posteriormente refrescados para este comerciante.

Alguns comerciantes têm valores negociados individualmente para seu CNPJ, estes são retornados preferencialmente. No entanto a maioria dos comerciantes não tem negociação individual, para estes vale os valores da categoria (MerchantCategory), o qual é retornado na ausência dos valores negociados individualmente.

Note que se o comerciante não estiver na base de dados ou não for possível determinar sua categoria será retornado null. Para estes casos deve-se, então, utilizar os preços estabelecidos para a sua categoria procurando diretamente por merchantCategory(iso: X) { transactionFees }.

Os custos são dinâmicos: foram alterados em MerchantTransactionFees { lastModified } e são vigentes até MerchantTransactionFees { expiry }. O usuário deve usar expiry para invalidar o cache local, refrescando as informações após tal data e horário.

cardTransactions (CardTransactionsConnection) Consulta transações deste comerciante.

A consulta paginada permite obter transações feitas por este comerciante com um filtro opcional.

Ao ser chamado por um CardHolder (portador), apenas suas transações com este comerciante serão exibidas (filtro implícito).

Para transações de um cartão específico, utilize CardInterface { transactions }, primeiramente obtendo o Card ou CardToken por outras consultas, por exemplo cardInterfaceByHash(hash)

Pode ser null em caso de falta de permissão, por exemplo outro comerciante.

MerchantCategory

Categoria de comerciantes

A Categoria de Comerciante é associada a um código ISO18245 de 4 dígitos disponível no membro iso.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

iso (Int!) Código ISO18245.

Também conhecido como MCC (Merchant Category Code), tem 4 dígitos.

name (String!) Nome da categoria de comerciante.

Por padrão adota-se a língua de quem faz a requisição, porém uma diferente pode ser requisitada e está será utilizada, ou a mais próxima disponível. O formato é: en_US (Inglês dos EUA), en (Inglês genérico), pt_BR (Português do Brasil), pt (Português genérico). O formato é o mesmo de IETF language tag.

image (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.

transactionFees ([MerchantTransactionFees]) Preços de Transações para a Categoria de Comerciante.

As taxas e custos são associados a um uso (i.e: Crédito à vista, Crédito parcelado pela loja...) e tem uma validade, ou seja, são dinâmicos e podem ser consultados para esta categoria.

Note que alguns comerciantes possuem custos de transação específicos, negociados individualmente. Para estes deve-se consultar o comerciante e então seus preços diretamente via API com merchant(legalIds: {cnpj: X}) { transactionFees }, utilizando os valores da categoria aqui retornados apenas para comerciantes sem preços específicos.

Os custos são dinâmicos: foram alterados em MerchantTransactionFees { lastModified } e são vigentes até MerchantTransactionFees { expiry }. O usuário deve usar expiry para invalidar o cache local, refrescando as informações após tal data e horário.

merchants (MerchantsConnection) Consulta comerciantes (Merchant) nesta categoria.

MerchantTransactionFees

Custos de Transação ao Comerciante.

Baseado no tipo de uso (i.e: Crédito à vista, Crédito parcelado pela loja...) e número de parcelas o comerciante terá que pagar uma taxa à bandeira e ao credenciador. Recomenda-se que o usuário sempre considere cardUsage, installmentsRange e expiry em todas as consultas.

Exemplo de listagem:

  • cardUsage: 70, installmentsRange: null.
  • cardUsage: 71, installmentsRange: null.
  • cardUsage: 72, installmentsRange { min: 1, max: 6 }.
  • cardUsage: 72, installmentsRange { min: 7, max: 12 }.

Os custos são dinâmicos: foram alterados em lastModified e são vigentes até expiry. O usuário deve usar expiry para invalidar o cache local, refrescando as informações após tal data e horário.

O cálculo do valor final a ser pago é feito e esclarecido na consulta calc.

Parâmetros de entrada

cardUsage (CardUsage!) Os custos de transação se referem a este uso.

Por exemplo:

  • Crédito à vista = 70
  • Débito = 71
  • Crédito parcelado pela loja = 72

Note que para produtos parcelados, como 72, serão retornadas diversas entradas com o mesmo cardUsage, porém com faixas de parcelamento diferentes em installmentsRange. Por exemplo se as tarifas para parcelamento de 1 à 6 são diferentes que parcelamentos de 7 à 12, então teríamos duas entradas com o mesmo cardUsage, sendo que cada uma terá installmentsRange diferente:

  • cardUsage: 72, installmentsRange { min: 1, max: 6 }.
  • cardUsage: 72, installmentsRange { min: 7, max: 12 }.

installmentsRange (IntRange) A faixa de parcelas a qual estes custos de transação se referem.

Para cardUsage que permite parcelamento, será retornado a faixa de parcelas a qual estes custos se aplicam. Por exemplo se as tarifas para parcelamento de 1 à 6 são diferentes que parcelamentos de 7 à 12, então teríamos duas entradas com o mesmo cardUsage, sendo que cada uma terá installmentsRange diferente:

  • cardUsage: 72, installmentsRange { min: 1, max: 6 }.
  • cardUsage: 72, installmentsRange { min: 7, max: 12 }.

Para cardUsage que não permite parcelamento, será retornado null.

lastModified (DateTime!) Data e horário da última modificação.

expiry (DateTime) Data e horário que limitam a vigência do valor, ou seja.

marketingFee (Float!) Percentual a ser pago para a tarifa de desenvolvimento da bandeira e marketing.

Caso marketingFeeCeilValue seja não-nulo, então especifica um teto em BRL (R$) pra limitar o valor final a ser pago.

marketingFeeCeilValue (Float) Teto do custo da tarifa de desenvolvimento da bandeira e marketing, em BRL (R$).

Caso seja não-nulo, após aplicar marketingFee ao valor da compra deve-se limitar o valor final em BRL (R$) ao montante especificado.

acquiringServiceFee (Float!) Percentual a ser pago para desenvolvimento e suporte de produtos ao credenciador.

Caso acquiringServiceFeeCeilValue seja não-nulo, então especifica um teto em BRL (R$) pra limitar o valor final a ser pago.

acquiringServiceFeeCeilValue (Float) Teto do custo da tarifa de desenvolvimento e suporte de produtos ao credenciador da transação, em BRL (R$).

Caso seja não-nulo, após aplicar acquiringServiceFee ao valor da compra deve-se limitar o valor final em BRL (R$) ao montante especificado.

processingCost (Float!) Tarifa de processamento na mensageria de autorizações, em BRL (R$).

Este valor é fixo para este uso (cardUsage), independente do valor ou número de parcelas.

additionalInstallmentCost (Float) Tarifa adicional para cada parcela, em BRL (R$).

Para uso parcelado, por exemplo cardUsage 72 (crédito parcelado pela loja), cada parcela deve pagar este custo adicional.

Ou seja, para uma compra em 3 parcelas, paga-se 2 * additionalInstallmentCost.

Para cardUsage que não permite parcelamento, será retornado null.

calc (MerchantTransactionFeesCalc!) Calcula o custo final em BRL (R$) a ser pago para uma transação de transactionValue realizada em installments parcelas com o uso retornado no campo cardUsage.

Esta consulta é um utilitário que calcula:

let marketingCost = transactionValue * marketingFee;
if (marketingFeeCeilValue && marketingCost > marketingFeeCeilValue) {
   marketingCost = marketingFeeCeilValue;
}

let acquiringServiceCost = transactionValue * acquiringServiceFee;
if (acquiringServiceFeeCeilValue && acquiringServiceCost > acquiringServiceFeeCeilValue) {
   acquiringServiceCost = acquiringServiceFeeCeilValue;
}

let installmentsCost = 0.0;
if (installments && installments > 1) {
   installmentsCost = (installments - 1) * additionalInstallmentCost;
}

let totalCost = processingCost + installmentsCost + marketingCost + acquiringServiceCost;

MerchantTransactionFeesCalc

Retorno do cálculo de custo final em BRL (R$) a ser pago para uma transação.

Veja a consulta MerchantTransactionFees { calc } para detalhes do cálculo.

Parâmetros de entrada

cardUsage (CardUsage!) Os custos de transação se referem a este uso.

Por exemplo:

  • Crédito à vista = 70
  • Débito = 71
  • Crédito parcelado pela loja = 72

É o mesmo que MerchantTransactionFees { cardUsage }, retornado aqui apenas para facilitar o uso.

expiry (DateTime) Data e horário que limitam a vigência do valor, ou seja.

É o mesmo que MerchantTransactionFees { expiry }, retornado aqui apenas para facilitar o uso.

installments (Int!) Número de parcelas considerado.

Caso o uso (cardUsage) se não permita parcelamento, será retornado 1.

Caso o uso (cardUsage) permita parcelamento, porém o parâmetro de cálculo seja fora da faixa, será retornado o número de parcelas que melhor se aproxima. Por exemplo:

  • calc(installments: 10) e installmentsRange {min: 1, max: 5} irá retornar installments: 5.
  • calc(installments: 3) e installmentsRange {min: 6, max: 12} irá retornar installments: 6.

Caso o número de parcelas especificadas para o cálculo esteja dentro da faixa, então será retornado o valor especificado, inalterado.

totalCost (Float!) Valor final a ser pago em tarifas para a transação, em BRL (R$).

É equivalente à soma dos demais custos..

processingCost (Float!) Tarifa de processamento na mensageria de autorizações, em BRL (R$).

Este valor é fixo para este uso (cardUsage), independente do valor ou número de parcelas.

É o mesmo que MerchantTransactionFees { processingCost }, retornado aqui apenas para facilitar o uso.

installmentsCost (Float!) Tarifa adicional por parcelamento, em BRL (R$).

Este valor resulta do additionalInstallmentCost aplicado a cada parcela adicional.

Para cardUsage que não permite parcelamento, será retornado zero (0.0).

marketingCost (Float!) Valor a ser pago para a tarifa de desenvolvimento da bandeira e marketing, em BRL (R$).

Valor final já calculado à partir do transactionValue e marketingFee, considerando marketingFeeCeilValue.

acquiringServiceCost (Float!) Valor a ser pago para desenvolvimento e suporte de produtos ao credenciador, em BRL (R$).

Valor final já calculado à partir do transactionValue e acquiringServiceFee, considerando acquiringServiceFeeCeilValue.

MerchantsConnection

Conexão de comerciante (Merchant) em conformidade com o Relay.

Parâmetros de entrada

pageInfo (PageInfo!) Cursor opaco para ser usado com queries (consultas) after ou before.

edges ([MerchantsEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

MerchantsEdge

Aresta de conexão contendo um comerciante (Merchant) em conformidade com o Relay.

Parâmetros de entrada

cursor (String!) Cursor opaco para ser usado com queries (consultas) after ou before.

node (Merchant) O objeto Merchant que compõe essa aresta de conexão.

CardTransactionsConnection

Conexão de CardTransaction em conformidade com o Relay.

Parâmetros de entrada

pageInfo (PageInfo!) Cursor opaco para ser usado com queries (consultas) after ou before.

edges ([CardTransactionsEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

CardTransactionsEdge

Aresta de conexão contendo um CardTransaction em conformidade com o Relay.

Parâmetros de entrada

cursor (String!)

Cursor opaco para ser usado com queries (consultas) after ou

before.

node (CardTransaction) O objeto CardTransaction que compõe essa aresta conexão.

CardTransaction

Representa uma transação de cartão.

As transações são retornadas em consultas derivadas (enraizadas) em outros tipos mais específicos, tais como:

  • CardInterface { transactions }: transações de um cartão específico.
  • Merchant { cardTransactions }: transações de um dado comerciante.

Todas as consultas são sujeitas às permissões de acesso:

  • Um comerciante (Merchant) não tem permissão para transações de outros comerciantes.
  • Um portador (CardHolder) não tem permissão para transações de outros portadores.

As consultas também são filtradas implicitamente pelas permissões de acesso, ou seja:

  • Um comerciante ao consultar as transações de um dado cartão, só receberá em retorno suas próprias transações e não de outros comerciantes.
  • Um portador ao consultar as transações de um dado comerciante, só receberá em retorno suas próprias transações e não de outros portadores.

O acesso direto via node(id) também é sujeito às mesmas permissões, só entidades relacionadas (comerciante ou portador) podem ter acesso à transação.

Ao Implementador: internamente guarde o hash do cartão (Card) ou token (CardToken) (não os retorne em consulta direta). Ao fazer a busca por CardInterface { transactions }, caia sempre para o mesmo código, à partir do hash (utilizando o valor armazenado internamente).

Para Merchant, sempre faça a o filtro conter a lista merchants com apenas o seu próprio id.

Se utilizar Cassandra ou NoSQL, precisa desnormalizar a tabela em:

  • Por hash;
  • Por MerchantId (comerciante);
  • Por MCC (código da categoria). Como comerciantes têm no mínimo 1 MCC, pode-se fazer como compound key de MCC, MerchantId. Ao listar o comerciante liste todos os seus MCC... em geral vai ser apenas 1. Neste caso não precisa desnormalizar por Merchant, apenas MCC, MerchantId

Para encadear consultas, como no caso de CardHolder descrito acima, cuidado com paginação. Se fizer numa consulta só, a paginação deve vir de "graça".

Campos informativos são altamente repetidos e não precisam estar nas tabelas desnormalizadas. Apenas referencie o id e então mantenha um cache local. Por exemplo CardCapture, CardUsage e BIN.

Caso replique os campos informativos, não os atualize com atualizações no campo original, seria até mais correto manter o snapshot do momento em que a transação foi registrada. Por exemplo o BIN poderia ser associado a um produto naquele momento e o BIN foi reciclado, utilizando outro produto.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

capture (CardCapture!) Como o cartão foi capturado na transação (i.e: POS, TEF, Internet...)

usage (CardUsage!) Como o cartão foi utilizado (i.e: Crédito à vista, Débito...)

bin (BIN) Informações do BIN do cartão.

BIN (Bank Identification Number ou Número de Identificação do Banco) elucida várias propriedades do cartão, como se é corporativo, internacional, se é um token, qual o emissor (CardIssuer), dentre outros.

Pode ser null em caso de falta de permissão.

merchant (Merchant!) O comerciante que realizou a transação.

Possui campos como razão social, nome fantasia, documentos legais (CNPJ) e categorias (MCC).

currency (String!) Código da moeda com 3 letras (ISO4217) Exemplo: EUR, USD, BRL...

value (String!) Valor total da transação

A moeda é especificada em currency. A compra pode ter sido parcelada conforme installments.

installments (Int!) Número de parcelas.

Caso a compra não tenha sido parcelada, será 1.

status (CardTransactionStatus) Estado da transação

timestamp (DateTime!) Quando a transação ocorreu.

approvalCode (String) Código de autorização do emissor.

prePaid (PrePaid) Informação do saldo disponivel. Retorno apenas para cartão pré-pago

PrePaid

Parâmetros de entrada

currency (String) Código da moeda com 3 letras (ISO4217) Exemplo: EUR, USD, BRL...

balance (String) Saldo disponivel.

Track

Dados utilizado no embolssing.

Parâmetros de entrada

type (TrackType!)

key (String!)

value (String!)

CardTransactionCategorySummary

Sumário de Transações de Cartão para uma Categoria de Comerciante

Parâmetros de entrada

category (MerchantCategory!) Categoria deste sumário

count (Int!) Número de transações nesta categoria

value (String!) Valor total das transações em BRL (R$) nesta categoria

CardFraudTransactionsConnection

Conexão de CardFraudTransaction em conformidade com o Relay.

Parâmetros de entrada

pageInfo (PageInfo!) Cursor opaco para ser usado com queries (consultas) after ou before.

edges ([CardFraudTransactionsEdge]) Lista de arestas que compõem esta conexão.

totalCount (Int) Contagem total de objetos nesta conexão.

Arestas são limitadas a cursores before e after, assim como primeiras e últimas contagens. Assim o tamanho de arestas é possivelmente menor que a conexão como um todo.

totalCount, se não for null, indica o número total de itens na conexão considerando-se o filtro.

CardFraudTransactionsEdge

Aresta de conexão contendo um CardFraudTransaction em conformidade com o Relay.

Parâmetros de entrada

cursor (String!) Cursor opaco para ser usado com queries (consultas) after ou before.

node (CardFraudTransaction) O objeto CardFraudTransaction que compõe essa aresta conexão.

CardFraudTransaction

Representa uma transação fraudulenta de cartão.

Parâmetros de entrada

cardTransaction (CardTransaction!) Dados da Transação fraudulenta.

last4 (String) Últimos 4 dígitos do cartão, para ser mostrado ao usuário

authorization (Authorization!) Dados da autorização

status (CardFraudTransactionStatus!) Estado da transação fraudulenta

reference (String) Número de referência do Banknet.

codePos (ID!) Código que identifica o PDV.

liability (LiabilityType) Identifica o responsável pela transação fraudulenta.

codeEic (Int!) Identificar o código 3D Secure específico aplicável.

flaggedAt (DateTime) Data que o cartão foi cancelado após ser confirmado como fraude pelo titular do cartão.

arn (Int!) Número de referença do adquirente, são 23 números unicos que marcam a transação do cartão quando ela vai da processadora para o emissor. Somente esta disponivel para transações finalizadas. Esta campo é util para estabelecimentos comerciais para fazer o de-para do alerta como a transação original, especialmente quando existem multiplas transações no mesmo cartão e no mesmo estabelecimento comercial com o mesmo valor e na mesma hora.

initiated (InitiatedType!) Identificar quem detectou a fraude.

settled (Date!) Data que a transação foi liquidada (se já liquidada).

Authorization

Dados da autorização de uma transação

Parâmetros de entrada

date (DateTime!) Data da autorização da transação.

code (ID!) Código da autorização da transação.

decision (String!) Descrição da autorização da transação.

CardToken

Token de Cartão: identificador opaco que substitui o cartão real e suas informações sigilosas.

Tokens podem ser criados pelo portador do cartão utilizando uma carteira digital, ou um comerciante que o utiliza ao invés de um cartão, para reduzir as informações sigilosas armazenadas em seus servidores.

Tokens (CardToken) implementam a mesma interface que o cartão (Card), (CardInterface) e pode ser usado como tal em outras chamadas, porém possui membros extras, como origin, que declara como, quando e porque foi criado.

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto.

sensitive (String) Conteúdo sensível o qual foi assinado e então cifrado conforme a estrutura:

  JWE.Encrypt(recipient=ServerKey, format=compact,
      JWS.Sign(issuer=UserKey, format=compact,
          JSON.Stringify(CardInterfaceSensitive)
      )
  )

Para obter os dados sensíveis, faça o processo reverso:

  JSON.Parse(payload of
      JWS.Verify(payload of
          JWE.Decrypt(sensitive)
      )
  )

Ou seja, os dados conforme o esquema JSON CardInterfaceSensitive devem ser decifrados utilizando JSON Web Encrypt (JWE) e então ter sua assinatura verificada por JSON Web Signature (JWS) e então interpretados como uma string JSON.

O esquema define as seguintes chaves para o objeto resultante da decodificação (CardInterfaceSensitive):

  • pan: O número da conta primária (Primary Account Number), também conhecido como \"número do cartão\" (físico ou virtual). Exemplo: "1234567890123456"
  • expiry: Data de validade do cartão, ou seja, quando ele expira. É um objeto composto pelas chaves month e year descritas a seguir. Exemplo: {"month": 2, "year": 2020}
    • month: Mês da validade do cartão. Número inteiro entre 1 (Janeiro) e 12 (Dezembro).
    • year: Ano da validade do cartão. Número inteiro com 4 dígitos (2017, não 17).
  • name: Nome do portador do cartão. Exemplo: "João da Silva".
  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico. É opcional, alguns sistemas não retornam o código de segurança por meio eletrônico e este deve ser consultado no cartão físico; para tokens de cartões virtuais (Virtual Card Number - VCN) pode ser retornado apenas na mutação createCardToken. Exemplo: "123".

    JSON Schema: CardInterfaceSensitive.json

    Nota: pode ser nulo por falta de permissões.

last4 (String) Últimos 4 dígitos do cartão, para ser mostrado ao usuário

Pode ser nulo dependendo de permissões e acesso.

expiry (CardExpiry) Data de validade do cartão

Pode ser nulo dependendo de permissões e acesso.

holder (CardHolder) Nome e contato do portador do cartão

Pode ser nulo dependendo de permissões e acesso.

billingAddress (Address) Endereço para conta

Pode ser nulo dependendo de permissões e acesso.

status (CardStatusInterface!) Se o cartão é inativo, ativo ou suspenso.

Pode ser CardStatusInactive, CardStatusActive ou CardStatusSuspended. Use fragmentos para pegar campos extras.

usageConstraints (CardUsageConstraints) Como o cartão pode ser usado

availableServices ([CardHolderService]) Serviços (benefícios) disponíveis ao portador deste cartão.

Para listagem dos serviços em uso, veja usedServices.

Pode ser null em caso de falta de permissão.

usedServices ([CardHolderService]) Serviços (benefícios) em uso pelo portador deste cartão.

Para listagem de todos os serviços disponíveis, veja availableServices.

Pode ser null em caso de falta de permissão.

bin (BIN) Informações do BIN do cartão.

BIN (Bank Identification Number ou Número de Identificação do Banco) elucida várias propriedades do cartão, muitas delas replicadas na própria interface do cartão para facilidade de acesso.

Pode ser null em caso de falta de permissão.

funding (CardFunding) Qual o financiamento do cartão: Crédito, Débito ou Múltiplo (ambos)

Pode ser null em caso de falta de permissão.

product (CardProduct) Produto associado ao Cartão.

Cada cartão é associado a um tipo de produto. Por exemplo os cartões Elo utilizam os produtos:

  • Básico
  • Clássico
  • Corporativo
  • Grafite
  • Nanquim
  • Viagem
  • Pré-pago

    Pode ser null em caso de falta de permissão.

isInternational (Boolean) Diz se o cartão é de uso internacional.

Se true, então o cartão é de uso internacional e doméstico. Se false, então o cartão só permite uso doméstico.

Pode ser null em caso de falta de permissão.

isCompany (Boolean) Diz se o cartão é corporativo (pessoa jurídica) ou pessoa física.

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

Pode ser null em caso de falta de permissão.

isToken (Boolean) 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).

Pode ser null em caso de falta de permissão.

brand (CardBrand) Bandeira do Cartão

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

Pode ser null em caso de falta de permissão.

allowedCaptures ([CardCapture]) 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.

Pode ser null em caso de falta de permissão.

usages ([CardUsage]) 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.

Pode ser null em caso de falta de permissão.

network (CardNetwork) 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.

    Pode ser null em caso de falta de permissão.

issuer (CardIssuer) 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.

Pode ser null em caso de falta de permissão.

metadata (CardMetadata) 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.

    Pode ser null em caso de falta de permissão.

transactions (CardTransactionsConnection) Consulta transações deste cartão.

A consulta paginada permite obter transações deste cartão com um filtro opcional.

Ao ser chamado por um Merchant (comerciante), apenas suas transações com este cartão serão exibidas (filtro implícito).

Pode ser null em caso de falta de permissão.

transactionsSummary ([CardTransactionCategorySummary]) Retorna lista de sumários de transações por categorias de comerciante.

Ao invés de retornar todas as transações e seus campos conforme disponível em transactions(), esta consulta segmenta por MCC e retorna uma entrada por cada categoria, com o número de transações e o valor final em BRL (R$).

Note que apenas transações aprovadas são listadas.

card (Card!) O cartão real a que se refere o token.

Atenção: estas queries em dados sigilosos do cartão, normalmente retornarão null a não ser que permissões autorizem seu acesso.

origin (CardTokenOrigin!) Informação sobre a origem do token: como, quando e porque foi criado.

CardTokenOrigin

Origem do token: contém informação sobre a criação do token.

TODO: Review in depth

Parâmetros de entrada

timestamp (DateTime!) Quando o token foi criado

ip (String) Endereços de rede IPv4 ou IPv6 de onde partiu a solicitação de criação.

Se for IPv6, deve estar entre colchetes. Exemplo: [::1] Se for IPv4, deve seguir a notação com pontos: 127.0.0.1

O opcional ipv6Mapped estabelece que os endereços IPv4 sempre serão codificados como IPv6 usando regras de mapeamento: [::ffff:127.0.0.1]

Pode ser null se o endereço IP era desconhecido no momento de criação do token

geolocation (Geolocation) Localização geográfica de onde partiu a solicitação de criação do token. Pode ser null.

device (Device) Dispositivo utilizado para a criação do token. Pode ser aproximado, por exemplo, usando o Agente de Usuário (User-Agent) para identificar sistema operacional, marca e modelo...

merchant (Merchant) Comerciante que solicitou a criação do token.

Se usando uma carteira digital pessoal, este será null. Caso contrário, será o comerciante.

merchantUserId (String) Identificador de usuário no comércio que solicitou a criação do token.

Se foi criado pelo comerciante em nome do usuário, então é o identificador de usuário dentro do escopo do comerciante, como o ID de usuário, email, UUIDv4 ou URL que identifica o usuário de forma única e imutável no tempo (se o usuário puder mudar o email no sistema do comerciante, este não pode ser usado neste campo).

wallet (Wallet) A carteira digital, caso tenha sido utilizada por um portador de cartão para isto. Caso contrário será null.

Geolocation

Geolocalização: localização geográfica mundial.

Parâmetros de entrada

lon (Float!) Longitude, mandatório: em graus.

lat (Float!) Latitude, mandatório: em graus.

alt (Float) Altitude, opcional: em metros acima da elipsoide de referência WGS84.

precision (Float) Precisão, opcional: precisão horizontal dessa localização, radial, em metros.

source (GeolocationSource) Origem da informação. Pode ser null para "desconhecida" ou "outra".

Device

Dispositivo do usuário.

Usado para permitir que o usuário rastreie de onde partiu uma ação no sistema, comparando com seus próprios dispositivos e contatando o suporte caso dispositivo desconhecido seja utilizado.

Parâmetros de entrada

userAgent (String) Agente de Usuário (User-Agent) usado nas requisições HTTP.

brand (String) Marca: como Apple, Samsung, LG...

model (String) Modelo: como iPhone 7 Plus, Galaxy 7...

type (DeviceType) Tipo: pode ser usado para mostrar um ícone

serialNumber (String) Número serial que pode ser usado para identificar dispositivos.

imei (String) IMEI de 15 dígitos, usado para identificar o modem, se houver.

os (String) Sistema operacional (nome e versão): como Windows 10, iOS 9...

UserAgreement

Termo de uso aceito pelo usuário

Parâmetros de entrada

agreementTerm (AgreementTerm!) O termo que foi aceito

timestamp (DateTime!) Quando o termo foi aceito

AgreementTerm

Termo de Uso

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

title (String!) Título deste termo

description (String) Descrição do termo

url (String) Endereço da Página com informações sobre o termo

CreateProvisionedUserPayload

Retorno da mutação CreateProvisionedUser().

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String)

id (ID!) Identificador Global Único para este Lead

name (String) Nome completo do portador como nos documentos oficiais (RG, CPF)

UpdateProvisionedUserPayload

Retorno da mutação UpdateProvisionedUser().

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String)

user (ProvisionedUser) O usuário modificado com os novos campos

cards ([Card]) O cartão criado e associado ao portador.

cardTokens ([CardToken]) O token criado, seu PAN e CSC (Código de Segurança) são retornados usando seu membro sensitive.

AddPublicKeyToUserPayload

Retorno da mutação addPublicKeyToUser().

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String)

user (User) O usuário o qual teve chave adicionada.

publicKey (PublicKey) A chave adicionada.

Note que o campo publicKey { id } contém o identificador da chave a ser utilizado em outras operações como removePublicKeyFromUser(keyId: "X") ou CardInterface { sensistive(keyId: "X") }

User

Usuário do Sistema

O usuário pode ser associado a um comerciante, emissor de cartões ou pode ser um portador de cartões.

Também são listadas as redes sociais que o usuário relacionou e autorizou, por exemplo via OAuth.

API Privada

Parâmetros de entrada

id (ID!) Identificador Global Único para este objeto

verified (VerifiedStatus) O usuário foi verificado por meio de uma rede social, email, SMS ou outro meio.

É o mesmo que conferir todos os contatos do usuário e constatar que ao menos um deles foi verificado (contacts { verified }).

username (String) Nome do usuário para acesso ao sistema

name (String) Nome completo do portador como nos documentos oficiais (RG, CPF)

firstName (String) Primeiro nome do usuário

lastName (String) Último nome do usuário

displayName (String) Nome de usuário a ser exibido (exemplo: encurtado, alias...)

legalIds (LegalIds) Todos os documentos legais de identificação do usuário.

birthday (Date) Data de nascimento

age (Int) Idade em anos

gender (Gender) Masculino ou Feminino, conforme documentos oficiais

maritalStatus (MaritalStatus) Estado civil

income (PersonYearlyIncome) Renda anual do usuário (individual e familiar).

occupation (PersonOccupation) Profissão do usuário.

Por padrão adota-se a língua de quem faz a requisição, porém uma diferente pode ser requisitada e está será utilizada, ou a mais próxima disponível. O formato é: en_US (Inglês dos EUA), en (Inglês genérico), pt_BR (Português do Brasil), pt (Português genérico). O formato é o mesmo de IETF language tag.

image (ImageUrl) URL para foto de perfil. 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.

contacts ([PersonContact]) Contatos do usuário

addresses ([Address]) Endereços postais

cardHolders ([CardHolder]) Portadores de cartões associados ao usuário

Um usuário pode ter mais de um portador associado no caso de pessoas jurídicas diferentes, bem como um portador para sua pessoa física.

Relação: 1:n

merchants ([Merchant]) Comerciantes associados ao usuário

Um usuário pode ser responsável por vários comerciantes. Um comerciante pode ter vários usuários responsáveis.

Relação: n:n

cardIssuers ([CardIssuer]) Emissores de cartões associados ao usuário

Um emissor pode ter vários usuários responsáveis. Em geral um usuário vai ser responsável por apenas um emissor. No entanto está modelado como sendo possível que o usuário seja responsável por vários emissores (evita que a API mude caso este caso se torne realidade).

Relação: n:n

socialNetworks ([SocialNetworkInterface]) Redes sociais relacionadas ao usuário

agreements ([UserAgreement]) Termos de uso aceitos pelo usuário

accessTokens ([AccessTokenInfo]) Lista de chaves de acesso ativas para este usuário

publicKeys ([PublicKey]) Lista de Chaves Públicas conhecidas para este usuário

AccessTokenInfo

Chave de acesso (accessToken) e informações sobre sua origem.

Parâmetros de entrada

accessToken (String!) A chave de acesso (accessToken) ativa para este usuário

timestamp (DateTime!) Quando a chave de acesso (accessToken) foi criada

ip (String) Endereços de rede IPv4 ou IPv6 de onde partiu a solicitação de criação.

Se for IPv6, deve estar entre colchetes. Exemplo: [::1] Se for IPv4, deve seguir a notação com pontos: 127.0.0.1

O opcional ipv6Mapped estabelece que os endereços IPv4 sempre serão codificados como IPv6 usando regras de mapeamento: [::ffff:127.0.0.1]

Pode ser null se o endereço IP era desconhecido no momento de criação da chave de acesso.

geolocation (Geolocation) Localização geográfica de onde partiu a solicitação de criação da chave de acesso (accessToken). Pode ser aproximada à partir do IP.

Pode ser null.

device (Device) Dispositivo utilizado para a criação da chave de acesso (accessToken). Pode ser aproximado, por exemplo, usando o Agente de Usuário (User-Agent) para identificar sistema operacional, marca e modelo...

PublicKey

Parâmetros de entrada

id (String!) Identificador da chave para este usuário.

Em operações que retornem dados cifrados este será o identificador da chave a ser especificado, como na consulta CardInterface { sensitive(keyId: "X") }

Este identificador é gerado no momento que a chave é adicionada, vide addPublicKeyToUser()

NOTA: tem escopo do usuário, não é global do sistema.

key (String!) A chave serializada no formato requerido.

Se nenhum formato for especificado, será retornada como JSON Web Key - JWK

fingerprint (String!) Fingerprint da chave utilizando o algoritmo de hash requerido.

Se nenhum algoritmo for especificado, será usado SHA256.

CreateCardPayload

Retorno da mutação createCard().

Compatível com Relay.

Parâmetros de entrada

clientMutationId (String)

card (Card) O cartão criado e associado ao portador.

Note que o portador pode ser consultado em Card { holder }.

createProvisionedUser (CreateProvisionedUserPayload!)

Cria um ProvisionedUser de Usuário

Parâmetros de entrada

clientMutationId (String) Identificador de ProvisionedUser opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

name (String) Nome completo do portador como nos documentos oficiais (RG, CPF)

legalIds (LegalIdsInput) Todos os documentos legais de identificação do usuário.

birthday (Date) Data de nascimento

gender (Gender) Masculino ou Feminino, conforme documentos oficiais

maritalStatus (MaritalStatus) Estado civil

income (PersonYearlyIncomeInput) Renda anual do usuário (individual e familiar).

occupationId (ID) Profissão do usuário.

Utilize valores já conhecidos e retornados na consulta personOccupations, membros id.

Enviar uma ocupação desconhecida irá resultar em erro.

contacts ([PersonContactInput]) Contatos do usuário

addresses ([AddressInput]) Endereços postais

origin (String) Identifica a origem(campanhã) do cadastro do usuário.

Parâmetros de saída

clientMutationId (String)

id (ID!) Identificador Global Único para este Lead

name (String) Nome completo do portador como nos documentos oficiais (RG, CPF)

updateProvisionedUser (UpdateProvisionedUserPayload!)

Altera os dados de um ProvisionedUser de Usuário

Parâmetros de entrada

clientMutationId (String) Identificador de ProvisionedUser opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

id (String!) Identificador global único referente ao usuário a ser modificado

legalIds (LegalIdsInput) Todos os documentos legais de identificação do usuário.

birthday (Date) Data de nascimento

gender (Gender) Masculino ou Feminino, conforme documentos oficiais

maritalStatus (MaritalStatus) Estado civil

income (PersonYearlyIncomeInput) Renda anual do usuário (individual e familiar).

occupationId (ID) Profissão do usuário.

Utilize valores já conhecidos e retornados na consulta personOccupations, membros id.

Enviar uma ocupação desconhecida irá resultar em erro.

contacts ([PersonContactInput]) Contatos do usuário

addresses ([AddressInput]) Endereços postais

card (CreateProvisionedCardInput) O cartão criado e associado ao portador.

Parâmetros de saída

clientMutationId (String)

user (ProvisionedUser) O usuário modificado com os novos campos

cards ([Card]) O cartão criado e associado ao portador.

cardTokens ([CardToken]) O token criado, seu PAN e CSC (Código de Segurança) são retornados usando seu membro sensitive.

addPublicKeyToProvisionedUser (AddPublicKeyToUserPayload!)

Adiciona uma chave pública a um usuário provisorio

Em geral cada dispositivo ou servidor associado ao usuário deverá exportar uma chave pública a fim de poder enviar ou receber dados sensíveis, tais como CardInterface { sensitive(keyId: "X") }

As chaves devem possuir um identificador id único para o usuário e será fornecido como keyId para consultas ou mutações que utilizem a chave pública, por exemplo para assinaturas (JSON Web Signature - JWS) ou cifras (JSON Web Encryption - JWE).

As chaves associadas a um usuário estão disponíveis em publicKeys.

Parâmetros de entrada

clientMutationId (String) Identificador de cliente opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

userId (ID!) Identificador global único do Usuário a adicionar chave pública

key (String!) Conteúdo da chave pública. O formato é especificado em format.

Caso a chave já esteja associada ao usuário ela não será adicionada novamente e a mutação retornará a publicKey já existente, com o mesmo id.

format (CryptoKeyFormat) Formato da chave key.

Se null, tenta descobrir à partir do conteúdo de key.

Parâmetros de saída

clientMutationId (String)

user (User) O usuário o qual teve chave adicionada.

publicKey (PublicKey) A chave adicionada.

Note que o campo publicKey { id } contém o identificador da chave a ser utilizado em outras operações como removePublicKeyFromUser(keyId: "X") ou CardInterface { sensistive(keyId: "X") }

createProvisionedCard (CreateCardPayload)

Cadastra um Cartão para um Usuário Provisorio.

O cadastro de um cartão deve ser feito pelo Usuário Provisorio, Merchant ou pelo emissor do cartão, sendo verificado:

  • Emissor: se o emissor é responsável pelo BIN do cartão, obtido à partir do número do cartão (pan) nos campos cifrados sensitive. O emissor deve ter permissão de criar cartões para o portador, conseguindo assim o seu holderId (CardHolder { id }).

    Os dados do cartão são inferidos à partir do BIN, ou seja, do prefixo do número do cartão (pan) descrito em sensitive.

Parâmetros de entrada

clientMutationId (String) Identificador de cliente opaco, normalmente em formato UUIDv4.

Deve ser usado por clientes para rastrear mutações e respostas, podendo ser usado pelo servidor para perder requisições duplicadas devido a falhas de rede e retransmissões.

Compatível com Relay.

userId (String!) Identificador global único referente ao usuário.

sensitive (String) Conteúdo sensível (número do cartão, código de verificação e validade) o qual foi assinado e então cifrado conforme a estrutura a seguir.

Estrutura de assinatura e criptografia:

  JWE.Encrypt(recipient=ServerKey, format=compact,
      JWS.Sign(issuer=UserKey, format=compact,
          JSON.Stringify(CardSensitiveInput)
      )
  )

Ou seja, os dados conforme o esquema JSON CardSensitiveInput devem ser serializados e então assinados utilizando JSON Web Signature (JWS) em formato compacto e então cifrados utilizando JSON Web Encryption (JWE) também em formato compacto. O resultado final deve ser utilizado como valor deste parâmetro.

O esquema define as seguintes chaves para o objeto de entrada (CardSensitiveInput):

  • pan: O número da conta primária (Primary Account Number), também conhecido como \"número do cartão\" físico. Exemplo: "1234567890123456"
  • expiry: Data de validade do cartão, ou seja, quando ele expira. É um objeto composto pelas chaves month e year descritas a seguir. Exemplo: {"month": 2, "year": 2020}
    • month: Mês da validade do cartão. Número inteiro entre 1 (Janeiro) e 12 (Dezembro).
    • year: Ano da validade do cartão. Número inteiro com 4 dígitos (2017, não 17).
  • name: Nome do portador do cartão. Exemplo: "João da Silva".

    A autorização é feita com os campos csc ou authCode e seus respectivos horários de entrada. Note que apenas um deles deve ser especificado:

JSON Schema: CardSensitiveInput.json

O número do cartão (pan) será utilizado para descoberta dos demais campos do cartão, como availableServices, bin, funding, product, isInternational, isCompany, isToken, brand, allowedCaptures, usages, network, issuer e metadata.

bin (String) O tamanho do número em caracteres define o tamanho do prefixo utilizado. 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! Veja também panSizeRange, afinal quando o tamanho do prefixo muda, em geral muda-se também o tamanho total do cartão.

last4 (String) Últimos 4 dígitos do cartão, para ser mostrado ao usuário Pode ser nulo dependendo de permissões e acesso.

billingAddress (AddressInput) Endereço de cobrança do cartão.

usageConstraints (CardUsageConstraintsInput) Restrições de uso do cartão.

Caso indisponível ou sem restrições, usar null.

Parâmetros de saída

clientMutationId (String)

card (Card) O cartão criado e associado ao portador.

Note que o portador pode ser consultado em Card { holder }.

Gender

Opções de gênero

Parâmetros de entrada

FEMALE

MALE

MaritalStatus

Opções de estado civil

Parâmetros de entrada

DIVORCED Divorciado

MARRIED Casado

SINGLE Solteiro

WIDOWED Viúvo

COMMON_LAW_MARRIED União estável

PersonContactType

Tipo de contato com pessoa física.

Parâmetros de entrada

PHONE o valor é um número de telefone, celular ou fax

EMAIL o valor é um e-mail

IM aplicativo de mensagens instantâneas O valor é um identificador de usuário com o campo de contexto

OTHER valor que segue texto livre

VerifiedStatus

Estados de verificação.

Utilizado, por exemplo, para verificação de contatos de um portador.

Parâmetros de entrada

UNVERIFIED O ítem ainda não foi verificado.

PENDING Iniciou-se o processo de verificação, porém ele ainda não foi concluído. Após a conclusão mudará para VERIFIED ou FAILED.

VERIFIED O ítem foi verificado com sucesso.

FAILED O ítem falhou verificação.

NOT_APPLICABLE O processo de verificação não se aplica a este ítem.

CardStatus

Estado do cartão

Cada estado possui seu próprio payload em implementações específicas de CardStatusInterface. Use fragmentos para consultar seus campos.

Parâmetros de entrada

INACTIVE Cartão não foi ativado

ACTIVE Cartão foi ativado e está pronto para o uso

SUSPENDED Cartão foi suspenso e não pode ser utilizado

CardFunding

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

Parâmetros de entrada

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)

CodeProduct

Código que identifica produto. Pode ser adicionados novos registros nessa lista. Exemplos de Produtos Elo:

Parâmetros de entrada

BASIC

  • BÁSICO

BUSINESS

  • EMPRESARIAL

CORPORATE

  • CORPORATIVO

ELO_PLUS

  • ELO MAIS

SHOPPING

  • COMPRAS

GRAFITE

  • GRAFITE

NANQUIM

  • NANQUIM

AWARDS

  • PREMIAÇÃO

CORPORATE_EXPENDITURE

  • DESPESAS CORPORATIVAS

TRAVEL

  • VIAGEM

CORPORATE_NANQUIM

  • CORPORATIVO NANQUIM

GRAFITE_BUSINESS

  • EMPRESARIAL GRAFITE

PAYMENT_OF_SUPPLIERS

  • PAGAMENTO DE FORNECEDORES

GENERAL_USE

  • USO GERAL

GIFT_CARD

  • GIFT CARD

PAYMENTS

  • PAGAMENTOS

CompanyContactType

Tipo de contato com a empresa.

Parâmetros de entrada

PHONE o valor é um número de telefone, celular ou fax

EMAIL o valor é um e-mail

IM aplicativo de mensagens instantâneas O valor é um identificador de usuário com o campo de contexto

OTHER valor que segue texto livre

TripType

Indicador do tipo de viagem. Pode ser adicionados novos registros nessa lista. Valores possíveis:

Parâmetros de entrada

AIR

  • Viagem Aérea

SEA

  • Viagem Marítima

ROAD

  • Viagem Terrestre.

CardHolderInsuranceStatus

Estado do Seguro

As transições de estado de um seguro são:

  • RECEIVED
  • HIRED
  • CANCELED

Parâmetros de entrada

RECEIVED Solicitação de contratação do seguro foi registrada.

HIRED Seguro contratado.

CANCELED Seguro cancelado e não está mais vigente.

CardTransactionStatus

Estado da Transação feita por Comerciante via Facilitador

Parâmetros de entrada

APPROVED Aprovada

REJECTED Negada

RETURNED Desfeita

REFUNDED Estornada ou Cancelada

CHARGEBACK TODO Confirmar ??? senão unificar com Facilitadores PSPTransactionStatus

TrackType

Tipo de filtro para trilha do cartão.

Parâmetros de entrada

SELLER Vendedor

CardFraudTransactionStatus

Estado da Transação fraudulenta

Parâmetros de entrada

RECEIVED Recebida

IN_PROGRESS Em processamento

PROCESSED Processada

COMPLETED Concluido

LiabilityType

Identifica se o emissor ou o comerciante é responsável pela transação fraudulenta.

Parâmetros de entrada

YES Issuer is liable

NO Merchant is liable

NOT_APPLICABLE Not Applicable

InitiatedType

Identificar se o emissor ou o portador de cartão detectou a fraude.

Parâmetros de entrada

CARD_ISSUER Emissor

CARD_HOLDER Portador

GeolocationSource

Define a origem de uma informação geolocalizada.

Parâmetros de entrada

USER Preenchimento manual pelo usuário

CELLULAR Adquirido da rede celular.

WIFI Adquirido da rede WiFi.

GPS Adquirido do GPS (exemplos: carro, smartphone, tablet...)

DeviceType

Tipo de dispositivo do usuário.

Este tipo pode ser usado para auxiliar na interação com o usuário, como usando ícone do dispositivo se não houver uma imagem específica para uma marca e modelo.

Parâmetros de entrada

DESKTOP Computador pessoal (PC)

LAPTOP Laptop/Notebook

SMARTPHONE Smartphone

TABLET Tablet

E_READER Leitores de livros digitais (Electronic Book Readers - e-Readers)

WATCH Relógio ou pulseira. Exemplos: Apple Watch, Fitbit, Samsung Gear

OTHER_WEARABLE Outros dispositivos vestíveis (wearable) (que não relógios)

CAR Carro

MOTORCYCLE Motocicleta

BOAT Barco

AIRPLANE Avião

OTHER_VEHICLE Outros veículos (que não carro, motocicleta, barco ou avião)

PORTABLE_GAME_CONSOLE Vídeo games portáveis, como PS Vita, Nintendo 3DS...

GAME_CONSOLE Consoles de vídeo games, como PS4, XBox360

CAMERA Câmera de fotografia ou filmagem

SMARTTV TV Inteligente (SmartTV)

PORTABLE_MEDIA_DEVICE Dispositivos de mídia portáveis, como iPod.

MEDIA_DEVICE Dispositivos de mídia não portáveis, como DVD Player, Home Theater

HOME_APPLIANCE Eletrodomésticos como geladeiras ou torradeiras.