PHP · Integration
Add E-Signatures to Laravel
Send documents for legally binding e-signature from your Laravel application. One endpoint, no SDK required.
Quick start
- Get an API key from signb.ee (free, no credit card)
- Set
SIGNBEE_API_KEYin your environment - Add the code below to your app
Laravel example
// app/Http/Controllers/ContractController.php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class ContractController extends Controller
{
public function send(Request $request)
{
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . env('SIGNBEE_API_KEY'),
])->post('https://signb.ee/api/send', [
'content' => $request->content,
'senderName' => $request->sender_name,
'senderEmail' => $request->sender_email,
'recipientName' => $request->recipient_name,
'recipientEmail' => $request->recipient_email,
]);
return $response->json();
}
}What happens
- Your app sends markdown or a PDF URL to Signbee
- Signbee generates a PDF (if markdown) and emails the recipient a signing link
- Recipient signs — both parties receive the signed PDF with SHA-256 certificate
Also works with AI agents
Install the MCP server to let Claude, Cursor, or Windsurf send documents directly:
npx -y signbee-mcp
Integration details
Laravel is PHP's most popular web framework with elegant syntax and a rich ecosystem. Adding e-signatures to Laravel uses the built-in HTTP client (based on Guzzle) for clean, fluent API calls.
Laravel HTTP Client: The Http facade shown in the example is Laravel's built-in HTTP client. It provides a clean, fluent API for making HTTP requests with automatic JSON encoding, header management, and error handling. No additional packages needed.
Queue integration: For background contract sending, dispatch a SendContractJob to Laravel's queue system. This works with any queue driver (Redis, SQS, database) and provides automatic retries with exponential backoff.
Form requests: Use Laravel's Form Request classes for validation. Create a SendContractRequest with validation rules for each field. Laravel automatically returns 422 errors with detailed validation messages if the request is invalid.
Config management: Store SIGNBEE_API_KEY in your .env file and access it via env('SIGNBEE_API_KEY') or create a config file (config/signbee.php) for structured configuration. Laravel's config caching (php artisan config:cache) optimises production performance.
Notification channel: For advanced integrations, create a custom Signbee notification channel. This lets you send contracts using Laravel's notification system — User::notify(new ContractReady($contract)) — and integrates with Laravel's notification logging and queueing.
FAQs
How do I add e-signatures to Laravel?
Get an API key from signb.ee (free, no credit card), set SIGNBEE_API_KEY in your environment, and add a single POST request to your Laravel application. The recipient receives a signing link by email, signs on any device, and both parties get a SHA-256 certified PDF.
Does Signbee work with Laravel?
Yes. Signbee is a REST API that works with any language or framework including Laravel. Send a POST request with your document content, sender and recipient details, and Signbee handles the entire signing ceremony. No SDK required.
Do I need Guzzle for Laravel integration?
No additional installation needed. Laravel's Http facade is built on Guzzle, which is included in Laravel by default. The example above uses the fluent Http client for clean, readable API calls.
How do I send contracts in the background in Laravel?
Create a SendContractJob and dispatch it to Laravel's queue system. Use any queue driver (Redis, SQS, database). Laravel provides automatic retries, exponential backoff, and failed job handling.
Can I validate contract requests in Laravel?
Yes. Create a Form Request class with validation rules for content, senderName, senderEmail, recipientName, and recipientEmail. Laravel automatically validates requests and returns detailed 422 errors for invalid submissions.
Related resources
Try Signbee — free, no credit card.