Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará recursos adicionais relacionados à autenticação
Loading...
Loading...
Loading...
Nesta seção, você encontrará tudo relacionado às APIs do Unico IDPay
Nesta seção, você encontrará todos os endpoints disponíveis do produto Unico IDPay
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará todas as especificações técnicas dos SDK's disponíveis no produto Unico IDPay
Loading...
Loading...
Nesta seção, você encontrará como controlar a experiência do IDPay através das webviews separadas por seus respectivos frameworks
Loading...
Loading...
Nesta seção, você encontrará como implementar a webview no iOS para uso do produto Unico IDPay
Loading...
Loading...
Nesta seção, você encontrará como implementar o iFrame e Redirect na sua aplicação web para uso do produto Unico IDPay
Loading...
Loading...
Loading...
Loading...
Loading...
Nesta seção, você encontrará a visão geral da integração do produto IDPay
O primeiro passo para utilizar o produto Unico IDPay é a Autenticação. Você deve possuir uma conta de serviço e realizar a autenticação OAuth2 para obter um access-token válido.
Saiba mais em Autenticação.
Irá utilizar o IDPay no topo do seu funil antifraude? Então realize nossa integração via Webview ou SDK no seu Checkout.
Utilizará o IDPay para recuperar transações que seu antifraude negou? Integre num fluxo via WhatsApp.
Está sem tempo e/ou sem recursos para implementar o IDPay de forma integrada? Utilize o produto manualmente na sua operação de mesa de análise e não deixe de recuperar as suas vendas.
Antes de criar as transações para seu cliente, garanta que a experiência do IDPay tenha a cara do seu negócio.
Configure a experiência do seu jeito: utilize o logotipo com sua identidade, personalize os CTAs e suas cores. Garanta que o IDPay fale a mesma "língua" que seu negócio ;).
Irá seguir pelo fluxo integrado?
Crie uma transação utilizando nossas APIs;
Abra a experiência do IDPay na sua aplicação ou envie um WhatsApp para seu cliente.
Irá seguir pelo fluxo manual?
Crie uma transação direto pelo portal;
Envie o link para seu cliente pelo canal que desejar.
Pronto. Com a transação concluída, consulte o resultado da validação e tome a decisão de aprovar ou não a transação.
Para otimizar sua integração, você pode utilizar o Webhook e saber quando o resultado do seu processo estiver concluído.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará um exemplo de implementação da autenticação do produto Unico IDPay
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará os possíveis erros que podem acontecer ao tentar de autenticar no produto Unico IDPay
Os erros retornados na requisição podem ser identificados através dos códigos abaixo e possuem a seguinte estrutura:
1.0.1
Verifique se o ID informado na formação do "iss" é o ID do tenant correto, fornecido na geração da chave privada¹.
1.0.14
Verifique com o responsável pelo projeto se a aplicação utilizada está ativa.
1.1.1
Parâmetro "scope" não foi informado no payload do token jwt utilizado na requisição.
1.2.4
O token jwt utilizado na requisição está expirado. Verifique o valor informado no campo "exp" do payload.
1.2.5
O token jwt utilizado na requisição não pode ser validado. Verifique os parâmetros informados e tenha certeza de tê-lo assinado da forma correta.
1.2.6
A chave privada utilizada na assinatura do token jwt utilizado na requisição não é mais aceitável. Solicite novas credenciais para a conta utilizada.
1.2.7
O token jwt utilizado na requisição não é mais aceitável, pois já foi utilizado anteriormente. Gere um novo token para fazer uma nova requisição.
1.2.11
A conta utilizada não está ativa.
1.2.14
A conta utilizada não possui as permissões necessárias.
1.2.18
A conta utilizada foi temporariamente bloqueada por ter excedido a quantidade de tentativas inválidas de autenticação.
1.2.19
A conta utilizada não está autorizada a impersonar outra conta de usuário (remova o parâmetro "sub" do payload).
1.2.20 1.2.21
Falha na decodificação do token jwt utilizado na requisição. Utilize um novo token inserindo somente os campos especificados nas seções "Campos obrigatórios" e "Campos adicionais", obedecendo à nomenclatura, semântica e tipo de cada campo.
1.2.22
O token jwt utilizado na requisição possui campos adicionais no payload que não são permitidos. Utilize um novo token inserindo somente os campos especificados nas seções "Campos obrigatórios" e "Campos adicionais", obedecendo à nomenclatura, semântica e tipo de cada campo.
1.3.1
A conta utilizada possui restrições de IP de origem.
1.3.2
A conta utilizada possui restrições de data/hora de acesso.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas os casos de uso e formas de utilização do produto Unico IDPay
O IDPay pode ser utilizado em diversos casos de uso e nas mais variadas formas de utilização. Confira abaixo os possíveis casos de uso e suas correlações.
Web
Pré / Super Pré
SDK / Redirect
Mobile
Pré / Super Pré
Webview
Dicas para aumentar sua conversão
Deixe claro para seu cliente que o CPF do pedido deve ser o do titular do cartão;
Contextualize seu cliente que ele poderá realizar uma validação de identidade para ter seu pedido aprovado. O discurso voltado para segurança costuma ter maior conversão;
Deixa claro para seu cliente que caso ele não faça a validação de identidade, o pedido dele poderá ser recusado;
Após o usuário finalizar a validação de identidade, informe que o pedido ainda será analisado.
Web / Webmobile
Pré / Super Pré/ Pós
Mensagens (WhatsApp)
Web / Webmobile
Pós
Mensagens (WhatsApp)
Dicas para aumentar sua conversão
Contextualize seu cliente que ele poderá realizar uma validação de identidade para ter seu pedido aprovado. O discurso voltado para segurança costuma ter maior conversão;
Informe seu cliente que você utiliza um parceiro para garantir a identidade dele (preferencialmente, cite a Unico para garantir confiança nesse processo);
Deixa claro para seu cliente que caso ele não faça a validação de identidade, o pedido dele poderá ser recusado;
Envie as transações de identidade o mais próximo possível do momento compra desse cliente (isso também costuma aumentar a conversão);
Após o usuário finalizar a validação de identidade, informe que o pedido ainda será analisado.
Web / Webmobile
Pré / Super Pré / Pós
Mensagens (WhatsApp)
Web / Webmobile
Pós
Mensagens (WhatsApp)
Dicas para aumentar sua conversão
Contextualize seu cliente que ele poderá realizar uma validação de identidadepara ter seu pedido aprovado. O discurso voltado para segurança costuma ter maior conversão;
Informe seu cliente que você utiliza um parceiro para garantir a identidade dele (preferencialmente, cite a Unico para garantir confiança nesse processo);
Deixa claro para seu cliente que caso ele não faça a validação de identidade, o pedido dele poderá ser recusado;
Envie as transações de identidade o mais próximo possível do momento compra desse cliente (isso também costuma aumentar a conversão);
Após o usuário finalizar a validação de identidade, informe que o pedido ainda será analisado.
Web / Webmobile
Pré / Super Pré / Pós
Mensagens (WhatsApp)
Web / Webmobile
Pós
Mensagens (WhatsApp)
Dicas para aumentar sua conversão
Contextualize seu cliente que ele poderá realizar uma validação de identidade para ter seu pedido aprovado. O discurso voltado para segurança costuma ter maior conversão;
Informe seu cliente que você utiliza um parceiro para garantir a identidade dele (preferencialmente, cite a Unico para garantir confiança nesse processo);
Deixa claro para seu cliente que caso ele não faça a validação de identidade, o pedido dele poderá ser recusado;
Envie as transações de identidade o mais próximo possível do momento compra desse cliente (isso também costuma aumentar a conversão);
Após o usuário finalizar a validação de identidade, informe que o pedido ainda será analisado.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará tudo o que precisa saber sobre o Chargeback
Como destacado nas seções anteriores, o Unico IDPay oferece a garantia de liability, assegurando a máxima acurácia nas validações realizadas. O Chargeback da Unico protege você contra possíveis prejuízos em transações onde a identidade do titular do cartão de crédito foi validada incorretamente pelo IDPay.
Caso uma transação validada pelo IDPay resulte em um processo de chargeback oficial, devidamente formalizado junto ao adquirente ou à bandeira, o cliente do IDPay poderá ser ressarcido pela Unico no valor equivalente à transação. Essa garantia é aplicável mediante comprovação, após as devidas apurações, de que houve um erro na validação realizada pelo IDPay e que a Unico foi responsável pela decisão incorreta.
Essa segurança adicional demonstra o compromisso do Unico IDPay em oferecer confiabilidade e proteção nas operações realizadas com sua solução.
O Unico IDPay não realiza ressarcimentos em casos de autofraude, ou seja, quando o titular legítimo do cartão de crédito efetua a compra e posteriormente contesta a transação.
Quando você tiver recebido uma solicitação de chargeback por fraude e acredita que houve erro por parte do IDPay ao validar a identidade do titular do cartão de crédito.
Chargeback é o processo de apuração de uma contestação de uma compra/transação realizada com cartões de crédito/débito em plataformas online, e que poderá resultar no estorno/cancelamento desta compra/transação. O chargeback pode ser classificado em dois grandes grupos:
Chargeback por Desacordo Comercial: Quando a transação precisa ser cancelada por algum problema na relação consumidor x estabelecimento. Exemplos: Mercadoria não entregue, mercadoria com defeito, desistência da compra, compra em duplicidade, serviço não prestado, etc.
Chargeback por Fraude: Quando o titular do cartão alega não ter realizado uma compra em seu nome, se inicia então o processo de disputa entre as partes (quem fica com o prejuízo).
A análise de chargeback somente poderá ser solicitada em casos de chargeback por fraude.
A análise de chargeback somente poderá ser solicitada para transações que seguem todas as regras abaixo:
A transação deve ter sido aprovada (status approved);
A transação deve ter sido criada há menos de 90 dias;
A transação não ter sido submetida a outra análise de chargeback;
A transação deve ser do tipo "crédito".
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará toda a especificação técnica sobre a forma de autenticação para utilização das APIs REST do produto Unico IDPay
Para utilizar o IDPay é necessário se autenticar via token de acesso, utilizando o sistema de autenticação conhecido como OAuth2.
O sistema de autenticação OAuth2 da unico suporta a interação server-to-server entre uma aplicação web e os serviços da unico.
Para este cenário, você precisará de uma conta de serviço, que é uma conta impessoal que pertence à sua aplicação e não a um usuário individual. Sua aplicação chama as APIs da unico em nome da conta de serviço, portanto usuários não estão diretamente envolvidos. Este cenário é chamado “two-legged OAuth”, ou “2LO”. Tipicamente, uma aplicação utiliza uma conta de serviço quando a aplicação chama as APIs da unico para trabalhar com seus próprios dados ao invés dos dados do usuário.
Este é o passo zero para iniciar sua implementação, portanto não pule esta etapa.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Suas requisições de API são autenticadas utilizando um access-token. Qualquer requisição que não inclua um access-token válido retornará um erro.
Você pode ver mais sobre como gerar um access-token aqui.
Caso as validações realizadas decidam que não é necessário realizar a captura da biometria, a resposta de retorno terá um status diferente e não será gerado um link para a captura, como a seguir:
Para ver todos os status possíveis, consulte a seção Enumerados.
Para otimizar a performance da sua aplicação, você também pode implementar nosso Webhook para saber quando realizar a consulta do status da transação.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Aqui você encontrará as informações técnicas das APIs REST do produto Unico IDPay
Bem-vindo à documentação das APIs REST do produto Unico IDPay! Nesta página, você encontrará tudo o que precisa saber para melhorar a segurança e a qualidade dos seus aplicativos usando nossa REST API.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará como realizar a criação de uma conta de serviço para se autenticar no produto Unico IDPay
Para utilizar interações server-to-server, é preciso solicitar a criação da conta de serviço com o gerente de projetos responsável pela sua empresa enviando os seguintes dados: nome da empresa, nome da aplicação, nome, e-mail e celular do responsável pela aplicação na empresa. É preciso criar contas diferentes para os ambientes de Homologação e Produção.
Após o recebimento desses dados, será criada uma conta de serviço responsável por autenticar a sua aplicação e enviaremos um e-mail para que seja gerado o par de chaves para a conta.
Uma credencial de conta de serviço inclui um nome único de conta, um identificador da empresa (Tenant ID) e ao menos um par de chaves (pública e privada). Ao final da geração das chaves, você recebe apenas a chave privada (arquivo .key.pem), bem como o payload que deve ser utilizado para montar o JWT. Este payload terá o seguinte formato:
Caso precise da chave pública para configurar em seu sistema, contate o gerente de projetos responsável por sua conta. Também é possível gerar uma chave pública através do comando openssl a seguir:
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todas as funcionalidades do produto Unico IDPay
O Unico IDPay oferece uma ampla variedade de endpoints, módulos e funcionalidades, projetados para se adaptar a diferentes cenários e casos de uso. Abaixo, apresentamos as principais definições e aplicações de cada funcionalidade.
A primeira grande funcionalidade do IDPay é validar cada transação feita dentro do estabelecimento, a fim de garantir que a venda pode ser realizada para aquele usuário.
As transações são organizadas em diferentes módulos, cada um projetado para atender a cenários específicos e necessidades variadas. Explore os módulos disponíveis e veja como cada um pode ser aplicado ao seu caso de uso:
Este módulo realiza algumas pré-validações com os dados informados. O status retornado será: waiting ou fast-inconclusive. O link para captura biométrica só será disponibilizado caso consigamos validar o CPF/número do cartão de crédito do usuário.
Esta opção pode ser utilizada em diversos cenários, entre eles:
Quando a identificação informada (CPF, por exemplo) for do titular do cartão. Esse fluxo não permite que o usuário informe um novo CPF durante a validação e portanto caso a identificação informada não seja consistente com o titular do cartão implicará em queda na taxa de aprovação;
Quando se deseja minimizar a fricção (abertura da experiência de captura do IDPay) porém sem perder aprovação, maximizando a taxa de aprovação das transações retornadas como waiting;
Quando o IDPay estiver no topo do seu funil antifraude;
Em uma solução 100% integrada com captura via Webview ou iFrame;
Entre outros.
Este módulo realiza todas pré-validações com os dados informados. O status retornado será: waiting ou fast-inconclusive. O link para captura biométrica só será disponibilizado caso consigamos validar o CPF/número do cartão de crédito do usuário.
Esta opção pode ser utilizada em diversos cenários, entre eles:
Quando a identificação informada (CPF por exemplo) for do titular do cartão. Esse fluxo não permite que o usuário informe um novo CPF durante a validação e portanto caso a identificação informada não seja consistente com o titular do cartão implicará em queda na taxa de aprovação;
Quando se deseja minimizar a fricção (abertura da experiência de captura do IDPay) com uma pequena perda de aprovação, maximizando a taxa de aprovação das transações retornadas como waiting
Quando o IDPay estiver no topo do seu funil antifraude;
Em uma solução 100% integrada com captura via Webview ou iFrame;
Entre outros.
Este módulo não realiza nenhuma pré-validação na criação de uma transação. O status retornado sempre será waiting (aguardando) e o link sempre será disponibilizado para que o usuário faça a captura da biometria.
Esta opção pode ser utilizada em diversos cenários, entre eles:
Quando a identificação informada (CPF por exemplo) não é necessariamente do titular do cartão (esse fluxo permite que o usuário informe um novo CPF durante a experiência de captura);
Quando você deseja utilizar a experiência de captura do IDPay em todas transações;
Preferencialmente para recuperação de venda;
Entre outros.
Com esta funcionalidade, você pode realizar o onboarding do cartão de crédito dos seus usuários em sua carteira digital, garantindo que o cartão pertence ao titular correto.
O que diferencia esta funcionalidade das Transações de Pagamento são os endpoints e os parâmetros específicos da REST API, que foram desenvolvidos para atender de forma otimizada às necessidades de validação e registro de cartões na sua solução.
Continue a leitura com o link sugerido abaixo:
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
🛒 Sobre o IDPay
Inicia a leitura conhecendo mais sobre o IDPay.
🔑 Sobre a Autenticação
Veja as especificações técnicas da autenticação para utilizar as APIs do IDPay.
🔒 Sobre as APIs
Veja as especificações técnicas das APIs do IDPay.
⚙ Sobre a experiência
Veja o passo a passo para gerenciar a experiência de captura do IDPay.
Conheça tudo sobre o produto Unico IDPay
O Unico IDPay é uma solução inovadora da Unico que combina, em uma única verificação, a identificação do shopper e a validação da titularidade do cartão de crédito. Essa abordagem assegura transações mais seguras em compras não-presenciais e ajuda a recuperar vendas que poderiam ser perdidas devido a inconsistências em pagamentos.
Com o IDPay, você garante que:
O usuário está ao vivo no momento que realiza a transação;
A identidade é do titular do cartão de crédito;
O cartão de crédito pertence a pessoa que está realizando a transação no seu estabelecimento;
Com a possibilidade de habilitar o uso autorizado e validado de cartões de terceiros.
E mais: você tem garantia de liability em caso de erro na validação (consulte mais detalhes na seção "Chargeback").
O funcionamento é simples e eficiente: uma transação é criada a partir do número do cartão de crédito e do CPF do titular, e o IDPay se encarrega de realizar a autenticação dessa transação, seja através da biometria facial ou de uma autenticação com os metadados do device.
Além disso, o IDPay é altamente flexível, podendo ser ajustado para atender a diferentes cenários e necessidades. Sua plataforma oferece uma ampla gama de funcionalidades que suportam os mais variados casos de uso, tornando-o ideal para operações que exigem precisão e segurança.
Para o maior entendimento sobre o IDPay, siga a sequência sugerida no menu abaixo e explore todas as possibilidades que o produto oferece:
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todos os enumerados referentes ao produto Unico IDPay
Nesta seção, você encontrará a collection do Postman com a REST API para realizar a autenticação no produto Unico IDPay
Faça download do arquivo abaixo, importe no Postman e substitua o valor dos parâmetros "service_account", "tenant_id" e "secret_key" para testar a chamada.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
waiting
Intermediário
Aguardando análise
analyzing
Intermediário
Em processo de análise
approved
Final
Aprovado
refused
Final
Recusado
waiting
Intermediário
Aguardando envio das informações
processing
Intermediário
Em processamento
shared
Intermediário
Compartilhou a captura e estamos aguardando o envio das informações
approved
Final
Aprovado
inconclusive
Final
Não conseguimos realizar uma validação conclusiva
expired
Final
Transação expirada
skiped
Final
A pessoa pulou a captura biometrica no fluxo
unknown-share
Final
A pessoa marcou que não reconhece aquela compra
fast-inconclusive
Final
não conseguimos realizar uma validação conclusiva (pré-aprovação)
absent-holder
Final
Quando o titular não está presente para fazer a captura
canceled
Final
Quando uma transação foi cancelada manualmente
Nesta seção, você encontrará todos as especificações técnicas das REST APIs do produto IDPay para gerenciar transações de pagamento
Suas requisições de API são autenticadas utilizando um access-token. Qualquer requisição que não inclua um access-token válido retornará um erro.
Você pode ver mais sobre como gerar um access-token aqui.
O campo orderNumber deve ser preenchido com o número de pedido ÚNICO daquela compra no e-commerce, sendo errado o envio de um ID distinto transacional.
É importante ter atenção com relação a este campo, pois pode impactar negativamente na experiência do usuário no fluxo final, ocasionando problemas no uso do produto.
Como possíveis impactos podemos citar:
Baixa conversão:
O número do pedido é usado para ajudar o usuário final a realizar a conclusão do fluxo;
Erros na API:
É possível que você receba erros como: replicated transaction
caso seja usado o mesmo número do pedido, bin e last4¹.
¹ Caso a empresa esteja configurada para reaproveitar transações com mesmos dados, confira a seção Reaproveitamento de transações.
Caso as validações realizadas decidam que não é necessário realizar a captura da biometria, a resposta de retorno terá um status diferente e não será gerado um link para a captura, como a seguir:
Este cenário acontecerá caso utilize os módulos Pré ou Super Pré, para os casos onde utiliza o IDPay no Checkout, conforme especificado na seção Funcionalidades.
É possível configurar a empresa para reaproveitar transações que possuam os mesmos dados, evitando erros de replicated transaction
. O reaproveitamento acontecerá nas seguintes condições:
Uma transação está sendo criada com o mesmo orderNumber, identity.key, identity.value, company, card.binDigits, card.lastDigits e value de uma transação já anteriormente criada;
A transação anterior ainda não ultrapassou o tempo de expiração configurado na empresa.
Se a transação a ser criada e a transação anterior NÃO respeitem estas condições, uma nova transação será criada. Caso contrário, estas serão as respostas possíveis:
Caso a transação anterior esteja em um status final, como approved
ou inconclusive
:
Caso a transação anterior ainda esteja em um status inicial, como waiting
ou shared
:
Neste último caso, a transação ainda em um status inicial terá sua data de expiração recalculada, tendo como base a data desta requisição.
Para ver todos os status possíveis, consulte a seção Enumerados.
Para otimizar a performance da sua aplicação, você também pode implementar nosso Webhook para saber quando realizar a consulta do status da transação. Veja mais na seção Webhook.
Só é possível gerar o conjunto probatório de transações aprovadas.
O link retornado para conjunto probatório tem validade de cinco minutos após a obtenção. Então é importante que esse link não seja salvo, e sim usado para efetuar o download do conjunto probatório.
Também é possível configurar o reenvio de notificações através do portal, sem a necessidade de implementar via API. Para entender as possibilidades, fale com o responsável pelo seu projeto.
Para que seja possível cancelar uma transação, ela deve estar no status inicial (waiting
).
Para ver todos os status possíveis, consulte a seção Enumerados.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará como implementar a webview no iOS utilizando o ASWebAuthenticationSession
Para o cenário de uso em iOS, o uso da ASWebAuthenticationSession é uma das maneiras recomendadas.
Após criar a transação e obter o link da transação, a seguinte implementação é recomendada:
Em seu fluxo comum (que está inserido o IDPay), você irá abrir a ASWebAuthenticationSession com o link gerado via API;
Você poderá customizar essa abertura da maneira que for o ideal para seu aplicativo;
Irá monitorar se houve alteração de URL (para a redirectUrl) e então feche a página;
Para fazer o fluxo funcionar é necessário seguir os seguintes passos:
O primeiro passo que você deve realizar é criar o controlador de autenticação de pagamentos, para isso crie uma classe chamada IDPayAuthenticationController
(ou como preferir chamar).
Na sequência, importe o framework AuthenticationServices
no topo da classe.
Declare a classe como NSObject
e implemente o protocolo ASWebAuthenticationPresentationContextProviding
.
O resultado deve ser:
Abra o arquivo onde você irá realizar a autenticação e adicione as importações necessárias (em nosso exemplo estamos fazendo no ContentView.swift
).
Para controlar o estado da autenticação criaremos uma propriedade @State
.
Crie uma instância da classe IDPayAuthenticationController
fora do corpo da estrutura ContentView
.
Para realizar a validação do pagamento crie uma função chamada authenticatePayment.
Lembre-se de alterar a url URL_AUTHENTICATION
para a URL de autenticação recebida em sua transação e também o callbackURLScheme BUNDLE
para o redirect informado na criação de sua transação (recomendamos o uso do Bundle Identifier de seu aplicativo).
É importante setar prefersEphemeralWebBrowserSession
para true
para garantir uma autenticação única por transação.
Exemplo de como deverá ficar no app:
É necessário algumas permissões para funcionar corretamente, tais como:
Câmera;
Geolocalização.
Para saber mais sobre, recomendamos uma leitura nos seguintes artigos e documentações:
Para acessar a documentação oficial, clique aqui.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará a visão geral sobre os erros que pode receber nos endpoints do produto Unico IDPay
O Unico IDPay utiliza códigos de resposta HTTP convencionais para indicar o sucesso ou falha de uma solicitação de API.
Como regra geral:
Códigos no intervalo 2xx
indicam sucesso na requisição;
Códigos no intervalo 4xx
indicam parâmetros incorretos ou incompletos (por exemplo, um parâmetro obrigatório foi omitido ou uma operação falhou com terceiros, etc.);
Códigos no intervalo 5xx
indicam que houve um erro nos servidores do produto Unico IDPay.
O Unico IDPay também gera uma mensagem de erro e um código de erro formatado em JSON:
Neste tópico, você encontrará os possíveis erros dos endpoints, separados por seu HTTP response.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará uma visão geral sobre o funcionamento do SDK do produto Unico IDPay
O Unico IDPay oferece uma integração simples e rápida. Atualmente trabalhamos utilizando como padrão de integração em aplicativos (mobiles ou web) através do uso de Webview, SDK e Redirect. Esse padrão potencializa a segurança do seu negócio e dos seus clientes, assim abstraindo a complexidade de manipulação da câmera do dispositivo dos usuários e a captura da selfie.
Em nossa REST API, oferemos os métodos para geração de link de integração que podem ser abertos e controlados pelos aplicativos.
Antes de avançar para os detalhes de integração no seu aplicativo ou website, é fundamental iniciar pela integração com a nossa API. Nesse processo, dois pontos principais serão utilizados:
Criar Transação (CreateTransaction)
Certifique-se de preencher o campo redirectUrl, que será essencial para o fluxo da integração.
Após essa etapa inicial, você estará pronto para prosseguir com a integração no aplicativo ou website.
É importante lembrar que, ao finalizar todo o fluxo, será necessário obter o resultado da transação por meio da nossa API para garantir o encerramento correto do processo.
Você pode utilizar a API em um ambiente de homologação para testar as funcionalidades evitando afetar seu entorno produtivo.
Nesta seção, você encontrará informações sobre o funcionamento do Webhook do produto Unico IDPay
Os artigos GetProcess desta documentação descrevem uma maneira de obter o status de um processo através de uma chamada a um endpoint. Dessa forma, é realizado um polling para receber informações sobre os processos criados. Isso significa que o endpoint pode ser chamado diversas vezes para um mesmo processo para se obter o status mais recente.
Com o uso de webhooks é possível notificar um endpoint específico toda vez que o status de um processo for alterado.
Webhook é um serviço de notificação sistêmica que permite a integração assíncrona entre sistemas, onde um sistema notifica o outro através de um gatilho. Assim, os webhooks podem manter sistemas atualizados com informações mais recentes sem ser necessária a verificação constante por atualizações através de polling.
Para configurar o webhook, são necessárias as seguintes informações:
URL de notificação: É o endpoint usado pelo By Unico para as notificações sobre as atualizações de status.
Tipo de autenticação: É o método de autenticação usado para invocar o endpoint. As seguintes opções estão disponíveis:
Basic Authorization;
API Key;
Sem autenticação.
Secret: Indica um segredo usado para a autenticação. O secret só é necessário quando o tipo de autenticação for Basic Authorization e API Key:
Para o Basic Authentication é preciso enviar no formato user:pass
.
Para API Key, é possível enviar em dois formatos:
header:value
, quando é desejado que o header tenha um nome específico;
value
: quando o header desejado é o Authorization
Configurações de retentativas: Indica o número de tentativas para o caso de falha na chamada ao endpoint:
Número máximo de tentativas;
Intervalo entre tentativas (em segundos);
Rate limit: Limite máximo de envios simultâneos (máximo: 500);
Timeout: Tempo máximo de espera para a resposta do endpoint (em segundos).
Status a serem notificados: É possível se inscrever em status específicos para receber as notificações. São eles:
approved
: Transação aprovada;
processing
: Transação em processamento;
inconclusive
: Não conseguimos realizar uma validação conclusiva;
shared
: Transação compartilhada, aguardando envio;
skiped
: A pessoa pulou a captura biométrica no fluxo;
unknown-share
: A pessoa marcou que não reconhece aquela compra;
absent-holder
: O titular do cartão não está presente para realizar a captura;
expired
: A pessoa não realizou a captura dentro do tempo estabelecido e a transação foi expirada.
Sobre a autenticação:
A API pode ser protegida por um método de autenticação como Basic Authentication ou API Key. Uma lista de IPs válidos para acesso também pode ser definida para proteção complementar.
Ao configurar um webhook na plataforma, você pode obter informações sobre os processos através de notificações enviadas para um endpoint da API desenvolvida por você para receber essas atualizações.
As informações enviadas pela plataforma para a API são:
ID
: ID da transação;
status
: Status da transação;
Note que é possível escolher os status que o cliente deseja ser notificado, através da configuração do webhook. Após o envio dessas informações, a resposta esperada deverá ser síncrona.
A requisição deve ser um método POST em uma API REST tornando mais fácil e seguro o envio das informações. Todos os campos devem ser obrigatórios. O corpo da requisição deve aceitar o ID da transação e o estado, como mostrado no exemplo a seguir:
A resposta deve vir de forma síncrona. O status para requisições bem sucedidas deverá estar no intervalo de 200 a 299. Qualquer outro status será considerado como falha e o IDPay irá realizar novas tentativas de notificações (com exponential backoff entre elas), até receber uma resposta 2xx ou até atingir o número máximo de tentativas.
Atualmente temos um conjunto de status, porém esse conjunto pode variar no futuro. Então é recomendado deixar configurável os status que o cliente tem interesse para tomar alguma ação. Por exemplo, se há o desejo de tomar uma ação toda vez que uma captura é realizada com sucesso, atualmente isso ocorre com o status processing, porém como isso pode ser modificado no futuro, é recomendado que o status que indica que a captura foi realizada com sucesso seja uma configuração no sistema, de modo que uma alteração no futuro para o status de captured seja facilmente realizada.
Além disso, recomendamos ter ações específicas para status específicos, e uma ação geral caso o status não seja reconhecido (por exemplo assumir que tudo que for diferente de processing e approved é inconclusivo). isso é importante, pois novos status podem surgir no futuro e não é esperado que o webhook quebre em função disso.
Atente-se aos seguintes aspectos ao desenvolver API que o IDPay irá utilizar para notificar as mudanças de status:
Nesta seção, você encontrará como realizar o processo de autenticação no produto Unico IDPay
Após a criação e configuração de uma conta de serviço, sua aplicação precisa completar as seguintes etapas:
Criar um JSON Web Token (JWT), que inclui cabeçalho, payload e assinatura;
Requisitar um token de acesso (AccessToken) da plataforma de autenticação OAuth2;
Tratar a resposta JSON que a plataforma de autenticação retornará.
Se na resposta estiver incluso um token de acesso, você poderá usá-lo para fazer requisições às APIs dos produtos da unico para os quais a conta de serviço possui permissão de acesso. (Se na resposta não estiver incluso um token de acesso, seu JWT e requisição de obtenção do token podem estar incorretos ou a conta de serviço pode não ter as permissões necessárias para acessar os recursos solicitados.)
O token de acesso gerado na requisição mencionada acima tem validade padrão de 3600 segundos, podendo variar de acordo com a configuração de segurança estabelecida para sua empresa. Quando o token de acesso expirar, sua aplicação deverá gerar um novo JWT, fazer a assinatura e requisitar um novo token de acesso na plataforma de autenticação.
Um JWT é composto por três partes: um cabeçalho, um payload e uma assinatura. O cabeçalho e o payload são objetos JSON. Esses objetos JSON são serializados em UTF-8 e então codificados usando codificação Base64url¹. Esta codificação provê resliência contra alterações de codificação em casos de repetidas operações de codificação. O cabeçalho, o payload e a assinatura são concatenadas com um caractere de ponto final ..
Um JWT é composto da seguinte forma:
O texto base para a assinatura é composto pela seguinte forma:
O cabeçalho consiste em dois campos que indicam o algorítimo de assinatura e o formato do token. Ambos os campos são obrigatórios e cada campo possui apenas um valor. Contas de serviço dependem do algorítimo RSA SHA-256 e do formato de token JWT. Como resultado, a representação JSON do cabeçalho se dá da seguinte forma:
A representação em Base64url se dá da seguinte forma:
O payload JWT contém informações sobre o JWT, incluindo as permissões sendo requisitadas (scopes), a conta solicitando acesso, o emissor, o momento em que o token foi emitido e o tempo de vida do token. A maioria dos campos são obrigatórios. Assim como o cabeçalho JWT, o payload é um objeto JSON e é usado na composição da assinatura.
Os campos obrigatórios no JWT são mostrados na tabela abaixo. Eles podem aparecer em qualquer ordem dentro do payload.
iss
O identificador da conta de serviço na empresa.
scope
Uma lista delimitada por espaços ou pelo sinal de positivo +
das permissões que a aplicação está requisitando. Se todas as permissões da conta forem necessárias, utilizar o sinal de asterisco *
para tal.
aud
exp
O tempo de expiração do token, especificado em segundos desde 00:00:00 UTC, 1 de Janeiro de 1970. Este valor tem um tempo máximo de 1 hora após o momento da emissão do JWT. Este valor deve ser numérico. Casos recorrentes que NÃO funcionam: - Uso de aspas na delimitação do valor. Ex.: “1524161193” é uma string e não funcionará. Já 1524161193 é um número e funcionará.
iat
O momento da emissão do JWT, especificado em segundos desde 00:00:00 UTC, 1 de Janeiro de 1970. Este valor deve ser numérico. - Uso de aspas na delimitação do valor. Ex.: “1524161193” é uma string e não funcionará. Já 1524161193 é um número e funcionará.
Entenda como funciona a conversão para os campos de emissão (iat) e expiração (exp) do jwt, e veja também exemplos de utilização dos valores dos campos aqui. Além disso, o campo “iat” deve ser o horário atual no formato exigido e o “exp” deve respeitar a conta abaixo:
A representação dos campos JSON obrigatórios no payload do JWT se dá da seguinte forma:
A especificação JSON Web Signature (JWS)² é a mecânica que guia o cálculo da assinatura para um JWT. O conteúdo de entrada para o cálculo da assinatura é o byte array do seguinte conteúdo:
O mesmo algoritmo sinalizado no cabeçalho do JWT precisa ser utilizado para o cálculo da assinatura. O único algorítimo de assinatura suportado pela plataforma de autenticação OAuth2 é o RSA usando SHA-256. Ele é expressado como RS256 no campo alg do cabeçaho do JWT.
Assine a representação UTF-8 do conteúdo de entrada utilizando SHA256withRSA (também conhecido como RSASSA-PKCS1-V1_5-SIGN com o hash SHA-256) com a chave privada que foi criada e associada à conta de serviço (arquivo .key.pem gerado pela solicitação recebida por e-mail). O conteúdo de saída será um byte array.
A assinatura precisará ser então codificada em Base64url. O cabeçalho, o payload e a assinatura deverão ser concatenadas com o caractere de ponto final .
. O resultado é o JWT. Ele deve ser da seguinte forma:
A seguir está um exemplo de token JWT antes da codificação em Base64url:
Abaixo está um exemplo do JWT que foi assinado e está pronto para transmissão:
Também é possível utilizar bibliotecas previamente estabelecidas para realizar a criação do JWT. Como referência, é possível encontrar uma lista de bibliotecas no site jwt.io.
Após a geração do JWT assinado, uma aplicação pode utilizá-lo para requisitar um token de acesso (Access Token). A requisição do token de acesso é uma requisição POST HTTPS e o corpo deve ser URL encoded. A URL é a mostrada abaixo:
Os parâmetros abaixo são obrigatórios na requisição POST HTTPS:
grant_type
Utilize o seguinte texto, URL-encoded se necessário: urn:ietf:params:oauth:grant-type:jwt-bearer
assertion
O JWT, incluindo a assinatura.
Se o JWT e a requisição do token de acesso foram formados apropriadamente e a conta de serviço tem as permissões necessárias, então a resposta da plataforma de autenticação retorna um objeto JSON contendo um token de acesso. Segue um exemplo de resposta da plataforma:
O token de acesso retornado no campo “acess_token” do objeto JSON também é um token JWT que deverá ser utilizado nas APIs dos Produtos da unico. Caso retorne um erro na requisição, é possível consultar o tipo do erro na tabela de erros clicando aqui.
A duração do token de acesso é variável. Sua duração é especificada no campo “expires_in”, retornado juntamente com o token de acesso. Deve-se utilizar o mesmo token de acesso durante a sua validade para todas as chamdas às APIs dos produtos.
Não solicite um novo token de acesso até que a validade do token atual esteja chegando ao fim. Sugerimos uma margem de 600 segundos (10 minutos). Para isso execute o cálculo:
Sendo que token.exp é o timestamp da expiração do token.
Por padrão, o token enviado para a empresa tem duração de 1h, mas pode ser alterado. A sugestão é sempre usar o expires_in como base e subtrair 600s dele para pedir um novo token.
Exemplos:
Um novo token de acesso pode ser solicitado quando faltar 10 minutos pra expirar.
Não utilize um tempo fixo para a obtenção de um novo token, pois o tempo de duração do token recebido pode ser menor que o tempo estabelecido, o que ocasionará falha na utilização dos serviços.
¹ De acordo com o RFC 4648 de codificação BaseN, o formato Base64url é similar ao formato Base64, com exceção do caracter = que deve ser omitido, e dos caracteres + e / que devem ser substituídospor - e _, respectivamente.
² JSON Web Signature: https://tools.ietf.org/html/rfc7515.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará todos os requisitos para utilizar o produto Unico IDPay
Para utilizar o produto Unico IDPay existem alguns pré-requisitos, sendo eles:
iOS: A partir da versão 11.0 (caso aberto em webview iOS 13);
Android: A partir da versão 5.1 (caso aberto em webview Android 8);
Desktop: Sem requisitos de versão ou SO.
O frame de captura disponibilizado por meio do SDK, é compatível com as seguintes combinações de browsers e sistemas operacionais:
De forma geral, o SDK da suporte a WebRTC e versões mais recentes dos browsers listados acima. Por questões de compatibilidade e segurança, o funcionamento em versões muito antigas destes browsers não é garantido.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Nesta seção, você encontrará como implementar o SDK da Unico na sua aplicação web para uso do produto Unico IDPay
Para o cenário de uso em Web, o uso do SDK da Unico é o recomendado, pelos seguintes motivos:
Maior segurança;
Experiência integrada ao seu fluxo;
Taxa maior de conversão quando usado o SDK;
Facilidade na implementação.
O uso de integrações que não estejam em conformidade com os padrões estabelecidos nesta documentação pode resultar em interrupções inesperadas no funcionamento do sistema, as quais não serão cobertas ou suportadas pelo IDPay.
Ex: Implementar o iFrame do by Unico dentro de uma webview, implementar o iFrame através de uma tag de HTML, etc.
Para utilizar o IDPay por meio do SDK do Unico IDPay, o primeiro passo é cadastrar os domínios que serão utilizados como host para exibir a experiência da jornada do usuário.
Sinalize o responsável pelo seu projeto de integração ou o time de suporte da Unico para realizar essa configuração.
Para iniciar o uso do SDK, devemos iniciar com a instalação da SDK web da Unico:
Esse método permite que o SDK seja inicializado, independentemente de um ID de transação, fazendo com que a experiência do usuário final seja mais fluida. Uma vez que quando o ID da transação e o token estiverem disponíveis, a aplicação já tenha sido pré-carregada através desse método. Se esse método não for chamado diretamente pela aplicação, o usuário final terá um carregamento longo na primeira abertura do SDK.
options
Recebe um objeto com propriedades de configuração:
type
O tipo de fluxo que será inicializado. Hoje, disponibilizamos dois tipos de fluxos (REDIRECT e IFRAME). Para novas aplicações, recomendamos o uso do tipo IFRAME, tornando a experiência para o usuário final muito mais fluida e com menos fricção, já que não será necessário sair da tela de checkout, e o carregamento da experiência poderá ser realizado previamente.
Esse método realiza a abertura da experiência do IDPay de acordo com o fluxo escolhido previamente, na função de inicialização. Para o fluxo do tipo REDIRECT, essa função faz um simples redirecionamento para a rota do fluxo de captura do IDPay. Para o fluxo do tipo IFRAME, essa função exibe o iframe já pré-carregado, e inicia o fluxo de mensageria entre a página do cliente e a experiência do IDPay.
options
Recebe um objeto com propriedades de configuração:
transactionId
Recebe o ID da transação criada. Esse ID é importante para conseguirmos obter os detalhes da transação e realizarmos todo o fluxo da maneira correta (pode ser obtido na criação da transação via API).
token
Recebe o token da transação criada. Esse token é importante para conseguirmos autenticar a transação e garantir que somente domínios autorizados utilizem-na (pode ser obtido na criação da transação via API).
opcional onFinish(transaction, type)
Recebe uma função de callback que será executada no término do fluxo de captura do IDPay, passando dois argumentos:
O objeto da transação com os seguintes dados: { captureConcluded, concluded, id }
O tipo da resposta que pode ser FINISH, para casos onde o fluxo foi finalizado com sucesso, ou ERROR, para casos onde o fluxo foi interrompido por um erro¹.
[1] em casos de erro no fluxo, a transação não terá seu status alterado e um callback via webhook, caso configurado, não será realizado.
Após uma análise cuidadosa das necessidades e desafios que enfrentamos, decidimos adotar uma solução baseada em iFrames com tokens de autenticação ao invés de implementar uma política de Content Security Policy (CSP). Essa escolha foi motivada por diversas considerações relacionadas à segurança e à flexibilidade necessárias para atender às demandas dos nossos clientes.
Os domínios dinâmicos representam um risco substancial para a segurança ao usar CSP. Quando um cliente possui domínios que mudam com frequência ou são criados dinamicamente, seria necessário atualizar constantemente a política CSP para incluir esses novos domínios. Isso não só aumenta o esforço de manutenção, mas também expõe os domínios aos quais a política CSP se aplica. Cada domínio adicionado à política CSP é potencialmente um ponto de vulnerabilidade se não for adequadamente gerenciado.
Para mitigar esses riscos e atender à flexibilidade exigida pelos nossos clientes, optamos por utilizar iframes combinados com tokens de autenticação. Esta solução oferece uma camada adicional de segurança e evita a necessidade de expor ou gerenciar uma lista extensa e dinâmica de domínios.
Autenticação Segura: Cada iframe é carregado com um token de autenticação exclusivo para cada transação, garantindo que apenas usuários autorizados possam acessar o conteúdo. Esse token é verificado em tempo real, proporcionando uma camada adicional de segurança e controle.
Isolamento de Conteúdo: O uso de iframes permite isolar o conteúdo em um contexto separado, reduzindo o risco de interferência entre diferentes origens e mitigando potenciais ataques.
Flexibilidade para Domínios Dinâmicos: Ao não depender de uma política CSP estática, nossa solução se adapta facilmente aos domínios dinâmicos dos clientes, sem a necessidade de atualização constante das políticas de segurança.
Suas requisições de API são autenticadas utilizando um access-token. Qualquer requisição que não inclua um access-token válido retornará um erro.
Você pode ver mais sobre como gerar um access-token .
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Endereço da plataforma de autenticação que faz a emissão de tokens de acesso. Este valor deverá ser sempre e exatamente Casos recorrentes que NÃO funcionam: - Inserção de uma barra ao final do endereço: - Uso do protocolo HTTP ao invés de HTTPS:
O Content Security Policy (CSP) é uma ferramenta poderosa para proteger aplicações web contra diversos tipos de ataques, como Cross-Site Scripting (XSS) e injeção de código. No entanto, ao configurar uma política CSP, é necessário definir uma lista rígida de domínios confiáveis. Essa abordagem é eficaz quando os domínios são fixos e previsíveis. No entanto, para nossos clientes, que frequentemente utilizam domínios dinâmicos e variáveis, essa configuração rígida apresenta desafios significativos.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Para ver todos os status possíveis, consulte a seção .
Para otimizar a performance da sua aplicação, você também pode implementar nosso para saber quando realizar a consulta do status do Chargeback.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
Nesta seção, você encontrará como implementar o Redirect na sua aplicação web para uso do produto Unico IDPay
Esta forma de controlar a experiência web está sendo depreciada. Para uma melhor conversão do IDPay na sua aplicação, siga o método explicitado na seção "SDK".
A versão web existe a opção de usar o modelo de redirect, porém o modelo de iFrame é o mais recomendado.
window.open()
Ao criar a transação foi passado por parâmetro o campo redirectUrl que será utilizado posteriormente, você poderá utilizar essa opção.
A opção do window.open()
consiste em abrir uma nova aba do navegador do usuário para que o mesmo faça o fluxo de captura, e ao final essa aba seja fechada e redirecionada para o site que estava anteriormente. Para isso recomendamos:
Seguir a documentação publica sobre isso, que se encontra aqui;
Que monitore se houve alteração de URL (para a redirectUrl) e então feche a aba utilizando window.close()
.
Ao criar a transação foi passado por parâmetro o campo redirectUrl que será utilizado posteriormente, você precisará seguir os passos:
Em seu fluxo comum (que está inserido o IDPay) você irá redirecionar o cliente para o link gerado via API;
Após isso o cliente de dentro da webpage do IDPay irá realizar os procedimentos necessários para continuar o fluxo;
Quando concluído, ele será redirecionado novamente para a sua página (utilizando o redirectUrl passado na criação da transação).
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
400
40001
error decoding json
Os dados enviados não condizem com o contrato do serviço
400
40002
error validating json
Alguma informação está mal formatada ou não foi preenchida
400
40004
transaction id is invalid
O id da transação é inválido (formato)
403
40301
not allowed
O usuário não tem permissão para fazer tal ação
404
40401
transaction not found
A transação não foi encontrada
500
50001
internal error
Falha interna no serviço
Nesta seção, você encontrará como implementar a webview no Android para uso do produto Unico IDPay
Para o cenário de uso em Android, o uso de Webview é recomendado.
Após criar a transação e obter o link da transação, a seguinte implementação é recomendada:
Em seu fluxo comum (que está inserido o IDPay), você irá abrir a Webview com o link gerado via API;
Você poderá customizar essa abertura da maneira que for o ideal para seu aplicativo;
Irá monitorar se houve alteração de URL (para a redirectUrl) e então feche a Webview;
Para abrir uma Webview é bem simples:
Para controlar quando é necessário fechar o Webview pode ser feito da seguinte maneira:
Para isso é necessário habilitar permissões na Android Manifest:
Exemplo de como deverá ficar no app:
É necessário algumas permissões para funcionar corretamente, tais como:
Câmera;
Geolocalização.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Nesta seção, você encontrará como implementar a webview no Flutter para uso do produto Unico IDPay
Para o cenário de uso utilizando Flutter, o uso da inappwebview é recomendado.
Após criar a transação e obter o link da transação, a seguinte implementação é recomendada:
Em seu fluxo comum (que está inserido o IDPay), você irá abrir a inappwebview com o link gerado via API;
Você poderá customizar essa abertura da maneira que for o ideal para seu aplicativo;
Irá monitorar se houve alteração de URL (para a redirectUrl) e então feche a inappwebview;
Para abrir uma inappwebview e controlar a alteração de URL pode ser feito da seguinte forma:
Para obter permissão de câmera é possível fazer da seguinte forma:
Exemplo de como deverá ficar no app:
É necessário algumas permissões para funcionar corretamente, tais como:
Câmera;
Geolocalização.
Para saber mais sobre, recomendamos uma leitura nos seguintes artigos e documentações:
Para acessar a documentação oficial, clique aqui.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
Windows (desktop)
N/A
N/A
Android
N/A
iOS
N/A
MacOS (desktop)
N/A
Nesta seção, você encontrará como implementar a webview no iOS utilizando o WKWebView
Para o cenário de uso em iOS, o uso do WKWebView é uma das maneiras recomendadas.
Após criar a transação e obter o link da transação, a seguinte implementação é recomendada:
Em seu fluxo comum (que está inserido o IDPay), você irá abrir a WKWebView com o link gerado via API;
Você poderá customizar essa abertura da maneira que for o ideal para seu aplicativo;
Irá monitorar se houve alteração de URL (para a redirectUrl) e então feche a WKWebView;
Para abrir uma WKWebView é bem simples:
Para controlar quando é necessário fechar o WKWebView pode ser feito da seguinte maneira:
Exemplo de como deverá ficar no app:
É necessário algumas permissões para funcionar corretamente, tais como:
Câmera;
Geolocalização.
Para saber mais sobre, recomendamos uma leitura nos seguintes artigos e documentações:
Para acessar a documentação oficial, clique .
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da .
400
40001
error decoding json
Os dados enviados não condizem com o contrato do serviço
400
40002
error validating json
Alguma informação está mal formatada ou não foi preenchida
400
40004
transaction id is invalid
O id da transação é inválido (formato)
400
40009
transaction status is invalid
O status da transação não permite o reenvio de notificação (já está concluído)
400
40021
invalid phone
O telefone informado é inválido, deve seguir o padrão: 55 DDD NUMERO. Ex: 5543999999999
400
40022
invalid email
O e-mail informado é inválido
403
40301
not allowed
O usuário não tem permissão para fazer tal ação
404
40401
transaction not found
A transação não foi encontrada
429
40001
too many requests
Ratelimit atingido
500
50001
internal error
Falha interna no serviço
400
40004
transaction id is invalid
O ID da transação é inválido (formato)
400
40009
transaction status is invalid
O status da transação não permite o cancelamento
403
40301
not allowed
O usuário não tem permissão para fazer tal ação
404
40401
transaction not found
A transação não foi encontrada
500
50001
internal error
Falha interna no serviço
Endpoint para consultar o status atual de uma transação específica.
ID da transação a ser consultada.
"6ab1771e-dfab-4e47-8316-2452268e5481"
Access-token válido. O valor deve ser enviado no formato Bearer {token}".
Consulta realizada com sucesso.
Status atual da transação.
"processing"
Endpoint para validar cartão de crédito.
Access-token válido. O valor deve ser enviado no formato Bearer {token}".
Dados de identificação do usuário.
Tipo de chave de identificação do usuário.
"cpf"
Valor da chave de identificação do usuário.
"12345678909"
Número do pedido associado à transação. É o dado que será utilizado como indexador no portal e você pode utilizar como forma de associação (foreign key) entre seu sistema e o IDPay.
123456
ID da empresa responsável pela transação. Este campo é fornecido pela Unico.
"7873959b-f7b2-4b81-8b0e-4ce178e64daf"
URL para onde o usuário será redirecionado após finalizar a transação. Valores possíveis são: Uma URL HTTPS para redirecionar páginas web ou uma URL Schema para redirecionamento em aplicações móveis nativas.
"https://exemplo.com/redirect"
Informações do cartão utilizado na transação.
6 ou 8 primeiros dígitos do cartão.
"12345678"
Últimos 4 dígitos do cartão.
"7890"
Data de validade do cartão.
"12/24"
Nome do titular do cartão. O campo name deve ser enviado o nome correto e tomar cuidado com problemas de encode, valores incorretos e/ou inválidos podem ocasionar problemas com aprovação no fluxo. Já que esse dado é utilizado na experiência e na comunicação com o usuário final.
"João da Silva"
Telefone para notificação. O parâmetro é opcional. Caso enviado, será utilizada para notificação via WhatsApp.
"+5511999999999"
E-mail para notificação. O parâmetro é opcional. Caso enviado, será utilizada para notificação via e-mail.
"usuario@exemplo.com"
Transação criada com sucesso.
ID da transação criada.
"6ab1771e-dfab-4e47-8316-2452268e5481"
Status atual da transação.
"waiting"
Link relacionado à transação.
"https://aces.so/teste"
Token assinado que contém os parâmetros necessários para inicializar o SDK web do Unico IDPay.
"eyJhbGciOiJIUzI1NiIsInR5cC[...]Ok6yJV_adQssw5c"
Endpoint para criar uma nova transação.
Access-token válido. O valor deve ser enviado no formato Bearer {token}".
Dados de identificação do usuário.
Tipo de chave de identificação do usuário.
"cpf"
Valor da chave de identificação do usuário. Deve ser enviado sem pontos ou traços.
"CPF_DO_USUARIO"
Número do pedido associado à transação. É o dado que será utilizado como indexador no portal e você pode utilizar como forma de associação (foreign key) entre seu sistema e o IDPay.
"123456"
ID da empresa responsável pela transação. Este campo é fornecido pela Unico.
"f44f02e5-320e-497b-b346-8cf19b3ee2a4"
URL para onde o usuário será redirecionado após a finalizar a transação. Valores possíveis são: Uma URL https para redirecionar páginas web ou uma URL Schema para redirecionamento em aplicações móveis nativas.
"https://exemplo.com/redirect"
Informações do cartão utilizado na transação.
6 ou 8 primeiros dígitos do cartão.
"12345678"
Últimos 4 dígitos do cartão.
"7890"
Data de validade do cartão.
"12/24"
Nome do titular do cartão. O campo name deve ser enviado o nome correto e tomar cuidado com problemas de encode, valores incorretos e/ou inválidos podem ocasionar problemas com aprovação no fluxo. Já que esse dado é utilizado na experiência e na comunicação com o usuário final.
"João da Silva"
Valor total da compra.
100.5
Telefone para notificação. O parâmetro é opcional e caso envie o telefone na criação da transação, enviaremos uma notificação para o usuário via WhatsApp.
"5511998551010"
E-mail para notificação. O parâmetro é opcional e caso envie o telefone na criação da transação, enviaremos uma notificação para o usuário via E-mail.
"usuario@exemplo.com"
Comportamento de captura definido para a transação. Temos as seguintes opções: 'biometric': O modelo de autenticação de identidade utilizado é apenas a biometria, para fluxos onde queremos sempre ter a captura biometrica. 'silent': O modelo de autenticação de identidade utilizado é silencioso, validando apenas metadados do dispositivo nesse caso, para fluxos onde não queremos fricção nenhuma (a taxa de aprovação é baixa). 'adaptive': É um híbrido entre as duas acima, se utiliza da validação adaptativa e da biometria. É fluxo com uma menor fricção, segurança e melhor taxa de aprovação (padrão).
"biometric"
Informações adicionais sobre a transação. Atualmente é possível enviar como informação adicional: Seller: Informações sobre o seller daquela transação. Pode ser enviado a identificação daquele seller (cpf ou cnpj).
Informações do vendedor.
Tipo de chave de identificação do vendedor.
"cpf"
Valor da chave de identificação do vendedor.
"12345678909"
Transação criada com sucesso.
ID da transação criada.
"6ab1771e-dfab-4e47-8316-2452268e5481"
Status atual da transação.
"waiting"
Link relacionado à transação.
"https://aces.so/teste"
Token assinado que contém os parâmetros necessários para inicializar o SDK web do Unico IDPay.
"eyJhbGciOiJIUzI1NiIsInR5cC[...]Ok6yJV_adQssw5c"
Nesta seção, você encontrará todas as personalizações disponíveis no produto Unico IDPay
É possível personalizar a logo que é apresentada para o usuário final, conforma imagem abaixo:
Para solicitar a inclusão desta logo, é necessário enviar ao time Unico uma imagem no formato .PNG no tamanho de 56x56px.
Ao longo do processo de implantação, é possível solicitar a configuração da cor e formato dos botões na interface no IDPay, de acordo com a identidade visual da empresa, conforme imagens abaixo:
Para realizar essa configuração, é só enviar as seguintes informações ao time Unico:
Código hexadecimal da cor de background no botão.
Ex: #000000.
Código hexadecimal da cor de texto no botão.
Ex: #ffffff.
Arredondamento dos cantos no botão em pixels.
Ex: 10px.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
400
40004
transaction id is invalid
O id da transação é inválido (formato)
400
40009
transaction status is invalid
O status da transação é inválido (não permitido para geração do conjunto probatório)
403
40301
not allowed
O usuário não tem permissão para fazer tal ação
404
40401
transaction not found
A transação não foi encontrada
500
50001
internal error
Falha interna no serviço
Sabemos que uma validação biométrica feita por um fornecedor pode gerar dúvidas e fricção no seu usuário final, portanto é importante trazer a transparência deste processo e dar o suporte adequado para você tenha bons números na sua operação. Abaixo você encontrará uma série de dicas que pode auxiliá-lo nesta comunicação:
Comunicar que uma empresa parceira (preferencialmente citar a Unico) poderá entrar em contato através de SMS, E-mail ou Whatsapp solicitando uma foto do rosto para validação de biometria facial;
Informar que, em alguns casos, ela deverá confirmar o número de CPF, que é utilizado para identificação da identidade digital do titular do cartão de crédito;
Explicar que a validação de identidade é específica do titular do cartão de crédito, para garantir o consentimento do uso do cartão;
Alertar ao consumidor, que ele não deve passar nenhum dado ou foto, via e-mail, sms ou WhatsApp. Todo o fluxo de validação é feito dentro do link enviado;
Avisar/Treinar time de atendimento ao consumidor, em caso de questionamento do consumidor;
Disponibilizar dentro da FAQ da empresa um tópico informando os detalhes dessa validação;
Disponibilizar link da nossa central de ajuda: www.unico.io/FAQ.
Dúvidas?
Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.
400
40001
error decoding json
Os dados enviados não condizem com o contrato do serviço
400
40002
error validating json
Alguma informação está mal formatada ou não foi preenchida
400
40021
invalid phone
O telefone informado é inválido, deve seguir o padrão: 55 DDD NUMERO. Ex: 5543999999999
400
40022
invalid email
O e-mail informado é inválido
400
40027
replicated transaction
A transação enviada já existe, não podendo cria-lá novamente
400
40045
max value reached
Quando a transação atinge um valor maior que o permitido
403
40301
not allowed
O usuário não tem permissão para fazer tal ação
404
40404
company not found
A empresa informada não existe
429
40001
too many requests
Ratelimit atingido
500
50001
internal error
Falha interna no serviço
Endpoint para consultar o status atual de uma transação específica.
ID da transação para verificar o status.
Access-token válido. O valor deve ser enviado no formato Bearer {token}.
Status da transação obtido com sucesso.
Status atual da transação.
"processing"
Endpoint para recuperar o conjunto probatório de uma transação específica.
ID da transação para a qual o conjunto probatório será recuperado.
Access-token válido. O valor deve ser enviado no formato Bearer {token}.
Link do arquivo probatório obtido com sucesso.
URL do arquivo probatório.
"https://unico.io/probative.pdf"
Endpoint para cancelar uma transação de crédito especificada.
ID da transação que será cancelada.
Access-token válido. O valor deve ser enviado no formato Bearer {token}".
Transação cancelada com sucesso.
Status atualizado da transação.
"canceled"
Endpoint para reenviar notificações via e-mail e telefone para uma transação específica.
ID da transação para a qual a notificação será enviada.
Access-token válido. O valor deve ser enviado no formato Bearer {token}".
Número de telefone para o envio da notificação.
"CELULAR_NOTIFICACAO"
Endereço de e-mail para o envio da notificação.
"EMAIL_NOTIFICACAO"
Notificação enviada com sucesso.
ID único da notificação gerada.
"b50ee24c-71eb-4a5d-ade1-41c48b44c240"
Link gerado para a notificação.
"https://aces.so/example"
Endpoint para solicitar a análise do chargeback de uma transação especificada.
ID da transação que será submetida ao chargeback.
Access-token válido. O valor deve ser enviado no formato Bearer {token}".
Data e hora do pedido de chargeback no formato ISO 8601.
"2023-01-05T03:00:00.000Z"
Informações do solicitante.
Tipo da chave de identificação do solicitante.
"cpf"
Valor da chave de identificação do solicitante.
"CPF_DO_USUARIO"
Nome do solicitante.
"NOME_DO_USUARIO"
Motivo da solicitação de chargeback.
"MOTIVO_DA_SOLICITACAO"
Observações gerais sobre o pedido.
"OBSERVACOES_GERAIS"
Documentos relacionados ao chargeback. Até 3 itens são permitidos, e cada documento deve estar codificado em Base64. Apenas arquivos PDF serão aceitos.
Nome ou descrição do arquivo.
"NOME_DO_ARQUIVO"
Arquivo PDF codificado em Base64.
"JVBERi0xLjQKMSAwI=="
Solicitação de chargeback bem-sucedida.
ID do chargeback gerado.
"8263a268-5388-492a-bca2-28e1ff4a69f0"
Endpoint para consultar o status de um chargeback específico de uma transação.
ID da transação relacionada ao chargeback.
ID do chargeback a ser consultado.
Access-token válido. O valor deve ser enviado no formato Bearer {token}".
Consulta do status do chargeback bem-sucedida.
ID do chargeback.
"8263a268-5388-492a-bca2-28e1ff4a69f0"
Status atual do chargeback.
"waiting"