Transbank Webpay
CommunityIntegrate Transbank Webpay Plus payments into Filament with a credentials UI, official SDK helpers, and POST token_ws redirects.
Author:
John Michael Rivera Gonzalez
Package health
BetaAutomated checks of this plugin's Composer package
15 checks
- Skipped: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No open Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Skipped: Dependabot or Renovate configured
- Skipped: Dependency update cooldown configured
- Passed: Provides a security policy
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 0 days ago; last release 0 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
-
Warning:
Current Laravel version supported
—
Package does not co-install with current Laravel
13.0; the newest co-installable line is12.0, which still receives active support but is not the current stable. -
Passed:
Current PHP version supported
—
Constraint
^8.2supports current PHP8.5. - Skipped: Current Symfony version supported
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
- Requirements
- Installation
- Gateway usage
- Reusable form schema
- Integration notes
- Testing
- Security
- Changelog
- License
A Filament plugin that integrates Transbank Webpay Plus (Chile) into your Laravel application: credentials UI, logos, POST token_ws redirects, and create / commit / status / refund helpers on the official Transbank SDK.
Open source (MIT). Badges like Buy license / Private Composer package / Proprietary documentation apply to paid Filament plugins only — this package is free on Packagist.
#Requirements
| Stack | Versions |
|---|---|
| PHP | 8.2+ |
| Laravel | 11.28+ / 12+ |
| Filament | 4.x or 5.x |
| Livewire | 3.x (with Filament 4) / 4.x (with Filament 5) |
#Installation
composer require johnrivera7/filament-transbank-webpay
Optional publishes:
php artisan vendor:publish --tag=filament-transbank-webpay-config
php artisan vendor:publish --tag=filament-transbank-webpay-assets
Register the plugin in your PanelProvider:
use JohnRivera7\FilamentTransbankWebpay\FilamentTransbankWebpayPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugin(
FilamentTransbankWebpayPlugin::make()
->navigationGroup('Pagos')
->navigationSort(40)
);
}
#Multi-tenant (recommended)
use JohnRivera7\FilamentTransbankWebpay\Support\TransbankCredentials;
->plugin(
FilamentTransbankWebpayPlugin::make()
->credentialsUsing(function (): TransbankCredentials {
$cfg = /* read from your DB */;
return TransbankCredentials::fromArray($cfg);
})
->persistCredentialsUsing(function (TransbankCredentials $credentials): void {
/* persist $credentials->toArray() */
})
)
#Single-tenant (.env)
TRANSBANK_ENABLED=true
TRANSBANK_COMMERCE_CODE=597055555532
TRANSBANK_API_KEY=...
TRANSBANK_ENVIRONMENT=integration
Without persistCredentialsUsing(), the settings page does not write credentials to disk—wire persistence via the callbacks above (or manage .env yourself).
#Gateway usage
use JohnRivera7\FilamentTransbankWebpay\FilamentTransbankWebpayPlugin;
use JohnRivera7\FilamentTransbankWebpay\Services\WebpayPlusGateway;
$gateway = FilamentTransbankWebpayPlugin::get()->gateway();
$payment = $gateway->create(
buyOrder: 'ORD123',
sessionId: 'sess-1',
amountClp: 15990,
returnUrl: route('payments.transbank.return'),
);
return response()->view('filament-transbank-webpay::payment-redirect', [
'url' => $payment['redirect_url'],
'fields' => $payment['redirect_fields'], // ['token_ws' => ...]
]);
On the return URL:
if (WebpayPlusGateway::isAbortReturn($request->all())) {
$reason = WebpayPlusGateway::abortReason($request->all()); // aborted|timeout
}
// If token_ws is present (even alongside TBK_*), call commit:
$result = $gateway->commit($request->all());
#Reusable form schema
use JohnRivera7\FilamentTransbankWebpay\Forms\Components\TransbankCredentialsSchema;
$schema->components([
...TransbankCredentialsSchema::make('payments.transbank'),
]);
#Integration notes
- Webpay Plus requires a POST redirect with
token_ws(not a GET query string). - Integration sandbox: commerce
597055555532+ Transbank’s public integration API key. - Production: real commerce code + API Key Secret after Transbank validation.
- Abort/timeout returns send
TBK_*withouttoken_ws. If both arrive,token_wswins—runcommit.
#Testing
composer install
composer test
#Security
See SECURITY.md.
#Changelog
See CHANGELOG.md.
#License
MIT
The author
I am a full-stack developer focused on building reliable web platforms for education, enterprise, and business operations. I work mainly with Laravel and Filament, creating admin panels, reusable packages, and integrations that solve real production needs.
I also have a background in cybersecurity as an ethical hacker, which shapes how I design and review software: secure authentication flows, proper access control, hardening production environments, and thinking about real-world attack surfaces before they become problems.
I contribute to the Filament ecosystem by developing open-source panel plugins, with a strong focus on authentication, enterprise SSO, and tools that help teams manage complex workflows from a clean admin interface. I follow official Filament standards and aim to publish practical, well-documented packages that developers can adopt with confidence.
Beyond Filament, I develop Moodle plugins and customizations for e-learning platforms, including integrations, Microsoft Teams modules, learning activities, custom course formats, and automated cloud backup solutions. I also build Laravel applications for insurance, commercial, corporate, and agricultural management systems.
My infrastructure work includes high-availability setups with PostgreSQL clusters, GlusterFS, Nginx, and Consul, as well as Odoo ERP and POS implementations. I enjoy working across the full stack—from backend architecture and DevOps automation to polished admin interfaces and end-user workflows.
I publish open-source packages on Packagist and GitHub, and I plan to keep expanding my contributions to Filament with new panel plugins over time.
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
Blueprint
Filament Blueprint is a premium Laravel Boost extension that helps AI agents produce accurate, detailed implementation plans and security reports for Filament apps.
Filament
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament