PHPackages                             clubedev/pagbank-php - 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. [API Development](/categories/api)
4. /
5. clubedev/pagbank-php

ActiveLibrary[API Development](/categories/api)

clubedev/pagbank-php
====================

Biblioteca PHP para integração com a API PagBank, com autenticação via token do Clube Dev.

v1.0.2(5mo ago)57MITPHPPHP &gt;=8.1

Since Nov 21Pushed 3mo agoCompare

[ Source](https://github.com/clubedev/pagbank-php)[ Packagist](https://packagist.org/packages/clubedev/pagbank-php)[ RSS](/packages/clubedev-pagbank-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (4)Used By (0)

PagBank PHP SDK – API Pix, Boleto e Cartão
==========================================

[](#pagbank-php-sdk--api-pix-boleto-e-cartão)

SDK PHP para integração com a API do PagBank (PagSeguro). Pagamentos via Pix, Boleto e Cartão de Crédito de forma simples e segura.

Este SDK facilita pagamentos com PagBank utilizando a ponte oficial do **ClubeDev**, permitindo criar cobranças, consultar transações e realizar cancelamentos totais ou parciais de maneira simples e padronizada.

A biblioteca foi desenvolvida para ser utilizada por **programadores iniciantes e intermediários**, com foco em simplicidade, clareza e segurança.

---

Sumário
=======

[](#sumário)

- [Instalação](#instala%C3%A7%C3%A3o)
- [Requisitos](#requisitos)
- [Autenticação e Tokens](#autentica%C3%A7%C3%A3o-e-tokens)
- [Inicialização](#inicializa%C3%A7%C3%A3o)
- [Pagamentos](#pagamentos)
    - [Criar pagamento Pix](#criar-pagamento-pix)
    - [Criar pagamento Cartão](#criar-pagamento-cart%C3%A3o)
    - [Criar pagamento Boleto](#criar-pagamento-boleto)
    - [Consultar pagamento](#consultar-pagamento)
- [Cancelamentos](#cancelamentos)
    - [Cancelamento parcial](#cancelamento-parcial)
    - [Cancelamento total](#cancelamento-total)
- [Processamento Webhook](#processamento-webhook)
- [Domínios (Domains)](#dom%C3%ADnios-domains)
- [Tratamento de Exceções](#tratamento-de-exce%C3%A7%C3%B5es)
- [Exemplos completos](#exemplos-completos)
- [Suporte](#suporte)

---

Instalação
==========

[](#instalação)

```
composer require clubedev/pagbank-php
```

---

Requisitos
==========

[](#requisitos)

- PHP **8.1+**
- cURL ativado
- Composer

---

Autenticação e Tokens
=====================

[](#autenticação-e-tokens)

Para utilizar a biblioteca, você precisa fornecer:

- **Token PagBank**
- **Token ClubeDev**

Ambos são obrigatórios para validação, segurança e auditoria das operações.

### Adquirindo e configurando seu Token ClubeDev

[](#adquirindo-e-configurando-seu-token-clubedev)

#### Ambiente Sandbox (testes)

[](#ambiente-sandbox-testes)

1. Utilize o seguinte token: `78e670d6-bbbc-4cec-a4e8-79556aa61dfc`

#### Ambiente Produção

[](#ambiente-produção)

1. Acesse:
2. Compre seu token
3. Acesse sua conta em:
4. Vá ao menu **Tokens**
5. Clique em **Configurar Token**
6. Preencha os dados e clique em **Salvar**

### Gerando seu Token PagBank

[](#gerando-seu-token-pagbank)

#### Ambiente Sandbox (testes)

[](#ambiente-sandbox-testes-1)

1. Acesse:
2. Crie sua conta de desenvolvedor
3. Vá até o menu **Tokens**
4. Gere o token de sandbox

#### Ambiente Produção

[](#ambiente-produção-1)

1. Faça login em:
2. Acesse diretamente o painel de integrações:

3. Clique em **Gerar Token**

---

Inicialização
=============

[](#inicialização)

```
require 'vendor/autoload.php';

use ClubeDev\PagBank\PagBank;

$payment = new PagBank(
    pagBankToken: 'SEU_TOKEN_PAGBANK',
    clubeDevToken: 'SEU_TOKEN_CLUBEDEV',
    sandbox: true // true = ambiente de testes
);
```

---

Pagamentos
==========

[](#pagamentos)

Criar pagamento Pix
-------------------

[](#criar-pagamento-pix)

```
use ClubeDev\PagBank\Domain\Client;
use ClubeDev\PagBank\Domain\Phone;
use ClubeDev\PagBank\Domain\Item;
use ClubeDev\PagBank\Domain\Shipping;
use ClubeDev\PagBank\Domain\Address;
use ClubeDev\PagBank\Domain\Payment;
use ClubeDev\PagBank\Domain\Payment\Pix;

$response = $payment->createPayment(
    reference: "identificação-informada-por-você", // Geralmente utilizado algum id
    client: new Client(
        document: "12345678909",
        name: "João",
        email: "email@email.com",
        phones: [ // Opcional
            new Phone(
                country: 55,
                area: 21,
                number: 999121314
            ),
            new Phone(
                country: 55,
                area: 21,
                number: 999151617
            ),
        ]
    ),
    items: [ // Opcional
        new Item(
            name: 'Item X',
            quantity: 1,
            unit_amount: 12.99
        )
    ],
    shipping: new Shipping( // Opcional
        address: new Address(
            street: 'Rua 01',
            number: '01', // Opcional
            complement: 'Q01 L01', // Opcional
            locality: 'Bairro',
            city: 'Cidade',
            state_code: 'SP',
            postal_code: '01310930'
        )
    ),
    payment: new Payment(
        pix: new Pix(
            expiration_date: "2025-12-01 12:00:00",
            amount: 25.90
        )
    ),
    webhook_url: 'https://exemplo.com/webhook' // Opcional
);
```

### Retorno esperado

[](#retorno-esperado)

MétodoTipo RetornoDescrição$response-&gt;raw()ArrayEste método retorna os dados brutos$response-&gt;orderId()StringID do pedido PagBank$response-&gt;reference()MixedReferência enviada por você ao PagBank$response-&gt;createdAt()StringData de criação do pagamento, formato: Y-m-d H:i:s$response-&gt;status()StringStatus do pagamento$response-&gt;shipping()Shipping\* ou nullCaso tenha enviado dados de entrega, será retornado aqui$response-&gt;items()Array de Item\*Caso tenha enviado items, será retornado aqui$response-&gt;client()Client\*Dados do cliente que irá realizar o pagamento$response-&gt;payment()Payment\*Dados do pagamento\* Shipping, Item, Client e Payment são domain para tratamento de dados, no fim da documentação terá os detalhes de cada um

### Exemplo de uso do retorno

[](#exemplo-de-uso-do-retorno)

```
$amount = $response->payment()?->pix?->amount;
$expirationDate = $response->payment()?->pix?->expiration_date;
$chargeId = $response->payment()?->pix?->charge_id;
$qrcode = $response->payment()?->pix?->qrcode;
$qrcodeImage = $response->payment()?->pix?->qrcode_image;
```

---

Criar pagamento Cartão
----------------------

[](#criar-pagamento-cartão)

Para criar pagamento com cartão é obrigatório a utilização da biblioteca frontend **[@clubedev/pagbank-encrypt-card](https://www.npmjs.com/package/@clubedev/pagbank-encrypt-card)** para gerar o **card\_token**

```
use ClubeDev\PagBank\Domain\Client;
use ClubeDev\PagBank\Domain\Phone;
use ClubeDev\PagBank\Domain\Item;
use ClubeDev\PagBank\Domain\Shipping;
use ClubeDev\PagBank\Domain\Address;
use ClubeDev\PagBank\Domain\Payment;
use ClubeDev\PagBank\Domain\Payment\CreditCard;
use ClubeDev\PagBank\Domain\Payment\Holder;

$response = $payment->createPayment(
    reference: "identificação-informada-por-você", // Geralmente utilizado algum id
    client: new Client(
        document: "12345678909",
        name: "João",
        email: "email@email.com",
        phones: [ // Opcional
            new Phone(
                country: 55,
                area: 21,
                number: 999121314
            ),
            new Phone(
                country: 55,
                area: 21,
                number: 999151617
            ),
        ]
    ),
    items: [ // Opcional
        new Item(
            name: 'Item X',
            quantity: 1,
            unit_amount: 21.36
        )
    ],
    shipping: new Shipping( // Opcional
        address: new Address(
            street: 'Rua 01',
            number: '01', // Opcional
            complement: 'Q01 L01', // Opcional
            locality: 'Bairro',
            city: 'Cidade',
            state_code: 'SP',
            postal_code: '01310930'
        )
    ),
    payment: new Payment(
        credit_card: new CreditCard(
            amount: 21.36,
            description: 'Descrição do pagamento',
            soft_descriptor: 'NOMEFATURACLIENTE',
            card_token: 'TOKEN_GERADO_PELO_SDK_JS', // Utilize ClubeDev PagBank Card Encrypt
            holder: new Holder(
                document: '123.456.789-09',
                name: 'Wanderson Teste',
            )
        )
    ),
    webhook_url: 'https://exemplo.com/webhook' // Opcional
);
```

### Retorno esperado

[](#retorno-esperado-1)

MétodoTipo RetornoDescrição$response-&gt;raw()ArrayEste método retorna os dados brutos$response-&gt;orderId()StringID do pedido PagBank$response-&gt;reference()MixedReferência enviada por você ao PagBank$response-&gt;createdAt()StringData de criação do pagamento, formato: Y-m-d H:i:s$response-&gt;status()StringStatus do pagamento$response-&gt;shipping()Shipping\* ou nullCaso tenha enviado dados de entrega, será retornado aqui$response-&gt;items()Array de Item\*Caso tenha enviado items, será retornado aqui$response-&gt;client()Client\*Dados do cliente que irá realizar o pagamento$response-&gt;payment()Payment\*Dados do pagamento\* Shipping, Item, Client e Payment são domain para tratamento de dados, no fim da documentação terá os detalhes de cada um

### Exemplo de uso do retorno

[](#exemplo-de-uso-do-retorno-1)

```
$amount = $response->payment()?->credit_card?->amount;
$description = $response->payment()?->credit_card?->description;
$softDescriptor = $response->payment()?->credit_card?->soft_descriptor;
$chargeId = $response->payment()?->credit_card?->charge_id;
$reference = $response->payment()?->credit_card?->reference;
$authorizationCode = $response->payment()?->credit_card?->authorization_code;
$nsu = $response->payment()?->credit_card?->nsu;
$brand = $response->payment()?->credit_card?->brand;
$cardNumber = $response->payment()?->credit_card?->card_number;
$expiration = $response->payment()?->credit_card?->expiration;
$holderName = $response->payment()?->credit_card?->holder?->name;
$holderDocument = $response->payment()?->credit_card?->holder?->document;
```

---

Criar pagamento Boleto
----------------------

[](#criar-pagamento-boleto)

```
use ClubeDev\PagBank\Domain\Client;
use ClubeDev\PagBank\Domain\Phone;
use ClubeDev\PagBank\Domain\Item;
use ClubeDev\PagBank\Domain\Shipping;
use ClubeDev\PagBank\Domain\Address;
use ClubeDev\PagBank\Domain\Payment;
use ClubeDev\PagBank\Domain\Payment\Title;
use ClubeDev\PagBank\Domain\Payment\Holder;

$response = $payment->createPayment(
    reference: "identificação-informada-por-você", // Geralmente utilizado algum id
    client: new Client(
        document: "12345678909",
        name: "João",
        email: "email@email.com",
        phones: [ // Opcional
            new Phone(
                country: 55,
                area: 21,
                number: 999121314
            ),
            new Phone(
                country: 55,
                area: 21,
                number: 999151617
            ),
        ]
    ),
    items: [ // Opcional
        new Item(
            name: 'Item X',
            quantity: 1,
            unit_amount: 21.36
        )
    ],
    shipping: new Shipping( // Opcional
        address: new Address(
            street: 'Rua 01',
            number: '01', // Opcional
            complement: 'Q01 L01', // Opcional
            locality: 'Bairro',
            city: 'Cidade',
            state_code: 'SP',
            postal_code: '01310930'
        )
    ),
    payment: new Payment(
        title: new Title(
            description: 'Descrição do boleto',
            amount: 14.98,
            due_date: '2025-11-20',
            holder: new Holder(
                document: '12345678909',
                name: 'Wanderson Teste',
                email: 'wanderson@teste.com',
                address: new Address(
                    street: 'Rua 01',
                    number: '01', // Opcional
                    locality: 'Bairro',
                    city: 'Cidade',
                    state: 'São Paulo',
                    state_code: 'SP',
                    postal_code: '01310930'
                )
            )
        )
    ),
    webhook_url: 'https://exemplo.com/webhook' // Opcional
);
```

### Retorno esperado

[](#retorno-esperado-2)

MétodoTipo RetornoDescrição$response-&gt;raw()ArrayEste método retorna os dados brutos$response-&gt;orderId()StringID do pedido PagBank$response-&gt;reference()MixedReferência enviada por você ao PagBank$response-&gt;createdAt()StringData de criação do pagamento, formato: Y-m-d H:i:s$response-&gt;status()StringStatus do pagamento$response-&gt;shipping()Shipping\* ou nullCaso tenha enviado dados de entrega, será retornado aqui$response-&gt;items()Array de Item\*Caso tenha enviado items, será retornado aqui$response-&gt;client()Client\*Dados do cliente que irá realizar o pagamento$response-&gt;payment()Payment\*Dados do pagamento\* Shipping, Item, Client e Payment são domain para tratamento de dados, no fim da documentação terá os detalhes de cada um

### Exemplo de uso do retorno

[](#exemplo-de-uso-do-retorno-2)

```
$amount = $response->payment()?->title?->amount;
$description = $response->payment()?->title?->description;
$dueDate = $response->payment()?->title?->due_date;
$chargeId = $response->payment()?->title?->charge_id;
$barCode = $response->payment()?->title?->bar_code;
$urlPdf = $response->payment()?->title?->url;
$holderName = $response->payment()?->title?->holder?->name;
$holderDocument = $response->payment()?->title?->holder?->document;
$holderEmail = $response->payment()?->title?->holder?->email;
$holderAddressStreet = $response->payment()?->title?->holder?->address?->street;
$holderAddressNumber = $response->payment()?->title?->holder?->address?->number;
$holderAddressLocality = $response->payment()?->title?->holder?->address?->locality;
$holderAddressCity = $response->payment()?->title?->holder?->address?->city;
$holderAddressState = $response->payment()?->title?->holder?->address?->state;
$holderAddressStateCode = $response->payment()?->title?->holder?->address?->state_code;
$holderAddressPostal_code = $response->payment()?->title?->holder?->address?->postal_code;
```

---

Consultar pagamento
-------------------

[](#consultar-pagamento)

Para consultar o pagamento será necessário informar o **ORDER\_ID** que é encontrado na criação do pagamento **$response-&gt;orderId()**

```
$response = $payment->getPayment('ORDER_ID');
```

### Retorno esperado

[](#retorno-esperado-3)

MétodoTipo RetornoDescrição$response-&gt;raw()ArrayEste método retorna os dados brutos$response-&gt;orderId()StringID do pedido PagBank$response-&gt;reference()MixedReferência enviada por você ao PagBank$response-&gt;createdAt()StringData de criação do pagamento, formato: Y-m-d H:i:s$response-&gt;status()StringStatus do pagamento$response-&gt;shipping()Shipping\* ou nullCaso tenha enviado dados de entrega, será retornado aqui$response-&gt;items()Array de Item\*Caso tenha enviado items, será retornado aqui$response-&gt;client()Client\*Dados do cliente que irá realizar o pagamento$response-&gt;payment()Payment\*Dados do pagamento\* Shipping, Item, Client e Payment são domain para tratamento de dados, no fim da documentação terá os detalhes de cada um

### Exemplo de uso do retorno pix

[](#exemplo-de-uso-do-retorno-pix)

```
$amount = $response->payment()?->pix?->amount;
$expirationDate = $response->payment()?->pix?->expiration_date;
$chargeId = $response->payment()?->pix?->charge_id;
$qrcode = $response->payment()?->pix?->qrcode;
$qrcodeImage = $response->payment()?->pix?->qrcode_image;
```

### Exemplo de uso do retorno cartão de crédito

[](#exemplo-de-uso-do-retorno-cartão-de-crédito)

```
$amount = $response->payment()?->credit_card?->amount;
$description = $response->payment()?->credit_card?->description;
$softDescriptor = $response->payment()?->credit_card?->soft_descriptor;
$chargeId = $response->payment()?->credit_card?->charge_id;
$reference = $response->payment()?->credit_card?->reference;
$authorizationCode = $response->payment()?->credit_card?->authorization_code;
$nsu = $response->payment()?->credit_card?->nsu;
$brand = $response->payment()?->credit_card?->brand;
$cardNumber = $response->payment()?->credit_card?->card_number;
$expiration = $response->payment()?->credit_card?->expiration;
$holderName = $response->payment()?->credit_card?->holder?->name;
$holderDocument = $response->payment()?->credit_card?->holder?->document;
```

### Exemplo de uso do retorno boleto

[](#exemplo-de-uso-do-retorno-boleto)

```
$amount = $response->payment()?->title?->amount;
$description = $response->payment()?->title?->description;
$dueDate = $response->payment()?->title?->due_date;
$chargeId = $response->payment()?->title?->charge_id;
$barCode = $response->payment()?->title?->bar_code;
$urlPdf = $response->payment()?->title?->url;
$holderName = $response->payment()?->title?->holder?->name;
$holderDocument = $response->payment()?->title?->holder?->document;
$holderEmail = $response->payment()?->title?->holder?->email;
$holderAddressStreet = $response->payment()?->title?->holder?->address?->street;
$holderAddressNumber = $response->payment()?->title?->holder?->address?->number;
$holderAddressLocality = $response->payment()?->title?->holder?->address?->locality;
$holderAddressCity = $response->payment()?->title?->holder?->address?->city;
$holderAddressState = $response->payment()?->title?->holder?->address?->state;
$holderAddressStateCode = $response->payment()?->title?->holder?->address?->state_code;
$holderAddressPostal_code = $response->payment()?->title?->holder?->address?->postal_code;
```

---

Cancelamentos
=============

[](#cancelamentos)

O mesmo método é utilizado tanto para cancelamento parcial quanto completo. Este método espera o **CHARGE\_ID** que é encontrado na criação ou busca do pagamento:

- PIX: **$response-&gt;payment()?-&gt;pix?-&gt;charge\_id**
- Cartão de crédito: **$response-&gt;payment()?-&gt;credit\_card?-&gt;charge\_id**
- Boleto: **$response-&gt;payment()?-&gt;title?-&gt;charge\_id**

```
$response = $payment->cancelPayment(
    charge_id: 'CHARGE_ID',
    amount: 16.99
);
```

### Cancelamento parcial

[](#cancelamento-parcial)

Se o valor enviado for **menor que o total pago**, o PagBank realizará um cancelamento parcial.

### Cancelamento total

[](#cancelamento-total)

Se o valor for **igual ao valor total pago**, será realizado um cancelamento completo.

### Retorno esperado

[](#retorno-esperado-4)

MétodoTipo RetornoDescrição$response-&gt;raw()ArrayEste método retorna os dados brutos$response-&gt;canceled()BooleanInforma se sua requisição foi bem executada$response-&gt;id()StringID do pedido PagBank$response-&gt;fullRefunded()BooleanInforma se o pagamento foi completamente estornado$response-&gt;paid()FloatValor pago pelo cliente$response-&gt;refunded()FloatValor estornado ao cliente---

Processamento Webhook
=====================

[](#processamento-webhook)

Para facilitar, desenvolvemos um método que irá processar o webhook para você.

```
$body = file_get_contents('php://input');
$paymentWebhook = $payment->webhook(json_decode($body, true));
```

### Retorno esperado

[](#retorno-esperado-5)

MétodoTipo RetornoDescrição$response-&gt;raw()ArrayEste método retorna os dados brutos$response-&gt;orderId()StringID do pedido PagBank$response-&gt;reference()MixedReferência informada por você na criação do pagamento$response-&gt;createdAt()StringData de criação do pagamento, formato **Y-m-d H:i:s**$response-&gt;status()StringStatus do pagamento$response-&gt;paid()BooleanInforma se o pagamento foi concluído$response-&gt;canceled()BooleanInforma se o pagamento foi cancelado$response-&gt;waiting()BooleanInforma se o pagamento está pendente$response-&gt;inAnalysis()BooleanInforma se o pagamento está em análise$response-&gt;declined()BooleanInforma se o pagamento foi recusado$response-&gt;authorized()BooleanInforma se o pagamento foi autorizado$response-&gt;shipping()Shipping\* ou nullCaso tenha enviado dados de entrega, será retornado aqui$response-&gt;items()Array de Item\*Caso tenha enviado items, será retornado aqui$response-&gt;client()Client\*Dados do cliente que irá realizar o pagamento$response-&gt;payment()Payment\*Dados do pagamento\* Shipping, Item, Client e Payment são domain para tratamento de dados, no fim da documentação terá os detalhes de cada um

Domínios (Domains)
==================

[](#domínios-domains)

A biblioteca usa objetos para garantir que os dados enviados ao backend estejam no formato correto e também uma forma de utilização/formatação dos dados recebidos do backend.

Abaixo, um resumo simples:

### Phone

[](#phone)

```
use ClubeDev\PagBank\Domain\Phone;

new Phone(
    country: 55,
    area: 21,
    number: 999999999
);
```

### Client

[](#client)

```
use ClubeDev\PagBank\Domain\Client;

new Client(
    document: "12345678900",
    name: "Fulano Teste",
    email: "teste@email.com",
    phones: [
        new Phone(country: 55, area: 21, number: 999999999),
        new Phone(country: 55, area: 21, number: 999999999),
    ]
);
```

### Item

[](#item)

```
use ClubeDev\PagBank\Domain\Item;

new Item(
    name: 'Item teste',
    quantity: 1,
    unit_amount: 12.99
);
```

### Address

[](#address)

```
use ClubeDev\PagBank\Domain\Address;

new Address(
    street: 'Rua 01',
    number: '01',
    complement: 'Q01 L01',
    locality: 'Bairro',
    city: 'Cidade',
    state: 'São Paulo',
    state_code: 'SP',
    postal_code: '01310930'
);
```

### Shipping

[](#shipping)

```
use ClubeDev\PagBank\Domain\Shipping;

new Shipping(
    address: new Address(...),
);
```

### Holder

[](#holder)

```
use ClubeDev\PagBank\Domain\Payment\Holder;

new Holder(
    document: '123.456.789-09',
    name: 'Fulano Teste',
    email: 'teste@teste.com',
    address: new Address(...)
)
```

### CreditCard

[](#creditcard)

```
use ClubeDev\PagBank\Domain\Payment\CreditCard;

new CreditCard(
    amount: 11.50,
    description: 'Descrição do pagamento',
    soft_descriptor: 'NOMEFATURA', // Descrição que aparecerá na fatura do cartão
    holder: new Holder(...),
    card_token: 'TOKEN_GERADO_PELO_SDK_JS',
    installments: 1,
    charge_id: null, // Preenchido automaticamente pelo backend
    reference: null, // Preenchido automaticamente pelo backend
    authorization_code: null, // Preenchido automaticamente pelo backend
    nsu: null, // Preenchido automaticamente pelo backend
    brand: null, // Preenchido automaticamente pelo backend
    card_number: null, // Preenchido automaticamente pelo backend
    expiration: null, // Preenchido automaticamente pelo backend
)
```

### Title

[](#title)

```
use ClubeDev\PagBank\Domain\Payment\Title;

new Title(
    amount: 11.50,
    description: 'Descrição do boleto para controle interno',
    due_date: '2025-12-01',
    holder: new Holder(...),
    instruction_line_1: 'Não receber após vencimento',
    instruction_line_2: 'Pagável apenas na loterica',
    charge_id: null, // Preenchido automaticamente pelo backend
    bar_code: null, // Preenchido automaticamente pelo backend
    url: null, // Preenchido automaticamente pelo backend
)
```

### Pix

[](#pix)

```
use ClubeDev\PagBank\Domain\Payment\Pix;

new Pix(
    amount: 11.50,
    expiration_date: '2025-12-01 12:30:00',
    charge_id: null, // Preenchido automaticamente pelo backend
    qrcode: null, // Preenchido automaticamente pelo backend
    qrcode_image: null, // Preenchido automaticamente pelo backend
)
```

### Payment

[](#payment)

```
use ClubeDev\PagBank\Domain\Payment;

new Payment(
    pix: new Pix(...),
    title: new Title(...),
    credit_card: new CreditCard(...),
    paid_at: null, // Preenchido automaticamente pelo backend
    status: null, // Preenchido automaticamente pelo backend
    full_refunded: null, // Preenchido automaticamente pelo backend
    paid: null, // Preenchido automaticamente pelo backend
    refunded: null, // Preenchido automaticamente pelo backend
)
```

---

Tratamento de Exceções
======================

[](#tratamento-de-exceções)

Todas as operações podem lançar exceções:

- `ClubedevException` – Erro lançado pelo ClubeDev
- `PagBankException` – Erro lançado pelo PagBank

### Exemplo de uso seguro:

[](#exemplo-de-uso-seguro)

```
use ClubeDev\PagBank\Exceptions\ClubedevException;
use ClubeDev\PagBank\Exceptions\PagBankException;

try {
    $response = $payment->getPayment('ORDER_ID');
} catch(ClubedevException $e) {
    $exception = json_decode($e->getMessage());
    echo $exception?->error ?? $exception?->message ?? $e->getMessage();
} catch(PagBankException $e) {
    $exception = json_decode($e->getMessage());
    echo $exception?->error ?? $exception?->message ?? $e->getMessage();
} catch (\Throwable $th) {
    echo $th->getMessage();
}
```

Suporte
=======

[](#suporte)

- **Site ClubeDev:**
- Suporte técnico via painel do cliente
- Exemplos e atualizações no repositório oficial

---

⌛ *Desenvolvido para ser simples, direto e produtivo.*

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance75

Regular maintenance activity

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~1 days

Total

3

Last Release

170d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4827885e26b35cd2fd98679b73968557e4d8fcec84e73324174249ee248a8bbb?d=identicon)[wcostaprijo](/maintainers/wcostaprijo)

---

Top Contributors

[![wcostaprijo](https://avatars.githubusercontent.com/u/54078100?v=4)](https://github.com/wcostaprijo "wcostaprijo (1 commits)")

---

Tags

api-pagbankapi-pagseguroboletocartao-de-creditolaravellaravel-pagbankpagamentospagamentos-apipagbankpagsegurophpphp-pixpix

### Embed Badge

![Health badge](/badges/clubedev-pagbank-php/health.svg)

```
[![Health](https://phpackages.com/badges/clubedev-pagbank-php/health.svg)](https://phpackages.com/packages/clubedev-pagbank-php)
```

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.2M720](/packages/statamic-cms)[ashallendesign/laravel-exchange-rates

A wrapper package for interacting with the exchangeratesapi.io API.

485677.8k](/packages/ashallendesign-laravel-exchange-rates)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[vluzrmos/slack-api

Wrapper for Slack.com WEB API.

102589.1k3](/packages/vluzrmos-slack-api)[smodav/mpesa

M-Pesa API implementation

16363.7k1](/packages/smodav-mpesa)[codebar-ag/laravel-docuware

DocuWare integration with Laravel

1221.1k](/packages/codebar-ag-laravel-docuware)

PHPackages © 2026

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