Jornadas de Credenciamento — Visão Geral
1. O que é o Credenciamento?
O credenciamento é o processo pelo qual um estabelecimento comercial (merchant) passa a fazer parte da rede Getnet, habilitando-se a aceitar pagamentos com cartão e outros meios eletrônicos. Durante esse processo são coletados dados cadastrais, realizada análise de risco e compliance (qualificação), definidas as ofertas comerciais contratadas e criado o pedido formal que consolida tudo isso.
2. Tipos de Jornada
A plataforma Getnet suporta dois modelos de credenciamento, que diferem principalmente em quem conduz o preenchimento das informações:
| Característica | Credenciamento Autônomo | Credenciamento Assistido |
|---|
| Quem preenche os dados | O próprio merchant, em canal digital self-service | Um agente / consultor da Getnet |
| Interação humana | Mínima — fluxo guiado pela aplicação | Alta — agente guia o merchant |
| Ponto de entrada | Canal digital aberto (mar aberto) | Canal interno / back-office |
| Momento da vitrine de ofertas | Antes da criação do merchant | Após a criação do merchant |
| Filtros do GET /offerings | country + channel (opcionalmente monthly_card_income + merchant_category_code + fiscal_type se o canal já dispuser dessas informações antes de exibir as ofertas) | country + channel + monthly_card_income + merchant_category_code + fiscal_type |
monthly_card_income no POST /merchants | Não obrigatório na criação | Enviado já na criação |
MCC (merchant_category_code) | Não utilizado como filtro obrigatório | Retornado no POST /merchants e usado no GET /offerings |
fiscal_type | Opcional — usado se disponível antes do cadastro | Utilizado como filtro no GET /offerings |
3. Autenticação — Pré-requisito de Ambas as Jornadas
Toda chamada à plataforma Getnet exige um access token válido obtido via OAuth 2.0. O token deve ser renovado antes de expirar.
[Sua Aplicação] ──600;">POST /token──────────────────────► [Authentication API]
(credenciais nos headers + body)
◄──200 OK { access_token, expires_in }──
[Sua Aplicação] ──Requisição + Authorization: {access_token}──► [Demais APIs]
◄──Resposta da operação────────────────────────────────
↺ Repita o 600;">POST /token quando expires_in se aproximar do fim.
[Sua Aplicação] ──600;">POST /token──────────────────────► [Authentication API]
(credenciais nos headers + body)
◄──200 OK { access_token, expires_in }──
[Sua Aplicação] ──Requisição + Authorization: {access_token}──► [Demais APIs]
◄──Resposta da operação────────────────────────────────
↺ Repita o 600;">POST /token quando expires_in se aproximar do fim.

📄 Detalhes completos em authentication.md
4. Jornada 1 — Credenciamento Autônomo (Mar Aberto)
Nesta jornada o merchant acessa um canal digital e conduz o próprio credenciamento sem auxílio de um agente. O fluxo abaixo representa o caminho feliz do início ao fim.
4.1 Visão macro do fluxo
[Autenticação]
│
▼
[Vitrine de Ofertas] ←── Merchant escolhe um plano/oferta
│
▼
[Etapa 0] Verificação prévia — documento já possui EC?
│ não
▼
[Etapa 1] Criação do merchant (dados mínimos)
│
▼
[Etapa 1.5] Consulta de CEP + Opções de frete
│
▼
[Etapa 2] Complemento de dados (600;">PUT /merchants)
│
▼
[Etapa 3] Qualificação (análise de risco)
│ aprovado
▼
[Etapa 4] Resultado da qualificação confirmado
│
▼
[Etapa 5-6] Montagem dos itens do pedido (offerings → items)
│
▼
[Etapa 7] Informação de dados bancários
│
▼
[Etapa 8] Criação do pedido → 600;">POST /orders
│
▼
[Etapa 8.5] Atualização do pedido → 600;">PUT /orders/{id} *(quando necessário)*
│
▼
[Etapa 9] Validação do pedido → 600;">POST /orders/{id}/validation
│ aprovado
▼
[Etapa 10] Submissão do pedido → 600;">PUT /orders/{id}/submit
│
▼
[Credenciamento concluído — order_number gerado]
[Autenticação]
│
▼
[Vitrine de Ofertas] ←── Merchant escolhe um plano/oferta
│
▼
[Etapa 0] Verificação prévia — documento já possui EC?
│ não
▼
[Etapa 1] Criação do merchant (dados mínimos)
│
▼
[Etapa 1.5] Consulta de CEP + Opções de frete
│
▼
[Etapa 2] Complemento de dados (600;">PUT /merchants)
│
▼
[Etapa 3] Qualificação (análise de risco)
│ aprovado
▼
[Etapa 4] Resultado da qualificação confirmado
│
▼
[Etapa 5-6] Montagem dos itens do pedido (offerings → items)
│
▼
[Etapa 7] Informação de dados bancários
│
▼
[Etapa 8] Criação do pedido → 600;">POST /orders
│
▼
[Etapa 8.5] Atualização do pedido → 600;">PUT /orders/{id} *(quando necessário)*
│
▼
[Etapa 9] Validação do pedido → 600;">POST /orders/{id}/validation
│ aprovado
▼
[Etapa 10] Submissão do pedido → 600;">PUT /orders/{id}/submit
│
▼
[Credenciamento concluído — order_number gerado]
4.2 Detalhamento das etapas
🔐 Autenticação
Obtenha o access_token conforme descrito na seção 3 e inclua-o em todas as chamadas seguintes.

🛍️ Vitrine de Ofertas
Antes de iniciar o cadastro, consulte as ofertas disponíveis para o canal e país. Isso permite que o merchant escolha um plano antes de se cadastrar.
Consumidor ──600;">GET /offerings?country=BR&channel={canal}──► Offerings API
◄── Lista de ofertas (sem taxas de adquirência) ──
Consumidor ──600;">GET /offerings?priced_offering_id={id}──► Offerings API
◄── Objeto único com taxas detalhadas por bandeira ──
└─ {id} = priced_offering_id retornado na listagem anterior
OU (em uma única chamada)
Consumidor ──600;">GET /offerings?country=BR&channel={canal}&show_acquirers=true──► Offerings API
◄── Lista de ofertas já com taxas incluídas ──
Consumidor ──600;">GET /offerings?country=BR&channel={canal}──► Offerings API
◄── Lista de ofertas (sem taxas de adquirência) ──
Consumidor ──600;">GET /offerings?priced_offering_id={id}──► Offerings API
◄── Objeto único com taxas detalhadas por bandeira ──
└─ {id} = priced_offering_id retornado na listagem anterior
OU (em uma única chamada)
Consumidor ──600;">GET /offerings?country=BR&channel={canal}&show_acquirers=true──► Offerings API
◄── Lista de ofertas já com taxas incluídas ──

Etapa 0 — Verificação prévia (opcional, mas recomendada)
Verifique se o CPF/CNPJ informado já possui um Estabelecimento Comercial (EC) credenciado na Getnet. Se sim, não prossiga com o cadastro.
600;">GET /establishment-contracts-basic/legal-document-number/{cpf_cnpj}/ec-accredited
├── accredited: true ──► Documento já possui EC. Interromper fluxo.
└── accredited: false ──► Pode cadastrar. Seguir para Etapa 1.
600;">GET /establishment-contracts-basic/legal-document-number/{cpf_cnpj}/ec-accredited
├── accredited: true ──► Documento já possui EC. Interromper fluxo.
└── accredited: false ──► Pode cadastrar. Seguir para Etapa 1.
Etapa 1 — Criação do merchant (dados mínimos)
Crie o registro do merchant com as informações mínimas obrigatórias. O retorno traz o merchant_id, que será usado em todas as chamadas seguintes.
600;">POST /merchants
│
Enviar: CPF/CNPJ + dados pessoais básicos + opt-ins (LGPD + termos)
│
Retorna: merchant_id + sub_status_steps (etapas pendentes)
│
└──► Guardar o merchant_id para usar nas etapas seguintes.
600;">POST /merchants
│
Enviar: CPF/CNPJ + dados pessoais básicos + opt-ins (LGPD + termos)
│
Retorna: merchant_id + sub_status_steps (etapas pendentes)
│
└──► Guardar o merchant_id para usar nas etapas seguintes.

⚠️ Guarde o merchant_id retornado — ele é obrigatório em todas as próximas chamadas.

Etapa 1.5 — Consulta de CEP e opções de entrega (quando necessário)
Valide o CEP informado pelo merchant e consulte as opções de entrega disponíveis para aquele endereço.
600;">GET /domains/zipcode/{postal_code}
│
├─► 200 — CEP encontrado
│ └─► Pré-preencher campos de endereço
│ Solicitar ao merchant: número e complemento
│
└─► 404 — CEP não encontrado
└─► Informar ao merchant que o CEP digitado é inválido ou não foi encontrado,
e solicitar que informe um novo CEP válido antes de prosseguir.
600;">GET /offerings/delivery-data?legal_document_number={doc}&postal_code={cep}&ids={offering_id_1},{offering_id_2}
│
├─ Parâmetros obrigatórios:
│ ├─ legal_document_number — CPF ou CNPJ do merchant
│ └─ postal_code — CEP do endereço de entrega
│
├─ Parâmetros opcionais:
│ └─ ids — Um ou mais IDs de oferta (offering_id ou reference_id) separados por vírgula,
│ para consultar o frete específico dos produtos contidos nessa(s) oferta(s).
│
└── Retorna opções de entrega disponíveis (normal, expressa, agendada)
600;">GET /domains/zipcode/{postal_code}
│
├─► 200 — CEP encontrado
│ └─► Pré-preencher campos de endereço
│ Solicitar ao merchant: número e complemento
│
└─► 404 — CEP não encontrado
└─► Informar ao merchant que o CEP digitado é inválido ou não foi encontrado,
e solicitar que informe um novo CEP válido antes de prosseguir.
600;">GET /offerings/delivery-data?legal_document_number={doc}&postal_code={cep}&ids={offering_id_1},{offering_id_2}
│
├─ Parâmetros obrigatórios:
│ ├─ legal_document_number — CPF ou CNPJ do merchant
│ └─ postal_code — CEP do endereço de entrega
│
├─ Parâmetros opcionais:
│ └─ ids — Um ou mais IDs de oferta (offering_id ou reference_id) separados por vírgula,
│ para consultar o frete específico dos produtos contidos nessa(s) oferta(s).
│
└── Retorna opções de entrega disponíveis (normal, expressa, agendada)

Etapa 2 — Complemento de dados (quando necessário)
Obtenha o estado atual completo do merchant e envie o payload completo atualizado com os dados complementares.
600;">GET /merchants/{merchant_id}
│
Alterar somente os campos necessários no payload retornado
│
600;">PUT /merchants/{merchant_id}
│
Enviar: renda, patrimônio, endereços, horário de funcionamento, etc.
600;">GET /merchants/{merchant_id}
│
Alterar somente os campos necessários no payload retornado
│
600;">PUT /merchants/{merchant_id}
│
Enviar: renda, patrimônio, endereços, horário de funcionamento, etc.

⚠️ Nunca envie payload parcial. O PUT substitui todos os dados do merchant. Sempre busque o objeto completo com GET antes de modificá-lo.

Etapa 3 — Qualificação (análise de risco e compliance)
Dispare a qualificação do merchant. A resposta já contém o resultado — não é necessário realizar uma consulta adicional via GET para obtê-lo.
600;">POST /merchants/{merchant_id}/qualification
│
└── Retorna: report.recommended.status + report.details[]
600;">POST /merchants/{merchant_id}/qualification
│
└── Retorna: report.recommended.status + report.details[]

Etapa 4 — Resultado da qualificação
Avalie o campo report.recommended.status retornado pelo POST /merchants/{merchant_id}/qualification para decidir como prosseguir:
report.recommended.status
│
├── "approved" ──► Merchant aprovado.
│ Prosseguir com o credenciamento normalmente.
│
├── "pending" ──► Merchant em análise manual pelo time de riscos.
│ Prosseguir com o credenciamento normalmente;
│ o resultado final será definido pela equipe de risco.
│
└── "reproved" ──► Merchant reprovado. Não poderá realizar negócios com a Getnet.
Consultar motivo em: report.details[*].detail_description
report.recommended.status
│
├── "approved" ──► Merchant aprovado.
│ Prosseguir com o credenciamento normalmente.
│
├── "pending" ──► Merchant em análise manual pelo time de riscos.
│ Prosseguir com o credenciamento normalmente;
│ o resultado final será definido pela equipe de risco.
│
└── "reproved" ──► Merchant reprovado. Não poderá realizar negócios com a Getnet.
Consultar motivo em: report.details[*].detail_description

Etapas 5 e 6 — Montagem dos itens do pedido
Para cada oferta selecionada pelo merchant, mapeie cada item da oferta para um item do pedido:
Para cada oferta selecionada:
└─ Para cada item em offering.items[]:
├─ item_sequence_number = próximo número sequencial global
├─ offering.priced_offering_id = offering.priced_offering_id (raiz da oferta)
├─ offering.smart_offering_id = offering.priced_offering_id (raiz da oferta)
├─ product = item.product (cópia integral)
├─ quantity = quantidade informada pelo cliente (item.quantity é apenas a quantidade inicial sugerida pela oferta)
├─ settlement_period = item.settlement_period (se presente)
├─ unit_price = item.unit_price (se presente)
└─ total_price = item.total_price (se presente)
Para cada oferta selecionada:
└─ Para cada item em offering.items[]:
├─ item_sequence_number = próximo número sequencial global
├─ offering.priced_offering_id = offering.priced_offering_id (raiz da oferta)
├─ offering.smart_offering_id = offering.priced_offering_id (raiz da oferta)
├─ product = item.product (cópia integral)
├─ quantity = quantidade informada pelo cliente (item.quantity é apenas a quantidade inicial sugerida pela oferta)
├─ settlement_period = item.settlement_period (se presente)
├─ unit_price = item.unit_price (se presente)
└─ total_price = item.total_price (se presente)

Etapa 6.5 — Montagem do endereço de entrega (delivery_info)
Com o CEP validado (Etapa 1.5) e o tipo de frete escolhido pelo merchant a partir da resposta do GET /offerings/delivery-data, monte o objeto delivery_info que será enviado no POST /orders.
delivery_info
├─ delivery_type = tipo selecionado pelo merchant ("scheduled" / "normal" / "express")
├─ delivery_amount = delivery_methods[x].delivery_amount
├─ delivery_time = delivery_methods[x].delivery_time
│
├─ [se "normal" ou "express"]
│ └─ delivery_time_type = delivery_methods[x].delivery_time_type ("D" = dias / "H" = horas)
│
├─ [se "scheduled"]
│ ├─ recommended_delivery_period = período selecionado pelo merchant ("morning" / "afternoon" / "night")
│ ├─ period_grid = entrada de delivery_methods[x].period_grid[] correspondente ao período
│ └─ delivery_time_type = null
│
├─ delivery_reference_point = ponto de referência informado pelo merchant (opcional)
│
└─ delivery_address = endereço de entrega informado pelo merchant
├─ street = logradouro (retornado pelo 600;">GET /domains/zipcode)
├─ number = número (informado pelo merchant)
├─ complement = complemento (informado pelo merchant, opcional)
├─ district = bairro (retornado pelo 600;">GET /domains/zipcode)
├─ city = cidade (retornado pelo 600;">GET /domains/zipcode)
├─ state = UF (retornado pelo 600;">GET /domains/zipcode)
├─ postal_code = CEP validado na Etapa 1.5
└─ country = "BR"
delivery_info
├─ delivery_type = tipo selecionado pelo merchant ("scheduled" / "normal" / "express")
├─ delivery_amount = delivery_methods[x].delivery_amount
├─ delivery_time = delivery_methods[x].delivery_time
│
├─ [se "normal" ou "express"]
│ └─ delivery_time_type = delivery_methods[x].delivery_time_type ("D" = dias / "H" = horas)
│
├─ [se "scheduled"]
│ ├─ recommended_delivery_period = período selecionado pelo merchant ("morning" / "afternoon" / "night")
│ ├─ period_grid = entrada de delivery_methods[x].period_grid[] correspondente ao período
│ └─ delivery_time_type = null
│
├─ delivery_reference_point = ponto de referência informado pelo merchant (opcional)
│
└─ delivery_address = endereço de entrega informado pelo merchant
├─ street = logradouro (retornado pelo 600;">GET /domains/zipcode)
├─ number = número (informado pelo merchant)
├─ complement = complemento (informado pelo merchant, opcional)
├─ district = bairro (retornado pelo 600;">GET /domains/zipcode)
├─ city = cidade (retornado pelo 600;">GET /domains/zipcode)
├─ state = UF (retornado pelo 600;">GET /domains/zipcode)
├─ postal_code = CEP validado na Etapa 1.5
└─ country = "BR"

Etapa 7 — Dados bancários (domicílio bancário)
Para cada bandeira contratada, informe os dados da conta bancária onde o merchant receberá os valores.
merchant_accounts[] — um item por bandeira contratada:
├─ brand = bandeira (visa / master / elo / amex / ...)
├─ merchant.merchant_id = merchant_id (Etapa 1)
├─ bank_account.bank.bank_code = código FEBRABAN do banco
├─ bank_account.bank_branch_code = agência
├─ bank_account.bank_account_number = conta + dígito
├─ bank_account.account_type = cc / pp
├─ payment_center = true / false
└─ merchant_account_restriction = []
merchant_accounts[] — um item por bandeira contratada:
├─ brand = bandeira (visa / master / elo / amex / ...)
├─ merchant.merchant_id = merchant_id (Etapa 1)
├─ bank_account.bank.bank_code = código FEBRABAN do banco
├─ bank_account.bank_branch_code = agência
├─ bank_account.bank_account_number = conta + dígito
├─ bank_account.account_type = cc / pp
├─ payment_center = true / false
└─ merchant_account_restriction = []

Etapa 8 — Criação do pedido
Com todos os dados coletados, crie o pedido formal de credenciamento.
Antes de enviar, calcule os campos de totalização somando o total_price dos itens onde product.product_type = "terminal", agrupados pelo product.pricing_model.pricing_type:
total_fixed_price ← Σ total_price dos terminais com pricing_type = "fixed_price"
total_monthly_rent ← Σ total_price dos terminais com pricing_type = "monthly_rent"
total_affiliation_fee ← Σ total_price dos terminais com pricing_type = "affiliation_fee"
total_recurrent ← Σ total_price dos terminais com pricing_type = "recurrent"
total_payment_price ← Σ total_price dos terminais com pricing_type = "payment_price"
total_license ← Σ total_price dos terminais com pricing_type = "license"
total_fixed_price ← Σ total_price dos terminais com pricing_type = "fixed_price"
total_monthly_rent ← Σ total_price dos terminais com pricing_type = "monthly_rent"
total_affiliation_fee ← Σ total_price dos terminais com pricing_type = "affiliation_fee"
total_recurrent ← Σ total_price dos terminais com pricing_type = "recurrent"
total_payment_price ← Σ total_price dos terminais com pricing_type = "payment_price"
total_license ← Σ total_price dos terminais com pricing_type = "license"

Itens com product_type diferente de terminal (ex.: composite, service) não entram neste cálculo. Campos sem terminais correspondentes devem ser enviados com valor 0.
600;">POST /orders
│
Enviar: merchant, delivery_info, items[], merchant_accounts[],
total_fixed_price, total_monthly_rent, total_affiliation_fee,
total_recurrent, total_payment_price, total_license
│
Retorna: order_id
│
└──► Guardar o order_id para usar nas etapas seguintes (validação, atualização e submissão).
600;">POST /orders
│
Enviar: merchant, delivery_info, items[], merchant_accounts[],
total_fixed_price, total_monthly_rent, total_affiliation_fee,
total_recurrent, total_payment_price, total_license
│
Retorna: order_id
│
└──► Guardar o order_id para usar nas etapas seguintes (validação, atualização e submissão).

⚠️ Guarde o order_id retornado — ele é obrigatório em todas as próximas chamadas (PUT /orders/{order_id}, POST /orders/{order_id}/validation, PUT /orders/{order_id}/submit).

Etapa 8.5 — Atualização do pedido (quando necessário)
Caso seja preciso corrigir ou complementar dados do pedido antes da submissão, utilize o PUT /orders/{order_id}.
600;">PUT /orders/{order_id}
│
Enviar: objeto completo do pedido (com as alterações aplicadas)
600;">PUT /orders/{order_id}
│
Enviar: objeto completo do pedido (com as alterações aplicadas)

⚠️ Nunca envie payload parcial. O PUT substitui todos os dados do pedido. Sempre envie o objeto completo.
Diferença importante em relação ao PUT /merchants/{merchant_id}:
| Comportamento | Merchant | Order |
|---|
| Enriquecimento | ✅ Sim — a plataforma adiciona informações ao objeto após a criação | ❌ Não — os dados do pedido são exatamente os que o canal enviou no POST /orders |
| GET antes do PUT | Obrigatório — para obter os dados enriquecidos e não sobrescrevê-los acidentalmente | Opcional — se o canal armazena o pedido localmente, os dados são idênticos aos da plataforma |
- Se o canal armazena o pedido em seu domínio: basta modificar ou incrementar os campos na estrutura local e enviar o
PUT com o objeto completo — não é necessário chamar GET /orders/{order_id} antes.
- Se o canal não armazena o pedido: chamar
GET /orders/{order_id} (usando o order_id retornado no POST /orders), aplicar as alterações e enviar o PUT.
Após qualquer alteração nos itens, recalcule os campos de totalização conforme a Etapa 8.

Etapa 9 — Validação do pedido (recomendada)
Antes de submeter, valide o pedido para identificar e corrigir eventuais problemas.
600;">POST /orders/{order_id}/validation
│
├── report.recommended.status = "approved" ──► Prosseguir para submissão.
│
└── report.recommended.status = "reproved" ──► Verificar e corrigir:
report.details[].detail_description
600;">POST /orders/{order_id}/validation
│
├── report.recommended.status = "approved" ──► Prosseguir para submissão.
│
└── report.recommended.status = "reproved" ──► Verificar e corrigir:
report.details[].detail_description

⚠️ Após a submissão (Etapa 10) o pedido não pode mais ser corrigido. Use esta etapa como salvaguarda.

Etapa 10 — Submissão do pedido
Submeta o pedido após confirmação do merchant. Esta é a etapa final.
600;">PUT /orders/{order_id}/submit
│
├── Reprovado ──► error.report.recommended = "reproved"
│ Verificar: report.details[].detail_description
│
└── Submetido ──► situation.status = "submitted"
order_number gerado — usar para acompanhamento do pedido
│
├─ Para verificar se o pedido foi aprovado:
│ 600;">GET /orders?order_number={order_number}
└─ Ou configure um webhook para receber notificações de status.
600;">PUT /orders/{order_id}/submit
│
├── Reprovado ──► error.report.recommended = "reproved"
│ Verificar: report.details[].detail_description
│
└── Submetido ──► situation.status = "submitted"
order_number gerado — usar para acompanhamento do pedido
│
├─ Para verificar se o pedido foi aprovado:
│ 600;">GET /orders?order_number={order_number}
└─ Ou configure um webhook para receber notificações de status.

5. Jornada 2 — Credenciamento Assistido
Nesta jornada um agente ou consultor da Getnet conduz o credenciamento em nome do merchant. A principal diferença estrutural em relação à jornada autônoma está na ordem das chamadas: aqui o merchant é criado primeiro e, com o merchant_category_code (MCC) retornado, a vitrine de ofertas é consultada de forma personalizada para aquele perfil de negócio.
5.1 Visão macro do fluxo
[Autenticação]
│
▼
[Etapa 0] Verificação prévia — documento já possui EC?
│ não
▼
[Etapa 1] Criação do merchant (dados mínimos + monthly_card_income)
│ └── Retorna: merchant_id + MCC
▼
[Vitrine de Ofertas] ←── Filtragem com MCC e faturamento mensal do merchant
│
▼
[Etapa 1.5] Consulta de CEP + Opções de frete
│
▼
[Etapa 2] Complemento de dados (600;">PUT /merchants)
│
▼
[Etapa 3] Qualificação (análise de risco)
│ aprovado
▼
[Etapa 4] Resultado da qualificação confirmado
│
▼
[Etapas 5-6] Montagem dos itens do pedido (offerings → items)
│
▼
[Etapa 7] Informação de dados bancários
│
▼
[Etapa 8] Criação do pedido → 600;">POST /orders
│
▼
[Etapa 8.5] Atualização do pedido → 600;">PUT /orders/{id} *(quando necessário)*
│
▼
[Etapa 9] Validação do pedido → 600;">POST /orders/{id}/validation
│ aprovado
▼
[Etapa 10] Submissão do pedido → 600;">PUT /orders/{id}/submit
│
▼
[Credenciamento concluído — order_number gerado]
[Autenticação]
│
▼
[Etapa 0] Verificação prévia — documento já possui EC?
│ não
▼
[Etapa 1] Criação do merchant (dados mínimos + monthly_card_income)
│ └── Retorna: merchant_id + MCC
▼
[Vitrine de Ofertas] ←── Filtragem com MCC e faturamento mensal do merchant
│
▼
[Etapa 1.5] Consulta de CEP + Opções de frete
│
▼
[Etapa 2] Complemento de dados (600;">PUT /merchants)
│
▼
[Etapa 3] Qualificação (análise de risco)
│ aprovado
▼
[Etapa 4] Resultado da qualificação confirmado
│
▼
[Etapas 5-6] Montagem dos itens do pedido (offerings → items)
│
▼
[Etapa 7] Informação de dados bancários
│
▼
[Etapa 8] Criação do pedido → 600;">POST /orders
│
▼
[Etapa 8.5] Atualização do pedido → 600;">PUT /orders/{id} *(quando necessário)*
│
▼
[Etapa 9] Validação do pedido → 600;">POST /orders/{id}/validation
│ aprovado
▼
[Etapa 10] Submissão do pedido → 600;">PUT /orders/{id}/submit
│
▼
[Credenciamento concluído — order_number gerado]
5.2 Detalhamento das etapas
🔐 Autenticação
Idêntica à jornada autônoma. Obtenha o access_token conforme descrito na seção 3.

Etapa 0 — Verificação prévia (opcional, mas recomendada)
Idêntica à jornada autônoma.
600;">GET /establishment-contracts-basic/legal-document-number/{cpf_cnpj}/ec-accredited
├── accredited: true ──► Documento já possui EC. Interromper fluxo.
└── accredited: false ──► Pode cadastrar. Seguir para Etapa 1.
600;">GET /establishment-contracts-basic/legal-document-number/{cpf_cnpj}/ec-accredited
├── accredited: true ──► Documento já possui EC. Interromper fluxo.
└── accredited: false ──► Pode cadastrar. Seguir para Etapa 1.
Etapa 1 — Criação do merchant (dados mínimos)
Nesta jornada, o monthly_card_income (faturamento mensal no cartão) é enviado já na criação. O retorno inclui o merchant_category_code (MCC), que deve ser guardado para filtrar as ofertas adequadas ao perfil do negócio.
600;">POST /merchants
│
Enviar: CPF/CNPJ + dados pessoais básicos + monthly_card_income + opt-ins (LGPD + termos)
│
Retorna: merchant_id
sub_status_steps (etapas pendentes)
economic_activity_profile.merchant_category_code ← MCC
│
└──► Guardar o merchant_id e o MCC para usar nas etapas seguintes.
600;">POST /merchants
│
Enviar: CPF/CNPJ + dados pessoais básicos + monthly_card_income + opt-ins (LGPD + termos)
│
Retorna: merchant_id
sub_status_steps (etapas pendentes)
economic_activity_profile.merchant_category_code ← MCC
│
└──► Guardar o merchant_id e o MCC para usar nas etapas seguintes.

⚠️ Guarde tanto o merchant_id quanto o merchant_category_code — ambos são usados nas chamadas seguintes.

🛍️ Vitrine de Ofertas (após criação do merchant)
Diferente da jornada autônoma, aqui a consulta de ofertas ocorre depois da criação do merchant, pois utiliza o MCC e o faturamento mensal para retornar apenas as ofertas elegíveis para aquele perfil.
600;">GET /offerings?country=BR&channel={canal}&monthly_card_income={faturamento_mensal}&merchant_category_code={mcc}&fiscal_type={fiscal_type}
└── Retorna lista de ofertas (sem taxas de adquirência)
600;">GET /offerings?priced_offering_id={id}
└── Retorna objeto único com taxas detalhadas por bandeira
└─ {id} = priced_offering_id retornado na listagem anterior
OU (em uma única chamada)
600;">GET /offerings?country=BR&channel={canal}&monthly_card_income={faturamento_mensal}&merchant_category_code={mcc}&fiscal_type={fiscal_type}&show_acquirers=true
└── Retorna lista de ofertas já com taxas incluídas
600;">GET /offerings?country=BR&channel={canal}&monthly_card_income={faturamento_mensal}&merchant_category_code={mcc}&fiscal_type={fiscal_type}
└── Retorna lista de ofertas (sem taxas de adquirência)
600;">GET /offerings?priced_offering_id={id}
└── Retorna objeto único com taxas detalhadas por bandeira
└─ {id} = priced_offering_id retornado na listagem anterior
OU (em uma única chamada)
600;">GET /offerings?country=BR&channel={canal}&monthly_card_income={faturamento_mensal}&merchant_category_code={mcc}&fiscal_type={fiscal_type}&show_acquirers=true
└── Retorna lista de ofertas já com taxas incluídas

Etapas 1.5 a 10 — Complemento, Qualificação, Pedido e Submissão
A partir daqui o fluxo é
idêntico ao da jornada autônoma. Consulte as etapas correspondentes na
seção 4.2:
5.3 Diferenças em relação ao Credenciamento Autônomo
| Aspecto | Autônomo | Assistido |
|---|
| Quem opera | O próprio merchant | Agente / consultor |
| Momento da vitrine de ofertas | Antes da criação do merchant | Após a criação do merchant |
| Filtros da vitrine | country + channel (opcionalmente monthly_card_income + merchant_category_code + fiscal_type se disponíveis) | country + channel + monthly_card_income + merchant_category_code + fiscal_type |
monthly_card_income no POST /merchants | Não obrigatório na criação | Enviado já na criação |
MCC (merchant_category_code) | Não utilizado como filtro obrigatório | Retornado no POST /merchants e usado no GET /offerings |
fiscal_type | Opcional — usado se disponível | Utilizado como filtro no GET /offerings |
6. Referência Rápida de Endpoints por Etapa
Credenciamento Autônomo
| Etapa | Método | Endpoint | Documentação |
|---|
| Autenticação | POST | /token | authentication.md |
| Vitrine de ofertas | GET | /offerings | offerings.md |
| 0 — Verificação prévia | GET | /establishment-contracts-basic/legal-document-number/{doc}/ec-accredited | merchants.md |
| 1 — Criação do merchant | POST | /merchants | merchants.md |
| 1.5 — Consulta de CEP | GET | /domains/zipcode/{postal_code} | support.md |
| 1.5 — Opções de entrega | GET | /offerings/delivery-data | offerings.md |
| 2 — Obter merchant atual | GET | /merchants/{merchant_id} | merchants.md |
| 2 — Complementar dados | PUT | /merchants/{merchant_id} | merchants.md |
| 3 — Disparar qualificação | POST | /merchants/{merchant_id}/qualification | merchants.md |
| 4 — Consultar qualificação | GET | /merchants/{merchant_id}/qualification | merchants.md |
| 6.5 — Montar delivery_info | — | (montagem local com dados de GET /offerings/delivery-data + CEP) | orders.md |
| 8 — Criar pedido | POST | /orders | orders.md |
| 8.5 — Atualizar pedido | PUT | /orders/{order_id} | orders.md |
| 9 — Validar pedido | POST | /orders/{order_id}/validation | orders.md |
| 10 — Submeter pedido | PUT | /orders/{order_id}/submit | orders.md |
Credenciamento Assistido
| Etapa | Método | Endpoint | Documentação |
|---|
| Autenticação | POST | /token | authentication.md |
| 0 — Verificação prévia | GET | /establishment-contracts-basic/legal-document-number/{doc}/ec-accredited | merchants.md |
| 1 — Criação do merchant | POST | /merchants | merchants.md |
| Vitrine de ofertas | GET | /offerings?monthly_card_income={val}&merchant_category_code={mcc}&fiscal_type={fiscal_type} | offerings.md |
| 1.5 — Consulta de CEP | GET | /domains/zipcode/{postal_code} | support.md |
| 1.5 — Opções de entrega | GET | /offerings/delivery-data | offerings.md |
| 2 — Obter merchant atual | GET | /merchants/{merchant_id} | merchants.md |
| 2 — Complementar dados | PUT | /merchants/{merchant_id} | merchants.md |
| 3 — Disparar qualificação | POST | /merchants/{merchant_id}/qualification | merchants.md |
| 3 — Disparar qualificação | POST | /merchants/{merchant_id}/qualification | merchants.md |
| 4 — Consultar qualificação | GET | /merchants/{merchant_id}/qualification | merchants.md |
| 6.5 — Montar delivery_info | — | (montagem local com dados de GET /offerings/delivery-data + CEP) | orders.md |
| 8 — Criar pedido | POST | /orders | orders.md |
| 8.5 — Atualizar pedido | PUT | /orders/{order_id} | orders.md |
| 9 — Validar pedido | POST | /orders/{order_id}/validation | orders.md |
| 10 — Submeter pedido | PUT | /orders/{order_id}/submit | orders.md |
7. Conceitos Transversais
merchant_id
Identificador único gerado no POST /merchants. Deve ser persistido e utilizado em todas as chamadas subsequentes do ciclo de credenciamento.
priced_offering_id
Identificador de uma oferta com preços detalhados por bandeira. Obtido na Offerings API e utilizado na montagem dos itens do pedido.
order_id e order_number
order_id: identificador interno gerado no POST /orders. Usado para validação e submissão.
order_number: gerado após a submissão bem-sucedida. Usado pelo merchant para acompanhar o status logístico do pedido.
Qualificação
Processo de análise de risco e compliance que verifica se o merchant pode ser credenciado. Pode ser síncrono (resposta 200) ou assíncrono (resposta 202 + polling via GET).
Domicílio bancário
Conta(s) bancária(s) onde o merchant receberá os repasses das transações. Deve ser informado por bandeira contratada.
