To download the full code sample see our Code Share site.
Once a transaction has been sent out for signing, you can retrieve all signatures on a specified document, for a specified signer. The following code will do this:
If you need a comparison to the basic object creation procedure, or if this is the first time creating a transaction, see Creating and Sending a Transaction.
Firs, retrieve your DocumentPackage object. The following code will do this:
DocumentPackage sentPackage = client.getPackage(packageId);
Then, using the OneSpan SignApprovalService, you can retrieve all signatures. Use the DocumentPackage, SignatureID objects, and documentID as parameters. The following code will do this:
List<Signature> signer1SignableSignatures = client.getApprovalService().getAllSignableSignatures(sentPackage, documentId, signer1Id);
Finally, you can loop through each signature to retrieve any additional information, like the positioning of the signature, the accepted date, and so on.
for (Signature signature : signer1SignableSignatures){ System.out.println("Position of signature " + i + ": (" + signature.getX() + ", " + signature.getY() + ") on page " + signature.getPage()); i++; }
If the package contains an “accept only” document then the Approvals node will not have any signatures in it.
Results
Here is an example of what you can expect to see once you have run your code.
To download the full code sample see our Code Share site.
Once a transaction has been sent out for signing, you can retrieve all signatures on a specified document, for a specified signer. The following code will do this:
If you need a comparison to the basic object creation procedure, or if this is the first time creating a transaction, see Creating and Sending a Transaction.
Firs, retrieve your DocumentPackage object. The following code will do this:
DocumentPackage sentPackage = client.GetPackage(packageId);
Then, using the OneSpan SignApprovalService, you can retrieve all signatures. Use the DocumentPackage, SignatureID objects, and documentID as parameters. The following code will do this:
IList<Signature> signer1SignableSignatures = client.ApprovalService.GetAllSignableSignatures(sentPackage, documentId, signer1Id);
Finally, you can loop through each signature to retrieve any additional information, like the positioning of the signature, the accepted date, and so on.
foreach (Signature signature in signer1SignableSignatures){ Debug.WriteLine("Position of signature " + i + ": (" + signature.X + ", " + signature.Y + ") on page " + signature.Page); i++; }
If the package contains an “accept only” document then the Approvals node will not have any signatures in it.
Results
Here is an example of what you can expect to see once you have run your code.
To download the full code sample see our Code Share site.
Once you have sent your transaction for signing, you can use the following code to retrieve all signatures for all signers in a document, use the PackageID, and documentID as parameters.
If you need a comparison to the basic object creation procedure, or if this is the first time creating a transaction, see Creating and Sending a Transaction.
HTTP Request
GET /api/packages/{packageId}/documents/{documentId}
HTTP Headers
Accept: application/json; esl-api-version=11.21 Authorization: Basic api_key
Response Payload
{ "description": "", "id": "ddcad715b41ed28d0d8b16580c829501f35d5ed836d800c0", "index": 0, "name": "purchase_order", "approvals": [ { "id": "UMxe8ClLfEYK", "role": "15be0c69-b672-4314-9ffd-d3da69770caa", "signed": null, "accepted": null, "fields": [...], "name": "" }, { ... } ], ... }
For a complete description of each field, see the Request Payload table below.
Then, you can loop through each signature to retrieve any additional information, like the positioning of the signature, the accepted date, and so on.
You can also retrieve all signatures for a specific signer within one or multiple documents. To retrieve signatures from a single document, use the following code:
HTTP Request
GET /api/packages/{packageId}/documents/{documentId}/signers/{signerId}/approvals
HTTP Headers
Accept: application/json; esl-api-version=11.21 Authorization: Basic api_key
Response Payload
[ { "id": "eZDydIrS1XQV", "optional": false, "name": "", "enforceCaptureSignature": false, "accepted": "2019-08-12T16:01:00Z", "signed": "2019-08-12T16:01:02Z", "role": "50a3431e-04e2-49b1-81c8-a5e2bc550932", "fields": [...], ... }, { ... } ]
To retrieve all signatures from the transacion, remove the /documents/{documentId}" from the URL path. The following code will do this:
HTTP Request
GET /api/packages/{packageId}/signers/{signerId}/approvals
HTTP Headers
Accept: application/json; esl-api-version=11.21 Authorization: Basic api_key
Response Payload
[ { "documentId": "efc058bf9f0c261947c62a8d199be5d5ea6495ca102c8076", "approvals": [ ... ] }, { "documentId": "default-consent", "approvals": [ { "id": "339df19b-e8ee-4dd0-bdb8-d4f38bc368c5", "enforceCaptureSignature": false, "accepted": "2019-08-12T16:00:56Z", "signed": "2019-08-12T16:00:56Z", "role": "50a3431e-04e2-49b1-81c8-a5e2bc550932", "optional": false, "fields": [], "name": "", "data": null } ] }, { "documentId": "91a88db05a2f122ab214ef6f5933219658ade8d81b7f1035", "approvals": [] } ]
In response payload, all document IDs are listed with the signatures assigned to the signer. If the recipient doesn't have any signatures on a document, the approvals array will be empty.
Results
Here is an example of what you can expect to see once you have run your code.
Request Payload Table
Property | Type | Editable | Required | Default | Sample Values |
---|---|---|---|---|---|
description | string | Yes | No | n/a | sample consent document |
id | string | Yes | No | n/a | ddcad715b41ed28d0d8b16580c829501f35d5ed836d800c0 |
extract | boolean | Yes | No | false | true / false |
index | integer | Yes | No | 0 | 0 / 1 / 2 ... |
name | string | Yes | No | n/a | purchase_order |
data | |||||
ese_document_texttag_extract_needed | boolean | Yes | No | false | false / true |
approvals | |||||
fields | |||||
subtype | string | Yes | No | n/a | FULLNAME / INITIALS / CAPTURE / MOBILE_CAPTURE / LABEL / TEXTFIELD / TEXTAREA / CHECKBOX / DATE / RADIO / LIST |
type | string | Yes | No | n/a | SIGNATURE / INPUT |
extract | boolean | Yes | No | false | true / false |
height | integer | Yes | No | 50 | 50 / 100 / 150 ... |
left | integer | Yes | No | 0 | 50 / 100 / 150 ... |
page | integer | Yes | No | 0 | 0 / 1 / 2 ... |
top | integer | Yes | No | 0 | 50 / 100 / 150 ... |
width | integer | Yes | No | 200 | 50 / 100 / 150 ... |
role | string | Yes | No | n/a | Client1 |
pages | |||||
id | string | No | No | n/a | n/a |
top | integer | No | No | 0 | n/a |
height | integer | No | No | 1030 | n/a |
width | integer | No | No | 796 | n/a |
left | integer | No | No | 0 | n/a |
index | integer | No | No | 0 | n/a |
version | integer | No | No | 0 | n/a |
To download the full code sample see our Code Share site.
Once a transaction has been sent out for signing, you can retrieve all signatures on a specified document, for a specified signer. The following code will do this:
If you need a comparison to the basic object creation procedure, or if this is the first time creating a transaction, see Creating and Sending a Transaction.
Firs, retrieve your PackageID. The following code will do this:
Then, you can retrieve all signatures. Use the PackageID, SignatureID , and documentID as parameters. The following code will do this:
public List<ESignLiveAPIObjects.Approval> getAllSignableSignatures(String packageId, String documentId, String signerId)
Finally, you can loop through each signature to retrieve any additional information, like the positioning of the signature, the accepted date, and so on.
List<ESignLiveAPIObjects.Approval> allSignableSignatures = getAllSignableSignatures(packageId, documentId, signerId); for(ESignLiveAPIObjects.Approval approval: allSignableSignatures){ System.debug('Approval ID: ' + approval.id); if(approval.fields != null && approval.fields.size() > 0){ for(ESignLiveAPIObjects.Field field: approval.fields){ System.debug('----Field ID:' + field.id + ', TYPE: ' + field.type + ' ' + field.subtype); } } }
If the package contains an “accept only” document then the Approvals node will not have any signatures in it.
Results
Here is an example of what you can expect to see once you have run your code.