Skip to content

Commit 09bddf7

Browse files
committed
Update to version 4.4.0 on 2026-11-01
- New: list_email_actions, create_email_action, get_email_action, update_email_action and delete_email_action manage a template's email actions (`EmailAction`), which email each processed submission's files as attachments or a download link. `to`, `cc` and `bcc` take addresses, and tags for an address in the submission's fields (`{{ data.client_email }}`) or metadata (`{{ metadata.agent_email }}`). `send_when` sends only for the submissions that meet its conditions. `file_name` names the attached files, and `file_formats` chooses them: a Word template's Word document (`docx`), OpenDocument file (`odt`) or PDF (`pdf`), or every file the submission made (`all`). Attached files over `max_attachment_mb` together (7 MB unless you raise it, up to 25) go as a link instead. send_email_action_test_email sends one to you to check how it looks (`EmailActionTestEmail`). Without a paid plan (Starter or higher), email actions only email your team: test emails, and test submissions' emails. - New: list_account_email_actions, create_account_email_action, get_account_email_action, update_account_email_action and delete_account_email_action manage your account's email actions, which send for every template, or for the templates and folders they list (`template_ids`, `folder_ids`). send_account_email_action_test_email sends one to you for one of its templates. - New: list_email_actions also lists your account's email actions that send for the template, with the template's changes in `customization` (`EmailActionCustomization`). update_email_action_customization changes one for that template only, or turns it off there (`enabled`), and delete_email_action_customization removes the template's changes. - New: list_email_domains, create_email_domain, get_email_domain, verify_email_domain and delete_email_domain manage the domains your email actions send from (`EmailDomain`), with the DNS records to add to each one (`EmailDomainDnsRecord`). - A submission's `actions` include the emails its email actions sent (its template's and your account's), with each recipient and what happened to their email, and a new `email_action_id`. - New: a field's `string_condition_type` can be `not_equals`, `not_contains`, `not_starts_with`, `not_ends_with`, `not_regex`, `blank` or `not_blank`, and a `regex` condition uses RE2 syntax (no lookarounds or backreferences). - create_submission: DocSpring now emails the signers of a submission's `signature_requests` a link to sign, any reminders, and the signed PDF once everyone has signed. Set `send_email` to false, for the submission or for one signature request, when you send the links yourself or show the signing form in your app. A signature request that DocSpring emails needs an `email`, and its `auth_type` is optional (`email_link`). Before anyone is emailed, the request can be refused with a 402 (`insufficient_credits_to_send`), a 403 or a 429 (`daily_email_limit_reached`), and nothing is saved. - New create_submission properties for these emails: `signing_order` (`SigningOrder`) with each signature request's `signing_step`, `email_subject`, `email_message`, `cc`, `reply_to`, `notification_emails`, `notify_when_signed` and `reminders` (`SignatureRequestReminders`). - A signature request has `send_email`, `signing_step`, `sent_at` and `email_status` (`SignatureRequestEmailStatus`), and a submission has `signing_order`. - Templates have new settings for these emails: `signature_request_from_name`, `signature_request_from_address`, `signature_request_signing_url`, `signature_request_include_signing_token`, `signature_request_reply_to`, `signature_request_notification_emails` and `signature_request_email_attachments` (`SignatureRequestEmailAttachments`). - New webhook event types: `signature_request.sent` and `signature_request.email_bounced`. - New: page designs (`template_type` `page_designer`), PDFs designed in the Page Designer from a JSON layout, with no document to start from. create_template makes one from its `layout`, or with an empty page when `layout` is left out, and update_template replaces its layout. DocSpring adds a field for each value the layout reads. A template's `layout` is in the [Page Designer layout format](https://docspring.com/docs/page-designer/layout-format/) (its [JSON Schema](https://docspring.com/schemas/page-designer/layout.v1.json)), and is null for other templates. - New: every method that creates, changes or deletes something takes an `Idempotency-Key` header, as its last argument before `cancellationToken`, `idempotencyKey`. Send the same key when you send a request again after a timeout or a network error: within 24 hours, DocSpring returns the first response instead of running the request twice. Arguments you already pass keep their places. - Changed: the request validator checks what API v2 now refuses: an ID, a query value or a template name that's blank or only whitespace, an update with nothing to change, a version with a leading zero (`01`), a `filename` with a slash, a signer `email` that isn't an email address, and an HTML template's `scale` outside 0.1 to 2. - New: get_template_model_code takes `rust` as its `lang`, for Rust structs that serde reads and writes.
1 parent edc72f0 commit 09bddf7

163 files changed

Lines changed: 43499 additions & 8615 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/release.yml‎

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Written by DocSpring/docspring's api_clients/scripts/generate from api_clients/github_workflows/csharp/release.yml:
2+
# change it there.
3+
#
4+
# Packs the package on every push and pull request. A v* tag (pushed by the monorepo's api_clients/scripts/release)
5+
# also pushes it to NuGet with trusted publishing, in the release environment, and waits until NuGet serves it.
6+
name: Release
7+
8+
on:
9+
push:
10+
branches: ['**']
11+
tags: ['v*']
12+
pull_request:
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22+
with:
23+
persist-credentials: false
24+
- uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
25+
with:
26+
dotnet-version: 9.0.x
27+
- name: Check the tag matches the package version
28+
if: github.ref_type == 'tag'
29+
run: |
30+
VERSION="$(sed -n 's:.*<Version>\(.*\)</Version>.*:\1:p' src/DocSpring.Client/DocSpring.Client.csproj)"
31+
if [ "v$VERSION" != "$GITHUB_REF_NAME" ]; then
32+
echo "::error::The tag is $GITHUB_REF_NAME, but the package version is $VERSION"
33+
exit 1
34+
fi
35+
- run: dotnet pack src/DocSpring.Client/DocSpring.Client.csproj --configuration Release --output out
36+
- if: github.ref_type == 'tag'
37+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
38+
with:
39+
name: package
40+
path: out/
41+
if-no-files-found: error
42+
43+
publish:
44+
needs: build
45+
if: github.ref_type == 'tag'
46+
runs-on: ubuntu-latest
47+
environment: release
48+
permissions:
49+
contents: read
50+
id-token: write
51+
steps:
52+
- uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
53+
with:
54+
dotnet-version: 9.0.x
55+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
56+
with:
57+
name: package
58+
path: out/
59+
# The nuget.org account that owns DocSpring.Client and its trusted publishing policy
60+
- uses: NuGet/login@8d196754b4036150537f80ac539e15c2f1028841 # v1.2.0
61+
id: login
62+
with:
63+
user: nathan-formapi
64+
- name: Push to NuGet
65+
env:
66+
NUGET_API_KEY: ${{ steps.login.outputs.NUGET_API_KEY }}
67+
run: |
68+
dotnet nuget push "out/DocSpring.Client.${GITHUB_REF_NAME#v}.nupkg" \
69+
--api-key "$NUGET_API_KEY" --source https://api.nuget.org/v3/index.json
70+
71+
verify:
72+
needs: publish
73+
runs-on: ubuntu-latest
74+
timeout-minutes: 30
75+
steps:
76+
# NuGet validates and indexes a package before it serves it, which can take a while
77+
- name: Wait until NuGet serves the version
78+
run: |
79+
VERSION="${GITHUB_REF_NAME#v}"
80+
for _ in $(seq 150); do
81+
if curl -fsS -o /dev/null "https://api.nuget.org/v3-flatcontainer/docspring.client/$VERSION/docspring.client.nuspec"; then
82+
echo "NuGet serves DocSpring.Client $VERSION"
83+
exit 0
84+
fi
85+
sleep 10
86+
done
87+
echo "::error::NuGet doesn't serve DocSpring.Client $VERSION after 25 minutes"
88+
exit 1

‎.openapi-generator/FILES‎

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ docs/models/CombinedPdfSourcePdf.md
1919
docs/models/CombinedPdfSourceType.md
2020
docs/models/CombinedPdfState.md
2121
docs/models/CopyTemplateRequest.md
22+
docs/models/CreateAccountEmailActionRequest.md
2223
docs/models/CreateCombinedPdfRequest.md
2324
docs/models/CreateCustomFileFromUploadRequest.md
25+
docs/models/CreateEmailActionRequest.md
26+
docs/models/CreateEmailDomainRequest.md
2427
docs/models/CreateFolderRequest.md
2528
docs/models/CreateSignatureRequestEventRequest.md
2629
docs/models/CreateSignatureRequestTokenRequest.md
@@ -32,6 +35,23 @@ docs/models/CreateWebhookRequest.md
3235
docs/models/CustomFile.md
3336
docs/models/CustomFileList.md
3437
docs/models/CustomFileSourcePdf.md
38+
docs/models/DnsRecordType.md
39+
docs/models/EmailAction.md
40+
docs/models/EmailActionConditions.md
41+
docs/models/EmailActionConditionsInput.md
42+
docs/models/EmailActionCustomization.md
43+
docs/models/EmailActionDelivery.md
44+
docs/models/EmailActionFileFormats.md
45+
docs/models/EmailActionList.md
46+
docs/models/EmailActionSetting.md
47+
docs/models/EmailActionSubmissionType.md
48+
docs/models/EmailActionTestEmail.md
49+
docs/models/EmailDomain.md
50+
docs/models/EmailDomainDnsRecord.md
51+
docs/models/EmailDomainDnsRecordPurpose.md
52+
docs/models/EmailDomainList.md
53+
docs/models/EmailDomainRecordState.md
54+
docs/models/EmailDomainState.md
3555
docs/models/ErrorCode.md
3656
docs/models/ErrorDetail.md
3757
docs/models/ErrorInfo.md
@@ -84,17 +104,22 @@ docs/models/RemoveTemplateFieldsRequest.md
84104
docs/models/RenameFolderRequest.md
85105
docs/models/ReorderTemplateFieldsRequest.md
86106
docs/models/RestoreTemplateVersionRequest.md
107+
docs/models/SendAccountEmailActionTestEmailRequest.md
87108
docs/models/ShapeType.md
88109
docs/models/SignatureRequest.md
89110
docs/models/SignatureRequestAuthSecondFactorType.md
90111
docs/models/SignatureRequestAuthType.md
112+
docs/models/SignatureRequestEmailAttachments.md
113+
docs/models/SignatureRequestEmailStatus.md
91114
docs/models/SignatureRequestEvent.md
92115
docs/models/SignatureRequestEventType.md
93116
docs/models/SignatureRequestInput.md
94117
docs/models/SignatureRequestMessageType.md
118+
docs/models/SignatureRequestReminders.md
95119
docs/models/SignatureRequestState.md
96120
docs/models/SignatureRequestToken.md
97121
docs/models/SignatureRequestTokenType.md
122+
docs/models/SigningOrder.md
98123
docs/models/StringConditionType.md
99124
docs/models/Submission.md
100125
docs/models/SubmissionAction.md
@@ -152,6 +177,9 @@ docs/models/TextAlignment.md
152177
docs/models/TextOverflow.md
153178
docs/models/TextVerticalAlignment.md
154179
docs/models/Typeface.md
180+
docs/models/UpdateAccountEmailActionRequest.md
181+
docs/models/UpdateEmailActionCustomizationRequest.md
182+
docs/models/UpdateEmailActionRequest.md
155183
docs/models/UpdateSignatureRequestRequest.md
156184
docs/models/UpdateTemplateDocumentRequest.md
157185
docs/models/UpdateTemplateFieldsRequest.md
@@ -186,8 +214,11 @@ src/DocSpring.Client.Test/Model/CombinedPdfSourceTypeTests.cs
186214
src/DocSpring.Client.Test/Model/CombinedPdfStateTests.cs
187215
src/DocSpring.Client.Test/Model/CombinedPdfTests.cs
188216
src/DocSpring.Client.Test/Model/CopyTemplateRequestTests.cs
217+
src/DocSpring.Client.Test/Model/CreateAccountEmailActionRequestTests.cs
189218
src/DocSpring.Client.Test/Model/CreateCombinedPdfRequestTests.cs
190219
src/DocSpring.Client.Test/Model/CreateCustomFileFromUploadRequestTests.cs
220+
src/DocSpring.Client.Test/Model/CreateEmailActionRequestTests.cs
221+
src/DocSpring.Client.Test/Model/CreateEmailDomainRequestTests.cs
191222
src/DocSpring.Client.Test/Model/CreateFolderRequestTests.cs
192223
src/DocSpring.Client.Test/Model/CreateSignatureRequestEventRequestTests.cs
193224
src/DocSpring.Client.Test/Model/CreateSignatureRequestTokenRequestTests.cs
@@ -199,6 +230,23 @@ src/DocSpring.Client.Test/Model/CreateWebhookRequestTests.cs
199230
src/DocSpring.Client.Test/Model/CustomFileListTests.cs
200231
src/DocSpring.Client.Test/Model/CustomFileSourcePdfTests.cs
201232
src/DocSpring.Client.Test/Model/CustomFileTests.cs
233+
src/DocSpring.Client.Test/Model/DnsRecordTypeTests.cs
234+
src/DocSpring.Client.Test/Model/EmailActionConditionsInputTests.cs
235+
src/DocSpring.Client.Test/Model/EmailActionConditionsTests.cs
236+
src/DocSpring.Client.Test/Model/EmailActionCustomizationTests.cs
237+
src/DocSpring.Client.Test/Model/EmailActionDeliveryTests.cs
238+
src/DocSpring.Client.Test/Model/EmailActionFileFormatsTests.cs
239+
src/DocSpring.Client.Test/Model/EmailActionListTests.cs
240+
src/DocSpring.Client.Test/Model/EmailActionSettingTests.cs
241+
src/DocSpring.Client.Test/Model/EmailActionSubmissionTypeTests.cs
242+
src/DocSpring.Client.Test/Model/EmailActionTestEmailTests.cs
243+
src/DocSpring.Client.Test/Model/EmailActionTests.cs
244+
src/DocSpring.Client.Test/Model/EmailDomainDnsRecordPurposeTests.cs
245+
src/DocSpring.Client.Test/Model/EmailDomainDnsRecordTests.cs
246+
src/DocSpring.Client.Test/Model/EmailDomainListTests.cs
247+
src/DocSpring.Client.Test/Model/EmailDomainRecordStateTests.cs
248+
src/DocSpring.Client.Test/Model/EmailDomainStateTests.cs
249+
src/DocSpring.Client.Test/Model/EmailDomainTests.cs
202250
src/DocSpring.Client.Test/Model/ErrorCodeTests.cs
203251
src/DocSpring.Client.Test/Model/ErrorDetailTests.cs
204252
src/DocSpring.Client.Test/Model/ErrorInfoTests.cs
@@ -251,17 +299,22 @@ src/DocSpring.Client.Test/Model/RemoveTemplateFieldsRequestTests.cs
251299
src/DocSpring.Client.Test/Model/RenameFolderRequestTests.cs
252300
src/DocSpring.Client.Test/Model/ReorderTemplateFieldsRequestTests.cs
253301
src/DocSpring.Client.Test/Model/RestoreTemplateVersionRequestTests.cs
302+
src/DocSpring.Client.Test/Model/SendAccountEmailActionTestEmailRequestTests.cs
254303
src/DocSpring.Client.Test/Model/ShapeTypeTests.cs
255304
src/DocSpring.Client.Test/Model/SignatureRequestAuthSecondFactorTypeTests.cs
256305
src/DocSpring.Client.Test/Model/SignatureRequestAuthTypeTests.cs
306+
src/DocSpring.Client.Test/Model/SignatureRequestEmailAttachmentsTests.cs
307+
src/DocSpring.Client.Test/Model/SignatureRequestEmailStatusTests.cs
257308
src/DocSpring.Client.Test/Model/SignatureRequestEventTests.cs
258309
src/DocSpring.Client.Test/Model/SignatureRequestEventTypeTests.cs
259310
src/DocSpring.Client.Test/Model/SignatureRequestInputTests.cs
260311
src/DocSpring.Client.Test/Model/SignatureRequestMessageTypeTests.cs
312+
src/DocSpring.Client.Test/Model/SignatureRequestRemindersTests.cs
261313
src/DocSpring.Client.Test/Model/SignatureRequestStateTests.cs
262314
src/DocSpring.Client.Test/Model/SignatureRequestTests.cs
263315
src/DocSpring.Client.Test/Model/SignatureRequestTokenTests.cs
264316
src/DocSpring.Client.Test/Model/SignatureRequestTokenTypeTests.cs
317+
src/DocSpring.Client.Test/Model/SigningOrderTests.cs
265318
src/DocSpring.Client.Test/Model/StringConditionTypeTests.cs
266319
src/DocSpring.Client.Test/Model/SubmissionActionStateTests.cs
267320
src/DocSpring.Client.Test/Model/SubmissionActionTests.cs
@@ -319,6 +372,9 @@ src/DocSpring.Client.Test/Model/TextAlignmentTests.cs
319372
src/DocSpring.Client.Test/Model/TextOverflowTests.cs
320373
src/DocSpring.Client.Test/Model/TextVerticalAlignmentTests.cs
321374
src/DocSpring.Client.Test/Model/TypefaceTests.cs
375+
src/DocSpring.Client.Test/Model/UpdateAccountEmailActionRequestTests.cs
376+
src/DocSpring.Client.Test/Model/UpdateEmailActionCustomizationRequestTests.cs
377+
src/DocSpring.Client.Test/Model/UpdateEmailActionRequestTests.cs
322378
src/DocSpring.Client.Test/Model/UpdateSignatureRequestRequestTests.cs
323379
src/DocSpring.Client.Test/Model/UpdateTemplateDocumentRequestTests.cs
324380
src/DocSpring.Client.Test/Model/UpdateTemplateFieldsRequestTests.cs
@@ -373,8 +429,11 @@ src/DocSpring.Client/Model/CombinedPdfSourcePdf.cs
373429
src/DocSpring.Client/Model/CombinedPdfSourceType.cs
374430
src/DocSpring.Client/Model/CombinedPdfState.cs
375431
src/DocSpring.Client/Model/CopyTemplateRequest.cs
432+
src/DocSpring.Client/Model/CreateAccountEmailActionRequest.cs
376433
src/DocSpring.Client/Model/CreateCombinedPdfRequest.cs
377434
src/DocSpring.Client/Model/CreateCustomFileFromUploadRequest.cs
435+
src/DocSpring.Client/Model/CreateEmailActionRequest.cs
436+
src/DocSpring.Client/Model/CreateEmailDomainRequest.cs
378437
src/DocSpring.Client/Model/CreateFolderRequest.cs
379438
src/DocSpring.Client/Model/CreateSignatureRequestEventRequest.cs
380439
src/DocSpring.Client/Model/CreateSignatureRequestTokenRequest.cs
@@ -386,6 +445,23 @@ src/DocSpring.Client/Model/CreateWebhookRequest.cs
386445
src/DocSpring.Client/Model/CustomFile.cs
387446
src/DocSpring.Client/Model/CustomFileList.cs
388447
src/DocSpring.Client/Model/CustomFileSourcePdf.cs
448+
src/DocSpring.Client/Model/DnsRecordType.cs
449+
src/DocSpring.Client/Model/EmailAction.cs
450+
src/DocSpring.Client/Model/EmailActionConditions.cs
451+
src/DocSpring.Client/Model/EmailActionConditionsInput.cs
452+
src/DocSpring.Client/Model/EmailActionCustomization.cs
453+
src/DocSpring.Client/Model/EmailActionDelivery.cs
454+
src/DocSpring.Client/Model/EmailActionFileFormats.cs
455+
src/DocSpring.Client/Model/EmailActionList.cs
456+
src/DocSpring.Client/Model/EmailActionSetting.cs
457+
src/DocSpring.Client/Model/EmailActionSubmissionType.cs
458+
src/DocSpring.Client/Model/EmailActionTestEmail.cs
459+
src/DocSpring.Client/Model/EmailDomain.cs
460+
src/DocSpring.Client/Model/EmailDomainDnsRecord.cs
461+
src/DocSpring.Client/Model/EmailDomainDnsRecordPurpose.cs
462+
src/DocSpring.Client/Model/EmailDomainList.cs
463+
src/DocSpring.Client/Model/EmailDomainRecordState.cs
464+
src/DocSpring.Client/Model/EmailDomainState.cs
389465
src/DocSpring.Client/Model/ErrorCode.cs
390466
src/DocSpring.Client/Model/ErrorDetail.cs
391467
src/DocSpring.Client/Model/ErrorInfo.cs
@@ -438,17 +514,22 @@ src/DocSpring.Client/Model/RemoveTemplateFieldsRequest.cs
438514
src/DocSpring.Client/Model/RenameFolderRequest.cs
439515
src/DocSpring.Client/Model/ReorderTemplateFieldsRequest.cs
440516
src/DocSpring.Client/Model/RestoreTemplateVersionRequest.cs
517+
src/DocSpring.Client/Model/SendAccountEmailActionTestEmailRequest.cs
441518
src/DocSpring.Client/Model/ShapeType.cs
442519
src/DocSpring.Client/Model/SignatureRequest.cs
443520
src/DocSpring.Client/Model/SignatureRequestAuthSecondFactorType.cs
444521
src/DocSpring.Client/Model/SignatureRequestAuthType.cs
522+
src/DocSpring.Client/Model/SignatureRequestEmailAttachments.cs
523+
src/DocSpring.Client/Model/SignatureRequestEmailStatus.cs
445524
src/DocSpring.Client/Model/SignatureRequestEvent.cs
446525
src/DocSpring.Client/Model/SignatureRequestEventType.cs
447526
src/DocSpring.Client/Model/SignatureRequestInput.cs
448527
src/DocSpring.Client/Model/SignatureRequestMessageType.cs
528+
src/DocSpring.Client/Model/SignatureRequestReminders.cs
449529
src/DocSpring.Client/Model/SignatureRequestState.cs
450530
src/DocSpring.Client/Model/SignatureRequestToken.cs
451531
src/DocSpring.Client/Model/SignatureRequestTokenType.cs
532+
src/DocSpring.Client/Model/SigningOrder.cs
452533
src/DocSpring.Client/Model/StringConditionType.cs
453534
src/DocSpring.Client/Model/Submission.cs
454535
src/DocSpring.Client/Model/SubmissionAction.cs
@@ -506,6 +587,9 @@ src/DocSpring.Client/Model/TextAlignment.cs
506587
src/DocSpring.Client/Model/TextOverflow.cs
507588
src/DocSpring.Client/Model/TextVerticalAlignment.cs
508589
src/DocSpring.Client/Model/Typeface.cs
590+
src/DocSpring.Client/Model/UpdateAccountEmailActionRequest.cs
591+
src/DocSpring.Client/Model/UpdateEmailActionCustomizationRequest.cs
592+
src/DocSpring.Client/Model/UpdateEmailActionRequest.cs
509593
src/DocSpring.Client/Model/UpdateSignatureRequestRequest.cs
510594
src/DocSpring.Client/Model/UpdateTemplateDocumentRequest.cs
511595
src/DocSpring.Client/Model/UpdateTemplateFieldsRequest.cs

‎.travis.yml‎

Lines changed: 0 additions & 9 deletions
This file was deleted.

‎CHANGELOG.md‎

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,58 @@
1+
### 4.4.0 [November 1, 2026]
2+
3+
- New: list_email_actions, create_email_action, get_email_action, update_email_action and delete_email_action manage a
4+
template's email actions (`EmailAction`), which email each processed submission's files as attachments or a download
5+
link. `to`, `cc` and `bcc` take addresses, and tags for an address in the submission's fields
6+
(`{{ data.client_email }}`) or metadata (`{{ metadata.agent_email }}`). `send_when` sends only for the submissions
7+
that meet its conditions. `file_name` names the attached files, and `file_formats` chooses them: a Word template's
8+
Word document (`docx`), OpenDocument file (`odt`) or PDF (`pdf`), or every file the submission made (`all`). Attached
9+
files over `max_attachment_mb` together (7 MB unless you raise it, up to 25) go as a link instead.
10+
send_email_action_test_email sends one to you to check how it looks (`EmailActionTestEmail`). Without a paid plan
11+
(Starter or higher), email actions only email your team: test emails, and test submissions' emails.
12+
- New: list_account_email_actions, create_account_email_action, get_account_email_action, update_account_email_action
13+
and delete_account_email_action manage your account's email actions, which send for every template, or for the
14+
templates and folders they list (`template_ids`, `folder_ids`). send_account_email_action_test_email sends one to you
15+
for one of its templates.
16+
- New: list_email_actions also lists your account's email actions that send for the template, with the template's
17+
changes in `customization` (`EmailActionCustomization`). update_email_action_customization changes one for that
18+
template only, or turns it off there (`enabled`), and delete_email_action_customization removes the template's
19+
changes.
20+
- New: list_email_domains, create_email_domain, get_email_domain, verify_email_domain and delete_email_domain manage the
21+
domains your email actions send from (`EmailDomain`), with the DNS records to add to each one (`EmailDomainDnsRecord`).
22+
- A submission's `actions` include the emails its email actions sent (its template's and your account's), with each
23+
recipient and what happened to their email, and a new `email_action_id`.
24+
- New: a field's `string_condition_type` can be `not_equals`, `not_contains`, `not_starts_with`, `not_ends_with`,
25+
`not_regex`, `blank` or `not_blank`, and a `regex` condition uses RE2 syntax (no lookarounds or backreferences).
26+
- create_submission: DocSpring now emails the signers of a submission's `signature_requests` a link to sign, any
27+
reminders, and the signed PDF once everyone has signed. Set `send_email` to false, for the submission or for one
28+
signature request, when you send the links yourself or show the signing form in your app. A signature request that
29+
DocSpring emails needs an `email`, and its `auth_type` is optional (`email_link`). Before anyone is emailed, the
30+
request can be refused with a 402 (`insufficient_credits_to_send`), a 403 or a 429 (`daily_email_limit_reached`), and
31+
nothing is saved.
32+
- New create_submission properties for these emails: `signing_order` (`SigningOrder`) with each signature request's
33+
`signing_step`, `email_subject`, `email_message`, `cc`, `reply_to`, `notification_emails`, `notify_when_signed` and
34+
`reminders` (`SignatureRequestReminders`).
35+
- A signature request has `send_email`, `signing_step`, `sent_at` and `email_status` (`SignatureRequestEmailStatus`),
36+
and a submission has `signing_order`.
37+
- Templates have new settings for these emails: `signature_request_from_name`, `signature_request_from_address`,
38+
`signature_request_signing_url`, `signature_request_include_signing_token`, `signature_request_reply_to`,
39+
`signature_request_notification_emails` and `signature_request_email_attachments`
40+
(`SignatureRequestEmailAttachments`).
41+
- New webhook event types: `signature_request.sent` and `signature_request.email_bounced`.
42+
- New: page designs (`template_type` `page_designer`), PDFs designed in the Page Designer from a JSON layout, with no
43+
document to start from. create_template makes one from its `layout`, or with an empty page when `layout` is left
44+
out, and update_template replaces its layout. DocSpring adds a field for each value the layout reads. A template's
45+
`layout` is in the [Page Designer layout format](https://docspring.com/docs/page-designer/layout-format/) (its
46+
[JSON Schema](https://docspring.com/schemas/page-designer/layout.v1.json)), and is null for other templates.
47+
- New: every method that creates, changes or deletes something takes an `Idempotency-Key` header, as its last argument
48+
before `cancellationToken`, `idempotencyKey`. Send the same key when you send a request again after a timeout or a
49+
network error: within 24 hours, DocSpring returns the first response instead of running the request twice. Arguments
50+
you already pass keep their places.
51+
- Changed: the request validator checks what API v2 now refuses: an ID, a query value or a template name that's blank or
52+
only whitespace, an update with nothing to change, a version with a leading zero (`01`), a `filename` with a slash, a
53+
signer `email` that isn't an email address, and an HTML template's `scale` outside 0.1 to 2.
54+
- New: get_template_model_code takes `rust` as its `lang`, for Rust structs that serde reads and writes.
55+
156
### 4.3.0 [October 31, 2026]
257

358
- New: get_template_model_code takes `rust` as its `lang`, for Rust structs that serde reads and writes.

0 commit comments

Comments
 (0)