Cadastro de Contato

Permite cadastrar um contato, destinatário de futuras transações Pix ou transferências, vinculado a uma conta por meio de um endpoint.

Endpoint: POST /accounts/{account}/contacts.


Passos para Integrar

  1. Realizar autenticação na API - [API Reference]
  2. Realizar o cancelamento de uma solicitação de alteração de limite - [API Reference]

Parâmetros da requisição

CampoTipoDescriçãoObrigatório
accountstringIdentificador da conta à qual o contato será vinculado.Sim

Regras gerais

  • O contato pode ser cadastrado como comum ou com a intenção de torná-lo favorito, conforme o valor do campo isFavorite.
  • O comportamento da API varia de acordo com essa informação:
    • Contato comum (isFavorite: false): o cadastro é realizado de forma síncrona. A API retorna HTTP 200, com status SUCCESS e os dados do contato criado.
    • Favorito (isFavorite: true): a solicitação é processada de forma assíncrona. A API retorna HTTP 200, com status PROCESSING, indicando que o pedido foi encaminhado para processamento interno. A ativação como favorito depende do prazo de aprovação interna, padrão de 24 horas.

Exemplo de request

{
  "clientRequestId": "REQ-12345",
  "alias": "LTDA - Fornecedor",
  "isFavorite": false,
  "type": "MANUAL",
  "creditParty": {
    "bank": "13935893",
    "account": "40021234",
    "branch": "0001",
    "taxId": "12345678000199",
    "name": "Fornecedor LTDA",
    "accountType": "CACC",
    "key": "[email protected]",
    "personType": "LEGAL_PERSON"
  }
}

cURL da chamada

curl --request PATCH \
  --url 'https://sandbox.openfinance.celcoin.dev/baas/v2/accounts/123456/limits/PIX_OUT?periodType=DIURNAL' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Content-Type: app

Campos do Request

CampoTipoObrig.Descrição
clientRequestIdstringSimId único da solicitação no cliente - chave de idempotência
aliasstringNãoApelido do contato (até 100 caracteres);
isFavoriteboolNãotrue = cadastrar como favorito (default false)
typestringNãoMANUAL / DICT — só persistido
creditParty.bankstringSimBanco (ISPB)
creditParty.accountstringSimConta do destinatário
creditParty.branchstringSimAgência
creditParty.taxIdstringSimCPF/CNPJ
creditParty.namestringSimNome (até 140 caracteres)
creditParty.accountTypestringSimCACC, SVGS, SLRY, TRAN
creditParty.personTypestringSimNATURAL_PERSON, LEGAL_PERSON
creditParty.keystringNãoChave Pix;

Exemplo de retorno

👍

Sucesso 200 - não favorito (síncrono)

{
  "status": "SUCCESS",
  "version": "1.0.0",
  "body": {
    "contactId": "6f1b2c3d-4e5f-6789-abcd-ef0123456789",
    "account": "30000",
    "isFavorite": false,
    "alias": "LTDA - Fornecedor",
    "status": "ACTIVE",
    "clientRequestId": "REQ-12345",
    "type": "MANUAL",
    "creditParty": {
      "bank": "13935893",
      "account": "40021234",
      "branch": "0001",
      "taxId": "12345678000199",
      "name": "Fornecedor LTDA",
      "accountType": "CACC",
      "key": "[email protected]",
      "personType": "LEGAL_PERSON"
    },
    "createdAt": "2026-09-16T10:00:00",
    "updatedAt": "2026-09-16T10:00:00"
  }
}

Comportamento:

  • O contato é gravado imediatamente.
  • O status da resposta é SUCCESS.
  • O campo creditParty retorna os dados enviados pelo cliente, sem máscara.
  • O campo message não é retornado.
👍

Sucesso 200 - Cadastro de contato como favorito — assíncrono

{
  "status": "PROCESSING",
  "version": "1.0.0",
  "body": {
    "contactId": "6f1b2c3d-4e5f-6789-abcd-ef0123456789",
    "account": "30000",
    "isFavorite": false,
    "alias": "LTDA - Fornecedor",
    "status": "ACTIVE",
    "clientRequestId": "REQ-12345",
    "type": "MANUAL",
    "creditParty": {
      "bank": "13935893",
      "account": "40021234",
      "branch": "0001",
      "taxId": "12345678000199",
      "name": "Fornecedor LTDA",
      "accountType": "CACC",
      "key": "[email protected]",
      "personType": "LEGAL_PERSON"
    },
    "createdAt": "2026-09-16T10:00:00",
    "updatedAt": "2026-09-16T10:00:00",
    "message": "O cadastro do limite do favorito valerá apenas após 24 horas."
  }
}

Comportamento:

  • A solicitação de cadastro como favorito é encaminhada para processamento interno.
  • O status da resposta é PROCESSING.
  • O campo isFavorite retorna false enquanto a classificação como favorito não estiver efetivada.
  • O campo message informa o prazo para aplicação dos limites de favorito.
  • O prazo padrão é de 24 horas;
  • Um Webhook ("entity": "favorite") será enviado assim que o cadastro for classificado como Favorito. E neste caso será possível atribuir a ele limites diferenciados.

Campos do Response

CampoDescrição
statusStatus do processamento da requisição. Retorna SUCCESS para cadastro comum concluído ou PROCESSING para solicitação de favorito em processamento.
versionVersão do contrato da resposta.
bodyObjeto contendo os dados do contato cadastrado ou da solicitação em processamento.
body.contactIdIdentificador único do contato.
body.accountIdentificador da conta vinculada ao contato.
body.isFavoriteIndica se o contato já está efetivamente classificado como favorito. (Boolean - True ou False)
body.aliasNome ou apelido do contato.
body.statusStatus do contato. No exemplo, ACTIVE.
body.clientRequestIdIdentificador da solicitação informado pelo cliente.
body.typeTipo de cadastro do contato.
body.creditPartyObjeto que contem os dados do destinatário, incluindo instituição, conta, agência, documento, nome, tipo de conta, chave Pix e tipo de pessoa.
body.createdAtData e hora (date-time) de criação do contato.
body.updatedAtData e hora (date-time)da última atualização do contato.
body.messageMensagem complementar retornada no fluxo assíncrono de cadastro como favorito. Não é exibida no cadastro comum.
❗

Error 400

{
  "status": "ERROR",
  "version": "1.0.0",
  "error": {
    "errorCode": "CBE234",
    "message": "Não foi possivel realizar essa operação. Tente novamente mais tarde."
  }
}

Webhook

EventoDescrição
favoriteEvento disparado sempre assim que um contato for classificado como favorito.

Exemplo de webhook

{
	"entity": "favorite",
	"status": "CONFIRMED",
	"webhookId": "fndkfdkfndf",
	"createTimestamp": "",
	"body": {
		"contactId": "guid-aqui",
		"alias": "LTDA - Fornecedor",
		"status": "ACTIVE",
		"favorite": true,
		"creditParty": {
			"bank": "{{pixapi_participantcredit}}",
			"account": "{{pixapi_accountredit}}",
			"branch": "{{pixapi_branchcredit}}",
			"taxId": "{{pixapi_taxidcredit}}",
			"name": "{{pixapi_namecredit}}",
			"accountType": "****",
			"key": "{{pixapi_key}}",
			"personType": "NATURAL_PERSON"
		},
		"createdAt": "2026-08-17T14:36:00Z",
		"updatedAt": "2026-08-17T14:36:00Z"
	}
}

Tabela de errorCode

CodeMessage
CBE091É necessário informar o campo: account.
CBE261clientRequestId é obrigatório.
CBE308clientRequestId possui tamanho máximo de 200 caracteres.
CBE115creditParty é obrigatório.
CBE126creditParty.bank é obrigatório e deve existir na lista de participantes Pix.
CBE116creditparty.account é obrigatório.
CBE118creditparty.account possui tamanho maximo de 20 caracteres.
CBE119creditParty.branch é obrigatório.
CBE121creditParty.taxId é obrigatório.
CBE127creditParty.name é obrigatório e possui tamanho maximo de 140 caracteres.
CBE128creditParty.accountType não foi informado ou é invalido.
CBE269creditParty.personType não foi informado ou é invalido.
CBE704alias não pode ser vazio e possui tamanho máximo de 100 caracteres.
CBE225A propriedade {campo} esta fora do padrão. Verifique a documentação.
CBE239Não foi possivel recuperar os dados do cliente para busca do JWT.
CBE488Ja existe dados na base com o mesmo clientRequestId enviado.
CBE703Já existe um contato cadastrado com os dados informados.
CBE234Não foi possivel realizar essa operação. Tente novamente mais tarde.
CIE999Ocorreu um erro interno durante a chamada da api.

Did this page help you?