jeffersongoncalves / filament-zapsign
Filament plugin for ZapSign e-signatures: send documents to sign, track signers and status, cancel documents, download signed PDFs and inspect webhooks, on top of laravel-zapsign.
Package info
github.com/jeffersongoncalves/filament-zapsign
pkg:composer/jeffersongoncalves/filament-zapsign
Requires
- php: ^8.2
- filament/filament: ^5.3
- jeffersongoncalves/laravel-zapsign: ^1.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- jeffersongoncalves/pest-plugin-database-migrations: ^1.0
- larastan/larastan: ^3.0
- laravel/pint: ^1.0
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Filament ZapSign
Send documents for e-signature with ZapSign from your Filament panel and follow every signer until the document is done.
Built on jeffersongoncalves/laravel-zapsign, which holds the API client (rate limited to ZapSign's 500 requests/minute), the database tables, the queued jobs and the webhook route.
Features
- Send document — upload a PDF or DOCX, pick the language, add signers (name, email, phone, authentication mode, email delivery), a deadline and the signing order. The upload runs on the queue (
CreateDocument), so the rate limit never blocks the panel. - Documents — status (pending, signed, refused), signed/total counter, external ID, sandbox flag, linked model, refusal reason, filters by status and sandbox.
- Signers — status, copyable signature links, views, signed time; add and remove signers while the document is pending.
- Signed PDF download (the stored copy, or a fresh link — ZapSign links expire after 60 minutes), sync from the API, cancel with a reason, and delete (at ZapSign first, then locally).
- Webhook calls — every webhook received, its payload, errors and a reprocess action.
- 19 languages, Filament 3, 4 and 5.
Compatibility
| Branch | Filament | Package version |
|---|---|---|
| 1.x | 3.x | ^1.0 |
| 2.x | 4.x | ^2.0 |
| 3.x | 5.x | ^3.0 |
Installation
composer require jeffersongoncalves/filament-zapsign:"^3.0" php artisan vendor:publish --tag="zapsign-config" php artisan vendor:publish --tag="zapsign-migrations" php artisan migrate
Configure the API token (and the webhook secret to receive status updates) — see laravel-zapsign:
ZAPSIGN_TOKEN=your-token ZAPSIGN_WEBHOOK_SECRET=a-long-random-string # Keep a copy of every signed PDF: ZAPSIGN_FILES_DISK=s3
Run a queue worker: sending, syncing and webhook processing are queued jobs.
Register the plugin in your panel provider:
use JeffersonGoncalves\Filament\ZapSign\ZapSignPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ ZapSignPlugin::make() // ->navigationGroup('Contracts') // ->disk('s3') // where uploads are stored (default: the panel's default disk) // ->directory('zapsign') // directory on that disk // ->webhookCalls(false) // hide the "Webhook calls" resource , ]); }
Usage
- Documents → Send document queues the upload. The document shows up in the list once ZapSign has received it, and its status follows the webhooks (
doc_signed,doc_refused,doc_deleted, ...). - Without webhooks, use Sync on a document (or dispatch
SyncDocumenton a schedule) to refresh it from the API. - To link documents to your own models, dispatch
CreateDocumentwithdocumentable:from your code (see laravel-zapsign); the document page shows the linked record.
Access follows your policies for JeffersonGoncalves\ZapSign\Models\Document and WebhookCall, like any Filament resource.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
License
The MIT License (MIT). Please see License File for more information.
