PHPackages                             dominasys/pagbank-php-sdk - 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. dominasys/pagbank-php-sdk

ActiveLibrary[API Development](/categories/api)

dominasys/pagbank-php-sdk
=========================

SDK PHP da DominaSys para integrar com a API do PagBank.

v0.1.1(1mo ago)00MITPHPPHP ^8.2CI passing

Since Apr 17Pushed 1mo agoCompare

[ Source](https://github.com/DominaSys/web-package-pagbank-php-sdk)[ Packagist](https://packagist.org/packages/dominasys/pagbank-php-sdk)[ GitHub Sponsors](https://github.com/dominasys)[ RSS](/packages/dominasys-pagbank-php-sdk/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (2)Dependencies (4)Versions (4)Used By (0)

Pagbank PHP SDK
===============

[](#pagbank-php-sdk)

[![Latest Version on Packagist](https://camo.githubusercontent.com/e168b60fc22b19de8e38a2e797bd3b286b64a0fa11449f619c4e603cee618d5c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646f6d696e617379732f70616762616e6b2d7068702d73646b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dominasys/pagbank-php-sdk)[![GitHub Tests Action Status](https://camo.githubusercontent.com/9b8030127f71c6dbbca99935756e20fb91e1090d103f52e844565376b31070e2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f646f6d696e617379732f7765622d7061636b6167652d70616762616e6b2d7068702d73646b2f72756e2d74657374732e796d6c3f6272616e63683d6d6173746572266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/dominasys/web-package-pagbank-php-sdk/actions?query=workflow%3A%22Run+Tests%22+branch%3Amaster)[![Total Downloads](https://camo.githubusercontent.com/034f190f75bfcf4751ac11a85226383b95374094a53d22d5c4d58c3187f203b4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646f6d696e617379732f70616762616e6b2d7068702d73646b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dominasys/pagbank-php-sdk)

SDK PHP puro para integrar aplicações com a API do PagBank.

Este pacote nasce com uma regra simples: o core não depende de Laravel. A ideia é servir como base pública, reutilizável em qualquer aplicação PHP, enquanto as integrações específicas de framework ficam para camadas opcionais depois.

O que este pacote resolve
-------------------------

[](#o-que-este-pacote-resolve)

- autenticação e configuração de ambiente;
- client HTTP centralizado para a API do PagBank;
- módulo `Connect` para fluxo OAuth base;
- módulo `Accounts` para criação e consulta de conta;
- módulo `PublicKeys` para criar, consultar e renovar chaves públicas;
- módulo `Cards` para validação e armazenamento de cartão;
- módulo `Orders` para criação, consulta e pagamento de pedidos;
- módulo `Charges` para consulta, captura e cancelamento de cobranças;
- resposta e erro padronizados para a API;
- base pronta para crescer para checkout, webhooks e recorrência.

Escopo do v1
------------

[](#escopo-do-v1)

O pacote já cobre o núcleo de `Connect`, `Accounts`, `PublicKeys`, `Cards`, `Orders` e `Charges`:

- criar aplicação;
- consultar aplicação;
- gerar URL de autorização via `Connect Authorization`;
- trocar `code` por `access_token`;
- renovar `access_token`;
- revogar `access_token`;
- criar conta;
- consultar conta;
- criar chave pública;
- consultar chave pública;
- alterar chave pública;
- criar pedido;
- consultar pedido;
- pagar pedido.
- consultar cobrança;
- capturar cobrança;
- cancelar cobrança.

O fluxo de cartões armazenados fica em `Cards`:

- validar e armazenar cartão.

Ainda não entram no v1:

- Connect via SMS;
- Connect challenge;
- sessão 3DS;
- consulta de taxas de transação;
- checkout;
- cartões;
- recorrência;
- webhooks.

Por que esse pacote existe
--------------------------

[](#por-que-esse-pacote-existe)

O objetivo é evitar dependência de wrappers legados ou de intermediários de terceiros. A DominaSys precisa de uma base estável, previsível e com API pública própria para permitir integrações diretas com o PagBank.

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

[](#instalação)

```
composer require dominasys/pagbank-php-sdk
```

Uso básico
----------

[](#uso-básico)

```
use Dominasys\PagBank\Environment;
use Dominasys\PagBank\Connect\Dto\AuthorizationUrlData;
use Dominasys\PagBank\Connect\Dto\AuthorizationScopes;
use Dominasys\PagBank\Connect\Dto\CreateApplicationData;
use Dominasys\PagBank\Accounts\Dto\AccountData;
use Dominasys\PagBank\Accounts\Dto\AccountPersonData;
use Dominasys\PagBank\Accounts\Dto\AccountTosAcceptanceData;
use Dominasys\PagBank\Orders\Dto\CreateOrderData;
use Dominasys\PagBank\Orders\Dto\OrderAddressData;
use Dominasys\PagBank\Orders\Dto\OrderCustomerData;
use Dominasys\PagBank\Orders\Dto\OrderItemData;
use Dominasys\PagBank\Orders\Dto\OrderPhoneData;
use Dominasys\PagBank\Orders\Dto\OrderShippingData;
use Dominasys\PagBank\Orders\Enums\OrderCustomerPhoneType;
use Dominasys\PagBank\Cards\Dto\CardEncryptData;
use Dominasys\PagBank\Cards\Dto\CardHolderData;
use Dominasys\PagBank\Cards\Dto\CardStoreData;
use Dominasys\PagBank\Charges\Dto\ChargeAmountData;
use Dominasys\PagBank\Charges\Dto\ChargeCaptureData;
use Dominasys\PagBank\Charges\Dto\ChargeCancelData;
use Dominasys\PagBank\Support\Credentials;
use Dominasys\PagBank\Support\Endpoints;
use Dominasys\PagBank\PagBank;
use Dominasys\PagBank\Support\Configuration;
use Dominasys\PagBank\Support\Transport;

$sdk = PagBank::make(
    Configuration::make(
        endpoints: new Endpoints(environment: Environment::Sandbox),
        credentials: new Credentials(
            bearerToken: $_ENV['PAGBANK_BEARER_TOKEN'] ?? null,
            clientId: $_ENV['PAGBANK_CLIENT_ID'] ?? null,
            clientSecret: $_ENV['PAGBANK_CLIENT_SECRET'] ?? null,
        ),
        transport: new Transport(),
    ),
);

$connect = $sdk->connect();
```

### Criar aplicação

[](#criar-aplicação)

```
$response = $connect->createApplication(new CreateApplicationData(
    name: 'DominaPay',
    description: 'Plataforma de pagamentos da DominaSys',
    site: 'https://domina.example',
    redirectUri: 'https://domina.example/callback/pagbank',
    logo: 'https://domina.example/logo.png',
));

$clientId = $response->clientId();
```

### URL de autorização

[](#url-de-autorização)

```
$authorizationUrl = $connect->authorizationUrl(
    new AuthorizationUrlData(
        clientId: 'seu-client-id',
        redirectUri: 'https://domina.example/callback/pagbank',
        scopes: new AuthorizationScopes('payments.read', 'payments.create'),
        state: 'tenant-123',
    ),
);
```

### Trocar código por token

[](#trocar-código-por-token)

```
$token = $connect->exchangeAuthorizationCode(
    code: $_GET['code'],
    redirectUri: 'https://domina.example/callback/pagbank',
);

$accessToken = $token->accessToken();
```

### Contas

[](#contas)

```
$accounts = $sdk->accounts();

$account = $accounts->createAccount(AccountData::buyer(
    email: 'buyer@domina.example',
    person: new AccountPersonData(
        name: 'José Carlos Silva',
        birthDate: '1991-10-10',
        motherName: 'Maria Silva',
        taxId: '12345678900',
    ),
    tosAcceptance: new AccountTosAcceptanceData(
        userIp: '127.0.0.1',
        date: '2024-01-01T10:00:00-03:00',
    ),
));

$accountId = $account->id();
```

### Pedidos

[](#pedidos)

```
$orders = $sdk->orders();

$order = $orders->createOrder(
    new CreateOrderData(
        referenceId: 'order-123',
        customer: new OrderCustomerData(
            taxId: '12345678900',
            name: 'José Carlos Silva',
            email: 'jose@domina.example',
            phones: [
                new OrderPhoneData(
                    country: '55',
                    area: '11',
                    number: '999999999',
                    type: OrderCustomerPhoneType::Mobile,
                ),
            ],
        ),
        items: [
            new OrderItemData(
                referenceId: 'item-001',
                name: 'Plano mensal',
                quantity: 1,
                unitAmount: 4990,
            ),
        ],
        shipping: new OrderShippingData(
            address: new OrderAddressData(
                street: 'Rua Exemplo',
                number: '100',
                complement: 'Sala 12',
                locality: 'Centro',
                city: 'São Paulo',
                regionCode: 'SP',
                country: 'BRA',
                postalCode: '01000000',
            ),
        ),
    ),
    idempotencyKey: 'order-123',
);

$orderId = $order->id();
```

### Cobranças

[](#cobranças)

```
$charges = $sdk->charges();

$charge = $charges->getCharge('CHAR_123');

$captured = $charges->captureCharge(
    'CHAR_123',
    new ChargeCaptureData(
        amount: new ChargeAmountData(150099),
    ),
);

$charges->cancelCharge(
    'CHAR_123',
    new ChargeCancelData(
        amount: new ChargeAmountData(150099),
    ),
);
```

### Chaves públicas

[](#chaves-públicas)

```
$publicKeys = $sdk->publicKeys();

$publicKey = $publicKeys->createCardPublicKey();
$currentPublicKey = $publicKeys->getCardPublicKey();
$updatedPublicKey = $publicKeys->updateCardPublicKey();
```

### Cartões

[](#cartões)

O fluxo de cartões foi separado do núcleo de cobrança. Quando o seu backend já recebe os dados brutos do cartão, você pode criptografar tudo server-side com `cards()->encryptCard(...)` usando a chave pública obtida em `publicKeys()` e só depois enviar o `encryptedCard` para armazenamento/tokenização.

```
$cards = $sdk->cards();

$encrypted = $cards->encryptCard(new CardEncryptData(
    publicKey: $_ENV['PAGBANK_PUBLIC_KEY'],
    number: '4242424242424242',
    expMonth: 12,
    expYear: 2030,
    holder: 'Jose da Silva',
    securityCode: '123',
));

$storedCard = $cards->validateAndStoreCard(
    CardStoreData::encrypted(
        $encrypted->encryptedCard(),
        new CardHolderData('Jose da Silva', '12345678909'),
    ),
);
```

Roadmap
-------

[](#roadmap)

Depois do núcleo de `Connect`, `Accounts`, `PublicKeys`, `Cards`, `Orders` e `Charges`, o pacote evolui para:

- Connect via SMS;
- Connect challenge;
- Checkout;
- gestão ampliada de cartões;
- recorrência;
- webhooks;
- bridge Laravel opcional, se fizer sentido.

Convenções
----------

[](#convenções)

- PHP 8.2+;
- namespace `Dominasys\PagBank\`;
- respostas normalizadas em objetos próprios;
- erros da API mapeados para exceções do pacote;
- sem dependência de Laravel no core.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 86.2% 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 ~0 days

Total

3

Last Release

54d ago

### Community

Maintainers

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

---

Top Contributors

[![nobrudevz](https://avatars.githubusercontent.com/u/70036534?v=4)](https://github.com/nobrudevz "nobrudevz (25 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

phpapisdkpagbankdominasys

###  Code Quality

TestsPest

Static AnalysisRector

### Embed Badge

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

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

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k8.8M83](/packages/openai-php-laravel)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[resend/resend-php

Resend PHP library.

596.2M34](/packages/resend-resend-php)[checkout/checkout-sdk-php

Checkout.com SDK for PHP

563.5M10](/packages/checkout-checkout-sdk-php)[clicksend/clicksend-php

351.6M11](/packages/clicksend-clicksend-php)[mozex/anthropic-laravel

Laravel integration for the Anthropic API: facade, config publishing, install command, testing fakes, messages, streaming, tool use, thinking, and batches.

72287.1k1](/packages/mozex-anthropic-laravel)

PHPackages © 2026

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