Área técnica

APIs e contratos

Superfície HTTP do commerce-vc1 em api.vc1.com.br (e api.lab.vc1.com.br): BFF da SPA, tokens de revenda, webhooks inbound e health. OpenAPI público: a definir (protótipo REV-28). Canônico: 03-ARCHITECTURE.md §4–6, 08-SECURITY-LGPD.md.

Ver tela protótipo REV-28 (tokens e webhooks outbound)

Autenticação e versionamento

ConsumidorMecanismoHost
SPA revenda / clienteSanctum cookie stateful (host-only do slug){slug}.vc1.com.br
StaffSessão Filament + 2FA (TOTP padrão)admin.vc1.com.br (Filament, não REST público)
Proposta públicaPIN 6 dígitos → cookie de acesso{slug}.vc1.com.br/p/{code}
Integração revendaBearer identity.api_tokens (abilities/scopes)api.vc1.com.br
Webhooks meSign / mePayHMAC corpo bruto (meSign confirmado; mePay a verificar)api.vc1.com.br/api/v1/webhooks/*

Rate limits (documentados)

SuperfícieLimiteFonte
Proposta pública (PIN)10 tentativas/h por IP+slug; lockout 5 falhas → 15 min08-SECURITY (padrão sales)
API Bearer revendaa definir—
Webhooks inboundSem CORS; validação HMAC antes do use case03-ARCHITECTURE §4.3
Respostas 429Sem stack trace / exception na payload08-SECURITY

Webhooks inbound (provedores → commerce)

PathProvedorEventos mínimosAuth
POST /api/v1/webhooks/paco-assignmeSignenvelope.completed, envelope.archivedX-Paco-Signature: sha256=…
POST /api/v1/webhooks/mepaymePaycharge.paid, charge.failed, charge.refunded, charge.chargebackHMAC a verificar (D-INT-18)

Processamento via integration.inbox_webhooks antes do use case; dedupe idempotente (03-ARCHITECTURE §8).

Eventos / webhooks outbound (commerce → revenda)

Pós-MVP (E5+): revenda registra URL no painel — ver REV-28 e roadmap integration.outbound_webhooks.

Evento (exemplos)QuandoStatus spec
proposal.acceptedCliente aceita propostaProtótipo; payload a definir
customer.blockedBloqueio crédito/limite/inadimplênciaProtótipo; payload a definir
Catálogo completo (fatura emitida, pagamento, NF autorizada): a definir — alinhar a outbox/event catalog E6

APIs externas consumidas (ports)

Não são rotas do commerce-vc1; contratos em integrações.

PortAlvo (amostra)
ProvisioningPortPOST …/api/white_label/cadastro_total_tronco (base URL PROD a verificar)
TelcoPortSOAP SipPulse SubscriberWS / DidWS
FiscalPortmePay REST — solicitação NFCom 62 (emissor terceiro atrás do mePay); webhooks fiscal.issued / fiscal.failed (a criar)
SignaturePortPOST /api/v1/envelopes (meSign externo)
PaymentPortmePay REST — /v1/invoices/adhoc, charges, webhook invoice.paid
DnsPortPowerDNS /api/v1/servers/localhost/zones (LAN)

Por que isso importa

Separar auth por Host evita que integradores tratem a API como “monolito multi-tenant por header”. Webhooks inbound com HMAC e inbox fecham o loop meSign/mePay sem jobs ad hoc. O catálogo explícito do que já está no MD vs “a definir” orienta contratos com TI cliente e parceiros antes do OpenAPI público.

06-INTEGRATIONS.md · Diagramas de sequência