Documentação B2B

Auto Serviço B2B2C

Como direcionar clientes para o Auto Serviço da Creditas sem necessidade de Login (embedded).

Este guia explica como integrar o fluxo de login transparente da Creditas em seu aplicativo Android ou iOS.

O objetivo é permitir que o cliente que nunca teve propostas criadas na Creditas, continue a jornada de Auto Equity diretamente no ambiente web da Creditas, de forma fluida, sem precisar realizar um login no Auto Serviço da Creditas.

Isso evita quebra brusca entre o app do parceiro e a área logada da Creditas. Também evita que o cliente do Parceiro que já fez Login no fluxo do Parceiro, precise fazer um novo Login quando direcionado para o Auto Serviço da Creditas.


1. Visão geral

Quando o cliente aceita uma oferta de Auto Equity no app do parceiro, ele precisa continuar a jornada na Creditas para concluir as próximas etapas do processo, como envio de documentos, biometria, contratação, entre outras.

Para evitar que o cliente saia do ambiente do Parceiro onde já fez login e precise se autenticar novamente, o Parceiro poderá direcionar o cliente para uma URL específica da Creditas. Essa URL recebe os dados necessários para identificar a proposta, gerar a sessão autenticada, e redirecionar o cliente já autenticado para a área de Auto serviço da Creditas.



2. Pré-requisitos

Antes de iniciar a integração, é necessário garantir que os itens abaixo estejam disponíveis.

ItemQuem forneceObservação
Cliente OAuth2 do parceiro cadastrado na Creditas.CreditasVeja detalhes em Autenticação e Ambientes
userId é o identificador do Token do Parceiro junto a Creditas.CreditasClaim "user_id" do Token JWT do Parceiro.
proposalId é o identificador da primeira Proposta criada para o Cliente.ParceiroVeja detalhes em Criar Proposta
Permissão para abrir links externos no appParceiroNecessário suporte a Custom Tabs no Android e SFSafariViewController no iOS
⚠️

Atenção: O atributo proposalId representa a proposta aceita pelo cliente e só pode ser consumido uma única vez nesse fluxo. Se o cliente já teve Propostas criadas na Creditas no passado, esse cliente será direcionado para o Login!


3. URL a ser aberta

Deve abrir a seguinte URL no dispositivo do cliente:

https://app-staging.creditas.com.br/emprestimo/auto/auth-loading?proposalId={PROPOSAL_ID}&userId={USER_ID}

3.1 Parâmetros

ParâmetroOrigemFormatoObrigatório
proposalIdGerado quando o cliente aceita a oferta (parceiro cria a Proposta). Veja detalhes em Criar Proposta.B2B-<uuid>Sim
userIdObtido na decodificação do Token JWT (Claim "user_id") do Parceiro junto a Creditas. Veja detalhes em Autenticação e Ambientes.<uuid>Sim

3.2 Ambientes

AmbienteDomínio base
Staginghttps://app-staging.creditas.com.br/emprestimo/auto/auth-loading
Produçãohttps://app.creditas.com.br/emprestimo/auto/auth-loading
💡

Dica: Sempre valide a integração no ambiente de Staging, antes de liberar o uso em ambiente de Produção. CPFs que iniciam em 7, 8 ou 9 tem aprovação automática em Staging!


4. Implementação recomendada (Responsabilidade do Parceiro)

A Creditas recomenda o uso de Chrome Custom Tabs, em vez de WebView.

Essa abordagem melhora a experiência do cliente e reduz a complexidade técnica, principalmente porque a jornada de Auto Equity pode solicitar recursos como câmera, envio de documentos e localização.

AspectoWebViewCustom Tabs
Permissões de câmera, microfone, localização e armazenamentoExigem declaração no Manifest/Info.plist e tratamento manual pelo appSão tratadas nativamente pelo Chrome
Cookies e sessãoPodem ficar isolados do navegador do dispositivoCompartilham o contexto com Chrome
Atualizações de segurançaDependem da WebView do sistemaAcompanham as atualizações do navegador instalado
Auto-fill de senhas e autenticadoresPode não funcionar corretamenteFunciona com os recursos nativos do navegador
Esforço de manutençãoMaiorMenor

Como o fluxo de Auto Equity pode solicitar permissões sensíveis durante a jornada, abrir a página via WebView exigiria que o app implementasse tratamentos adicionais para essas permissões. Com Custom Tabs, esse comportamento é delegado ao navegador, tornando a integração mais simples e segura.

4.1 Android — Chrome Custom Tabs

Adicione a dependência no app/build.gradle.kts:

dependencies {
    implementation("androidx.browser:browser:1.8.0")
}

Para Android 11 ou superior, permita que o app resolva intents de navegador no AndroidManifest.xml:

<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
    </intent>
</queries>

Exemplo de abertura da URL:

import android.content.Context
import android.net.Uri
import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat

fun openCreditasAutoLoading(
    context: Context,
    proposalId: String,
    userId: String
) {
    val url = "https://app.creditas.com.br/emprestimo/auto/auth-loading" +
        "?proposalId=$proposalId&userId=$userId"

    val intent = CustomTabsIntent.Builder()
        .setShowTitle(true)
        .setDefaultColorSchemeParams(
            CustomTabColorSchemeParams.Builder()
                .setToolbarColor(ContextCompat.getColor(context, R.color.partner_brand))
                .build()
        )
        .build()

    intent.launchUrl(context, Uri.parse(url))
}

4.2 iOS — SFSafariViewController (equivalente ao Custom Tabs no iOS)

Exemplo de abertura da URL no iOS:

import SafariServices

func openCreditasAutoLoading(
    from viewController: UIViewController,
    proposalId: String,
    userId: String
) {
    var components = URLComponents(string: "https://app.creditas.com.br/emprestimo/auto/auth-loading")!
    components.queryItems = [
        URLQueryItem(name: "proposalId", value: proposalId),
        URLQueryItem(name: "userId", value: userId)
    ]

    guard let url = components.url else { return }

    let safari = SFSafariViewController(url: url)
    safari.preferredBarTintColor = .partnerBrand

    viewController.present(safari, animated: true)
}

5. Comportamento esperado

A tabela abaixo descreve os principais cenários esperados durante o uso da URL de login transparente.

CenárioComportamento esperado
✅ Sucesso - Primeira chamada para o Cliente com parâmetros válidos.O cliente visualiza uma tela de carregamento breve e é redirecionado para a jornada autenticada em /emprestimo/auto/pagina-inicial. Sem necessidade de Login no ambiente da Creditas (First-Account).
❌ Falha - proposalId já consumido, ou Cliente já teve propostas com a Creditas.O sistema entende que a sessão sem Login não está mais disponível para o Cliente especifico, e redireciona o cliente para o Login da Creditas (Requisito de Segurança Obrigatório).
❌ Falha - proposalId ou userId ausentes na URL.O cliente é redirecionado imediatamente para o Login da Creditas (Requisito de Segurança Obrigatório).
❌ Falha - Falha de rede.O sistema realiza novas tentativas por até 30 segundos antes de redirecionar o cliente para o Login da Creditas (Requisito de Segurança Obrigatório).
🚧

Importante: O proposalId sem Login-Creditas é single-use, ou seja, pode ser utilizado apenas uma vez. Caso o cliente feche a sessão e tente reabrir o fluxo usando o mesmo proposalId, ou aceite uma nova proposta, será solicitado o Login da Creditas (Requisito de Segurança Obrigatório).


6. Validação dos parâmetros antes de abrir a URL

Antes de abrir a URL, recomendamos que o app valide os parâmetros localmente. Isso evita tentativas de abertura de sessões inválidas e melhora a experiência do cliente.

ValidaçãoRegra
proposalId não pode estar vazioObrigatório
userId não pode estar vazioObrigatório
Caracteres permitidosApenas letras, números, hífens e underscores
Regex recomendada^[a-zA-Z0-9_-]+$

7. Checklist de integração

Antes de liberar o fluxo em produção, valide os itens abaixo:

  • Cliente OAuth2 está cadastrado nos ambientes de Staging e Produção.
  • userId está disponível e armazenado de forma segura no app.
  • proposalId é gerado após o aceite da Proposta pelo cliente, e enviado em runtime na URL.
  • App abre a URL usando Chrome Custom Tabs no Android ou SFSafariViewController no iOS.
  • URL de produção aponta para https://app.creditas.com.br/emprestimo/auto/.
  • Parâmetros são validados antes da abertura da URL.
  • Fluxo completo foi testado em Staging:
    • (1) → Aceite da oferta (parceiro cria a Proposta) no App Mobile do Parceiro;
    • (2) → Abertura da URL de Login transparente, embarcada no App Mobile do Parceiro;
    • (3) → Validação de Login transparente;
      • (3-a) → proposalId não consumido (First Account) → ✅ Jornada autenticada (Auto Serviço da Creditas);
      • (3-b) → proposalId já consumido → ❌ Login Creditas;
      • (3-c) → Sem proposalId e/ou userId na URL → ❌ Login Creditas;
      • (3-d) → Erro de rede → ❌ Login Creditas;

8. Dúvidas

Em caso de dúvidas sobre a integração, entre em contato pelo canal definido com o Executivo de Conta da Creditas.