How to Sign PDFs with PHP
To sign a PDF with PHP: Install the TurboDocx SDK (composer require turbodocx/sdk), configure your API key, and call TurboSign::sendSignature() with your document and recipient details.
This guide shows you how to integrate e-signatures into your Laravel or Symfony application in under 5 minutes.
5 min
Setup time
PHP 8.1+
Modern enums
Type-Safe
Typed classes
Installation
Install the TurboDocx SDK via Composer. The package uses modern PHP 8.1+ features including enums and typed properties.
composer require turbodocx/sdkRequirements: PHP 8.1+, Composer, ext-json, ext-fileinfo. Compatible with Laravel, Symfony, and vanilla PHP.
Obtaining an API Key
Before you begin, you'll need your API credentials from the TurboDocx dashboard.
- Sign up for a free account at TurboDocx
- Navigate to Settings → API Keys
- Copy your API Key and Organization ID
TURBODOCX_API_KEY=your_api_key_here
TURBODOCX_ORG_ID=your_org_id_here
TURBODOCX_SENDER_EMAIL=you@company.com
TURBODOCX_SENDER_NAME=Your Company NameSending a Signing Request
Use the SDK to send a document for signature. The recipient will receive an email with a link to sign.
<?php
use TurboDocx\TurboSign;
use TurboDocx\Config\HttpClientConfig;
use TurboDocx\Types\Recipient;
use TurboDocx\Types\Field;
use TurboDocx\Types\SignatureFieldType;
use TurboDocx\Types\TemplateConfig;
use TurboDocx\Types\FieldPlacement;
use TurboDocx\Types\Requests\SendSignatureRequest;
// Configure with your API credentials
TurboSign::configure(new HttpClientConfig(
apiKey: $_ENV['TURBODOCX_API_KEY'],
orgId: $_ENV['TURBODOCX_ORG_ID'],
senderEmail: $_ENV['TURBODOCX_SENDER_EMAIL'], // REQUIRED
senderName: $_ENV['TURBODOCX_SENDER_NAME'] // Recommended
));
// Send document for signature
$result = TurboSign::sendSignature(
new SendSignatureRequest(
recipients: [
new Recipient('John Doe', 'john@example.com', 1)
],
fields: [
new Field(
type: SignatureFieldType::SIGNATURE,
recipientEmail: 'john@example.com',
template: new TemplateConfig(
anchor: '{signature1}',
placement: FieldPlacement::REPLACE,
size: ['width' => 100, 'height' => 30]
)
)
],
file: file_get_contents('contract.pdf'),
documentName: 'Partnership Agreement'
)
);
echo "Document ID: {$result->documentId}\n";Modern PHP: Uses PHP 8.1+ features like enums (SignatureFieldType::SIGNATURE) and named parameters for type safety.
Processing Results with Webhooks
Configure webhooks to receive real-time notifications when documents are signed.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use TurboDocx\TurboSign;
class WebhookController extends Controller
{
public function handle(Request $request)
{
$eventType = $request->input('event_type');
$data = $request->input('data');
if ($eventType === 'document.completed') {
$documentId = $data['documentId'];
// Download the signed PDF
$signedPdf = TurboSign::download($documentId);
// Save to storage
Storage::put("signed/{$documentId}.pdf", $signedPdf);
}
return response()->json(['received' => true]);
}
}Conclusion
You now have everything you need to integrate document signing into your PHP application. The TurboDocx SDK handles authentication, document delivery, signature collection, and provides legally-binding audit trails.
What you can do next:
- Add multiple recipients with sequential signing order
- Use different field types: initials, dates, text, checkboxes
- Integrate with Laravel Queues for async processing
- Get audit trails and compliance certificates
Related Guides
Sign Documents with TypeScript
Fully typed e-signature integration with imported SDK types and tsconfig setup.
Sign Documents with JavaScript
Integrate document signing into Node.js or TypeScript applications.
Sign Documents with Java
Add document signing to Spring Boot or Maven projects.
Resources
Frequently Asked Questions
How do I sign a PDF with PHP?
Install the TurboDocx SDK (composer require turbodocx/sdk), configure it with your API key, then use TurboSign::sendSignature() to send the document for e-signature.
Does the PHP SDK work with Laravel?
Yes, the TurboDocx PHP SDK works with Laravel, Symfony, and any PHP 8.1+ application. It uses typed classes and enums for full IDE support.
What PHP version is required?
The TurboDocx PHP SDK requires PHP 8.1 or higher.
Ready to Get Started?
Create a free account and get your API key. Start sending documents for signature in minutes.