PHPackages                             potelo/multi-payment - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. potelo/multi-payment

ActiveLibrary[Payment Processing](/categories/payments)

potelo/multi-payment
====================

Fornece uma interface para controlar pagamentos de múltiplos gateways

4.0.2(4mo ago)79.4k↓21.4%3MITPHPPHP ^8.0|^8.1|^8.2|^8.3CI passing

Since Oct 28Pushed 4mo ago4 watchersCompare

[ Source](https://github.com/Potelo/MultiPayment)[ Packagist](https://packagist.org/packages/potelo/multi-payment)[ RSS](/packages/potelo-multi-payment/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (5)Versions (52)Used By (0)

Introdução
----------

[](#introdução)

MultiPayment permite gerenciar pagamentos de diversos gateways de pagamento. Atualmente suporta o Iugu.

- [Introdução](#introdu%C3%A7%C3%A3o)
- [Requisitos](#requisitos)
- [Instalação](#instala%C3%A7%C3%A3o)
- [Configuração](#configura%C3%A7%C3%A3o)
- [Utilizando](#utilizando)
    - [MultiPayment](#multipayment)
        - [InvoiceBuilder](#invoicebuilder)
        - [CustomerBuilder](#customerbuilder)
        - [getInvoice](#getinvoice)
        - [charge](#charge)
    - [Models](#models)
        - [Customer](#customer)
        - [Invoice](#invoice)

Requisitos
----------

[](#requisitos)

- PHP 8.0+
- Laravel 8.0+

Instalação
----------

[](#instalação)

Instale esse pacote pelo composer:

```
composer require potelo/multi-payment "dev-main"

```

Configuração
------------

[](#configuração)

Após instalar o pacote rode o comando abaixo para publicar as configurações no projeto Laravel

```
php artisan vendor:publish --provider="Potelo\MultiPayment\Providers\MultiPaymentServiceProvider"

```

Verifique se o arquivo `multi-payment.php` foi criado no diretório `config/`.

Agora configure as variáveis de ambiente no arquivo .env:

```
APP_ENV=local

MULTIPAYMENT_DEFAULT=iugu

#iugu
IUGU_ID=
IUGU_APIKEY=
```

Opcionalmente você pode configurar o Trait, para facilitar o uso do método `charge` junto a um usuário.

```
use Potelo\MultiPayment\MultiPaymentTrait;

class User extends Authenticatable
{
    use MultiPaymentTrait;
}
```

Usando o Trait:

```
$usuario = User::find(1);
$usuario->charge($options, 'iugu', 10000);
```

Também é possível utilizar o Facade:

```
\Potelo\MultiPayment\Facades\MultiPayment::charge($options);
```

Utilizando
----------

[](#utilizando)

### MultiPayment:

[](#multipayment)

Usando a classe `MultiPayment`:

```
$payment = new \Potelo\MultiPayment\MultiPayment(); // gateway default será usado
// ou
$payment = new \Potelo\MultiPayment\MultiPayment('iugu');
// ou
$payment = new \Potelo\MultiPayment\MultiPayment();
$payment->setGateway('iugu');
```

#### InvoiceBuilder

[](#invoicebuilder)

```
$multiPayment = new \Potelo\MultiPayment\MultiPayment('iugu');
$invoiceBuilder = $multiPayment->newInvoice();
$invoice = $invoiceBuilder->setPaymentMethod('payment_method')
    ->addCustomer('name', 'email', 'tax_document', 'phone_area', 'phone_number')
    ->addCustomerAddress('zip_code', 'street', 'number')
    ->addItem('description', 'quantity', 'price')
    ->create();
```

Confira `src/MultiPayment/Builders/InvoiceBuilder.php` para saber quais métodos estão disponíveis.

#### CustomerBuilder

[](#customerbuilder)

```
$multiPayment = new \Potelo\MultiPayment\MultiPayment('iugu');
$customerBuilder = $multiPayment->newCustomer();
$customer = $customerBuilder->setName('Nome')
    ->setEmail('email')
    ->setTaxDocument('01234567891')
    ->setPhone('999999999', '71')
    ->addAddress('45400000', 'Rua', 'S/N')
    ->create();
```

Confira `src/MultiPayment/Builders/CustomerBuilder.php` para saber quais métodos estão disponíveis.

#### getInvoice

[](#getinvoice)

```
$invoiceId = '312ASDHGZXSGRTET312ASDHGZXSGRTET';
$payment = new \Potelo\MultiPayment\MultiPayment('iugu');
$foundInvoice = $payment->getInvoice($invoiceId);
```

#### charge

[](#charge)

```
$options = [
    'amount' => 10000,
    'customer' => [
        'name' => 'Nome do cliente',
        'email' => 'email@example.com',
        'tax_document' => '12345678901',
        'phone_area' => '71',
        'phone_number' => '999999999',
        'address' => [
            'street' => 'Rua do cliente',
            'number' => '123',
            'complement' => 'Apto. 123',
            'district' => 'Bairro do cliente',
            'city' => 'Cidade do cliente',
            'state' => 'SP',
            'zip_code' => '12345678',
        ],
    ],
    'items' => [
        [
            'description' => 'Produto 1',
            'quantity' => 1,
            'price' => 10000,
        ],
        [
            'description' => 'Produto 2',
            'quantity' => 2,
            'price' => 5000,
        ],
    ],
    'payment_method' => 'credit_card',
    'credit_card' => [
        'number' => '1234567890123456',
        'month' => '12',
        'year' => '2022',
        'cvv' => '123',
        'first_name' => 'João',
        'last_name' => 'Maria'
    ],
];

$payment = new \Potelo\MultiPayment\MultiPayment();
$payment->setGateway('iugu')->charge($options);
```

atributoobrigatóriotipodescriçãoexemplo`amount`**obrigatório** caso `items` não seja informadointvalor em centavos`10000``customer`**obrigatório**arrayarray com os dados do cliente`['name' => 'Nome do cliente'...]``customer.name`**obrigatório**stringnome do cliente`'Nome do cliente'``customer.email`**obrigatório**stringemail do cliente`'joaomaria@email.com'``customer.tax_document`stringcpf ou cnpj do cliente`'12345678901'``birth_date`string formato `yyyy-mm-dd`data de nascimento`'01/01/1990'``customer.phone_number`stringtelefone`'999999999'``customer.phone_area`stringDDD`'999999999'``customer.address`**obrigatório** para o método de pagamento `bank_slip`arrayarray com os dados do endereço do cliente`['street' => 'Rua do cliente'...]``customer.address.street`**obrigatório**stringnome da rua`'Nome da rua'``customer.address.number`**obrigatório**stringnúmero da casa`'123'``customer.address.district`**obrigatório**stringbairro`'Bairro do cliente'``customer.address.city`**obrigatório**stringcidade`'Salvador'``customer.address.state`**obrigatório**stringestado`'Bahia'``customer.address.complement`**obrigatório**stringcomplemento`'Apto. 123'``customer.address.zip_code`**obrigatório**stringcep`'12345678'``items`**obrigatório** caso `amount` não tenha sido informadoarrayarray com os itens da compra`[['description' => 'Produto 1',...``items.description`**obrigatório**stringdescrição do item`'Produto 1'``items.quantity`**obrigatório**intquantidade do item`1``items.price`**obrigatório**intvalor do item`10000``payment_method``'credit_card'`,`'bank_slip'`método de pagamento`'credit_card'``expires_at`**obrigatório** caso `payment_method` seja `'bank_slip'` ou `'pix'`string no formato `yyyy-mm-dd`data de expiração da fatura`2021-10-10``credit_card`**obrigatório** caso `payment_method` seja `'credit_card'`arrayarray com os dados do cartão de crédito`['number' => '1234567890123456',...``credit_card.token`stringtoken do cartão para o gateway escolhido`'abcdefghijklmnopqrstuvwxyz'``credit_card.number`**obrigatório** caso `token` não tenha sido informadostringnúmero do cartão de crédito`'1234567890123456'``credit_card.month`**obrigatório** caso `token` não tenha sido informadostringmês de expiração do cartão de crédito`'12'``credit_card.year`**obrigatório** caso `token` não tenha sido informadostringano de expiração do cartão de crédito`'2022'``credit_card.cvv`**obrigatório** caso `token` não tenha sido informadostringcódigo de segurança do cartão de crédito`'123'``credit_card.first_name`stringprimeiro nome no cartão de crédito`'João'``credit_card.last_name`stringúltimo nome no cartão de crédito`'Maria'``bank_slip`arrayarray com os dados do boleto`['expires_at' => '2022-12-31',...`### Models

[](#models)

#### Customer

[](#customer)

```
$customer = new Customer();
$customer->name = 'Teste';
$customer->email = 'teste@email.com';
$customer->taxDocument = '12345678901';
$customer->save('iugu');
echo $customer->id; // 7D96C7C932F2427CAF54F042345A13C60CD7
```

#### Invoice

[](#invoice)

```
$invoice = new Invoice();
$invoice->customer = $customer;
$item = new InvoiceItem();
$item->description = 'Teste';
$item->price = 10000;
$item->quantity = 1;
$invoice->items[] = $item;
$invoice->paymentMethod = Invoice::PAYMENT_METHOD_CREDIT_CARD;
$invoice->creditCard = new CreditCard();
$invoice->creditCard->number = '4111111111111111';
$invoice->creditCard->firstName = 'João';
$invoice->creditCard->lastName = 'Silva';
$invoice->creditCard->month = '11';
$invoice->creditCard->year = '2022';
$invoice->creditCard->cvv = '123';
$invoice->creditCard->customer = $customer;
$invoice->save('iugu');
echo $invoice->id; // CB1FA9B5BD1C42B287F4AC7F6259E45D
```

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance74

Regular maintenance activity

Popularity32

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 93.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~41 days

Recently: every ~12 days

Total

29

Last Release

140d ago

Major Versions

v0.4.0 → v1.0.02023-08-16

v1.1.5 → v2.0.02024-01-31

2.2.3 → v3.0.12025-11-11

v3.0.2 → v4.0.02025-11-29

PHP version history (2 changes)v0.1.0PHP &gt;=7.4.0

2.2.0PHP ^8.0|^8.1|^8.2|^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/ffd057699c6f31586d7883c4f8a903048c26a1c3ccef618caf02738ddfd254ee?d=identicon)[potelo](/maintainers/potelo)

---

Top Contributors

[![andrewalkermo](https://avatars.githubusercontent.com/u/20683045?v=4)](https://github.com/andrewalkermo "andrewalkermo (297 commits)")[![marivaldojr](https://avatars.githubusercontent.com/u/2505142?v=4)](https://github.com/marivaldojr "marivaldojr (9 commits)")[![gabrielpeixoto](https://avatars.githubusercontent.com/u/3699061?v=4)](https://github.com/gabrielpeixoto "gabrielpeixoto (7 commits)")[![jprodrigues70](https://avatars.githubusercontent.com/u/9157395?v=4)](https://github.com/jprodrigues70 "jprodrigues70 (4 commits)")[![bratao](https://avatars.githubusercontent.com/u/1090152?v=4)](https://github.com/bratao "bratao (1 commits)")

---

Tags

iugupayment

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/potelo-multi-payment/health.svg)

```
[![Health](https://phpackages.com/badges/potelo-multi-payment/health.svg)](https://phpackages.com/packages/potelo-multi-payment)
```

###  Alternatives

[sebdesign/laravel-viva-payments

A Laravel package for integrating the Viva Payments gateway

4845.9k](/packages/sebdesign-laravel-viva-payments)[maartenpaauw/filament-cashier-billing-provider

Filament billing provider for Laravel Cashier

10228.1k](/packages/maartenpaauw-filament-cashier-billing-provider)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[musahmusah/laravel-multipayment-gateways

A Laravel Package that makes implementation of multiple payment Gateways endpoints and webhooks seamless

852.2k1](/packages/musahmusah-laravel-multipayment-gateways)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
