Usuário Provisório

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



Query (consulta) de usuários provisorio.

Argumentos:

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.






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.

Argumentos:

input: CreateProvisionedCardInput obrigatório



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.

Argumentos:

input: AddPublicKeyToUserInput obrigatório



Cria um ProvisionedUser de Usuário

Argumentos:

input: CreateProvisionedUserInput obrigatório



Altera os dados de um ProvisionedUser de Usuário

Argumentos:

input: UpdateProvisionedUserInput obrigatório






Entrada para LegalIds

Campos:

cpf

:

String

Número CPF sem hífen ou pontos


cnpj

:

String

Número CNPJ sem hífen ou pontos


rg

:

RGInput

documento de Registro Geral (RG)



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.

Campos:

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.



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

Campos:

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 obrigatório

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


city

:

String obrigatório

Nome da cidade em UTF-8


state

:

String obrigatório

Nome do estado por completo.


stateAbbrev

:

String

Nome do estado abreviado (opcional).


zip

:

String

Código postal (opcional).


district

:

String

Distrito opcional


kind

:

String

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


number

:

Int obrigatório

Número da construção


place

:

String obrigatório

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.



Entrada para mutação createProvisionedCard().

Compatível com Relay.

Campos:

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 obrigatório

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:

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.


hashCard

:

String

Hash número do cartão utilizando algoritmo SHA256.



Entrada para mutação addPublicKeyToUser()

Compatível com Relay.

Campos:

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 obrigatório

Identificador global único do Usuário a adicionar chave pública


key

:

String obrigatório

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.



Entrada para renda anual de uma pessoa física.

Campos:

personal

:

Float obrigatório

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


family

:

Float obrigatório

Renda anual total da família da pessoa física.


currency

:

String obrigatório

Moeda associada aos valores informados.

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



Entrada para ítem de contato com o portador de cartão, como email ou telefone...

Campos:

type

:

PersonContactType obrigatório

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 obrigatório

Valor do contato. Exemplos: +12345678 para telefone, `user@server.com` para email, etc.



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.

Campos:

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 obrigatório

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

:

Contatos do usuário


addresses

:

list de AddressInput

Endereços postais


origin

:

String

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



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.

Campos:

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

:

ID obrigatório

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

:

Contatos do usuário


addresses

:

list de AddressInput

Endereços postais


card

:

CreateProvisionedCardInput

O cartão criado e associado ao portador.






PageInfo compatível com Relay.

Campos:

hasPreviousPage

:

Boolean obrigatório

hasNextPage

:

Boolean obrigatório

startCursor

:

String

endCursor

:

String


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

Campos:

cursor

:

String obrigatório

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


node

:

ProvisionedUser

O objeto User que compõe esta aresta de conexão.



Conexão de ProvisionedUsers em conformidade com o Relay.

Campos:

pageInfo

:

PageInfo obrigatório

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


edges

:

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.



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

Campos:

id

:

ID obrigatório

sensitive

(


keyId:

String

)

:

String

last4

:

String

expiry

:

CardExpiry

holder

:

CardHolder

billingAddress

:

Address

status

:

CardStatusInterface obrigatório

availableServices

:

list de CardHolderService obrigatório

usedServices

:

list de CardHolderService obrigatório

bin

:

BIN

funding

:

CardFunding

product

:

CardProduct

isInternational

:

Boolean

isCompany

:

Boolean

isToken

:

Boolean

cardTokens

:

CardTokensConnection

Retorna uma conexão para os tokens relacionados a esse cartão


brand

:

CardBrand

allowedCaptures

:

list de CardCapture obrigatório

usages

:

list de CardUsage obrigatório

network

:

CardNetwork

issuer

:

CardIssuer

metadata

:

CardMetadata

trackings

:

list de 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

(


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:

CardTransactionFilterInput

Aplica filtro, se provido.

)

:

CardTransactionsConnection

transactionsSummary

(


filter:

CardTransactionSummaryFilterInput

Aplica filtro, se provido.

)

:

list de CardTransactionCategorySummary obrigatório

fraudTransactions

(


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:

CardFraudTransactionFilterInput

Aplica filtro, se provido. Consulta as transações fraudulentas que já foram processadas. Apenas Card Issuer pode realizar essas consulta.

)

:

CardFraudTransactionsConnection

queueFraudTransactions

(


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:

CardFraudTransactionFilterInput

Aplica filtro, se provido. Consulta as transações fraudulentas que estão na fila de processamento. Apenas Card Issuer pode realizar essas consulta.

)

:

CardFraudTransactionsConnection


Retorno da mutação createCard().

Compatível com Relay.

Campos:

clientMutationId

:

String

card

:

Card

O cartão criado e associado ao portador.

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



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

Campos:

id

:

ID obrigatório

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

(


language:

String

Língua a ser utilizada no retorno da consulta.

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.

)

:

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

(


width:

Int

Caso fornecido, largura da imagem, em pixels.

height:

Int

Caso fornecido, altura da imagem, em pixels.

mimeType:

String

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

)

:

ImageUrl

URL 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

:

list de PersonContact obrigatório

Contatos do usuário


addresses

:

list de Address obrigatório

Endereços postais


cardHolders

:

list de CardHolder obrigatório

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

:

list de Merchant obrigatório

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

:

list de CardIssuer obrigatório

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

:

list de SocialNetworkInterface obrigatório

Redes sociais relacionadas ao usuário


agreements

:

list de UserAgreement obrigatório

Termos de uso aceitos pelo usuário


accessTokens

:

list de AccessTokenInfo obrigatório

Lista de chaves de acesso ativas para este usuário


publicKeys

:

list de PublicKey obrigatório

Lista de Chaves Públicas conhecidas para este usuário



Campos:

id

:

String obrigatório

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 obrigatório

A chave serializada no formato requerido.

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


fingerprint

(


hash:

CryptoHashAlgorithm

)

:

String obrigatório

Fingerprint da chave utilizando o algoritmo de hash requerido.

Se nenhum algoritmo for especificado, será usado SHA256.



Retorno da mutação addPublicKeyToUser().

Compatível com Relay.

Campos:

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") }



Retorno da mutação CreateProvisionedUser().

Compatível com Relay.

Campos:

clientMutationId

:

String

id

:

ID obrigatório

Identificador Global Único para este Lead


name

:

String

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



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

API Privada

Campos:

id

:

ID obrigatório

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 obrigatório

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

(


language:

String

Língua a ser utilizada no retorno da consulta.

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.

)

:

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

:

list de PersonContact

Contatos do usuário


addresses

:

list de Address

Endereços postais


cards

(


track:

TrackFilter

funding:

CardFunding

)

:

list de Card

O cartão criado e associado ao portador.


cardTokens

:

list de CardToken

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


migrated

:

Boolean obrigatório

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

:

list de UserAgreement obrigatório

Termos de uso aceitos pelo usuário



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.

Campos:

id

:

ID obrigatório

sensitive

(


keyId:

String

)

:

String

last4

:

String

expiry

:

CardExpiry

holder

:

CardHolder

billingAddress

:

Address

status

:

CardStatusInterface obrigatório

usageConstraints

:

CardUsageConstraints

availableServices

:

list de CardHolderService obrigatório

usedServices

:

list de CardHolderService obrigatório

bin

:

BIN

funding

:

CardFunding

product

:

CardProduct

isInternational

:

Boolean

isCompany

:

Boolean

isToken

:

Boolean

brand

:

CardBrand

allowedCaptures

:

list de CardCapture obrigatório

usages

:

list de CardUsage obrigatório

network

:

CardNetwork

issuer

:

CardIssuer

metadata

:

CardMetadata

transactions

(


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:

CardTransactionFilterInput

Aplica filtro, se provido.

)

:

CardTransactionsConnection

transactionsSummary

(


filter:

CardTransactionSummaryFilterInput

Aplica filtro, se provido.

)

:

list de CardTransactionCategorySummary obrigatório

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.



Retorno da mutação UpdateProvisionedUser().

Compatível com Relay.

Campos:

clientMutationId

:

String

user

:

ProvisionedUser

O usuário modificado com os novos campos


cards

:

list de Card

O cartão criado e associado ao portador.


cardTokens

:

list de CardToken

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





Formato de Chave criptográfica a ser serializada ou interpretada.


Valores possíveis:


PEM

Privacy Enhanced Mail PEM


X509

Certificado X.509




Opções de gênero


Valores possíveis:


FEMALE


MALE




Opções de estado civil


Valores possíveis:


DIVORCED

Divorciado


MARRIED

Casado


SINGLE

Solteiro


WIDOWED

Viúvo


COMMON_LAW_MARRIED

União estável