blueink-client-python 1.2.0__tar.gz → 1.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/PKG-INFO +84 -7
- blueink_client_python-1.2.0/src/blueink_client_python.egg-info/PKG-INFO → blueink_client_python-1.3.0/README.md +79 -30
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/setup.cfg +5 -5
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/bundle_helper.py +6 -4
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/client.py +2 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/constants.py +2 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/endpoints.py +7 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/model/bundles.py +121 -123
- blueink_client_python-1.3.0/src/blueink/model/persons.py +18 -0
- blueink_client_python-1.3.0/src/blueink/model/webhook.py +36 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/person_helper.py +1 -1
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/bundle.py +44 -1
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/packet.py +1 -1
- blueink_client_python-1.3.0/src/blueink/subclients/verify.py +20 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/webhook.py +6 -12
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/tests/test_client.py +26 -6
- blueink_client_python-1.2.0/README.md → blueink_client_python-1.3.0/src/blueink_client_python.egg-info/PKG-INFO +107 -2
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink_client_python.egg-info/SOURCES.txt +1 -0
- blueink_client_python-1.3.0/src/blueink_client_python.egg-info/requires.txt +16 -0
- blueink_client_python-1.2.0/src/blueink/model/persons.py +0 -20
- blueink_client_python-1.2.0/src/blueink/model/webhook.py +0 -30
- blueink_client_python-1.2.0/src/blueink_client_python.egg-info/requires.txt +0 -16
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/LICENSE +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/pyproject.toml +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/__init__.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/model/__init__.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/paginator.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/request_helper.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/__init__.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/envelope_template.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/person.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/subclient.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/subclients/template.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/tests/__init__.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/tests/test_bundle_helper.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/tests/test_person_helper.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/utils/__init__.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink/utils/testcase.py +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink_client_python.egg-info/dependency_links.txt +0 -0
- {blueink_client_python-1.2.0 → blueink_client_python-1.3.0}/src/blueink_client_python.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: blueink-client-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0
|
|
4
4
|
Summary: Python Client for Blueink eSignature API
|
|
5
5
|
Home-page: https://github.com/blueinkhq/blueink-client-python
|
|
6
6
|
Author: Blueink
|
|
@@ -14,16 +14,16 @@ Description-Content-Type: text/markdown
|
|
|
14
14
|
License-File: LICENSE
|
|
15
15
|
Requires-Dist: munch
|
|
16
16
|
Requires-Dist: requests
|
|
17
|
-
Requires-Dist: pydantic
|
|
18
|
-
Requires-Dist: email-validator
|
|
17
|
+
Requires-Dist: pydantic<3.0,>=2.0
|
|
18
|
+
Requires-Dist: email-validator<3.0,>=2.0
|
|
19
19
|
Provides-Extra: munch
|
|
20
20
|
Requires-Dist: munch>=2.5; extra == "munch"
|
|
21
21
|
Provides-Extra: requests
|
|
22
22
|
Requires-Dist: requests>=2.31; extra == "requests"
|
|
23
23
|
Provides-Extra: pydantic
|
|
24
|
-
Requires-Dist: pydantic
|
|
24
|
+
Requires-Dist: pydantic<3.0,>=2.0; extra == "pydantic"
|
|
25
25
|
Provides-Extra: email-validator
|
|
26
|
-
Requires-Dist:
|
|
26
|
+
Requires-Dist: email-validator<3.0,>=2.0; extra == "email-validator"
|
|
27
27
|
Dynamic: license-file
|
|
28
28
|
|
|
29
29
|
# blueink-client-python
|
|
@@ -124,6 +124,7 @@ The supported "resources" are:
|
|
|
124
124
|
* `persons`
|
|
125
125
|
* `packets`
|
|
126
126
|
* `templates`
|
|
127
|
+
* `envelope_templates`
|
|
127
128
|
* `webhooks`
|
|
128
129
|
|
|
129
130
|
The methods correspond to common REST operations:
|
|
@@ -266,6 +267,8 @@ as kwargs.
|
|
|
266
267
|
|
|
267
268
|
### Bundle Related
|
|
268
269
|
* Create via ```client.bundles.create(...)``` or ```client.bundles.create_from_bundle_helper(...)```
|
|
270
|
+
* Create from Envelope Template via ```client.bundles.create_from_envelope_template_helper(...)``` or ```client.bundles.create_from_envelope_template(...)```
|
|
271
|
+
* Create Preparation Session via ```client.bundles.create_preparation_session(...)```
|
|
269
272
|
* List via ```client.bundles.list(...)``` or ```client.bundles.paged_list(...)```
|
|
270
273
|
* Retrieve via ```client.bundles.retrieve(...)```
|
|
271
274
|
* Cancel via ```client.bundles.cancel(...)```
|
|
@@ -289,6 +292,12 @@ as kwargs.
|
|
|
289
292
|
### Template Related
|
|
290
293
|
* List via ```client.templates.list(...)``` or ```client.templates.paged_list(...)```
|
|
291
294
|
* Retrieve via ```client.templates.retrieve(...)```
|
|
295
|
+
* Update via ```client.templates.update(...)```
|
|
296
|
+
* Create Preparation Session via ```client.templates.create_preparation_session(...)```
|
|
297
|
+
|
|
298
|
+
### Envelope Template Related
|
|
299
|
+
* List via ```client.envelope_templates.list(...)``` or ```client.envelope_templates.paged_list(...)```
|
|
300
|
+
* Retrieve via ```client.envelope_templates.retrieve(...)```
|
|
292
301
|
|
|
293
302
|
### Webhook Related
|
|
294
303
|
|
|
@@ -452,6 +461,19 @@ response = client.bundles.create_from_bundle_helper(bh)
|
|
|
452
461
|
- Automatically adjusts to text position in the document
|
|
453
462
|
- Can be combined with regular manually-positioned fields
|
|
454
463
|
|
|
464
|
+
#### Bundle Tag Values
|
|
465
|
+
|
|
466
|
+
Bundle-level `tag_values` can be set on the `BundleHelper` constructor to attach
|
|
467
|
+
arbitrary key/value metadata to a Bundle at creation time:
|
|
468
|
+
|
|
469
|
+
```python
|
|
470
|
+
bh = BundleHelper(
|
|
471
|
+
label="Tagged Agreement",
|
|
472
|
+
is_test=True,
|
|
473
|
+
tag_values={"contract_type": "nda"},
|
|
474
|
+
)
|
|
475
|
+
```
|
|
476
|
+
|
|
455
477
|
#### Retrieval
|
|
456
478
|
|
|
457
479
|
Getting a single bundle is fairly easy. They can be accessed with a single call. To get
|
|
@@ -688,9 +710,64 @@ for page in client.templates.paged_list():
|
|
|
688
710
|
page.data # templates in page
|
|
689
711
|
# single
|
|
690
712
|
template_response = client.templates.retrieve(template_id)
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
Templates can also be partially updated (for example, to write template metadata):
|
|
716
|
+
|
|
717
|
+
```python
|
|
718
|
+
client.templates.update(template_id, {"metadata": {"key": "value"}})
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
#### Template Preparation Sessions
|
|
722
|
+
|
|
723
|
+
A preparation session creates a secure, time-limited URL that can be embedded in an
|
|
724
|
+
iframe to let an end user prepare a template through your application:
|
|
725
|
+
|
|
726
|
+
```python
|
|
727
|
+
response = client.templates.create_preparation_session({
|
|
728
|
+
"template_id": template_id, # optional: slug of an existing template to edit
|
|
729
|
+
"redirect_url": "https://your-app.example.com/done", # optional
|
|
730
|
+
})
|
|
731
|
+
prep_url = response.data.url # URL to embed in an iframe
|
|
732
|
+
expires = response.data.expires # ISO 8601 timestamp when the URL expires
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
A similar session can be created for bundle/document preparation via
|
|
736
|
+
`client.bundles.create_preparation_session(...)`.
|
|
737
|
+
|
|
738
|
+
### Envelope Templates
|
|
739
|
+
|
|
740
|
+
Envelope Templates are reusable document workflows that contain predefined documents,
|
|
741
|
+
field layouts, signer roles, and configuration settings. They can be listed (non-paged),
|
|
742
|
+
listed (paged) or retrieved singly:
|
|
743
|
+
|
|
744
|
+
```python
|
|
745
|
+
# non paged
|
|
746
|
+
envelope_templates_response = client.envelope_templates.list()
|
|
747
|
+
# paged
|
|
748
|
+
for page in client.envelope_templates.paged_list():
|
|
749
|
+
page.data # envelope templates in page
|
|
750
|
+
# single
|
|
751
|
+
envelope_template_response = client.envelope_templates.retrieve(envelope_template_id)
|
|
752
|
+
```
|
|
691
753
|
|
|
754
|
+
To create a Bundle from an envelope template, configure a `BundleHelper` with the
|
|
755
|
+
template and its signers, then create the Bundle:
|
|
692
756
|
|
|
757
|
+
```python
|
|
758
|
+
from blueink import BundleHelper, Client
|
|
759
|
+
|
|
760
|
+
bh = BundleHelper(label="Contract", is_test=True)
|
|
761
|
+
bh.add_signer(name="John Doe", email="john@example.com", key="signer-1")
|
|
762
|
+
bh.set_envelope_template(
|
|
763
|
+
template_id="T-abc123",
|
|
764
|
+
field_values={"company_name": "ACME Corp"},
|
|
765
|
+
)
|
|
766
|
+
|
|
767
|
+
client = Client()
|
|
768
|
+
response = client.bundles.create_from_envelope_template_helper(bh)
|
|
693
769
|
```
|
|
770
|
+
|
|
694
771
|
### Webhooks
|
|
695
772
|
|
|
696
773
|
Webhooks can be interacted with via several methods. Webhooks also have related objects, such as
|
|
@@ -701,8 +778,8 @@ methods to interact with.
|
|
|
701
778
|
from copy import deepcopy
|
|
702
779
|
|
|
703
780
|
from requests import HTTPError
|
|
704
|
-
from
|
|
705
|
-
from
|
|
781
|
+
from blueink import Client
|
|
782
|
+
from blueink.constants import EVENT_TYPE
|
|
706
783
|
|
|
707
784
|
WEBHOOK_01 = {
|
|
708
785
|
"url": "https://www.example.com/01/",
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: blueink-client-python
|
|
3
|
-
Version: 1.2.0
|
|
4
|
-
Summary: Python Client for Blueink eSignature API
|
|
5
|
-
Home-page: https://github.com/blueinkhq/blueink-client-python
|
|
6
|
-
Author: Blueink
|
|
7
|
-
Author-email: pypi@blueink.com
|
|
8
|
-
Project-URL: Bug Tracker, https://github.com/blueinkhq/blueink-client-python/issues
|
|
9
|
-
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
-
Classifier: Operating System :: OS Independent
|
|
12
|
-
Requires-Python: >=3.8
|
|
13
|
-
Description-Content-Type: text/markdown
|
|
14
|
-
License-File: LICENSE
|
|
15
|
-
Requires-Dist: munch
|
|
16
|
-
Requires-Dist: requests
|
|
17
|
-
Requires-Dist: pydantic
|
|
18
|
-
Requires-Dist: email-validator
|
|
19
|
-
Provides-Extra: munch
|
|
20
|
-
Requires-Dist: munch>=2.5; extra == "munch"
|
|
21
|
-
Provides-Extra: requests
|
|
22
|
-
Requires-Dist: requests>=2.31; extra == "requests"
|
|
23
|
-
Provides-Extra: pydantic
|
|
24
|
-
Requires-Dist: pydantic>=1.9; extra == "pydantic"
|
|
25
|
-
Provides-Extra: email-validator
|
|
26
|
-
Requires-Dist: 1.2; extra == "email-validator"
|
|
27
|
-
Dynamic: license-file
|
|
28
|
-
|
|
29
1
|
# blueink-client-python
|
|
30
2
|

|
|
31
3
|

|
|
@@ -124,6 +96,7 @@ The supported "resources" are:
|
|
|
124
96
|
* `persons`
|
|
125
97
|
* `packets`
|
|
126
98
|
* `templates`
|
|
99
|
+
* `envelope_templates`
|
|
127
100
|
* `webhooks`
|
|
128
101
|
|
|
129
102
|
The methods correspond to common REST operations:
|
|
@@ -266,6 +239,8 @@ as kwargs.
|
|
|
266
239
|
|
|
267
240
|
### Bundle Related
|
|
268
241
|
* Create via ```client.bundles.create(...)``` or ```client.bundles.create_from_bundle_helper(...)```
|
|
242
|
+
* Create from Envelope Template via ```client.bundles.create_from_envelope_template_helper(...)``` or ```client.bundles.create_from_envelope_template(...)```
|
|
243
|
+
* Create Preparation Session via ```client.bundles.create_preparation_session(...)```
|
|
269
244
|
* List via ```client.bundles.list(...)``` or ```client.bundles.paged_list(...)```
|
|
270
245
|
* Retrieve via ```client.bundles.retrieve(...)```
|
|
271
246
|
* Cancel via ```client.bundles.cancel(...)```
|
|
@@ -289,6 +264,12 @@ as kwargs.
|
|
|
289
264
|
### Template Related
|
|
290
265
|
* List via ```client.templates.list(...)``` or ```client.templates.paged_list(...)```
|
|
291
266
|
* Retrieve via ```client.templates.retrieve(...)```
|
|
267
|
+
* Update via ```client.templates.update(...)```
|
|
268
|
+
* Create Preparation Session via ```client.templates.create_preparation_session(...)```
|
|
269
|
+
|
|
270
|
+
### Envelope Template Related
|
|
271
|
+
* List via ```client.envelope_templates.list(...)``` or ```client.envelope_templates.paged_list(...)```
|
|
272
|
+
* Retrieve via ```client.envelope_templates.retrieve(...)```
|
|
292
273
|
|
|
293
274
|
### Webhook Related
|
|
294
275
|
|
|
@@ -452,6 +433,19 @@ response = client.bundles.create_from_bundle_helper(bh)
|
|
|
452
433
|
- Automatically adjusts to text position in the document
|
|
453
434
|
- Can be combined with regular manually-positioned fields
|
|
454
435
|
|
|
436
|
+
#### Bundle Tag Values
|
|
437
|
+
|
|
438
|
+
Bundle-level `tag_values` can be set on the `BundleHelper` constructor to attach
|
|
439
|
+
arbitrary key/value metadata to a Bundle at creation time:
|
|
440
|
+
|
|
441
|
+
```python
|
|
442
|
+
bh = BundleHelper(
|
|
443
|
+
label="Tagged Agreement",
|
|
444
|
+
is_test=True,
|
|
445
|
+
tag_values={"contract_type": "nda"},
|
|
446
|
+
)
|
|
447
|
+
```
|
|
448
|
+
|
|
455
449
|
#### Retrieval
|
|
456
450
|
|
|
457
451
|
Getting a single bundle is fairly easy. They can be accessed with a single call. To get
|
|
@@ -688,9 +682,64 @@ for page in client.templates.paged_list():
|
|
|
688
682
|
page.data # templates in page
|
|
689
683
|
# single
|
|
690
684
|
template_response = client.templates.retrieve(template_id)
|
|
685
|
+
```
|
|
691
686
|
|
|
687
|
+
Templates can also be partially updated (for example, to write template metadata):
|
|
692
688
|
|
|
689
|
+
```python
|
|
690
|
+
client.templates.update(template_id, {"metadata": {"key": "value"}})
|
|
693
691
|
```
|
|
692
|
+
|
|
693
|
+
#### Template Preparation Sessions
|
|
694
|
+
|
|
695
|
+
A preparation session creates a secure, time-limited URL that can be embedded in an
|
|
696
|
+
iframe to let an end user prepare a template through your application:
|
|
697
|
+
|
|
698
|
+
```python
|
|
699
|
+
response = client.templates.create_preparation_session({
|
|
700
|
+
"template_id": template_id, # optional: slug of an existing template to edit
|
|
701
|
+
"redirect_url": "https://your-app.example.com/done", # optional
|
|
702
|
+
})
|
|
703
|
+
prep_url = response.data.url # URL to embed in an iframe
|
|
704
|
+
expires = response.data.expires # ISO 8601 timestamp when the URL expires
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
A similar session can be created for bundle/document preparation via
|
|
708
|
+
`client.bundles.create_preparation_session(...)`.
|
|
709
|
+
|
|
710
|
+
### Envelope Templates
|
|
711
|
+
|
|
712
|
+
Envelope Templates are reusable document workflows that contain predefined documents,
|
|
713
|
+
field layouts, signer roles, and configuration settings. They can be listed (non-paged),
|
|
714
|
+
listed (paged) or retrieved singly:
|
|
715
|
+
|
|
716
|
+
```python
|
|
717
|
+
# non paged
|
|
718
|
+
envelope_templates_response = client.envelope_templates.list()
|
|
719
|
+
# paged
|
|
720
|
+
for page in client.envelope_templates.paged_list():
|
|
721
|
+
page.data # envelope templates in page
|
|
722
|
+
# single
|
|
723
|
+
envelope_template_response = client.envelope_templates.retrieve(envelope_template_id)
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
To create a Bundle from an envelope template, configure a `BundleHelper` with the
|
|
727
|
+
template and its signers, then create the Bundle:
|
|
728
|
+
|
|
729
|
+
```python
|
|
730
|
+
from blueink import BundleHelper, Client
|
|
731
|
+
|
|
732
|
+
bh = BundleHelper(label="Contract", is_test=True)
|
|
733
|
+
bh.add_signer(name="John Doe", email="john@example.com", key="signer-1")
|
|
734
|
+
bh.set_envelope_template(
|
|
735
|
+
template_id="T-abc123",
|
|
736
|
+
field_values={"company_name": "ACME Corp"},
|
|
737
|
+
)
|
|
738
|
+
|
|
739
|
+
client = Client()
|
|
740
|
+
response = client.bundles.create_from_envelope_template_helper(bh)
|
|
741
|
+
```
|
|
742
|
+
|
|
694
743
|
### Webhooks
|
|
695
744
|
|
|
696
745
|
Webhooks can be interacted with via several methods. Webhooks also have related objects, such as
|
|
@@ -701,8 +750,8 @@ methods to interact with.
|
|
|
701
750
|
from copy import deepcopy
|
|
702
751
|
|
|
703
752
|
from requests import HTTPError
|
|
704
|
-
from
|
|
705
|
-
from
|
|
753
|
+
from blueink import Client
|
|
754
|
+
from blueink.constants import EVENT_TYPE
|
|
706
755
|
|
|
707
756
|
WEBHOOK_01 = {
|
|
708
757
|
"url": "https://www.example.com/01/",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[metadata]
|
|
2
2
|
name = blueink-client-python
|
|
3
|
-
version = 1.
|
|
3
|
+
version = 1.3.0
|
|
4
4
|
author = Blueink
|
|
5
5
|
author_email = pypi@blueink.com
|
|
6
6
|
description = Python Client for Blueink eSignature API
|
|
@@ -22,14 +22,14 @@ python_requires = >=3.8
|
|
|
22
22
|
install_requires =
|
|
23
23
|
munch
|
|
24
24
|
requests
|
|
25
|
-
pydantic
|
|
26
|
-
email-validator
|
|
25
|
+
pydantic>=2.0,<3.0
|
|
26
|
+
email-validator>=2.0,<3.0
|
|
27
27
|
|
|
28
28
|
[options.extras_require]
|
|
29
29
|
munch = munch>=2.5;
|
|
30
30
|
requests = requests>=2.31;
|
|
31
|
-
pydantic = pydantic>=
|
|
32
|
-
email-validator
|
|
31
|
+
pydantic = pydantic>=2.0,<3.0
|
|
32
|
+
email-validator = email-validator>=2.0,<3.0
|
|
33
33
|
|
|
34
34
|
[options.packages.find]
|
|
35
35
|
where = src
|
|
@@ -558,7 +558,7 @@ class BundleHelper:
|
|
|
558
558
|
Bundle as dictionary
|
|
559
559
|
"""
|
|
560
560
|
bundle = self._compile_bundle(**additional_data)
|
|
561
|
-
return bundle.
|
|
561
|
+
return bundle.model_dump(exclude_unset=True, exclude_none=True)
|
|
562
562
|
|
|
563
563
|
def as_data_for_envelope_template(self, **additional_data):
|
|
564
564
|
"""Return data for creating a bundle from an envelope template.
|
|
@@ -588,8 +588,10 @@ class BundleHelper:
|
|
|
588
588
|
|
|
589
589
|
packets = list(self._packets.values())
|
|
590
590
|
result = {
|
|
591
|
-
"packets": [
|
|
592
|
-
|
|
591
|
+
"packets": [
|
|
592
|
+
p.model_dump(exclude_unset=True, exclude_none=True) for p in packets
|
|
593
|
+
],
|
|
594
|
+
"envelope_template": self._envelope_template.model_dump(
|
|
593
595
|
exclude_unset=True, exclude_none=True
|
|
594
596
|
),
|
|
595
597
|
}
|
|
@@ -627,4 +629,4 @@ class BundleHelper:
|
|
|
627
629
|
Bundle as json
|
|
628
630
|
"""
|
|
629
631
|
bundle = self._compile_bundle(**additional_data)
|
|
630
|
-
return bundle.
|
|
632
|
+
return bundle.model_dump_json(exclude_unset=True, exclude_none=True)
|
|
@@ -11,6 +11,7 @@ from blueink.subclients.envelope_template import EnvelopeTemplateSubClient
|
|
|
11
11
|
from blueink.subclients.packet import PacketSubClient
|
|
12
12
|
from blueink.subclients.person import PersonSubClient
|
|
13
13
|
from blueink.subclients.template import TemplateSubClient
|
|
14
|
+
from blueink.subclients.verify import VerifySubClient
|
|
14
15
|
from blueink.subclients.webhook import WebhookSubClient
|
|
15
16
|
|
|
16
17
|
|
|
@@ -74,3 +75,4 @@ class Client:
|
|
|
74
75
|
self._base_url, self._request_helper
|
|
75
76
|
)
|
|
76
77
|
self.webhooks = WebhookSubClient(self._base_url, self._request_helper)
|
|
78
|
+
self.verify = VerifySubClient(self._base_url, self._request_helper)
|
|
@@ -94,6 +94,8 @@ EVENT_TYPE = Munch(
|
|
|
94
94
|
EVENT_BUNDLE_DOCS_READY="bundle_docs_ready",
|
|
95
95
|
EVENT_BUNDLE_ERROR="bundle_error",
|
|
96
96
|
EVENT_BUNDLE_CANCELLED="bundle_cancelled",
|
|
97
|
+
EVENT_BUNDLE_SIGNER_REASSIGNED="bundle_signer_reassigned",
|
|
97
98
|
EVENT_PACKET_VIEWED="packet_viewed",
|
|
98
99
|
EVENT_PACKET_COMPLETE="packet_complete",
|
|
100
|
+
EVENT_PACKET_DECLINED="packet_declined",
|
|
99
101
|
)
|
|
@@ -12,6 +12,9 @@ class BUNDLES:
|
|
|
12
12
|
CREATE_PREPARATION_SESSION = "/bundles/preparation_session/"
|
|
13
13
|
LIST = "/bundles/"
|
|
14
14
|
RETRIEVE = "/bundles/${bundle_id}/"
|
|
15
|
+
UPDATE = "/bundles/${bundle_id}/"
|
|
16
|
+
SEND = "/bundles/${bundle_id}/send/"
|
|
17
|
+
VALIDATE = "/bundles/${bundle_id}/validate/"
|
|
15
18
|
CANCEL = "/bundles/${bundle_id}/cancel/"
|
|
16
19
|
LIST_EVENTS = "/bundles/${bundle_id}/events/"
|
|
17
20
|
LIST_FILES = "/bundles/${bundle_id}/files/"
|
|
@@ -45,6 +48,10 @@ class ENVELOPE_TEMPLATES:
|
|
|
45
48
|
RETRIEVE = "/envelope-templates/${envelope_template_id}/"
|
|
46
49
|
|
|
47
50
|
|
|
51
|
+
class VERIFY:
|
|
52
|
+
CREATE = "/verify/"
|
|
53
|
+
|
|
54
|
+
|
|
48
55
|
class WEBHOOKS:
|
|
49
56
|
CREATE = "/webhooks/"
|
|
50
57
|
LIST = "/webhooks/"
|