Criar Conta - Apenas Core Banking
Essa funcionalidade permite que os clientes Core Banking da Celcoin consigam realizar a abertura de uma conta pagamento pré-paga para seus clientes.
Fluxo somente disponível para clientes Core Banking. Nesse cenário, não é necessário enviar documentação via endpoint para abertura de contas.
1. Conta PF
Passos para Integrar
- Realizar autenticação na API - [API Reference]
- Criar Conta PF na API - [API Reference]
- Salvar onboardingId.
- Receber o Webhook com as informações da Conta criada.
Caso seja necessário você pode consultar o status da conta manualmente.
- Consultar Status da Conta com Base no onboardingId - [API Reference]
Fluxo de integração
Criar Conta PF
JSON de exemplo
{
"clientCode": "123456",
"accountOnboardingType": "BANKACCOUNT",
"documentNumber": "33333333333",
"phoneNumber": "+5512999999999",
"email": "[email protected]",
"motherName": "Celia Silva",
"fullName": "Carlos Silva",
"socialName": "Carlos",
"birthDate": "31-12-1984",
"address": {
"postalCode": "25100222",
"street": "Rua Amazonas",
"number": "10",
"addressComplement": "Em frente ao parque.",
"neighborhood": "Maravilhas",
"city": "São Paulo",
"state": "SP",
"longitude": "-46.6488",
"latitude": "-23.6288"
},
"financialDetails": {
"declaredIncome": "DINP02", // Renda declarada
"presumedIncome": "PINP02", // Renda presumida
"occupation": "ONP24", // Profissão
"netWorth": "NWNP02" // Patrimônio
},
"isPoliticallyExposedPerson": false,
"cadastraChavePix": false
}cURL da chamada
curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/baas-onboarding/v1/account/natural-person/create' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}
--data-raw '{
"clientCode": "8237987978",
"accountOnboardingType": "BANKACCOUNT",
"documentNumber": "70578847027",
"phoneNumber": "+5512981175554",
"email": "[email protected]",
"motherName": "Nome Sobrenome",
"fullName": "Nome Sobrenome",
"socialName": "Nome",
"birthDate": "31-12-1984",
"address": {
"postalCode": "12211400",
"street": "Av Paulista",
"number": "313",
"addressComplement": "Em frente ao parque.",
"neighborhood": "Bairro",
"city": "São Paulo",
"state": "SP",
"longitude": "-46.6488",
"latitude": "-23.6288"
},
"financialDetails": {
"declaredIncome": "DINP02", // Renda declarada
"presumedIncome": "PINP02", // Renda presumida
"occupation": "ONP24", // Profissão
"netWorth": "NWNP02" // Patrimônio
},
"isPoliticallyExposedPerson": false
}'
Informações financeirasPara informações sobre o correto preenchimento dos campos do objeto "financialDetails" acesse nossa documentação complementar: Informações Financeiras.
Exemplo de retorno
Sucesso 200
{
"version": "1.0.0",
"status": "PROCESSING",
"body": {
"onboardingId": "39c8e322-9192-498d-947e-2daa4dfc749e"
}
}ClientCode é um identificador único por transação criado por você e o onboardingId é campo que você utilizará para realizar a consulta de status da conta manualmente, Recomendamos você guardar esses campos.
Error 400
{
"version": "1.0.0",
"status": "ERROR",
"error": {
"errorCode": "CBE001",
"message": "ClientCode é obrigatório"
}
}Tabela de errorCode
| Code | Message |
|---|---|
| CBE001 | ClientCode é obrigatório. |
| CBE002 | accountOnboardingType deve ser do tipo BANKACCOUNT OU GRAPHICACCOUNT. |
| CBE003 | documentNumber é obrigatório e deve ser um CPF válido. |
| CBE004 | phoneNumber ou contactNumber é obrigatório e deve ser um telefone válido. |
| CBE005 | email é obrigatório e deve ser um email válido. |
| CBE006 | motherName é obrigatório e deve ser completo. |
| CBE007 | fullName é obrigatório e deve ser completo. |
| CBE008 | birthDate é obrigatório e deve ser no formato (DD-MM-YYYY) |
| CBE009 | address é obrigatório. |
| CBE010 | postalCode é obrigatório e deve ser um CEP existente. |
| CBE011 | street é obrigatório e deve respeitar os limites de caracteres. |
| CBE012 | number inválido. |
| CBE013 | neighborhood é obrigatório. |
| CBE014 | city é obrigatório e deve ser uma cidade valida. |
| CBE015 | state é obrigatório e deve ser uma estado valido. |
| CBE016 | latitude inválido. |
| CBE017 | longitude inválido. |
| CBE022 | Já existe uma conta vinculada a este CPF. |
| CBE246 | Não foi possível processar recuperar o Tenant com os parametros informados |
| CBE669 | Cliente com restrição no BC Protege+ para abertura de conta. Necessário retirar a restrição e tentar novamente. |
Webhook de Retorno
{
"entity": "onboarding-create",
"createTimestamp": "2022-11-04T10:35:16.0511474",
"status": "CONFIRMED",
"body": {
"account": {
"branch": "0001",
"account": "30053912934",
"name": "Ms. Rodolfo Marvin",
"documentNumber": "86913161280"
},
"onboardingId": "5e39442d-270f-4f9a-b752-9c08456c6e14",
"clientCode": "4f8ff32f-2d1f-4c28-b316-8020b3d13d43",
"createDate": "2022-11-04T10:35:16.0511474"
}
}Verificar Status da Conta
cURL da Chamada:
curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/baas-onboarding/v1/account/check?onboardingId=6174ec78-3de2-4add-85db-e56aace8b5ef' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}'Modelo de Retorno
{
"version": "1.0.0",
"status": "CONFIRMED",
"body": {
"onboardingId": "39c8e322-9192-498d-947e-2daa4dfc749e",
"clientCode": "123456",
"createDate": "2022-12-31T00:00:00.0000000+00:00",
"entity": "account-create",
"account": {
"branch": "1234",
"account": "123456",
"name": "Fernanda Aparecida da Silva",
"documentNumber": "47855748778"
}
}
}Status da abertura de conta
| Retorno | Descrição |
|---|---|
| PROCESSING | Abertura de conta ainda em processamento. |
| CONFIRMED | Abertura de conta finalizada com sucesso. |
| ERROR | Abertura de conta finalizada com erro, favor verificar o objeto 'error' do payload. |
2.Conta PJ
Passos para Integrar
- Realizar autenticação na API - [API Reference]
- Criar Conta PJ na API - [API Reference]
- Salvar onboardingId.
- Receber o Webhook com as informações da Conta criada.
Caso seja necessário você pode consultar o status da conta manualmente.
- Consultar Status da Conta com Base no onboardingId - [API Reference]
Fluxo de integração
Criar Conta PJ
JSON de exemplo
{
"clientCode": "123456",
"accountOnboardingType": "BANKACCOUNT",
"documentNumber": "22000123000155",
"contactNumber": "+5512999999999",
"businessEmail": "[email protected]",
"businessName": "IP Pagamentos",
"tradingName": "IPay",
"owner": [
{
"documentNumber": "12345678901",
"fullName": "Carlos Silva",
"phoneNumber": "+5512999999999",
"email": "[email protected]",
"motherName": "Celia Silva",
"socialName": "Carlos",
"birthDate": "31-12-1984",
"address": {
"postalCode": "12211400",
"street": "Rua Amazonas",
"number": "10",
"addressComplement": "Em frente ao parque.",
"neighborhood": "Maravilhas",
"city": "São Paulo",
"state": "SP",
"longitude": "-46.6488",
"latitude": "-23.6288"
},
"financialOwnerDetails": {
"ownerDeclaredIncome": "ODIB01", // Renda declarada em caso de sócio PF
"ownerPresumedIncome": "OPIB05", // Renda presumida em caso de sócio PF
"ownerDeclaredRevenue": "ODRB06", // Renda declarada em caso de sócio PJ
"ownerPresumedRevenue": "OPRB01" // Renda presumida em caso de sócio PJ
},
"isPoliticallyExposedPerson": false
}
],
"businessAddress": {
"postalCode": "12211400",
"street": "Rua das Andorinhas",
"number": "313",
"addressComplement": "Em frente ao parque.",
"neighborhood": "Rua das Maravilhas",
"city": "São Paulo",
"state": "SP",
"longitude": "-46.6488",
"latitude": "-23.6288"
},
"financialCompanyDetails": {
"declaredCompanyRevenue": "DCRB01", // Faturamento declarado da empresa
"presumedCompanyRevenue": "DCRB01" // Faturamento presumido da empresa
},
"cadastraChavePix": false
}Tabela descritiva com os campos do body
Campo | Tipo | Validação |
|---|---|---|
clientCode* | string (200) | |
accountOnboardingType* | string (100) | Se campo válido("BANKACCOUNT") |
documentNumber* | string (14) | Validação null ou empty e regex - "^[0-9]{14}$" |
contactNumber* | string (14) | Validação null ou empty e regex - "^+[1-9][0-9]\d{1,14}$" |
string (100) | Validação null ou empty e regex - "^+[1-9][0-9]\d{1,14}$^[a-z0-9.!#$&'*+/=?^_`{ | |
businessName* | string (350) | Validação null ou empty e regex - |
tradingName* | string (120) | Validação null ou empty e regex - |
owner | Array de Objetos | |
documentNumber | string (14) | Validação null ou empty e regex - "^[0-9]{14}$" |
fullName | string (200) | Validação null ou empty e regex - |
phoneNumber | string (14) | Validação null ou empty e regex - "^+[1-9][0-9]\d{1,14}$" |
string (100) | Validação null ou empty e regex - "^[a-z0-9.!#$&'*+/=?^_`{ | |
motherName | string (100) | Validação null ou empty e regex - |
socialName | string (200) | Validação null ou empty e regex - |
birthDate | string (10) | Validação null ou empty e regex - "^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-(19|20)\d{2}$" |
isPoliticallyExposedPerson | boolean | |
address | objeto | |
postalCode | string (8) | Validação null ou empty e regex - "([\d]{8})" |
street | string (200) | Validação null ou empty e regex - |
number | string (20) | Validação null ou empty e regex |
addressComplement | string (256) | Validação null ou empty e regex - |
neighborhood | string (200) | Validação null ou empty e regex - |
city | string (100) | Validação null ou empty e regex - |
state | string (2) | Validação null ou empty e validação lista de estados brasileiros |
longitude | string (100) | Validação null ou empty e regex - "^[0-9,+. -]+$" |
latitude | string (100) | Validação null ou empty e regex - "^[0-9,+. -]+$" |
businessAddress | Objeto | |
postalCode | string (8) | Validação null ou empty e regex - "([\d]{8})" |
street | string (200) | Validação null ou empty e regex - |
number | string (20) | Validação null ou empty e regex |
addressComplement | string (2566) | Validação null ou empty e regex - |
neighborhood | string (200) | Validação null ou empty e regex - |
city | string (100) | Validação null ou empty e regex - |
state | string (2) | Validação null ou empty e validação lista de estados brasileiros |
longitude | string (100) | Validação null ou empty e regex - "^[0-9,+. -]+$" |
latitude | string (100) | Validação null ou empty e regex - "^[0-9,+. -]+$" |
financialOwnerDetails | Objeto | |
ownerDeclaredIncome | string | Se campo válido("ODIB01", "ODIB02", "ODIB03", "ODIB04", "ODIB05") |
ownerPresumedIncome | string | Se campo válido("OPIB01", "OPIB02", "OPIB03", "OPIB04", "OPIB05") |
ownerDeclaredRevenue | string | Se campo válido("ODRB01", "ODRB02", "ODRB03", "ODRB04", "ODRB05) |
ownerPresumedRevenue | string | Se campo válido("OPRB01", "OPRB02", "OPRB03", "OPRB04", "OPRB05) |
financialCompanyDetails | Objeto | |
declaredCompanyRevenue | string | Se campo válido("DCRB01", "DCRB02", "DCRB03", "DCRB04", "DCRB05 |
presumedCompanyRevenue | string | Se campo válido("PCRB01", "PCRB02", "PCRB03", "PCRB04", "PCRB05 |
Campos com "*" são obrigatórios na chamada.
cURL da chamada
curl --request POST \
--url https://sandbox.openfinance.celcoin.dev/baas-onboarding/v1/account/business/create \
--header 'accept: application/json' \
--header 'authorization: Bearer {{token}}' \
--header 'content-type: application/json' \
--data '
{
"clientCode": "123456",
"accountOnboardingType": "BANKACCOUNT",
"documentNumber": "22000123000155",
"contactNumber": "+5512999999999",
"businessEmail": "[email protected]",
"businessName": "IP Pagamentos",
"tradingName": "IPay",
"owner": [
{
"documentNumber": "12345678901",
"fullName": "Carlos Silva",
"phoneNumber": "+5512999999999",
"email": "[email protected]",
"motherName": "Celia Silva",
"socialName": "Carlos",
"birthDate": "31-12-1984",
"address": {
"postalCode": "12211400",
"street": "Rua Amazonas",
"number": "10",
"addressComplement": "Em frente ao parque.",
"neighborhood": "Maravilhas",
"city": "São Paulo",
"state": "SP",
"longitude": "-46.6488",
"latitude": "-23.6288"
},
"financialOwnerDetails": {
"ownerDeclaredIncome": "ODIB01", // Renda declarada em caso de sócio PF
"ownerPresumedIncome": "OPIB05", // Renda presumida em caso de sócio PF
"ownerDeclaredRevenue": "ODRB06", // Renda declarada em caso de sócio PJ
"ownerPresumedRevenue": "OPRB01" // Renda presumida em caso de sócio PJ
},
"isPoliticallyExposedPerson": false
}
],
"businessAddress": {
"postalCode": "12211400",
"street": "Rua das Andorinhas",
"number": "313",
"addressComplement": "Em frente ao parque.",
"neighborhood": "Rua das Maravilhas",
"city": "São Paulo",
"state": "SP",
"longitude": "-46.6488",
"latitude": "-23.6288"
},
"financialCompanyDetails": {
"declaredCompanyRevenue": "DCRB01", // Faturamento declarado da empresa
"presumedCompanyRevenue": "DCRB01" // Faturamento presumido da empresa
},
"cadastraChavePix": false
}
Informações financeirasPara informações sobre o correto preenchimento dos campos relativos aos objetos "owner.financialDetails" e "financialCompanyDetails", acesse nossa documentação complementar: Informações Financeiras.
Exemplo de retorno
Sucesso 200
{
"version": "1.0.0",
"status": "PROCESSING",
"body": {
"onboardingId": "39c8e322-9192-498d-947e-2daa4dfc749e"
}
}O onboardingId é campo que você utilizará para realizar a consulta de status da conta manualmente, Recomendamos você guardar esse campo.
Error 400
{
"version": "1.0.0",
"status": "ERROR",
"error": {
"errorCode": "CBE001",
"message": "ClientCode é obrigatório"
}
}Tabela de errorCode
| Code | Message |
|---|---|
| CBE001 | ClientCode é obrigatório. |
| CBE002 | accountOnboardingType deve ser do tipo BANKACCOUNT OU GRAPHICACCOUNT. |
| CBE004 | phoneNumber ou contactNumber é obrigatório e deve ser um telefone válido. |
| CBE008 | birthDate é obrigatório e deve ser no formato (DD-MM-YYYY) |
| CBE010 | postalCode é obrigatório e deve ser um CEP existente. |
| CBE011 | street é obrigatório e deve respeitar os limites de caracteres. |
| CBE013 | neighborhood é obrigatório. |
| CBE014 | city é obrigatório e deve ser uma cidade valida. |
| CBE015 | state é obrigatório e deve ser uma estado valido. |
| CBE018 | documentNumber é obrigatório e deve ser um CNPJ válido. |
| CBE019 | businessName é obrigatório e deve ser completo. |
| CBE020 | tradingName é obrigatório e deve ser completo. |
| CBE023 | Já existe uma conta vinculada a este e-mail. |
| CBE024 | Já existe uma conta vinculada a este telefone. |
| CBE025 | Já existe uma conta vinculada a este CNPJ. |
| CBE033 | owner.documentNumber é obrigatório e deve ser um CPF ou CNPJ válido. |
| CBE034 | owner.name é obrigatório e deve ser completo. |
| CBE036 | owner.email é obrigatório e deve ser um email válido. |
| CBE037 | owner.address é obrigatório. |
| CBE168 | businessEmail é obrigatório e deve ser um email válido. |
| CBE246 | businessAddress é obrigatório. |
| CBE669 | Cliente com restrição no BC Protege+ para abertura de conta. Necessário retirar a restrição e tentar novamente |
Webhook de Retorno
{
"entity": "onboarding-create",
"createTimestamp": "2022-11-04T10:35:16.0511474",
"status": "CONFIRMED",
"body": {
"account": {
"branch": "0001",
"account": "30053912934",
"name": "Ms. Rodolfo Marvin",
"documentNumber": "86913161280"
},
"onboardingId": "5e39442d-270f-4f9a-b752-9c08456c6e14",
"clientCode": "4f8ff32f-2d1f-4c28-b316-8020b3d13d43",
"createDate": "2022-11-04T10:35:16.0511474"
}
}Verificar Status da Conta
cURL da Chamada:
curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/baas-onboarding/v1/account/check?onboardingId=6174ec78-3de2-4add-85db-e56aace8b5ef' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{token}}'Modelo de Retorno
{
"version": "1.0.0",
"status": "CONFIRMED",
"body": {
"onboardingId": "39c8e322-9192-498d-947e-2daa4dfc749e",
"clientCode": "123456",
"createDate": "2022-12-31T00:00:00.0000000+00:00",
"entity": "account-create",
"account": {
"branch": "1234",
"account": "123456",
"name": "Fernanda Aparecida da Silva",
"documentNumber": "47855748778"
}
}
}Status da abertura de conta
| Retorno | Descrição |
|---|---|
| PROCESSING | Abertura de conta ainda em processamento. |
| CONFIRMED | Abertura de conta finalizada com sucesso. |
| ERROR | Abertura de conta finalizada com erro, favor verificar o objeto 'error' do payload. |
Importante:Antes da abertura de qualquer conta, a Celcoin realizará automaticamente uma consulta ao BC Protege+ para verificar se há restrição ativa associada ao CPF ou CNPJ informado.
Caso seja identificada uma restrição ativa, o processo de abertura de conta será interrompido. Nessa situação, será devolvido o seguinte código de erro: CBE669 - Cliente com restrição no BC Protege+ para abertura de conta. Necessário retirar a restrição e tentar novamente.
Para prosseguir com a abertura de conta, o titular do CPF ou CNPJ deverá remover a restrição diretamente nos canais oficiais do Banco Central (https://www.bcb.gov.br/meubc) e, posteriormente, realizar uma nova tentativa.
Para mais informações acesse nossa documentação complementar: BC PROTEGE +
Updated 2 days ago