# 3DS Beehive
Source: https://docs.beehivehub.io/3DS-Beehive
Passo a passo para autenticação 3DS.
***
# 🔒 Autenticação 3DS
Ao processar transações com cartão de crédito, a autenticação 3DS adiciona uma camada extra de segurança, reduzindo riscos de fraude e aumentando a aprovação das transações.
O fluxo correto é:
1. Importar o script de autenticação 3DS no front-end
2. Configurar a chave pública da empresa
3. Verificar se o 3DS está disponível
4. Realizar a autenticação 3DS
5. Tokenizar os dados do cartão
6. Enviar o token para o back-end criar a transação
Esse processo garante conformidade com padrões de segurança e protege dados sensíveis.
***
## Setup da biblioteca
Adicione o script da Beehive no `
` da sua página:
```html theme={null}
```
***
## Configuração inicial
Antes de qualquer operação, configure o SDK da Beehive.
```javascript theme={null}
// Inicialização do SDK Beehive
const BeehivePay = HopyPay;
// Configure com a chave pública da sua empresa
BeehivePay.setPublicKey("pk_live_sua_chave_publica");
```
***
## Validação do 3DS
Antes de autenticar, verifique se o 3DS está habilitado:
```javascript theme={null}
const is3DSAvailable = await BeehivePay.is3DSAvailable();
console.log("3DS disponível:", is3DSAvailable); // true ou false
```
***
## Autenticação 3DS
Se o 3DS estiver disponível, execute a autenticação:
```javascript theme={null}
const card = {
number: "4111111111111111",
holderName: "Bruce Wayne",
expMonth: 5,
expYear: 2028,
cvv: "123",
};
if (is3DSAvailable) {
await BeehivePay.authenticate3DS({
amount: 4990, // valor em centavos
currency: "brl", // sempre "brl"
installments: 2, // número de parcelas
card,
});
}
```
***
## Tokenização
Após a autenticação, gere o token do cartão:
```javascript theme={null}
const token = await BeehivePay.encrypt({
number: "4111111111111111",
holderName: "Bruce Wayne",
expMonth: 5,
expYear: 2028,
cvv: "123",
});
console.log("Token:", token);
```
***
## 🚀 Envio da transação
No seu servidor, envie o token gerado para criar a transação via API, garantindo que a autenticação 3DS foi realizada com sucesso.
# Beehive + Adoorei
Source: https://docs.beehivehub.io/Beehive-Adoorei
Passo a passo para integrar a Beehive Pay à plataforma Adoorei.
# Beehive + Adoorei
## 1) Pegar sua chave na Adoorei
1. No menu da **Adoorei**, acesse **Configurações → Credenciais de API**.
2. **Copie a Chave Secreta**.
## 2) Instalar e configurar a Beehive Pay na Adoorei
1. Vá em **Apps**.
2. Selecione **Beehive Pay**.
3. **Cole a Chave Secreta**.
4. **Defina suas regras de pagamento**.
> ⚠️ Importante: **não ative** a opção **“Utilizar taxa de juros customizada”**.
## 3) Ativar a integração
1. Altere o status para **ATIVO**.
2. Clique em **SALVAR**.
✅ Integração concluída. Sua loja está pronta para vender via Beehive.
# Beehive + Alphazz
Source: https://docs.beehivehub.io/Beehive-Alphazz
Passo a passo para integrar a Beehive Pay à plataforma Alphazz.
# Beehive + Alphazz
## 1) Pegar suas chaves na Beehive
No painel da Beehive, acesse:
**Configurações → Credenciais de API**
Copie:
* **Chave privada (secreta)**
* **Chave pública**
> ⚠️ Não compartilhe essas chaves. Se vazar, é igual deixar a porta da loja aberta.
***
## 2) Configurar o gateway no Alphazz
No **Alphazz Checkout**, acesse:
**Menu Gateways → Beehive**
Preencha:
* **Chave privada** (cole a chave privada/secreta da Beehive)
* **Chave pública** (cole a chave pública da Beehive)
***
## 3) Ativar e salvar
* Deixe o status como **Ativo**
* Clique em **Salvar**
✅ Integração concluída. Seu Alphazz já está pronto para processar pagamentos via Beehive.
# Beehive + Luna
Source: https://docs.beehivehub.io/Beehive-Luna
Passo a passo para integrar a Beehive Pay ao Luna Checkout.
# Beehive + Luna
## 1) Pegar suas chaves na Beehive
1. Acesse **Beehive → Configurações → Credenciais de API**.
2. Copie a **Chave Pública**.
3. Clique em **Revelar chave** para ver a **Chave Secreta**.
4. Digite o **código enviado por e-mail** e copie a chave.
5. Salve **Chave Pública + Chave Secreta** em um local seguro.
## 2) Conectar a Beehive na Luna
1. Acesse **Luna Checkout → Configurações → Gateways**.
2. Selecione **PayBeehive**.
3. Cole primeiro a **Chave Secreta** e depois a **Chave Pública**.
4. Clique em **Salvar**.
## 3) Configurar pagamentos (Cartão e/ou Pix)
1. Vá em **Checkout → Pagamentos**.
2. Habilite **Cartão** e/ou **Pix**.
3. Em cada método, selecione **PayBeehive** como gateway.
> 💡 Dica: se quiser **repassar juros do parcelamento**, configure as taxas nas opções de cartão.
✅ Integração concluída.
# Beehive + Zedy
Source: https://docs.beehivehub.io/Beehive-Zedy
Passo a passo para integrar a Beehive Pay ao Zedy Checkout.
# Beehive + Zedy
## 1) Pegar suas chaves na Beehive
1. Acesse **Beehive → Configurações → Credenciais de API**.
2. Copie a **Chave Pública**.
3. Clique em **Revelar chave de API** para ver a **Chave Secreta**.
4. Digite o **código enviado por e-mail**.
5. Copie e salve **as duas chaves**.
## 2) Conectar a Beehive na Zedy
1. Acesse **Zedy Checkout → Gateways**.
2. Selecione **Beehive Pay**.
3. Cole primeiro a **Chave Secreta** e depois a **Chave Pública**.
4. Marque o status como **Ativo**.
5. Clique em **Ativar Integração**.
> 💡 Dica: se quiser **repassar juros do parcelamento**, configure as taxas nas opções de cartão.
✅ Integração concluída.
# Obter saldo disponível
Source: https://docs.beehivehub.io/api-reference/balance/get-balance
/api-reference/openapi.yaml get /balance
Retorna o saldo disponível e bloqueado da conta.
# Adicionar conta bancária
Source: https://docs.beehivehub.io/api-reference/bank-accounts/add-bank-account
/api-reference/openapi.yaml post /recipients/{recipientId}/bank-accounts
Para alterar a conta bancária principal de um recebedor, você deve adicionar uma nova conta bancária para ele usando esse endpoint.
# Buscar conta bancária por ID
Source: https://docs.beehivehub.io/api-reference/bank-accounts/get-bank-account
/api-reference/openapi.yaml get /recipients/{recipientId}/bank-accounts/{bankAccountId}
Retorna os detalhes de uma conta bancária específica vinculada a um recebedor (`recipientId`).
# Buscar contas bancárias
Source: https://docs.beehivehub.io/api-reference/bank-accounts/list-bank-accounts
/api-reference/openapi.yaml get /recipients/{recipientId}/bank-accounts
Lista as contas bancárias vinculadas a um recebedor (`recipientId`).
# Dados da empresa
Source: https://docs.beehivehub.io/api-reference/company/get-company
/api-reference/openapi.yaml get /company
Para operações da empresa use a rota /company
# Atualizar dados da empresa
Source: https://docs.beehivehub.io/api-reference/company/update-company
/api-reference/openapi.yaml put /company
# Criar cliente
Source: https://docs.beehivehub.io/api-reference/customers/create-customer
/api-reference/openapi.yaml post /customers
Permite que você crie um novo cliente para a sua loja.
# Buscar cliente
Source: https://docs.beehivehub.io/api-reference/customers/get-customer
/api-reference/openapi.yaml get /customers/{customerId}
Retorna os dados completos de um cliente pelo `customerId`.
# Listar clientes
Source: https://docs.beehivehub.io/api-reference/customers/list-customers
/api-reference/openapi.yaml get /customers
Lista clientes filtrando por email.
**Obs:** neste ambiente o parâmetro `email` é obrigatório.
# Referência da API
Source: https://docs.beehivehub.io/api-reference/introduction
Visão geral da API Beehive Pay — autenticação, base URL e formato de respostas.
## Base URL
Todos os endpoints utilizam a seguinte URL base:
```
https://api.conta.paybeehive.com.br/v1
```
## Autenticação
A API utiliza **Basic Access Authentication**. Você deve enviar sua **chave secreta** codificada em Base64 no header `Authorization`.
```
Authorization: Basic
```
> A senha é sempre `x` — não é utilizada, mas é exigida pelo padrão Basic Auth.
**Onde encontrar sua chave secreta:**
Acesse [Configurações → Credenciais de API](https://app.conta.paybeehive.com.br/settings/credentials) ou clique em **Credenciais** no canto superior direito.
## Formato das respostas
Todas as respostas são retornadas em **JSON**.
```json theme={null}
{
"id": 12345,
"status": "paid",
"amount": 500
}
```
## Códigos de status HTTP
| Código | Significado |
| ------ | -------------------------------------------- |
| `200` | Sucesso |
| `400` | Requisição inválida |
| `401` | Não autorizado — verifique sua chave secreta |
| `404` | Recurso não encontrado |
| `500` | Erro interno do servidor |
## Endpoints disponíveis
Explore os endpoints organizados por recurso no menu lateral:
* **Transações** — criar, listar e buscar transações (cartão, Pix e boleto)
* **Reembolsos** — estornar transações
* **Clientes** — criar, listar e buscar clientes
* **Transferências** — criar e consultar transferências
* **Saldo** — consultar saldo disponível
* **Recebedores** — criar e consultar recebedores
* **Contas Bancárias** — adicionar e consultar contas bancárias
* **Empresa** — consultar e atualizar dados da empresa
* **Payment Links** — criar e atualizar payment links
* **Webhooks** — modelo de payloads dos eventos
# Criar links de pagamento
Source: https://docs.beehivehub.io/api-reference/payment-links/create-payment-link
/api-reference/openapi.yaml post /payment-links
Cria um novo link de pagamento com valor, título e configurações de pagamento.
# Excluir link de pagamento
Source: https://docs.beehivehub.io/api-reference/payment-links/delete-payment-link
/api-reference/openapi.yaml delete /payment-links/{paymentLinkId}
Exclui um link de pagamento existente.
# Buscar link de pagamento por ID
Source: https://docs.beehivehub.io/api-reference/payment-links/get-payment-link
/api-reference/openapi.yaml get /payment-links/{paymentLinkId}
Retorna os detalhes de um link de pagamento específico.
# Buscar links de pagamento
Source: https://docs.beehivehub.io/api-reference/payment-links/list-payment-links
/api-reference/openapi.yaml get /payment-links
Retorna a lista de links de pagamento cadastrados.
# Atualizar link de pagamento
Source: https://docs.beehivehub.io/api-reference/payment-links/update-payment-link
/api-reference/openapi.yaml put /payment-links/{paymentLinkId}
Atualiza um link de pagamento existente.
# Criar recebedor
Source: https://docs.beehivehub.io/api-reference/recipients/create-recipient
/api-reference/openapi.yaml post /recipients
Cria um recebedor (recipient) para receber valores via split/repasse.
# Buscar recebedor
Source: https://docs.beehivehub.io/api-reference/recipients/get-recipient
/api-reference/openapi.yaml get /recipients/{recipientId}
# Listar recebedores
Source: https://docs.beehivehub.io/api-reference/recipients/list-recipients
/api-reference/openapi.yaml get /recipients
# Atualizar recebedor
Source: https://docs.beehivehub.io/api-reference/recipients/update-recipient
/api-reference/openapi.yaml put /recipients/{recipientId}
# Estornar transação
Source: https://docs.beehivehub.io/api-reference/refunds/refund-transaction
/api-reference/openapi.yaml post /transactions/{transactionId}/refund
Cria um estorno para uma transação existente.
# Criar transação
Source: https://docs.beehivehub.io/api-reference/transactions/create-transaction
/api-reference/openapi.yaml post /transactions
Cria uma transação (cartão de crédito, Pix ou boleto).
# Buscar transação
Source: https://docs.beehivehub.io/api-reference/transactions/get-transaction
/api-reference/openapi.yaml get /transactions/{transactionId}
Retorna os detalhes completos de uma transação pelo seu `transactionId`.
# Listar transações
Source: https://docs.beehivehub.io/api-reference/transactions/list-transactions
/api-reference/openapi.yaml get /transactions
Lista transações com filtros.
# Criar transferência
Source: https://docs.beehivehub.io/api-reference/transfers/create-transfer
/api-reference/openapi.yaml post /transfers
Cria uma transferência para um recebedor.
# Buscar transferência
Source: https://docs.beehivehub.io/api-reference/transfers/get-transfer
/api-reference/openapi.yaml get /transfers/{transferId}
Retorna os detalhes de uma transferência pelo `transferId`.
# Exemplo de payload de webhook
Source: https://docs.beehivehub.io/api-reference/webhooks/webhook-event
/api-reference/openapi.yaml post /webhooks/events
Endpoint ilustrativo (documentação do payload). Não é para ser chamado pelo cliente.
# Autenticação
Source: https://docs.beehivehub.io/authentication
## 🔐Como funciona o campo authorization na nossa API.
A nossa API usa **Basic Access Authentication**.
Traduzindo: você autentica enviando sua **chave secreta** codificada em **Base64**, dentro do header HTTP chamado **authorization**.
### **🤔 O que isso significa na prática?**
```
Basic
```
No nosso caso:
* **username** → é a **sua chave secreta** (SECRET\_KEY)
* **password** → é sempre "x"
* Não é usado para nada, mas precisa existir por padrão do Basic Auth.
Ou seja, você precisa montar a string:
`SECRET_KEY:x`
E depois converter isso para Base64.
### **🧠 Exemplo real explicado passo a passo**
**Configurações → Credenciais de API → Chave secreta**
1. Monte a string assim:
```json theme={null}
minha_chave_secreta_aqui:x
```
1. Converta para base64:
```json theme={null}
bWluaGFfY2hhdmVfc2VjcmV0YV9hcXVpOng=
```
1. Envie no header:
```json theme={null}
authorization: Basic bWluaGFfY2hhdmVfc2VjcmV0YV9hcXVpOng=
```
### **🟧 Exemplo em Node.js atualizado**
```bash theme={null}
const options = {
method: "POST",
url: "https://api.conta.paybeehive.com.br/v1/transactions",
headers: {
authorization: "Basic " + Buffer.from(`${SECRET_KEY}:x`).toString("base64"),
"Content-Type": "application/json"
},
body: JSON.stringify({
/* payload da transação */
})
};
```
## **Onde pegar sua chave secreta 🧭**
No painel da Beehive:
**Configurações → Credenciais de API**
Ali você verá:
* 🔑 **Chave secreta**
* 🔓 **Chave pública** (para uso client-side, não serve para autenticar na API)
* ⏳ Prazo de expiração da chave
A **chave secreta** é a que você deve usar no Basic Auth.
# Entrando em Produção
Source: https://docs.beehivehub.io/development
Preview changes locally to update your docs
# Entrando em Produção
### 1. 🚀 Acesse o Ambiente de Produção
Acesse [https://app.conta.paybeehive.com.br/settings/company](https://app.conta.paybeehive.com.br/settings/company) e siga o passo a passo abaixo
***
### 2. 🏢 Preencha o Cadastro Completo
* Insira todos os dados da empresa.
* Informe os dados dos sócios/representantes legais.
* Anexe os documentos obrigatórios:
* 📄 Documentos da empresa (CNPJ, contrato social, etc.)
* 🧑💼 Documentos dos sócios (RG, CPF)
* 🏠 Comprovante de endereço atualizado
* 📂 Outros documentos específicos do segmento, se necessário
***
### 3. 📤 Envio e Validação dos Documentos
* Após anexar todos os documentos, envie para análise.
* Certifique-se de que todos os arquivos estão legíveis e atualizados.
* Mantenha as informações consistentes entre os documentos.
***
### 4. 🔎 Análise e Aprovação
* A equipe responsável fará a análise dos dados e documentos enviados.
* O prazo de resposta costuma ser de até 24 horas úteis.
* Caso haja pendências ou necessidade de documentos adicionais, você será notificado por e-mail ou pela própria plataforma.
***
### 5. ✅ Recebimento da Aprovação
Após aprovação, você receberá um e-mail com a confirmação e instruções para os próximos passos no ambiente de produção.
***
### 6. 💡 Dicas para Aprovação Rápida
* Garanta a legibilidade dos documentos.
* Verifique se todos os dados estão corretos e atualizados.
* Responda rapidamente a eventuais solicitações de complementação.
# Comece por aqui
Source: https://docs.beehivehub.io/index
## **👋 Bem-vindo à nossa documentação de API!**
### 🐝 Como navegar pela documentação
Para facilitar sua jornada, organizamos a documentação em etapas simples e objetivas. Siga cada uma delas para aproveitar ao máximo nossa API!
* **Introdução**: Visão geral e primeiros passos.
* **Autenticação**: Como garantir acesso seguro à API.
* **Tokenização de Cartão de Crédito**: Protegendo dados sensíveis.
* **Entrando em Produção**: Dicas para migrar do ambiente de testes para o real.
* **Webhook**: Automatizando notificações e integrações.
> 📌 Siga cada etapa, e você terá todo o suporte para uma integração de sucesso!
### **Sobre a API**
Nossa API segue os padrões **REST**. Todas as respostas são enviadas no formato **JSON**.
Para autenticar, você deve passar sua **chave secreta** seguindo o padrão [Basic Access Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication).
### **🔑 Onde encontrar suas chaves**
Acesse o menu:
[Configurações → Credenciais de API](https://app.conta.paybeehive.com.br/settings/credentials)
ou clique no botão localizado no canto superior direito "Credenciais".
Ali você verá:
* **Chave secreta** (para autenticação na API)
* **Chave pública** (uso client-side, não serve para autenticar na API)
# LLMs
Source: https://docs.beehivehub.io/llms-beehive
Como a Beehive disponibiliza contexto estruturado para agentes de IA e ferramentas como Cursor, Claude e ChatGPT.
## O que é o llms.txt?
O `llms.txt` é um arquivo de texto simples que fica na raiz de um site ou documentação e serve como **fonte de contexto para modelos de linguagem (LLMs)**. O conceito é análogo ao `robots.txt` para motores de busca — mas voltado para IAs.
Quando você cola a URL de um `llms.txt` em ferramentas como Cursor, Claude ou ChatGPT, o modelo passa a entender o produto, os endpoints, os padrões de autenticação e as regras de negócio daquela API **sem precisar vasculhar páginas de documentação separadas**.
O padrão foi proposto por [Jeremy Howard](https://llmstxt.org) e vem sendo adotado por fintechs, APIs e ferramentas developer-first ao redor do mundo.
***
## Por que a Beehive tem um?
A API Beehive tem particularidades que costumam gerar erros em integrações assistidas por IA:
* Autenticação com esquema **Bearer + Basic** (base64 de `SECRET_KEY:x`)
* Valores sempre em **centavos** (ex.: `10000` = R\$ 100,00)
* Objeto `metadata` **obrigatório** em toda transação
* QR Code PIX: a API retorna o **texto**, não a imagem — a renderização é responsabilidade do cliente
* Tokenização de cartão **exclusivamente no front-end** (PCI-DSS)
Sem contexto adequado, agentes de IA cometem esses erros com frequência. O `llms.txt` resolve isso: ele reúne em um único arquivo todas as regras, exemplos e orientações específicas para quem está construindo ou gerando código de integração com a Beehive.
***
## Como usar
### No Cursor
Abra o chat do Cursor e cole o link do arquivo como contexto:
```
https://docs.beehivehub.io/llms.txt
```
A partir daí, o Cursor entende os endpoints, campos obrigatórios e padrões da API ao gerar ou revisar código.
### No Claude ou ChatGPT
Inicie sua conversa colando o conteúdo do arquivo ou fornecendo a URL diretamente:
```
Contexto da API: https://docs.beehivehub.io/llms.txt
Com base nisso, me ajude a criar uma transação PIX de R$ 50,00.
```
### Em qualquer agente ou MCP
O arquivo segue o padrão `llms.txt` — compatível com qualquer ferramenta que consuma contexto em texto plano.
***
## Acessar o arquivo
Arquivo de contexto completo da API Beehive para uso em agentes de IA, Cursor, Claude e ChatGPT.
***
# n8n
Source: https://docs.beehivehub.io/n8n
Integre a Beehive com o n8n para automatizar fluxos e criar rotinas.
**O node da BeehiveHub para n8n permite integrar o gateway de pagamentos da plataforma diretamente aos seus fluxos de automação. Com ele, você pode automatizar cobranças, consultar transações, cadastrar clientes, criar transferências, consultar saldo e gerar links de pagamento sem sair do n8n.**
> Esta página mostra como instalar e usar o node. Para detalhes completos dos campos aceitos em cada operação, consulte também a referência da API.
## Instalação
Você pode instalar o node da BeehiveHub via npm em ambientes self-hosted.
Para a instalação do nó, recomendamos que seu n8n self-hosted seja hospedado em um ambiente [Docker](https://docs.n8n.io/hosting/installation/docker/), seguindo a própria documentação do n8n como base
### Via npm
```bash theme={null}
npm install @paybeehive/n8n-nodes-beehivehub
```
***
## Credenciais
Para usar este node, você precisa de uma **BeehiveHub API Secret Key**.
### Como obter sua chave
1. Faça login no dashboard da paybeehive
2. Vá até as configurações da conta ou seção de API Keys
3. Copie sua `Secret Key`
### Como configurar no n8n
1. No n8n, vá em **Credentials**
2. Clique em **Create Credential**
3. Procure por **BeehiveHub API**
4. Cole sua `Secret Key`
5. Clique em **Save**
> O node usa HTTP Basic Auth internamente. A secret key é enviada como usuário, e a senha é ignorada pela API.
***
## Operações disponíveis
### Transaction
* **Create**: cria uma nova transação (`pix`, `boleto` ou `credit_card`)
* **Get**: consulta uma transação por ID
* **Get Many**: lista transações com filtros
* **Refund**: realiza reembolso total ou parcial
* **Update Delivery Status**: atualiza o status de entrega da transação
### Customer
* **Create**: cadastra um novo cliente
* **Get**: consulta um cliente por ID
* **Get Many**: lista clientes
### Transfer
* **Create**: cria uma transferência
* **Get**: consulta uma transferência por ID
### Balance
* **Get Available**: consulta o saldo disponível
### Payment Link
* **Create**: cria um link de pagamento
* **Get**: consulta um link por ID
* **Get Many**: lista todos os links
* **Update**: atualiza um link existente
* **Delete**: remove um link
***
## Como usar
Depois de instalar o pacote e configurar a credencial:
1. Crie ou abra um workflow no n8n
2. Adicione o node **BeehiveHub**
3. Escolha o recurso desejado, como `Transaction`, `Customer`, `Transfer`, `Balance` ou `Payment Link`
4. Selecione a operação
5. Preencha os campos necessários
6. Execute o node para testar a integração
***
## Valores em centavos
Todos os valores monetários devem ser enviados em centavos.
Exemplos:
* `1000` = R\$ 10,00
* `4990` = R\$ 49,90
***
## Métodos de pagamento aceitos
Ao criar uma transação, o campo `paymentMethod` aceita os seguintes valores:
* `pix`
* `boleto`
* `credit_card`
***
## Compatibilidade
* **n8n**: versão mínima `1.0`
* **Node.js**: `v22` ou superior
* **n8n API version**: `1` em modo strict
> O pacote foi testado em n8n self-hosted. A compatibilidade com n8n Cloud depende da verificação de community nodes.
***
## Uso com IA no n8n
Este node é marcado como `usableAsTool`, o que permite utilizá-lo como ferramenta em fluxos com **n8n AI Agent**.
Isso é útil para cenários em que um agente precisa, por exemplo:
* criar uma cobrança automaticamente
* consultar uma transação
* buscar saldo
* gerar um link de pagamento como parte de um fluxo inteligente
***
## Casos de uso
O node da BeehiveHub é indicado para fluxos como:
* receber dados de formulário e gerar cobrança
* consultar pagamentos automaticamente
* cadastrar clientes sem ação manual
* gerar links de pagamento para enviar em outros canais
* integrar a operação financeira com CRM, planilhas, e-mail ou automações internas
***
## Exemplo de fluxo
Um fluxo simples com n8n pode seguir esta lógica:
1. Receber um formulário ou webhook
2. Criar uma transação Pix
3. Armazenar a resposta em uma planilha ou CRM
4. Enviar o link ou QR Code para o cliente
***
## Observações importantes
* Use sempre sua `Secret Key` correta no ambiente desejado
* Revise os campos obrigatórios conforme o recurso selecionado
* Para payloads mais detalhados, combine esta página com a referência da API
* Em transações com cartão, siga o fluxo seguro de tokenização antes do envio para a API
***
## Recursos úteis
* Documentação da API da paybeehive
* Documentação de Community Nodes do n8n
* Fórum da comunidade n8n
# Tokenização de Cartão de Crédito
Source: https://docs.beehivehub.io/quickstart
Quando você cria uma transação usando cartão de crédito, o número do cartão nunca deve ser enviado diretamente para a API.
### O fluxo correto é:
1. **Tokenizar** os dados do cartão no front-end
2. Receber um **token seguro**
3. Enviar esse token na requisição de criação da transação no back-end
Esse processo garante conformidade com **PCI-DSS**, reduz sua superfície de risco e impede que dados sensíveis passem pelo seu servidor.
### **🧩 Incluindo a biblioteca de tokenização**
A tokenização é feita **exclusivamente no front-end**, usando nossa biblioteca JavaScript.
Basta adicionar o script abaixo **no \ da sua página**
```javascript theme={null}
```
Esse script carrega a engine de criptografia responsável por transformar os dados reais do cartão em um token seguro.
### **🔑 Configurando a biblioteca**
Antes de gerar qualquer token, você precisa definir:
* A **chave pública** da sua company (obtida em Configurações → Credenciais de API)
* Se o ambiente está em **modo de teste** ou produção
```json theme={null}
BeehivePay.setPublicKey("SUA_CHAVE_PUBLICA_AQUI");
BeehivePay.setTestMode(true); // Defina false em produção
```
A chave pública **não oferece risco** — ela foi criada exatamente para ser usada no front-end.
### **🪄 Gerando o token do cartão (encrypt)**
Após o cliente digitar os dados do cartão e clicar em finalizar compra, você chama:
```javascript theme={null}
var token = await BeehivePay.encrypt({
number: "4111111111111111",
holderName: "Bruce Wayne",
expMonth: 1,
expYear: 2025,
cvv: "123"
});
```
**O que acontece aqui?**
* Os dados são criptografados diretamente no navegador
* Nenhuma informação sensível trafega pelo seu servidor
* Você recebe algo assim:
```bash theme={null}
bhp_tok_6af98c4e1c6e4f0ab6d93e8e7d093fab
```
Esse token representa o cartão e **pode ser enviado com segurança para o back-end**.
**Precisa de ajuda?** Veja nossa documentação completa ou entre em nossa comunidade.
# Java
Source: https://docs.beehivehub.io/sdk-java
SDK oficial para integração com a API do Beehive Hub. Aceite pagamentos de forma simples e rápida.
## Requisitos
* Java 11 ou superior
* Maven ou Gradle
## Instalação
**Maven** — adicione ao seu `pom.xml`:
```xml theme={null}
br.com.paybeehive
beehivehub-java-sdk
1.0.0
```
**Gradle:**
```gradle theme={null}
implementation 'br.com.paybeehive:beehivehub-java-sdk:1.0.0'
```
## Autenticação
Inicialize o SDK com a sua `SECRET_KEY`:
```java theme={null}
import br.com.paybeehive.sdk.BeehiveHubClient;
BeehiveHubClient beehive = new BeehiveHubClient(System.getenv("BEEHIVE_SECRET_KEY"));
```
## Ambiente Sandbox
Se quiser usar o ambiente de testes:
```java theme={null}
BeehiveHubClient beehive = new BeehiveHubClient(System.getenv("BEEHIVE_SECRET_KEY"), "sandbox");
```
## Primeiro uso
Exemplo de criação de uma transação Pix:
```java theme={null}
import br.com.paybeehive.sdk.BeehiveHubClient;
import br.com.paybeehive.sdk.models.Transaction;
import br.com.paybeehive.sdk.requests.CreateTransactionRequest;
BeehiveHubClient beehive = new BeehiveHubClient(System.getenv("BEEHIVE_SECRET_KEY"));
CreateTransactionRequest request = new CreateTransactionRequest();
request.setAmount(15990L);
request.setPaymentMethod("pix");
request.setPostbackUrl("https://seusite.com/webhook");
Transaction transaction = beehive.transactions.create(request);
System.out.println("Transação criada: " + transaction.getId());
```
## Recursos disponíveis
O SDK possui métodos para os principais recursos da API:
* `transactions`
* `customers`
* `transfers`
* `balance`
* `recipients`
* `bankAccounts`
* `company`
* `paymentLinks`
***
## Transações
### Criar transação
```java theme={null}
CreateTransactionRequest request = new CreateTransactionRequest();
request.setAmount(8900L);
request.setPaymentMethod("pix");
request.setPostbackUrl("https://seusite.com/webhook");
Transaction transaction = beehive.transactions.create(request);
```
### Listar transações
```java theme={null}
ListTransactionsParams params = new ListTransactionsParams();
params.setLimit(50);
params.setOffset(0);
params.setStartDate("2026-01-01T00:00:00");
List transactions = beehive.transactions.list(params);
```
### Buscar transação por ID
```java theme={null}
Transaction transaction = beehive.transactions.get(123456L);
```
### Reembolsar transação
```java theme={null}
// Reembolso total
beehive.transactions.refund(123456L, null);
// Reembolso parcial
beehive.transactions.refund(123456L, 3000L);
```
### Atualizar status de entrega
```java theme={null}
UpdateDeliveryStatusRequest request = new UpdateDeliveryStatusRequest();
request.setStatus("in_transit");
request.setTrackingCode("BR123456789");
beehive.transactions.updateDelivery(123456L, request);
```
***
## Clientes
### Criar cliente
```java theme={null}
import br.com.paybeehive.sdk.models.Address;
import br.com.paybeehive.sdk.models.Document;
Document document = new Document();
document.setType("cpf");
document.setNumber("98765432100");
Address address = new Address();
address.setStreet("Rua Exemplo");
address.setStreetNumber("200");
address.setComplement("Sala 3");
address.setNeighborhood("Centro");
address.setZipCode("01001000");
address.setCity("São Paulo");
address.setState("SP");
address.setCountry("br");
CreateCustomerRequest request = new CreateCustomerRequest();
request.setName("Mariana Costa");
request.setEmail("mariana@email.com");
request.setPhone("11977777777");
request.setDocument(document);
request.setAddress(address);
Customer customer = beehive.customers.create(request);
```
### Listar clientes
> O parâmetro `email` é obrigatório nessa listagem. A API não utiliza paginação convencional para este recurso.
```java theme={null}
List customers = beehive.customers.list("cliente@example.com");
```
### Buscar cliente por ID
```java theme={null}
Customer customer = beehive.customers.get(123456L);
```
***
## Transferências
### Criar transferência
```java theme={null}
CreateTransferRequest request = new CreateTransferRequest();
request.setAmount(50000L);
request.setRecipientId(916L);
Transfer transfer = beehive.transfers.create(request);
```
### Buscar transferência por ID
```java theme={null}
Transfer transfer = beehive.transfers.get(123456L);
```
***
## Saldo
### Consultar saldo
```java theme={null}
Balance balance = beehive.balance.get();
System.out.println("Available: BRL " + balance.getAmount() / 100.0);
System.out.println("Recipient ID: " + balance.getRecipientId());
```
***
## Recebedores
### Criar recebedor
```java theme={null}
CreateRecipientRequest request = new CreateRecipientRequest();
request.setLegalName("Recebedor Teste Ltda");
Recipient recipient = beehive.recipients.create(request);
```
### Listar recebedores
```java theme={null}
List recipients = beehive.recipients.list();
```
### Buscar recebedor por ID
```java theme={null}
Recipient recipient = beehive.recipients.get(916L);
```
### Atualizar recebedor
```java theme={null}
UpdateRecipientRequest request = new UpdateRecipientRequest();
request.setLegalName("Beehive Sandbox");
Recipient updated = beehive.recipients.update(916L, request);
```
***
## Contas bancárias
### Adicionar conta bancária a um recebedor
```java theme={null}
CreateBankAccountRequest request = new CreateBankAccountRequest();
request.setBankCode("341");
request.setAgencyNumber("9876");
request.setAccountNumber("54321");
request.setAccountDigit("0");
request.setType("conta_poupanca");
request.setLegalName("Empresa Teste Ltda");
request.setDocumentNumber("60572883000136");
request.setDocumentType("cnpj");
BankAccount bankAccount = beehive.bankAccounts.create(916L, request);
```
### Listar contas bancárias
```java theme={null}
List accounts = beehive.bankAccounts.list(916L);
```
***
## Empresa
### Consultar dados da empresa
```java theme={null}
Company company = beehive.company.get();
```
### Atualizar dados da empresa
```java theme={null}
UpdateCompanyRequest request = new UpdateCompanyRequest();
request.setInvoiceDescriptor("Beehive Hub");
UpdateCompanyRequest.Details details = new UpdateCompanyRequest.Details();
details.setAverageRevenue(10000L);
details.setAverageTicket(100L);
details.setPhysicalProducts(true);
details.setProductsDescription("Produtos físicos");
details.setSiteUrl("https://www.meusite.com.br");
details.setPhone("11999999999");
details.setEmail("contato@meusite.com.br");
request.setDetails(details);
Company updated = beehive.company.update(request);
```
***
## Links de pagamento
O SDK adiciona a propriedade `url` nas respostas de criação, consulta, listagem e atualização quando existe um `alias`.
* Produção: `https://link.conta.paybeehive.com.br/{alias}`
* Sandbox: `https://link.sandbox.hopysplit.com.br/{alias}`
Se `alias` não for enviado, o SDK gera automaticamente um código alfanumérico de 10 caracteres.
### Criar link de pagamento
```java theme={null}
CreatePaymentLinkRequest request = new CreatePaymentLinkRequest();
request.setTitle("Meu Link de Pagamento");
request.setAlias("alias_alterado");
request.setAmount(1000L);
PaymentLink paymentLink = beehive.paymentLinks.create(request);
// paymentLink.getUrl() já vem montada
```
### Listar links de pagamento
> A API não aceita filtros por query parameters nesse recurso. A listagem retorna todos os links da empresa.
```java theme={null}
List paymentLinks = beehive.paymentLinks.list();
```
### Buscar link de pagamento por ID
```java theme={null}
PaymentLink paymentLink = beehive.paymentLinks.get(247L);
```
### Atualizar link de pagamento
> A atualização aceita payload parcial, ou seja, você pode enviar apenas os campos que deseja alterar.
```java theme={null}
UpdatePaymentLinkRequest request = new UpdatePaymentLinkRequest();
request.setTitle("Link Atualizado");
request.setAmount(2000L);
PaymentLink updated = beehive.paymentLinks.update(247L, request);
```
### Excluir link de pagamento
```java theme={null}
beehive.paymentLinks.delete(247L);
```
***
## Tratamento de erros
O SDK expõe classes específicas para tratamento de erro:
* `BeehiveHubAPIError`
* `BeehiveHubAuthenticationError`
* `BeehiveHubValidationError`
* `BeehiveHubNotFoundError`
* `BeehiveHubRateLimitError`
* `BeehiveHubNetworkError`
Exemplo:
```java theme={null}
import br.com.paybeehive.sdk.BeehiveHubClient;
import br.com.paybeehive.sdk.exceptions.*;
BeehiveHubClient beehive = new BeehiveHubClient(System.getenv("BEEHIVE_SECRET_KEY"));
try {
Transaction transaction = beehive.transactions.create(request);
System.out.println("Transação criada: " + transaction.getId());
} catch (BeehiveHubAuthenticationError e) {
System.err.println("Chave inválida: " + e.getMessage());
} catch (BeehiveHubValidationError e) {
System.err.println("Erro de validação: " + e.getMessage());
} catch (BeehiveHubNotFoundError e) {
System.err.println("Não encontrado: " + e.getMessage());
} catch (BeehiveHubRateLimitError e) {
System.err.println("Rate limit excedido: " + e.getMessage());
} catch (BeehiveHubAPIError e) {
System.err.println("Erro na API: " + e.getMessage());
} catch (BeehiveHubNetworkError e) {
System.err.println("Erro de rede: " + e.getMessage());
}
```
***
## Valores em centavos
Todos os valores monetários enviados para a API devem ser informados em centavos.
```java theme={null}
// R$ 100,00
request.setAmount(10000L);
// R$ 1,50
request.setAmount(150L);
// Convertendo reais para centavos
double reais = 100.0;
long cents = Math.round(reais * 100); // 10000
```
***
## Boas práticas de segurança
* Nunca exponha sua `SECRET_KEY`
* Valide os dados antes de enviar para a API
* Use HTTPS
* Implemente webhooks para acompanhar mudanças de status
```java theme={null}
// Defina a variável de ambiente: BEEHIVE_SECRET_KEY=your_secret_key_here
BeehiveHubClient beehive = new BeehiveHubClient(System.getenv("BEEHIVE_SECRET_KEY"));
```
# Node.js
Source: https://docs.beehivehub.io/sdk-nodejs
SDK oficial para integração com a API do Beehive Hub. Aceite pagamentos de forma simples e rápida.
## Instalação
```bash theme={null}
npm install @paybeehive/beehivehub-nodejs-sdk
```
## Autenticação
Inicialize o SDK com a sua `SECRET_KEY`:
```typescript theme={null}
import BeehiveHub from "@paybeehive/beehivehub-nodejs-sdk";
const beehive = BeehiveHub(process.env.BEEHIVE_SECRET_KEY!);
```
## Ambiente Sandbox
Se quiser usar o ambiente de testes:
```typescript theme={null}
import BeehiveHub from "@paybeehive/beehivehub-nodejs-sdk";
const beehive = BeehiveHub(process.env.BEEHIVE_SECRET_KEY!, {
environment: "sandbox",
});
```
## Primeiro uso
Exemplo de criação de uma transação Pix:
```typescript theme={null}
import BeehiveHub from "@paybeehive/beehivehub-nodejs-sdk";
const beehive = BeehiveHub(process.env.BEEHIVE_SECRET_KEY!);
async function criarTransacao() {
const response = await beehive.transactions.create({
amount: 15990,
paymentMethod: "pix",
customer: {
name: "Ana Souza",
email: "ana.souza@email.com",
document: {
type: "cpf",
number: "00000000191",
},
phone: "11999999999",
},
items: [
{
title: "Pedido #1001",
unitPrice: 15990,
quantity: 1,
tangible: true,
},
],
postbackUrl: "https://seusite.com/webhook",
metadata: {
orderId: "1001",
},
});
return response;
}
```
## Recursos disponíveis
O SDK possui métodos para os principais recursos da API:
* `transactions`
* `customers`
* `transfers`
* `balance`
* `recipients`
* `bankAccounts`
* `company`
* `paymentLinks`
***
## Transações
### Criar transação
```typescript theme={null}
const transaction = await beehive.transactions.create({
amount: 8900,
paymentMethod: "pix",
customer: {
name: "Carlos Lima",
email: "carlos@email.com",
document: {
type: "cpf",
number: "00000000191",
},
phone: "11988888888",
},
items: [
{
title: "Produto teste",
unitPrice: 8900,
quantity: 1,
tangible: true,
},
],
});
```
### Listar transações
```typescript theme={null}
const transactions = await beehive.transactions.list({
limit: 50,
offset: 0,
createdFrom: "2026-01-01T00:00:00",
})
```
### Buscar transação por ID
```typescript theme={null}
const transaction = await beehive.transactions.get(123456);
```
### Reembolsar transação
```typescript theme={null}
const fullRefund = await beehive.transactions.refund(123456);
const partialRefund = await beehive.transactions.refund(123456, 3000);
```
### Atualizar status de entrega
```typescript theme={null}
const delivery = await beehive.transactions.updateDelivery(123456, {
status: "in_transit",
trackingCode: "BR123456789",
});
```
***
## Clientes
### Criar cliente
```typescript theme={null}
const customer = await beehive.customers.create({
name: "Mariana Costa",
email: "mariana@email.com",
document: {
type: "cpf",
number: "98765432100",
},
phone: "11977777777",
address: {
street: "Rua Exemplo",
streetNumber: "200",
complement: "Sala 3",
neighborhood: "Centro",
zipCode: "01001000",
city: "São Paulo",
state: "SP",
country: "br",
},
});
```
### Listar clientes
> O parâmetro `email` é obrigatório nessa listagem. A API não utiliza paginação convencional para este recurso.
```typescript theme={null}
const customers = await beehive.customers.list({
email: "cliente@example.com",
});
```
### Buscar cliente por ID
```typescript theme={null}
const customers = await beehive.customers.list({
email: "cliente@example.com",
});
```
***
## Transferências
### Criar transferência
```typescript theme={null}
const transfer = await beehive.transfers.create({
amount: 50000,
recipientId: 916,
});
```
### Criar transferência com conta bancária
```typescript theme={null}
const transferWithAccount = await beehive.transfers.create({
amount: 50000,
recipientId: 916,
bankAccount: {
bankCode: "001",
agencyNumber: "1234",
accountNumber: "12345",
accountDigit: "6",
type: "conta_corrente",
legalName: "Destinatário Teste",
documentNumber: "12345678900",
documentType: "cpf",
},
});
```
### Buscar transferência por ID
```typescript theme={null}
const transfer = await beehive.transfers.get(123456);
```
***
## Saldo
### Consultar saldo
```typescript theme={null}
const balance = await beehive.balance.get();
console.log(`Available: BRL ${balance.amount / 100}`);
console.log(`Recipient ID: ${balance.recipientId}`);
```
***
## Recebedores
### Criar recebedor
```typescript theme={null}
const recipient = await beehive.recipients.create({
legalName: "Recebedor Teste Ltda",
document: {
type: "cnpj",
number: "58593776000142",
},
transferSettings: {
transferEnabled: true,
automaticAnticipationEnabled: false,
anticipatableVolumePercentage: 100,
},
bankAccount: {
bankCode: "001",
agencyNumber: "1234",
accountNumber: "12345",
accountDigit: "6",
type: "conta_corrente",
legalName: "Recebedor Teste Ltda",
documentNumber: "58593776000142",
documentType: "cnpj",
},
});
```
### Listar recebedores
```typescript theme={null}
const recipients = await beehive.recipients.list();
```
### Buscar recebedor por ID
```typescript theme={null}
const recipient = await beehive.recipients.get(916);
```
### Atualizar recebedor
```typescript theme={null}
const updated = await beehive.recipients.update(916, {
legalName: "Beehive Sandbox",
});
```
***
## Contas bancárias
### Adicionar conta bancária a um recebedor
```typescript theme={null}
const bankAccount = await beehive.bankAccounts.create(916, {
bankCode: "341",
agencyNumber: "9876",
accountNumber: "54321",
accountDigit: "0",
type: "conta_poupanca",
legalName: "Empresa Teste Ltda",
documentNumber: "60572883000136",
documentType: "cnpj",
});
```
### Listar contas bancárias
```typescript theme={null}
const accounts = await beehive.bankAccounts.list(916);
```
***
## Empresa
### Consultar dados da empresa
```typescript theme={null}
const company = await beehive.company.get();
```
### Atualizar dados da empresa
```typescript theme={null}
const updated = await beehive.company.update({
invoiceDescriptor: "Beehive Hub",
details: {
averageRevenue: 10000,
averageTicket: 100.5,
physicalProducts: true,
productsDescription: "Produtos físicos",
siteUrl: "https://www.meusite.com.br",
phone: "11999999999",
email: "contato@meusite.com.br",
},
});
```
***
## Links de pagamento
O SDK adiciona a propriedade `url` nas respostas de criação, consulta, listagem e atualização quando existe um `alias`.
* Produção: `https://link.conta.paybeehive.com.br/{alias}`
* Sandbox: `https://link.sandbox.hopysplit.com.br/{alias}`
Se `alias` não for enviado, o SDK gera automaticamente um código alfanumérico de 10 caracteres.
### Criar link de pagamento
```typescript theme={null}
const paymentLink = await beehive.paymentLinks.create({
title: "novo link alterado",
alias: "alias_alterado",
amount: 1000,
settings: {
defaultPaymentMethod: "credit_card",
requestAddress: true,
requestPhone: true,
traceable: true,
boleto: {
enabled: true,
expiresInDays: 0,
},
pix: {
enabled: false,
expiresInDays: 0,
},
card: {
enabled: false,
freeInstallments: 1,
maxInstallments: 12,
},
},
});
// paymentLink.url já vem montada
```
### Listar links de pagamento
> A API não aceita filtros por query parameters nesse recurso. A listagem retorna todos os links da empresa.
```typescript theme={null}
const paymentLinks = await beehive.paymentLinks.list();
```
### Buscar link de pagamento por ID
```typescript theme={null}
const paymentLink = await beehive.paymentLinks.get(247);
```
### Atualizar link de pagamento
> A atualização aceita payload parcial, ou seja, você pode enviar apenas os campos que deseja alterar.
```typescript theme={null}
const updated = await beehive.paymentLinks.update(247, {
title: "novo link alterado",
alias: "alias_alterado",
amount: 1000,
settings: {
defaultPaymentMethod: "credit_card",
requestAddress: true,
requestPhone: true,
traceable: true,
boleto: {
enabled: true,
expiresInDays: 0,
},
pix: {
enabled: false,
expiresInDays: 0,
},
card: {
enabled: false,
freeInstallments: 1,
maxInstallments: 12,
},
},
});
```
### Excluir link de pagamento
```text theme={null}
await beehive.paymentLinks.delete(247);
```
***
## Tratamento de erros
O SDK expõe classes específicas para tratamento de erro:
* `BeehiveHubAPIError`
* `BeehiveHubAuthenticationError`
* `BeehiveHubValidationError`
* `BeehiveHubNotFoundError`
* `BeehiveHubRateLimitError`
* `BeehiveHubNetworkError`
Exemplo:
```typescript theme={null}
import BeehiveHub, {
BeehiveHubAPIError,
BeehiveHubAuthenticationError,
BeehiveHubValidationError,
} from "@paybeehive/beehivehub-nodejs-sdk";
const beehive = BeehiveHub(process.env.BEEHIVE_SECRET_KEY!);
try {
const transaction = await beehive.transactions.create({
amount: 10000,
paymentMethod: "pix",
customer: {
name: "João Silva",
email: "joao@example.com",
document: {
type: "cpf",
number: "12345678900",
},
phone: "11999999999",
},
});
console.log("Transaction created:", transaction);
} catch (error) {
if (error instanceof BeehiveHubAuthenticationError) {
console.error("Invalid API key:", error.message);
} else if (error instanceof BeehiveHubValidationError) {
console.error("Validation error:", error.message);
} else if (error instanceof BeehiveHubAPIError) {
console.error("API error:", error.message);
} else {
console.error("Unexpected error:", error);
}
}
```
***
## Valores em centavos
Todos os valores monetários enviados para a API devem ser informados em centavos.
```typescript theme={null}
// R$ 100,00
amount: 10000;
// R$ 1,50
amount: 150;
// Convertendo reais para centavos
const reais = 100.0;
const cents = Math.round(reais * 100);
```
***
## Boas práticas de segurança
* Nunca exponha sua `SECRET_KEY`
* Não gere `card_hash` no backend
* Valide os dados antes de enviar para a API
* Use HTTPS
* Implemente webhooks para acompanhar mudanças de status
```text theme={null}
// .env
BEEHIVE_SECRET_KEY=your_secret_key_here
```
```typescript theme={null}
// app.ts
import BeehiveHub from "@paybeehive/beehivehub-nodejs-sdk";
import dotenv from "dotenv";
dotenv.config();
const beehive = BeehiveHub(process.env.BEEHIVE_SECRET_KEY!);
```
***
# Introdução
Source: https://docs.beehivehub.io/sdk-overview
Bibliotecas oficiais da BeehiveHub para integração com a API
Os SDKs oficiais da BeehiveHub são bibliotecas que facilitam a integração com a nossa API em aplicações backend.
Em vez de montar manualmente chamadas HTTP, headers de autenticação, tratamento de erros e estrutura de requisições, você utiliza métodos prontos para criar transações, consultar clientes, gerar links de pagamento, fazer transferências e acessar outros recursos da plataforma.
## Por que usar um SDK?
O SDK foi criado para tornar a integração mais rápida, organizada e segura.
Ao utilizar o SDK, você reduz a complexidade da implementação porque:
* não precisa montar requisições manualmente para cada endpoint;
* centraliza a autenticação com a sua `SECRET_KEY`;
* trabalha com métodos mais diretos e fáceis de manter;
* reduz a chance de erro na integração;
* acelera a implementação dos recursos mais comuns da API.
## Quando faz sentido usar?
O SDK é indicado quando você possui uma aplicação backend e quer integrar a BeehiveHub no seu servidor, API própria, painel administrativo, backoffice ou backend de e-commerce.
Exemplos de uso:
* criação de transações Pix, boleto e cartão;
* consulta de transações e clientes;
* criação de recebedores e transferências;
* geração de links de pagamento;
* automações internas do seu sistema financeiro.
> Recomendamos o uso dos SDKs para integrações **server-side**. Nunca utilize sua `SECRET_KEY` no front-end.
## Escolha sua linguagem
SDK oficial para aplicações Node.js e TypeScript.
SDK oficial para aplicações PHP.
SDK oficial para aplicações Python.
SDK oficial para aplicações Java.
## Perguntas Frequentes
Cada SDK possui uma página dedicada com as instruções de instalação. De forma geral, utilize o gerenciador de pacotes da sua linguagem:
* **Node.js:** `npm install @paybeehive/beehivehub-nodejs-sdk`
* **PHP:** `composer require paybeehive/beehivehub-php-sdk`
* **Python:** `pip install beehivehub-python-sdk`
* **Java:** via Maven ou Gradle — veja a [página do SDK Java](/sdk-java)
Sim. Todos os SDKs suportam os dois ambientes. Para usar o ambiente de testes, passe `environment: "sandbox"` ao inicializar o cliente. Para produção, basta não informar o parâmetro ou usar a chave da conta de produção.
O uso do SDK é recomendado, mas opcional. Você pode integrar diretamente pela API REST usando qualquer cliente HTTP. A vantagem do SDK é eliminar a configuração manual de autenticação, tratamento de erros e estrutura das requisições.
Abra uma issue no repositório GitHub do SDK correspondente. Nossa equipe acompanha os repositórios e trabalha para corrigir problemas e evoluir os SDKs continuamente.
# PHP
Source: https://docs.beehivehub.io/sdk-php
SDK oficial para integração com a API do Beehive Hub. Aceite pagamentos de forma simples e rápida.
## Requisitos
* PHP 8.2 ou superior
* Extensão `curl`
* Extensão `json`
* Composer
## Instalação
```bash theme={null}
composer require paybeehive/beehivehub-php-sdk
```
## Autenticação
Inicialize o SDK com a sua `SECRET_KEY`:
```php theme={null}
use BeehiveHub\SDK\BeehiveHubClient;
$beehive = new BeehiveHubClient($_ENV['BEEHIVE_SECRET_KEY']);
```
## Ambiente Sandbox
Se quiser usar o ambiente de testes:
```php theme={null}
use BeehiveHub\SDK\BeehiveHubClient;
$beehive = new BeehiveHubClient($_ENV['BEEHIVE_SECRET_KEY'], [
'environment' => 'sandbox',
]);
```
## Primeiro uso
Exemplo de criação de uma transação Pix:
```php theme={null}
use BeehiveHub\SDK\BeehiveHubClient;
$beehive = new BeehiveHubClient($_ENV['BEEHIVE_SECRET_KEY']);
$response = $beehive->transactions->create([
'amount' => 15990,
'paymentMethod' => 'pix',
'customer' => [
'name' => 'Ana Souza',
'email' => 'ana.souza@email.com',
'document' => [
'type' => 'cpf',
'number' => '00000000191',
],
'phone' => '11999999999',
],
'items' => [
[
'title' => 'Pedido #1001',
'unitPrice' => 15990,
'quantity' => 1,
'tangible' => true,
],
],
'postbackUrl' => 'https://seusite.com/webhook',
'metadata' => [
'orderId' => '1001',
],
]);
```
## Recursos disponíveis
O SDK possui métodos para os principais recursos da API:
* `transactions`
* `customers`
* `transfers`
* `balance`
* `recipients`
* `bankAccounts`
* `company`
* `paymentLinks`
***
## Transações
### Criar transação
```php theme={null}
$transaction = $beehive->transactions->create([
'amount' => 8900,
'paymentMethod' => 'pix',
'customer' => [
'name' => 'Carlos Lima',
'email' => 'carlos@email.com',
'document' => [
'type' => 'cpf',
'number' => '00000000191',
],
'phone' => '11988888888',
],
'items' => [
[
'title' => 'Produto teste',
'unitPrice' => 8900,
'quantity' => 1,
'tangible' => true,
],
],
]);
```
### Listar transações
```php theme={null}
$transactions = $beehive->transactions->list([
'limit' => 50,
'offset' => 0,
'createdFrom' => '2026-01-01T00:00:00',
]);
```
### Buscar transação por ID
```php theme={null}
$transaction = $beehive->transactions->get(123456);
```
### Reembolsar transação
```php theme={null}
// Reembolso total
$fullRefund = $beehive->transactions->refund(123456);
// Reembolso parcial
$partialRefund = $beehive->transactions->refund(123456, 3000);
```
### Atualizar status de entrega
```php theme={null}
$delivery = $beehive->transactions->updateDelivery(123456, [
'status' => 'in_transit',
'trackingCode' => 'BR123456789',
]);
```
***
## Clientes
### Criar cliente
```php theme={null}
$customer = $beehive->customers->create([
'name' => 'Mariana Costa',
'email' => 'mariana@email.com',
'document' => [
'type' => 'cpf',
'number' => '98765432100',
],
'phone' => '11977777777',
'address' => [
'street' => 'Rua Exemplo',
'streetNumber' => '200',
'complement' => 'Sala 3',
'neighborhood' => 'Centro',
'zipCode' => '01001000',
'city' => 'São Paulo',
'state' => 'SP',
'country' => 'br',
],
]);
```
### Listar clientes
> O parâmetro `email` é obrigatório nessa listagem. A API não utiliza paginação convencional para este recurso.
```php theme={null}
$customers = $beehive->customers->list([
'email' => 'cliente@example.com',
]);
```
### Buscar cliente por ID
```php theme={null}
$customer = $beehive->customers->get(123456);
```
***
## Transferências
### Criar transferência
```php theme={null}
$transfer = $beehive->transfers->create([
'amount' => 50000,
'recipientId' => 916,
]);
```
### Criar transferência com conta bancária
```php theme={null}
$transfer = $beehive->transfers->create([
'amount' => 50000,
'recipientId' => 916,
'bankAccount' => [
'bankCode' => '001',
'agencyNumber' => '1234',
'accountNumber' => '12345',
'accountDigit' => '6',
'type' => 'conta_corrente',
'legalName' => 'Destinatário Teste',
'documentNumber' => '12345678900',
'documentType' => 'cpf',
],
]);
```
### Buscar transferência por ID
```php theme={null}
$transfer = $beehive->transfers->get(123456);
```
***
## Saldo
### Consultar saldo
```php theme={null}
$balance = $beehive->balance->get();
echo 'Available: BRL ' . ($balance['amount'] / 100) . PHP_EOL;
echo 'Recipient ID: ' . $balance['recipientId'] . PHP_EOL;
```
***
## Recebedores
### Criar recebedor
```php theme={null}
$recipient = $beehive->recipients->create([
'legalName' => 'Recebedor Teste Ltda',
'document' => [
'type' => 'cnpj',
'number' => '58593776000142',
],
'transferSettings' => [
'transferEnabled' => true,
'automaticAnticipationEnabled' => false,
'anticipatableVolumePercentage' => 100,
],
'bankAccount' => [
'bankCode' => '001',
'agencyNumber' => '1234',
'accountNumber' => '12345',
'accountDigit' => '6',
'type' => 'conta_corrente',
'legalName' => 'Recebedor Teste Ltda',
'documentNumber' => '58593776000142',
'documentType' => 'cnpj',
],
]);
```
### Listar recebedores
```php theme={null}
$recipients = $beehive->recipients->list();
```
### Buscar recebedor por ID
```php theme={null}
$recipient = $beehive->recipients->get(916);
```
### Atualizar recebedor
```php theme={null}
$updated = $beehive->recipients->update(916, [
'legalName' => 'Beehive Sandbox',
]);
```
***
## Contas bancárias
### Adicionar conta bancária a um recebedor
```php theme={null}
$bankAccount = $beehive->bankAccounts->create(916, [
'bankCode' => '341',
'agencyNumber' => '9876',
'accountNumber' => '54321',
'accountDigit' => '0',
'type' => 'conta_poupanca',
'legalName' => 'Empresa Teste Ltda',
'documentNumber' => '60572883000136',
'documentType' => 'cnpj',
]);
```
### Listar contas bancárias
```php theme={null}
$accounts = $beehive->bankAccounts->list(916);
```
***
## Empresa
### Consultar dados da empresa
```php theme={null}
$company = $beehive->company->get();
```
### Atualizar dados da empresa
```php theme={null}
$updated = $beehive->company->update([
'invoiceDescriptor' => 'Beehive Hub',
'details' => [
'averageRevenue' => 10000,
'averageTicket' => 100.5,
'physicalProducts' => true,
'productsDescription' => 'Produtos físicos',
'siteUrl' => 'https://www.meusite.com.br',
'phone' => '11999999999',
'email' => 'contato@meusite.com.br',
],
]);
```
***
## Links de pagamento
O SDK adiciona a propriedade `url` nas respostas de criação, consulta, listagem e atualização quando existe um `alias`.
* Produção: `https://link.conta.paybeehive.com.br/{alias}`
* Sandbox: `https://link.sandbox.hopysplit.com.br/{alias}`
Se `alias` não for enviado, o SDK gera automaticamente um código alfanumérico de 10 caracteres.
### Criar link de pagamento
```php theme={null}
$paymentLink = $beehive->paymentLinks->create([
'title' => 'novo link alterado',
'alias' => 'alias_alterado',
'amount' => 1000,
'settings' => [
'defaultPaymentMethod' => 'credit_card',
'requestAddress' => true,
'requestPhone' => true,
'traceable' => true,
'boleto' => [
'enabled' => true,
'expiresInDays' => 0,
],
'pix' => [
'enabled' => false,
'expiresInDays' => 0,
],
'card' => [
'enabled' => false,
'freeInstallments' => 1,
'maxInstallments' => 12,
],
],
]);
// $paymentLink['url'] já vem montada
```
### Listar links de pagamento
> A API não aceita filtros por query parameters nesse recurso. A listagem retorna todos os links da empresa.
```php theme={null}
$paymentLinks = $beehive->paymentLinks->list();
```
### Buscar link de pagamento por ID
```php theme={null}
$paymentLink = $beehive->paymentLinks->get(247);
```
### Atualizar link de pagamento
> A atualização aceita payload parcial, ou seja, você pode enviar apenas os campos que deseja alterar.
```php theme={null}
$updated = $beehive->paymentLinks->update(247, [
'title' => 'novo link alterado',
'alias' => 'alias_alterado',
'amount' => 1000,
'settings' => [
'defaultPaymentMethod' => 'credit_card',
'requestAddress' => true,
'requestPhone' => true,
'traceable' => true,
'boleto' => [
'enabled' => true,
'expiresInDays' => 0,
],
'pix' => [
'enabled' => false,
'expiresInDays' => 0,
],
'card' => [
'enabled' => false,
'freeInstallments' => 1,
'maxInstallments' => 12,
],
],
]);
```
### Excluir link de pagamento
```php theme={null}
$beehive->paymentLinks->delete(247);
```
***
## Tratamento de erros
O SDK expõe classes específicas para tratamento de erro:
* `BeehiveHubAPIError`
* `BeehiveHubAuthenticationError`
* `BeehiveHubValidationError`
* `BeehiveHubNotFoundError`
* `BeehiveHubRateLimitError`
* `BeehiveHubNetworkError`
Exemplo:
```php theme={null}
use BeehiveHub\SDK\BeehiveHubClient;
use BeehiveHub\SDK\Exceptions\BeehiveHubAPIError;
use BeehiveHub\SDK\Exceptions\BeehiveHubAuthenticationError;
use BeehiveHub\SDK\Exceptions\BeehiveHubValidationError;
$beehive = new BeehiveHubClient($_ENV['BEEHIVE_SECRET_KEY']);
try {
$transaction = $beehive->transactions->create([
'amount' => 10000,
'paymentMethod' => 'pix',
'customer' => [
'name' => 'João Silva',
'email' => 'joao@example.com',
'document' => [
'type' => 'cpf',
'number' => '12345678900',
],
'phone' => '11999999999',
],
]);
echo 'Transaction created: ' . $transaction['id'];
} catch (BeehiveHubAuthenticationError $e) {
echo 'Invalid API key: ' . $e->getMessage();
} catch (BeehiveHubValidationError $e) {
echo 'Validation error: ' . $e->getMessage();
} catch (BeehiveHubAPIError $e) {
echo 'API error: ' . $e->getMessage();
} catch (\Exception $e) {
echo 'Unexpected error: ' . $e->getMessage();
}
```
***
## Valores em centavos
Todos os valores monetários enviados para a API devem ser informados em centavos.
```php theme={null}
// R$ 100,00
'amount' => 10000
// R$ 1,50
'amount' => 150
// Convertendo reais para centavos
$reais = 100.0;
$centavos = (int) round($reais * 100);
```
***
## Boas práticas de segurança
* Nunca exponha sua `SECRET_KEY`
* Valide os dados antes de enviar para a API
* Use HTTPS
* Implemente webhooks para acompanhar mudanças de status
```text theme={null}
# .env
BEEHIVE_SECRET_KEY=your_secret_key_here
```
```php theme={null}
// bootstrap.php
use BeehiveHub\SDK\BeehiveHubClient;
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
$beehive = new BeehiveHubClient($_ENV['BEEHIVE_SECRET_KEY']);
```
***
# Python
Source: https://docs.beehivehub.io/sdk-python
SDK oficial para integração com a API do Beehive Hub. Aceite pagamentos de forma simples e rápida.
## Requisitos
* Python 3.10 ou superior
* Dependências instaladas automaticamente: `httpx` e `pydantic`
## Instalação
```bash theme={null}
pip install beehivehub-python-sdk
```
## Autenticação
Inicialize o SDK com a sua `SECRET_KEY`:
```python theme={null}
import os
from beehivehub import create_beehivehub_client
beehive = create_beehivehub_client(os.environ["BEEHIVE_SECRET_KEY"])
```
## Ambiente Sandbox
Se quiser usar o ambiente de testes:
```python theme={null}
import os
from beehivehub import create_beehivehub_client
beehive = create_beehivehub_client(os.environ["BEEHIVE_SECRET_KEY"], environment="sandbox")
```
## Primeiro uso
Exemplo de criação de uma transação Pix:
```python theme={null}
import os
from beehivehub import create_beehivehub_client
beehive = create_beehivehub_client(os.environ["BEEHIVE_SECRET_KEY"])
transaction = beehive.transactions.create({
"amount": 15990,
"paymentMethod": "pix",
"customer": {
"name": "Ana Souza",
"email": "ana.souza@email.com",
"document": {
"type": "cpf",
"number": "00000000191",
},
"phone": "11999999999",
},
"items": [
{
"title": "Pedido #1001",
"unitPrice": 15990,
"quantity": 1,
"tangible": True,
},
],
"postbackUrl": "https://seusite.com/webhook",
"metadata": {
"orderId": "1001",
},
})
```
## Recursos disponíveis
O SDK possui métodos para os principais recursos da API:
* `transactions`
* `customers`
* `transfers`
* `balance`
* `recipients`
* `bank_accounts`
* `company`
* `payment_links`
***
## Transações
### Criar transação
```python theme={null}
transaction = beehive.transactions.create({
"amount": 8900,
"paymentMethod": "pix",
"customer": {
"name": "Carlos Lima",
"email": "carlos@email.com",
"document": {
"type": "cpf",
"number": "00000000191",
},
"phone": "11988888888",
},
"items": [
{
"title": "Produto teste",
"unitPrice": 8900,
"quantity": 1,
"tangible": True,
},
],
})
```
### Listar transações
```python theme={null}
transactions = beehive.transactions.list({
"status": "paid",
"paymentMethods": "pix",
})
```
### Buscar transação por ID
```python theme={null}
transaction = beehive.transactions.get(123456)
```
### Reembolsar transação
```python theme={null}
full_refund = beehive.transactions.refund(123456)
partial_refund = beehive.transactions.refund(123456, 3000)
```
### Atualizar status de entrega
```python theme={null}
delivery = beehive.transactions.update_delivery(123456, {
"status": "in_transit",
"trackingCode": "BR123456789",
})
```
***
## Clientes
### Criar cliente
```python theme={null}
customer = beehive.customers.create({
"name": "Mariana Costa",
"email": "mariana@email.com",
"document": {
"type": "cpf",
"number": "98765432100",
},
"phone": "11977777777",
"address": {
"street": "Rua Exemplo",
"streetNumber": "200",
"complement": "Sala 3",
"neighborhood": "Centro",
"zipCode": "01001000",
"city": "São Paulo",
"state": "SP",
"country": "br",
},
})
```
### Listar clientes
> O parâmetro `email` é obrigatório nessa listagem. A API não utiliza paginação convencional para este recurso.
```python theme={null}
customers = beehive.customers.list({
"email": "cliente@example.com",
})
```
### Buscar cliente por ID
```python theme={null}
customer = beehive.customers.get(123456)
```
***
## Transferências
### Criar transferência
```python theme={null}
transfer = beehive.transfers.create({
"amount": 50000,
"recipientId": 916,
})
```
### Criar transferência com conta bancária
```python theme={null}
transfer = beehive.transfers.create({
"amount": 50000,
"recipientId": 916,
"bankAccount": {
"bankCode": "001",
"agencyNumber": "1234",
"accountNumber": "12345",
"accountDigit": "6",
"type": "conta_corrente",
"legalName": "Destinatário Teste",
"documentNumber": "12345678900",
"documentType": "cpf",
},
})
```
### Buscar transferência por ID
```python theme={null}
transfer = beehive.transfers.get(123456)
```
***
## Saldo
### Consultar saldo
```python theme={null}
balance = beehive.balance.get()
print(f"Available: BRL {balance['amount'] / 100}")
print(f"Recipient ID: {balance['recipientId']}")
```
***
## Recebedores
### Criar recebedor
```python theme={null}
recipient = beehive.recipients.create({
"legalName": "Recebedor Teste Ltda",
"document": {
"type": "cnpj",
"number": "58593776000142",
},
"transferSettings": {
"transferEnabled": True,
"automaticAnticipationEnabled": False,
"anticipatableVolumePercentage": 100,
},
"bankAccount": {
"bankCode": "001",
"agencyNumber": "1234",
"accountNumber": "12345",
"accountDigit": "6",
"type": "conta_corrente",
"legalName": "Recebedor Teste Ltda",
"documentNumber": "58593776000142",
"documentType": "cnpj",
},
})
```
### Listar recebedores
```python theme={null}
recipients = beehive.recipients.list()
```
### Buscar recebedor por ID
```python theme={null}
recipient = beehive.recipients.get(916)
```
### Atualizar recebedor
```python theme={null}
updated = beehive.recipients.update(916, {
"legalName": "Beehive Sandbox",
})
```
***
## Contas bancárias
### Adicionar conta bancária a um recebedor
```python theme={null}
bank_account = beehive.bank_accounts.create(916, {
"bankCode": "341",
"agencyNumber": "9876",
"accountNumber": "54321",
"accountDigit": "0",
"type": "conta_poupanca",
"legalName": "Empresa Teste Ltda",
"documentNumber": "60572883000136",
"documentType": "cnpj",
})
```
### Listar contas bancárias
```python theme={null}
accounts = beehive.bank_accounts.list(916)
```
***
## Empresa
### Consultar dados da empresa
```python theme={null}
company = beehive.company.get()
```
### Atualizar dados da empresa
```python theme={null}
updated = beehive.company.update({
"invoiceDescriptor": "Beehive Hub",
"details": {
"averageRevenue": 10000,
"averageTicket": 100.5,
"physicalProducts": True,
"productsDescription": "Produtos físicos",
"siteUrl": "https://www.meusite.com.br",
"phone": "11999999999",
"email": "contato@meusite.com.br",
},
})
```
***
## Links de pagamento
O SDK adiciona a propriedade `url` nas respostas de criação, consulta, listagem e atualização quando existe um `alias`.
* Produção: `https://link.conta.paybeehive.com.br/{alias}`
* Sandbox: `https://link.sandbox.hopysplit.com.br/{alias}`
Se `alias` não for enviado, o SDK gera automaticamente um código alfanumérico de 10 caracteres.
### Criar link de pagamento
```python theme={null}
payment_link = beehive.payment_links.create({
"title": "novo link alterado",
"alias": "alias_alterado",
"amount": 1000,
"settings": {
"defaultPaymentMethod": "credit_card",
"requestAddress": True,
"requestPhone": True,
"traceable": True,
"boleto": {
"enabled": True,
"expiresInDays": 0,
},
"pix": {
"enabled": False,
"expiresInDays": 0,
},
"card": {
"enabled": False,
"freeInstallments": 1,
"maxInstallments": 12,
},
},
})
# payment_link["url"] já vem montada
```
### Listar links de pagamento
> A API não aceita filtros por query parameters nesse recurso. A listagem retorna todos os links da empresa.
```python theme={null}
payment_links = beehive.payment_links.list()
```
### Buscar link de pagamento por ID
```python theme={null}
payment_link = beehive.payment_links.get(247)
```
### Atualizar link de pagamento
> A atualização aceita payload parcial, ou seja, você pode enviar apenas os campos que deseja alterar.
```python theme={null}
updated = beehive.payment_links.update(247, {
"title": "novo link alterado",
"alias": "alias_alterado",
"amount": 1000,
"settings": {
"defaultPaymentMethod": "credit_card",
"requestAddress": True,
"requestPhone": True,
"traceable": True,
"boleto": {
"enabled": True,
"expiresInDays": 0,
},
"pix": {
"enabled": False,
"expiresInDays": 0,
},
"card": {
"enabled": False,
"freeInstallments": 1,
"maxInstallments": 12,
},
},
})
```
### Excluir link de pagamento
```python theme={null}
beehive.payment_links.delete(247)
```
***
## Tratamento de erros
O SDK expõe classes específicas para tratamento de erro:
* `BeehiveHubAPIError`
* `BeehiveHubAuthenticationError`
* `BeehiveHubValidationError`
* `BeehiveHubNotFoundError`
* `BeehiveHubRateLimitError`
* `BeehiveHubNetworkError`
Exemplo:
```python theme={null}
import os
from beehivehub import (
create_beehivehub_client,
BeehiveHubAPIError,
BeehiveHubAuthenticationError,
BeehiveHubValidationError,
)
beehive = create_beehivehub_client(os.environ["BEEHIVE_SECRET_KEY"])
try:
transaction = beehive.transactions.create({
"amount": 10000,
"paymentMethod": "pix",
"customer": {
"name": "João Silva",
"email": "joao@example.com",
"document": {
"type": "cpf",
"number": "12345678900",
},
"phone": "11999999999",
},
})
print("Transaction created:", transaction)
except BeehiveHubAuthenticationError as e:
print(f"Invalid API key: {e}")
except BeehiveHubValidationError as e:
print(f"Validation error: {e}")
except BeehiveHubAPIError as e:
print(f"API error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")
```
***
## Valores em centavos
Todos os valores monetários enviados para a API devem ser informados em centavos.
```python theme={null}
# R$ 100,00
amount = 10000
# R$ 1,50
amount = 150
# Convertendo reais para centavos
reais = 100.0
cents = round(reais * 100)
```
***
## Boas práticas de segurança
* Nunca exponha sua `SECRET_KEY`
* Não gere `card_hash` no backend
* Valide os dados antes de enviar para a API
* Use HTTPS
* Implemente webhooks para acompanhar mudanças de status
```text theme={null}
# .env
BEEHIVE_SECRET_KEY=your_secret_key_here
```
```python theme={null}
# app.py
import os
from dotenv import load_dotenv
from beehivehub import create_beehivehub_client
load_dotenv()
beehive = create_beehivehub_client(os.environ["BEEHIVE_SECRET_KEY"])
```
***
# Webhook
Source: https://docs.beehivehub.io/webhook
# 🔄 Webhooks
Sempre que uma transação, checkout ou transferência muda de status, a Beehive envia automaticamente uma **notificação HTTP (POST)** para a URL que você informar no campo postbackUrl.
Essa URL deve ser um endpoint do seu sistema capaz de:
* receber JSON via POST
* validar e armazenar o evento
* processar atualizações conforme sua lógica de negócio
Os postbacks permitem que seu sistema seja atualizado **em tempo real**, sem precisar ficar consultando a API.
## 🧩 Estrutura do Payload
Todos os postbacks seguem um formato padrão:
```json theme={null}
{
"id": ,
"type": "",
"objectId": "",
"url": "",
"data": {
/* objeto completo com os detalhes do evento */
}
}
```
O campo data contém todas as informações da transação, checkout ou transferência no momento da atualização.
Abaixo, os 3 formatos completos para cada tipo de evento.
## 🟧 1. Postback de Transação (type: "transaction")
Esse evento é enviado sempre que uma transação muda de status — por exemplo:
* created
* processing
* authorized
* paid
* refused
* refunded
**Exemplo completo:**
```json theme={null}
{
"id": 686401,
"type": "transaction",
"objectId": "282",
"url": "https://test.com",
"data": {
"id": 282,
"amount": 10000,
"refundedAmount": 0,
"companyId": 2,
"installments": 12,
"paymentMethod": "credit_card",
"status": "paid",
"postbackUrl": null,
"metadata": null,
"traceable": false,
"secureId": "a4594817-be48-4a23-81aa-4bb01f95fe78",
"secureUrl": "https://link.compra.com.br/pagar/a4594817-be48-4a23-81aa-4bb01f95fe78",
"createdAt": "2022-07-18T09:54:22.000Z",
"updatedAt": "2022-07-18T09:54:22.000Z",
"paidAt": "2022-07-18T09:54:22.000Z",
"ip": null,
"externalRef": null,
"customer": {
"id": 1,
"externalRef": null,
"name": "Gabryel",
"email": "gabryel@hotmail.com",
"phone": "11999999999",
"birthdate": null,
"createdAt": "2022-05-26T19:17:48.000Z",
"document": {
"number": "12345678910",
"type": "cpf"
},
"address": {
"street": "Rua República Argentina",
"streetNumber": "4214",
"complement": null,
"zipCode": "11065030",
"neighborhood": "Pompéia",
"city": "Santos",
"state": "SP",
"country": "BR"
}
},
"card": {
"id": 147,
"brand": "visa",
"holderName": "GABRYEL FERREIRA",
"lastDigits": "1111",
"expirationMonth": 3,
"expirationYear": 2028,
"reusable": true,
"createdAt": "2022-07-17T18:08:11.000Z"
},
"boleto": null,
"pix": null,
"shipping": null,
"refusedReason": null,
"items": [
{
"externalRef": null,
"title": "b456",
"unitPrice": 100,
"quantity": 1,
"tangible": false
}
],
"splits": [
{
"recipientId": 1,
"amount": 10000,
"netAmount": 9400
}
],
"refunds": [],
"delivery": null,
"fee": {
"fixedAmount": 200,
"spreadPercentage": 4,
"estimatedFee": 600,
"netAmount": 9400
}
}
}
```
## 🟦 2. Postback de Checkout (type: "checkout")
Esse evento é disparado quando um checkout criado via Link de Pagamento é atualizado — por exemplo:
* ativação
* atualização dos itens
* ligação com a transação finalizada
Ele inclui tanto o objeto **checkout** quanto a **transação associada** (se existir).
**Exemplo completo:**
```json theme={null}
{
"id": 686401,
"type": "checkout",
"objectId": "3",
"url": "https://test.com",
"data": {
"id": 3,
"companyId": 2,
"description": null,
"amount": 1000,
"secureId": "019c2702-6fbe-4199-b21c-c9342888d6ec",
"secureUrl": "https://link.compra.com.br/checkout/019c2702-6fbe-4199-b21c-c9342888d6ec",
"postbackUrl": "https://test.com",
"createdAt": "2022-08-02T18:04:04.000Z",
"settings": {
"defaultPaymentMethod": "credit_card",
"requestAddress": false,
"requestPhone": true,
"requestDocument": true,
"traceable": false,
"card": {
"enabled": true,
"freeInstallments": 1,
"maxInstallments": 12
},
"boleto": {
"enabled": false,
"expiresInDays": 2
},
"pix": {
"enabled": true,
"expiresInDays": 2
}
},
"items": [
{
"externalRef": null,
"title": "Hamburgão",
"unitPrice": 3000,
"quantity": 1,
"tangible": true
}
],
"splits": [],
"transaction": {
"id": 282,
"amount": 10000,
"refundedAmount": 0,
"companyId": 2,
"installments": 12,
"paymentMethod": "credit_card",
"status": "paid",
"postbackUrl": null,
"metadata": null,
"traceable": false,
"secureId": "a4594817-be48-4a23-81aa-4bb01f95fe78",
"secureUrl": "https://link.compra.com.br/pagar/a4594817-be48-4a23-81aa-4bb01f95fe78",
"createdAt": "2022-07-18T09:54:22.000Z",
"updatedAt": "2022-07-18T09:54:22.000Z",
"paidAt": "2022-07-18T09:54:22.000Z",
"ip": null,
"externalRef": null,
"customer": {
"id": 1,
"externalRef": null,
"name": "Gabryel",
"email": "gabryel@hotmail.com",
"phone": "11999999999",
"birthdate": null,
"createdAt": "2022-05-26T19:17:48.000Z",
"document": {
"number": "12345678910",
"type": "cpf"
},
"address": {
"street": "Rua República Argentina",
"streetNumber": "4214",
"complement": null,
"zipCode": "11065030",
"neighborhood": "Pompéia",
"city": "Santos",
"state": "SP",
"country": "BR"
}
},
"card": {
"id": 147,
"brand": "visa",
"holderName": "GABRYEL FERREIRA",
"lastDigits": "1111",
"expirationMonth": 3,
"expirationYear": 2028,
"reusable": true,
"createdAt": "2022-07-17T18:08:11.000Z"
},
"boleto": null,
"pix": null,
"shipping": null,
"refusedReason": null,
"items": [
{
"externalRef": null,
"title": "b456",
"unitPrice": 100,
"quantity": 1,
"tangible": false
}
],
"splits": [
{
"recipientId": 1,
"amount": 10000,
"netAmount": 9400
}
],
"refunds": [],
"delivery": null,
"fee": {
"fixedAmount": 200,
"spreadPercentage": 4,
"estimatedFee": 600,
"netAmount": 9400
}
}
}
}
```
## 🟩 3. Postback de Transferência (type: "transfer")
Enviado quando uma transferência (Pix, TED, repasse interno) muda de status.
Alguns exemplos de status:
* bank\_processing
* processed
* failed
* transferred
**Exemplo completo:**
```json theme={null}
{
"id": 388,
"type": "transfer",
"objectId": "237",
"url": "https://test.com",
"data": {
"id": 237,
"amount": 500,
"status": "bank_processing",
"pixKey": "12345678900",
"fee": 0,
"bankAccount": null,
"metadata": null,
"createdAt": "2022-10-18T16:43:42.000Z",
"updatedAt": "2022-10-18T16:43:44.000Z",
"failReason": null,
"receiptUrl": null,
"description": "Transferência Teste",
"externalRef": null,
"postbackUrl": "https://test.com",
"processedAt": "2022-10-18T16:43:44.000Z",
"recipientId": 1,
"pixEnd2EndId": "E277287121G6I8886MF02JNCUGGLELRP",
"transferredAt": null
}
}
```