{"id":27919491,"url":"https://github.com/jscodedevlopment/asaas-payment-microservice","last_synced_at":"2025-05-06T19:32:46.912Z","repository":{"id":290640997,"uuid":"973170959","full_name":"JsCodeDevlopment/asaas-payment-microservice","owner":"JsCodeDevlopment","description":"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...","archived":false,"fork":false,"pushed_at":"2025-04-29T20:55:50.000Z","size":128,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-29T21:37:44.297Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JsCodeDevlopment.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-26T12:17:35.000Z","updated_at":"2025-04-29T20:55:55.000Z","dependencies_parsed_at":"2025-04-29T21:37:49.082Z","dependency_job_id":"a5619f6b-ccdf-4a73-b0ff-8b6463bdc159","html_url":"https://github.com/JsCodeDevlopment/asaas-payment-microservice","commit_stats":null,"previous_names":["jscodedevlopment/asaas-payment-microservice"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsCodeDevlopment%2Fasaas-payment-microservice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsCodeDevlopment%2Fasaas-payment-microservice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsCodeDevlopment%2Fasaas-payment-microservice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsCodeDevlopment%2Fasaas-payment-microservice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JsCodeDevlopment","download_url":"https://codeload.github.com/JsCodeDevlopment/asaas-payment-microservice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252753317,"owners_count":21798945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-06T19:31:17.965Z","updated_at":"2025-05-06T19:32:46.860Z","avatar_url":"https://github.com/JsCodeDevlopment.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Microserviço de Pagamentos Asaas\n\nEste 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:\n\n- Criação de clientes\n- Geração de cobranças (boleto, cartão de crédito, PIX)\n- Criação e consulta de links de pagamento\n- Consulta de parcelas de planos de pagamento\n- Gestão de notificações (email, SMS, WhatsApp, voz)\n- Documentação automática de todas as rotas via Swagger\n\n### Principais Benefícios\n\n- **Desacoplamento**: toda a lógica de comunicação com a API do Asaas está isolada em módulos dedicados.\n- **Tipagem Forte**: uso de DTOs e interfaces para garantir segurança de tipo em todas as requisições.\n- **Configuração Centralizada**: via `@nestjs/config`, mantendo segredos e URLs em variáveis de ambiente.\n- **Documentação Viva**: Swagger disponível em `/api` para explorar e testar todos os endpoints.\n\n---\n\n## Arquitetura\n\nO projeto segue a arquitetura modular do NestJS e padrões de Clean Architecture:\n\n- **AppModule**: ponto de entrada, carrega configurações globais e importa os módulos de recurso.\n- **Configs** (`src/config`): arquivos de configuração de ambiente para Asaas e Swagger, usando `registerAs`.\n- **AsaasModule**: módulo dinâmico (via `registerAsync()`) marcado como `@Global`, que provê `AsaasService` configurado com `HttpModule`.\n- **Feature Modules**:\n  - **CustomersModule**: gerencia criação de clientes\n  - **PaymentsModule**: emite cobranças e consulta parcelas\n  - **PaymentLinksModule**: cria e consulta links de pagamento\n  - **NotificationsModule**: obtém e atualiza notificações\n- **DTOs** (`src/\u003cmodule\u003e/dto`): definem formatos de entrada e saída para cada endpoint.\n- **Swagger**: configurado dinamicamente via `swagger.config.ts` e exposto em `/api`.\n\n```\nasaas/\n├── asaas.module.ts  (Global)\n├── asaas.service.ts\n\nconfig/\n├── asaas.config.ts\n└── swagger.config.ts\n\ncustomers/\n├── dto/\n│   ├── create-customer.dto.ts\n│   └── customer-response.dto.ts\n├── customers.controller.ts\n├── customers.module.ts\n└── customers.service.ts\n\nnotifications/\n├── dto/\n│   ├── notification-request.dto.ts\n│   └── notification-response.dto.ts\n├── notifications.controller.ts\n├── notifications.module.ts\n└── notifications.service.ts\n\npayment-links/\n├── dto/\n│   ├── create-payment-link.dto.ts\n│   └── payment-link-response.dto.ts\n├── payment-links.controller.ts\n├── payment-links.module.ts\n└── payment-links.service.ts\n\npayment/\n├── dto/\n│   ├── create-payment.dto.ts\n│   └── payment-response.dto.ts\n├── payment.controller.ts\n├── payment.module.ts\n└── payment.service.ts\n```\n\n---\n\n## Instalação\n\n1. **Clone o repositório**\n\n   ```bash\n   git clone https://github.com/seu-usuario/payment-gateway-microservice-asaas.git\n   cd payment-gateway-microservice-asaas\n   ```\n\n2. **Instale as dependências**\n\n   ```bash\n   npm install\n   ```\n\n3. **Configure variáveis de ambiente**\n\n   Crie um arquivo `.env` na raiz do projeto com o conteúdo abaixo:\n\n   ```dotenv\n   ASAAS_API_KEY=\u003csua_chave_api\u003e\n   ASAAS_BASE_URL=https://sandbox.asaas.com/api/v3\n\n   SWAGGER_TITLE=Microserviço de Pagamentos Asaas\n   SWAGGER_DESCRIPTION=Microserviço desenvolvido em NestJS que encapsula toda a integração com a API do Asaas\n   SWAGGER_VERSION=1.0.0\n   SWAGGER_PATH=docs\n\n   PORT=3000\n   ```\n\n4. **Execute em modo de desenvolvimento**\n\n   ```bash\n   npm run start:dev\n   ```\n\n5. **Acesse a documentação**\n   Abra no navegador:\n   ````\n   http://localhost:8000/docs\n   ````\n\n---\n\n## Tecnologias Utilizadas.\n\n \u003cdiv align=\"center\"\u003e\n  \u003cimage src=\"https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" /\u003e\n  \u003cimage src=\"https://img.shields.io/badge/nestjs-E0234E?style=for-the-badge\u0026logo=nestjs\u0026logoColor=white\" /\u003e\n  \u003cimage src=\"https://img.shields.io/badge/axios-671ddf?\u0026style=for-the-badge\u0026logo=axios\u0026logoColor=white\" /\u003e\n  \u003cimage src=\"https://img.shields.io/badge/Express%20js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white\" /\u003e\n  \u003cimage src=\"https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=Swagger\u0026logoColor=white\" /\u003e\n  \u003cimage src=\"https://img.shields.io/badge/Node%20js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white\" /\u003e\n  \u003cimage src=\"https://img.shields.io/badge/Jest-C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\" /\u003e\n\u003c/div\u003e\n\n## Desenvolvedor.\n\n| Foto                                                                                                                           | Nome                                                 | Cargo               |\n| ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------- | ------------------- |\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/100796752?s=400\u0026u=ae99bd456c6b274cd934d85a374a44340140e222\u0026v=4\" width=\"100\"\u003e | [Jonatas Silva](https://github.com/JsCodeDevlopment) | FullStack Developer |\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscodedevlopment%2Fasaas-payment-microservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjscodedevlopment%2Fasaas-payment-microservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjscodedevlopment%2Fasaas-payment-microservice/lists"}