# P2Pix<>BBPay oracle backend ## Variáveis de ambiente necessárias no arquivo `.env`: - `BB_CLIENT_ID`, `BB_CLIENT_SECRET`, e `DEV_APP_KEY`: Fornecidas pelo Bando do Brasil - `PRIVATE_KEY`: Chave privada Ethereum (em formato hexadecimal com prefixo '0x') que vai assinar as liberações de pagamento) # Endpoints ## POST /register ### Registra um participante. Chamado pelo vendedor antes de fazer `deposit` no smart contract. #### Parametros requeridos: - `nomeParticipante` - `tipoDocumento` - `numeroDocumento` - `numeroConta` - `tipoConta` ``` exemplo curl --request POST \ --url http://localhost:5000/register \ --header 'content-type: application/json' \ --data '{ "nomeParticipante": "João Silva", "tipoDocumento": 1, "numeroDocumento": 12345678900, "numeroConta": 1234567890123456, "numeroAgencia": 123, "tipoConta": 1 }' ``` #### Retorna em formato JSON: - `numeroParticipante` (usado no `deposit` do SC como `pixTarget`) ## POST /request ### Solicitação de Pagamento Chamado pelo comprador após o `lock` no smart contract. #### Parametros requeridos: - `amount` - `pixTarget` ``` curl -X POST http://localhost:5000/request \ -H "Content-Type: application/json" \ -d '{ "amount": 100.00, "pixTarget": 123 }' ``` #### Retorna em formato JSON: - `numeroSolicitacao`: usado para chamar `/release` depois - `textoQrCode`: usado para gerar o QR PIX ## GET /release/{numeroSolicitacao} ### Liberação de Pagamento Chamado pelo comprador após pagar o Pix ``` exemplo curl http://localhost:5000/release/123 ``` #### Retorna em formato JSON: - `pixTarget` - `amount`: valor em wei - `pixTimestamp` - `signature`: assinatura ethereum compatível # Observações - O ambiente de produção requer autenticação mTLS - Para ambiente de desenvolvimento use `DEBUG=true` - Em produção, o servidor usa Waitress como servidor WSGI - Para mais informações, consulte a documentação oficial: https://developers.bb.com.br/