---
updatedAt: 2026-09-30T21:48:31.000Z
agentTools:
  projectIndex: https://developers.creditas.com.br/llms.txt
---

# 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.

![](https://files.readme.io/1c9787fdbf836f5ad552cd31008c2d1469fc46025498fb1a3ded4d6954e861fa-image.png)

<br />

***

## 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 <Anchor target="_blank" href="https://developers.creditas.com.br/docs/new-ambientes-credenciais-e-autentica%C3%A7%C3%A3o">Autenticação e Ambientes</Anchor> |
| `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 <Anchor target="_blank" href="https://developers.creditas.com.br/docs/criacao-da-proposta-com-garantia-auto">Criar Proposta</Anchor>                        |
| Permissão para abrir links externos no app                                 | Parceiro     | Necessário suporte a `Custom Tabs` no Android e `SFSafariViewController` no iOS                                                                                              |

<Callout icon="⚠️" theme="warn">
  ### **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!
</Callout>

***

## 3. URL a ser aberta

Deve abrir a seguinte URL no dispositivo do cliente:

```text
https://app-staging.creditas.com/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 <Anchor target="_blank" href="https://developers.creditas.com.br/docs/criacao-da-proposta-com-garantia-auto">Criar Proposta</Anchor>.                                           | `B2B-<uuid>` | Sim         |
| `userId`     | Obtido na decodificação do Token JWT (Claim `"user_id"`) do Parceiro junto a Creditas. Veja detalhes em <Anchor target="_blank" href="https://developers.creditas.com.br/docs/new-ambientes-credenciais-e-autentica%C3%A7%C3%A3o">Autenticação e Ambientes</Anchor>. | `<uuid>`     | Sim         |

### 3.2 Ambientes

| Ambiente | Domínio base                                                    |
| -------- | --------------------------------------------------------------- |
| Staging  | `https://app-staging.creditas.com/emprestimo/auto/auth-loading` |
| Produção | `https://app.creditas.com/emprestimo/auto/auth-loading`         |

<Callout icon="💡" theme="default">
  ### **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!
</Callout>

***

## 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`:

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

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

```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:

```kotlin
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/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:

```swift
import SafariServices

func openCreditasAutoLoading(
    from viewController: UIViewController,
    proposalId: String,
    userId: String
) {
    var components = URLComponents(string: "https://app.creditas.com/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**).                                                   |

<Callout icon="🚧" theme="warn">
  ### Importante: O proposalId sem Login-Creditas é single-use, ou seja, a emissão de uma nova sessão a partir dele só ocorre uma vez. Se o cliente fechar e reabrir o fluxo usando o mesmo proposalId, no mesmo dispositivo/navegador que completou a jornada com sucesso, e a sessão armazenada nesse dispositivo ainda estiver válida (não expirada), o sistema reaproveita esse armazenamento anterior e redireciona o cliente direto para a jornada autenticada, sem Login. Se essa sessão já tiver expirado, ou o fluxo for aberto em um dispositivo/navegador diferente (sem sessão local salva), a mesma tentativa é redirecionada para o Login da Creditas (Requisito de Segurança Obrigatório).
</Callout>

***

## 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.
* [ ] `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/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)<br />   → ✅ Jornada autenticada (Auto Serviço da Creditas);
    * [ ] (3-b) → proposalId já consumido, mas sessão local expirada ou dispositivo/navegador diferente<br />   → ❌ Login Creditas;
    * [ ] (3-c) → Sem proposalId e/ou userId na URL<br />   → ❌ Login Creditas;
    * [ ] (3-d) → Erro de rede<br />   → ❌ Login Creditas;
    * [ ] (3-e) → proposalId já consumido, mesmo dispositivo/navegador com sessão local ainda válida<br />   → ✅ Jornada autenticada (sessão reaproveitada);
    * [ ] (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.