Onboarding - bs2.pj.clientes.forFrontend - Versão: 1

Onboarding

O que é API de Onboarding?

API Onboarding disponibiliza operações relacionadas a cadastro de clientes através da parceria Powered By Bs2

Quem pode usar a API de Onboarding

Todos os clientes e parceiros do banco BS2.

Quais são requisitos para a utilização da API de Onboarding ?

Api Onboarding - Versões anteriores

Autenticação

Utilizamos em nossas API’s de autenticação um rate-limit, que permite até 10 requisições de Token e refresh por minuto, sendo necessário realizar o gerenciamento de token descrito abaixo:

Gerenciamento de Token

É necessário fazer a gestão do token de acesso e do refresh_token dentro da sua aplicação.

1.1 - Gerar um token utilizando ClientId, ClientSecret, username e password. Fluxo de geração de token descrito no passo acima. O token possui uma validade em segundos, apresentada no campo expires_in. 420 segundos em Sandbox e 300 segundos em Produção.

1.2 - Utilizando o refresh_token gerado no passo anterior, deve-se fazer o fluxo de refresh_token. Desta forma, não se deve utilizar usuário e senha para gerar novo token.

1.3 - Antes do refresh_token expirar (10 minutos de duração), é necessário renovar o token usando fluxo de refresh_token.

Pontos Importantes

Ao gerar um token utilizando username e password, deve-se apenas gerar novos tokens usando o fluxo de refresh_token (utilizando o refresh_token e não o username e password)

Só é necessário gerar um novo token, utilizando usuário e senha, caso não consiga realizar o fluxo de refresh_token.

O campo expires_in representa a validade do token em segundos, enquanto o token estiver válido, este token deve ser utilizado.

O refresh_token possui um tempo de validade maior que a validade do token (10 min), ou seja, mesmo se o token estiver inválido por tempo, e o refresh_token estiver válido, ainda é possível fazer o fluxo de Refresh_token para gerar um token válido.

Quando o token estiver próximo da validade, deve-se gerar um novo token, usando um refresh_token, para assim, receber um novo token valido pelo mesmo período de tempo.

Não há limite de requisições enquanto o token estiver válido.

Quando um novo token é gerado, o token anterior passa a ser inválido.

Token de Autenticação

Para usar a API é necessário obter o token de autenticação vinculado a um usuário BS2. Para e emissão do token de acesso reproduza os seguintes passos:

1.1 Realizar uma requisição Basic Auth no endpoint abaixo

1.2 Definir o valor password para o campo grant_type

1.3 Definir o valor onboarding-pj para o campo scope

1.4 Inserir usuário e senha válidos nos campos de username e password

{
  "grant_type":"password",
  "scope":"onboarding-pj",
  "username":"valid_username",
  "password":"valid_password"  
}
{
  "access_token": "seu_access_token_guid",
  "token_type": "tipo_de_token",
  "expires_in": "tempo_de_expiracao_em_segundos",
  "refresh_token": "seu_refresh_token_guid",
  "scope": "onboarding-pj"
}

Parâmetros

Nome Localizado em Descrição Requerido
grant_type body Define o tipo de requisição Sim
scope body Define qual o escopo da requisição Sim
username body Inserir um usuário previamente cadastrado no banco BS2 Sim
password body Inserir uma senha válida referente ao usuário informado no campo acima Sim

Resposta

Código Descrição
200 Success
400 Bad Request
401 Unauthorized
  SandBox Produção
Requisições Solicitar URL ao time BS2 https://api.bs2.com:8443/auth/oauth/v2/token

Token de Atualização

Após a geração de um token de autenticação é recomendável que o gerenciamento do seu tempo de expiração seja feita pelo fluxo de atualização de token conforme os seguintes passos:

1.1 Realizar uma requisição Basic Auth no endpoint abaixo

1.2 Definir o valor refresh_token para o campo grant_type

1.3 Definir o valor onboarding-pj para o campo scope

1.4 Definir o valor do refresh token recebido previamente para o campo refresh_token

{
  "grant_type": "refresh_token",
  "scope": "onboarding-pj",
  "refresh_token": "refresh_token"
}
{
  "access_token": "seu_access_token_guid",
  "token_type": "tipo_de_token",
  "expires_in": "tempo_de_expiracao_em_segundos",
  "refresh_token": "seu_refresh_token_guid",
  "scope": "onboarding-pj"
}

Parâmetros

Nome Localizado em Descrição Requerido
grant_type body Define o tipo de requisição Sim
scope body Define qual o escopo da requisição Sim
refresh_token body Inserir o refresh token recebido previamente Sim

Resposta

Código Descrição
200 Success
400 Bad Request
401 Unauthorized

Pré-cadastro de Clientes


{
 "notificarCliente": false,
 "empresa": {
  "cnpj": "string",
  "naturezaJuridica": "string",
  "autorizacaoConsultaCnpj": false,
  "fundadaEm": "2021-2-2T22:11:59.28Z",
  "razaoSocial": "string",
  "nomeFantasia": "string",
  "faturamentoMensal": 0,
  "endereco": {
   "logradouro": "string",
   "numero": "string",
   "complemento": "string",
   "bairro": "string",
   "cidade": "string",
   "estado": "string",
   "cep": "string"
  },
  "socios": [
    {
     "cpf": "string",
     "nome": "string",
     "nascimento": "2021-2-2T22:11:59.28Z",
     "telefone": "string",
     "email": "string",
     "nomeMae": "string",
     "participacao": 0,
     "usuario": false,
     "tipoDocumentoSocio": "string",
     "documentoIdentificacao": "string",
     "dataExpeditor": "2021-2-2T22:11:59.28Z",
     "orgaoExpeditor": "string",
     "ufExpeditor": "string",
     "endereco": {
      "logradouro": "string",
      "numero": "string",
      "complemento": "string",
      "bairro": "string",
      "cidade": "string",
      "estado": "string",
      "cep": "string"
     },
     "nif": "string",
     "nacionalidade": "string"
    }
  ],
  "representanteLegal": {
   "nome": "string",
   "nascimento": "2021-2-2T22:11:59.28Z",
   "cpf": "string",
   "email": "string",
   "telefone": "string",
   "nomeMae": "string",
   "endereco": {
    "logradouro": "string",
    "numero": "string",
    "complemento": "string",
    "bairro": "string",
    "cidade": "string",
    "estado": "string",
    "cep": "string"
   }
  }
 }
}

{
 "clienteId": "string",
 "link": "string",
 "status": [0, 1, 2, 3, 4, 5, 6],
 "badRequestReason": [
   {
    "descricao": "string",
    "tag": "string"
   }
 ]
}

Parâmetros

Nome Localizado em Descrição Requerido Schema
body body   Sim bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.ClienteParaCadastrar

Resposta

Código Descrição Schema
201 Success bs2.pJ.clientes.apis.commands.parceiros.cadastrarCliente.CadastrarClienteParceiroResponse
400 Bad Request [ bs2.pJ.clientes.apis.web.forFrontend.compartilhados.DetalheBadRequest ]

Cadastro Completo de Clientes


{
 "notificarCliente": false,
 "empresa": {
  "cnpj": "string",
  "naturezaJuridica": "string",
  "autorizacaoConsultaCnpj": false,
  "fundadaEm": "2021-2-2T22:11:59.28Z",
  "razaoSocial": "string",
  "nomeFantasia": "string",
  "faturamentoMensal": 0,
  "endereco": {
   "logradouro": "string",
   "numero": "string",
   "complemento": "string",
   "bairro": "string",
   "cidade": "string",
   "estado": "string",
   "cep": "string"
  },
  "socios": [
    {
     "cpf": "string",
     "nome": "string",
     "nascimento": "2021-2-2T22:11:59.28Z",
     "telefone": "string",
     "email": "string",
     "nomeMae": "string",
     "participacao": 0,
     "usuario": false,
     "tipoDocumentoSocio": "string",
     "documentoIdentificacao": "string",
     "dataExpeditor": "2021-2-2T22:11:59.28Z",
     "orgaoExpeditor": "string",
     "ufExpeditor": "string",
     "endereco": {
      "logradouro": "string",
      "numero": "string",
      "complemento": "string",
      "bairro": "string",
      "cidade": "string",
      "estado": "string",
      "cep": "string"
     },
     "nif": "string",
     "nacionalidade": "string"
    }
  ],
  "representanteLegal": {
   "nome": "string",
   "nascimento": "2021-2-2T22:11:59.29Z",
   "cpf": "string",
   "email": "string",
   "telefone": "string",
   "nomeMae": "string",
   "endereco": {
    "logradouro": "string",
    "numero": "string",
    "complemento": "string",
    "bairro": "string",
    "cidade": "string",
    "estado": "string",
    "cep": "string"
   }
  }
 }
}

{
 "clienteId": "string",
 "link": "string",
 "status": [0, 1, 2, 3, 4, 5, 6],
 "badRequestReason": [
   {
    "descricao": "string",
    "tag": "string"
   }
 ]
}

Parâmetros

Nome Localizado em Descrição Requerido Schema
body body   Sim bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.ClienteParaCadastrar

Resposta

Código Descrição Schema
201 Success bs2.pJ.clientes.apis.commands.parceiros.cadastrar.emBackground.CadastrarEmBackgroundResponse
400 Bad Request [ bs2.pJ.clientes.apis.web.forFrontend.compartilhados.DetalheBadRequest ]

Consulta de Status


--curl
"GET": "/pj/onboarding/v1/fluxos/Bs2PJ/parceiros/cadastros/clientes/{clienteId}/status"

{
 "statusCliente": "string",
 "conta": "string",
 "status": [0, 1, 2, 3],
 "badRequestReason": [
   {
    "descricao": "string",
    "tag": "string"
   }
 ]
}

Parâmetros

Nome Localizado em Descrição Requerido Schema
clienteId path   Sim string (uuid)

Resposta

Código Descrição Schema
201 Success bs2.pJ.clientes.apis.queries.parceiros.consultarStatus.ConsultarStatusClienteParceiroResponse
400 Bad Request [ bs2.pJ.clientes.apis.web.forFrontend.compartilhados.DetalheBadRequest ]

Upload Arquivo


--curl
"POST": "/pj/onboarding/v1/fluxos/Bs2PJ/parceiros/cadastros/clientes/{clienteId}/documentos"

{
 "status": [0, 1, 2, 3, 4, 5, 6],
 "badRequestReason": [
   {
    "descricao": "string",
    "tag": "string"
   }
 ]
}

Parâmetros

Nome Localizado em Descrição Requerido Schema
clienteId path   Sim string (uuid)

Resposta

Código Descrição Schema
201 Success bs2.pJ.clientes.apis.commands.parceiros.uploadArquivos.UploadArquivoParceiroResponse
400 Bad Request [ bs2.pJ.clientes.apis.web.forFrontend.compartilhados.DetalheBadRequest ]

Models

Endereco

bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Endereco

Nome Tipo Descrição Tamanho Requerido
logradouro string   - Não
numero string   - Não
complemento string   - Não
bairro string   - Não
cidade string   - Não
estado string   - Não
cep string   - Não

Socio

bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Socio

Nome Tipo Descrição Tamanho Requerido
cpf string   - Não
nome string   - Não
nascimento dateTime   - Não
telefone string   - Não
email string   - Não
nomeMae string   - Não
participacao double   - Não
usuario boolean   - Não
tipoDocumentoSocio string   - Não
documentoIdentificacao string   - Não
dataExpeditor dateTime   - Não
orgaoExpeditor string   - Não
ufExpeditor string   - Não
endereco bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Endereco   - Não
nif string   - Não
nacionalidade string   - Não

RepresentanteLegal

bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.RepresentanteLegal

Nome Tipo Descrição Tamanho Requerido
nome string   - Não
nascimento dateTime   - Não
cpf string   - Não
email string   - Não
telefone string   - Não
nomeMae string   - Não
endereco bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Endereco   - Não

Empresa

bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Empresa

Nome Tipo Descrição Tamanho Requerido
cnpj string   - Não
naturezaJuridica string   - Não
autorizacaoConsultaCnpj boolean   - Não
fundadaEm dateTime   - Não
razaoSocial string   - Não
nomeFantasia string   - Não
faturamentoMensal double   - Não
endereco bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Endereco   - Não
socios [ bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Socio ]   - Não
representanteLegal bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.RepresentanteLegal   - Não

ClienteParaCadastrar

bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.ClienteParaCadastrar

Nome Tipo Descrição Tamanho Requerido
notificarCliente boolean   - Não
empresa bs2.pJ.clientes.apis.web.forFrontend.parceiros.cadastrar.compartilhados.Empresa   - Não

CommandStatus

bs2.pJ.utilities.modeling.api.commands.CommandStatus

Nome Tipo Descrição Tamanho Requerido
bs2.pJ.utilities.modeling.api.commands.CommandStatus integer   -  

BadRequestDetail

bs2.pJ.utilities.modeling.api.BadRequestDetail

Nome Tipo Descrição Tamanho Requerido
descricao string   - Não
tag string   - Não

CadastrarClienteParceiroResponse

bs2.pJ.clientes.apis.commands.parceiros.cadastrarCliente.CadastrarClienteParceiroResponse

Nome Tipo Descrição Tamanho Requerido
clienteId string (uuid)   - Não
link string   - Não
status enum 0, 1, 2, 3, 4, 5, 6 - Não
badRequestReason [ bs2.pJ.utilities.modeling.api.BadRequestDetail ]   - Não

DetalheBadRequest

bs2.pJ.clientes.apis.web.forFrontend.compartilhados.DetalheBadRequest

Nome Tipo Descrição Tamanho Requerido
tag string   - Não
descricao string   - Não

CadastrarEmBackgroundResponse

bs2.pJ.clientes.apis.commands.parceiros.cadastrar.emBackground.CadastrarEmBackgroundResponse

Nome Tipo Descrição Tamanho Requerido
clienteId string (uuid)   - Não
link string   - Não
status enum 0, 1, 2, 3, 4, 5, 6 - Não
badRequestReason [ bs2.pJ.utilities.modeling.api.BadRequestDetail ]   - Não

QueryStatus

bs2.pJ.utilities.modeling.api.queries.QueryStatus

Nome Tipo Descrição Tamanho Requerido
bs2.pJ.utilities.modeling.api.queries.QueryStatus integer   -  

ConsultarStatusClienteParceiroResponse

bs2.pJ.clientes.apis.queries.parceiros.consultarStatus.ConsultarStatusClienteParceiroResponse

Nome Tipo Descrição Tamanho Requerido
statusCliente string   - Não
conta string   - Não
status enum 0, 1, 2, 3 - Não
badRequestReason [ bs2.pJ.utilities.modeling.api.BadRequestDetail ]   - Não

UploadArquivoParceiroResponse

bs2.pJ.clientes.apis.commands.parceiros.uploadArquivos.UploadArquivoParceiroResponse

Nome Tipo Descrição Tamanho Requerido
status enum 0, 1, 2, 3, 4, 5, 6 - Não
badRequestReason [ bs2.pJ.utilities.modeling.api.BadRequestDetail ]   - Não

Precisa de mais informações?

Se você ainda tem dúvidas, entre em contato conosco, estamos prontos para atende-lo:

empresas@bs2.com