yurisouzadev / money-asaas
Provides an expressive, fluent interface to Asaas's billing services.
Fund package maintenance!
Requires
- php: ^8.2
- illuminate/contracts: ^11.0||^12.0||^13.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^11.0.0||^10.0.0||^9.0.0
- pestphp/pest: ^3.0||^4.0
- pestphp/pest-plugin-arch: ^3.0||^4.0
- pestphp/pest-plugin-laravel: ^3.0||^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
README
🚧 Work in Progress — a API abaixo é o contrato de design do pacote e guia o desenvolvimento (README Driven Development). Nem tudo já está implementado. Acompanhe o progresso nas milestones.
Money Asaas é uma camada de billing para Laravel sobre o Asaas, no estilo do Laravel Cashier — não um wrapper fino da API.
Por que não é "mais um SDK do Asaas"?
Já existem várias bibliotecas PHP que espelham a API do Asaas endpoint a endpoint (->customer()->create(), ->payment()->getById()). Elas funcionam, mas deixam pra você resolver, na aplicação, tudo que envolve billing de verdade: sincronizar status de assinatura com o seu User, tratar webhooks, calcular parcelas e multa, versionar planos.
O Money Asaas assume essa camada. Ele se integra ao Eloquent (trait no seu User/Model de cobrança), expõe uma API fluente para cobranças e assinaturas, e trata os webhooks do Asaas para manter o estado sincronizado automaticamente — do mesmo jeito que o Cashier faz para Stripe/Paddle.
| SDKs wrapper existentes | Money Asaas | |
|---|---|---|
| Modelo mental | Chamada de API | Billing (assinaturas, cobranças, planos) |
| Integração com Eloquent | Manual | Trait pronta (Billable) |
| Webhooks | Você implementa | Tratados pelo pacote |
| Parcelamento/multa/juros | Monta o payload à mão | API fluente |
Instalação
composer require yurisouzadev/money-asaas
php artisan vendor:publish --tag="money-asaas-migrations"
php artisan migrate
php artisan vendor:publish --tag="money-asaas-config"
Uso
Adicione a trait Billable ao seu model de cobrança:
use Moneyasaas\MoneyAsaas\Billable; class User extends Authenticatable { use Billable; }
Cobrança avulsa
$user->charge(150.00) ->billingType()->pix() ->installments(3) ->fine(2.0) ->interest(1.0) ->create();
Assinatura recorrente
$user->newSubscription('plano-mensal', 'price_xxx') ->billingType()->creditCard() ->monthly() ->create();
Os exemplos acima descrevem a API alvo do v1. Consulte as issues
featpara o status de cada método.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.