An open API service indexing awesome lists of open source software.

https://github.com/jscodedevlopment/asaas-payment-microservice

Este repositório contém um microserviço desenvolvido em NestJS que encapsula toda a integração com a API do Asaas. O objetivo é fornecer, de forma centralizada e reutilizável por várias aplicações, funcionalidades de: Criação de clientes Geração de cobranças (boleto, cartão de crédito, PIX) Criação e consulta de links de pagamento etc...
https://github.com/jscodedevlopment/asaas-payment-microservice

Last synced: about 1 year ago
JSON representation

Este repositório contém um microserviço desenvolvido em NestJS que encapsula toda a integração com a API do Asaas. O objetivo é fornecer, de forma centralizada e reutilizável por várias aplicações, funcionalidades de: Criação de clientes Geração de cobranças (boleto, cartão de crédito, PIX) Criação e consulta de links de pagamento etc...

Awesome Lists containing this project

README

          

# Microserviço de Pagamentos Asaas

Este repositório contém um microserviço desenvolvido em NestJS que encapsula toda a integração com a API do Asaas. O objetivo é fornecer, de forma centralizada e reutilizável por várias aplicações, funcionalidades de:

- Criação de clientes
- Geração de cobranças (boleto, cartão de crédito, PIX)
- Criação e consulta de links de pagamento
- Consulta de parcelas de planos de pagamento
- Gestão de notificações (email, SMS, WhatsApp, voz)
- Documentação automática de todas as rotas via Swagger

### Principais Benefícios

- **Desacoplamento**: toda a lógica de comunicação com a API do Asaas está isolada em módulos dedicados.
- **Tipagem Forte**: uso de DTOs e interfaces para garantir segurança de tipo em todas as requisições.
- **Configuração Centralizada**: via `@nestjs/config`, mantendo segredos e URLs em variáveis de ambiente.
- **Documentação Viva**: Swagger disponível em `/api` para explorar e testar todos os endpoints.

---

## Arquitetura

O projeto segue a arquitetura modular do NestJS e padrões de Clean Architecture:

- **AppModule**: ponto de entrada, carrega configurações globais e importa os módulos de recurso.
- **Configs** (`src/config`): arquivos de configuração de ambiente para Asaas e Swagger, usando `registerAs`.
- **AsaasModule**: módulo dinâmico (via `registerAsync()`) marcado como `@Global`, que provê `AsaasService` configurado com `HttpModule`.
- **Feature Modules**:
- **CustomersModule**: gerencia criação de clientes
- **PaymentsModule**: emite cobranças e consulta parcelas
- **PaymentLinksModule**: cria e consulta links de pagamento
- **NotificationsModule**: obtém e atualiza notificações
- **DTOs** (`src//dto`): definem formatos de entrada e saída para cada endpoint.
- **Swagger**: configurado dinamicamente via `swagger.config.ts` e exposto em `/api`.

```
asaas/
├── asaas.module.ts (Global)
├── asaas.service.ts

config/
├── asaas.config.ts
└── swagger.config.ts

customers/
├── dto/
│ ├── create-customer.dto.ts
│ └── customer-response.dto.ts
├── customers.controller.ts
├── customers.module.ts
└── customers.service.ts

notifications/
├── dto/
│ ├── notification-request.dto.ts
│ └── notification-response.dto.ts
├── notifications.controller.ts
├── notifications.module.ts
└── notifications.service.ts

payment-links/
├── dto/
│ ├── create-payment-link.dto.ts
│ └── payment-link-response.dto.ts
├── payment-links.controller.ts
├── payment-links.module.ts
└── payment-links.service.ts

payment/
├── dto/
│ ├── create-payment.dto.ts
│ └── payment-response.dto.ts
├── payment.controller.ts
├── payment.module.ts
└── payment.service.ts
```

---

## Instalação

1. **Clone o repositório**

```bash
git clone https://github.com/seu-usuario/payment-gateway-microservice-asaas.git
cd payment-gateway-microservice-asaas
```

2. **Instale as dependências**

```bash
npm install
```

3. **Configure variáveis de ambiente**

Crie um arquivo `.env` na raiz do projeto com o conteúdo abaixo:

```dotenv
ASAAS_API_KEY=
ASAAS_BASE_URL=https://sandbox.asaas.com/api/v3

SWAGGER_TITLE=Microserviço de Pagamentos Asaas
SWAGGER_DESCRIPTION=Microserviço desenvolvido em NestJS que encapsula toda a integração com a API do Asaas
SWAGGER_VERSION=1.0.0
SWAGGER_PATH=docs

PORT=3000
```

4. **Execute em modo de desenvolvimento**

```bash
npm run start:dev
```

5. **Acesse a documentação**
Abra no navegador:
````
http://localhost:8000/docs
````

---

## Tecnologias Utilizadas.









## Desenvolvedor.

| Foto | Nome | Cargo |
| ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------- | ------------------- |
| | [Jonatas Silva](https://github.com/JsCodeDevlopment) | FullStack Developer |

---