diff --git a/README.md b/README.md new file mode 100644 index 0000000..3c039ab --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +# 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/ \ No newline at end of file