Appliquer toutes les signatures en un seul appel
  • 02 Mar 2025
  • 6 Minutes à lire
  • Sombre
    Lumière
  • PDF

Appliquer toutes les signatures en un seul appel

  • Sombre
    Lumière
  • PDF

Résumé de l’article

SDK Java.NET SDKAPI RESTAPEX SDK

SDK Java

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.

Dans cet exemple :

  • Il y a deux destinataires dans la transaction : l'expéditeur et un client.

  • Il y a deux documents dans la transaction.

  • Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.

  • L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.

Le code suivant signera toutes les signatures de la transaction.

// Package   PackageBuilder packageToBuild =
// PackageBuilder.newPackageNamed("Sign Documents Test");   //Sender
// SignerBuilder signer1 =
// SignerBuilder.newSignerWithEmail("sender@example.com")
// .withFirstName("Haris")   .withLastName("Haidary")   .withCustomId("Sender");
// //Client   SignerBuilder signer2 =
// SignerBuilder.newSignerWithEmail("client@example.com") .withFirstName("John")
// .withLastName("Smith")   .withCustomId("Signer");   //Sender signature on
// first document   SignatureBuilder signature1 =
// SignatureBuilder.signatureFor("sender@example.com")
// .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Signature of the
// Contractor")   .atPosition(TextAnchorPosition.TOPLEFT)   .withSize(150, 40)
// .withOffset(0, -50)   .withCharacter(0)   .withOccurence(0));   //Client
// signature on first document   SignatureBuilder signature2 =
// SignatureBuilder.signatureFor("client@example.com")
// .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Signature of the
// Client")   .atPosition(TextAnchorPosition.TOPLEFT)   .withSize(150, 40)
// .withOffset(0, -50)   .withCharacter(0)   .withOccurence(0));   //First
// document   DocumentBuilder document1 =
// DocumentBuilder.newDocumentWithName("Cleaning Contract")
// .fromFile("DOC_FILE_PATH")   .withSignature(signature1)
// .withSignature(signature2);   //Build package   DocumentPackage packageToSend
// =
// packageToBuild.withSigner(signer1).withSigner(signer2).withDocument(document1).withDocument(document2).build();
// //Create and send package   PackageId packageId =
// client.createAndSendPackage(packageToSend);   //sign all documents for sender
// client.signDocuments(packageId);

La dernière ligne de cet exemple de code signe automatiquement tous les documents pour l'expéditeur.

Cette fonction ne fonctionne pas pour les signatures par capture.

Résultats

Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.

.NET SDK

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.

Dans cet exemple :

  • Il y a deux destinataires dans la transaction : l'expéditeur et un client.

  • Il y a deux documents dans la transaction.

  • Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.

  • L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.

Le code suivant signera toutes les signatures de la transaction.

//Package   PackageBuilder packageToBuild = PackageBuilder.NewPackageNamed("Sign Documents Test");   
//Sender   SignerBuilder signer1 = SignerBuilder.NewSignerWithEmail("sender@example.com")   .WithFirstName("Haris")   .WithLastName("Haidary")   .WithCustomId("Sender");   
//Client   SignerBuilder signer2 = SignerBuilder.NewSignerWithEmail("client@example.com")   .WithFirstName("John")   .WithLastName("Smith")   .WithCustomId("Signer");   
//Sender signature on first document   SignatureBuilder signature1 = SignatureBuilder.SignatureFor("sender@example.com")   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Signature of the Contractor")   .AtPosition(TextAnchorPosition.TOPLEFT)   .WithSize(150, 40)   .WithOffset(0, -50)   .WithCharacter(0)   .WithOccurrence(0));   
//Client signature on first document   SignatureBuilder signature2 = SignatureBuilder.SignatureFor("client@example.com")   .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Signature of the Client")   .AtPosition(TextAnchorPosition.TOPLEFT)   .WithSize(150, 40)   .WithOffset(0, -50)   .WithCharacter(0)   .WithOccurrence(0));   
//First document   DocumentBuilder document1 = DocumentBuilder.NewDocumentNamed("Cleaning Contract")   .FromFile("DOC_FILE_PATH")   .WithSignature(signature1)   .WithSignature(signature2);   
//Build package   DocumentPackage packageToSend = packageToBuild.WithSigner(signer1).WithSigner(signer2).WithDocument(document1).WithDocument(document2).Build();   
//Create and send package   PackageId packageId = client.CreateAndSendPackage(packageToSend);   
//Sign all documents for sender   client.SignDocuments(packageId); 

La dernière ligne de cet exemple de code signe automatiquement tous les documents pour l'expéditeur.

Cette fonction ne fonctionne pas pour les signatures par capture.

Résultats

Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.

API REST

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.

Dans cet exemple :

  • Il y a deux destinataires dans la transaction : l'expéditeur et un client.

  • Il y a deux documents dans la transaction.

  • Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.

  • L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.

Requête HTTP

POST /api/packages

En-têtes HTTP

Accept: application/json   
Content-Type: multipart/form-data   
Authorization: Basic api_key 

Données utiles de la demande

 -- -- --WebKitFormBoundary1bNO60n7FqP5WO4t Content - Disposition: form - data;
name = "file";
filename = "testDocumentExtraction.pdf"
Content - Type: application / pdf % PDF - 1.5 % µµµµ 1 0 obj < >>> endobj....-- -- --WebKitFormBoundary1bNO60n7FqP5WO4t Content - Disposition: form - data;
name = "payload"
"roles": [{
	"id": "Signer",
	"type": "SIGNER",
	"signers": [{
		"firstName": "John",
		"lastName": "Smith",
		"email": "signer@example.com"
	}],
	"name": "Signer"
}, {
	"id": "Sender",
	"type": "SIGNER",
	"signers": [{
		"firstName": "Haris",
		"lastName": "Haidary",
		"email": "sender@example.com"
	}],
	"name": "Sender"
}], "documents": [{
	"approvals": [{
		"fields": [{
			"type": "SIGNATURE",
			"extract": false,
			"extractAnchor": {
				"text": "Signature of the Client",
				"index": 0,
				"width": 150,
				"height": 40,
				"anchorPoint": "TOPLEFT",
				"characterIndex": 0,
				"leftOffset": 0,
				"topOffset": -50
			},
			"left": 0,
			"subtype": "FULLNAME",
			"top": 0
		}, {
			"value": null,
			"type": "INPUT",
			"binding": "{signer.name}",
			"extract": false,
			"extractAnchor": {
				"text": "(hereafter referred to as",
				"index": 0,
				"width": 150,
				"height": 20,
				"anchorPoint": "TOPRIGHT",
				"characterIndex": 0,
				"leftOffset": -175,
				"topOffset": -5
			},
			"left": 0,
			"subtype": "LABEL",
			"top": 0
		}, {
			"value": null,
			"type": "INPUT",
			"binding": "{approval.signed}",
			"extract": false,
			"extractAnchor": {
				"text": "Date",
				"index": 0,
				"width": 75,
				"height": 40,
				"anchorPoint": "TOPRIGHT",
				"characterIndex": 4,
				"leftOffset": 10,
				"topOffset": -30
			},
			"left": 0,
			"subtype": "LABEL",
			"top": 0
		}],
		"role": "Signer"
	}, {
		"fields": [{
			"type": "SIGNATURE",
			"extract": false,
			"extractAnchor": {
				"text": "Signature of the Contractor",
				"index": 0,
				"width": 150,
				"height": 40,
				"anchorPoint": "TOPLEFT",
				"characterIndex": 0,
				"leftOffset": 0,
				"topOffset": -50
			},
			"subtype": "FULLNAME"
		}],
		"role": "Sender"
	}],
	"id": "contract",
	"name": "Sample Contract"
}], "name": "Sign Documents Test", "type": "PACKAGE", "language": "en", "autoComplete": true, "status": "SENT"
}-- -- --WebKitFormBoundary1bNO60n7FqP5WO4t--

Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.

Données utiles de la réponse

 {   
   "id": "9sKhW-h-qS9m6Ho3zRv3n2a-rkI="   
  } 

Une fois que vous avez envoyé votre transaction, vous effectuez une requête POST vers :

Requête HTTP

POST /api/packages/{packageId}/documents/signed_documents

En-têtes HTTP

Accept: application/json   
Content-Type: application/json   
Authorization: Basic api_key  {   "documents": [   {   "id": "contract",   "name": "Sample Contract"   }   ]   } 

La dernière ligne de cet exemple de code signe automatiquement tous les documents pour l'expéditeur.

Cette fonction ne fonctionne pas pour les signatures par capture.

Résultats

Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.

Tableau des données utiles de la demande

Propriété

Type

Modifiable

Requis

Par défaut

Exemples de valeurs

statut

chaîne de caractères

Oui

Non

ÉBAUCHE

ÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ

ComplétionAuto

booléen

Oui

Non

vrai

vrai / faux

type

chaîne de caractères

Oui

Non

PACKAGE

PAQUET / MODÈLE / MISE EN PAGE

nom

chaîne de caractères

Oui

Oui

s.o.

Exemple d'extraction d'ancres de texte API REST

langue

chaîne de caractères

Oui

Oui

en

en / fr / de ...

documents

nom

chaîne de caractères

Oui

Non

s.o.

Exemple de contrat

approbations

rôle

chaîne de caractères

Oui

Non

s.o.

client

champs

type

chaîne de caractères

Oui

Oui

s.o.

SIGNATURE / ENTRÉE

extrait

booléen

Oui

Non

faux

vrai / faux

sous-type

chaîne de caractères

Oui

Oui

s.o.

NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE

liaison

chaîne de caractères

Oui

Non

nul

nul / {approval.signed} / {signer.title} / {signer.name} / {signer.company}

gauche

entier

Oui

Non

0

0 / 10 / 20 ...

haut

entier

Oui

Non

0

0 / 10 / 20 ...

extractAnchor

texte

chaîne de caractères

Oui

Oui

s.o.

Signature du client

PointAncrage

chaîne de caractères

Oui

Oui

s.o.

HAUT-GAUCHE / HAUT-DROIT / BAS-GAUCHE / BAS-DROIT

index

entier

Oui

Non

0

0 / 1 / 2 ...

largeur

entier

Oui

Non

200

150

characterIndex

entier

Oui

Non

0

0

hauteur

entier

Oui

Non

50

40

décalageGauche

entier

Oui

Non

0

40

DécalageDroite

entier

Oui

Non

0

-10

rôles

id

chaîne de caractères

Oui

Non

s.o.

client

index

entier

Oui

Non

0

1 / 2 / 3 ...

nom

chaîne de caractères

Oui

Non

s.o.

client

type

chaîne de caractères

Oui

Non

SIGNER

SIGNATAIRE / EXPÉDITEUR

signataires

courriel

chaîne de caractères

Oui

Oui

s.o.

john.smith@exemple.com

Prénom

chaîne de caractères

Oui

Oui

s.o.

John

Nom de famille

chaîne de caractères

Oui

Oui

s.o.

Smith

id

chaîne de caractères

Oui

Non

s.o.

client

APEX SDK

Pour télécharger l'exemple complet de code, consultez notre site Partage de code.

Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.

Dans cet exemple :

  • Il y a deux destinataires dans la transaction : l'expéditeur et un client.

  • Il y a deux documents dans la transaction.

  • Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.

  • L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.

Après avoir envoyé votre paquet à la signature, vous devrez récupérer votre packageID. Ensuite, utilisez le code suivant pour signer toutes les signatures de la transaction :

 public void signDocuments(String packageId) 

Résultats

Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.


Cet article vous a-t-il été utile ?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.
ESC

Ozzy, facilitant la découverte de connaissances grâce à l’intelligence conversationnelle