kseven / swiftpay-sdk
SDK PHP para SwiftPay
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:HTML
pkg:composer/kseven/swiftpay-sdk
Requires
- php: >=8.0
- guzzlehttp/guzzle: ^7.0
- monolog/monolog: ^3.0
- ramsey/uuid: ^5.0
- respect/validation: ^2.0
- symfony/http-foundation: ^6.0
- vlucas/phpdotenv: ^5.0
This package is auto-updated.
Last update: 2025-10-20 20:53:05 UTC
README
SDK PHP para integração com a API PIX da SwiftPay, incluindo métodos para depósitos, saques e processamento seguro de webhooks.
Instalação
composer require kseven/swiftpay-sdk
Certifique-se de ter PHP >= 8.0 e Guzzle 7.
Configuração
Crie um arquivo .env na raiz do projeto:
SWIFTPAY_URI=https://swiftpay.com.br/api/
SWIFTPAY_TOKEN=seu_token
SWIFTPAY_SECRET=seu_secret
WEBHOOK_SECRET=seu_webhook_secret
LOG_PATH=./logs/swiftpay.log
Crie a pasta logs com permissão de escrita.
Estrutura de arquivos
swiftpay-sdk/
├─ public/
│ ├─ webhook.php
│ ├─ deposit.php
│ └─ withdraw.php
├─ src/
│ ├─ SwiftPayClient.php
│ ├─ WebhookHandler.php
│ └─ Exceptions/SwiftPayException.php
├─ logs/
├─ .env
└─ composer.json
Uso do SDK
Depósito (PIX IN)
$client = new SwiftPayClient( $_ENV['SWIFTPAY_TOKEN'], $_ENV['SWIFTPAY_SECRET'], $_ENV['SWIFTPAY_URI'], $_ENV['LOG_PATH'] ); $response = $client->deposit([ 'amount' => 100.00, 'debtor_name' => 'Cliente Teste', 'email' => 'cliente@email.com', 'debtor_document_number' => '12345678900', 'phone' => '5511999999999', 'method_pay' => 'pix', 'postback' => 'https://meusite.com/webhook' ]); print_r($response);
Saque (PIX OUT)
$response = $client->withdraw([ 'amount' => 50.00, 'pixKey' => '12345678900', 'pixKeyType' => 'cpf', 'baasPostbackUrl' => 'https://meusite.com/webhook' ]); print_r($response);
Webhook
Exemplo de endpoint em PHP usando WebhookHandler:
$request = Request::createFromGlobals(); $handler = new WebhookHandler($_ENV['WEBHOOK_SECRET']); $data = $handler->handle($request); file_put_contents($_ENV['LOG_PATH'], json_encode($data), FILE_APPEND); http_response_code(200); echo json_encode(['success' => true]);
API Direta — Referência
Depósito (PIX IN)
- POST
https://swiftpay.com.br/api/wallet/deposit/payment - Headers:
Content-Type: application/json,Accept: application/json - Body:
{
"token": "seu_token",
"secret": "seu_secret",
"postback": "rota_callback",
"amount": 100.00,
"debtor_name": "Nome",
"email": "email@dominio.com",
"debtor_document_number": "CPF",
"phone": "Telefone",
"method_pay": "pix"
}
- Response:
{
"idTransaction": "TX123",
"qrcode": "código",
"qr_code_image_url": "url"
}
Saque (PIX OUT)
- POST
https://swiftpay.com.br/api/pixout - Headers:
Content-Type: application/json,Accept: application/json - Body:
{
"token": "seu_token",
"secret": "seu_secret",
"baasPostbackUrl": "url_callback",
"amount": 100.00,
"pixKey": "chave_pix",
"pixKeyType": "cpf"
}
- Response:
{
"id": "uuid",
"amount": 100,
"pixKey": "chave",
"pixKeyType": "cpf",
"withdrawStatusId": "PendingProcessing"
}
Webhook
{
"nome": "Cliente Teste",
"cpf": "12345678900",
"email": "cliente@email.com",
"status": "pago"
}
Segurança
- Nunca coloque tokens diretamente no código; use
.env - Valide HMAC dos webhooks
- Use HTTPS em todas as requisições
- Restrinja IPs quando possível
- Mantenha logs ativos para auditoria
Gerado em 19/09/2025 14:05 (America/Sao_Paulo)