devsitarget / sdk-yapay-php
SDK PHP para integração com Yapay (Boleto, Pix, Cartão e consulta de transações)
1.0.0
2026-03-07 01:43 UTC
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.5
- psr/http-client: ^1.0
- psr/http-message: ^1.0 || ^2.0
- psr/log: ^1.0 || ^2.0 || ^3.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
README
SDK de integração com Yapay (Boleto, Pix, Cartão de Crédito), com consulta de transações e parser de webhook de liquidação.
Funcionalidades
- Pix: geração e consulta de status
- Cartão de crédito: criação e cobrança (inclui parcelamento)
- Boleto: emissão e consulta de dados
- Consulta de transação por
token_transaction/transaction_id - Mapeamento de status de pagamento e parser de webhook de liquidação
Requisitos
- PHP >= 8.1
- Guzzle HTTP
Instalação
composer require devsitarget/sdk-yapay-php
Configuração
<?php use YapaySdk\Environment; use YapaySdk\Store; use YapaySdk\Yapay; $store = new Store( tokenAccount: 'SEU_TOKEN_ACCOUNT', environment: Environment::sandbox() // ou Environment::production() ); $yapay = new Yapay($store);
Uso Básico
Pix: gerar cobrança
<?php use YapaySdk\Customer; use YapaySdk\Address; use YapaySdk\Pix\PixRequest; $customer = new Customer( id: '123', name: 'Cliente', email: 'cliente@exemplo.com', document: '12345678900', phone: '11999999999', address: new Address( street: 'Rua A', number: '100', zipCode: '01234567', neighborhood: 'Centro', city: 'Sao Paulo', state: 'SP' ) ); $pixResponse = $yapay->createPixCharge(new PixRequest( amount: 120.50, currency: 'BRL', customer: $customer, description: 'Pedido 123', number: '123' ));
Consultar transação
<?php $lookup = $yapay->getTransactionByToken('cb22c716c80ddbaa16f8b8dbc49302a2'); $parsed = Yapay::parseTransactionLookup($lookup);
Facade (Cartão e Boleto)
O facade também expõe:
createCreditCardPayment()processInstallmentCreditCardPayment()generateBank()getBankData()checkPixStatus()getPixPayload()checkPaymentStatus()
Webhook de liquidação
<?php $parsed = Yapay::parseSettlementWebhook($payload); // tid, transactionId, tokenTransaction, paymentMethodCode, statusCode, lowDate, occurrenceDate
Split (affiliates)
As requests aceitam affiliates via objetos BillAffiliate (mesma ideia do SDK da Vindi).
<?php use YapaySdk\BillAffiliate; $affiliates = [ new BillAffiliate(affiliateId: 2425, amount: 50.0, amountType: 2), // 50% new BillAffiliate(affiliateId: 3000, amount: 10.0, amountType: 1), // R$ 10,00 ];
Observações:
- Se você precisar enviar a estrutura crua da Yapay, use
metadata['split_rules']. - O SDK repassa
split_rulessem transformar.
Testes e qualidade
composer install
composer test
composer phpstan
composer cs-check
composer cs-fix
Docker (opcional)
make build
make up
make install
make test
make phpstan
make cs-check
make cs-fix
make down
Desenvolvimento
Estrutura do Projeto
yapay-sdk/
├── src/
│ └── Yapay/
│ ├── Environment.php
│ ├── Store.php
│ ├── PaymentStatus.php
│ ├── YapayBaseClient.php
│ ├── Yapay.php
│ ├── Pix/
│ ├── CreditCard/
│ └── Bank/
├── tests/
│ └── Unit/
├── composer.json
├── phpunit.xml
├── env.example
└── README.md
Padrões de Código
- PSR-4 para autoload
- Injeção de dependência (Guzzle Client)
- Testes unitários com mock de HTTP
Licença
MIT