Elo Flex

As APIs do Elo Flex possibilitam a verificação de benefícios utilizados, benefícios disponíveis e também possibilita troca de benefícios de um cartão Elo.

Feito para:  Portadores de CartãoEmissoresOutros Desenvolvedores

Primeiros passos

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

  2. Crie uma conta no portal do desenvolvedor.

  3. Cadastre sua primeira aplicação.

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

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

Primeiros passos na plataforma de Desenvolvedores Elo

Jaydson GomesDesenvolvedor Evangelista

O intuito das APIs do Elo Flex é promover uma maior efetividade e ir além da oferta de benefícios tradicionais de um cartão. Através da plataforma o poder de escolha está nas mãos do cliente permitindo que os benefícios sejam substituídos de acordo com suas preferências.

Ao cadastrar um cartão, os benefícios deste cartão serão pre-selecionados pelo banco emissor de seu cartão. A característica principal desse cartão é sua flexibilidade, sendo assim o cliente poderá trocar seus benefícios por outros que mais se encaixem às suas necessidades, escolhidos a partir de uma cesta diversas opções.

Exemplo do corpo da requisição:

query{
  availableBenefits(
  filter: {
  bin: "655004", # Bin do Cartão
  documentNumber: "NTAyMDczOTQ3MjU=", # Cpf em base64
  cardId: "ce4abd25-11ff-4bca-aaa7-8e8add84bcac" #Id do cartão
  }) {
    id
    name
    numberOfElements
    minimumBenefitPrice
    quantityOfBenefitsWithMinimumPrice
    productTypes {
      name
    }
    availability {
      begin
      end
    }
    benefits {
      id
      name
      status
      bundleId #É utilizado para identificar unicamente um benefício do cartão. Usado na mutation changeBenefits
      productType
      bundleName
      catalogId
      isNew
      benefitType
      isExchangeableOffer
      description
      validity{
        period
        duration
        unlimited
      }
      availability {
        begin
        end
      }
      images {
        url
        type
      }
      price {
        amount
        scale
        currency
        amountFormatted
      }
      benefitParameters {
        key
        value
      }
      benefitItems {
        id
        componentId
        componentName
        compositionId
        compositionName
        compositionDescription
        productType{
          id
          name
        }
        systemParameters {
          key
          value
        }
      }
    }
  }
}

Resposta

No retorno ele mostrará os valores que foram definidos na query de availableBenefits

Exemplo da resposta da API:

{
  "data": {
    "availableBenefits": {
      "id": "05b7ed90-b911-48ca-ad46-76dac6a459b4",
      "name": "Elo Grafite - Pessoa Física - Portador",
      "numberOfElements": 20,
      "minimumBenefitPrice": null,
      "quantityOfBenefitsWithMinimumPrice": null,
      "productTypes": [
        {
          "name": "Serviços"
        },
        {
          "name": "Vida"
        },
        {
          "name": "Seguro Garantia Estendida"
        },
        {
          "name": "Seguro Proteção de Compras"
        },
        {
          "name": "Auto"
        },
        {
          "name": "Bike"
        },
        {
          "name": "Casa"
        },
        {
          "name": "Pet"
        },
        {
          "name": "Seguro Viagem"
        },
        {
          "name": "Wi-Fi"
        }
      ],
      "availability": {
        "begin": "2019-03-27T03:00:00",
        "end": "2030-12-31T01:59:59"
      },
      "benefits": [
        {
          "id": "994f7744-60ec-400c-a2fa-0de5dcf42d3e",
          "name": "12 min",
          "status": "ACTIVE",
          "bundleId": "af947ea7-16dd-439e-96ac-0ac40e6abad9",
          "productType": "Serviços",
          "bundleName": "12 min",
          "catalogId": "05b7ed90-b911-48ca-ad46-76dac6a459b4",
          "isNew": null,
          "benefitType": "ADDON",
          "isExchangeableOffer": null,
          "description": "O 12 min é um aplicativo mobile (app) que permite que os seus usuários tenham acesso a diversos títulos de livros de não ficção, dentre deles diversos best sellers, em leituras e áudios de apenas 12 minutos. Especialistas sintetizam e otimizam o conteúdo dos livros para que seja possível absorver o conhecimento de uma forma muito mais rápida, dinâmica e objetiva",
          "validity": {
            "period": "MONTH",
            "duration": 12,
            "unlimited": null
          },
          "availability": {
            "begin": "2019-03-27T03:00:00",
            "end": "2030-12-31T01:59:59"
          },
          "images": [],
          "price": {
            "amount": 0,
            "scale": 2,
            "currency": "BRL",
            "amountFormatted": "0,00"
          },
          "benefitParameters": [
            {
              "key": "EXCHANGE_PERIOD_DAYS",
              "value": "90"
            },
            {
              "key": "TOTAL_REQUESTS",
              "value": "3"
            },
            {
              "key": "OFFER_MANDATORY",
              "value": "FALSE"
            }
          ],
          "benefitItems": [
            {
              "id": "66585797-be87-4096-bc9d-7e632c1e3fd9",
              "componentId": "b70c266d-9984-4062-9f7a-9d3c55eb37e0",
              "componentName": "12 min",
              "compositionId": "af947ea7-16dd-439e-96ac-0ac40e6abad9",
              "compositionName": "12 min",
              "compositionDescription": null,
              "productType": {
                "id": "37ab2fca-e283-4066-aa69-7381f5883324",
                "name": "Serviços"
              },
              "systemParameters": [
                {
                  "key": "MINUTRADE_NAME",
                  "value": "12minutos-r-24-00"
                },
                {
                  "key": "PROVIDER_ID",
                  "value": "a0807b59-4075-43a8-a89a-93ace613e58c"
                },
                {
                  "key": "PROVIDER_NAME",
                  "value": "MINUTRADE"
                },
                {
                  "key": "HAS_STATUS_CONTROL",
                  "value": "TRUE"
                }
              ]
            }
          ]
        }
      ]
    }

Como observado, diversos benefícios são possíveis de serem consultados ou solicitados, sendo um deles o Elo Rewards, em que o usuário pode solicitar a emissão de um voucher, para isso basta acessar a documentação disponível em https://dev.elo.com.br/documentacao/reward?lng=pt

Também é possível consultar e solicitar seguros como o Seguro Viagem, Seguro Proteção de Compras e Seguro Garantia Estendida, disponíveis como benefícios incluídos no cartão. Essas ações são realizadas através da API de Seguros, a partir de alguns dados do cartão.

Todos esses benefícios e produtos pré-configurados pelo emissor do cartão, através da “Query binTable {services}{changeableServices}” podem ser consultados a partir do BIN do cartão, essa consulta pode ser feita a partir da API Tabela de BINs, onde além da consulta do Emissor, tipo de cartão e credenciador, demais funções estão disponíveis.

Ao realizar uma consulta através da Query issuedBenefits, ela irá disponibilizar os benefícios que estao configurados para o cartão. Essa consulta não retorna os benefícios que já tenham sido trocados para o cartão informado.

Exemplo do corpo da requisição:

query{
  issuedBenefits(filter: {
  bin: "655004", # Bin do Cartão
  documentNumber: "NTAyMDczOTQ3MjU=", # Cpf em base64
  cardId: "ce4abd25-11ff-4bca-aaa7-8e8add84bcac" #Id do cartão
  }) {
    id
    name
    status
    bundleId #É utilizado para identificar unicamente um benefício do cartão. Usado na mutation changeBenefits
    bundleName
    expirationDate
    catalogId
    productType
    benefitType
    description
    availability {
      begin
      end
    }
    price {
      amount
      scale
      currency
      amountFormatted
    }
    images {
      url
      type
    }
    benefitParameters {
      key
      value
    }
    usageInformation {
      usageQuantity
      maximumUsageQuantity
    }
    benefitChoiceInformation {
      chosenBy
      exchangeDeadline
    }
    benefitItems {
      id
      componentId
      componentName
      compositionId
      compositionName
      compositionDescription
      systemParameters {
        key
        value
      }
      usedAt {
        status
        usedAt
      }
    }
  }
}

Resposta

No retorno ele mostrará os valores que foram definidos na query de issuedBenefits

Exemplo da resposta da API:

{
  "data": {
    "issuedBenefits": [
      {
        "id": "e54cffd4-3416-4608-903a-151defb390f6",
        "name": "Corpo e Mente",
        "status": "PENDING",
        "bundleId": "4eeeaf75-dfcd-47f8-8afb-7af4cecfd91a",
        "bundleName": "Corpo e Mente",
        "expirationDate": "2021-04-02T23:59:59",
        "catalogId": "bd8382e2-202c-49ae-a4b9-3732cc022b43",
        "productType": "Vida",
        "benefitType": "ADDON",
        "description": "A Assistência Elo Corpo e Mente destina cuidados especiais para toda família, dispõe dos serviços como Orientações Nutricional e Fitness para manter cuidados com a saúde. Confira na listagem os serviços que compõe a assistência.",
        "availability": {
          "begin": "2019-03-27T03:00:00",
          "end": "2030-12-31T03:00:00"
        },
        "price": {
          "amount": 0,
          "scale": 2,
          "currency": "BRL",
          "amountFormatted": "0,00"
        },
        "images": [
          {
            "url": "https://elo-flex-static.s3-sa-east-1.amazonaws.com/corpoemente_interna.jpeg",
            "type": "HOLDER_IMAGE"
          }
        ],
        "benefitParameters": [
          {
            "key": "OFFER_TAGS",
            "value": "#SaudeEBemEstar #Esportes #Conveniência #Lazer"
          },
          {
            "key": "EXCHANGE_PERIOD_DAYS",
            "value": "0"
          },
          {
            "key": "TOTAL_REQUESTS",
            "value": "3"
          },
          {
            "key": "PROVIDER",
            "value": "78832903-129a-4d2c-afbd-583bce34eb6f"
          },
          {
            "key": "OFFER_MANDATORY",
            "value": "FALSE"
          },
          {
            "key": "TRADE_AVAILABILITY",
            "value": "TRUE"
          },
          {
            "key": "IS_EXCHANGEABLE",
            "value": "true"
          }
        ],
        "usageInformation": {
          "usageQuantity": "0",
          "maximumUsageQuantity": "3"
        },
        "benefitChoiceInformation": {
          "chosenBy": "HOLDER",
          "exchangeDeadline": "-999999999-01-01T00:00:00"
        },
        "benefitItems": [
          {
            "id": "cf186612-ca77-4c70-91c2-c1b86b3f26a1",
            "componentId": "4c360183-ddb9-40c0-9a3b-ef75400761ed",
            "componentName": "Orientação em Saúde",
            "compositionId": "c287bfc0-ad71-4fe6-ada8-17e002a810e3",
            "compositionName": "Orientação em Saúde",
            "compositionDescription": "Informações e esclarecimentos em saúde a qualquer hora do dia ou da noite, realizado por enfermeiros experientes, com suporte de médicos.\nLimitações: Sem limite de utilização na vigência.",
            "systemParameters": [
              {
                "key": "PROVIDER_NAME",
                "value": "MONDIAL"
              },
              {
                "key": "PROVIDER_ID",
                "value": "78832903-129a-4d2c-afbd-583bce34eb6f"
              }
            ],
            "usedAt": []
          }
        ]
      }
    ]
  }
}

A troca dos benefícios deve ser efetuada através da mutation changeBenefit e deve ser informado o bundleId do benefício disponível e do benefício configurado para efetuar a troca dos benefícios para o portador o cartão informado.

Exemplo do corpo da requisição:

mutation{
  changeBenefit(input: {
    documentNumber: "NTAyMDczOTQ3MjU=" #Cpf em base 64
    currentBenefitId: "468af87f-38c9-4c62-bd26-869b3693045b" #Benefício Atual
    newBenefitId: "1a202546-f0bf-4dfe-b214-8e67f52a30b1" #Novo Benefício
    cardId: "ce4abd25-11ff-4bca-aaa7-8e8add84bcac" #Id do cartão
  }){
    documentNumber
    currentBenefitId
    newBenefitId
    cardId
  }
}

Resposta

No retorno ele mostrará os valores que foram definidos na mutation de changeBenefit

Exemplo da resposta da API:

 {
    "data": {
        "changeBenefit": {
            "documentNumber": "99024326893",
            "currentBenefitId": "468af87f-38c9-4c62-bd26-869b3693045b",
            "newBenefitId": "1a202546-f0bf-4dfe-b214-8e67f52a30b1",
            "cardId": "8ab644b8-52ed-4a26-8c05-fbb990692fc3"
        }
    }
}

É possível verificar os parceiros Elo que fornecem os benefícios disponíveis, para isso basta realizar a consulta de Query providers.

Exemplo do corpo da requisição:

query{
  providers {
    id
    name
  }
}

Resposta

No retorno ele mostrará os valores que foram definidos na query providers

Exemplo da resposta da API:

 {
    "data": {
        "providers": [
            {
                "id": "78832903-129a-4d2c-afbd-583bce34eb6f",
                "name": "MONDIAL"
            }
          ]
       }
    }




Query (consulta) benefícios (AvailableBenefit) disponíveis para o BIN e Documento.

Argumentos:



Query (consulta) benefícios (IssuedBenefit) contratados para o BIN e Documento.

Argumentos:



Query (consulta) provedores (Provider) de benefícios.

Argumentos:






Altera um determinado benefício para um portador.

Argumentos:

input: ChangeBenefitInput obrigatório






Campos:

bin

:

String obrigatório

BIN do cartão a que se destina o benefício.


documentNumber

:

String obrigatório

Documento (CPF) da pessoa a quem o benefício se destina em base64.


cardId

:

ID obrigatório

Identificador do Card.



Campos:

documentNumber

:

String obrigatório

Documento (CPF) da pessoa a quem o benefício se destina em base64.


bin

:

String obrigatório

BIN do cartão a que se destina o benefício.


cardId

:

ID obrigatório

Identificador do Card



Campos:

documentNumber

:

String obrigatório

Documento (CPF) da pessoa a quem o benefício se destina em base64.


currentBenefitId

:

ID obrigatório

Identificador global único do benefício a ser alterado.


newBenefitId

:

ID obrigatório

Identificador global único do novo benefício.


cardId

:

ID obrigatório

Identificador do Card






Campos:

begin

:

String

Início da disponibilidade do catálogo.


end

:

String

Fim da disponibilidade do catálogo.



Campos:

name

:

String

Nome do tipo de benefício.



Campos:

availability

:

BenefitAvailability

Período de disponibilidade do benefício.


isNew

:

Boolean

Identifica quando um benefício é novo.


name

:

String

Nome do benefício.


productType

:

String

Tipo de produto do benefício.


benefitType

:

String

Tipo do benefício.


id

:

ID

Identificador do benefício.


bundleId

:

String

Identificador único do pacote de benefícios.


bundleName

:

String

Nome do pacote de benefícios.


description

:

String

Descrição do benefício adquirido.


benefitParameters

:

Parâmetros do benefício.


validity

:

BenefitValidity

Validade do benefício


price

:

BenefitPrice

Preço do benefício.


status

:

String

Status do benefício.


isExchangeableOffer

:

Boolean

Identifica se o benefício é mandatório.


benefitItems

:

list de AvailableBenefitItem

Itens do benefício.


catalogId

:

String

Identificador do catálago do benefício.


images

:

list de BenefitImage

Imagens do benefício.



Campos:

id

:

ID

Identificador único do catálogo.


name

:

String

Nome do catálogo.


availability

:

CatalogAvailability

Período de disponibilidade do Catálogo.


numberOfElements

:

Int

Número de elementos do catálogo


productTypes

:

Tipos de produto do catálogo


quantityOfBenefitsWithMinimumPrice

:

String

minimumBenefitPrice

:

String

benefits

:



Campos:

begin

:

String

Início da disponibilidade do benefício


end

:

String

Fim da disponibilidade do benefício



Campos:

chosenBy

:

String

Informação de quem escolheu o benefício


exchangeDeadline

:

String

Data limite para mudança do benefício



Campos:

key

:

String

Identificador do parâmetro


value

:

String

Valor do parâmetro



Campos:

amount

:

Int

Valor


amountFormatted

:

String

Valor formatado


currency

:

String

Modeda


scale

:

Int

Escala



Campos:

maximumUsageQuantity

:

String

Quantidade máxima de uso do benefício


usageQuantity

:

String

Quantidade de uso do benefício



Campos:

id

:

ID

Identificador global único referente ao item.


compositionId

:

String

Identificador da composição do item.


compositionName

:

String

Nome do componente da composição.


productType

:

BenefitItemProductType

Tipo de produto da composição


compositionDescription

:

String

Descrição da composição.


systemParameters

:

list de SystemParameter

Parâmetros de customização da composição.


componentId

:

String

Identifica unicamente um componente.


componentName

:

String

Nome do componente.


usedAt

:

list de BenefitItemUsed

Histórico de uso.



Campos:

type

:

String

Tipo da imagem


url

:

String

URL da image



Campos:

catalogId

:

String

Identificador do catálago do benefício.


availability

:

BenefitAvailability

Período de disponibilidade do benefício.


name

:

String

Nome do benefício.


productType

:

String

Tipo de produto do benefício.


benefitType

:

String

Tipo do benefício.


id

:

ID

Identificador do benefício.


bundleId

:

String

Identificador único do pacote de benefícios.


bundleName

:

String

Nome do pacote de benefícios.


benefitChoiceInformation

:

BenefitChoiceInformation

Informação da escolha do benefício.


description

:

String

Descrição do benefício adquirido.


benefitParameters

:

Parâmetros do benefício.


expirationDate

:

String

Data de expiração.


price

:

BenefitPrice

Preço do benefício.


status

:

String

Status do benefício.


usageInformation

:

BenefitUsageInformation

Informações de uso do benefício.


benefitItems

:

Itens do benefício.


images

:

list de BenefitImage

Imagens do benefício.



Campos:

id

:

ID

Identificador global único do provedor.


name

:

String

Nome do provedor.



Campos:

documentNumber

:

String obrigatório

Documento (CPF) da pessoa a quem o benefício se destina.


currentBenefitId

:

ID obrigatório

Identificador global único do benefício a ser alterado.


newBenefitId

:

ID obrigatório

Identificador global único do novo benefício.


cardId

:

ID obrigatório

Identificador do Card.