REST API Bitrix24: Documentação Prática

Guia Atualizado da REST API do Bitrix24

Seja bem-vindo ao nosso guia definitivo sobre a REST API do Bitrix24! Aqui você encontrará tudo o que precisa para começar a explorar e aplicar os recursos da API com confiança, eficiência e de forma atualizada com base na documentação oficial do Bitrix24.

Ao final deste guia, disponibilizamos materiais complementares, links úteis e dicas para quem quer se aprofundar. Caso tenha dúvidas, entre em contato conosco pelo WhatsApp ou agende uma consultoria especializada.

O que é o Bitrix24?

O Bitrix24 é uma plataforma completa de CRM e colaboração, com recursos que vão desde vendas e gestão de clientes até tarefas, projetos, RH e comunicação. Disponível na nuvem e com versão gratuita, ele também oferece acesso à sua REST API (em planos pagos e durante o trial de 15 dias).

Quer ver mais de 130 formas de uso? Acesse aqui . Faça agora sua versão gratuita do Bitrix24 e veja também dicas para começar trabalhar no Bitrix24.

Acesso à REST API: planos, permissões e primeiros passos

Disponibilidade:

  • REST API está disponível apenas em planos pagos ou durante o período de demonstração (15 dias).
  • Para saber se está ativo, clique em “Meu Plano” no cabeçalho do Bitrix24.
  • Desenvolvedores podem solicitar ambiente NFR (sandbox).

Permissões:

  • Toda chamada à API é executada em nome de um usuário.
  • Utilize uma conta com perfil de administrador para ter acesso total.

Como acessar e autenticar a API

1. Webhook de Entrada

O jeito mais simples de testar a API é com webhooks:

  • Acesse “Recursos do Desenvolvedor” > Outros > Webhook de entrada
  • Escolha os módulos que o webhook pode acessar
  • Copie a URL gerada com token exclusivo

2. Construtor de Solicitações

Ferramenta nativa do Bitrix24 para criar chamadas REST:

  • Escolha o método (ex: crm.deal.list)
  • Insira os parâmetros desejados
  • Clique em Executar para ver o retorno JSON

3. OAuth 2.0 (para apps e integrações mais complexas)

Use OAuth quando precisar de:

  • Login de múltiplos usuários
  • Publicação de apps no Marketplace

Veja documentação oficial de OAuth

Estrutura básica da chamada REST API

https://empresa.bitrix24.com/rest/user_id/token/method.json?param1=valor1

Exemplo prático:

https://empresa.bitrix24.com/rest/276/xbnc9mu1u0yxkglr/crm.deal.list.json?SELECT[]=ID&SELECT[]=TITLE

Componentes:

  • empresa.bitrix24.com: seu portal Bitrix
  • 276: ID do usuário (dono do webhook)
  • token: chave de autenticação
  • crm.deal.list: método a ser chamado

Métodos HTTP principais

MétodoUso
GETConsultar dados (ex: crm.contact.get)
ADDCriar recurso (ex: crm.deal.add)
UPDATEAtualizar recurso (ex: tasks.task.update)
DELETERemover recurso (ex: crm.contact.delete)

Perceba na API que praticamente existe uma função para cada ação desejada. Compreender e utilizar esses métodos de forma eficaz é crucial para aproveitar ao máximo as capacidades de integração e automação oferecidas pela API do Bitrix24. Nesta tabela trago os principais endpoints, sua utilidade e um exemplo de URL, onde […] é o mesmo que https://empresa.bitrix24.com.br/rest/276/xbnc9mu1u0yxkglr

EndpointFuncionalidadeExemplo
Negócios
crm.deal.getMostra todas as informações de um negócio específico que você passou no parâmetro id[…]/crm.deal.get/?id=226935
crm.deal.listObtém lista de todos os negócios. É possível aplicar filtros, como no exemplo[…]/crm.deal.list/?&FILTER[TITLE]=lemos&select[]=ID&select[]=TITLE
crm.deal.productrows.getObtém lista de todos os produtos atrelados a um negócio.[…]/crm.deal.productrows.get/?id=226935
crm.deal.productrows.setInsere produtos em um negócio[…]/?id=643&rows[0][PRODUCT_NAME]=PRODUTO 1&rows[0][PRICE]=100&rows[0][QUANTITY]=4&rows[1][PRODUCT_NAME]=TAOTAO&rows[1][PRICE]=400&rows[1][QUANTITY]=1&rows[2][PRODUCT_NAME]=TERCEIRO&rows[2][PRICE]=400&rows[2][QUANTITY]=1
crm.deal.updateAtualiza campos de um negócio específico[…]/?id=226935&Fields[TITLE]=TESTE&Fields[TYPE_ID]=SALE&Fields[STAGE_ID]=C95:NEW&Fields[CURRENCY_ID]=BRL&Fields[OPPORTUNITY]=0.00&Fields[IS_MANUAL_OPPORTUNITY]=N&Fields[TAX_VALUE]=0.00&Fields[COMPANY_ID]=0&Fields[ASSIGNED_BY_ID]=276&Fields[CREATED_BY_ID]=276&Fields[MODIFY_BY_ID]=276&Fields[OPENED]=Y&Fields[CLOSED]=N&Fields[CATEGORY_ID]=95&Fields[STAGE_SEMANTIC_ID]=P&Fields[IS_NEW]=Y&Fields[IS_RECURRING]=N&Fields[IS_RETURN_CUSTOMER]=N&Fields[IS_REPEATED_APPROACH]=N
crm.deal.addAdiciona um novo negócio[…]/crm.deal.add/?Fields[TITLE]=TESTE&Fields[TYPE_ID]=SALE&Fields[STAGE_ID]=C95:NEW&Fields[CURRENCY_ID]=BRL&Fields[OPPORTUNITY]=0.00&Fields[IS_MANUAL_OPPORTUNITY]=N&Fields[TAX_VALUE]=0.00&Fields[COMPANY_ID]=0&Fields[ASSIGNED_BY_ID]=276&Fields[CREATED_BY_ID]=276&Fields[MODIFY_BY_ID]=276&Fields[OPENED]=Y&Fields[CLOSED]=N&Fields[CATEGORY_ID]=95&Fields[STAGE_SEMANTIC_ID]=P&Fields[IS_NEW]=Y&Fields[IS_RECURRING]=N&Fields[IS_RETURN_CUSTOMER]=N&Fields[IS_REPEATED_APPROACH]=N
crm.deal.deleteExclui um negócio específico[…]/crm.deal.delete/?id=226935
crm.timeline.comment.addAdiciona um comentário no negócio[…]/crm.timeline.comment.add/?fields[ENTITY_ID]=181&fields[ENTITY_TYPE]=deal&fields[COMMENT]=Visita%20ao%20Cliente%2008/12/2020
crm.deal.productrows.getObtém informações de produtos atrelados a um negócio
[…]/crm.deal.productrows.get/?id=643
crm.product.fieldsObtém a descrição dos campos de produtos[…]/crm.product.fields/
crm/configs/productprops/edit[…]/crm/configs/productprops/edit/295/
crm.product.get[…]/crm.product.get/?id=433
crm/configs/productprops[…]/crm/configs/productprops/
crm.deal.productrows.set[…]/crm.deal.productrows.set/?id=643&rows[0][PRODUCT_NAME]=PRODUTO 1&rows[0][PRICE]=100&rows[0][QUANTITY]=4&rows[1][PRODUCT_NAME]=TAOTAO&rows[1][PRICE]=400&rows[1][QUANTITY]=1&rows[2][PRODUCT_NAME]=TERCEIRO&rows[2][PRICE]=400&rows[2][QUANTITY]=1
EndpointFuncionalidadeExemplo
Contato
crm.contact.fieldsRetorna a descrição dos campos padrões e personalizados de Contato[…]/crm.contact.fields/
EndpointFuncionalidadeExemplo
Empresa
crm.company.fieldsRetorna a descrição dos campos padrões e personalizados de Empresa[…]/c[…]/crm.company.fields/
EndpointFuncionalidadeExemplo
Leads
crm.lead.fieldsRetorna a descrição dos campos padrões e personalizados de Lead[…]/crm.lead.fields/
crm.lead.addAdiciona um novo lead[…]/crm.lead.add/&fields[TITLE]=SOME-TITLE&fields[NAME]=SOME-NAME&fields[SECOND_NAME]=SOME-SECOND-NAME&fields[COMMENTS]=SOME-COMMENTARY&fields[PHONE][0][VALUE]=869123123&fields[PHONE][0][VALUE_TYPE]=WORK
crm.lead.getObtém informações de um lead[…]/crm.lead.get/?id=3511
crm.lead.listLista todos os leads[…]/crm.lead.list/
EndpointFuncionalidadeExemplo
Tarefas
tasks.task.addAdiciona uma nova tarefa[…]/tasks.task.add/?fields[TITLE]=Título da Tarefa&fields[DESCRIPTION]=Descrição da Tarefa&fields[RESPONSIBLE_ID]=8&fields[START_DATE_PLAN]=2024-05-01T00:00:00&fields[END_DATE_PLAN]=2024-05-30T00:00:00&fields[DEADLINE]=2024-05-30T00:00:00&fields[PRIORITY]=2&fields[TASK_CONTROL]=Y&fields[PARENT_ID]=0&fields[DEPENDS_ON]=0&fields[AUDITORS]=2&fields[ACCOMPLICES]=3&fields[groupId]=88
tasks.task.updateAtualiza campos da tarefa[…]/tasks.task.update?taskId=1333&fields[ufCrmTask]=D_181
tasks.task.comments.addAdiciona comentário a tarefa[…]/tasks.task.comments.add?taskId=1&fields[POST_MESSAGE]=hello%20world!
task.item.updateCria uma subtarefa[…]/task.item.update?TASKID=idtarefafilho&TASKDATA[PARENT_ID]=idtarefapai
tasks.task.getObtém informações de uma Tarefa[…]/tasks.task.get?id=1333
task.stages.movetaskMuda a tarefa de fase[…]/task.stages.movetask?id=111&stageId=341
EndpointFuncionalidadeExemplo
Usuários
user.getObtém informações de um usuário[…]/user.get/?ID=28
user.get?[sort]Lista usuários ordenando por um campo[…]/user.get?[sort]=[UF_XING][order]=[ASC]
user.searchProcura um usuário pelo nome[…]/user.search?FILTER[NAME]=gustavo&FILTER[LAST_NAME]=lemos
EndpointFuncionalidadeExemplo
CRM em geral
crm.duplicate.findbycommRetorna os IDs dos leads, contatos ou empresas que contêm o número de telefone ou e-mail especificados[…]/crm.duplicate.findbycomm.json?type=PHONE&values[]=67992445335
crm.status.listRetorna uma lista de elementos de acordo com o filtro indicado pelo parâmetro filter[…]/crm.status.list?filter[ENTITY_ID]=SOURCE
crm.company.getObtém informações de uma Empresa[…]/crm.company.get/?id=1061
crm.company.fieldsConsulta os campos da Empresa[…]/crm.company.fields/
crm.contact.getObtém informações de um Contato[…]/crm.contact.get/?id=1359
crm.contact.updateAtualiza um contato[…]/crm.contact.update?id=57855&fields[PHONE][0][ID]=+554899873058+&fields[PHONE][0][VALUE_TYPE]=WORK&fields[PHONE][0][VALUE]=+5548991537044
user.fieldsObtém a descrição dos campos de usuário[…]/user.fields/
crm.contact.list.jsoncrm.contact.list.json?filter[PHONE]=8903227&select[0]=ID&select[1]=NAME&select[2]=LAST_NAME
crm.deal.productrows.getObtém informações de produtos atrelados a um negócio
[…]/crm.deal.productrows.get/?id=643
crm.product.fieldsObtém a descrição dos campos de produtos[…]/crm.product.fields/
crm/configs/productprops/edit[…]/crm/configs/productprops/edit/295/
crm.product.get[…]/crm.product.get/?id=433
crm/configs/productprops[…]/crm/configs/productprops/
crm.deal.productrows.set[…]/crm.deal.productrows.set/?id=643&rows[0][PRODUCT_NAME]=PRODUTO 1&rows[0][PRICE]=100&rows[0][QUANTITY]=4&rows[1][PRODUCT_NAME]=TAOTAO&rows[1][PRICE]=400&rows[1][QUANTITY]=1&rows[2][PRODUCT_NAME]=TERCEIRO&rows[2][PRICE]=400&rows[2][QUANTITY]=1
lists.element.add[…]/lists.element.add?IBLOCK_TYPE_ID=bitrix_processes&IBLOCK_ID=31&ELEMENT_CODE=item 1&fields[NAME]=item 1
lists.element.update[…]/lists.element.update?IBLOCK_TYPE_ID=bitrix_processes&IBLOCK_ID=223&ELEMENT_ID=1745&FIELDS[PROPERTY_1385]=Teste&FIELDS[NAME]=Teste1
bizproc.workflow.startInicia a execução de uma automação[…]/bizproc.workflow.start/?TEMPLATE_ID=657&DOCUMENT_ID[0]=crm&DOCUMENT_ID[1]=CCrmDocumentDeal&DOCUMENT_ID[2]=719
bizproc.workflow.terminateInterrompe a execução de uma automação[…]/bizproc.workflow.terminate/?id=61519213912911.16166729
bizprocConsulta o ID de uma automaçãohttps://empresa.bitrix24.com.br/bizproc/bizproc/
crm/configs/fields/CRM_LEADConsulta as características do campohttps://empresa.bitrix24.com.br/crm/configs/fields/CRM_LEAD/edit/UF_CRM_1566224490/
imopenlines.crm.chat.getLastIdBusca ID do último chat usado[…]/imopenlines.crm.chat.getLastId?CRM_ENTITY_TYPE=CONTACT&CRM_ENTITY={{1.id_contato}}
imopenlines.operator.transferTransfere a última conversa[…]/imopenlines.operator.transfer?CHAT_ID=40981&TRANSFER_ID=323
imopenlines.crm.message.addEnvia mensagem[…]imopenlines.crm.message.add?CRM_ENTITY_TYPE=company&CRM_ENTITY=449&USER_ID=1&CHAT_ID=28533&MESSAGE=Oi
imopenlines.operator.another.finishFinaliza conversa[…]/imopenlines.operator.another.finish?CHAT_ID=26387
crm.item.updateAltera um item da SPA[…]/crm.item.update?entityTypeId={ID da SPA}&id={ID do Card}&fields[ID campo SPA]=Valor do campo

Dica bônus: Para ter uma visualização melhor dos campos, utilize a extensão JSON FORMATTER no Google Chrome

O Bitrix24 disponibiliza uma tabela com a estrutura básica dos campos padrões de Empresas, Negócios, Leads, Contatos, Recursos e Atividades. Também possuímos uma tabela personalizada para consultar os principais campos que você pode baixar aqui.

A API Bitrix24 tem um método específico para cada ação. Exemplo:

Filtros, ordenação e seleção de campos

A maioria dos métodos aceita os parâmetros:

  • ORDER[]=: ordenação, ex: ORDER[]=NAME:ASC
  • FILTER[]=: filtrar dados, ex: FILTER[>PROBABILITY]=50
  • SELECT[]=: especificar campos, ex: SELECT[]=ID&SELECT[]=UF_*

Dicas:

  • Para todos os campos personalizados: SELECT[]=*&SELECT[]=UF_*
  • Use % como curinga, ex: FILTER[NAME]=%an% para pegar “Jan”, “Brian”…
  • A filtragem é case-insensitive mas depende do formato exato (ex: telefone precisa estar idêntico)

Diferença entre crm.deal.get e crm.deal.list

A maioria dos métodos aceita os parâmetros:

MétodoResultado
crm.deal.getGETRetorna todos os campos, inclusive personalizados
crm.deal.listRetorna apenas campos padrão, a menos que especifique com SELECT[]=

Exemplos práticos

# Listar todos os contatos
crm.contact.list.json?select[]=ID&select[]=NAME

# Buscar contato por telefone
crm.contact.list.json?filter[PHONE]=8903227&select[]=ID&select[]=NAME

# Buscar todos os produtos de um Negócio
crm.deal.productrows.get.json?id=226935

Utilize a extensão JSON Formatter no Chrome para facilitar a leitura do retorno.

Enviando arquivos via API

Para transferir um arquivo, é necessário especificar dois parâmetros – o nome do arquivo com sua extensão, além do código base64, que na verdade é um conjunto de dados para o arquivo.

Os dados no campo são enviados em um arquivo compactado. Visualmente, isso pode ser representado assim:

[[somefile.txt,base64],[somefile2.txt,base64]]

Os dados no campo são enviados em um arquivo compactado. Visualmente, isso pode ser representado assim:

/crm.deal.update?ID=123&FIELDS[UF_CRM_1674832920][0][fileData][0]=somefile.txt&FIELDS[UF_CRM_1674832920][0][fileData][1]=SGVsbG8gd29ybGQ%3D

Explicação:

  • /crm.deal.update?ID=123 – acessa o negócio com ID 123 para atualizá-lo.
  • FIELDS[UF_CRM_1674832920][0][fileData][0]=somefile.txt – envia o nome do arquivo.
  • FIELDS[UF_CRM_1674832920][0][fileData][1]=SGVsbG8gd29ybGQ%3D – envia o conteúdo do arquivo em base64.

Testando com Postman

Uma maneira prática e segura de testar chamadas da API Bitrix24 é usando o Postman:

  1. Baixe o arquivo de coleção .postman_collection.json
  2. No Postman, clique em Importar > Arquivo e selecione o arquivo
  3. Configure as variáveis {{domain}}, {{user_id}} e {{token}} no ambiente
  4. Execute requisições como crm.contact.get, crm.deal.list, crm.status.list, entre outras já preparadas

Exemplo de chamada:

https://empresa.bitrix24.com.br/rest/25/s9epahw88mj42jlv/crm.deal.get/?id=7323

https://empresa.bitrix24.com.br/rest/25/s9epahw88mj42jlv/crm.deal.get/?id=7323

Com o Postman, você pode montar, testar e automatizar chamadas REST com mais agilidade. Ideal para desenvolvedores, agências e parceiros Bitrix24.

Webhooks: como utilizar

Os webhooks são uma ferramenta poderosa para integrar e automatizar processos no Bitrix24, permitindo que você receba notificações em tempo real sobre eventos específicos. Vamos explicar como configurar e utilizar Webhooks no Bitrix24, com base na documentação oficial, facilitando a comunicação entre o Bitrix24 e outros sistemas ou até entre ele mesmo.

  1. Acesse Recursos do Desenvolvedor > Webhook de Entrada
  2. Dê um nome ao webhook
  3. Escolha o escopo e permissões
  4. Use o Construtor de Solicitação para gerar exemplos

Após abrir a seção de webhook, você pode realizar as seguintes ações:

– Alterar o nome do webhook;
– Selecionar o método REST API no Construtor de solicitações (você pode ler a descrição do método e baixar um exemplo de código completo com os parâmetros necessários para executar as solicitações);

-Adicionar Parâmetros
– Verificar se o webhook está operacional, clicando em Executar;
– Atribuir permissões de acesso para módulos e ferramentas individuais do Bitrix24.

O Construtor de solicitações contém uma URL que deve ser usada ao enviar dados de um sistema externo de terceiros para o Bitrix24.

Você pode sempre contar com o auxílio da equipe Sapiens. Surgiu alguma dúvida? Nos chame no Whatsapp!

Dica: biblioteca oficial e exemplos

A Bitrix disponibiliza bibliotecas para PHP (Crest), JavaScript (BX24.js) e SDKs para aplicações em nuvem. Utilize para facilitar suas chamadas e lidar com autenticação de forma segura.

Materiais complementares

Conclusão

A REST API do Bitrix24 é uma poderosa aliada para quem deseja automação e integração. Com as informações e exemplos deste guia, você está pronto para começar a criar soluções práticas e avançadas. E lembre-se: a equipe Sapiens está pronta para ajudar sempre que você precisar!

Vamos juntos acelerar seus processos e resultados!

Restou alguma dúvida?

Agende uma reunião ou nos chame no Whatsapp. Teremos o maior prazer em lhe ajudar.

A primeira hora de consultoria é GRATUITA!

Deixe um comentário