INTRODUÇÃO
Conheça a Cielo Smart
A Cielo Smart é mais do que uma maquininha de pagamentos, é uma plataforma aberta que permite a criação de soluções completas para o varejo, unindo frente de caixa, gestão de negócios e meios de pagamento em um único dispositivo.
Essa solução suporta aplicativos desenvolvidos para sistema Android, possibilitando que desenvolvedores parceiros possam criar aplicativos especializados para diversos segmentos e qualquer porte de cliente.
Com a Cielo Smart, você tem acesso a mais de 50 aplicativos para gestão do seu negócio, integração com sistemas de automação, bateria de longa duração, conexão constante para não perder vendas, aceitação de todas as formas de pagamento e um design moderno, ergonômico e discreto, com carregador magnético, NFC e conectividade 4G, garantindo mais tecnologia, agilidade, segurança e tranquilidade no seu dia a dia.
Modelos de negócio
A integração com a Cielo Smart pode ser aplicada em diferentes cenários, dependendo do modelo de negócio e da proposta da sua solução. A seguir, apresentamos os principais modelos disponíveis para você explorar e implementar.
- Aplicativos públicos: Disponíveis na Cielo Store, esses apps podem ser acessados por qualquer usuário da Cielo LIO. São ideais para soluções com grande alcance, como controle de vendas, gestão de estoque, delivery, entre outros. A monetização pode ser feita por assinatura, licenciamento ou modelo de uso.
- Aplicativos privados: Desenvolvidos sob medida para um cliente ou grupo específico, esses aplicativos não ficam visíveis na loja pública. São muito utilizados por redes, franquias ou empresas que precisam de soluções personalizadas e exclusivas.
- Integração com sistemas de automação comercial: A Cielo LIO pode ser conectada a sistemas de frente de caixa (PDV) e ERPs, permitindo a sincronização de vendas, controle de estoque, emissão de notas fiscais e muito mais. É a escolha ideal para empresas que já possuem um sistema próprio e desejam integrá-lo à maquininha.
- Soluções de parceiros: Empresas também podem atuar como parceiras da Cielo, oferecendo soluções homologadas para a LIO. Isso inclui desde o desenvolvimento de aplicativos até serviços de integração, suporte técnico e consultoria especializada. Estamos em processo de migração para a nova geração de terminais Cielo Smart.
Para aprender mais sobre funcionalidades e especificidades técnicas, acesse a seção Visão Geral Técnica.
Primeiros passos
Está iniciando agora a sua jornada de integração e não sabe por onde começar? Aqui, você encontra uma visão simplificada dos principais passos para integrar com a Cielo Smart e publicar seu aplicativo na Cielo Store.
A primeira seção desta documentação, intitulada Introdução, apresenta uma visão geral da Cielo Smart, explicando sua proposta e benefícios. Nessa parte, você encontra este guia de primeiros passos com orientações básicas para iniciar a integração, um glossário com os principais termos técnicos utilizados ao longo da documentação, os canais de suporte disponíveis e uma área dedicada às últimas atualizações da plataforma.
A seção Visão geral técnica aprofunda os aspectos técnicos da Cielo Smart, detalhando as funcionalidades disponíveis nos terminais, os modelos de equipamentos compatíveis e as boas práticas recomendadas para desenvolvedores que desejam garantir qualidade, segurança e desempenho em suas soluções.
Em Publicando um aplicativo, o foco está no processo de criação, testes e publicação de aplicativos. Você aprende desde os primeiros passos no desenvolvimento até o uso do Cielo Store Dev Console, ferramenta que permite gerenciar os aplicativos dentro da plataforma. Também são explicadas as diferenças entre loja pública e loja privada, como acompanhar o status do aplicativo, os critérios para publicação e como utilizar o ambiente Sandbox, que funciona como um emulador para testes sem a necessidade de um terminal físico.
A seção Integração apresenta os diferentes tipos de integração possíveis com a Cielo Smart, incluindo a Integração via Deeplink e a Integração remota.
Por fim, a seção de Perguntas Frequentes reúne as dúvidas mais comuns entre os usuários da plataforma. Ela funciona como um complemento prático à documentação, oferecendo respostas objetivas e diretas sobre temas recorrentes, como erros comuns, processos de publicação, uso do emulador, integração com APIs e outras questões que podem surgir durante o desenvolvimento.
Glossário
Este glossário reúne os principais termos utilizados no ecossistema de desenvolvimento da Cielo Smart. Ele foi criado para facilitar a compreensão de conceitos técnicos e operacionais, promovendo uma integração mais eficiente com nossas soluções. Consulte-o sempre que tiver dúvidas sobre nomenclaturas ou funcionalidades.
Termo | Descrição |
---|---|
Ambiente Sandbox | Ambiente de testes que simula o ambiente de produção, permitindo que desenvolvedores testem suas integrações sem realizar transações reais. |
Certificação | Processo de validação técnica exigido pela Cielo para garantir que a aplicação atende aos requisitos de segurança e funcionamento antes de ir para produção. |
Cielo OS | Sistema operacional embarcado na Cielo LIO, que permite a execução de aplicativos personalizados. |
Cielo Store | Loja de aplicativos da Cielo, onde desenvolvedores e parceiros podem publicar soluções na Cielo Smart. |
Cielo Store Dev Console | Plataforma para desenvolvedores gerenciarem seus aplicativos na Cielo Store, incluindo publicação, atualização e acompanhamento de métricas. |
Credenciais | Conjunto de dados (como client ID e access token) utilizados para autenticar e autorizar o acesso às APIs da Cielo. |
Deeplink | Método de integração que permite a comunicação entre aplicativos por meio de URLs personalizadas, facilitando a chamada de funções específicas na Cielo Smart. |
Emulador | Ferramenta que simula o comportamento de um terminal Cielo em um ambiente de desenvolvimento, permitindo testes sem o hardware físico. |
Loja privada | Aplicativo publicado na Cielo Store que está disponível apenas para um grupo específico de clientes. |
Loja pública | Aplicativo publicado na Cielo Store que está disponível para todos os usuários da Cielo Smart. |
Maquininha/terminal | Dispositivo físico fornecido pela Cielo para realizar transações de pagamento. |
Order | Representa um pedido ou ordem de pagamento, geralmente contendo informações como valor, itens. |
Produção | Ambiente real onde as transações são processadas de fato, com movimentação financeira e dados reais. |
Transaction | Representa uma transação financeira, como uma venda, cancelamento ou estorno, realizada por meio das soluções da Cielo. |
Suporte técnico
O público-alvo desta documentação são parceiros desenvolvedores e demais públicos interessados na integração, desenvolvimento e utilização dos dispositivos Cielo Smart.
Aqui você encontra tudo o que precisa para começar a desenvolver soluções integradas com a Cielo Smart. Este portal tem como objetivo facilitar o processo de integração, oferecendo orientações claras, boas práticas de desenvolvimento e os diferentes modelos de integração disponíveis, para que você possa criar soluções que agreguem valor ao negócio. Nosso objetivo é apoiar você em cada etapa do desenvolvimento, desde o planejamento até a publicação da sua solução.
Caso tenha dúvidas envie um e-mail para: suportesolucoesintegradas@cielo.com.br ou envie sua pergunta pelo portal.
Você também pode agendar uma chamada no dia e horário que preferir para conversar diretamente com nossos desenvolvedores especializados em suporte às soluções integradas da Cielo Smart.
Ou, se preferir, entrar em contato pela Central de Atendimento:
- Capitais e regiões metropolitanas: (11) 4002-5472
- Demais localidades: 0800 570 8472
Seja um parceiro
A Aliança Cielo objetiva construir parcerias estratégicas com empresas de tecnologia, ampliando nossa atuação no mercado com soluções integradas e completas. A proposta é democratizar o acesso à inovação, conectando nossos serviços às soluções dos parceiros.
Como funciona a parceria?
A maioria das parcerias é formada por meio da integração entre os produtos da Cielo e as soluções dos parceiros. Também há troca de leads qualificados, criando oportunidades comerciais para ambos os lados.
Quais são os benefícios de ser parceiro da Cielo?
Além de fazer parte de uma das líderes em meios de pagamento, os parceiros têm acesso a benefícios como:
- Compartilhamento de resultados
- Relacionamento direto com executivos da adquirente
- Acesso a conteúdos exclusivos
- Networking com empresas do setor
- Participação em viagens e eventos especiais
- Visibilidade em canais da Cielo
- Apoio em feiras e eventos do setor
Quem pode ser parceiro?
O programa é destinado a empresas de tecnologia de todos os portes que atuam nos segmentos do varejo físico e do e-commerce. Isso inclui Software Houses, TEF Houses, desenvolvedores de soluções integradas com maquininhas e aplicativos para Cielo Smart, além de plataformas de e-commerce, orquestradores de pagamento, agências implementadoras e criadores de marketplaces.
Que etapas devo seguir para me tornar parceiro da Cielo?
O processo é simples e estruturado em 7 etapas:
- Cadastre-se como candidato a parceiro via formulário
- Aguarde a avaliação de viabilidade da parceria pelo Time Aliança
- Assine o termo de confidencialidade via Portal do Parceiro
- Preencha o modelo Know Your Partner (KYP) e aceite os termos e políticas
- Aguarde a análise documental pela equipe da Cielo
- Assine o contrato de parceria
- Pronto! A parceria foi formalizada e agora você tem acesso completo ao Portal do Parceiro
Ficou com dúvidas? Envie um e-mail para parcerias@cielo.com.br ou acesse o site com mais informações sobre o programa de parcerias.
Novidades
Atualização obrigatória dos seus apps para a Cielo Smart!
Julho de 2025
Estamos em processo de migração para a nova geração de terminais Cielo Smart. Para garantir o funcionamento dos seus aplicativos, é essencial que eles estejam adaptados até 15/10/2025.
Datas importantes:
- 15/08: Live para tirar dúvidas sobre a migração (divulgaremos link em breve).
- 29/08: Fim do suporte a apps não adaptados (sem Deeplink ou SDK < 2.1.0).
- 15/10: Corte definitivo — apps não adaptados poderão deixar de funcionar.
Para migrar:
- Utilize a integração via Deeplink.
- Solicite um terminal Smart para testes via Portal do Desenvolvedor.
- Em caso de dúvidas, abra um chamado no portal ou envie e-mail para atendimentosmart@cielo.com.br
Cielo Smart: A evolução da LIO On
Março de 2025
A Cielo Smart chegou para transformar a experiência de desenvolvimento na plataforma Cielo. Evolução direta da LIO On, ela oferece mais performance, compatibilidade e foco em inovação.
Com a Cielo Smart, você aproveita:
- Compatibilidade ampliada: Seu app roda em novos terminais sem necessidade de ajustes ou retrabalho.
- Mais robustez e velocidade: Melhorias significativas no desempenho e no tempo de aprovação de pagamentos.
- Smart first: Todas as novas funcionalidades e atualizações serão lançadas exclusivamente para a Cielo Smart.
Conheça os benefícios da integração via Deeplink
Dezembro de 2024
Adapte seus aplicativos com a integração via Deeplink e aproveite novas funcionalidades sem precisar atualizar bibliotecas externas.
Se você já utiliza a integração via Deeplink, veja abaixo como se adaptar ao novo Cielo Smart:
- Atualize o arquivo AndroidManifest.xml. Para fazer isso, adicione a seguinte tag para garantir que o app seja distribuído corretamente nos terminais durante o processo de publicação:
<application>
...
<meta-data
android:name="cs_integration_type"
android:value="uri" />
<activity>
...
<activity/>
<application/>
- Certifique-se de que seu app está em conformidade com os requisitos do Android 10, incluindo permissões, notificações, criação de intents, entre outros.
Recomendamos fortemente a migração para a integração via Deeplink, que oferece uma solução mais leve, flexível e segura para o seu app. Ao eliminar a dependência de SDKs, a integração se torna mais rápida, personalizável e compatível com diferentes dispositivos e versões. Além disso, reduz conflitos com bibliotecas externas, facilita a manutenção e melhora o desempenho, ao evitar a sobrecarga de código de terceiros.
Para saber mais, acesse a documentação de integração via DeepLink.
VISÃO GERAL TÉCNICA
Funcionalidades
A Cielo Smart oferece funcionalidades exclusivas que agregam valor à experiência do cliente. Entre os principais destaques, estão:
- Impressora térmica: Permite a impressão da 1ª e 2ª via do comprovante após a finalização do pagamento. Além disso, aplicações parceiras podem utilizar os recursos da impressora para gerar documentos relevantes ao negócio do cliente.
- Tecnologia NFC: Compatível com pagamentos por aproximação (contactless), oferecendo mais agilidade e praticidade nas transações.
- Cielo Store: Loja de aplicativos integrada com mais de 50 apps voltados para gestão de vendas, estoque, equipe, entre outros.
- Multiconexão (Wi-Fi + 4G): Garante conectividade em diferentes ambientes, permitindo mobilidade e vendas em qualquer ponto da loja.
- Frente de caixa móvel: Pode ser usada como um ponto de venda portátil, ideal para atendimento em movimento.
- Leitor de código de barras: Facilita o cadastro e a venda de produtos com leitura rápida e precisa.
- Calculadora integrada: Para facilitar o cálculo de valores antes de finalizar a venda.
- Múltiplas formas de pagamento: Inclui débito, crédito (à vista e parcelado), voucher, Pix, QR Code e mais de 80 bandeiras de cartões.
- Integração com sistemas de automação comercial: Via SDK e APIs REST, permitindo que desenvolvedores criem soluções personalizadas para o terminal.
- NFC: tecnologia presente permitindo o pagamento utilizando cartões com tecnologia contactless
Arquitetura
A plataforma Cielo LIO é baseada em Android que consiste em:
- Uma loja de aplicativos Cielo Store para os desenvolvedores publicarem seus aplicativos e os disponibilizarem para os estabelecimentos comerciais (lojistas).
- Uma plataforma com arquitetura em nuvem e APIs REST que permite a integração com sistemas de automação comercial de parceiros. Acesse a documentação da integração remota
- Chamadas via intent, de forma que aplicativos de parceiros possam se integrar com as funcionalidades de pagamento da Cielo LIO. Acesse a documentação da integração via Deeplink
Terminais e características da Cielo Smart
Atualmente, dois terminais da Cielo Smart estão disponíveis: Cielo LIO (L300) e DX 8000.
Cielo Lio: L300 - Positivo
DX8000 - Ingenico
Abaixo, você encontra as especificações técnicas dos modelos disponíveis:
![]() |
![]() |
![]() |
|
---|---|---|---|
Versão | LIO V2 | LIO V3 | DX8000 |
Sistema operacional | Android OS Cielo 6.0 (Marshmallow) | Android 7.1 (Nougat) | Android 10 Security OS |
Memória | 2GB RAM | 1GB RAM | 1GB RAM |
Armazenamento | 16 GB | 8 GB | 8 GB |
Dual Chip | - | - | Sim |
Frequência | 2.4 GHz | 2.4GHz + 5.0 GHz | 2.4GHz + 5.0 GHz |
Tipo do SIM Card | micro SIM (3FF) | 1 SIM card (2FF) + ESIM | 2 SIM card (2FF) + ESIM |
Frequência GSM Mhz | Quad-Band 850/900/1800/1900 | Quad-Band | Quad-Band |
Tamanho em polegadas | 5.5” | 5” | 5.5” |
Tipo de tela | AMOLED | AMOLED | AMOLED |
Resolução da tela | 720 x 1280 | 720 x 1280 | 720 x 1280 |
Densidade de pixels | 267 ppi | 267 ppi | 1080p |
Câmera | 8 Mega Pixels | 5 Mega Pixels | 5 Mega Pixels |
Resolução da câmera | 4160 x 3120 pixels | 4160 x 3120 pixels | 4160 x 3120 pixels |
Flash | Flash LED | Flash LED | Flash LED |
USB | USB 2.0 Micro-B (Micro-USB) Somente Energia | USB Tipo C | USB Tipo C |
Bluetooth | Versão 4.0 com A2DP/LE | Versão 4.2 | Versão 4.2 |
WiFi | 802.11 b/g/n (2.4GHz) | 802.11a/b/g/n(2.4GH+5.0GHz) | 802.11a/b/g/n(2.4GH+5.0GHz) |
GPS | A-GPS | GPS + A-GPS, Glonass | GPS + A-GPS, Glonass |
Sensores | Acelerômetro, Proximidade e Luminosidade | Acelerômetro, Prox. e Lumin | Acelerômetro, Prox. e Lumin |
Saída de áudio | Audio Jack 3.5mm | Audio Jack 3.5mm | - |
Peso | 507 g | 417 g | 450 g |
Altura | 46mm | 70mm | 198mm |
Largura | 81mm | 82mm | 83mm |
Comprimento | 228mm | 205mm | 62.5mm |
Boas práticas para desenvolvedores
Aqui, estão reunidas orientações essenciais para garantir que sua integração aconteça de forma eficiente, segura e alinhada à experiência esperada na Cielo Smart.
Segurança e Privacidade
- Proteja dados sensíveis de clientes e funcionários.
- Nunca exponha tokens de autenticação ou senhas.
Rate limiting e performance
- Escalone as solicitações da Automação Comercial ou PDV para evitar picos de tráfego.
- Utilize cache para dados grandes ou para armazenar valores especializados.
- Evite chamadas POST em multi-threading para prevenir deadlocks.
- Minimize o uso de dados, considerando conexões móveis limitadas.
- Otimize as operações visando o baixo consumo de bateria.
Qualidade de código
- O aplicativo deve seguir as boas práticas de desenvolvimento Java e Android, conforme as diretrizes oficiais para desenvolvedores da plataforma Android.
- Aplique os princípios Design Orientado a Objetos (S.O.L.I.D.) e diretrizes de estilo Java.
- Entenda e configure corretamente compileSdkVersion, targetSdkVersion e minSdkVersion.
- Aproveite os botões nativos do Android, como os botões “Voltar” e “Início”.
Usabilidade e experiência do usuário
- Utilize ícones com dimensionamento padrão Android. Siga esta guideline
- Implemente ferramentas de monitoramento de falhas em seus produtos Android com o objetivo de manter a consciência operacional do produto. Sugerimos a utilização do Crashlytics.
- Colete métricas de uso do aplicativo para melhorar o produto.
- Priorize clareza e acessibilidade no design do seu aplicativo: contraste, fontes legíveis e texto grande.
- Esclareça os termos de uso da aplicação e ofereça suporte adequado ao usuário.
- Seu aplicativo será usado em condições de trabalho de ritmo rápido em ambientes dinâmicos, portanto, construa fluxos de fácil com o mínimo de passos possível.
- Ao adaptar um aplicativo desenvolvido para outra plataforma, mantenha apenas os recursos e botões relevantes para o usuário da Cielo Smart.
- Recomenda-se o uso do Material Design no desenvolvimento de aplicações para a Cielo Smart, promovendo a adoção de boas práticas de design e melhorando a experiência em dispositivos móveis.
CHECKLIST PRÉ-PUBLICAÇÃO DE APLICATIVO
Pré-requisitos
Com a Cielo Smart, empresas e parceiros podem executar seus aplicativos diretamente na plataforma da Cielo. Esses aplicativos podem ou não estar integrados com o pagamento, dependendo dos objetivos específicos de cada negócio.
Antes de iniciar o desenvolvimento de um aplicativo para a Cielo Smart, é importante atender a alguns requisitos técnicos que garantem compatibilidade e desempenho. A seguir, apresentamos os principais pontos que devem ser considerados para uma integração eficiente com a plataforma.
Linguagem de programação
A Cielo Smart é compatível com aplicativos desenvolvidos em Java ou Kotlin. Recomenda-se o uso dessas linguagens para garantir melhor desempenho, estabilidade e integração com o sistema.
Embora outras linguagens possam ser utilizadas, a responsabilidade pela compatibilidade e funcionamento do aplicativo será inteiramente do desenvolvedor.
Ambiente de desenvolvimento
Recomenda-se o uso da a IDE Android Studio, versão 2.2.2 ou superior, para garantir a correta execução dos aplicativos na Cielo Smart.
Os links abaixos oferecem direcionamentos de instalação, configuração e criação de projetos.
Versão target da aplicação
Para garantir compatibilidade com os modelos e versões do Android utilizados nos terminais LIO, recomenda-se:
- SDK mínima: 24
- SDK target: 29
Aplicativos com target inferior à versão 29 não poderão ser distribuídos na Cielo Smart. Além disso, é essencial que o aplicativo esteja em conformidade com os requisitos do Android 10, como permissões, notificações e uso de serviços em foreground.
Modelos de integração
Integração é o processo de conectar diferentes sistemas ou aplicações para que eles possam trabalhar juntos de forma fluida. No contexto da Cielo Smart, isso significa permitir que o sistema de automação comercial ou Ponto de Venda (PDV) do cliente se comunique com os serviços da Cielo, como pagamentos, cancelamentos e impressão de comprovantes, de maneira segura e eficiente.
A Cielo oferece dois principais modelos de integração para facilitar a comunicação entre o sistema do cliente e a Cielo Smart: Integração via Deeplink e Integração remota.
Integração via Deeplink
Esse modelo utiliza intents e deep links para permitir que aplicativos Android se comuniquem diretamente com os recursos da Cielo.
Vantagens:
- Simples de implementar em apps Android.
- Permite chamadas diretas para funcionalidades específicas da Cielo.
- Boa opção para soluções mais leves ou apps móveis.
Clique aqui para aprender mais sobre a integração via Deeplink.
Integração remota
Neste modelo, você continua utilizando seu sistema de PDV normalmente. Quando chega o momento de realizar o pagamento, o sistema se conecta ao Order Manager da Cielo Smart por meio de um conjunto de APIs.
Vantagens:
- Mantém todas as funcionalidades do sistema atual.
- Comunicação rápida e segura com o gerenciador de pedidos da Cielo.
- Ideal para quem já possui uma solução robusta de automação comercial.
Clique aqui para aprender mais sobre a integração remota.
Ambiente Sandbox: Emulador Cielo
Disponibilizamos um aplicativo que facilita a validação da sua integração com a Cielo Smart, eliminando a necessidade de utilizar o hardware físico em modo debug. Essa solução simula o comportamento da Cielo Smart, processando solicitações e gerando respostas para o software de integração. Com isso, você pode realizar testes e depuração diretamente no ambiente de desenvolvimento, sem precisar de um dispositivo físico da Cielo Smart.
Baixando o Emulador Cielo
1. Clique aqui para fazer o download do emulador.
2. Após a instalação, abra o aplicativo. A primeira tela exibida será a de boas-vindas, contendo uma mensagem inicial e dois botões. O botão para limpar dados irá remover os pedidos criados pelo integrador. Já o botão de configurações permite ajustar as respostas automáticas para testes de chamadas de impressão.
3. Então, instale o aplicativo de integração. Para fins didáticos, utilizamos o aplicativo Sample, disponível no GitHub da Cielo. Para instalar o aplicativo Sample, baixe os arquivos do projeto disponíveis no GitHub. Assim, você terá um APK que poderá ser instalado no seu dispositivo.
4. Em seguida, abra o arquivo no Android Studio e clique em Run App para instalar o aplicativo no seu dispositivo.
Utilizando o emulador da Cielo Smart
1. Ao entrar no Cielo Emulador, a primeira tela exibida será a de boas-vindas, contendo uma mensagem introdutória e dois botões principais:
- Limpar dados: essa opção apaga os pedidos que foram criados pelo sistema integrador, permitindo começar os testes do zero.
- Configurações: abre um menu com opções para definir respostas automáticas, especialmente úteis para simular chamadas de impressão durante os testes.
2. Com o aplicativo de integração instalado, você deve selecionar o tipo de integração desejada: Integração Local ou Integração via Deep Link.
3. Ao selecionar a integração, você verá as opções para realizar pagamentos ou para imprimir textos e imagens. Abaixo, detalhamos esses fluxos.
Realizando pagamentos
1. Ao clicar em Realizar Pagamento, serão exibidos os dados de pagamento.
- Valor da transação: corresponde ao valor informado no campo amount da requisição.
- Produto principal (Primary Product): menu suspenso com todas as opções de produtos principais disponíveis para a transação.
- Produto secundário (Secondary Product): menu suspenso que exibe os produtos secundários vinculados ao produto principal selecionado.
- Lista de Estabelecimentos Comerciais (ECs): campo que apresenta os ECs disponíveis para seleção.
2. Ao clicar em Pagar, você verá as opções de resposta para o integrador.
- Sucesso: Simula uma operação de pagamento bem-sucedida e retorna os dados correspondentes.
- Cancelado: Interrompe a operação de pagamento.
- Erro: Retorna uma falha genérica na operação de pagamento.
3. Ao selecionar uma dessas opções de resposta, o resultado é enviado ao sistema integrado e nossa aplicação é movida para o plano de fundo.
Além da operação de pagamento, oferecemos suporte a diversas funcionalidades, como: cancelamento de pedidos; consulta de métodos de pagamento disponíveis (Crédito, Débito, Pix, entre outros); e consulta de pedidos criados, tanto individualmente quanto em formato de lista.
Em seguida, você aprende como funciona a simulação do fluxo de cancelamento de pagamentos.
Cancelando pagamentos
É possível simular a requisição de cancelamento de um pagamento realizado para um pedido específico. No exemplo abaixo, demonstramos esse fluxo.
1. Ao clicar em Cancelar Ordem, o emulador exibe uma tela com os detalhes da transação.
2. Em seguida, basta clicar em Confirmar Cancelamento para prosseguir.
3. Após confirmar o cancelamento do pagamento, serão exibidas as opções de resposta para o sistema integrador. Basta selecionar o tipo de resposta desejado.
Realizando teste de impressão
1. Para realizar testes de impressão, selecione o tipo de conteúdo que deseja imprimir: texto simples ou imagem (como QR code ou código de barras).
2. Em seguida, selecione o cenário de resposta você deseja simular: Impressão realizada, Erro na impressão ou Sem papel.
Se você deseja manter sempre a mesma resposta para todas as chamadas futuras, basta marcar a opção Não perguntar novamente. Com essa opção ativada, as próximas respostas serão automaticamente definidas com base na última escolha feita.
Caso queira alterar esse comportamento e configurar uma nova resposta automática, é necessário retornar à tela de boas-vindas e acessar o botão Configurações. Nessa tela, você pode:
- Habilitar a opção Perguntar sempre, retornando ao cenário padrão em que a tela de opções é exibida a cada chamada de impressão;
- Ou escolher uma nova resposta automática, conforme sua preferência.
Solicitando uma Cielo Smart
Para solicitar uma Cielo Smart para testes e publicação de aplicativos, siga os passos abaixo:
1. Acesse o canal de Suporte Desenvolvedores Cielo e selecione a opção Cielo Smart LIO.
2. Em seguida, clique em Envie sua pergunta.
3. Para dar continuidade a sua solicitação, será necessário realizar o login. Para isso, insira seu login e senha. Então, confirme que não é um robô e clique em Entrar.
4. No campo para escolher o tipo de solicitação, selecione o modelo desejoado: Solicitação LIO Dev /Credenciamento (Sem DEBUG) ou Solicitação DX8000 (Com DEBUG).
5. Ao selecionar essa opção, novos campos irão aparecer e você deve preenchê-los. Ao finalizar o preenchimento, clique em Enviar.
6. Após enviar sua solicitação, aguarde o recebimento do terminal Cielo Smart.
Em posse do terminal Cielo Smart, você deverá ativá-lo. Clique aqui para aprender como fazer isso.
Ativando uma Cielo Smart
Após solicitar um terminal Cielo Smart, você deve ativá-lo.
Antes de iniciar o processo de ativação, certifique que atende aos pré-requisitos abaixo:
- Mensagem na tela do terminal: Verifique se aparece a seguinte mensagem “Cuidado: Modo de desenvolvimento. Transação de pagamento proibida”. Caso essa mensagem não esteja visível, entre em contato com o suporte.
- Carga da bateria: O terminal deve estar com pelo menos 50% de carga. Isso garante que o processo ocorra sem interrupções e permite que atualizações sejam realizadas com sucesso.
- Conexão com a internet: Certifique-se de que o terminal está conectado a uma rede estável.
Siga o passo-a-passo abaixo para completar o processo de ativação:
1. Abra um chamado clicando aqui para receber informações que serão essenciais no processo de ativação, como CNPJ e número lógico.
2. Em seguida, ligue o terminal e, na tela de boas vindas, clique em Vamos lá.
3. Escolha o modo de conexão desejado, configurando uma rede Wi-Fi ou prosseguindo com a conexão via 4G.
4. Acesse o menu de opções clicando nos três pontinhos no canto superior direito da tela.
5. Selecione a opção Acessar funções técnicas. Em seguida, clique em Prosseguir para continuar.
6. No campo para digitar o número da função desejada, digite 69 e clique em Executar função.
7. Para descobrir a senha ambiente, acesse o Dev Console. Então, clique Meus aplicativos > Apps privados > Ver detalhes > Desinstalar app. Assim, você vai visualizar a senha.
8. Em seguida, selecione o ambiente Certificação para configurar o ambiente.
9. Na tela de Funções técnicas, clique em Cancelar para retornar à tela de preenchimento de CPF/CNPJ.
10. Identifique-se digitando o CNPJ fornecido pelo time Cielo e clique em Continuar.
11. Confirme o seu cadastro clicando na opção Sim para que o processo de inicialização e desbloqueio seja realizado.
Você completou o processo e Sua Cielo Smart foi ativada!
Recursos indisponíveis e sugestões de substitutos
Para garantir desempenho, segurança e estabilidade, o sistema Android da Cielo LIO foi customizado. Como parte dessa personalização, alguns recursos padrão foram removidos. É importante estar ciente dessas limitações ao planejar e construir seus aplicativos.
Abaixo, seguem os recursos removidos da Cielo LIO:
- Google Play Services: Todos os serviços, APIs e apps do Google foram removidos do sistema operacional. Isso significa que bibliotecas que dependem do Google Play Services não funcionarão na Cielo LIO.
- Componente Webview: O WebView foi removido para evitar vulnerabilidades de segurança. Essa decisão impede que aplicativos acessem links ou conteúdos externos diretamente pela interface visual.
Abaixo, você encontra nossas sugestões de recursos substitutos aos que foram removidos:
Recurso indisponível | Substituto | Descrição |
---|---|---|
Push notifications | JobScheduler | É uma API que permite agendar tarefas para serem executadas periodicamente dentro do próprio processo do aplicativo. Ela é ideal para operações como consultas regulares a serviços de backend. Seu principal diferencial está na eficiência no uso da bateria, além de oferecer diversas opções de configuração. Clique aqui para saber mais. |
Serviço de localização (GPS) | Location Manager | Esta classe oferece acesso aos serviços de localização do sistema, permitindo que apps recebam atualizações da localização geográfica do dispositivo ou iniciem uma intenção ao detectar proximidade com uma área geográfica. Clique aqui para saber mais. |
Serviço de mapas | MapBox | É uma plataforma de mapeamento de código aberto para mapas personalizados. Nossas APIs e SDKs são os blocos de construção para integrar a localização em qualquer aplicativo móvel ou web. Clique aqui para saber mais. |
APKs removidas do Cielo OS
Abaixo, segue uma tabela com todas as APKs que foram removidas do Cielo OS e que, consequentemente, não estão disponíveis para a Cielo LIO:
BasicSmsReceiver | FileManager | PhaseBeam |
Browser | Galaxy4 | QuickSearchBox |
Calculator | Gallery | SoundRecorder |
Calendar | HoloSpiralWallpaper | SpeechRecorder |
CalendarProvider | LiveWallpapers | Todos |
CBMessageWidget | LiveWallpaperPicker | Videos |
Contacts | MagicSmokeWallpapers | VisualizationWallpapers |
ContactsCommon | MtkWeatherProvider | VoiceCommand |
DataTransfer | Mms | VoiceDialer |
Dialer | Music | VoiceExtension |
MusicFX | VoiceUnlock | |
Exchange2 | NlpService | WallpaperCropper |
FMRadio | NoiseField |
PUBLICANDO UM APLICATIVO
Jornada de publicação de um aplicativo
Está começando sua jornada e quer saber como disponibilizar seu aplicativo na Cielo Smart? Este guia foi criado para ajudar você a entender os principais passos para publicar seu aplicativo!
Para disponibilizar seu aplicativo na Cielo Smart, você precisa garantir que ele esteja pronto para atender às necessidades dos clientes com qualidade e segurança. Com este guia, você tem os recursos necessários para dar os primeiros passos com confiança.
O processo de disponibilização do aplicativo varia conforme o tipo de loja escolhida, podendo ser loja pública ou privada.
Para conferir o passo a passo detalhado de cada cenário, acesse os guias abaixo:
Cielo Store Dev Console
O Dev Console é a plataforma oficial da Cielo para upload, gerenciamento e distribuição de aplicativos desenvolvidos para os terminais Cielo Smart.
Entre as funcionalidades disponíveis no Dev Console estão:
- Envio de aplicativos para análise e publicação.
- Visualização e controle de todos os aplicativos cadastrados, públicos ou privados.
- Distribuição personalizada para estabelecimentos comerciais via loja privada.
- Acompanhamento do status de certificação.
Todo aplicativo submetido ao Dev Console passa pelo processo de certificação e é avaliado por uma equipe técnica especializada. A certificação é obrigatória para publicação na Cielo Store (loja pública) ou para distribuição via loja privada para parceiros comerciais.
Acessando o Dev Console
1. Clique aqui para acessar o Dev Console.
2. Caso seja o seu primeiro acesso, clique em Criar Conta.
3. Agora você já pode iniciar o processo de submissão do seu aplicativo.
Tipos de loja na Cielo Store
A Cielo Store é a plataforma oficial de distribuição de aplicativos para os terminais Cielo LIO. Ao desenvolver um aplicativo para esse ecossistema, é fundamental entender os dois modelos de publicação disponíveis: loja pública e loja privada. Cada uma atende a diferentes necessidades de negócio e possui requisitos específicos de certificação e distribuição.
Loja pública
A loja pública é voltada para aplicativos que podem ser utilizados por qualquer estabelecimento comercial que possua um terminal Cielo Smart. Após a aprovação técnica e de segurança, o aplicativo é disponibilizado na Cielo Store e pode ser instalado por qualquer cliente Cielo.
As principais características das lojas públicas são:
- Visibilidade ampla: disponível para todos os usuários da plataforma.
- Certificação obrigatória: o aplicativo passa por uma análise técnica rigorosa antes da publicação.
- Recebimento de pagamentos: o desenvolvedor pode monetizar o aplicativo e receber valores pelas transações realizadas.
- Atualizações controladas: qualquer nova versão precisa passar novamente pelo processo de certificação.
As lojas públicas são ideais para soluções com aplicação geral, como gestão de vendas, controle de estoque, fidelização de clientes, entre outros.
Clique aqui para aprender como realizar o upload de um aplicativo em loja pública.
Loja Privada
A loja privada é destinada à distribuição de aplicativos para um grupo específico de estabelecimentos comerciais. Essa modalidade é indicada para soluções personalizadas, desenvolvidas sob demanda ou para uso interno de parceiros da Cielo.
As principais características das lojas privadas são:
- Distribuição restrita: o aplicativo é visível apenas para os ECs (Estabelecimentos Comerciais) autorizados.
- Certificação obrigatória: mesmo sendo privada, o app precisa atender aos critérios técnicos da Cielo.
- Controle de acesso: o desenvolvedor define quais ECs terão acesso ao aplicativo.
- Flexibilidade de uso: ideal para soluções customizadas ou integradas a sistemas proprietários.
A loja privada é recomendada para parceiros que desejam distribuir aplicativos exclusivos para seus clientes ou para uso interno em operações comerciais específicas.
Clique aqui para aprender como realizar o upload de um aplicativo em loja pública.
Loja Pública
Os aplicativos públicos ficam disponíveis na Cielo Store para download. Todos os clientes que utilizam a Cielo Store podem instalar o aplicativo.
Upload de novos aplicativos públicos
Para realizar o upload de um novo aplicativo público, siga os passos abaixo:
- Acesse a plataforma Dev Console;
- No topo superior direito, clique em “+ Aplicativo”;
- Para fazer o upload em loja pública, clique no botão “Subir na Cielo Store”, onde apresenta uma descrição sobre a loja:
- Após a seleção, será exibido o modal: “Organize estas informações”, clique em “Continuar” e realize o upload do arquivo do aplicativo com o formato .apk com o tamanho de até 200MB. ATENÇÃO: Após o upload do arquivo não é possível trocar de loja pública para privada.
Preenchendo os formulários
Para o aplicativo seguir para etapa de Certificação, é necessário o preenchimento dos formulários. Assim que realizar o upload do arquivo do aplicativo, você será direcionado para o primeiro formulário. Caso não queira iniciar o preenchimento neste momento, basta clicar na seta “Voltar”.
Quando quiser retomar o preenchimento dos formulários, acesse a home Meus aplicativos, na aba Apps públicos, clique em “Ver detalhes” do aplicativo, e entre na aba Dados do App.
No formulário Sobre o aplicativo estão as informações que irá compor a vitrine do seu aplicativo na Cielo Store.
No formulário Modelo de Cobrança, você escolhe a modalidade de cobrança do seu aplicativo, o nome do plano e a descrição, são 3 tipos de modalidade:
- Gratuito: não é cobrado nenhum valor.
- Fixo: valor cobrado uma única vez, sendo gratuito por um mês na primeira compra.
- Mensal: valor cobrado mensalmente, sendo gratuito por um mês na primeira compra.
No formulário Suporte, você informa os canais de comunicação que o cliente pode entrar em contato, e o termo de uso do seu aplicativo que deve ser disponibilizado.
No formulário Certificação, você informa os dados para o time especializado da Cielo realizar os testes do aplicativo, garantindo que o app esteja de acordo com as regras e critérios estabelecidos pela Cielo. Após o aplicativo ser aprovado e promovido para produção, o app ficará disponível na Cielo Store.
Nova versão de aplicativos públicos
Caso realize alguma alteração ou atualização no aplicativo público, você deverá fazer o upload de uma nova versão do aplicativo e utilizar a mesma assinatura da versão anterior. Para isso, acesse a home Meus aplicativos, na aba Apps públicos, clique em “Ver detalhes” do aplicativo e depois no botão “+ Nova versão” para fazer o upload de uma nova versão. É obrigatório:
- Garantir que a versão mais recente do aplicativo tenha o mesmo package name da versão anterior;
- Alterar o “version code” e o “version name” dentro do arquivo manifest do aplicativo;
- Conferir ou atualizar as informações dos formulários e preencher os dados para certificação.
Critérios de certificação de aplicativos da loja pública
O objetivo da certificação de aplicativos é garantir que todos os aplicativos presentes nas maquininhas Cielo sejam públicos ou privados, estejam de acordo com as regras e critérios estabelecidos pela Cielo.
Critérios para aprovação da certificação de aplicativo público:
- Realizar testes em desenvolvimento antes de nos encaminhar a versão. Veja como baixar o Emulador.
- O cadastro do aplicativo deve ser de fácil acesso para o cliente.
- Não pode ter um sistema ERP conectado.
- Preencher os termos de uso corretamente, mostrando as normas do serviço que está sendo oferecido.
- Preencher corretamente todos os formulários: Sobre o aplicativo, Modelo de Cobrança, Suporte e Certificação.
- O vídeo que irá compor a vitrine do seu aplicativo na Cielo Store, deve ser com a URL do YouTube, e de visibilidade “Público” ou “Não listado”, não é permitido vídeo privado.
- A versão que será certificada deve maior do que a versão anterior. Exemplo: versão anterior 1.0 e a versão atual 1.1.
- Caso o aplicativo tenha webview, não ficar disponível a URL para a troca de URL dentro do aplicativo. A URL não deverá aparecer.
- Garantir que o fluxo de pagamento funcione corretamente.
- Gerar valores para teste até R$ 0,05 centavos.
- IMPORTANTE: Qualquer valor transacionado maior do que R$ 0,05 devem ser cancelados para que não haja efetivação da transação.
- 100% das transações dever ser via Cielo.
- Deve ficar disponível para todos Clientes da Cielo Store.
- Imagem, ícones e screenshot devem estar formato correto e elegível
- Manter seu app sempre nas versões mais atuais do SDK. Confira as versões atuais através do Cielo Store Dev Console.
O que o app não pode ter?
- Não conter palavras Cielo ou Lio.
- Não conter palavrão.
- Não exibir de imagens inapropriadas.
- Não exibir imagens ou nomes de concorrentes.
- Não conter sistema ERP conectado.
- Não conter acesso restrito e personalizado para um cliente.
- Não usar o logo da Cielo.
ATENÇÃO: Qualquer informação necessária que esteja faltando, resultará na reprovação automática do aplicativo. O SLA de certificação são de 48h úteis.
Após o aplicativo ser certificado. Quais são os próximos passos?
- O desenvolvedor deverá promover seu aplicativo para produção, acesse a home Meus aplicativos, na aba Apps públicos, clique em “Ver detalhes” do aplicativo, depois dentro da aba Versões clique no botão “Enviar para produção”.
- Após enviado para produção, o aplicativo será disponibilizado na vitrine da Cielo Store para os clientes realizarem a compra (download) do aplicativo.
IMPORTANTE: Somente aplicativos de loja pública são disponibilizados na Cielo Store.
Modelo de Cobrança de Apps Públicos
Para alterar o preço e a modalidade de cobrança do seu app público na Cielo Store, acesse a aba de Modelo de cobrança em Detalhes do app.
IMPORTANTE: A alteração da cobrança sempre entrará em vigor no mês subsequente.
Para clientes que compraram o aplicativo antes da alteração de valor, haverá reajuste ao valor atualizado somente caso a primeira compra tenha sido dentro do plano mensal; as demais alterações ficarão restritas a novas compras e ainda respeitando a gratuidade de 30 dias.
Compra de Aplicativo Públicos na Cielo Store
Todos os aplicativos públicos certificados e promovidos para produção pelo desenvolvedor, ficam disponíveis no marketplace Cielo Store dentro das maquininhas Cielo.
Os estabelecimentos comerciais (lojistas) que desejam adquirir o aplicativo, precisam clicar no botão “Instalar” ou “Comprar” para baixar aplicativo escolhido na Cielo Store, em seguida, é necessário digitar as credenciais utilizadas no site Cielo para autenticação e débito do valor do aplicativo. Após a conclusão da compra, o app estará disponível para ser utilizado nas maquininhas Cielo.
A desinstalação do app deverá ser realizada também através da Cielo Store, e após a desinstalação será realizado o cancelamento da cobrança, caso o aplicativo seja pago e tiver ultrapassado o mês de gratuidade.
IMPORTANTE: Todos os aplicativos são gratuitos por um mês na primeira compra.
Download de aplicativo públicos nas maquininhas Cielo
Para realizar o download de aplicativos públicos na Cielo LIO, clique na aba Apps, entre no app Cielo Store e escolha o aplicativo que deseja, clique no botão “Instalar” ou “Comprar” para baixar aplicativo escolhido.
Para consultar os pagamentos referente aos aplicativos publicados em loja pública (Cielo Store), crie uma conta no site Cielo. Para fazer o cadastro, clique em “Acessar minha conta”, depois em “Primeiro acesso” e informe os dados requisitados.
Importante: É necessário realizar o credenciamento EC Cielo antes de criar o cadastro no site Cielo. Veja o passo a passo na seção Solicitação de máquina e credenciamento deste manual.
Loja Privada
Os aplicativos privados são indicados para desenvolvedores que querem permitir a distribuição de soluções personalizadas para um cliente específico e de acesso restrito. Pode ter um sistema ERP (Sistema de Gestão Empresarial) conectado.
Se você optou pela loja privada, é necessário criar uma loja para o envio do app. Para isso, acesse a plataforma Dev Console, clique em Lojas privadas, depois no botão + Criar loja privada, digite o nome da loja e clique em Concluir.
Sem loja criada:
Com loja criada:
Com a loja privada criada, você poderá publicar seu aplicativo no Dev Console selecionando sua loja, esta ação é essencial para realizar a distribuição de aplicativos privados.
Upload de novos Aplicativos Privados
Para realizar o upload de um novo aplicativo privado, siga os passos a seguir:
- Acesse a plataforma Dev Console;
- No topo superior direito, clique em “+ Aplicativo”;
- Para fazer o upload em loja privada, clique no botão “Subir na Loja Privada”, onde apresenta uma descrição sobre a loja:
- Após a seleção, será exibido um modal: “Organize estas informações”, clique em “Continuar” e selecione a loja privada, também é possível criar a loja privada no Clique aqui abaixo do select. Basta digitar o nome da loja e clicar em Concluir.
- Depois realize o upload do arquivo do aplicativo com o formato .apk com o tamanho de até 200MB. ATENÇÃO: Após o upload do arquivo não é possível trocar de loja privada para pública.
Preenchendo os formulários
Assim como na loja pública, para o aplicativo privado seguir para etapa de Certificação, é necessário o preenchimento dos formulários. Ao realizar o upload do arquivo do aplicativo, você será direcionado para o primeiro formulário. Caso não queira iniciar o preenchimento neste momento, basta clicar na seta “Voltar”.
Quando quiser retomar o preenchimento dos formulários, acesse a home Meus aplicativos, na aba Apps privados, clique em “Ver detalhes” do aplicativo, e entre na aba Dados do App.
No formulário Sobre o aplicativo estão as informações que serão exibidas no Portal do Desenvolvedor.
No formulário Suporte, você informa os canais de comunicação que o cliente pode entrar em contato, e dá o aceite referente a negociação dos valores. IMPORTANTE: O recebimento dos valores do aplicativo privado é negociado entre parceiro e cliente.
No formulário Certificação, você informa os dados para o time especializado da Cielo realizar os testes do aplicativo, garantindo que o app esteja de acordo com as regras e critérios estabelecidos pela Cielo. Após o aplicativo ser aprovado e promovido para produção, o app ficará disponível para todos os clientes associados à loja privada selecionada.
Nova versão de aplicativos privados
Caso realize uma alteração ou atualização no aplicativo privado, você deverá fazer o upload de uma nova versão do aplicativo e utilizar a mesma assinatura da versão anterior. Para isso, acesse a home Meus aplicativos, na aba Apps privados, clique em “Ver detalhes” do aplicativo e depois clique no botão “+ Nova versão” para fazer o upload de uma nova versão. É obrigatório:
- Garantir que a versão mais recente do aplicativo tenha o mesmo package name da versão anterior;
- Alterar o “version code” e o “version name” dentro do arquivo manifest do aplicativo;
- Conferir ou atualizar as informações dos formulários e preencher os dados para certificação.
Lembre-se, após o vínculo do aplicativo, não é possível alterar a loja.
IMPORTANTE: Somente aplicativos de loja pública são disponibilizados na Cielo Store. Aplicativos privados são distribuídos pelo desenvolvedor aos estabelecimentos específicos.
Critérios de certificação de aplicativos da loja privada
O objetivo da certificação de aplicativos é garantir que todos os aplicativos presentes nas maquininhas Cielo sejam públicos ou privados, estejam de acordo com as regras e critérios estabelecidos pela Cielo.
Critérios para aprovação da certificação de aplicativo privado:
-
Realizar testes em desenvolvimento antes de nos encaminhar a versão para atualização. Veja como baixar o Emulador
- A solução pode ser customizada para cliente específico.
- Acesso restrito e personalizado a um cliente.
- Pode ter um sistema ERP conectado.
- Preencher corretamente todos os formulários: Sobre o aplicativo, Suporte e Certificação.
- Caso o app tenha login, preencher os dados de acesso no formulário Certificação.
- A versão a ser certificada deve ser maior do que a versão anterior. Exemplo: versão anterior 1.0 e a versão atual 1.1.
- Caso o app tenha webview, não ficar disponível a URL para a troca de URL dentro do app. A URL não deverá aparecer.
- Caso o app rode em um servidor local, enviar um vídeo mostrando o fluxo do app. Os vídeos deverão ser atualizados conforme o envio de uma nova versão para certificação. Após gravar o vídeo do app, mostrar a versão e data do vídeo. Todo vídeo deve ser com a URL do YouTube, e de visibilidade “Público” ou “Não listado”, não é permitido vídeo privado.
- Garantir que o fluxo de pagamento funcione corretamente.
- Gerar valores para teste até R$ 0,05 centavos.
- IMPORTANTE: Qualquer valor transacionado maior do que R$ 0,05 devem ser cancelados para que não haja efetivação da transação.
- 100% das transações dever ser via Cielo.
- Garantir que o aplicativo seja seguro para todos os públicos.
- Manter seu app sempre nas versões mais atuais do SDK. Confira as versões atuais através do Portal do Dev na área logada.
- Garantir que o aplicativo seja seguro para todos os públicos.
- Manter seu app sempre nas versões mais atuais do SDK. Confira as versões atuais através do Cielo Store Dev Console.
O que o app não pode ter?
- Não conter palavras Cielo ou Lio.
- Não conter palavrão.
- Não exibir de imagens inapropriadas.
- Não exibir imagens ou nomes de concorrentes.
- Não usar o logo da Cielo.
ATENÇÃO: Qualquer informação necessária que esteja faltando, resultará na reprovação automática do aplicativo. O SLA de certificação são de 48h úteis.
Distribuição de Aplicativos na loja privada
Caso opte por desenvolver aplicativos privados e distribuir apenas para clientes específicos, você deve associar o EC do cliente a sua loja privada através do Dev Console. Somente o desenvolvedor que realizou a publicação do aplicativo poderá gerenciar a distribuição dos aplicativos da loja aos ECs do cliente.
Para associar o EC a uma loja:
Acesse no menu Lojas Privadas, clique em Todas as lojas, selecione a loja que deseja associar os ECs, em seguida clique no botão “+ Associar ECs”, e digite todos os ECs que serão associados àquela loja, depois clique no botão “Concluir” para finalizar.
Desassociar EC de Loja privada na Cielo Store Dev Console
Agora é possível desassociar ECs de uma loja privada no Dev Console, acesse a aba Lojas privadas localize a loja privada e depois clique no botão “Ver ECs”.
Desassociando um único EC
Encontre o EC pela paginação ou barra de busca, clique no botão “Desassociar”. Ao clicar será exibido uma modal para confirmar a desassociação, clique no botão “Sim”. E pronto, o EC será excluído da loja privada.
Utilizando a busca:
Desassociando vários ou todos os ECs
Encontre os ECs pela paginação ou barra de busca, selecione os ECs e clique no botão “Desassociar ECs selecionados”. Ao clicar será exibido uma modal para confirmar a desassociação, clique no botão “Sim”. E pronto, os ECs serão excluídos da loja privada.
Ao clicar no checkbox ao lado de código EC, todos os ECs serão selecionados:
IMPORTANTE: Vale lembrar que a desinstalação deve ser realizada diretamente pelo cliente. Para o cliente desinstalar um aplicativo privado, primeiro é necessário que você desassocie o EC da loja privada, para que assim o cliente prossiga com as próximas etapas:
LIO ON (V3):
- Acesse “Ajuda” > Ajustes > Apps
- Digite a senha (informada no Dev Console)
- Escolha o app e em seguida a opção “Desinstalar”
Cielo Smart (DX8000):
- Acesse “Configurações” > Atualização de software
- Selecione o menu no topo e em seguida “Mostrar demais apps”
- Escolha o app e depois a opção “Desinstalar”
- Digite a senha (informada no Dev Console)
Busca por Loja privada e EC
Para encontrar de forma rápida uma loja privada ou um EC, utilize a barra de busca no topo da tela.
Na aba de Lojas Privadas:
Ao clicar em “Ver ECs”:
Download de Aplicativo da loja privada na LIO
Existe uma rotina automática que ocorre a cada 1 hora no terminal e verifica todos os apps que precisam ser disponibilizados ou atualizados em cada terminal. Caso o download não seja imediato, observar e orientar o cliente das seguintes situações:
1.A Cielo LIO deverá estar com a bateria acima de 50% e conectada a internet seja WI-FI ou 3G para realizar o download. 2.Com os critérios acima, siga o passo a passo para forçar a atualização:
- Clique na aba “Ajuda” > “Minha LIO”, depois em “Buscar atualizações”.
Status de um aplicativo
Todos os aplicativos publicados no Dev Console possuem os seguintes status:
1 - Assinatura
Após realizar o upload de um novo aplicativo ou nova versão, o aplicativo fica automaticamente com o status “Aguardando assinatura”, neste estágio o aplicativo será assinado para atender regra de segurança/PCI para que possa ser executado nos terminais.
2 - Desenvolvimento
Após ser assinado, o aplicativo fica automaticamente com o status “Em desenvolvimento”. Nesse estágio o desenvolvedor consegue realizar testes do seu aplicativo nas maquininhas Cielo, e caso precise fazer alguma correção, basta publicar uma nova versão do aplicativo pelo Dev Console e atualizar na maquininha.
Se não tiver LIO durante o desenvolvimento, solicite uma LIO para Desenvolvedores, veja o passo a passo na seção Solicitação de máquina e credenciamento deste manual.
Para testar um aplicativo nas maquininhas Cielo, acesse no Dev Console a home Meus aplicativos, clique em “Ver detalhes” do aplicativo, depois em “Detalhes” e Baixar App, escolha o tipo de maquininha que o QR Code será gerado.
Neste momento, basta abrir o aplicativo Test Your App na maquininha e escanear o QR Code. Após a leitura do QR Code, o download do app será realizado.
IMPORTANTE: Para a instalação de um app nas maquininhas Cielo, o terminal deverá estar com a bateria acima de 50% ou conectado no cabo de energia, e com internet WI-FI ou 3G.
3 - Certificação
Concluído os testes, você pode enviar o aplicativo para certificação. Nessa etapa o time especializado da Cielo entra em ação para validar o funcionamento do aplicativo de acordo com a seção Critérios de certificação de aplicativos da loja pública e Critérios de certificação de aplicativos da loja privada deste manual.
Após o envio para certificação, o aplicativo fica automaticamente com o status “Aguardando certificação”. A certificação pode levar 48h úteis. Fique atento, você será avisado por e-mail quando a certificação for concluída.
4 - Piloto / Produção
Assim que o aplicativo for aprovado na certificação, o desenvolvedor poderá promover para produção ou piloto (apenas app privado).
Publicação de app público em produção
Para app público, basta clicar em “Enviar para produção” e pronto. O app público ficará disponível para download na Cielo Store. A instalação é manual, realizada pelo cliente.
Criação de piloto para app privado
Benefícios com o piloto:
- Realizar um teste produtivo em máquinas específicas para validação;
- Possibilidade de realizar piloto paralelo de versão, antes que seja enviado para a produção.
Para realizar o piloto, a versão deve estar com a Certificação Aprovada. Acesse o aplicativo e a versão desejada: Publicar > Criar Piloto > adicionar os ECs e/ou EC e Lógico que irá receber a versão.
É possível enviar o piloto para todas as máquinas ou para algumas máquinas específicas do cliente.
Configuração de Frente de caixa e Aplicativo padrão
Agora é possível configurar seu app na Cielo Smart como um aplicativo de frente de caixa, ou seja, você pode deixar o seu aplicativo como “default” assim que ligar a máquina, e/ou escolher também a opção de “aplicativo padrão”, desta forma o pagamento ficará disponível apenas para o seu aplicativo, bloqueando pagamentos via interface da Cielo Smart.
Acesse o Dev Console, clique em Apps públicos ou em Apps privados, depois em “Ver detalhes” do aplicativo desejado e clique no botão “Configurar app”.
Ao clicar no botão “Configurar app”, irá abrir as opções para você escolher.
Frente de caixa
Ao habilitar somente esta opção, o cliente deverá configurar o seu aplicativo na Cielo Smart para que todas as transações sejam realizadas através desse aplicativo.
Para realizar a configuração, oriente seu cliente a seguir o passo a passo:
- LIO On(V3): Ajuda > Minha Lio > App padrão de vendas
- Cielo Smart: Abra o aplicativo “Cielo Router” na tela inicial > Selecione o seu app
Frente de caixa + Aplicativo padrão
Ao habitar as opções Frente de caixa e Aplicativo padrão, todas as Cielo Smart que possuem esse aplicativo instalado conseguirão transacionar somente pelo aplicativo.
Intent para receber o valor da venda
A intent informada ao submeter o aplicativo, deve ser a tela inicial de venda do seu aplicativo.
O parâmetro serve para receber o valor da venda, caso o usuário inicie uma transação usando o App padrão da Cielo, ao invés de usar o App Padrão selecionado.
Esse valor é passado no formato de centavos, sem separação dos decimais. Por exemplo, o valor 152,25 é passado como 15225, ficando por conta do App fazer o tratamento e formatação.
Essa intent será chamada em dois momentos:
- Quando o seu aplicativo estiver marcado como padrão, e o snap do Pinpad for conectado.
- Quando o seu aplicativo estiver marcado como padrão, e uma transação for iniciada usando o App Cielo Vender (App padrão vendas da Cielo). Neste cenário o valor digitado no App Cielo Vender será passado como intent extra para o seu aplicativo.
A configuração de intent é por versão do aplicativo, logo se ao aplicativo tem várias versões, você poderá adicionar uma intent por versão, ou atualizá-las.
Para realizar as configurações dessa intent, o aplicativo deve estar marcado como “Frente de caixa” e “Aplicativo padrão”. Após marcado estas opções, clique no botão “Frente de caixa” para fazer a configuração da intent e do parâmetro.
Ao clicar no botão “Frente de caixa”, você poderá configurar a intent e o parâmetro.
Caso possua alguma dúvida na configuração desse recurso, você pode abrir um chamado em nosso Suporte.
Publicação de app privado em produção
Após a finalização do piloto, para que todos os ECs vinculados a loja recebam o aplicativo, você deverá acessar o aplicativo e a versão desejada: Publicar > Publicar em produção.
A instalação é automática dos apps privados publicados em produção. O app privado estará disponível automaticamente para todos os ECs associados, sem a necessidade da ação de clientes.
Mensagens de Erro Dev Console
Segue os possíveis erros que o desenvolvedor pode encontrar durante a utilização do Dev Console:
REFERÊNCIA | MENSAGEM | CENÁRIO | O QUE FAZER? |
---|---|---|---|
APP CREATED_ERROR | Package name já existente | Desenvolvedor tentou enviar uma aplicação com package name já existente na loja. | Alterar no arquivo manifest o packageName da aplicação. |
APP APK_PARSER_ERROR | Não foi possível salvar o arquivo | Desenvolvedor tentou executar o upload de uma aplicação onde o arquivo manifest ou o apk está corrompido ou com problemas na configuração do arquivo manifest | Rebuildar o apk e verificar se não existem erros no arquivo manifest do Android. |
Caso você desenvolvedor não encontre o erro nesta tabela, abra um ticket para a equipe de suporte reportando o problema encontrado e lembre-se de listar as evidências do erro como prints de tela e mensagens de erro recebidas.
Integração via Deeplink
A Cielo oferece integração via intents para comunicação por meio de deep links, permitindo que aplicativos Android se integrem a recursos como pagamento, impressão e cancelamento
Credenciais
Você pode solicitar as credenciais (client-id/access-token) diretamente via PORTAL DE DESENVOLVEDORES.
Pagamento
É necessário definir um contrato de resposta com a LIO para que a mesma possa responder após o fluxo de pagamento/cancelamento/impressão. Esse contrato deve ser definido no manifest.xml da aplicação conforme o exemplo abaixo:
<activity android:name=".ResponseActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:host="response" android:scheme="order" />
</intent-filter>
</activity>
Os nomes “response” e “order” podem ser substituídos pelo que fizer sentido no seu aplicativo. Lembrando que na hora de fazer a chamada de pagamento, você deve informar os mesmos nomes para receber o callback da LIO. Para realizar o pedido de pagamento é preciso criar um json seguindo o formato definido abaixo e converte-lo para BASE64:
{
"accessToken": "Seu Access-token",
"clientID": "Seu Client-id",
"reference": "Referência do pedido", /* Não obrigatório */
"merchantCode": "Em caso de MULTI-EC", /* Não obrigatório */
"email": "emaildocliente@email.com",
"installments": 0,
"items": [
{
"name": "Geral",
"quantity": 1,
"sku": "10",
"unitOfMeasure": "unidade",
"unitPrice": 10
}
],
"paymentCode": "DEBITO_AVISTA",
"value": "10"
}
Pedidos de SubAdiquirente
No caso de o pagamento ser feito por Sub Adquirente é necessário colocar as informações necessárias no campo “subAcquirer” do JSON para ser formatado no momento de realizar o pagamento.
{
"accessToken": "Seu Access-token",
"clientID": "Seu Client-id",
"email": "emaildocliente@email.com",
"installments": 0,
"items": [
{
"name": "Geral",
"quantity": 1,
"sku": "10",
"unitOfMeasure": "unidade",
"unitPrice": 10
}
],
"paymentCode": "DEBITO_AVISTA",
"value": "10",
"subAcquirer": {
"softDescriptor": "softDescriptorValue",
"terminalId": "terminalIdValue",
"merchantCode": "merchantCodeValue",
"city": "cityValue",
"telephone": "telephoneValue",
"state": "stateValue",
"postalCode": "postalCodeValue",
"address": "addressValue",
"identifier": "identifierValue",
"merchantCategoryCode": "merchantCategoryCodeValue",
"countryCode": "countryCodeValue",
"informationType": "informationTypeValue",
"document": "documentValue",
"businessName": "businessName"
}
}
Todos os campos de SubAcquirer são do formato texto (string), e todos devem ser preenchidos, no caso de algum não estar preenchido e o retorno será um erro com as informações:
{
"code": 2,
"reason": " Parâmetros inválidos: Json inválido"
}
Lista de paymentCode
Disponibilizamos também a lista do campo “paymentCode”:
PaymentCode |
---|
DEBITO_AVISTA |
DEBITO_PAGTO_FATURA_DEBITO |
CREDITO_AVISTA |
CREDITO_PARCELADO_LOJA |
CREDITO_PARCELADO_ADM |
CREDITO_PARCELADO_BNCO |
PRE_AUTORIZACAO |
CREDITO_PARCELADO_CLIENTE |
CREDITO_CREDIARIO_CREDITO |
VOUCHER_ALIMENTACAO |
VOUCHER_REFEICAO |
VOUCHER_AUTOMOTIVO |
VOUCHER_CULTURA |
VOUCHER_PEDAGIO |
VOUCHER_BENEFICIOS |
VOUCHER_AUTO |
VOUCHER_CONSULTA_SALDO |
VOUCHER_VALE_PEDAGIO |
CREDIARIO_VENDA |
CREDIARIO_SIMULACAO |
CARTAO_LOJA_AVISTA |
CARTAO_LOJA_PARCELADO_LOJA |
CARTAO_LOJA_PARCELADO |
CARTAO_LOJA_PARCELADO_BANCO |
CARTAO_LOJA_PAGTO_FATURA_CHEQUE |
CARTAO_LOJA_PAGTO_FATURA_DINHEIRO |
FROTAS |
PIX |
Como explicado anteriormente, é preciso definir o contrato de resposta (host e scheme), aqui será utilizado essa configuração no parâmetro urlCallback. A chamada de pagamento deve ser feita da seguinte forma:
var base64 = getBase64(jsonString)
var checkoutUri = "lio://payment?request=$base64&urlCallback=order://response"
Após preparar a URI basta realizar a chamada de intent do android utilizando o comando específico da linguagem híbrida.
var intent = Intent(Intent.ACTION_VIEW, Uri.parse(checkoutUri))
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent)
Recuperando dados do pagamento
Para recuperar os dados de pagamento basta acessar a intent na activity de resposta e no parâmetro data, acessar a uri, da seguinte forma:
val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
val uri = responseIntent.data
val response = uri.getQueryParameter("response")
val data = Base64.decode(response, Base64.DEFAULT)
val json = String(data)
}
Lembrando que o parâmetro “response” é o mesmo que foi configurado como resposta na chamada de pagamento.
Com o pagamento finalizado a LIO retornará para a uri configurada inicialmente um JSON seguindo o formato exemplificado abaixo:
{
"createdAt":"Jun 8, 2018 1:51:58 PM",
"id":"ba583f85-9252-48b5-8fed-12719ff058b9",
"items":[
{
"description":"",
"details":"",
"id":"898e7f40-fa21-42d0-94d4-b4e95c4fd615",
"name":"cocacola",
"quantity":2,
"reference":"",
"sku":"1234",
"unitOfMeasure":"unidade",
"unitPrice":250
},
{
"description":"",
"details":"",
"id":"4baea4c2-5499-4783-accc-0f8904970861",
"name":"pepsi",
"quantity":2,
"reference":"",
"sku":"4321",
"unitOfMeasure":"unidade",
"unitPrice":280
}
],
"notes":"",
"number":"",
"paidAmount":1450,
"payments":[
{
"accessKey":"XXXXXXXXXXXXXXX",
"amount":1450,
"applicationName":"com.ads.lio.uriappclient",
"authCode":"140126",
"brand":"Visa",
"cieloCode":"799871",
"description":"",
"discountedAmount":0,
"externalId":"6d5f6f86-7870-4aed-b79f-0a26d6c61743",
"id":"bb9c6305-95e5-4024-8152-503d064c0224",
"installments":0,
"mask":"424242-4242",
"merchantCode":"0000000000000003",
"paymentFields":{
"isDoubleFontPrintAllowed":"false",
"hasPassword":"false",
"primaryProductCode":"4",
"isExternalCall":"true",
"primaryProductName":"CREDITO",
"receiptPrintPermission":"1",
"isOnlyIntegrationCancelable":"false",
"upFrontAmount":"0",
"creditAdminTax":"0",
"firstQuotaDate":"0",
"isFinancialProduct":"true",
"hasSignature":"true",
"hasPrintedClientReceipt":"false",
"hasWarranty":"false",
"applicationName":"com.ads.lio.uriappclient",
"interestAmount":"0",
"changeAmount":"0",
"serviceTax":"0",
"cityState":"Barueri - SP",
"hasSentReference":"false",
"v40Code":"4",
"secondaryProductName":"A VISTA",
"paymentTransactionId":"6d5f6f86-7870-4aed-b79f0a26d6c61743",
"avaiableBalance":"0",
"pan":"424242-4242",
"originalTransactionId":"0",
"originalTransactionDate":"08/06/18",
"secondaryProductCode":"204",
"hasSentMerchantCode":"false",
"documentType":"J",
"statusCode":"1",
"merchantAddress":"Alameda Grajau, 219",
"merchantCode":"0000000000000003",
"paymentTypeCode":"1",
"hasConnectivity":"true",
"productName":"CREDITO A VISTA - I",
"merchantName":"POSTO ABC",
"entranceMode":"141010104080",
"firstQuotaAmount":"0",
"cardCaptureType":"1",
"totalizerCode":"0",
"requestDate":"1528476655000",
"boardingTax":"0",
"applicationId":"cielo.launcher",
"numberOfQuotas":"0",
"document":"000000000000000"
},
"primaryCode":"4",
"requestDate":"1528476655000",
"secondaryCode":"204",
"terminal":"69000007"
}
],
"pendingAmount":0,
"price":1060,
"reference":"Order",
"status":"ENTERED",
"type”:”9”,
"updatedAt":"Jun 8, 2018 1:51:58 PM"
}
Atenção: O campo statusCode=0(apenas pagamentos pix) ou 1 indica uma transação de pagamento e statusCode=2 Cancelamento
Payment Fields - (atributo do objeto Payment) | ||
---|---|---|
Nome do Campo | Descrição do Campo | Valor Exemplo |
clientName | Nome do Portador | VISA ACQUIRER TEST CARD 03 |
hasPassword | Validar se a operação pediu senha | true |
primaryProductCode | Código do produto primário | 4 |
primaryProductName | Nome do produto primário | CREDITO |
upFrontAmount | Valor da entrada da transação | 2500 |
creditAdminTax | Valor da taxa de administração de crédito | 0 |
firstQuotaDate | Data de débito da primeira parcela | 25/12/2018 (dd/MM/yyy) |
externalCallMerchantCode | Número do Estabelecimento Comercial | 0010000244470001 |
hasSignature | Validar se a operação pediu assinatura | false |
hasPrintedClientReceipt | Validar se imprimiu a via do cliente | false |
applicationName | Pacote da aplicação | cielo.launcher |
interestAmount | Valor de juros | 5000 |
changeAmount | Valor de troco | 4500 |
serviceTax | Taxa de serviço | 2000 |
cityState | Cidade - Estado | Barueri - SP |
v40Code | Tipo da transação | 5 (Lista de Tipos de transação abaixo) |
secondaryProductName | Nome do produto secundario | PARC. ADM |
paymentTransactionId | ID da transação de pagamento | 4c613b44-19b8-497c-b072-60d5dd6807e7 |
bin | Número cartão tokenizado (6 primeiros dígitos – 4 últimos dígitos ou 4 últimos) | 476173-0036 ou **********4242 Para transações via QRCode sempre será enviado com o valor “0” |
originalTransactionId | ID da transação original, nos casos de cancelamento | 729d32ac-6c8d-4b0c-b670-263552f07000 |
cardLabelApplication | Tipo de aplicação utilizada pelo cartão na transação | CREDITO DE VISA |
secondaryProductCode | Código do produto secundário | 205 |
documentType | (J) = Pessoa Jurídica (F) = Pessoa Física | J |
statusCode | Status da transação 0(PIX) ou 1 - Autorizada 2 - Cancelada | 1 |
merchantAddress | Endereço do estabelecimento comercial (lojista) | Alameda Grajau, 219 |
merchantCode | Número do Estabelecimento Comercial | 0010000244470001 |
hasConnectivity | Valida se a transação foi online | true |
productName | forma de pagamento compilada | CREDITO PARCELADO ADM - I |
merchantName | Nome Fantasia do Estabelecimento Comercial | LOJA ON |
firstQuotaAmout | Valor da primeira parcela | 0 |
cardCaptureType | Código do tipo de captura do cartão | 0 (Lista de Tipos de Captura abaixo) |
requestDate | Data da requisição em milisegundos | 1293857600000 |
boardingTax | Taxa de embarque | 1200 |
applicationId | Pacote de aplicação | cielo.launcher |
numberOfQuotas | Número de parcelas | 2 |
Exemplos de retorno
Segue exemplos de retorno com sucesso e erro nas operações via intent na integração híbrida. Lembrando que em ambos os cenários abaixos é o conteúdo da URI e o campo resonse está em formato base64.
Retorno de sucesso:
order://response?response=eyJjcmVhdGVkQXQiOiJKYW4gMzEsIDIwMjQgMTE6Mzc6MjYgQU0iLCJpZCI6IjFkYjU1NzdmLWZjZDAtNDllOC04Y2FjLTVlMjRhYWZiMjUxZiIsIml0ZW1zIjpbeyJkZXNjcmlwdGlvbiI6IiIsImRl
dGFpbHMiOiIiLCJpZCI6IjkzMzA5ODkyLWMyMGItNDUyYy1iYTZmLTY4Mjc5NmI0YTk2ZSIsIm5hbWUiOiJwcm9kdXRvIiwicXVhbnRpdHkiOjEsInJlZmVyZW5jZSI6IiIsInNrdSI6IjQ2ODIiLCJ1bml0T2ZNZWFzdXJlIjoidW5pZGFkZSIsInVuaXRQcmljZSI6OTI1fV0sIm5vdGVzIjoiIiwibnVtYmVyIjoiIiwicGFpZEFtb3VudCI6OTI1LCJwYXltZW50cyI6W3siYWNjZXNzS2V5IjoiclNBcU5QR3ZGUEpJIiwiYW1vdW50Ijo5MjUsImFwcGxpY2F0aW9uTmFtZSI6ImNvbS5hZHMubGlvLnVyaWFwcGNsaWVudCIsImF1dGhDb2RlIjoiMTEzNzMwIiwiYnJhbmQiOiIiLCJjaWVsb0NvZGUiOiI4NDcyNjIiLCJkZXNjcmlwdGlvbiI6IiIsImRpc2NvdW50ZWRBbW91bnQiOjAsImV4dGVybmFsSWQiOiI0OGZhNjNjOS05NWVlLTQ4M2UtOWU3Yi1jZTMyNjMzZjEyOWIiLCJpZCI6IjgwY2U1MjhjLTJjY2MtNDgwMC1iZGMxLTViNWRkZGU1OGZiMSIsImluc3RhbGxtZW50cyI6MCwibWFzayI6IioqKioqKioqKioqKjAwMDAiLCJtZXJjaGFudENvZGUiOiIwMDAwMDAwMDAwMDAwMDAzIiwicGF5bWVudEZpZWxkcyI6eyJpc0RvdWJsZUZvbnRQcmludEFsbG93ZWQiOiJmYWxzZSIsImJpbiI6IjAiLCJoYXNQYXNzd29yZCI6ImZhbHNlIiwicHJpbWFyeVByb2R1Y3RDb2RlIjoiNCIsImlzRXh0ZXJuYWxDYWxsIjoidHJ1ZSIsInByaW1hcnlQcm9kdWN0TmFtZSI6IkNSRURJVE8iLCJyZWNlaXB0UHJpbnRQZXJtaXNzaW9uIjoiMSIsImlzT25seUludGVncmF0aW9uQ2FuY2VsYWJsZSI6ImZhbHNlIiwidXBGcm9udEFtb3VudCI6IjAiLCJjcmVkaXRBZG1pblRheCI6IjAiLCJleHRlcm5hbENhbGxNZXJjaGFudENvZGUiOiIwMDAwMDAwMDAwMDAwMDAzIiwiZmlyc3RRdW90YURhdGUiOiIwIiwiaXNGaW5hbmNpYWxQcm9kdWN0IjoidHJ1ZSIsImhhc1ByaW50ZWRDbGllbnRSZWNlaXB0IjoiZmFsc2UiLCJoYXNTaWduYXR1cmUiOiJmYWxzZSIsImFwcGxpY2F0aW9uTmFtZSI6ImNvbS5hZHMubGlvLnVyaWFwcGNsaWVudCIsImhhc1dhcnJhbnR5IjoiZmFsc2UiLCJpbnRlcmVzdEFtb3VudCI6IjAiLCJjaGFuZ2VBbW91bnQiOiIwIiwic2VydmljZVRheCI6IjAiLCJjaXR5U3RhdGUiOiJCYXJ1ZXJpIC0gU1AiLCJoYXNTZW50UmVmZXJlbmNlIjoiZmFsc2UiLCJ2NDBDb2RlIjoiNCIsInNlY29uZGFyeVByb2R1Y3ROYW1lIjoiQSBWSVNUQSIsInBheW1lbnRUcmFuc2FjdGlvbklkIjoiNDhmYTYzYzktOTVlZS00ODNlLTllN2ItY2UzMjYzM2YxMjliIiwiYXZhaWFibGVCYWxhbmNlIjoiMCIsInBhbiI6IioqKioqKioqKioqKjAwMDAiLCJvcmlnaW5hbFRyYW5zYWN0aW9uSWQiOiIwIiwib3JpZ2luYWxUcmFuc2FjdGlvbkRhdGUiOiIzMS8wMS8yNCIsInNlY29uZGFyeVByb2R1Y3RDb2RlIjoiMjA0IiwiZG9jdW1lbnRUeXBlIjoiSiIsImhhc1NlbnRNZXJjaGFudENvZGUiOiJmYWxzZSIsInN0YXR1c0NvZGUiOiIxIiwibWVyY2hhbnRBZGRyZXNzIjoiQWxhbWVkYSBHcmFqYXUsIDIxOSIsIm1lcmNoYW50Q29kZSI6IjAwMDAwMDAwMDAwMDAwMDMiLCJwYXltZW50VHlwZUNvZGUiOiIxIiwiaGFzQ29ubmVjdGl2aXR5IjoidHJ1ZSIsInByb2R1Y3ROYW1lIjoiQ1JFRElUTyBBIFZJU1RBIC0gSSIsIm1lcmNoYW50TmFtZSI6IlBPU1RPIEFCQyIsImVudHJhbmNlTW9kZSI6IjY2MTAxMDEwNzA4MCIsImNhcmRDYXB0dXJlVHlwZSI6IjYiLCJmaXJzdFF1b3RhQW1vdW50IjoiMCIsInRvdGFsaXplckNvZGUiOiIwIiwicmVxdWVzdERhdGUiOiIxNzA2NzEwMzg0NDAyIiwiYXBwbGljYXRpb25JZCI6ImNpZWxvLmxhdW5jaGVyIiwiYm9hcmRpbmdUYXgiOiIwIiwibnVtYmVyT2ZRdW90YXMiOiIwIiwiZG9jdW1lbnQiOiIwMDAwMDAwMDAwMDAwMCJ9LCJwcmltYXJ5Q29kZSI6IjQiLCJyZXF1ZXN0RGF0ZSI6IjE3MDY3MTAzODQ0MDIiLCJzZWNvbmRhcnlDb2RlIjoiMjA0IiwidGVybWluYWwiOiI2MjAwMDExMiJ9XSwicGVuZGluZ0Ftb3VudCI6MCwicHJpY2UiOjkyNSwicmVmZXJlbmNlIjoiUmVmZXJlbmNlIiwic3RhdHVzIjoiRU5URVJFRCIsInR5cGUiOiJQQVlNRU5UIiwidXBkYXRlZEF0IjoiSmFuIDMxLCAyMDI0IDExOjM3OjMxIEFNIn0=&responsecode=0
Retorno de erro
Se houver algum erro no pagamento, seja ele cancelado por usuario ou saldo insuficiente continuamos olhando para o campo response onde será retornando um base64 com o motivo do pagamento não realizado com sucesso
order://response?response=eyJjb2RlIjoxLCJyZWFzb24iOiJDQU5DRUxBRE8gUEVMTyBVU1XDgVJJTyJ9&responsecode=0
{
"code":1,
"reason":"CANCELADO PELO USUÁRIO"
}
Listagem de Pedidos
Na listagem de pedidos, é possível obter os pedidos (Orders) abertas na Cielo Lio pelo aplicativo do parceiro. Para isso basta definir o JSON abaixo e formata-lo para BASE64:
{
“pageSize”: 5,
“page”: 0,
“clientID”: “seu cliente ID”,
“accessToken”: “seu access token”
}
ATENÇÃO: Á princípio será limitado a no máximo 5 pedidos devido ao tamanho das informações.
A chamada deve ser feita da seguinte forma:
var base64 = getBase64(jsonString)
var checkoutUri = "lio://orders?request=$base64&urlCallback=order://response"
Para recuperar os dados basta acessar a intent na activity de resposta cadastrada em seu manifest e no parâmetro data, acessar a URI da seguinte forma:
val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
val uri = responseIntent.data
val response = uri.getQueryParameter("response")
val data = Base64.decode(response, Base64.DEFAULT)
val json = String(data)
}
Exemplos de retorno da Listagem de Pedidos
Exemplo de retorno de sucesso:
orders://response?response=eyJjdXJyZW50UGFnZSI6MCwicmVzdWx0cyI6W3siY3JlYXRlZEF0IjoiQXByIDgsIDIwMjQgNDowNzo1OSBQTSIsImlkIjoiNTEyZjdjNjEtMjkzYy00NDY4LWJkM2UtMjk4Mjg2ZDA0ZjBiIiwiaXRlbXMiOlt7ImRlc2NyaXB0aW9uIjoiIiwiZGV0YWlscyI6IiIsImlkIjoiNjMyOWRiMTYtMzY4Ny00MmJjLTgzNWYtZmUwZGYxMGZjZGRmIiwibmFtZSI6InByb2R1dG8iLCJxdWFudGl0eSI6MywicmVmZXJlbmNlIjoiIiwic2t1IjoiNzg5NzIiLCJ1bml0T2ZNZWFzdXJlIjoidW5pZGFkZSIsInVuaXRQcmljZSI6NTY2fV0sIm5vdGVzIjoiIiwibnVtYmVyIjoiIiwicGFpZEFtb3VudCI6MTY5OCwicGF5
bWVudHMiOlt7ImFjY2Vzc0tleSI6InJTQXFOUEd2RlBKSSIsImFtb3VudCI6MTY5OCwiYXBwbGlj
YXRpb25OYW1lIjoiY29tLmFkcy5saW8udXJpYXBwY2xpZW50IiwiYXV0aENvZGUiOiIxNjA4NTEi
LCJicmFuZCI6IiIsImNpZWxvQ29kZSI6IjEwODE0NCIsImRlc2NyaXB0aW9uIjoiIiwiZGlzY291
bnRlZEFtb3VudCI6MCwiZXh0ZXJuYWxJZCI6IjZiYmI2ZDhhLTQ5NWYtNDY3MC04MzVmLWY4YWNlYjlkZTA2OCIsImlkIjoiNWU2MmFmNGMtNzM5ZC00Zjc4LWFhYjgtNWQxNDE5NmIwN2I2IiwiaW5zdGFsbG1lbnRzIjowLCJtYXNrIjoiKioqKioqKioqKjQyNDIiLCJtZXJjaGFudENvZGUiOiIwMDEw
MDAwMjQ0NDcwMDAxIiwicGF5bWVudEZpZWxkcyI6eyJpc0RvdWJsZUZvbnRQcmludEFsbG93ZWQiOiJ0cnVlIiwiYmluIjoiNDI0MjQyIiwiaGFzUGFzc3dvcmQiOiJ0cnVlIiwicHJpbWFyeVByb2R1
Y3RDb2RlIjoiNCIsImlzRXh0ZXJuYWxDYWxsIjoidHJ1ZSIsInByaW1hcnlQcm9kdWN0TmFtZSI6
IkNSRURJVE8iLCJyZWNlaXB0UHJpbnRQZXJtaXNzaW9uIjoiMSIsImlzT25seUludGVncmF0aW9u
Q2FuY2VsYWJsZSI6ImZhbHNlIiwidXBGcm9udEFtb3VudCI6IjAiLCJjcmVkaXRBZG1pblRheCI6
IjAiLCJleHRlcm5hbENhbGxNZXJjaGFudENvZGUiOiIwMDEwMDAwMjQ0NDcwMDAxIiwiZmlyc3RRdW90YURhdGUiOiIwIiwiaXNGaW5hbmNpYWxQcm9kdWN0IjoidHJ1ZSIsImhhc1ByaW50ZWRDbGllbnRSZWNlaXB0IjoiZmFsc2UiLCJoYXNTaWduYXR1cmUiOiJmYWxzZSIsImFwcGxpY2F0aW9uTmFtZSI6ImNvbS5hZHMubGlvLnVyaWFwcGNsaWVudCIsImhhc1dhcnJhbnR5IjoiZmFsc2UiLCJpbnRlcmVzdEFtb3VudCI6IjAiLCJjaGFuZ2VBbW91bnQiOiIwIiwic2VydmljZVRheCI6IjAiLCJjaXR5
U3RhdGUiOiJCYXJ1ZXJpIC0gU1AiLCJoYXNTZW50UmVmZXJlbmNlIjoiZmFsc2UiLCJ2NDBDb2Rl
IjoiNCIsInNlY29uZGFyeVByb2R1Y3ROYW1lIjoiQSBWSVNUQSIsInBheW1lbnRUcmFuc2FjdGlv
bklkIjoiNmJiYjZkOGEtNDk1Zi00NjcwLTgzNWYtZjhhY2ViOWRlMDY4IiwiYXZhaWFibGVCYWxh
bmNlIjoiMCIsInBhbiI6IioqKioqKioqKio0MjQyIiwib3JpZ2luYWxUcmFuc2FjdGlvbklkIjoi
MCIsIm9yaWdpbmFsVHJhbnNhY3Rpb25EYXRlIjoiMDgvMDQvMjQiLCJzZWNvbmRhcnlQcm9kdWN0Q29kZSI6IjIwNCIsImRvY3VtZW50VHlwZSI6IkoiLCJoYXNTZW50TWVyY2hhbnRDb2RlIjoiZmFsc2UiLCJzdGF0dXNDb2RlIjoiMSIsIm1lcmNoYW50QWRkcmVzcyI6IkFsYW1lZGEgR3JhamF1LCAy
MTkiLCJtZXJjaGFudENvZGUiOiIwMDEwMDAwMjQ0NDcwMDAxIiwicGF5bWVudFR5cGVDb2RlIjoiMSIsImhhc0Nvbm5lY3Rpdml0eSI6InRydWUiLCJwcm9kdWN0TmFtZSI6IkNSRURJVE8gQSBWSVNUQSAtIEkiLCJtZXJjaGFudE5hbWUiOiJMT0pBIE9OIiwiZW50cmFuY2VNb2RlIjoiNjQyMDE3MjA0
MDgwIiwiY2FyZENhcHR1cmVUeXBlIjoiMSIsImZpcnN0UXVvdGFBbW91bnQiOiIwIiwidG90YWxp
emVyQ29kZSI6IjAiLCJyZXF1ZXN0RGF0ZSI6IjE3MTI2MDMyNjcxMjgiLCJhcHBsaWNhdGlvbklk
IjoiY2llbG8ubGF1bmNoZXIiLCJib2FyZGluZ1RheCI6IjAiLCJudW1iZXJPZlF1b3RhcyI6IjAi
LCJkb2N1bWVudCI6IjcwOTU3ODk4MDAwMTc2In0sInByaW1hcnlDb2RlIjoiNCIsInJlcXVlc3RE
YXRlIjoiMTcxMjYwMzI2NzEyOCIsInNlY29uZGFyeUNvZGUiOiIyMDQiLCJ0ZXJtaW5hbCI6IjYy
MDAwMTQwIn1dLCJwZW5kaW5nQW1vdW50IjowLCJwcmljZSI6MTY5OCwicmVmZXJlbmNlIjoiUmVmZXJlbmNlIiwic3RhdHVzIjoiUEFJRCIsInR5cGUiOiJQQVlNRU5UIiwidXBkYXRlZEF0IjoiQXBy
IDgsIDIwMjQgNDowNzo1MyBQTSJ9LHsiY3JlYXRlZEF0IjoiQXByIDgsIDIwMjQgNDowNzo0MyBQ
TSIsImlkIjoiZjJlNGIxZDMtYWI2Ny00NzM2LWEzMDctYjM0ZWJkZGIyM2QwIiwiaXRlbXMiOlt7
ImRlc2NyaXB0aW9uIjoiIiwiZGV0YWlscyI6IiIsImlkIjoiZDBjOGE4MzYtOTM4OC00MTdiLThk
MzAtMmViOWQ0YzA2ODFmIiwibmFtZSI6InByb2R1dG8iLCJxdWFudGl0eSI6MSwicmVmZXJlbmNlIjoiIiwic2t1IjoiNzY2MTgiLCJ1bml0T2ZNZWFzdXJlIjoidW5pZGFkZSIsInVuaXRQcmljZSI6
ODM4fV0sIm5vdGVzIjoiIiwibnVtYmVyIjoiIiwicGFpZEFtb3VudCI6ODM4LCJwYXltZW50cyI6
W3siYWNjZXNzS2V5IjoiclNBcU5QR3ZGUEpJIiwiYW1vdW50Ijo4MzgsImFwcGxpY2F0aW9uTmFt
ZSI6ImNvbS5hZHMubGlvLnVyaWFwcGNsaWVudCIsImF1dGhDb2RlIjoiMTYwODE2IiwiYnJhbmQi
OiIiLCJjaWVsb0NvZGUiOiIxMDgxNDIiLCJkZXNjcmlwdGlvbiI6IiIsImRpc2NvdW50ZWRBbW91
bnQiOjAsImV4dGVybmFsSWQiOiI5M2NiYmUzOS1hNWI2LTQ4MmItODBhZi00MDgxOGYyZTQyMjEiLCJpZCI6ImNiZjMxY2M4LWMzMzgtNDUxMC1iMGY4LTA3NWFlNzM4ODNlYSIsImluc3RhbGxtZW50cyI6MCwibWFzayI6IioqKioqKioqKio0MjQyIiwibWVyY2hhbnRDb2RlIjoiMDAxMDAwMDI0NDQ3MDAwMSIsInBheW1lbnRGaWVsZHMiOnsiaXNEb3VibGVGb250UHJpbnRBbGxvd2VkIjoidHJ1ZSIsImJpbiI6IjQyNDI0MiIsImhhc1Bhc3N3b3JkIjoidHJ1ZSIsInByaW1hcnlQcm9kdWN0Q29kZSI
IjQiLCJpc0V4dGVybmFsQ2FsbCI6InRydWUiLCJwcmltYXJ5UHJvZHVjdE5hbWUiOiJDUkVESVRP
IiwicmVjZWlwdFByaW50UGVybWlzc2lvbiI6IjEiLCJpc09ubHlJbnRlZ3JhdGlvbkNhbmNlbGFi
bGUiOiJmYWxzZSIsInVwRnJvbnRBbW91bnQiOiIwIiwiY3JlZGl0QWRtaW5UYXgiOiIwIiwiZXh0
ZXJuYWxDYWxsTWVyY2hhbnRDb2RlIjoiMDAxMDAwMDI0NDQ3MDAwMSIsImZpcnN0UXVvdGFEYXRlIjoiMCIsImlzRmluYW5jaWFsUHJvZHVjdCI6InRydWUiLCJoYXNQcmludGVkQ2xpZW50UmVjZWlwdCI6ImZhbHNlIiwiaGFzU2lnbmF0dXJlIjoiZmFsc2UiLCJhcHBsaWNhdGlvbk5hbWUiOiJjb20u
YWRzLmxpby51cmlhcHBjbGllbnQiLCJoYXNXYXJyYW50eSI6ImZhbHNlIiwiaW50ZXJlc3RBbW91
bnQiOiIwIiwiY2hhbmdlQW1vdW50IjoiMCIsInNlcnZpY2VUYXgiOiIwIiwiY2l0eVN0YXRlIjoi
QmFydWVyaSAtIFNQIiwiaGFzU2VudFJlZmVyZW5jZSI6ImZhbHNlIiwidjQwQ29kZSI6IjQiLCJz
ZWNvbmRhcnlQcm9kdWN0TmFtZSI6IkEgVklTVEEiLCJwYXltZW50VHJhbnNhY3Rpb25JZCI6Ijkz
Y2JiZTM5LWE1YjYtNDgyYi04MGFmLTQwODE4ZjJlNDIyMSIsImF2YWlhYmxlQmFsYW5jZSI6IjAi
LCJwYW4iOiIqKioqKioqKioqNDI0MiIsIm9yaWdpbmFsVHJhbnNhY3Rpb25JZCI6IjAiLCJvcmln
aW5hbFRyYW5zYWN0aW9uRGF0ZSI6IjA4LzA0LzI0Iiwic2Vjb25kYXJ5UHJvZHVjdENvZGUiOiIy
MDQiLCJkb2N1bWVudFR5cGUiOiJKIiwiaGFzU2VudE1lcmNoYW50Q29kZSI6ImZhbHNlIiwic3Rh
dHVzQ29kZSI6IjEiLCJtZXJjaGFudEFkZHJlc3MiOiJBbGFtZWRhIEdyYWphdSwgMjE5IiwibWVy
Y2hhbnRDb2RlIjoiMDAxMDAwMDI0NDQ3MDAwMSIsInBheW1lbnRUeXBlQ29kZSI6IjEiLCJoYXNDb25uZWN0aXZpdHkiOiJ0cnVlIiwicHJvZHVjdE5hbWUiOiJDUkVESVRPIEEgVklTVEEgLSBJIiwi
bWVyY2hhbnROYW1lIjoiTE9KQSBPTiIsImVudHJhbmNlTW9kZSI6IjY0MjAxNzIwNDA4MCIsImNh
cmRDYXB0dXJlVHlwZSI6IjEiLCJmaXJzdFF1b3RhQW1vdW50IjoiMCIsInRvdGFsaXplckNvZGUi
OiIwIiwicmVxdWVzdERhdGUiOiIxNzEyNjAzMjY3ODQ1IiwiYXBwbGljYXRpb25JZCI6ImNpZWxv
LmxhdW5jaGVyIiwiYm9hcmRpbmdUYXgiOiIwIiwibnVtYmVyT2ZRdW90YXMiOiIwIiwiZG9jdW1l
bnQiOiI3MDk1Nzg5ODAwMDE3NiJ9LCJwcmltYXJ5Q29kZSI6IjQiLCJyZXF1ZXN0RGF0ZSI6IjE3
MTI2MDMyNjc4NDUiLCJzZWNvbmRhcnlDb2RlIjoiMjA0IiwidGVybWluYWwiOiI2MjAwMDE0MCJ9XSwicGVuZGluZ0Ftb3VudCI6MCwicHJpY2UiOjgzOCwicmVmZXJlbmNlIjoiUmVmZXJlbmNlIiwi
c3RhdHVzIjoiUEFJRCIsInR5cGUiOiJQQVlNRU5UIiwidXBkYXRlZEF0IjoiQXByIDgsIDIwMjQg
NDowNzo1NCBQTSJ9XSwidG90YWxJdGVtcyI6MzYyLCJ0b3RhbFBhZ2VzIjo3M30=
&responsecode=0
ResponseCode = 0 significa sucesso e após realizar a decodificação será obtido um objeto JSON:
{
"currentPage":0,
"results":[],
"totalItems":30,
"totalPages":6
}
O results estará uma lista com os pedidos.
Exemplo de Retorno de falha:
order://response?response=eyJjb2RlIjoxLCJyZWFzb24iOiJDQU5DRUxBRE8gUEVMTyBVU1XDgVJJTyJ9&responsecode=2
Listagem de Produtos
É possível obter todos os produtos (tipos de pagamento) que estão habilitados para o cliente. Para isso basta definir o JSON abaixo e formata-lo para BASE64:
{
“clientID”: “seu cliente ID”,
“accessToken”: “seu access token”
}
A chamada deve ser feita da seguinte forma:
var base64 = getBase64(jsonString)
var checkoutUri = "lio://products?request=$base64&urlCallback=order://response"
Para recuperar os dados basta acessar a intent na activity de resposta cadastrada em seu manifest e no parâmetro data, acessar a URI da seguinte forma:
val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
val uri = responseIntent.data
val response = uri.getQueryParameter("response")
val data = Base64.decode(response, Base64.DEFAULT)
val json = String(data)
}
Exemplo de retorno dos produtos
order://products?response=W3siY29kZSI6IjQiLCJpZCI6MTAwMCwibmFtZSI6IkNSRURJVE8iLCJzZWNvbmRhcnlQcm9kdWN0cyI6W3siY29kZSI6IjIwNCIsImlkIjoxMDAwLCJuYW1lIjoiQ1JFRElUTyBBIFZJU1RBIC0gSSJ9LHsiY29kZSI6IjIwNSIsImlkIjoxMDAxLCJuYW1lIjoiQ1JFRElUTyBQQVJDRUxBRE8gQURNIC0gSSJ9LHsiY29kZSI6IjIwNiIsImlkIjoxMDAyLCJuYW1lIjoiQ1JFRElUTyBQQVJDRUxBRE8gTE9KQSAtIEkifV19LHsiY29kZSI6IjgiLCJpZCI6MTAwMSwibmFtZSI6IkRFQklUTyIsInNlY29uZGFyeVByb2R1Y3RzIjpbeyJjb2RlIjoiMjA4IiwiaWQiOjEwMDMsIm5hbWUiOiJERUJJVE8gQSBWSVNUQSAtIEkifV19LHsiY29kZSI6IjEzIiwiaWQiOjEwMDIsIm5hbWUiOiJWSVNBIFZBTEUiLCJzZWNvbmRhcnlQcm9kdWN0cyI6W3siY29kZSI6IjI1MCIsImlkIjoxMDA0LCJuYW1lIjoiVklTQS1WQUxFIFJFRkVJQ0FPIC0gSSJ9LHsiY29kZSI6IjI1MSIsImlkIjoxMDA1LCJuYW1lIjoiVklTQS1WQUxFIEFMSU1FTlRBQ0FPIC0gSSJ9XX0seyJjb2RlIjoiNyIsImlkIjoxMDAzLCJuYW1lIjoiUFJFLUFVVCIsInNlY29uZGFyeVByb2R1Y3RzIjpbeyJjb2RlIjoiMCIsImlkIjoyMDAwLCJuYW1lIjoiUFJFLUFVVE9SSVpBQ0FPIC0gSSJ9XX1d&responsecode=0
Depois de decodificar o resultado, será obtido uma lista com todos os produtos que estão habilitados para o EC.
[
{
"code": "4",
"id": 1000,
"name": "CREDITO",
"secondaryProducts": [
{
"code": "204",
"id": 1000,
"name": "CREDITO A VISTA - I"
},
{
"code": "205",
"id": 1001,
"name": "CREDITO PARCELADO ADM - I"
},
{
"code": "206",
"id": 1002,
"name": "CREDITO PARCELADO LOJA - I"
}
]
},
{
"code": "8",
"id": 1001,
"name": "DEBITO",
"secondaryProducts": [
{
"code": "208",
"id": 1003,
"name": "DEBITO A VISTA - I"
}
]
},
{
"code": "13",
"id": 1002,
"name": "VISA VALE",
"secondaryProducts": [
{
"code": "250",
"id": 1004,
"name": "VISA-VALE REFEICAO - I"
},
{
"code": "251",
"id": 1005,
"name": "VISA-VALE ALIMENTACAO - I"
}
]
},
{
"code": "7",
"id": 1003,
"name": "PRE-AUT",
"secondaryProducts": [
{
"code": "0",
"id": 2000,
"name": "PRE-AUTORIZACAO - I"
}
]
}
]
Listagem de Produtos (PAYMENT_CODE)
É possível obter todos os produtos (tipos de pagamento) que estão habilitados para o cliente, com os mesmos no formato da lista de PAYMENTCODE que se encontra nessa sessão. Para isso basta definir o JSON abaixo e formata-lo para BASE64:
{
“clientID”: “seu cliente ID”,
“accessToken”: “seu access token”
}
A chamada deve ser feita da seguinte forma:
var base64 = getBase64(jsonString)
var checkoutUri = "lio://enabledproducts?request=$base64&urlCallback=order://response"
Para recuperar os dados basta acessar a intent na activity de resposta cadastrada em seu manifest e no parâmetro data, acessar a URI da seguinte forma:
val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
val uri = responseIntent.data
val response = uri.getQueryParameter("response")
val data = Base64.decode(response, Base64.DEFAULT)
val json = String(data)
}
Exemplo de retorno dos produtos:
uriappsample://products_response?response=WyJDUkVESVRPX0NSRURJQVJJT19DUkVESVRPIiwiQ1JFRElUT19QQVJDRUxBRE9fQk5DTyIsIkNSRURJVE9fUEFSQ0VMQURPX0FETSIsIkNSRURJVE9fUEFSQ0VMQURPX0xPSkEiLCJERUJJVE9fUEFHVE9fRkFUVVJBX0RFQklUTyIsIkRFQklUT19BVklTVEEiLCJWT1VDSEVSX1JFRkVJQ0FPIiwiVk9VQ0hFUl9BTElNRU5UQUNBTyIsIlZPVUNIRVJfQVVUT01PVElWTyIsIlZPVUNIRVJfQ1VMVFVSQSIsIlZPVUNIRVJfUEVEQUdJTyIsIlZPVUNIRVJfQkVORUZJQ0lPUyIsIlZPVUNIRVJfQVVUTyIsIlZPVUNIRVJfQ09OU1VMVEFfU0FMRE8iLCJWT1VDSEVSX1ZBTEVfUEVEQUdJTyIsIkNBUlRBT19MT0pBX0FWSVNUQSIsIkNBUlRBT19MT0pBX1BBUkNFTEFET19MT0pBIiwiQ0FSVEFPX0xPSkFfUEFSQ0VMQURPX0JBTkNPIiwiQ0FSVEFPX0xPSkFfUEFHVE9fRkFUVVJBX0NIRVFVRSIsIkNBUlRBT19MT0pBX1BBR1RPX0ZBVFVSQV9ESU5IRUlSTyIsIlBSRV9BVVRPUklaQUNBTyIsIlBJWCJd&responsecode=0
Depois de decodificar o resultado, será obtido uma lista com todos os produtos que estão habilitados para o EC.
["CREDITO_AVISTA","CREDITO_PARCELADO_BNCO","CREDITO_PARCELADO_ADM","CREDITO_PARCELADO_LOJA","DEBITO_PAGTO_FATURA_DEBITO","DEBITO_AVISTA","VOUCHER_REFEICAO","VOUCHER_ALIMENTACAO","VOUCHER_AUTOMOTIVO","VOUCHER_CULTURA","VOUCHER_PEDAGIO","VOUCHER_BENEFICIOS","VOUCHER_AUTO","VOUCHER_CONSULTA_SALDO","VOUCHER_VALE_PEDAGIO","CARTAO_LOJA_AVISTA","CARTAO_LOJA_PARCELADO_LOJA","CARTAO_LOJA_PARCELADO_BANCO","CARTAO_LOJA_PAGTO_FATURA_CHEQUE","CARTAO_LOJA_PAGTO_FATURA_DINHEIRO","PRE_AUTORIZACAO","PIX"]
Consulta de Pedido avulso
Na consulta de pedido avulso, é possível realizar de duas maneiras diferentes. Buscando um pedido por valor, nsu (Cielo code) e código de autorização. Ou pode consultar um pedido pelo seu identificador (ID). Para isso basta realizar a chamada da seguinte maneira.
Os dados de entrada podem ser qualquer um dos JSONs abaixo:
JSON de busca por ID:
{
"orderId": "orderId",
"clientID": "clientidtest",
"accessToken": "accesstokentest"
}
JSON de busca por valor, nsu e código de autorização:
{
"amount": amount,
"authCode": "authCode",
"cieloCode": "cieloCode(nsu)",
"orderId": "orderId",
"clientID": "clientidtest",
"accessToken": "accesstokentest"
}
Para isso basta definir um dos JSONs acima e formata-lo para BASE64 e a chamada deve ser feita da seguinte forma:
var base64 = getBase64(jsonString)
var checkoutUri = "lio://order?request=$base64&urlCallback=order://response"
Para recuperar os dados basta acessar a intent na activity de resposta cadastrada em seu manifest e no parâmetro data, acessar a URI da seguinte forma:
val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
val uri = responseIntent.data
val response = uri.getQueryParameter("response")
val data = Base64.decode(response, Base64.DEFAULT)
val json = String(data)
}
Exemplo de retorno do pedido
order://responseresponse=eyJhY2Nlc3NLZXkiOiJyU0FxTlBHdkZQSkkiLCJhbW91bnQiOjExMTYsImNyZWF0ZWRBdCI6IkFwciA0LCAyMDI0IDEwOjE4OjE4IEFNIiwiaWQiOiJkYTI1NzE2Ny1lODJhLTRjN2MtYjVlMC1mMDc2OWQ4MTg0M2MiLCJpdGVtcyI6W3siYW1vdW50IjoxMTE2LCJkZXNjcmlwdGlvbiI6InByb2R1dG8iLCJkZXRhaWxzIjoicHJvZHV0byIsImlkIjoiM2U4YjNjOGYtNDdlMC00YjNkLWFiMTQtNWYxNzY0ZjczN2FhIiwibmFtZSI6InByb2R1dG8iLCJxdWFudGl0eSI6MiwicmVmZXJlbmNlIjoicHJvZHV0byIsInNrdSI6IjY4NzU5IiwidW5pdE9mTWVhc3VyZSI6InVuaWRhZGUiLCJ1bml0UHJpY2UiOjU1OH1dLCJsYXN0TW9kaWZpY2F0aW9uRGF0ZSI6IkFwciA0LCAyMDI0IDEwOjE4OjE4IEFNIiwibm90ZXMiOiIiLCJudW1iZXIiOiIiLCJwYWlkQW1vdW50IjowLCJwZW5kaW5nQW1vdW50IjoxMTE2LCJyZWZlcmVuY2UiOiJSZWZlcmVuY2UiLCJyZWxlYXNlRGF0ZSI6IkFwciA0LCAyMDI0IDEwOjE4OjE4IEFNIiwic2VjcmV0QWNjZXNzS2V5IjoiWFpldm9VWUtta1ZyIiwic3RhdHVzIjoiRU5URVJFRCIsInRyYW5zYWN0aW9ucyI6W10sInR5cGUiOiJQQVlNRU5UIn0=&responsecode=0
Depois de decodificar o resultado, será obtido uma lista com o pedido encontrado:
{
"accessKey": "rSAqNPGvFPJI",
"amount": 1116,
"createdAt": "Apr 4, 2024 10:18:18 AM",
"id": "da257167-e82a-4c7c-b5e0-f0769d81843c",
"items": [
{
"amount": 1116,
"description": "produto",
"details": "produto",
"id": "3e8b3c8f-47e0-4b3d-ab14-5f1764f737aa",
"name": "produto",
"quantity": 2,
"reference": "produto",
"sku": "68759",
"unitOfMeasure": "unidade",
"unitPrice": 558
}
],
"lastModificationDate": "Apr 4, 2024 10:18:18 AM",
"notes": "",
"number": "",
"paidAmount": 0,
"pendingAmount": 1116,
"reference": "Reference",
"releaseDate": "Apr 4, 2024 10:18:18 AM",
"secretAccessKey": "XZevoUYKmkVr",
"status": "ENTERED",
"transactions": [],
"type": "PAYMENT"
}
Em “transactions”, terá uma lista com os pagamentos feitos para o pedido.
Caso não encontre o Pedido, o retorno será:
order://response?response=eyJjb2RlIjoxLCJyZWFzb24OiJDQU5DRUxBRE8gUEVMTyBVU1XDgVJJTyJ9&responsecode=2
Depois de decodificar o resultado:
{
"code": 2,
"reason": "Order not found",
}
Informações do terminal
É possível obter algumas informações do terminal, tais como, nível de bateria, modelo do dispositivo, Merchant e também o número lógico. Para isso basta realizar a chamada da seguinte maneira:
var base64 = getBase64(jsonString)
var checkoutUri = "lio://terminalinfo?urlCallback=order://response"
Para recuperar os dados basta acessar a intent na activity de resposta cadastrada em seu manifest e no parâmetro data, acessar a URI da seguinte forma:
val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
val uri = responseIntent.data
val response = uri.getQueryParameter("response")
val data = Base64.decode(response, Base64.DEFAULT)
val json = String(data)
}
Exemplos de retorno das informações do terminal
order://response?response=eyJiYXR0ZXJ5TGV2ZWwiOjAuOTksImRldmljZU1vZGVsIjoiTElPX1YzIiwibG9naWNOdW1iZXIiOiI2MjAwMDE0MC00IiwibWVyY2hhbnRDb2RlIjoiMDAxMDAwMDI0NDQ3MDAwMSJ9&responsecode=0
Depois de decodificar o resultado:
{
"batteryLevel": 0.99,
"deviceModel": "LIO_V3",
"logicNumber": "12345678-9",
"merchantCode": "0000000000000000"
}
Consulta de Estabelecimentos
Para consultar a lista de ECs disponíveis no terminal, podemos fazer da seguinte forma:
data class EstablishmentsRequest(val clientID: String, val accessToken: String)
private fun listEstablishments() {
val request = EstablishmentsRequest("clientId", "accessToken")
val json: String = Gson().toJson(request).toString()
Log.d(TAG, "checkout JSON STRING = $json")
val base64 = getBase64(json)
val checkoutUri = "lio://establishments?request=$base64&urlCallback=$scheme://$establishmentsHost"
val i = Intent(Intent.ACTION_VIEW, Uri.parse(checkoutUri))
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
try {
startActivity(i)
} catch (e: Exception) {
Log.e(TAG, "ERROR", e)
logView.addText("ERROR=$e ${e.message}")
}
}
A resposta será entregue na activity que tiver como parâmetro o intent filter com os dados passado pelo integrador na urlCallback. O formato da resposta será uma lista de estabelecimentos com os valores nome e código. O código que deverá ser passado no momento do pagamento.
Exemplo de retorno
Segue exemplo de retorno de sucesso.
uriappsample://establishments_response?response=W3siY29kZSI6IjAwMTAwMDAyNDQ0NzAwMDEiLCJuYW1lIjoiTE9KQSBPTiJ9XQ==&responsecode=0
Após realizar a decodificaçao será obtido um objeto JSON:
{
"code":"0000000000000000",
"name":"EC NAME"
}
Retorno de erro
Caso ocorra algum erro durante o processo de consulta, será retornado um base64 com o código e motivo do erro:
uriappsample://establishments_response?response=eyJjb2RlIjoyLCJyZWFzb24iOiJFcnJvIGFvIGJ1c2NhciBvcyBlc3RhYmVsZWNpbWVudG9zOiBFcnJvciB0byBnZXQgZXN0YWJsaXNobWVudHMifQ==
{
"code":1,
"reason":"Erro ao buscar os estabelecimentos: motivo do erro"
}
Cancelamento
Para realizar o cancelamento é preciso criar um json seguindo o formato definido abaixo e converte-lo para BASE64:
{
"id": "id da ordem",
"clientID": "seu client ID",
"accessToken": "seu access token",
"cieloCode": "123",
"authCode": "123",
"value": 1000
}
A chamada de cancelamento deve ser feita da seguinte forma. Como explicado anteriormente, é preciso definir o contrato de resposta, aqui será utilizado essa configuração no parâmetro urlCallback:
var base64 = getBase64(jsonString)
var checkoutUri ="lio://payment-reversal?request=$base64&urlCallback=order://response"
Para recuperar os dados basta acessar a intent na activity de resposta cadastrada em sem Manifest e no parâmetro data, acessar a uri, da seguinte forma:
val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
val uri = responseIntent.data
val response = uri.getQueryParameter("response")
val data = Base64.decode(response, Base64.DEFAULT)
val json = String(data)
}
Exemplos de retorno cancelamento
order://response?response=eyJjcmVhdGVkQXQiOiJGZWIgOSwgMjAyNCAyOjI5OjE2IFBNIiwiaWQiOiJmN2E4ZjIyNi0yOTQ5LTQwMGItOTc3OC05MTNiMGQxNjkzODkiLCJpdGVtcyI6W3siZGVzY3JpcHRpb24iOiIiLCJkZXRhaWxzIjoiIiwiaWQiOiI0MmQwNTg2Yi1mOWViLTQwNjYtYmQxZi1jNTQyMTg2MzJmMmUiLCJuYW1lIjoicHJvZHV0byIsInF1YW50aXR5Ijo1LCJyZWZlcmVuY2UiOiIiLCJza3UiOiI0OTQ3MyIsInVuaXRPZk1lYXN1cmUiOiJ1bmlkYWRlIiwidW5pdFByaWNlIjo3MjR9XSwibm90ZXMiOiIiLCJudW1iZXIiOiIiLCJwYWlkQW1vdW50IjowLCJwYXltZW50cyI6W3siYWNjZXNzS2V5IjoiclNBcU5QR3ZGUEpJIiwiYW1vdW50IjozNjIwLCJhcHBsaWNhdGlvbk5hbWUiOiJjb20uYWRzLmxpby51cmlhcHBjbGllbnQiLCJhdXRoQ29kZSI6IjE0Mjk0MSIsImJyYW5kIjoiIiwiY2llbG9Db2RlIjoiOTEwNzkyIiwiZGVzY3JpcHRpb24iOiIiLCJkaXNjb3VudGVkQW1vdW50IjowLCJleHRlcm5hbElkIjoiNDFmYzNlZDItYjc4MS00Y2M0LWEyM2EtYWExYTdiN2JjNWQwIiwiaWQiOiIyZTc3YTI3OC0wY2M1LTQ3ODQtYTljNy01Y2Y3M2I5OWRiZjYiLCJpbnN0YWxsbWVudHMiOjAsIm1hc2siOiIqKioqKioqKioqKiowMDAwIiwibWVyY2hhbnRDb2RlIjoiMDAxMDAwMDI0NDQ3MDAwMSIsInBheW1lbnRGaWVsZHMiOnsiaXNEb3VibGVGb250UHJpbnRBbGxvd2VkIjoidHJ1ZSIsImJpbiI6IjAiLCJoYXNQYXNzd29yZCI6ImZhbHNlIiwicHJpbWFyeVByb2R1Y3RDb2RlIjoiNCIsImlzRXh0ZXJuYWxDYWxsIjoidHJ1ZSIsInByaW1hcnlQcm9kdWN0TmFtZSI6IkNSRURJVE8iLCJyZWNlaXB0UHJpbnRQZXJtaXNzaW9uIjoiMSIsImlzT25seUludGVncmF0aW9uQ2FuY2VsYWJsZSI6ImZhbHNlIiwidXBGcm9udEFtb3VudCI6IjAiLCJjcmVkaXRBZG1pblRheCI6IjAiLCJleHRlcm5hbENhbGxNZXJjaGFudENvZGUiOiIwMDEwMDAwMjQ0NDcwMDAxIiwiZmlyc3RRdW90YURhdGUiOiIwIiwiaXNGaW5hbmNpYWxQcm9kdWN0IjoidHJ1ZSIsImhhc1ByaW50ZWRDbGllbnRSZWNlaXB0IjoiZmFsc2UiLCJoYXNTaWduYXR1cmUiOiJmYWxzZSIsImFwcGxpY2F0aW9uTmFtZSI6ImNvbS5hZHMubGlvLnVyaWFwcGNsaWVudCIsImhhc1dhcnJhbnR5IjoiZmFsc2UiLCJpbnRlcmVzdEFtb3VudCI6IjAiLCJjaGFuZ2VBbW91bnQiOiIwIiwic2VydmljZVRheCI6IjAiLCJjaXR5U3RhdGUiOiJCYXJ1ZXJpIC0gU1AiLCJoYXNTZW50UmVmZXJlbmNlIjoiZmFsc2UiLCJ2NDBDb2RlIjoiNCIsInNlY29uZGFyeVByb2R1Y3ROYW1lIjoiQSBWSVNUQSIsInBheW1lbnRUcmFuc2FjdGlvbklkIjoiNDFmYzNlZDItYjc4MS00Y2M0LWEyM2EtYWExYTdiN2JjNWQwIiwiYXZhaWFibGVCYWxhbmNlIjoiMCIsInBhbiI6IioqKioqKioqKioqKjAwMDAiLCJvcmlnaW5hbFRyYW5zYWN0aW9uSWQiOiIwIiwib3JpZ2luYWxUcmFuc2FjdGlvbkRhdGUiOiIwOS8wMi8yNCIsInNlY29uZGFyeVByb2R1Y3RDb2RlIjoiMjA0IiwiZG9jdW1lbnRUeXBlIjoiSiIsImhhc1NlbnRNZXJjaGFudENvZGUiOiJmYWxzZSIsInN0YXR1c0NvZGUiOiIxIiwibWVyY2hhbnRBZGRyZXNzIjoiQWxhbWVkYSBHcmFqYXUsIDIxOSIsIm1lcmNoYW50Q29kZSI6IjAwMTAwMDAyNDQ0NzAwMDEiLCJwYXltZW50VHlwZUNvZGUiOiIxIiwiaGFzQ29ubmVjdGl2aXR5IjoidHJ1ZSIsInByb2R1Y3ROYW1lIjoiQ1JFRElUTyBBIFZJU1RBIC0gSSIsIm1lcmNoYW50TmFtZSI6IkxPSkEgT04iLCJlbnRyYW5jZU1vZGUiOiI2NjEwMTAxMDcwODAiLCJjYXJkQ2FwdHVyZVR5cGUiOiI2IiwiZmlyc3RRdW90YUFtb3VudCI6IjAiLCJ0b3RhbGl6ZXJDb2RlIjoiMCIsInJlcXVlc3REYXRlIjoiMTcwNzQ5OTc2MDI5OSIsImFwcGxpY2F0aW9uSWQiOiJjaWVsby5sYXVuY2hlciIsImJvYXJkaW5nVGF4IjoiMCIsIm51bWJlck9mUXVvdGFzIjoiMCIsImRvY3VtZW50IjoiMDAwMDAwMDAwMDAwMDAifSwicHJpbWFyeUNvZGUiOiI0IiwicmVxdWVzdERhdGUiOiIxNzA3NDk5NzYwMjk5Iiwic2Vjb25kYXJ5Q29kZSI6IjIwNCIsInRlcm1pbmFsIjoiNjIwMDAxMTIifSx7ImFjY2Vzc0tleSI6IiIsImFtb3VudCI6MzYyMCwiYXBwbGljYXRpb25OYW1lIjoiY29tLmFkcy5saW8udXJpYXBwY2xpZW50IiwiYXV0aENvZGUiOiIxNDMwMDUiLCJicmFuZCI6IiIsImNpZWxvQ29kZSI6IjkxMDc5NCIsImRlc2NyaXB0aW9uIjoiIiwiZGlzY291bnRlZEFtb3VudCI6MCwiZXh0ZXJuYWxJZCI6IjczNTFkZWI1LTlkYTgtNGQ4ZC1iN2E5LWRlYWQyZjY3M2RkMSIsImlkIjoiODkwNjliNzEtMTE5ZS00MjFjLTgyODUtYmNjODNlZWU0ZWViIiwiaW5zdGFsbG1lbnRzIjowLCJtYXNrIjoiKioqKioqKioqKioqMjgxMCIsIm1lcmNoYW50Q29kZSI6IjAwMTAwMDAyNDQ0NzAwMDEiLCJwYXltZW50RmllbGRzIjp7ImlzRG91YmxlRm9udFByaW50QWxsb3dlZCI6InRydWUiLCJiaW4iOiIwIiwiaGFzUGFzc3dvcmQiOiJmYWxzZSIsInByaW1hcnlQcm9kdWN0Q29kZSI6IjQiLCJpc0V4dGVybmFsQ2FsbCI6InRydWUiLCJwcmltYXJ5UHJvZHVjdE5hbWUiOiJDUkVESVRPIiwicmVjZWlwdFByaW50UGVybWlzc2lvbiI6IjEiLCJpc09ubHlJbnRlZ3JhdGlvbkNhbmNlbGFibGUiOiJmYWxzZSIsInVwRnJvbnRBbW91bnQiOiIwIiwiY3JlZGl0QWRtaW5UYXgiOiIwIiwiZXh0ZXJuYWxDYWxsTWVyY2hhbnRDb2RlIjoiMDAxMDAwMDI0NDQ3MDAwMSIsImZpcnN0UXVvdGFEYXRlIjoiMCIsImlzRmluYW5jaWFsUHJvZHVjdCI6InRydWUiLCJoYXNQcmludGVkQ2xpZW50UmVjZWlwdCI6ImZhbHNlIiwiaGFzU2lnbmF0dXJlIjoiZmFsc2UiLCJhcHBsaWNhdGlvbk5hbWUiOiJjb20uYWRzLmxpby51cmlhcHBjbGllbnQiLCJoYXNXYXJyYW50eSI6ImZhbHNlIiwiaW50ZXJlc3RBbW91bnQiOiIwIiwiY2hhbmdlQW1vdW50IjoiMCIsInNlcnZpY2VUYXgiOiIwIiwiY2l0eVN0YXRlIjoiQmFydWVyaSAtIFNQIiwiaGFzU2VudFJlZmVyZW5jZSI6ImZhbHNlIiwidjQwQ29kZSI6IjI4Iiwic2Vjb25kYXJ5UHJvZHVjdE5hbWUiOiJBIFZJU1RBIiwicGF5bWVudFRyYW5zYWN0aW9uSWQiOiI0MWZjM2VkMi1iNzgxLTRjYzQtYTIzYS1hYTFhN2I3YmM1ZDAiLCJhdmFpYWJsZUJhbGFuY2UiOiIwIiwicGFuIjoiKioqKioqKioqKioqMjgxMCIsIm9yaWdpbmFsVHJhbnNhY3Rpb25JZCI6IjkxMDc5MiIsIm9yaWdpbmFsVHJhbnNhY3Rpb25EYXRlIjoiMDkvMDIvMjQiLCJzZWNvbmRhcnlQcm9kdWN0Q29kZSI6IjIwNCIsImRvY3VtZW50VHlwZSI6IkoiLCJoYXNTZW50TWVyY2hhbnRDb2RlIjoiZmFsc2UiLCJzdGF0dXNDb2RlIjoiMiIsIm1lcmNoYW50QWRkcmVzcyI6IkFsYW1lZGEgR3JhamF1LCAyMTkiLCJtZXJjaGFudENvZGUiOiIwMDEwMDAwMjQ0NDcwMDAxIiwicGF5bWVudFR5cGVDb2RlIjoiMSIsImhhc0Nvbm5lY3Rpdml0eSI6InRydWUiLCJwcm9kdWN0TmFtZSI6IkNSRURJVE8gQSBWSVNUQSAtIEkiLCJtZXJjaGFudE5hbWUiOiJMT0pBIE9OIiwiZW50cmFuY2VNb2RlIjoiNjYxMDEwMTA3MDgwIiwiY2FyZENhcHR1cmVUeXBlIjoiNiIsImZpcnN0UXVvdGFBbW91bnQiOiIwIiwidG90YWxpemVyQ29kZSI6IjAiLCJyZXF1ZXN0RGF0ZSI6IjE3MDc0OTk3ODA1NTMiLCJhcHBsaWNhdGlvbklkIjoiY29tLmFkcy5saW8udXJpYXBwY2xpZW50IiwiYm9hcmRpbmdUYXgiOiIwIiwibnVtYmVyT2ZRdW90YXMiOiIwIiwiZG9jdW1lbnQiOiIwMDAwMDAwMDAwMDAwMCJ9LCJwcmltYXJ5Q29kZSI6IjQiLCJyZXF1ZXN0RGF0ZSI6IjE3MDc0OTk3ODA1NTMiLCJzZWNvbmRhcnlDb2RlIjoiMjA0IiwidGVybWluYWwiOiI2MjAwMDExMiJ9XSwicGVuZGluZ0Ftb3VudCI6MzYyMCwicHJpY2UiOjM2MjAsInJlZmVyZW5jZSI6IlJlZmVyZW5jZSIsInN0YXR1cyI6IkVOVEVSRUQiLCJ0eXBlIjoiUEFZTUVOVCIsInVwZGF0ZWRBdCI6IkZlYiA5LCAyMDI0IDI6Mjk6NDEgUE0ifQ==&responsecode=0
Atenção: O campo statusCode=1 indica uma transação de pagamento e statusCode=2 Cancelamento. Você pode utilizar esse campo para identificar a transação de cancelamento no JSON recebido.
Cashless
A Cielo LIO oferece a solução de pagamento cashless via integração, suportamos no momento os cartões Mifare 1k. Para utilizar o serviço no aplicativo de integração podemos começar adicionando no arquivo de manifesto a seguinte permissão:
<uses-permission android:name="cielo.lio.permission.CASHLESS"/>
Mifare
Os cartões Mifare armazenam dados em uma pequena antena integrada, permitindo que eles se comuniquem com os leitores quando estão em proximidade. Referente a capacidade de armazenamento, hoje damos suporte aos cartões Mifare 1k, sua memória está organizada em blocos e setores, onde cada bloco possui uma capacidade de armazenamento de 16 bytes de dados, cada setor é composto por 4 blocos, totalizando 64 bytes de dados.
Nossa integração híbrida não depende do SDK Lio, basta o integrador criar uma intent, passá-la como parâmetro no método startService disponível via context da aplicação.
Intent(action)
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.let(::startService)
Descrição dos parâmetros utilizados na operação anterior:
ATRIBUTO | DESCRIÇÃO | DOMÍNIO |
---|---|---|
action | Operação que deseja realizar. | cielo.lio.cashless.mifare.DETECT |
cielo.lio.cashless.mifare.AUTHENTICATE | ||
cielo.lio.cashless.mifare.READ | ||
cielo.lio.cashless.mifare.WRITE | ||
cielo.lio.cashless.mifare.INCREMENT | ||
cielo.lio.cashless.mifare.DECREMENT | ||
cbType | Forma que deseja receber o retorno da operação | A - Activity |
(callback). | B - Broadcast Reciver | |
Obs: É de responsabilidade do integrador | S - Service | |
implementar a funcionalidade que irá tratar a | ||
resposta do serviço. | ||
cbPackage | PackageName do app que está realizando a | |
integração. | ||
cbAction | Atributo que enviamos no retorno da operação, | AUTH_CALLBACK_READ |
serve para o integrador descobrir na resposta | AUTH_CALLBACK_WRITE | |
qual foi a operação executada. | AUTH_CALLBACK_INCR | |
AUTH_CALLBACK_DECR | ||
DETECT_CALLBACK | ||
AUTHENTICATE_CALLBACK |
Por fim chamamos o método startService para iniciarmos o serviço mifare na Lio.
Descrição dos parâmetros utilizados nas operações de leitura e escrita passados via intent
ATRIBUTO | DESCRIÇÃO | DOMÍNIO |
---|---|---|
sector | O setor de cartões inicia do zero. | Byte |
block | O bloco no setor, inicia do zero. | Byte |
data | Os dados a serem inseridos no bloco. | ByteArray |
value | O valor para incrementar ou decrementar | Byte |
keyType | O tipo de chave para autenticar no setor (A ou B) | Char |
key | A chave para autenticar no setor. | ByteArray |
destinationBlock | O bloco para backup ou restaurar. | Byte |
Operações suportadas pelo serviço Mifare
Como vimos no exemplo anterior, para realizar operações com cartão Mifare basta o integrador criar uma intent(seguindo nossa especificação) e utilizá-la como parâmetro do método startService, disponível na classe context.
- Detect
- Authenticate
- Read
- Write
- Increment
- Decrement
- Deactivate
- Backup
- Restore
Detect
A operação tem a responsabilidade de ativar a antena e aguardar a aproximação de um cartão. Em caso de sucesso na operação, a intent de retorno conterá o parâmetro result
, que é uma String com o valor R00
, e o parâmetro data
, que é um ByteArray contendo o identificador do cartão. Se a operação resultar em erro, o parâmetro result
retornará uma String com um valor diferente de R00
, e o identificador do cartão não será retornado no parâmetro data
.
Exemplo de chamada detect:
Intent("cielo.lio.cashless.mifare.DETECT")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.let(::startService)
Obs: Lembrando que o parâmetro cbType é customizável, não necessariamente o integrador precisa tratar a resposta via broadcast, fica a seu critério as opções abaixo:
B -> Broadcast
S -> Service
A -> Activity
Authenticate
Operação responsável por autenticar-se no setor, para que possa operar no mesmo. É importante estar contido na intent as informações de setor, chave e tipo de chave (sector, key, keyType).
Exemplo de chamada authenticate:
Intent("cielo.lio.cashless.mifare.AUTHENTICATE")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.putExtra("sector", "1".toByte())
.putExtra("key", MifareClassic.KEY_DEFAULT)
.putExtra("keyType", 'A')
.let(::startService)
Read
Operação responsável por realizar a leitura nos blocos e setores. É importante que a intent que iremos passar como parâmetro tenham as informações de setor e bloco (sector, block).
Exemplo de chamada read:
Intent("cielo.lio.cashless.mifare.READ")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.putExtra("sector", "1".toByte())
.putExtra("block", "0".toByte())
.let(::startService)
Write
Esta operação nos permite escrever em um setor e bloco específico. É importante adicionar na intent as informações de setor, do bloco e data (sector, block e data).
Exemplo de chamada write:
Intent("cielo.lio.cashless.mifare.WRITE")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.putExtra("sector", "1".toByte())
.putExtra("block", "0".toByte())
.putExtra("data", "100".toByteArray())
.let(::startService)
Increment
Operação responsável pelo incremento de valor em um bloco específico. É importante conter na intent as informações de setor, do bloco e valor (sector, block e value).
Exemplo de chamada increment:
Intent("cielo.lio.cashless.mifare.INCREMENT")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.putExtra("sector", "1".toByte())
.putExtra("block", "0".toByte())
.putExtra("value", "5".toByte())
.let(::startService)
Decrement
Operação responsável pelo decremento de valor em um bloco específico. É importante conter na intent as informações de setor, do bloco e valor (sector, block e value). Exemplo de chamada decrement:
Intent("cielo.lio.cashless.mifare.DECREMENT")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.putExtra("sector", "1".toByte())
.putExtra("block", "0".toByte())
.putExtra("value", "5".toByte())
.let(::startService)
Deactivate
Operação de encerramento do serviço, use-o quando estiver terminado. Exemplo de chamada deactivate:
Intent("cielo.lio.cashless.mifare.DEACTIVATE")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.let(::startService)
Backup e Restore
Operações de transferência dos dados de um bloco para outro, também conhecida em algumas documentações do Mifare como transfer. É importante a intent conter informações de setor, bloco e bloco de destino. (sector, block e destinationBlock).
Exemplo de chamada:
Intent("cielo.lio.cashless.mifare.BACKUP")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.putExtra("block", "1".toByte())
.putExtra("destinationBlock", "2".toByte())
.let(::startService)
Intent("cielo.lio.cashless.mifare.RESTORE")
.setPackage("cielo.lio.cashless")
.putExtra("cbType", 'B')
.putExtra("cbPackage", packageName)
.putExtra("cbAction", cbAction)
.putExtra("block", "1".toByte())
.putExtra("destinationBlock", "2".toByte())
.let(::startService)
Retorno das operações para o aplicativo do cliente.
Os componentes para tratar os retornos para as operações que acabamos de descrever podem ser variados (broadcast, service, intent), o que todos têm em comum é que passamos uma intent como parâmetro, nesta teremos os seguintes atributos:
ATRIBUTO | DESCRIÇÃO | DOMÍNIO |
---|---|---|
result | R00 significa sucesso, qualquer outro valor significa falha. | String |
detail | Mensagem de retorno. | String |
data | Em caso de operação de leitura, o parâmetro retorna o que foi lido do cartão, para outras operações o retorno é nulo. | byteArray |
Abaixo disponibilizando uma classe de exemplo que consume a API do Mifare, a implementação está em Kotlin e o modo de consumo escolhido foi o broadcast.
Exemplo de classe para tratamento do retorno utilizando broadcast
Abaixo disponiblizamos um exemplo de solução que trata o retorno das operações mifare utilizando broadcast
Clique aqui para ver exemplo de solução.
Impressão
Para realizar a impressão, basta montar uma URL com o seguinte formato:
lio://print?request=$base64&urlCallback=order://response
Segue abaixo, alguns exemplos de impressão:
Texto
Para otimizar a performance ao usar o Printer Manager para imprimir textos com múltiplas linhas, é aconselhável evitar a invocação do método de impressão para cada linha individualmente.
Em vez disso, recomenda-se a formatação do texto completo, incluindo todas as linhas, e a realização de uma única chamada a operação PRINT_TEXT
.
Isso reduz o número de chamadas ao método de impressão, melhorando a eficiência do processo.
{
"operation": "PRINT_TEXT",
"styles": [{}],
"value": ["TEXTO PARA IMPRIMIR NA PRIMEIRA LINHA\nTEXTO PARA IMPRIMIR NA SEGUNDA LINHA\nTEXTO PARA IMPRIMIR NA TERCEIRA LINHA\n\n"]
}
Neste exemplo, o texto completo é formatado como uma única string, com cada linha separada por um caractere de nova linha (“\n”).
Imagem
{
"operation": "PRINT_IMAGE",
"styles": [{}],
"value": ["/storage/emulated/0/saved_images/Image-5005.jpg"]
}
Múltiplas Colunas
{
"operation": "PRINT_MULTI_COLUMN_TEXT",
"styles": [
{
"key_attributes_align": 1,
"key_attributes_textsize": 30,
"key_attributes_typeface": 0
},
{
"key_attributes_align": 0,
"key_attributes_textsize": 20,
"key_attributes_typeface": 1
},
{
"key_attributes_align": 2,
"key_attributes_textsize": 15,
"key_attributes_typeface": 2
}
],
"value": [
"Texto alinhado à esquerda.\n\n\n",
"Texto centralizado\n\n\n",
"Texto alinhado à direita\n\n\n"
]
}
Mapa de Estilos de Impressão
Você pode formatar a sua impressão criando mapas de estilos utilizando os parâmetros disponíveis:
Atributo | Descrição | Valores |
---|---|---|
key_attributes_align |
Alinhamento da impressão | 0 - Center 1 - Left 2 - Right |
key_attributes_textsize |
Tamanho do texto | Valores inteiros |
key_attributes_typeface |
Fonte do texto (de 0 a 8, onde cada número representa uma fonte diferente) | 0 a 8 |
key_attributes_marginleft |
Margem esquerda | Valores inteiros |
key_attributes_marginright |
Margem direita | Valores inteiros |
key_attributes_margintop |
Margem superior | Valores inteiros |
key_attributes_marginbottom |
Margem inferior | Valores inteiros |
key_attributes_linespace |
Espaçamento entre as linhas | Valores inteiros |
key_attributes_weight |
Peso da coluna em impressão com múltiplas colunas | Valores inteiros |
form_feed |
Espaçamento após impressão de imagem para plataformas que não sejam a LIO | 0 - sem espaçamento 1 - com espaçamento |
Exemplo de mapas de estilos:
HashMap<String, Integer> alignLeft = new HashMap<>();
alignLeft.put("key_attributes_align", 1);
alignLeft.put("key_attributes_typeface", 0);
alignLeft.put("key_attributes_textsize", 20);
HashMap<String, Integer> alignCenter = new HashMap<>();
alignCenter.put("key_attributes_align", PrinterAttributes.VAL_ALIGN_CENTER);
alignCenter.put("key_attributes_typeface", 1);
alignCenter.put("key_attributes_textsize", 20);
HashMap<String, Integer> alignRight = new HashMap<>();
alignRight.put("key_attributes_align", PrinterAttributes.VAL_ALIGN_RIGHT);
alignRight.put("key_attributes_typeface", 2);
alignRight.put("key_attributes_textsize", 20);
HashMap<String, Integer> withFormFeed = new HashMap<>();
withFormFeed.put("form_feed", 1);
HashMap<String, Integer> withoutFormFeed = new HashMap<>();
withoutFormFeed.put("form_feed", 0);
Em plataformas que não sejam a LIO, ao realizar impressões de imagem, pode ocorrer de parte da imagem permanecer dentro da impressora após a impressão.
Para evitar esse problema, é possível utilizar a opção form_feed nos styles. Se o parâmetro não for informado, o valor padrão será 0, ou seja, não haverá espaço em branco adicional após a impressão da imagem. Caso seja necessário garantir que a imagem fique totalmente fora da impressora, basta definir o valor como 1. Exemplos na seçao de Mapa de estilos.
Serviço em Primeiro Plano com Deep Link
Para utilizar um serviço em primeiro plano para realizar tarefas críticas em segundo plano e, em seguida, iniciar uma comunicação via deep link com outro aplicativo, siga estes passos:
1. Criar um Serviço em Primeiro Plano
Implemente um serviço que seja executado em primeiro plano com uma notificação persistente.
2. Iniciar o Serviço em Primeiro Plano
Inicie o serviço antes de lançar o deep link.
3. Lançar o Deep Link
Use um Intent para iniciar o outro aplicativo através do seu deep link.
Exemplo de Implementação do Serviço em Primeiro Plano
import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.Service
import android.content.Intent
import android.os.Build
import android.os.IBinder
import androidx.core.app.NotificationCompat
class MyForegroundService : Service() {
companion object {
const val CHANNEL_ID = "ForegroundServiceChannel"
}
override fun onCreate() {
super.onCreate()
createNotificationChannel()
val notification: Notification = NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("Foreground Service")
.setContentText("Performing critical tasks in the background")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.build()
startForeground(1, notification)
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// Perform critical background tasks here
return START_NOT_STICKY
}
override fun onDestroy() {
super.onDestroy()
stopForeground(true)
}
override fun onBind(intent: Intent?): IBinder? = null
private fun createNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val serviceChannel = NotificationChannel(
CHANNEL_ID,
"Foreground Service Channel",
NotificationManager.IMPORTANCE_DEFAULT
)
val manager = getSystemService(NotificationManager::class.java)
manager?.createNotificationChannel(serviceChannel)
}
}
}
Iniciar o Serviço em Primeiro Plano e Lançar o Deep Link
import android.content.Context
import android.content.Intent
import android.net.Uri
fun startForegroundServiceAndLaunchDeepLink(context: Context, deepLink: String) {
// Start the foreground service
val serviceIntent = Intent(context, MyForegroundService::class.java)
context.startService(serviceIntent)
// Launch the other app using its deep link
try {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(deepLink))
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(intent)
} catch (e: Exception) {
e.printStackTrace()
// Handle the case where the deep link or app is not available
}
}
-
Observações
-
Substitua
Foreground Service
ePerforming critical tasks in the background
por textos apropriados para o seu aplicativo. -
Certifique-se de que o serviço em primeiro plano seja encerrado quando não for mais necessário, para evitar o uso desnecessário de recursos.
-
Adicione o serviço ao seu
AndroidManifest.xml
:
<service
android:name=".MyForegroundService"
android:exported="false"
android:foregroundServiceType="dataSync" />
Code Sample
Disponiblizamos 2 exemplos em diferentes linguagens para auxiliar no desenvolvimento:
Acesse o nosso projeto de exemplo em: React Native
Acesse o nosso projeto de exemplo em: Flutter
Integração Remota
Apresentação
O objetivo da Integração Remota da Cielo LIO é permitir que o lojista continue utilizando sua solução de frente de caixa (Automação Comercial ou PDV) e a integre com o módulo de pedidos e pagamentos da Cielo LIO através de uma API construída no padrão RESTful.
Dessa forma, toda a gestão do estabelecimento comercial fica sob responsabilidade da Automação Comercial e, no momento de realizar o pagamento, a Cielo LIO é utilizada.
A API Order Manager da Cielo LIO possui as seguintes características:
- Recursos REST, de forma que seja possível acessar por meio de semântica HTTP padrão.
- Códigos de status HTTP para comunicar o sucesso/erro nas chamadas.
- Todas as requisições e respostas encontram-se no formato JSON.
- As seções abaixo possuem todas as informações necessárias para realizar a integração de forma rápida e segura.
Code Sample
O código do exemplo da Automação Comercial integrada com a API Order Manager da Cielo LIO encontra-se disponível no GitHub.
Fluxo para Integração
API Docs
Nessa documentação, o desenvolvedor encontra todas as informações sobre os Endpoints, Entidades e Recursos disponíveis na API.
Você poderá consultar os dados de entrada, exemplos de requisição e os dados de saída. Assim como entender o fluxo básico da utilização da API Order Manager da Cielo LIO.
Endpoints
Todas as chamadas devem ser executadas utilizando as respectivas credenciais dos ambientes de sandbox e produção.
Sandbox
O ambiente de sandbox é destinado à realização de testes com parceiros da Cielo. Esse ambiente usa simuladores de integração. Assim, as operações não são executadas em ambiente produtivo.
Para utilizar o ambiente de sandbox, não é necessário que você forneça o número do estabelecimento. Você poderá iniciar os testes sem a necessidade de ter uma Cielo LIO. Para obter os tokens de sandbox, crie uma conta no portal e crie o Client-Id.
Utilize o endereço de sandbox abaixo para realizar os testes:
https://api.cielo.com.br/sandbox-lio/order-management/v1
Produção
O ambiente de produção é o ambiente transacional integrado ao ambiente da Cielo. As operações realizadas nesse ambiente não podem ser desfeitas.
Para utilizar o ambiente de produção, é necessário que você entre em contato através do formulário. Juntamente com os dados pessoais, forneça o número do estabelecimento. Para utilizar o ambiente de produção, é necessário que você possua uma Cielo LIO.
Utilize o endereço de produção abaixo para realizar as requisições:
https://api.cielo.com.br/order-management/v1
Já fez os testes em sandbox e deseja solicitar os tokens?
Clique em Solicitar Tokens
É necessário estar logado!
HTTP Headers
Todas as chamadas da API Integração Remota Cielo LIO Order Manager necessitam que as informações abaixo estejam presentes no Header na requisição:
Client-Id: Identificação de acesso. Sua geração ocorre no momento da criação pelo painel do desenvolvedor. Seu valor pode ser visualizado na coluna “Client ID”, dentro do menu “Desenvolvedor” -> “Client ID Cadastrados”.
Access-Token:Identificação do token de acesso, que armazena as regras de acesso permitidas ao Client ID. Sua geração ocorre no momento da criação do Client ID pelo painel do desenvolvedor. Seu valor pode ser visualizado clicando em “detalhes” na coluna “Access Tokens”, dentro do menu “Desenvolvedor” -> “Client ID Cadastrados”.
Merchant-Id: Token que identifica o estabelecimento comercial dentro do servidor Order Manager da Cielo LIO. Sua geração ocorre durante o processo de cadastro do Client ID. Seu valor pode ser visualizado na coluna “Merchant ID”, dentro do menu “Desenvolvedor” -> “Client ID Cadastrados”.
HTTP Status Code
Código | Erro | Descrição |
---|---|---|
200 | OK | Operação realizada com sucesso. |
201 | Created | A solicitação foi realizada, resultando na criação de um novo recurso. |
204 | Empty | Operação realizada com sucesso, mas nenhuma resposta foi retornada. |
400 | Bad Request | A requisição possui parâmetro(s) inválido(s). |
401 | Unauthorized | O token de acesso não foi informado ou não possui acesso às APIs. |
403 | Forbidden | O acesso ao recurso foi negado. |
404 | Not Found | O recurso informado no request não foi encontrado. |
413 | Request is to Large | A requisição está ultrapassando o limite permitido para o perfil do seu token de acesso. |
422 | Unprocessable Entity | A requisição possui parâmetros obrigatórios não informados. |
429 | Too Many Requests | O consumidor estourou o limite de requisições por tempo. |
500 | Internal Server Error | Erro não esperado; algo está quebrado na API |
Status de pedido
Abaixo é apresentada uma máquina de estados, com os possíveis estados que um pedido pode assumir desde o momento de sua criação até o seu término:
Entidades
Order
A Order é uma representação de um pedido para a venda de um ou mais produtos e/ou serviços. É fundamental que exista uma Order para que um pagamento seja realizado na Cielo LIO.
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | Texto | UUID que identifica unicamente o pedido. | criado pela API |
number | Texto | Número do pedido. Geralmente, esse número representa o identificador do pedido em um sistema externo através da integração com parceiros. | Não |
reference | Texto | Referência do pedido. Utilizada para facilitar o acesso ou a localização do mesmo. | Não |
status | Texto | Status do pedido (ENTERED, RE-ENTERED, PAID, CANCELED e CLOSED). | Sim |
created_at | Texto | Data de criação do pedido. A data deve estar no formato: YYYY-MM-DDThh:mm:ssZ (Exemplo: 20151020T13:13:29.000Z). | criado pela API |
updated_at | Texto | Data da última atualização do pedido. A data deve estar no formato: YYYY-MM-DDThh:mm:ssZ (Exemplo: 20151020T13:13:29.000Z). | criado pela API |
items | Lista (Order Item) | Lista de itens contidos no pedido. | Sim |
notes | Texto | Campo disponível para uso do Merchant para comunicação. | Não |
transactions | Lista (Transaction) | Lista de transações de pagamento (ou outros tipos) efetuadas no pedido. | Sim |
price | Número | Valor total do pedido. Exemplo: O valor de R$ 10,00 é representado como 1000. | Sim |
remaining | Número | Valor restante do pagamento do pedido. Exemplo: O valor de R$ 10,00 é representado como 1000. | Sim |
payment_code | Texto | “Forma de pagamento estabelecida na criação do pedido. Caso não seja informado, será necessário escolher a forma no POS” Funcionalidade exclusiva para Cielo Smart | Não |
Order Item
O Order Item é uma representação dos itens presentes em uma Order. É obrigatória a existência de, no mínimo, um Item para uma Order.
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
sku | Texto | SKU do produto. Exemplo: c2f5fb9a-5542-406e-8b79-17892329cda8. | Sim |
name | Texto | Nome do produto. | Não |
description | Texto | Descrição do produto. | Não |
unit_price | Número | Valor unitário do produto. Exemplo: O valor de R$ 10,00 é representado como 1000. | Sim |
quantity | Número | Quantidade de itens. Caso não seja informado, será considerado o valor 1. | Não |
unit_of_measure | Texto | Unidade de medida (EACH, HOURS, DAYS, SECONDS, CRATE_OF_12, SIX_PACK, GALLON e LITRE). | Sim |
details | Texto | Detalhes do produto. | Não |
created_at | Texto | Data de criação do pedido. A data deve estar no formato: YYYY-MM-DDThh:mm:ssZ (Exemplo: 20151020T13:13:29.000Z). | Não |
updated_at | Texto | Data de última atualização do pedido. A data deve estar no formato: YYYY-MM-DDThh:mm:ssZ (Exemplo: 20151020T13:13:29.000Z). | Sim |
Transaction
A Transaction é uma representação com todos os pagamentos que foram realizados em uma Order. O objetivo é utilizá-la para consultar os pagamentos (transactions) que foram efetuados em uma Order.
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | Texto | “UUID” que identifica unicamente a transação. | Sim |
external_id | Texto | Identificador unico ordem. | Sim |
status | Texto | Status da transação (CONFIRMED, PENDING e CANCELLED). | Sim |
terminal_number | Número | Número do terminal da Cielo LIO em que o pagamento foi realizado. | Sim |
authorization_code | Número | Código de autorização da transação. | Sim |
number | Texto | Número Sequencial Único (NSU) da transação. | Sim |
amount | Número | Valor da transação. Exemplo: O valor de R$ 10,00 é representado como 1000. | Sim |
transaction_type | Texto | Tipo da transação (PAYMENT e CANCELLATION). | Sim |
Card
O Card é uma representação do cartão que foi utilizado para realizar o pagamento/transação.
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
brand | Texto | Bandeira do cartão (VISA e MASTER). | Sim |
mask | Número | Número do cartão mascarado | Sim |
Payment Product
O Payment Product é uma representação da forma de pagamento utilizada para realizar um pagamento. Ex.: Crédito, Débito, etc.
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
primary_product_name | Texto | Forma de pagamento (CREDITO ou DEBITO) | Sim |
secondary_product_name | Texto | Tipo de pagamento (A VISTA, PARCELADO LOJA ou PARCELADO ADM) | Sim |
number_of_quotas | Número | Número de parcelas (0 para pagamentos à vista) | Sim |
Recursos
POST - Criar um pedido
Esse recurso realiza a criação de um pedido no servidor do Order Manager.
Endpoint:
POST /orders
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
order | Order | Informações do pedido. | Sim |
Exemplo de requisição:
{
"number": "0992f1d5cee540d9a9648f4d6a9e4aa6",
"reference": "PEDIDO #1234",
"status": "DRAFT",
"items": [{
"sku": "ede8f84a8b8645cb8e576a593c25c6ed",
"name": "produto 1",
"unit_price": 500,
"quantity": 2,
"unit_of_measure": "EACH"
},
{
"sku": "c2f5fb9a5542406e8b7917892329cda8",
"name": "produto 2",
"unit_price": 1500,
"quantity": 3,
"unit_of_measure": "EACH"
},
{
"sku": "b2j4bn6j93461385r5n90453407hjk0",
"name": "produto 3",
"unit_price": 550,
"quantity": 3,
"unit_of_measure": "EACH"
},
{
"sku": "55329cda842406e8cv2f5gdf96985152d",
"name": "produto 4",
"unit_price": 2005,
"unit_of_measure": "EACH"
}
],
"notes": "Mesa 1",
"price": 9155
}
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | body | Identificador do pedido. | Sim |
Exemplo de resposta:
{
"id": "2e1d7b07-dcee-4a09-8d09-3bb02d94169d"
}
POST - Criar um pedido novo parâmetro PaymentCode Cielo Smart
Nos terminais DX8000, ao criar um pedido, é possível enviar a forma de pagamento previamente definida para ele. Assim, na interface da LIO, o pedido será exibido com a forma de pagamento já selecionada, facilitando o processo e reduzindo erros.
A forma de pagamento é envida no campo “payment_code”, abaixo detalharemos a lista completa dos tipos de pagamento
Endpoint:
POST /orders
Exemplo de requisição:
{
"number": "0992f1d5cee540d9a9648f4d6a9e4aa6",
"reference": "PEDIDO #1234",
“payment_code”: "DEBITO_AVISTA",
"status": "DRAFT",
"items": [{
"sku": "ede8f84a8b8645cb8e576a593c25c6ed",
"name": "produto 1",
"unit_price": 500,
"quantity": 2,
"unit_of_measure": "EACH"
},
{
"sku": "c2f5fb9a5542406e8b7917892329cda8",
"name": "produto 2",
"unit_price": 1500,
"quantity": 3,
"unit_of_measure": "EACH"
},
{
"sku": "b2j4bn6j93461385r5n90453407hjk0",
"name": "produto 3",
"unit_price": 550,
"quantity": 3,
"unit_of_measure": "EACH"
},
{
"sku": "55329cda842406e8cv2f5gdf96985152d",
"name": "produto 4",
"unit_price": 2005,
"unit_of_measure": "EACH"
}
],
"notes": "Mesa 1",
"price": 9155
}
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | body | Identificador do pedido. | Sim |
Exemplo de resposta:
{
"id": "2e1d7b07-dcee-4a09-8d09-3bb02d94169d"
}
Lista de paymentCode
Disponibilizamos também a lista do campo “paymentCode”:
PaymentCode |
---|
DEBITO_AVISTA |
DEBITO_PAGTO_FATURA_DEBITO |
CREDITO_AVISTA |
CREDITO_PARCELADO_LOJA |
CREDITO_PARCELADO_ADM |
CREDITO_PARCELADO_BNCO |
PRE_AUTORIZACAO |
CREDITO_PARCELADO_CLIENTE |
CREDITO_CREDIARIO_CREDITO |
VOUCHER_ALIMENTACAO |
VOUCHER_REFEICAO |
VOUCHER_AUTOMOTIVO |
VOUCHER_CULTURA |
VOUCHER_PEDAGIO |
VOUCHER_BENEFICIOS |
VOUCHER_AUTO |
VOUCHER_CONSULTA_SALDO |
VOUCHER_VALE_PEDAGIO |
CREDIARIO_VENDA |
CREDIARIO_SIMULACAO |
CARTAO_LOJA_AVISTA |
CARTAO_LOJA_PARCELADO_LOJA |
CARTAO_LOJA_PARCELADO |
CARTAO_LOJA_PARCELADO_BANCO |
CARTAO_LOJA_PAGTO_FATURA_CHEQUE |
CARTAO_LOJA_PAGTO_FATURA_DINHEIRO |
FROTAS |
PIX |
GET - Consultar pedido
Esse recurso é utilizado para obter informações sobre um pedido específico. O id do pedido é utilizado para realizar a chamada.
Endpoint:
GET /orders/{id}
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
Exemplo de requisição:
GET
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
order | Order | Informações sobre o pedido consultado. | Não |
Exemplo de resposta:
{
{
"id": "b4d8a7dc-4250-48a3-bf18-d560d4508368",
"number": "0992f1d5-cee5-40d9-a964-8f4d6a9e4aa6",
"reference": "LOJA SUCO #1",
"status": "ENTERED",
"notes": "Mesa 6",
"price": 5250,
"created_at": "2016-09-06T19:09:49Z",
"updated_at": "2016-09-06T19:09:49Z",
"order_type": "PAYMENT",
"merchant": "0010920335960001",
"source_id": "4QeQD63ZeKsz",
"items": [{
"id": "0687f00a-0aea-48f7-85d0-64bc31977734",
"sku": "0000001",
"name": "Suco Detox",
"unit_price": 800,
"quantity": 1,
"unit_of_measure": "EACH"
},
{
"id": "cf561196-4e4c-436b-816b-80190e9a705f",
"sku": "0000010",
"name": "Suco de Uva",
"unit_price": 450,
"quantity": 5,
"unit_of_measure": "EACH"
},
{
"id": "16b4b10b-9967-477b-91a2-ecc02e6ff40c",
"sku": "0000011",
"name": "Suco de Tomate",
"unit_price": 500,
"quantity": 2,
"unit_of_measure": "EACH"
},
{
"id": "8500c747-1740-47cf-908a-3ab0f8b44193",
"sku": "0000100",
"name": "Suco de Abacaxi",
"unit_price": 400,
"quantity": 3,
"unit_of_measure": "EACH"
}
],
"transactions": []
}
}
GET - Consultar todos os Pedidos
Esse recurso é utilizado para obter a lista e as informações de todos os pedidos cadastrados no Order Manager.
Endpoint:
GET /orders/
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
merchant_id | query parameter | Token que identifica o estabelecimento comercial | Não |
number | query parameter | Número do pedido | Não |
reference | query parameter | Referência definida na criação do pedido | Não |
status | query parameter | Status do pedido (ENTERED, RE-ENTERED, PAID, CANCELED e CLOSED) | Não |
terminal_number | query parameter | Número lógico | Não |
page | query parameter | número da página requistada (iniciando em 0) | Não |
page_size | query parameter | quantidade de items por página | Não |
last_query_date | query parameter | Data inicial | Não |
Exemplo de requisição:
GET
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
order | Order | Informações sobre o pedido consultado. | Não |
Exemplo de resposta:
{
"id": "b4d8a7dc-4250-48a3-bf18-d560d4508368",
"number": "0992f1d5-cee5-40d9-a964-8f4d6a9e4aa6",
"reference": "LOJA SUCO #1",
"status": "ENTERED",
"notes": "Mesa 6",
"price": 5250,
"created_at": "2016-09-06T19:09:49Z",
"updated_at": "2016-09-06T19:09:49Z",
"order_type": "PAYMENT",
"merchant": "0010920335960001",
"source_id": "4QeQD63ZeKsz",
"items": [{
"id": "0687f00a-0aea-48f7-85d0-64bc31977734",
"sku": "0000001",
"name": "Suco Detox",
"unit_price": 800,
"quantity": 1,
"unit_of_measure": "EACH"
},
{
"id": "cf561196-4e4c-436b-816b-80190e9a705f",
"sku": "0000010",
"name": "Suco de Uva",
"unit_price": 450,
"quantity": 5,
"unit_of_measure": "EACH"
},
{
"id": "16b4b10b-9967-477b-91a2-ecc02e6ff40c",
"sku": "0000011",
"name": "Suco de Tomate",
"unit_price": 500,
"quantity": 2,
"unit_of_measure": "EACH"
},
{
"id": "8500c747-1740-47cf-908a-3ab0f8b44193",
"sku": "0000100",
"name": "Suco de Abacaxi",
"unit_price": 400,
"quantity": 3,
"unit_of_measure": "EACH"
}
],
"transactions": []
}
Na consulta de pedidos, é possível informar os parâmetro acima citados, para identificar as ordens criadas conforme mostrado no exemplo abaixo:
https://api.cielo.com.br/order-management/v1/orders/?reference=EXEMPLO_DE_REFERENCE
PUT- Alterar status de um pedido
Esse recurso realiza a alteração do status de um pedido criado. O id do pedido é utilizado para realizar a chamada.
As possíveis alterações de status são:
- PLACE (Liberar um pedido para pagamento, exibir pedido na Cielo LIO)
- PAY (Alterar um pedido para pago)
- CLOSE (Fechar um pedido)
Endpoint:
PUT /orders/{id}?operation={operation}
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
operation | query parameter | Operação que deve ser executada. As possíveis operações são: place (Liberar um pedido para pagamento), pay (deixar um pedido como pago) e close (Fechar um pedido). | Sim |
Exemplo de requisição:
PUT
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
N/A |
Exemplo de resposta:
N/A
O retorno 200 dessa operação representa sucesso na requisição.
DELETE - Excluir um pedido
Esse recurso é utilizado para excluir um pedido do servidor do Order Manager. O id do pedido é utilizado para realizar a chamada.
Somente os pedidos com status DRAFT podem ser excluídos.
Endpoint:
DELETE /orders/{id}
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
Exemplo de requisição:
DELETE
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
N/A |
Exemplo de resposta:
N/A
O retorno 200 dessa operação representa sucesso na requisição.
POST - Adicionar Item/Itens em um Pedido
Esse recurso é utilizado para adicionar um ou mais itens em um pedido já criado. O id do pedido é utilizado para realizar a chamada.
Somente os pedidos com status DRAFT podem ter adição de itens.
Endpoint:
POST /orders/{id}/items
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
Exemplo de requisição:
{
"sku": "ede8f84a8b8645cb8e576a593c25c6ed",
"name": "produto 1"
"unit_price": 500,
"quantity": 2,
"unit_of_measure": "EACH"
}
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
N/A |
Exemplo de resposta:
N/A
O retorno 200 dessa operação representa sucesso na requisição.
GET - Consultar os itens de um pedido
Esse recurso é utilizado para consultar os itens presentes em um pedido. O id do pedido é utilizado para realizar a chamada.
Endpoint:
GET /orders/{id}/items
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
Exemplo de requisição:
GET
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
orderItems | Lista (OrderItem) | Lista de itens de um pedido. | Sim |
Exemplo de resposta:
[{
"id": 1,
"sku": "ede8f84a8b8645cb8e576a593c25c6ed",
"name": "produto 1"
"unit_price": 500,
"quantity": 2,
"unit_of_measure": "EACH"
},
{
"id": 2,
"sku": "c2f5fb9a5542406e8b7917892329cda8",
"name": "produto 1"
"unit_price": 1500,
"quantity": 3,
"unit_of_measure": "EACH"
}
]
PUT - Alterar um item em um pedido
Esse recurso permite alterar informações de um item de um pedido. O id do pedido e o id_item são utilizados para realizar a chamada.
Somente os pedidos com status DRAFT podem ter itens alterados.
Endpoint:
PUT /orders/{id}/items/{id_item}
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
id_item | path parameter | Identificador do item do pedido. | Sim |
Exemplo de requisição:
PUT /items/8484df74-eca6-4850-8e4c-35653af0bd31
{
"sku": "ede8f84a8b8645cb8e576a593c25c6ed",
"unit_price": 500,
"quantity": 2,
"unit_of_measure": "EACH"
}
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
N/A |
O retorno 200 dessa operação representa sucesso na requisição.
DELETE - Excluir Item de um pedido
Esse recurso é utilizado para excluir um item presente em um pedido. O id do pedido e o id_item são utilizados para realizar a chamada.
Somente os pedidos com status DRAFT podem ter itens alterados.
Endpoint:
DELETE /orders/{id}/items/{id_item}
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
id_item | path parameter | Identificador do item do pedido. | Sim |
Exemplo de requisição:
DELETE
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
N/A |
O retorno 200 dessa operação representa sucesso na requisição.
POST - Adicionar uma Transação
Recurso utilizado somente para Ambiente de Sandbox
Esse recurso permite que o desenvolvedor simule as transações financeiras, adicionando-as manualmente, sendo possível entender o funcionamento em uma Order.
Endpoint:
POST /orders/{id}/transactions
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
Transactions | Lista (Transaction) | Informações da Transação | Sim |
Exemplo de requisição:
POST
{
"external_id": "0b37f0d8-017a-4b11-91b9-ec1bb3e8fed3",
"status": "CONFIRMED",
"terminal_number": "12345678",
"authorization_code": "008619",
"number": "672836",
"amount": 2000,
"transaction_type": "PAYMENT",
"paymentFields": {
"primaryProductName": "CREDITO",
"secondaryProductName": "A VISTA",
"numberOfQuotas": 0
},
"card": {
"brand": "VISA",
"mask": "******5487"
}
}
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | number | Identificador da Transação | SIM |
{
id: "00219dd0-1c13-46da-91e5-1c313f0d2e83"
}
Em ambiente de Sandbox, onde não há necessidade de ter uma Cielo LIO, e consequentemente não é necessário possuir o número do estabelecimento, faz total sentido fazer essa chamada deste recurso.
Já em ambiente de Produção quem irá criar as transactions é a própria Cielo LIO conforme os pagamentos forem efetuados.
GET - Consultar as transações de um pedido
Esse recurso é utilizado para obter as informações de todas as transações realizadas em um pedido. O id do pedido é utilizado para realizar a chamada. Em ambiente de produção, uma vez que um pagamento for realizado na Cielo LIO a transactions será adicionada automaticamente no pedido e então, será possível obter as informações do pagamento realizado a partir da chamada deste recurso.
Endpoint:
GET /orders/{id}/transactions
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
Exemplo de requisição:
GET
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
transactions | Lista (Transaction) | Lista de transações de um pedido. | SIM |
Exemplo de resposta:
[
{
"id": "442bbdbe-41c8-4e22-83ee-e1a849ed3cb5",
"external_id": "0b37f0d8-017a-4b11-91b9-ec1bb3e8fed3",
"status": "CONFIRMED",
"terminal_number": "77102648",
"authorization_code": "008619",
"number": "672836",
"amount": 2000,
"transaction_type": "PAYMENT",
"payment_fields": {
"primary_product_name": "CREDITO",
"secondary_product_name": "A VISTA",
"number_of_quotas": 0
},
"card": {
"brand": "VISA",
"mask": "************3542"
}
}
]
Cancelar Pedidos
O cancelamento de pedidos é realizado apenas através da Cielo LIO. Selecione a função Cancelamento de Vendas e digite o CNPJ da empresa (o mesmo que pode ser visualizado através do comprovante de pagamento). O sistema irá solicitar a senha do supervisor. Siga todos os passos indicados nas telas seguintes para o cancelamento da venda. É importante salientar que um cancelamento só pode ser realizado em ser valor integral.
GET - Consultar as transações canceladas de um pedido
Esse recurso é utilizado para obter as informações de todas as transações canceladas em um pedido. O id do pedido é utilizado para realizar a chamada. Em ambiente de produção, uma vez que o cancelamento for realizado na Cielo LIO a transactions será adicionada automaticamente no pedido juntamente com a transaction do pagamento original.
Endpoint:
GET /orders/{id}/transactions
Dados de entrada:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
id | path parameter | Identificador do pedido. | Sim |
Exemplo de requisição:
GET
Dados de saída:
Campo | Tipo | Descrição | Obrigatório |
---|---|---|---|
transactions | Lista (Transaction) | Lista de transações de um pedido. | SIM |
Exemplo de resposta:
[
{
"id": "46019c39-989e-46e9-aa7d-d8e9414396b4",
"external_id": "95185.99407021694",
"status": "CONFIRMED",
"terminal_number": "77102648",
"authorization_code": "008619",
"number": "672837",
"amount": 2000,
"transaction_type": "CANCELLATION",
"payment_fields": {
"primary_product_name": "CREDITO",
"secondary_product_name": "A VISTA",
"number_of_quotas": 0
},
"card": {
"brand": "VISA",
"mask": "************3542"
}
},
{
"id": "442bbdbe-41c8-4e22-83ee-e1a849ed3cb5",
"external_id": "0b37f0d8-017a-4b11-91b9-ec1bb3e8fed3",
"status": "CONFIRMED",
"terminal_number": "77102648",
"authorization_code": "008619",
"number": "672836",
"amount": 2000,
"transaction_type": "PAYMENT",
"payment_fields": {
"primary_product_name": "CREDITO",
"secondary_product_name": "A VISTA",
"number_of_quotas": 0
},
"card": {
"brand": "VISA",
"mask": "************3542"
}
}
]
Fluxo Básico Utilização API Order manager Cielo LIO
Abaixo você encontra um fluxo básico para enviar um pedido para a Cielo LIO utilizando a Integração Remota:
Notificações de Mudanças na Order
Para o cadastro da URL onde enviaremos as notificações Entre em contato conosco atráves do nosso time de Suporte a Desenvolvimento informando o seu endpoint
O maior motivo da disponibilização da API RESTful do Order Manager é permitir que aplicações parceiras se integrem à plataforma da Cielo na cloud. Porém, uma vez que as aplicações parceiras submetem pedidos, estes devem ser pagos localmente na própria Cielo LIO. Sendo assim, as aplicações parceiras precisam de uma forma de receber notificações de mudanças do status e das transações realizadas na Order.
Para tal, é necessário que o parceiro disponibilize um Backend RESTful, que irá receber as notificações seguindo o formato abaixo. Uma vez recebidas as informações, o Backend tem a liberdade de ser utilizado da forma mais adequada ao modelo de negócio.
Atenção: Os campos podem sofrer alterações sem aviso prévio, recomendamos que o PARSE do json seja dinâmico para aceitar novos valores em campos que ja enviamos hoje. Exemplo: O campo brand, caso surja novas bandeiras o seu backend precisa estar pronto para essa alteração.
POST - Notificação de Mudança de Status
A cada modificação de status em um pedido, o servidor do Order Manager envia, via comando, as informações para o Backend do parceiro.
Atenção: O backend do parceiro deve possuir o status anterior
Requisição do Order Manager
POST
Exemplo de informação enviada pelo Order Manager
{
"id":"943f2276-5e2b-44bb-a68a-fd9b6418afa4",
"items":[
{
"id":4389df04-ef19-4217-a969-22cb6e86d8cf",
""sku"":"1",
""name"":""TESTE CALLBACK"",
""uuid"":"438232f04-ef19-4217-a969-22cb6e86d8cf",
""details"":null,
""order_id"":943f2276-5e2b-44bb-a68a-fd9b6418afa4",
"quantity":1,
"sku_type":null,
"reference":null,
"created_at":"2023-01-04T14:20:28Z",
"unit_price":2392,
"updated_at":"2023-01-04T14:20:24Z",
"description":"TESTE CALLBACK",
"unit_of_measure":"EACH"
}
],
"notes":"TESTE",
"price":2898,
"number":"1078069",
"status":"CLOSED",
"reference":"REFERENCIA DO PEDIDO",
"created_at":"2023-04-04T14:33:28Z",
"updated_at":"2023-04-04T16:19:37Z",
"transactions":[
{
"id":"d7d5cab9-f5b0-4a14-8593-9793a0aae193",
"card":{
"mask":"************3026",
"brand":"MASTERCARD"
},
"uuid":"d7d5cab9-f5b0-4a14-8593-9793a0aae193",
"amount":2392,
"number":"044976",
"status":"CONFIRMED",
"created_at":"2023-04-04T14:34:24Z",
"updated_at":"2023-04-04T16:19:37Z",
"description":"",
"external_id":"7d7d5cab9-f5b0-4a14-8593-9793a0aae193",
"payment_fields":{
"pan":"************3332",
"v40Code":8,
"typeName":"VENDA A DEBITO",
"cityState":"SAO PAULO SP",
"serviceTax":0,
"statusCode":1,
"boardingTax":0,
"hasPassword":false,
"hasWarranty":false,
"productName":"DEBITO A VISTA",
"requestDate":1680618831267,
"changeAmount":0,
"documentType":"J",
"entranceMode":"691010107080",
"hasSignature":false,
"merchantCode":"0010225646149400",
"merchantName":"NOME DO ESTABELECIMENTO",
"applicationId":"cielo.launcher",
"totalizerCode":92,
"upFrontAmount":0,
"creditAdminTax":0,
"firstQuotaDate":0,
"interestAmount":0,
"isExternalCall":true,
"numberOfQuotas":0,
"applicationName":"cielo.launcher.ORDER",
"avaiableBalance":0,
"cardCaptureType":3,
"finalCryptogram":"21FDEF2548665F36",
"hasConnectivity":true,
"merchantAddress":"QNM 17 CJH LT28",
"paymentTypeCode":1,
"firstQuotaAmount":0,
"hasSentReference":false,
"isFinancialProduct":true,
"primaryProductCode":2000,
"primaryProductName":"DEBITO",
"hasSentMerchantCode":false,
"cardLabelApplication":"Debito Nubank",
"paymentTransactionId":"d7d5cab9-f5b0-4a14-8593-9793a0aae193",
"secondaryProductCode":1,
"secondaryProductName":"A VISTA",
"originalTransactionId":"0",
"receiptPrintPermission":1,
"hasPrintedClientReceipt":false,
"isDoubleFontPrintAllowed":false,
"isOnlyIntegrationCancelable":false
},
"terminal_number":"238232",
"transaction_type":"PAYMENT",
"authorization_code":"123562"
}
]
}
POST - Notificação de Transação Realizada
A cada transação/pagamento realizada em um pedido, o servidor do Order Manager envia, via comando, as informações para o Backend do parceiro.
Requisição do Order Manager
POST
Exemplo de informação enviada pelo Order Manager
{
"id": "f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0",
"order_id": "f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0",
"trasaction": {
"id": "f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0",
"external_id": "f0f0f0f0-f0f0-f0f0-f0f0-f0f0f0f0f0f0",
"description": "",
"status": "CONFIRMED",
"terminal_number": "###324625",
"authorization_code": "0#1#133",
"number": "##50##",
"amount": "1",
"transaction_type": "PAYMENT",
"payment_fields": {
"primary_product_name": "CREDITO",
"secondary_product_name": "A VISTA",
"number_of_quotas": "0"
},
"card": {
"brand": "MASTERCARD",
"mask": "************0566"
}
}
}
Notificações dos pedidos
Política de retentativa
- O envio da notificação para um pedido será retentada a cada 15 minutos, durante um período total de 7 horas.
- Em caso de falha em todas as retentativas neste período, as notificações deste mesmo pedido serão bloqueadas.
- Haverá tentativa de notificação para um pedido, mesmo que as notificações de outro pedido tenham sido bloqueadas.
Bloqueio de notificações para o EC
- O EC deixará de receber notificações caso o percentual de pedidos bloqueados seja igual ou superior a 80% nas últimas 24 horas.
Desbloqueio de notificações para o EC
- Entre em contato conosco para solicitar o desbloqueio, informando o número do EC e o endereço do serviço, caso haja alteração.
PIX
O que é o Pix
O Pix é o meio de pagamento criado pelo Banco Central em que os recursos são transferidos entre contas e poucos segundos, a qualquer hora ou dia. O Pix é um novo jeito de vender de forma instantânea, segura e simples pelas soluções da Cielo.
Como habilitar o pagamento PIX?
Para que seja possível efetivar um pagamento utilizando a forma de pagamento PIX, é necessário que o estabelecimento tenha esse tipo de pagamento habilitado.
Para realizar essa ação, siga as instruções abaixo.
Após essa habilitação via Site Cielo o estabelecimento estará apto a trabalhar com a modalidade PIX.
Habilitando pagamento PIX
Para que seja possivel efetivar um pagamento utilizando a forma de pagamento PIX, é necessário que o estabelecimento tenha esse tipo de pagamento habilitado.
PASSO 1: Entrar no site Cielo com seu login e senha
PASSO 2: Clicar em “Meu cadastro”
PASSO 3: Clicar em “Autorizações”
PASSO 4: Clicar em “PIX
PASSO 5: Marcar a caixa de aceite , e clicar em “Enviar
Após essa habilitação via Site Cielo o estabelecimento estará apto a trabalhar com a modalidade PIX.
FAQ
Integrações
Integração Local
Essa é a integração de APP embarcado na LIO, utilizando os seus recursos: Pagamento, impressão e cancelamento. O seu Aplicativo instalado na LIO, se integra com o módulo de pedidos e pagamentos da Cielo LIO através do Cielo LIO Order Manager SDK.
É possível desenvolver utilizando Java e Kotlin e se integrar a nossa SDK e também utilizando linguagens hibridas com Deep Link, segue abaixo as respectivas documentações:
Documentação Integração Local Nativa.
Existe algum aplicativo de exemplo disponível?
Disponibilizamos no GitHub um aplicativo Sample de forma que o desenvolvedor consiga ver como funciona as chamadas para utilização do SDK.
Download do aplicativo Sample.
É necessário colocar todos os itens do pedido na order?
A Cielo LIO funciona com o conceito de Pedido (Order). Assim, o procedimento deve ser sempre o exemplificado no SDK:
- Criar uma ordem com status draft;
- Adicionar itens à ordem;
- Preparar a ordem para pagamento (place order);
- Executar o checkout.
Se você tem uma variedade de produtos, é interessante criar itens separados para status de relatório na Cielo LIO do lojista.
Integração Remota
Na Integração Remota você utiliza o seu PDV(Sistema Desktop ou Web) para gerar os pedidos e enviar para a Cielo LIO efetuar o recebimento. Documentação Integração Remota.
Preciso me cadastrar para realizar testes?
Sim, é fundamental o cadastro no portal para que você possa obter os tokens de acesso e testar as suas aplicações.
Integração Híbrida
O processo de integração híbrida é um pouco diferente da integração com o SDK (Integração Local). Para parceiros que não estão integrando com a linguagem nativa Java ou Kotlin a integração hibrida via deep link é uma opção.
Documentação Integração Hibrida.
O que eu preciso para colocar a integração em produção?
Se você já realizou todos os testes em Sandbox e deseja enviar pedidos para a Cielo LIO, entre em contato conosco por meio de um ticket, preenchendo os dados necessários para receber os tokens de produção.
Acesse o link.
Também é necessário incluir a tag abaixo no arquivo AndroidManifest.xml
do seu aplicativo para que seu aplicativo hibrido esteja disponível para todos os terminais:
<application>
...
<meta-data
android:name="cs_integration_type"
android:value="uri" />
<activity>
...
<activity/>
<application/>
Preciso de uma máquina Cielo LIO para realizar os testes de integração local?
Não é necessário ter uma máquina Cielo LIO para realizar os testes.
A Cielo disponibiliza um aplicativo que simula o ambiente da Cielo LIO em qualquer dispositivo Android, permitindo que o desenvolvedor realize os testes nos métodos do SDK e faça o debug da sua aplicação durante o desenvolvimento e a integração com o Cielo LIO Order Manager SDK, sem a necessidade de possuir um hardware da Cielo LIO.
Download do Emulador: aqui no link
Preciso me cadastrar para realizar testes?
Sim, é fundamental o cadastro no portal para que você possa obter os tokens de acesso e testar as suas aplicações.
PIX
Como habilitar o pagamento PIX?
Para que seja possível efetivar um pagamento utilizando a forma de pagamento PIX, é necessário que o estabelecimento tenha esse tipo de pagamento habilitado.
Siga as instruções através desse link. Após essa habilitação via Site Cielo o estabelecimento estará apto a trabalhar com a modalidade PIX.
Duvidas Gerais Cielo LIO
Como posso adquirir um equipamento LIO para desenvolvimento ?
Os desenvolvedores que desejam obter uma Cielo LIO, deverão seguir os passos abaixo:
- Criar uma conta no Portal dos Desenvolvedores e fazer a solicitação do equipamento através da abertura do ticket;
- Aguardar o recebimento da Cielo LIO;
- Em posse do equipamento, o desenvolvedor deve abrir uma nova solicitação no portal dos desenvolvedores para requisitar a habilitação de sua LIO de Dev.
- Todos os aplicativos publicados pelo desenvolvedor no Dev Console que estejam com status diferente de bloqueado poderão ser baixados em sua LIO de Dev.
Clique Aqui para solicitar sua LIO.
Se meu aplicativo já funciona na Cielo LIO v2, ele vai funcionar também na Cielo LIO On?
Sim, se você já tem um aplicativo rodando na Cielo LIO V2, ele também funcionará na Cielo LIO On.
Como faço para integrar com a Cielo LIO?
Construimos um portal dedicado aos desenvolvedores para facilitar a integração da sua solução com a Lio -> http://desenvolvedores.cielo.com.br Nesse portal você pode:
- Acessar documentação completa das APIs;
- Utilizar os SDK´s para tornar a integração mais ágil;
- Criar suas contas para receber as chaves (tokens) de acesso;
- Realizar os testes e desenvolvimentos para se integrarem com a Cielo: usando emulador ou sandbox.
Posso utilizar impressoras para conectar na Cielo LIO?
Sim. Impressoras com conexão via Bluetooth podem ser usadas pelo aplicativo do parceiro que está rodando na Cielo LIO para realizar a impressão de algum comprovante ou recibo necessário para a operação do negócio do parceiro/cliente.
Já existem parceiros que estão utilizando impressoras Bluetooth das marcas Zebra, Datex, Leopardo e outras para se integrar com a Cielo LIO! Todos os protocolos de comunicação e pareamento ficam sob responsabilidade do aplicativo do parceiro.
Quais são as formas de comunicação da Cielo LIO?
A Cielo LIO possui entrada para um SIM Card que permite realizar a comunicação via rede móvel 4G. Com fall-back para 3G e 2G e GPRS respectivamente. Além disso, ela possui como tecnologia de comunicação o Wi-Fi.
Quais são as conexões disponíveis na Cielo LIO?
As entradas USB da Cielo LIO são utilizadas única e exclusivamente para realizar o carregamento na bateria do aparelho. O Bluetooth da Cielo LIO pode ser utilizado para realizar a comunicação e a troca de informações com dispositivos externos.
Caso necessite trocar a máquina LIO, o catálogo cadastrado migra automaticamente para a nova máquina recebida?
Não migra. Para que o catálogo fique na nuvem, o cliente precisará de um aplicativo que tenha essa funcionalidade.
Como faço para atualizar/baixar aplicativos na LIO?
A Cielo Lio precisa estar conectada a internet 4G ou WI-FI
Com sua LIO em mãos siga as orientações abaixo:
- Clique na aba “Ajuda”;
- Clique na opção “Minha LIO”;
- Clique na opção “Buscar Atualizações”.
Como faço para criar uma conta no site da Cielo?
Basta acessar o site Cielo http://www.cielo.com.br.
- No canto superior direito, clique em “Acessar minha conta”;
- Clique em “Cadastre-se”;
- Clique em “Criar cadastro” Informe os dados requisitados.
Minha LIO não está baixando um app
Verificar se sua LIO está com bateria acima de 50% e com 4G ou WI-FI. Se estiver com todos os requisitos citados acima e mesmo assim o app não baixou abra um chamado no portal dos desenvolvedores.
Dev Console - Cielo Store (Loja Publica) X Loja Privada
Fiz meu cadastro! O que devo fazer agora?
O desenvolvedor deverá escolher o tipo de Loja que deseja disponibilizar seu app.
Aplicativo de Loja Pública
Os aplicativos públicos são indicados para aqueles desenvolvedores e parceiros que desejam disponibilizar e escalar sua aplicação e permitir o download na Cielo LIO distribuídos nos estabelecimentos comerciais no Brasil via Vitrine da Cielo Store.
Aplicativo Privado na Loja Privada
Os aplicativos privados são indicados para desenvolvedores que querem permitir a distribuição de soluções personalizadas para um cliente específico. É necessário solicitar a criação da Loja Privada para então ser possível fazer o upload de um aplicativo de Loja Privada no Dev Console. A partir da Loja Privada criada, o desenvolvedor poderá publicar seu aplicativo no Dev Console selecionando sua loja, esta ação é essencial para realizar a distribuição de aplicativos privados. Clique aqui para solicitar a criação da Loja Privada.
Quais são os Browsers/Navegadores recomendados para Upload de aplicativo na Cielo Store?
Recomendamos utilizar o Google Chrome ou Mozilla Firefox preferencialmente para realizar o upload de aplicativos na Cielo Store.
Como faço para me cadastrar na Cielo?
É necessário a abertura de solicitação no Portal de Desenvolvedores > Suporte > Cielo Lio > Envie sua pergunta > Solicitação LIO DEV / Credenciamento EC Cielo.
Como posso liberar o meu aplicativo desenvolvido aos clientes Loja Privada?
Após o aplicativo passar pela etapa de certificação e ser aprovado pelo time especialista interno da Cielo, o próprio desenvolvedor será notificado e deverá promover o app para produção sendo assim todos os EC’s que tiverem associados a loja privada irão receber o aplicativo. Clique Aqui para solicitar a criação da Loja Privada e tirar suas dúvidas de como fazer a associação de um EC a uma loja privada.
Como posso liberar o meu aplicativo desenvolvido aos clientes Loja Publica?
Após o aplicativo passar pela etapa de certificação e ser aprovado pelo time especialista interno da Cielo, o próprio desenvolvedor será notificado e deverá promover o app para produção, sendo assim o mesmo ficará disponível na Loja Cielo Store para seus clientes.
Preciso ser cadastrado na Cielo para receber o pagamento dos aplicativos?
Sim, é necessário ter uma conta no site Cielo o pagamento é realizado em agenda financeira, precisa se cadastrar para ter um estabelecimento comercial (EC). Basta acessar o site Cielo http://www.cielo.com.br.
- No canto superior direito, clique em “Acessar minha conta;
- Clique em “Cadastre-se”;
- Clique em “Criar cadastro” Informe os dados requisitados.
O que eu preciso para colocar meu aplicativo em produção?
Se seu aplicativo já foi certificado, você deve promovê-lo em Produção no Dev Console. Dev Console > Selecionar App > Selecionar Versão Certificada > Clicar em “Enviar para Produção”.
Como recebo o pagamento dos aplicativos?
O pagamento será feito em agenda financeira. É necessário ter uma conta no site Cielo. Caso não tenha, acesse o site Cielo http://www.cielo.com.br.
- No canto superior direito, clique em “Acessar minha conta”;
- Clique em “Cadastre-se”;
- Clique em “Criar cadastro” Informe os dados requisitados.
Tenho algum custo para colocar meu aplicativo na Cielo Store?
Não! A integração com a Cielo LIO é gratuita.
O que é a Cielo Store (Loja Publica)?
Toda vez que você precisa acessar o app do Banco ou daquela loja preferida ou de entrega de comida, você acessa a loja de aplicativos (Play Store ou App Store) do seu celular e realiza o download desse app, certo?
O mesmo acontece com a Cielo LIO. Através da Cielo STORE, os estabelecimentos comerciais podem escolher entre os mais de 50 apps disponíveis o aplicativo que melhor atende suas necessidades, seja unificar sistemas, realizar gestão de vendas, time e estoque etc. em um único clique.
Quais as etapas existentes para publicar meu aplicativo?
1 - Etapa de desenvolvimento
Após passar pelo upload de um novo aplicativo ou nova versão, o aplicativo fica automaticamente com o status “Em Desenvolvimento”. Nesse estágio o desenvolvedor consegue realizar testes do seu aplicativo em uma Cielo LIO e caso precise fazer alguma correção, basta publicar uma nova versão do aplicativo pelo Dev Console e então atualizar na Cielo LIO.
2 - Etapa de Certificação
Uma vez concluído os testes, o desenvolvedor envia o aplicativo para Certificação. Nessa etapa o time de Certificação da Cielo entra em ação e irá validar o fluxo de funcionamento do aplicativo de acordo com a sessão Critérios de Certificação de Aplicativos deste documento.
3 - Etapa de Produção
Assim que o aplicativo for aprovado na certificação, o desenvolvedor poderá promover para produção.
Como faço para mudar o nome do meu aplicativo?
Não é possível alterar o nome de um aplicativo. Caso seja necessário, é preciso criar um novo aplicativo com package name diferente e seguir o processo normal de upload de aplicativo na Cielo Store.
É possível editar as informações do meu aplicativo já publicado na Cielo Store?
Sim, é possível. Basta alterar as informações dentro do formulário no Dev Console, submeter uma nova versão e encaminhá-la para Certificação. Após o APP ser certificado e aprovado, é necessário promover o APP para produção e sendo assim o APP fica atualizado e disponível na Cielo Store.
Como faço para baixar aplicativos na Cielo LIO?
Com sua LIO em mãos siga as orientações abaixo:
- Clique na aba “Ajuda”;
- Clique na opção “Minha LIO”;
- Clique na opção “Buscar Atualizações”.
Vale lembrar que sua LIO precisa está dentro dos requisitos bateria acima de 50% e com 4G ou WI-FI estável. A partir desse momento todos os aplicativos disponibilizados para essa LIO serão baixados e instalados na e ficarão visíveis na aba Apps.
Qual a diferença entre Loja Pública e Loja Privada?
Na Loja Pública, o aplicativo ficará disponível na Cielo Store para todos os clientes que possuem LIO. O cliente deverá escolher o aplicativo que deseja contratar e fazer o download. O modelo de Loja Privada a distribuição do aplicativo é feita pelo desenvolvedor. O aplicativo é instalado somente para o EC que está cadastrado em uma loja especifica. O aplicativo que está na Loja Privada não estará disponível na Loja Pública.
O que é a Loja Privada?
É uma solução desenvolvida para quem precisa de um sistema de gestão integrado personalizado. Integrando com a LIO ON você pode ter acesso a todas as informações em um lugar só, consegue fazer um gerenciamento de vendas, controle de estoque, fluxo de caixa, emissão de nota fiscal e muito mais. Para saber quais apps temos entre em contato conosco!
Como faço para cancelar a assinatura do aplicativo?
- Clique na opção Apps;
- Selecione Cielo Store;
- Escolha o aplicativo;
- Clique em desinstalar;
- Preencha com usuário e senha criados no site Cielo.
Como um aplicativo da loja pública é cobrado?
Os aplicativos são cobrados mensalmente diretamente na agenda financeira do EC que contratou o aplicativo.
Como faço para consultar minha comissão referente a aplicativos de loja pública?
Entre no Site Cielo com suas credenciais > Recebíveis > Detalhado > Selecionar uma ou duas datas. Serão exibidos os valores pagos e a data com a descrição “Repasse ao desenvolvedor sobre a compra de aplicativo no Cielo Store”. Cada linha exibida é referente a uma assinatura ativa.