Peer-to-Peer (P2P)

Pagamento instantâneo é toda transferência eletrônica de recursos na qual a transmissão da mensagem de pagamento e a disponibilidade de fundos para o recebedor ocorrem em tempo real. A Elo oferece através da API de P2P a possibilidade de transferência eletrônica entre 2 portadores de cartão.

Feito para:  Estabelecimentos ComerciaisEmissoresAdquirentesFacilitadoresOutros Desenvolvedores

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

Esta API permite a realização de transações monetárias instantâneas entre 2 indivíduos, possibilitando que o dinheiro transferido esteja na conta/cartão do destinatário em poucos minutos. O objetivo é que as transferências possam ser feitas a qualquer momento e no formato que o usuário desejar. Com isso, uma pessoa poderia enviar dinheiro de sua conta corrente ou cartão para o cartão de crédito de outra pessoa a qualquer hora do dia ou qualquer dia da semana, sem restrições de horário.

As requisições de transferências e/ou pagamentos P2P da Elo devem ser feitas no padrão GraphQL.

Para que uma transação seja realizada com sucesso dentro do ecossistema Elo é necessário saber quem são os portadores de cartão envolvidos e assim realizar cada chamada a API seguindo os passos abaixo.

Em algumas chamadas, nota-se o campo sensitive e/ou o campo cardId. Ambos os campos representam informações de cartão, mas de formas diferentes:

  • No campo cardId, é informado o id de um cartão previamente cadastrado na base; na mutation, todas as informações da transação serão atreladas ao cartão que contém este id.

  • No campo sensitive, são informados os dados sensíveis do cartão, assinados e critografados para garantir a segurança no tráfego das informações. Este campo é inserido caso não exista um cartão previamente cadastrado na base, ou caso não seja possível ter acesso ao id de algum cartão previamente cadastrado. Para mais detalhes sobre este campo, acesse a documentação do sensitive.

Caso exista a opção de ambos os campos em uma mutation, será possível realizar a chamada ou através do cardId ou através do sensitive.

Usado para obter fundos de uma conta com cartão Elo com o propósito de realizar uma transferência. Essa ação pode acontecer quando um portador da bandeira Elo deseja transferir dinheiro para outro portador Elo.

Utilizada para retirar fundos de uma conta, esta mutation é feita por um usuário portador de cartão (CardHolder), que estará referenciando dentro dela qual o cartão que foi utilizado. A identificação do usuário estará em seu access_token.

A referência ao cartão de origem desta transação é realizada através dos campos cardId ou sensitive.

Abaixo, a mutation createPullTransfer:

mutation{
    createPullTransfer(
        input:{
            clientMutationId: "12345"
            acquirer:{
                id: "d9325232-84fe-46ed-bd6c-ba010f99b7c7"
                countryCode: "BRA"
                code: "01"
            }
            merchant:{
                name: "Teste"
                legalName: "Teste LTDA"
                description: "description merchant",
                legalIds:{
                    cnpj: "121212121212121",
                    rg: {
                        number: "444"
                        issueDate: "2010-12-31"
                        issuerState: "sp",
                        issuerOrganization: "ulo"
                    }
                }
                contact:{
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
                address:{
                    context: "casa",
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                url: "WWW.ELO.COM.BR",
                iso: 1111
                countryCode: "BRA"
                idCode: "123"
            }
            # Caso você possua um cartão já cadastrado basta utilizar seu cardId
            cardId: "1234"
            # se você não o possuir utilize o campo sensitive
            sensitive: "dasdpaiwqoedandk1993u1ekqkejqweuq90193ueqdm"

            amount:{
                currency: "BRL"
                value: "10.00"
            }
            systemsTraceAuditNumber: "123"
            transactionDateTime: "2018-10-30T12:00:00-03:00"
            transactionIdentifier: "123"
            retrievalReferenceNumber: "123"
            codeUsage: 70 
            origin: {
                geolocation: {
                    lon: 9,
                    lat: 8,
                    alt: 7,
                    precision: 6,
                    source: GPS
                },
                device: {
                    userAgent: "user AGENT",
                    brand: "BRAND",
                    model: "MODEL",
                    type: MOTORCYCLE,
                    serialNumber: "832809320983429804328",
                    imei: "WS2@",
                    os: "77636363",
                }
            },
            pointOfService: {
                type: 3
                localization: 3
                cardPresentTransaction: false
                cardCaptureCapability: 0
                securityTransaction: 0
                typePOS: "M"
                inputCapability: "C"
                panEntryMode: "86"
                terminalIdentifier: "12345678"
            } 
        }
    )
    {
        clientMutationId
        cardHolder{
            id
            name
            legalIds{
                cpf{ number }
            }            
        }    
        cardTransaction {
            id
            status 
              currency
              value
        }    
    }
}

Sobre os campos utilizados nesta mutation temos:

  • acquirer Dados do adquirente responsável pela transação

  • merchant Informações do Comerciante. Possui campos como razão social, nome fantasia, documentos legais (CNPJ) e categorias (MCC).

    • merchant.name Nome visível publicamente. Normalmente nome bem conhecido, marca, etc.

    • merchant.legalName Nome legal, como escrito em documentos.

    • merchant.description Descrição da empresa para ser apresentado a usuários.

    • merchant.legalIds Todos os documentos legais de identificação da empresa.

    • merchant.contact Contato do comerciante

    • merchant.address Endereço postal. O campo zip deve ser sempre preenchido.

    • merchant.url Endereço Virtual (Uniform Resource Locator).

    • merchant.iso Código ISO18245. Também conhecido como MCC (Merchant Category Code), tem 4 dígitos.

    • merchant.countryCode Identificador Global Único do país onde está localizado o Merchant, código 076 (Brasil). ISO 3166-1 numeric

    • merchant.idCode Identificação do Estabelecimento Comercial cadastrado junto à Elo pelo Credenciador ou pelo Facilitador no momento do ajuste cadastral do Estabelecimento Comercial.

  • cardId Caso o usuário já possua cartões cadastrados é possível fornecer o id do cartão em que será efetuada a transferência (Este campo elimina a necessidade de fornecer o proximo campo sensitive do cartão.)

  • sensitive Caso o usuário logado não possua cartões é possível efetuar a transação a partir dos dados sensiveis de um cartão criptografados, veja mais detalhes na documentação do Cadastro de Portador

  • amount Informação sobre o valor a ser transferido

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

    • amount.value Valor total da transação, com duas casas decimais após um ponto. Ex: 1000.00 (mil), 1000.55 (mil e cinquenta e cinco centavos).

  • systemsTraceAuditNumber O STAN é o número designado pelo originador de uma transação para auxiliar a identificação da transação com cartão

  • transactionDateTime Data e hora de onde ocorreu a transação (GMT)

  • transactionIdentifier Número de Referência atribuido pelo Originador da Transferência de Fundos.

  • retrievalReferenceNumber Número serial único (NSU) para identificar a transação

  • codeUsage Uso do Cartão Ex.: Crédito à Vista = 70 / Débito = 71

  • pointOfService Dados relacionados ao terminal (POS) onde a transação está sendo feita.

    • pointOfService.type Tipo do terminal

      • 0 -> Terminal com atendimento (EC possui operador para o terminal)

      • 1 -> Terminal com autoatendimento (Ex.: Vending Machines)

      • 2 -> Sem Terminal (Ex.: URA/Voz/e-Commerce)

      • 3 -> Celular (Mobile)

    • pointOfService.localization Indicador de localização do terminal

      • 0 -> No estabelecimento comercial

      • 1 -> Fora estabelecimento comercial (terminal remoto)

      • 2 -> Junto ao portador (Ex.: PC nos casos de e-Commerce)

      • 3 -> Sem Terminal (Ex.: Voz/URA)

    • pointOfService.cardHolderPresentTransaction Indicador de presença do portador.

      • 0 -> Portador está presente.

      • 1 -> Portador não presente, não especificado.

      • 2 -> Portador não presente, Mail/FAX Order.

      • 3 -> Portador não presente, Telephone Order.

      • 4 -> Portador não presente, Standing Order/Pagamento recorrente.

      • 5 -> Eletronic Order (Ex.: e-Commerce)

    • pointOfService.cardPresentTransaction Indicador de presença do Cartão

      • True -> Cartão presente.

      • False -> Cartão não presente.

    • pointOfService.cardCaptureCapability Indicador de capacidade de captura de Cartão

      • 0 -> Terminal (POS)/Operador não tem capacidade de captura de cartão.

      • 1 -> Terminal (POS)/Operador tem capacidade de captura de cartão.

    • pointOfService.securityTransaction Indicador de segurança da transação

      • 0 -> Não há suspeita.

      • 1 -> Existe suspeita de fraude por parte do EC.

      • 2 -> Foram verificados os documentos do portador

    • pointOfService.typePOS Tipo de POS do terminal

      • M -> POS Mobile.

      • P -> POS.

      • T -> TEF.

      • 0 -> Não especificado.

    • pointOfService.inputCapability Capacidade de entrada do Terminal. Enviar apenas o identificador. Exemplo: "C"

      • 0 -> Indefinido

      • 1 -> Sem Terminal (URA/Voz)

      • 2 -> Leitor de trilha magnética

      • 3 -> Leitor de código de barras

      • 4 -> Leitor OCR

      • 5 -> Leitor de CHIP

      • 6 -> Digitado

      • 7 -> Leitor de trilha e digitado

      • C -> Radio Frequency Identification (RFID) – CHIP (Contactless)

      • H -> Hibrido – CHIP e Contactless

      • R -> Radio Frequency Identification (RFID) – Trilha Magnética

      • S -> Secure Eletronic Transaction (SET) com certificado

      • T -> Secure Eletronic Transaction (SET) sem certificado

      • U -> Channel-encrypted Eletronic Commerce Transaction (SSL)

      • V -> Non-secure Eletronic Commerce Transaction

    • pointOfService.panEntryMode Indica o modo de entrada do número do cartão. Enviar apenas o identificador. Exemplo: "00"

      • 00 Desconhecido

      • 01 Manual

      • 02 Tarja magnética

      • 03 Código de barras / Código de pagamento

      • 04 Optical Character Reader (OCR)

      • 05 Leitor de Circuito Integrado de Cartões

      • 07 E-commerce

      • 10 Conta cartão armazenada

      • 81 Indicador de Identificador de Rádio Frequência – Tarja magnética

      • 82 Mobile Commerce (mCommerce)

      • 83 Indicador de Identificador de Rádio Frequência – Chip

      • 85 Fallback do chip

      • 86 Mudança de interface Contactless

      • 90 Autorizações de voz

      • 91 Voice Response Unit (VRU) / (URA)

      • 92 Batch de autorizações

      • 93 Batch de autorizações Cash Access

    • pointOfService.terminalIdentifier Esse campo é um identificador do terminal de vendas. Exemplo: "00000000"

NOTA: No retorno desta mutation é possível efetuar a query cardTransaction que irá listar transações de todos os cartões do usuário logado.

Também realizada para retirar fundos de uma conta, esta mutation é feita por um terceiro que necessite realizar a operação para um portador de cartão. Por esta razão, a mutation é realizada por um usuário que não seja portador de cartão (CardHolder).

A seguir, a mutation createPullTransferToUser:

mutation{
    createPullTransferToUser(
        input:{
            clientMutationId: "1212121"
            acquirer: {
                id: "d9325232-84fe-46ed-bd6c-ba010f99b7c7"
                countryCode: "BRA"
                code:  "01"
            }
            merchant: {
                name: "Teste"
                legalName: "Teste LTDA"
                legalIds: {
                    cnpj: "121212121212121"
                }
                contact: {
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
                address: {
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                description: "description merchant"
                url: "WWW.ELO.COM.BR",
                iso: 1111
                countryCode: "BRA"
                idCode: "123"
            }
            sender: {
                sensitive: "1213dadasdadwqeqweqe2qeasdfaqdas123134rtghdgfjfh"
                name: "Zé 124"
                firstName: "Zé"
                legalIds: {
                    cpf: "1112223444"
                    rg: {
                        number: "315689808"
                        issueDate: "2010-12-31"
                        issuerState: "sp",
                        issuerOrganization: "ssp"
                    }
                }
                contact: {
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
                address: {
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                birthday: "1992-02-14"
                sourceOfFundsCode: "02"
            }
            amount:{
                currency: "BRL"
                value: "10.00"
            }
            systemsTraceAuditNumber: "123"
            transactionDateTime: "2018-10-30T12:00:00-03:00"
            transactionIdentifier: "112"
            retrievalReferenceNumber: "123"
            codeUsage: 70
            origin: {
                geolocation: {
                    lon: 9,
                    lat: 8,
                    alt: 7,
                    precision: 6,
                    source: GPS
                },
                device: {
                    userAgent: "user AGENT",
                    brand: "BRAND",
                    model: "MODEL",
                    type: MOTORCYCLE,
                    serialNumber: "832809320983429804328",
                    imei: "123456789098765",
                    os: "77636363",
                }
            },
            pointOfService: {
                type: 3
                localization: 3
                cardPresentTransaction: false
                cardCaptureCapability: 0
                securityTransaction: 0
                typePOS: "M"
                inputCapability: "C"
                panEntryMode: "86"
                terminalIdentifier: "12345678"
            } 
        }
    )
    {
        clientMutationId
        cardTransaction{
            id
            value
            status
            value
            currency                     
        }
    }
}

Nesta mutation temos apenas o campo sender diferente da anterior:

  • sender possui as informações da pessoa e seu cartão que esta efetuando a transferência.

    • sender.sensitive Conteúdo sensível do cartão o qual foi assinado e então cifrado.

    • sender.name Nome completo, como nos documentos oficiais (RG, CPF)

    • sender.firstName Primeiro nome

    • sender.lastName Último nome

    • sender.displayName Nome a ser exibido (exemplo: encurtado, alias...)

    • sender.legalIds Todos os documentos legais de identificação.

    • sender.birthday Data de nascimento

    • sender.gender Masculino ou Feminino, conforme documentos oficiais

    • sender.maritalStatus Estado civil

    • sender.income Renda anual (individual e familiar).

    • sender.occupationId Profissão. Utilize valores já conhecidos e retornados na consulta personOccupations, membros id.

    • sender.contact Contato

    • sender.address Endereço

    • sender.sourceOfFundsCode Identifica a fonte dos fundos utilizada pelo remetente.
      valores:
      01 -> Crédito
      02 -> Débito
      03 -> Pré-Pago
      04 -> Dinheiro
      05 -> Cheque
      06-16 -> Reservado para Uso Futuro
      17 -> Conta Corrente
      18 -> Conta Poupança
      19 -> Outro

Após ter retirado o valor da conta, cartão de origem é possivel efetuar o envio deste valor para outra conta de cartão Elo ou à uma conta de depósito e assim concluir a transferência dos valores.

Essa mutation é utilizada para efetuar o envio de fundos que foram retirados através de uma transação previamente. Esta mutation é feita por um usuário portador de cartão (CardHolder), que estará referenciando dentro dela qual o cartão que foi utilizado.A identificação do usuário estará em seu access_token.

A referência ao cartão de origem desta transação é realizada através dos campos cardId ou sensitive, e as informações do usuário que receberá o valor estão no campo receiver.

A seguir, a mutation para o envio de fundos:

mutation{
    createPushTransfer(
        input:{
            clientMutationId: "33333"
            acquirer:{
                id: "d9325232-84fe-46ed-bd6c-ba010f99b7c7"
                countryCode: "BRA"
                  code: "01"
            }
            merchant: {
                name: "Teste"
                legalName: "Teste LTDA"
                description: "description merchant",
                legalIds:{
                    cnpj: "121212121212121"
                }
                contact:{
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
                address:{
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                url: "WWW.ELO.COM.BR",
                iso: 1111
                countryCode: "BRA"
                idCode: "123"
            }

            # Caso você possua um cartão já cadastrado basta utilizar seu cardId
            cardId: "1234"
            # se você não o possuir utilize o campo sensitive
            sensitive: "dasdpaiwqoedandk1993u1ekqkejqweuq90193ueqdm"

            amount:{
                currency: "BRL"
                value: "10.00"
            }

              #Informações de quem irá receber o valor transacionado
            receiver:{
                name: "João"
                legalIds:{
                    cpf: "1233133123457890"
                }
                address:{
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                birthday: "1992-02-14"
                gender: MALE,
                maritalStatus: COMMON_LAW_MARRIED,
                sensitive: "dasdpaiwqoedandk1993u1ekqkejqweuq90193ueqdm"
                income: {
                    personal: 123.00,
                    family: 1234.00,
                    currency: "BRL"
                },
                occupationId: "926d8567-8dc1-45c1-83bd-d7e1a2532239",
                contact:{
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
            }
            systemsTraceAuditNumber: "123"
            transactionDateTime: "2018-10-30T12:00:00-03:00"
            transactionIdentifier: "112"
            retrievalReferenceNumber: "123"
            codeUsage: 70
            origin: {
                geolocation: {
                    lon: 9,
                    lat: 8,
                    alt: 7,
                    precision: 6,
                    source: GPS
                },
                device: {
                    userAgent: "user AGENT",
                    brand: "BRAND",
                    model: "MODEL",
                    type: MOTORCYCLE,
                    serialNumber: "832809320983429804328",
                    imei: "098765432112345",
                    os: "77636363",
                }
            },
            pointOfService: {
                type: 3
                localization: 3
                cardPresentTransaction: false
                cardCaptureCapability: 0
                securityTransaction: 0
                typePOS: "M"
                inputCapability: "C"
                panEntryMode: "86"
                terminalIdentifier: "12345678"
            }
            transactionIdentifierPull: "3342b72f-2292-429b-b6e1-b9bc43e8c3a2"
            sourceOfFundsCode: "0"
        }
    )
    {
        clientMutationId        
        cardTransaction{
            id
            bin{ number }
            value
            status                    
        }
        receiver{
            name
            legalIds{
                cpf{ number }
            }            
        }
    }
}

Também utilizada para efetuar o envio de fundos, esta mutation é feita por um terceiro que necessite realizar a operação para um portador de cartão. Por esta razão, a mutation é realizada por um usuário que não seja portador de cartão (CardHolder).

A seguir, a mutation createPushTransferToUser:

mutation{
    createPushTransferToUser(
        input:{
            clientMutationId: "43434433"
            acquirer:{
                id: "d9325232-84fe-46ed-bd6c-ba010f99b7c7"                                
                countryCode: "BRA"
                  code: "01"
            }
            merchant: {
                name: "Teste"
                legalName: "Teste LTDA"
                description: "description merchant",
                legalIds:{
                    cnpj: "121212121212121"
                }
                contact:{
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
                address:{
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                url: "WWW.ELO.COM.BR",
                iso: 1111
                countryCode: "BRA"
                idCode: "123"
            }            
            amount:{
                currency: "BRL"
                value: "10.00"
            }
            sender: {
                sensitive: "dadqeoeko1e199amasmasjeieq"
                name: "Pedro"
                sourceOfFundsCode: "02"
                legalIds:{
                    cpf: "222222222222"
                }
                gender: MALE,
                maritalStatus: COMMON_LAW_MARRIED,
                income: {
                    personal: 123.00,
                    family: 1234.00,
                    currency: "BRL"
                },
                occupationId: "926d8567-8dc1-45c1-83bd-d7e1a2532239",
                contact:{
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
                address:{
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                birthday: "1992-02-14"
                sourceOfFundsCode: "19"
                sensitive: "dasdpaiwqoedandk1993u1ekqkejqweuq90193ueqdm"
            }
            receiver:{
                name: "João"
                legalIds:{
                    cpf: "1233133123457890"
                }
                income: {
                    personal: 123.00,
                    family: 1234.00,
                    currency: "BRL"
                },
                occupationId: "926d8567-8dc1-45c1-83bd-d7e1a2532239",
                contact:{
                    type: PHONE
                    context: "Trabalho"
                    value: "+5511999991111"
                }
                address:{
                    country: "Brasil"
                    city: "São Paulo"
                    state: "São Paulo"
                    zip: "123456788"
                    number: 1234
                    place: "Paulista"
                }
                birthday: "1992-02-14"
                  sensitive: "dasdpaiwqoedandk1993u1ekqkejqweuq90193ueqdm"
            }
            systemsTraceAuditNumber: "123"
            transactionDateTime: "2018-10-30T12:00:00-03:00"
            transactionIdentifier: "112"
            retrievalReferenceNumber: "123"
            codeUsage: 70
            origin: {
                geolocation: {
                    lon: 9
                    lat: 8
                    alt: 7
                    precision: 6
                    source: GPS
                }
                device: {
                    userAgent: "user AGENT"
                    brand: "BRAND"
                    model: "MODEL"
                    type: MOTORCYCLE
                    serialNumber: "832809320983429804328"
                    imei: "WS2@%4EEDD"
                    os: "77636363"
                }
            }    
            pointOfService: {
                type: 3
                localization: 3
                cardPresentTransaction: false
                cardCaptureCapability: 0
                securityTransaction: 0
                typePOS: "M"
                inputCapability: "C"
                panEntryMode: "86"
                terminalIdentifier: "12345678"
            }
            transactionIdentifierPull: "3342b72f-2292-429b-b6e1-b9bc43e8c3a2"
        }
    )
    {
        clientMutationId        
        cardTransaction{
            id
            bin{ number }
            value
            status                     
        }        
    }
}

Lembrando que esta mutation permite em seu retorno trazer os dados do sender e receiver para confirmar que a transação foi efetuada para as duas partes.

O campo transactionIdentifierPull pode ser preenchido para referenciar uma transação Pull feita anteriormente. Esse valor é um Identificador Global Único que pode ser obtido no payload das transações Pull.

NOTA: É importante notar que existem dois pares de mutations para efetuar a transferência com os dados de um usuário logado (createPullTransfer e createPushTransfer) e efetuar a transferência em nome de outra pessoa (createPullTransferToUser e createPushTransferToUser).

A API de P2P faz a validação de duplicidades nas transações. As regras para duplicidade são definidas a seguir.

O primeiro tipo de duplicidade é referente a identificação da transação. Cada app (client_id) tem que possuir um identificador de transação (campo transactionIdentifier) único para cada transação feita, independente do tipos retirada (pull) ou envio de fundos (push). Caso este valor se repita um erro de duplicidade será retornado.

O segundo tipo de verificação é referente aos dados da transação. Caso uma transação repita simultaneamente os valores dos campos retrievalReferenceNumber, transactionDateTime, amount.value e amount.currency (os dois últimos do objeto Amount) de uma transação anterior, é detectado duplicidade de transação e um erro será retornado.

Para casos em que a transação não tenha ocorrido com sucesso e houve algum erro (por exemplo, de conexão) em uma das etapas, é necessário informar as pontas que a transação não foi efetuada e a operação não deve ser mais realizada.

Esse processo é iniciado com a mutation de Aviso de Reversão, exibida a seguir:

mutation{
  createReverseTransactionNotification(
    input:{
      clientMutationId: "6548367",
      sensitive:"eyJhbGciOiJFQ0RILUVTIiwiZW5jIjoiQTEyOENCQy1IUzI1NiIsImVway...",
      transactionIdentifier:"1217",
      transactionDateTime: "2019-01-01T12:00:10-03:00",
      amount:{
        currency:"BRL",
        value:"150.00"
      },
      retrievalReferenceNumber:"6545",
      reasonCode:"01"
    }
  ){
    clientMutationId
    cardHolder{
      id
      name
      legalIds{
          cpf{ number }
      }
    }
    cardTransaction{
      id
      bin{ number }
      value
      status            
    }
  }
}

É preciso realizar o aviso de reversão dentro de 60 segundos após a realização da transação. Também é importante que, tirando o clientMutationId, que é uma propriedade da mutation em si, todos os campos tenham as mesmas informações da transação em questão. É através deles que os sistemas identificam qual transação precisa ser revertida.

Diferente do Aviso de Reversão, o processo de Reversão pode ser feito após o sucesso de uma Retirada ou Envio de Fundos, e é utilizado para desfazer uma destas etapas. Este fluxo é feito quando alguém quer desfazer uma transação realizada com sucesso. Ele tem um prazo maior para ser feito que o Aviso de Reversão.

É preciso enviar o cardId ou o sensitive do cartão envolvido na transação.

A reversão é feita através da mutation a seguir:

mutation{
    createReverseTransaction(
        input: {
            clientMutationId: "3232323"
            transactionId: "47025304-6554-45ba-a0a4-d93254b29a08"
            cardId: "39a94aca-2fb9-4cc6-b8fd-af7c4df63474"
            reasonCode: "076"
            authorization: {
                date: "2019-01-01T12:00:10-03:00"
                code: 1234
                decision: "Erro no envio"
            }
        }
    )
    {
        clientMutationId
        cardHolder{
            id
            name
            legalIds{
                cpf{ number }
            }
        }
        cardTransaction{
            id
            bin{ number }
            value
            status            
        }
    }
}

Para listar os dados de transações já efetuadas utilize as queries disponíveis na documentação de transações.

Para chamadas de Pull ou Push existe a possibilidade de timeout (tempo esgotado), pois há uma comunicação entre sistemas. Logo, quando houver um timeout, um Aviso de Reversão de transação deverá ser efetuado seguindo as regras definidas a seguir.

Existem dois tipos de timeouts, com código de status 504 ou com código de status 502.

O timeout com código 504 significa que a API irá fazer a notificação de reversão para as partes automaticamente. Neste caso o solicitante não precisa fazer a chamada.

Exemplo de retorno:

{
  "errors": [
    {
      "message": "{\"code\":\"504.001\",\"description\":\"Sent ISO message timeout\"}",
      "locations": [
        {
          "line": 2,
          "column": 2
        }
      ],
      "path": [
        "createPullTransfer"
      ]
    }
  ],
  "data": {
    "createPullTransfer": null
  }
}

O timeout com código 502 significa que a API não pode fazer a reversão. Neste caso o solicitante fica responsável por fazer a chamada de aviso de reversão utilizando a mutation createReverseTransactionNotification.

Exemplo de retorno:

{
  "errors": [
    {
      "message": "{\"code\":\"502.001\",\"description\":\"P2P Timeout - Send revert notification.\"}",
      "locations": [
        {
          "line": 2,
          "column": 2
        }
      ],
      "path": [
        "createPullTransfer"
      ]
    }
  ],
  "data": {
    "createPullTransfer": null
  }
}

Obs: O código de status retornado pelo GraphQL após o Pull ou Push será sempre 200 (OK) para a requisição, logo, os códigos 504 e 502 vem dentro do objeto error, no atributo code, definindo o valor do código de timeout, como demonstrado nos exemplos acima.




Solicita retirada de fundos de um portador. Apenas usuário do tipo CardHolder podem utilizar.

Argumentos:

input: CreatePullTransferInput obrigatório



Solicita envio de fundos de um portador. Apenas usuário do tipo CardHolder podem utilizar.

Argumentos:

input: CreatePushTransferInput obrigatório



Solicita retirada de fundos Usuário do tipo Merchant e CardIssuer podem utilizar.

Argumentos:

input: CreatePullTransferToUserInput obrigatório



Solicita envio de fundos Usuário do tipo Merchant e CardIssuer podem utilizar.

Argumentos:

input: CreatePushTransferToUserInput obrigatório



Solicita revisão de uma transação.

Argumentos:

input: CreateReverseTransactionInput obrigatório



Solicita revisão de uma transação. Esta mutation deve ser utilizada quando não for retornado o campo transactionId

Argumentos:






Entrada para as informações do Credenciador

Campos:

id

:

ID obrigatório

Identificador Global Único do adquirente que submeteu a transação do estabelecimento comercial. Este campo ajuda no tratamento de problemas fazendo um de-para para o estabelecimento comercial, especialmente no caso aonde a descrição do estabelecimento comercial não esta clara. No futuro pode ser utilizado como uma alternativa para descrição do estabelecimento comercial.


code

:

String obrigatório

Identificador Global Único do Credenciador junto a Elo.

Este campo identifica unicamente os números designados pela Elo para Estabelecimentos/Credenciador.


countryCode

:

String obrigatório

Identificador Global Único do país onde está localizado o Credenciador. Transações nacionais utiliza-se o código 076 (Brasil). ISO 3166-1 numeric



Entrada para os dados do comerciante.

Campos:

name

:

String obrigatório

Nome visível publicamente. Normalmente nome bem conhecido, marca, etc.


legalName

:

String obrigatório

Nome legal, como escrito em documentos.


description

:

String

Descrição da empresa para ser apresentado a usuários.


legalIds

:

LegalIdsInput obrigatório

Todos os documentos legais de identificação da empresa.


contact

:

PersonContactInput obrigatório

Contato do comerciante


address

:

AddressInput obrigatório

Endereço postal

  • O campo zip deve ser sempre preenchido.


url

:

String

Endereço Virtual (Uniform Resource Locator).


iso

:

Int obrigatório

Código ISO18245.

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


countryCode

:

String obrigatório

Identificador Global Único do país onde está localizado o Merchant, código 076 (Brasil). ISO 3166-1 numeric


idCode

:

String obrigatório

Identificação do Estabelecimento Comercial cadastrado junto à Elo pelo Credenciador ou pelo Facilitador no momento do ajuste cadastral do Estabelecimento Comercial.



Entrada para o valor da transação

Campos:

currency

:

String obrigatório

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


value

:

String obrigatório

Valor total da transação

A moeda é especificada em currency. São duas casas decimais Ex: 1000.00



Informação extra sobre a origem da transação de P2P. Importante o preenchimento do máximo possível.

Campos:

geolocation

:

GeolocationInput

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


device

:

DeviceInput

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.



Entrada para as informações do terminal

  • Caso seja um Credenciador todos os campos devem ser informados.

Campos:

type

:

Int

Tipo de Terminal.

Valores:

  • 0 -> Terminal com atendimento (EC possui operador para o terminal)

  • 1 -> Terminal com autoatendimento (Ex.: Vending Machines)

  • 2 -> Sem Terminal (Ex.: URA/Voz/e-Commerce)

  • 3 -> Celular (Mobile)


localization

:

Int

Indicador de Localização do Terminal

Valores:

  • 0 -> No estabelecimento comercial

  • 1 -> Fora estabelecimento comercial (terminal remoto)

  • 2 -> Junto ao portador (Ex.: PC nos casos de e-Commerce)

  • 3 -> Sem Terminal (Ex.: Voz/URA)


cardHolderPresentTransaction

:

Int

Indicador de presença do Portador Valores:

  • 0 -> Portador está presente.

  • 1 -> Portador não presente, não especificado.

  • 2 -> Portador não presente, Mail/FAX Order.

  • 3 -> Portador não presente, Telephone Order.

  • 4 -> Portador não presente, Standing Order/Pagamento recorrente.

  • 5 -> Eletronic Order (Ex.: e-Commerce)


cardPresentTransaction

:

Boolean

Indicador de presença do Cartão

Valores:

  • True -> Cartão presente.

  • False -> Cartão não presente.


cardCaptureCapability

:

Int

Indicador de capacidade de captura de Cartão

Valores:

  • 0 -> Terminal (POS)/Operador não tem capacidade de captura de cartão.

  • 1 -> Terminal (POS)/Operador tem capacidade de captura de cartão.


securityTransaction

:

Int

Indicador de segurança da transação

Valores:

  • 0 -> Não há suspeita.

  • 1 -> Existe suspeita de fraude por parte do EC.

  • 2 -> Foram verificados os documentos do portador


typePOS

:

String

Tipo do POS do Terminal (Dispositivo)

Enviar apenas o identificador. Exemplo: "M"

Valores:

  • M -> POS Mobile.

  • P -> POS.

  • T -> TEF.

  • 0 -> Não especificado.


inputCapability

:

String

Capacidade de entrada do Terminal

Enviar apenas o identificador. Exemplo: "C"

Valores:

  • 0 -> Indefinido

  • 1 -> Sem Terminal (URA/Voz)

  • 2 -> Leitor de trilha magnética

  • 3 -> Leitor de código de barras

  • 4 -> Leitor OCR

  • 5 -> Leitor de CHIP

  • 6 -> Digitado

  • 7 -> Leitor de trilha e digitado

  • C -> Radio Frequency Identification (RFID) – CHIP (Contactless)

  • H -> Hibrido – CHIP e Contactless

  • R -> Radio Frequency Identification (RFID) – Trilha Magnética

  • S -> Secure Eletronic Transaction (SET) com certificado

  • T -> Secure Eletronic Transaction (SET) sem certificado

  • U -> Channel-encrypted Eletronic Commerce Transaction (SSL)

  • V -> Non-secure Eletronic Commerce Transaction


panEntryMode

:

String

Indica o modo de entrada do número do cartão

Enviar apenas o identificador. Exemplo: "00"

Valores:

  • 00 Desconhecido

  • 01 Manual

  • 02 Tarja magnética

  • 03 Código de barras / Código de pagamento

  • 04 Optical Character Reader (OCR)

  • 05 Leitor de Circuito Integrado de Cartões

  • 07 E-commerce

  • 10 Conta cartão armazenada

  • 81 Indicador de Identificador de Rádio Frequência – Tarja magnética

  • 82 Mobile Commerce (mCommerce)

  • 83 Indicador de Identificador de Rádio Frequência – Chip

  • 85 Fallback do chip

  • 86 Mudança de interface Contactless

  • 90 Autorizações de voz

  • 91 Voice Response Unit (VRU) / (URA)

  • 92 Batch de autorizações

  • 93 Batch de autorizações Cash Access


terminalIdentifier

:

String

– Identificação do Terminal do Estabelecimento Comercial.



Entrada para a mutação CreatePullTransfer()

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.


acquirer

:

AcquirerInput obrigatório

Informação do Credenciador


merchant

:

MerchantInput obrigatório

Informações do Comerciante. Possui campos como razão social, nome fantasia, documentos legais (CNPJ) e categorias (MCC).


cardId

:

ID

O identificador global único do cartão.

Caso tenha acesso ao ID do cartão, utiliza-se preferencialmente este campo de modo a reduzir o tráfego de informações sensíveis.

Caso contrário pode-se utilizar o campo sensitive.

Exemplo: "3417E346-49A3-47A8-8196-37BBA09E27A5"


sensitive

:

String

Conteúdo sensível o qual foi assinado e então cifrado conforme a estrutura a seguir. Deve ser utilizado apenas se não tiver acesso ao identificador global único do cartão, neste caso deverá ser utilizado cardId.

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: (esse campo é obrigatório) O número da conta primária (Primary Account Number), também conhecido como "número do cartão" físico. Exemplo: "1234567890123456"

  • expiry: (esse campo é obrigatório) 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: "Joao da Silva". (não utilizar caracteres especiais ou acentos)

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:

  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico.

  • cscEntryTime: Data e horário quando o CSC (Código de Segurança do Cartão) foi digitado. É necessário quando o CSC é gerado por um chaveiro/token baseado em tempo. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"

  • authCode: Código de autorização. Este código não é o CSC (Código de Segurança do Cartão) pois não está impresso no cartão. Exemplo: "AB123Z1Y"

  • authCodeEntryTime: Data e horário quando o código de autorização (authCode) foi digitado. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


amount

:

AmountInput obrigatório

Valor da transação


systemsTraceAuditNumber

:

String obrigatório

O STAN é o número designado pelo originador de uma transação para auxiliar a identificação da transação com cartão. O STAN permanece inalterado durante a vida da transação.


transactionDateTime

:

DateTime obrigatório

Data e hora de onde ocorreu a transação (GMT). Formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


transactionIdentifier

:

String obrigatório

Número de Referência atribuido pelo Originador da Transferência de Fundos.


retrievalReferenceNumber

:

String obrigatório

Número serial único (NSU) para identificar a transação


codeUsage

:

Int obrigatório

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

Por exemplo:

  • Crédito à Vista = 70

  • Débito = 71


origin

:

P2POriginInput

Informação extra sobre a origem da transação de P2P. Importante o preenchimento do máximo possível.


pointOfService

:

PointOfServiceInput

Contempla os dados adicionais pertencentes ao terminal.



Entrada para os dados do destinatário.

Campos:

sensitive

:

String obrigatório

Conteúdo sensível 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: (esse campo é obrigatório) O número da conta primária (Primary Account Number), também conhecido como "número do cartão" físico. Exemplo: "1234567890123456"

  • expiry: (esse campo é obrigatório) 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: "Joao da Silva". (não utilizar caracteres especiais ou acentos)

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:

  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico.

  • cscEntryTime: Data e horário quando o CSC (Código de Segurança do Cartão) foi digitado. É necessário quando o CSC é gerado por um chaveiro/token baseado em tempo. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"

  • authCode: Código de autorização. Este código não é o CSC (Código de Segurança do Cartão) pois não está impresso no cartão. Exemplo: "AB123Z1Y"

  • authCodeEntryTime: Data e horário quando o código de autorização (authCode) foi digitado. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


name

:

String obrigatório

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


firstName

:

String

Primeiro nome


lastName

:

String

Último nome


displayName

:

String

Nome a ser exibido (exemplo: encurtado, alias...)


legalIds

:

LegalIdsInput obrigatório

Todos os documentos legais de identificação.


birthday

:

Date

Data de nascimento


gender

:

Gender

Masculino ou Feminino, conforme documentos oficiais


maritalStatus

:

MaritalStatus

Estado civil


income

:

PersonYearlyIncomeInput

Renda anual (individual e familiar).


occupationId

:

ID

Profissão.

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

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


contact

:

PersonContactInput

Contato


address

:

AddressInput obrigatório

Endereço



Entrada para a mutação CreatePushlTransfer()

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.


acquirer

:

AcquirerInput obrigatório

Informação do Credenciador


merchant

:

MerchantInput obrigatório

Informações do Comerciante. Possui campos como razão social, nome fantasia, documentos legais (CNPJ) e categorias (MCC).


cardId

:

ID

O identificador global único do cartão.

Caso tenha acesso ao ID do cartão, utiliza-se preferencialmente este campo de modo a reduzir o tráfego de informações sensíveis.

Caso contrário pode-se utilizar o campo sensitive.

Exemplo: "3417E346-49A3-47A8-8196-37BBA09E27A5"


sensitive

:

String

Conteúdo sensível o qual foi assinado e então cifrado conforme a estrutura a seguir. Deve ser utilizado apenas se não tiver acesso ao identificador global único do cartão, neste caso deverá ser utilizado cardId.

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: (esse campo é obrigatório) O número da conta primária (Primary Account Number), também conhecido como "número do cartão" físico. Exemplo: "1234567890123456"

  • expiry: (esse campo é obrigatório) 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: "Joao da Silva". (não utilizar caracteres especiais ou acentos)

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:

  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico.

  • cscEntryTime: Data e horário quando o CSC (Código de Segurança do Cartão) foi digitado. É necessário quando o CSC é gerado por um chaveiro/token baseado em tempo. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"

  • authCode: Código de autorização. Este código não é o CSC (Código de Segurança do Cartão) pois não está impresso no cartão. Exemplo: "AB123Z1Y"

  • authCodeEntryTime: Data e horário quando o código de autorização (authCode) foi digitado. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


amount

:

AmountInput obrigatório

Valor da transação


receiver

:

ReceiverInput obrigatório

Dados do destinatário


systemsTraceAuditNumber

:

String obrigatório

O STAN é o número designado pelo originador de uma transação para auxiliar a identificação da transação com cartão. O STAN permanece inalterado durante a vida da transação.


transactionDateTime

:

DateTimeZone obrigatório

Data e hora de onde ocorreu a transação (GMT). Formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


transactionIdentifier

:

String obrigatório

Número de Referência atribuido pelo Originador da Transferência de Fundos.


retrievalReferenceNumber

:

String obrigatório

Identificador do número serial único para identificar a transação durante um dia para a rede de captura


codeUsage

:

Int obrigatório

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

Por exemplo:

  • Crédito à Vista = 70

  • Débito = 71


origin

:

P2POriginInput

Informação extra sobre a origem da transação de P2P. Importante o preenchimento do máximo possível.


pointOfService

:

PointOfServiceInput

Contempla os dados adicionais pertencentes ao terminal.


sourceOfFundsCode

:

String obrigatório

Identifica a fonte dos fundos utilizada pelo remetente.

valores:

  • 01 -> Crédito

  • 02 -> Débito

  • 03 -> Pré-Pago

  • 04 -> Dinheiro

  • 05 -> Cheque

  • 06-16 -> Reservado para Uso Futuro

  • 17 -> Conta Corrente

  • 18 -> Conta Poupança

  • 19 -> Outro


transactionIdentifierPull

:

String

Número de Referência que identifica a transação de Pull, este é atribuido pelo Originador da Transferência de Fundos.



Entrada para os dados do remetente

Campos:

sensitive

:

String obrigatório

Conteúdo sensível 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: (esse campo é obrigatório) O número da conta primária (Primary Account Number), também conhecido como "número do cartão" físico. Exemplo: "1234567890123456"

  • expiry: (esse campo é obrigatório) 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: "Joao da Silva". (não utilizar caracteres especiais ou acentos)

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:

  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico.

  • cscEntryTime: Data e horário quando o CSC (Código de Segurança do Cartão) foi digitado. É necessário quando o CSC é gerado por um chaveiro/token baseado em tempo. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"

  • authCode: Código de autorização. Este código não é o CSC (Código de Segurança do Cartão) pois não está impresso no cartão. Exemplo: "AB123Z1Y"

  • authCodeEntryTime: Data e horário quando o código de autorização (authCode) foi digitado. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


name

:

String obrigatório

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


firstName

:

String

Primeiro nome


lastName

:

String

Último nome


displayName

:

String

Nome a ser exibido (exemplo: encurtado, alias...)


legalIds

:

LegalIdsInput obrigatório

Todos os documentos legais de identificação.


birthday

:

Date

Data de nascimento


gender

:

Gender

Masculino ou Feminino, conforme documentos oficiais


maritalStatus

:

MaritalStatus

Estado civil


income

:

PersonYearlyIncomeInput

Renda anual (individual e familiar).


occupationId

:

ID

Profissão.

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

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


contact

:

PersonContactInput

Contato


address

:

AddressInput obrigatório

Endereço


sourceOfFundsCode

:

String obrigatório

Identifica a fonte dos fundos utilizada pelo remetente.

valores:

  • 01 -> Crédito

  • 02 -> Débito

  • 03 -> Pré-Pago

  • 04 -> Dinheiro

  • 05 -> Cheque

  • 06-16 -> Reservado para Uso Futuro

  • 17 -> Conta Corrente

  • 18 -> Conta Poupança

  • 19 -> Outro



Entrada para a mutação CreatePullTransferToUser()

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.


acquirer

:

AcquirerInput obrigatório

Informação do Credenciador


merchant

:

MerchantInput obrigatório

Informações do Comerciante. Possui campos como razão social, nome fantasia, documentos legais (CNPJ) e categorias (MCC).


sender

:

SenderInput obrigatório

Dados do remetente


amount

:

AmountInput obrigatório

Valor da transação


systemsTraceAuditNumber

:

String obrigatório

O STAN é o número designado pelo originador de uma transação para auxiliar a identificação da transação com cartão. O STAN permanece inalterado durante a vida da transação.


transactionDateTime

:

DateTimeZone obrigatório

Data e hora de onde ocorreu a transação (GMT). Formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


transactionIdentifier

:

String obrigatório

Número de Referência atribuido pelo Originador da Transferência de Fundos.


retrievalReferenceNumber

:

String obrigatório

Identificador do número serial único para identificar a transação durante um dia para a rede de captura


codeUsage

:

Int obrigatório

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

Por exemplo:

  • Crédito à Vista = 70

  • Débito = 71


origin

:

P2POriginInput

Informação extra sobre a origem da transação de P2P. Importante o preenchimento do máximo possível.


pointOfService

:

PointOfServiceInput

Contempla os dados adicionais pertencentes ao terminal.



Entrada para a mutação CreatePushlTransferToUser()

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.


acquirer

:

AcquirerInput obrigatório

Dados do Credenciador


merchant

:

MerchantInput obrigatório

Informações do Comerciante. Possui campos como razão social, nome fantasia, documentos legais (CNPJ) e categorias (MCC).


sender

:

SenderInput obrigatório

Dados do remetente


amount

:

AmountInput obrigatório

Valor da transação


receiver

:

ReceiverInput obrigatório

Dados do destinatário


systemsTraceAuditNumber

:

String obrigatório

O STAN é o número designado pelo originador de uma transação para auxiliar a identificação da transação com cartão. O STAN permanece inalterado durante a vida da transação.


transactionDateTime

:

DateTimeZone obrigatório

Data e hora de onde ocorreu a transação (GMT). Formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


transactionIdentifier

:

String obrigatório

Número de Referência atribuido pelo Originador da Transferência de Fundos.


retrievalReferenceNumber

:

String obrigatório

Identificador do número serial único para identificar a transação durante um dia para a rede de captura


codeUsage

:

Int obrigatório

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

Por exemplo:

  • Crédito à Vista = 70

  • Débito = 71


origin

:

P2POriginInput

Informação extra sobre a origem da transação de P2P. Importante o preenchimento do máximo possível.


pointOfService

:

PointOfServiceInput

Contempla os dados adicionais pertencentes ao terminal.


transactionIdentifierPull

:

String

Número de Referência que identifica a transação de Pull, este é atribuido pelo Originador da Transferência de Fundos.



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

Campos:

date

:

DateTime obrigatório

Data da autorização da transação.


code

:

ID obrigatório

Código da autorização da transação.


decision

:

String obrigatório

Descrição da autorização da transação.



Entrada para a mutação CreatReverseTransaction()

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.


transactionId

:

ID obrigatório

Identificador Global Único da transação.


cardId

:

ID

O identificador global único do cartão.

Caso tenha acesso ao ID do cartão, utiliza-se preferencialmente este campo de modo a reduzir o tráfego de informações sensíveis.

Caso contrário pode-se utilizar o campo sensitive.

Exemplo: "3417E346-49A3-47A8-8196-37BBA09E27A5"


sensitive

:

String

Conteúdo sensível o qual foi assinado e então cifrado conforme a estrutura a seguir. Deve ser utilizado apenas se não tiver acesso ao identificador global único do cartão, neste caso deverá ser utilizado cardId.

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: (esse campo é obrigatório) O número da conta primária (Primary Account Number), também conhecido como "número do cartão" físico. Exemplo: "1234567890123456"

  • expiry: (esse campo é obrigatório) 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: "Joao da Silva". (não utilizar caracteres especiais ou acentos)

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:

  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico.

  • cscEntryTime: Data e horário quando o CSC (Código de Segurança do Cartão) foi digitado. É necessário quando o CSC é gerado por um chaveiro/token baseado em tempo. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"

  • authCode: Código de autorização. Este código não é o CSC (Código de Segurança do Cartão) pois não está impresso no cartão. Exemplo: "AB123Z1Y"

  • authCodeEntryTime: Data e horário quando o código de autorização (authCode) foi digitado. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


reasonCode

:

String obrigatório

Identificador Global Único do motivos de reversão.

Enviar apenas o número. Exemplo: "01"

Valores:

  • 01 -> Não especificado; nenhuma ação tomada

  • 02 -> Suspeita de mal funcionamento

  • 03 -> Erro na formatação; nenhuma ação tomada

  • 06 -> Resposta tardia

  • 07 -> POS impossibilitado de completar a transação

  • 13 -> Impossível entregar a mensagem ao POS

  • 14 -> Suspeita de mal funcionamento / cartão retido

  • 16 -> Suspeita de mal funcionamento / trilha 3 desatualizada

  • 17 -> Suspeita de mal funcionamento / dinheiro não entregue

  • 18 -> Tempo ultrapassado para retirar o dinheiro / dinheiro não entregue

  • 19 -> Tempo ultrapassado para retirar o cartão / cartão retido e dinheiro não entregue

  • 20 -> Resposta inválida; nenhuma ação tomada

  • 21 -> Tempo ultrapassado na espera da resposta

  • 22 -> Código inválido do cartão

  • 52 -> Ajuste de crédito

  • 62 -> Código inválido do cartão

  • 63 -> EC não está na Tabela de Inclusão

  • 64 -> Reservado

  • 65 -> Reservado

  • 66 -> Emissor indisponível

  • 67 -> Falha na regra do Emissor

  • 69 -> Reservado

  • 70 -> Senha do mobile não existente

  • 71 -> Reservado

  • 72 -> Reservado


authorization

:

AuthorizationInput obrigatório

Dados da autorização



Entrada para a mutação CreateReverseTransactionNotification()

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.


sensitive

:

String obrigatório

Conteúdo sensível 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: (esse campo é obrigatório) O número da conta primária (Primary Account Number), também conhecido como "número do cartão" físico. Exemplo: "1234567890123456"

  • expiry: (esse campo é obrigatório) 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: "Joao da Silva". (não utilizar caracteres especiais ou acentos)

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:

  • csc: Código de segurança do cartão (Card Security Code), usualmente impresso na parte de trás do cartão físico.

  • cscEntryTime: Data e horário quando o CSC (Código de Segurança do Cartão) foi digitado. É necessário quando o CSC é gerado por um chaveiro/token baseado em tempo. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"

  • authCode: Código de autorização. Este código não é o CSC (Código de Segurança do Cartão) pois não está impresso no cartão. Exemplo: "AB123Z1Y"

  • authCodeEntryTime: Data e horário quando o código de autorização (authCode) foi digitado. Deve estar no formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


transactionIdentifier

:

String obrigatório

Número de Referência atribuido pelo Originador da Transferência de Fundos.


transactionDateTime

:

DateTime obrigatório

Data e hora de onde ocorreu a transação (GMT). Formato ISO 8601. Exemplo: "2017-06-01T12:00:00-03:00"


amount

:

AmountInput obrigatório

Valor da transação


retrievalReferenceNumber

:

String obrigatório

Número serial único (NSU) para identificar a transação


reasonCode

:

String obrigatório

Identificador Global Único do motivos de reversão.

Enviar apenas o número. Exemplo: "01"

Valores:

  • 01 -> Não especificado; nenhuma ação tomada

  • 02 -> Suspeita de mal funcionamento

  • 03 -> Erro na formatação; nenhuma ação tomada

  • 06 -> Resposta tardia

  • 07 -> POS impossibilitado de completar a transação

  • 13 -> Impossível entregar a mensagem ao POS

  • 14 -> Suspeita de mal funcionamento / cartão retido

  • 16 -> Suspeita de mal funcionamento / trilha 3 desatualizada

  • 17 -> Suspeita de mal funcionamento / dinheiro não entregue

  • 18 -> Tempo ultrapassado para retirar o dinheiro / dinheiro não entregue

  • 19 -> Tempo ultrapassado para retirar o cartão / cartão retido e dinheiro não entregue

  • 20 -> Resposta inválida; nenhuma ação tomada

  • 21 -> Tempo ultrapassado na espera da resposta

  • 22 -> Código inválido do cartão

  • 52 -> Ajuste de crédito

  • 62 -> Código inválido do cartão

  • 63 -> EC não está na Tabela de Inclusão

  • 64 -> Reservado

  • 65 -> Reservado

  • 66 -> Emissor indisponível

  • 67 -> Falha na regra do Emissor

  • 69 -> Reservado

  • 70 -> Senha do mobile não existente

  • 71 -> Reservado

  • 72 -> Reservado






Portador de cartão

Usualmente uma pessoa

Campos:

id

:

ID obrigatório

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

(


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

(


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 portador de cartão


addresses

:

list de Address obrigatório

Endereço postal


wallets

:

list de Wallet obrigatório

Carteiras em posse deste portador de cartão.


cards

(


first:

Int

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

after:

String

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

last:

Int

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

before:

String

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

filter:

CardFilterInput

Aplica filtro, se provido.

)

:

CardsConnection

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.


cardTokens

(


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:

CardTokenFilterInput

Aplica filtro, se provido.

)

:

CardTokensConnection

Query (consulta) tokens CardToken


travelInsurances

(


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:

TravelInsuranceFilter

Aplica filtro, se provido.

)

:

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

(


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:

ExtendedWarrantyInsuranceFilter

Aplica filtro, se provido.

)

:

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

(


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:

PurchaseProtectionInsuranceFilter

Aplica filtro, se provido.

)

:

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.


homeAssistences

(


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:

HomeAssistenceFilter

Aplica filtro, se provido.

)

:

HomeAssistencesConnection

Assistência residencial solicitadas pelo portador.

Lista todas as Assistências residencias relacionadas 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 assistências pelo seu status, tipo ou ID.


documents

(


first:

Int

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

after:

String

, 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:

DocumentsFilterInput

Aplica filtro, se provido.

)

:

DocumentConnection

Query (consulta) documentos enviados para verificação



Representa uma transação de P2P.

Campos:

id

:

ID obrigatório

Identificador Global Único para este objeto.


capture

:

CardCapture obrigatório

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


usage

:

CardUsage obrigatório

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

:

MerchantP2P obrigatório

O comerciante que realizou a transação.

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


currency

:

String obrigatório

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


value

:

String obrigatório

Valor total da transação

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


installments

:

Int obrigatório

Número de parcelas.

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


status

:

CardTransactionStatus

Estado da transação


timestamp

:

DateTime obrigatório

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



Retorno da mutação CreatePullTransfer()

Compatível com Relay.

Campos:

clientMutationId

:

String

cardHolder

:

CardHolder

O portador o qual foi criado para o usuário.


cardTransaction

:

CardTransactionP2P obrigatório

Dados da Transação.



Dados do deatinatário

Campos:

name

:

String obrigatório

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


firstName

:

String

Primeiro nome


lastName

:

String

Último nome


displayName

:

String

Nome a ser exibido (exemplo: encurtado, alias...)


legalIds

:

LegalIds obrigatório

Todos os documentos legais de identificação.


birthday

:

Date

Data de nascimento


gender

:

Gender

Masculino ou Feminino, conforme documentos oficiais


maritalStatus

:

MaritalStatus

Estado civil


income

:

PersonYearlyIncome

Renda anual (individual e familiar).


occupation

:

PersonOccupation

Profissão.


contact

:

PersonContact

Contato


address

:

Address obrigatório

Endereç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.


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.



Retorno da mutação CreatePushTransfer()

Compatível com Relay.

Campos:

clientMutationId

:

String

cardHolder

:

CardHolder

O portador o qual foi criado para o usuário.


cardTransaction

:

CardTransactionP2P obrigatório

Dados da Transação.


receiver

:

Receiver obrigatório

Dados do destinatário



Dados do remetente

Campos:

name

:

String obrigatório

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


firstName

:

String

Primeiro nome


lastName

:

String

Último nome


displayName

:

String

Nome a ser exibido (exemplo: encurtado, alias...)


legalIds

:

LegalIds obrigatório

Todos os documentos legais de identificação.


birthday

:

Date

Data de nascimento


gender

:

Gender

Masculino ou Feminino, conforme documentos oficiais


maritalStatus

:

MaritalStatus

Estado civil


income

:

PersonYearlyIncome

Renda anual (individual e familiar).


occupation

:

PersonOccupation

Profissão.


contact

:

PersonContact

Contato


address

:

Address obrigatório

Endereç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.


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.



Retorno da mutação CreatePullTransferToUser()

Compatível com Relay.

Campos:

clientMutationId

:

String

sender

:

Sender obrigatório

Dados do remetente


cardTransaction

:

CardTransactionP2P obrigatório

Dados da Transação.



Retorno da mutação CreatePushTransferToUserPayload()

Compatível com Relay.

Campos:

clientMutationId

:

String

sender

:

Sender obrigatório

Dados do remetente


cardTransaction

:

CardTransactionP2P obrigatório

Dados da Transação.


receiver

:

Receiver obrigatório

Dados do destinatário



Retorno da mutação CreatReverseTransaction()

Compatível com Relay.

Campos:

clientMutationId

:

String

cardHolder

:

CardHolder

O portador o qual foi criado para o usuário.


cardTransaction

:

CardTransactionP2P obrigatório

Dados da Transação.



Retorno da mutação CreateReverseTransactionNotification()

Compatível com Relay.

Campos:

clientMutationId

:

String

cardHolder

:

CardHolder

O portador o qual foi criado para o usuário.


cardTransaction

:

CardTransactionP2P obrigatório

Dados da Transação.