Create and Send Signing Request (Atomic)
Create and immediately send a signing request in a single atomic operation. This endpoint combines the functionality of POST /signing-requests and POST /signing-requests//send.
Key Benefits:
- Single API call instead of two separate requests
- Validates all send requirements BEFORE creating the signing request
- Atomic credit deduction - only charges if everything succeeds
- Returns status: ‘sent’ immediately with first signer details
- More efficient (saves 1 API call + round-trip time)
Validation:
- All standard creation validations (document/template, recipients, fields)
- Additional send validations:
- All signers must have first_name and valid email
- Required read-only fields must have final_value populated
- Prefilled data fields (variable_name) must have corresponding user data
- Company must have sufficient credits (≥1)
Atomicity:
- If any validation fails, nothing is created
- Credit is only deducted after successful creation and before email send
- If email send fails after creation, signing request remains in ‘draft’ status and credit is NOT deducted
Temporary ID Pattern: For document-based creation, use temporary IDs (format: ‘temp_X’) to reference recipients before creation. The API validates all references and automatically maps temporary IDs to real UUIDs.
Rate Limit: 120 requests/minute (same as write operations)
Documentation Index
Fetch the complete documentation index at: https://docs.firma.dev/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
API key for authentication. Use your API key directly without any prefix (e.g., 'your-api-key'). Bearer prefix is optional but not required.
Body
- Option 1
- Option 2
Signing request name
255"Employment Contract - John Doe"
Base64-encoded PDF document (mutually exclusive with template_id). Maximum size: 20MB.
"JVBERi0xLjQKJeLjz9MKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291c..."
Signing request description
"Full-time employment contract for Software Engineer position"
Template ID to use (mutually exclusive with document)
"123e4567-e89b-12d3-a456-426614174000"
Hours until signing request expires (default: 168 = 7 days)
x >= 1168
Array of recipients. At least one must be a Signer. For document-based: required. For template-based: optional (uses template recipients if omitted). Use template_user_id (preferred) or order (fallback) to match template users.
1Array of fields to be filled (document-based only)
Array of reminder configurations
Signing request settings
Response
Signing request created and sent successfully
Signing request ID
Signing request name
Signing request description
Always 'sent' for this endpoint
sent Signed URL to access document
Number of pages in document
Hours until expiration
When request was sent
Details of the first signer who received the email
All recipients with real UUIDs
All fields with real recipient UUIDs
Company credits remaining after deduction