HubPay e um sistema simples para organizar clientes, cobrancas e pagamentos.
O projeto foi reposicionado para um uso mais direto (pequenos negocios, freelancers e autonomos), mantendo a base tecnica robusta da arquitetura em camadas.
- Documentacao web: https://sfturio.github.io/HubPay/
- Repositorio: https://github.com/sfturio/HubPay
Ao abrir o sistema, o usuario encontra:
- dashboard com resumo do mes
- total recebido
- cobrancas pendentes e atrasadas
- clientes recentes
- acoes principais de nova cobranca e novo cliente
- .NET 10
- ASP.NET Core Minimal API
- Entity Framework Core
- PostgreSQL
- Swagger / OpenAPI
- Docker
src/
HubPay.API
HubPay.Application
HubPay.Domain
HubPay.Infrastructure
tests/
HubPay.UnitTests
HubPay.IntegrationTests
HubPay.Domain: entidades, value objects, regras de negocioHubPay.Application: casos de uso, DTOs, servicos de aplicacaoHubPay.Infrastructure: EF Core, repositorios, migrationsHubPay.API: Minimal API, autenticacao, middleware, arquivos estaticos
Merchant(conta da loja)Customer(cliente)Payment(cobranca/pagamento)PaymentEvent(historico de status)Webhook(integracao opcional)IdempotencyRecord
A API usa chave no header:
x-api-key: sk_test_xxxxxO merchant autenticado e resolvido no contexto da requisicao.
Na criacao de cobrancas/pagamentos, pode ser enviado:
Idempotency-Key: sua-chave-unicaSe a mesma chave for reutilizada para o mesmo merchant com o mesmo payload, a resposta original e retornada.
POST /merchantsGET /merchantsGET /merchants/{id}POST /merchants/{id}/api-keysPOST /merchants/{id}/api-keys/revoke
POST /customersGET /customersGET /customers/{id}
POST /paymentsGET /paymentsGET /payments/{id}GET /payments/{id}/eventsPOST /payments/{id}/authorizePOST /payments/{id}/payPOST /payments/{id}/refusePOST /payments/{id}/cancel
POST /webhooksGET /webhooksPOST /webhooks/{id}/disable
- Configure
HubPayDatabaseemsrc/HubPay.API/appsettings.json(ou env vars). - Restaure dependencias:
dotnet tool restoredotnet restore
- Aplique migrations:
dotnet tool run dotnet-ef database update --project src/HubPay.Infrastructure --startup-project src/HubPay.API
- Execute:
dotnet run --project src/HubPay.API
Com ambiente de desenvolvimento, o Swagger fica em /swagger.
dotnet build HubPay.slnxdotnet test HubPay.slnx