Integração Banco Inter
O MIDDAG Account integra-se ao Banco Inter para suportar métodos de pagamento brasileiros: Pix (transferência instantânea) e Boleto (boleto bancário). A integração funciona através de um plugin complementar de gateway WooCommerce (woocommerce-banco-inter) que lida com a API bancária. O MIDDAG Account adiciona camadas de dados B2B sem modificar o plugin de gateway.
Arquitetura
O plugin de gateway (woocommerce-banco-inter) é um plugin WooCommerce independente que funciona em qualquer loja B2C. O MIDDAG Account conecta-se a ele via filtros e ações do WordPress para injetar dados da organização B2B e reagir a eventos de pagamento.
Configuração
A configuração é gerenciada inteiramente no plugin de gateway woocommerce-banco-inter:
| Variável | Descrição |
|---|---|
BANCO_INTER_CLIENT_ID | ID do cliente OAuth2 |
BANCO_INTER_CLIENT_SECRET | Segredo do cliente OAuth2 |
BANCO_INTER_CERT_PATH | Caminho para o arquivo .crt do certificado |
BANCO_INTER_KEY_PATH | Caminho para o arquivo .key da chave privada |
BANCO_INTER_PIX_KEY | Chave Pix (CNPJ, e-mail, etc.) |
BANCO_INTER_WEBHOOK_SECRET | Segredo HMAC para válidação de webhook |
BANCO_INTER_ENVIRONMENT | sandbox ou production |
O MIDDAG Account não gerencia essas credenciais. Elas pertencem ao plugin de gateway.
Fluxo de pagamento
Override B2B
Quando um pedido está vinculado a uma organização, o MIDDAG Account sobrescreve os dados do pagador com as informações jurídicas da organização:
- O pedido possui um meta
_organization? Se não, o fluxo padrão B2C se aplica. - A organização possui CNPJ (
org_documentnumber1)? Se não, os dados de faturamento da pessoa física são utilizados. - Se sim, a razão social, CNPJ e endereço da organização substituem os campos de faturamento individual.
Isso se aplica tanto a requisições de Boleto (13 campos) quanto de Pix (8 campos) enviadas à API do Banco Inter.
Pix
- Tipo de pagamento: transferência instantânea via QR code.
- Expiração: 30 minutos (configurável).
- Campo devedor utiliza
devedor.cnpj(14 dígitos) para organizações,devedor.cpf(11 dígitos) para pessoas físicas.
Boleto
- Tipo de pagamento: boleto bancário com código de barras.
- Expiração: data de vencimento da fatura + 3 dias.
- Cancelamento automático: 5 dias após a data de vencimento.
- Tipo do pagador definido como
JURIDICAquando CNPJ está presente.
Webhooks
O plugin de gateway recebe webhooks do Banco Inter em:
POST /wc-api/banco-inter-webhook
Header: x-inter-webhook-signature: {HMAC-SHA256}A assinatura do webhook é validada usando HMAC-SHA256. Assinaturas inválidas são rejeitadas.
Quando o pagamento é confirmado, o gateway dispara a ação woocommerce_payment_complete. O MIDDAG Account conecta-se a essa ação para:
- Atualizar o status da cotação vinculada para
paid. - Acionar o provisionamento de entitlement (criação automática de recursos derivados).
- Sincronizar o negócio no HubSpot como closed-won.
Reconciliação
Um cron job trata webhooks perdidos:
| Frequência | Ação |
|---|---|
| A cada 30 min | Verificar pedidos em espera há mais de 2 horas (Pix pode ter expirado) |
| Diário | Verificar boletos pendentes vencidos |
| Diário | Verificar se pedidos completos possuem cotações pagas correspondentes |
Para cada pedido pendente encontrado, o plugin consulta o gateway (que consulta a API do Banco Inter) para obter o status atual e então aciona a ação apropriada: marcar como pago, cancelar ou continuar aguardando.
Cenários de expiração
| Cenário | Ação do gateway | Ação do plugin |
|---|---|---|
| Pix expirado (30 min) | Status do pedido: failed | Cotação permanece como payment_pending |
| Pix pago | Status do pedido: completed | Cotação definida como paid, sincronizado com HubSpot |
| Boleto vencido (D+3) | Nenhuma ação (aguardando) | Nenhuma ação |
| Boleto cancelado (D+5) | Status do pedido: cancelled | Cotação definida como expired via cron |
| Boleto pago | Status do pedido: completed | Cotação definida como paid, sincronizado com HubSpot |