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.
| Item | Quem fornece | Observação |
|---|---|---|
| Cliente OAuth2 do parceiro cadastrado na Creditas. | Creditas | Veja detalhes em Autenticação e Ambientes |
userId é o identificador do Token do Parceiro junto a Creditas. | Creditas | Claim "user_id" do Token JWT do Parceiro. |
proposalId é o identificador da primeira Proposta criada para o Cliente. | Parceiro | Veja detalhes em Criar Proposta |
| Permissão para abrir links externos no app | Parceiro | Necessário suporte a Custom Tabs no Android e SFSafariViewController no iOS |
Atenção: O atributoproposalIdrepresenta 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âmetro | Origem | Formato | Obrigatório |
|---|---|---|---|
proposalId | Gerado quando o cliente aceita a oferta (parceiro cria a Proposta). Veja detalhes em Criar Proposta. | B2B-<uuid> | Sim |
userId | Obtido 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
| Ambiente | Domínio base |
|---|---|
| Staging | https://app-staging.creditas.com.br/emprestimo/auto/auth-loading |
| Produção | https://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.
| Aspecto | WebView | Custom Tabs |
|---|---|---|
| Permissões de câmera, microfone, localização e armazenamento | Exigem declaração no Manifest/Info.plist e tratamento manual pelo app | São tratadas nativamente pelo Chrome |
| Cookies e sessão | Podem ficar isolados do navegador do dispositivo | Compartilham o contexto com Chrome |
| Atualizações de segurança | Dependem da WebView do sistema | Acompanham as atualizações do navegador instalado |
| Auto-fill de senhas e autenticadores | Pode não funcionar corretamente | Funciona com os recursos nativos do navegador |
| Esforço de manutenção | Maior | Menor |
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ário | Comportamento 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: OproposalIdsem 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 mesmoproposalId, 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ção | Regra |
|---|---|
proposalId não pode estar vazio | Obrigatório |
userId não pode estar vazio | Obrigatório |
| Caracteres permitidos | Apenas 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.
-
userIdestá 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) →
proposalIdnão consumido (First Account) → ✅ Jornada autenticada (Auto Serviço da Creditas); - (3-b) →
proposalIdjá consumido → ❌ Login Creditas; - (3-c) → Sem
proposalIde/ouuserIdna URL → ❌ Login Creditas; - (3-d) → Erro de rede → ❌ Login Creditas;
- (3-a) →
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.
Updated 1 day ago