Integrate electronic signature into your applications in just minutes
Create an account and generate your API key from your dashboard.
Note : Keep your API key secret and never share it publicly.
Use your API key to authenticate and retrieve your user information :
curl -X GET https://api.giga-signature.com/api/v1/user \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Upload a document then create a complete signature process :
# 1. Document upload
curl -X POST https://api.giga-signature.com/api/v1/documents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-F "file=@contract.pdf" \
-F "name=Contrat de service"
# 2. Create a signature process
curl -X POST https://api.giga-signature.com/api/v1/signature-processes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Client contract signature",
"documents": [{"id": 123, "order": 1}],
"signers": [{
"name": "Jean Dupont",
"email": "jean@example.com",
"order": 1
}]
}'
The API uses Bearer Token authentication. Include your API key in the header
Authorization de chaque requête.
Authorization: Bearer YOUR_API_KEY
curl -X GET https://api.giga-signature.com/api/v1/user \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.giga-signature.com/api/v1/user', [
'headers' => [
'Authorization' => 'Bearer YOUR_API_KEY',
'Accept' => 'application/json',
],
]);
$user = json_decode($response->getBody(), true);
const response = await fetch('https://api.giga-signature.com/api/v1/user', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const user = await response.json();
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.get('https://api.giga-signature.com/api/v1/user', headers=headers)
user = response.json()
/api/v1/auth/login
Authenticates a user and returns an access token.
{
"email": "user@example.com",
"password": "your-password"
}
{
"data": {
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"token_type": "bearer",
"expires_in": 3600,
"user": {
"id": 1,
"name": "John Doe",
"email": "user@example.com"
}
}
}
curl -X POST https://api.giga-signature.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"email": "user@example.com",
"password": "your-password"
}'
/api/v1/auth/logout
/api/v1/auth/refresh
Refreshes an expired access token.
curl -X POST https://api.giga-signature.com/api/v1/auth/refresh \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Accept: application/json"
/api/v1/account
Retrieve tenant information, quotas and connected user.
{
"data": {
"tenant": {
"name": "ACME Corp",
"subscription_type": "premium",
"quotas": {
"documents_limit": 1000,
"documents_used": 245,
"signatures_limit": 5000,
"signatures_used": 823
}
},
"user": {
"id": 1,
"name": "Jean Dupont",
"email": "jean.dupont@acme.com",
"role": "tenant_admin"
}
}
}
curl -X GET https://api.giga-signature.com/api/v1/account \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
/api/v1/account/usage
Retrieves tenant usage statistics.
curl -X GET https://api.giga-signature.com/api/v1/account/usage \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
/api/v1/documents
Retrieves the list of tenant documents.
curl -X GET https://api.giga-signature.com/api/v1/documents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
/api/v1/documents
Uploads a new PDF document.
curl -X POST https://api.giga-signature.com/api/v1/documents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-F "file=@/path/to/document.pdf" \
-F "name=Contrat de service"
/api/v1/documents/{id}
/api/v1/documents/{id}
/api/v1/signature-processes
Creates a new signature process with multiple documents and signers. Supports sequential or parallel workflows.
{
"name": "Service contract 2025",
"description": "Annual maintenance contract",
"documents": [
{
"id": 123,
"order": 1
},
{
"id": 124,
"order": 2
}
],
"signers": [
{
"name": "Jean Dupont",
"email": "jean.dupont@example.com",
"order": 1,
"type": "sequential"
},
{
"name": "Marie Martin",
"email": "marie.martin@example.com",
"order": 2,
"type": "sequential"
}
],
"options": {
"enable_otp": true,
"enable_notifications": true
}
}
curl -X POST https://api.giga-signature.com/api/v1/signature-processes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"name": "Contrat de vente 2024",
"documents": [{"id": 123, "order": 1}],
"signers": [{
"name": "Jean Dupont",
"email": "jean.dupont@example.com",
"order": 1,
"type": "sequential"
}],
"options": {
"enable_otp": true,
"enable_notifications": true
}
}'
/api/v1/signature-processes/{id}/send
Sends the process to signers.
curl -X POST https://api.giga-signature.com/api/v1/signature-processes/123/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
/api/v1/signature-processes/{id}/cancel
/api/v1/signature-processes/{id}/fields
/api/v1/signature-processes/{id}/download-signed-pdf
/api/v1/archives
/api/v1/archives/{id}/download
/api/v1/vault/documents
Récupère la liste des documents signés stockés dans le coffre-fort numérique.
search - Recherche dans les noms et tagsstatus - active, archived, expiring, expireddate_from / date_to - Filtrage par datetags - Filtrer par tags (séparés par virgules)per_page - Nombre de résultats par page (défaut: 15)curl -X GET "https://api.giga-signature.com/api/v1/vault/documents?status=active&tags=contract,2025" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/vault/documents?status=active&tags=contract,2025', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const data = await response.json();
console.log(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/vault/documents?status=active&tags=contract,2025');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
import requests
url = 'https://api.giga-signature.com/api/v1/vault/documents'
params = {
'status': 'active',
'tags': 'contract,2025'
}
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
/api/v1/vault/documents/{id}
Récupère les informations détaillées d'un document spécifique dans le coffre-fort.
curl -X GET "https://api.giga-signature.com/api/v1/vault/documents/123" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/vault/documents/123', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const document = await response.json();
console.log(document);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/vault/documents/123');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$document = json_decode($response, true);
print_r($document);
import requests
url = 'https://api.giga-signature.com/api/v1/vault/documents/123'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.get(url, headers=headers)
document = response.json()
print(document)
/api/v1/vault/documents/{id}/download
Télécharge directement le fichier PDF signé.
curl -X GET "https://api.giga-signature.com/api/v1/vault/documents/123/download" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o "document-signed.pdf"
const response = await fetch('https://api.giga-signature.com/api/v1/vault/documents/123/download', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
if (response.ok) {
const blob = await response.blob();
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'document-signed.pdf';
a.click();
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/vault/documents/123/download');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY'
]);
$pdfContent = curl_exec($ch);
curl_close($ch);
file_put_contents('document-signed.pdf', $pdfContent);
import requests
url = 'https://api.giga-signature.com/api/v1/vault/documents/123/download'
headers = {
'Authorization': 'Bearer YOUR_API_KEY'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
with open('document-signed.pdf', 'wb') as f:
f.write(response.content)
/api/v1/vault/documents/{id}/package
Télécharge un package ZIP contenant le document signé, le certificat de signature et l'audit trail.
curl -X GET "https://api.giga-signature.com/api/v1/vault/documents/123/package" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o "document-package.zip"
const response = await fetch('https://api.giga-signature.com/api/v1/vault/documents/123/package', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
if (response.ok) {
const blob = await response.blob();
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'document-package.zip';
a.click();
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/vault/documents/123/package');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY'
]);
$zipContent = curl_exec($ch);
curl_close($ch);
file_put_contents('document-package.zip', $zipContent);
import requests
url = 'https://api.giga-signature.com/api/v1/vault/documents/123/package'
headers = {
'Authorization': 'Bearer YOUR_API_KEY'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
with open('document-package.zip', 'wb') as f:
f.write(response.content)
/api/v1/vault/documents/{id}/archive
Archive un document du coffre-fort. Les documents archivés restent accessibles mais sont filtrés par défaut.
curl -X POST "https://api.giga-signature.com/api/v1/vault/documents/123/archive" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/vault/documents/123/archive', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const result = await response.json();
console.log(result);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/vault/documents/123/archive');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
import requests
url = 'https://api.giga-signature.com/api/v1/vault/documents/123/archive'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.post(url, headers=headers)
result = response.json()
print(result)
/api/v1/vault/documents/{id}/unarchive
Restaure un document archivé dans le coffre-fort actif.
curl -X POST "https://api.giga-signature.com/api/v1/vault/documents/123/unarchive" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/vault/documents/123/unarchive', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const result = await response.json();
console.log(result);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/vault/documents/123/unarchive');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
import requests
url = 'https://api.giga-signature.com/api/v1/vault/documents/123/unarchive'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.post(url, headers=headers)
result = response.json()
print(result)
/api/v1/vault/documents/{id}/tags
Met à jour les tags d'un document pour faciliter la recherche et l'organisation.
curl -X PUT "https://api.giga-signature.com/api/v1/vault/documents/123/tags" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tags": ["contract", "2025", "important", "client-abc"]
}'
const response = await fetch('https://api.giga-signature.com/api/v1/vault/documents/123/tags', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
tags: ['contract', '2025', 'important', 'client-abc']
})
});
const result = await response.json();
console.log(result);
$data = [
'tags' => ['contract', '2025', 'important', 'client-abc']
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/vault/documents/123/tags');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
print_r($result);
import requests
import json
url = 'https://api.giga-signature.com/api/v1/vault/documents/123/tags'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
data = {
'tags': ['contract', '2025', 'important', 'client-abc']
}
response = requests.put(url, headers=headers, data=json.dumps(data))
result = response.json()
print(result)
/api/v1/vault/statistics
Récupère des statistiques sur l'utilisation du coffre-fort numérique.
{
"success": true,
"data": {
"total_documents": 150,
"active_documents": 120,
"archived_documents": 30,
"expiring_soon": 5,
"total_size": 1073741824,
"total_size_formatted": "1 GB",
"documents_by_month": [
{
"month": "2025-01",
"count": 15
}
],
"top_tags": [
{
"tag": "contract",
"count": 45
}
]
}
}
/api/v1/templates
/api/v1/templates/{id}/duplicate
/api/v1/webhooks
Configure a webhook to receive real-time notifications.
document.uploaded - Document uploadeddocument.deleted - Document deleteddocument.completed - Document completedsignature.created - Signature createdsignature.completed - Signature completedsignature.refused - Signature refusedprocess.completed - Process completed/api/v1/webhooks/{id}/logs
/api/v1/users
Récupère la liste paginée des utilisateurs du tenant.
search - Recherche par nom ou emailrole - Filtrer par rôle (tenant_admin, user, viewer)per_page - Nombre de résultats par pagecurl -X GET "https://api.giga-signature.com/api/v1/users?search=john&role=user&per_page=20" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const params = new URLSearchParams({
search: 'john',
role: 'user',
per_page: 20
});
const response = await fetch(`https://api.giga-signature.com/api/v1/users?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const users = await response.json();
console.log(users);
$params = http_build_query([
'search' => 'john',
'role' => 'user',
'per_page' => 20
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/users?' . $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$users = json_decode($response, true);
print_r($users);
import requests
url = 'https://api.giga-signature.com/api/v1/users'
params = {
'search': 'john',
'role': 'user',
'per_page': 20
}
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.get(url, params=params, headers=headers)
users = response.json()
print(users)
/api/v1/users
Crée un nouvel utilisateur dans le tenant.
curl -X POST "https://api.giga-signature.com/api/v1/users" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Doe",
"email": "jane.doe@example.com",
"password": "SecurePass123!",
"role": "user",
"send_invitation": true
}'
const response = await fetch('https://api.giga-signature.com/api/v1/users', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
name: 'Jane Doe',
email: 'jane.doe@example.com',
password: 'SecurePass123!',
role: 'user',
send_invitation: true
})
});
const newUser = await response.json();
console.log(newUser);
$data = [
'name' => 'Jane Doe',
'email' => 'jane.doe@example.com',
'password' => 'SecurePass123!',
'role' => 'user',
'send_invitation' => true
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/users');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
$newUser = json_decode($response, true);
print_r($newUser);
import requests
import json
url = 'https://api.giga-signature.com/api/v1/users'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
data = {
'name': 'Jane Doe',
'email': 'jane.doe@example.com',
'password': 'SecurePass123!',
'role': 'user',
'send_invitation': True
}
response = requests.post(url, headers=headers, data=json.dumps(data))
newUser = response.json()
print(newUser)
/api/v1/users/{id}
Récupère les informations détaillées d'un utilisateur spécifique.
curl -X GET "https://api.giga-signature.com/api/v1/users/456" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/users/456', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const user = await response.json();
console.log(user);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/users/456');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$user = json_decode($response, true);
print_r($user);
import requests
url = 'https://api.giga-signature.com/api/v1/users/456'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.get(url, headers=headers)
user = response.json()
print(user)
/api/v1/users/{id}
Met à jour les informations d'un utilisateur existant.
curl -X PUT "https://api.giga-signature.com/api/v1/users/456" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Smith",
"role": "tenant_admin"
}'
const response = await fetch('https://api.giga-signature.com/api/v1/users/456', {
method: 'PUT',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
name: 'Jane Smith',
role: 'tenant_admin'
})
});
const updatedUser = await response.json();
console.log(updatedUser);
$data = [
'name' => 'Jane Smith',
'role' => 'tenant_admin'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/users/456');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
$updatedUser = json_decode($response, true);
print_r($updatedUser);
import requests
import json
url = 'https://api.giga-signature.com/api/v1/users/456'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
data = {
'name': 'Jane Smith',
'role': 'tenant_admin'
}
response = requests.put(url, headers=headers, data=json.dumps(data))
updatedUser = response.json()
print(updatedUser)
/api/v1/users/{id}
Supprime définitivement un utilisateur du tenant.
curl -X DELETE "https://api.giga-signature.com/api/v1/users/456" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/users/456', {
method: 'DELETE',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
if (response.ok) {
console.log('User deleted successfully');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/users/456');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 204) {
echo "User deleted successfully";
}
import requests
url = 'https://api.giga-signature.com/api/v1/users/456'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.delete(url, headers=headers)
if response.status_code == 204:
print('User deleted successfully')
/api/v1/users/{id}/reset-password
Envoie un email de réinitialisation du mot de passe à l'utilisateur.
curl -X POST "https://api.giga-signature.com/api/v1/users/456/reset-password" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/users/456/reset-password', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const result = await response.json();
console.log(result.message);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/users/456/reset-password');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo $result['message'];
import requests
url = 'https://api.giga-signature.com/api/v1/users/456/reset-password'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.post(url, headers=headers)
result = response.json()
print(result['message'])
/api/v1/api-keys
Récupère la liste de toutes les clés API du tenant.
curl -X GET "https://api.giga-signature.com/api/v1/api-keys" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/api-keys', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
const apiKeys = await response.json();
console.log(apiKeys);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/api-keys');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$apiKeys = json_decode($response, true);
print_r($apiKeys);
import requests
url = 'https://api.giga-signature.com/api/v1/api-keys'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.get(url, headers=headers)
apiKeys = response.json()
print(apiKeys)
/api/v1/api-keys
Crée une nouvelle clé API pour accéder à l'API.
Important : La clé API complète n'est affichée qu'une seule fois lors de la création. Conservez-la en lieu sûr.
curl -X POST "https://api.giga-signature.com/api/v1/api-keys" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Production API Key",
"expires_at": "2026-12-31T23:59:59Z"
}'
const response = await fetch('https://api.giga-signature.com/api/v1/api-keys', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
name: 'Production API Key',
expires_at: '2026-12-31T23:59:59Z'
})
});
const newApiKey = await response.json();
console.log('New API Key:', newApiKey.key); // Sauvegardez cette clé !
$data = [
'name' => 'Production API Key',
'expires_at' => '2026-12-31T23:59:59Z'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/api-keys');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
$newApiKey = json_decode($response, true);
echo 'New API Key: ' . $newApiKey['key']; // Sauvegardez cette clé !
import requests
import json
url = 'https://api.giga-signature.com/api/v1/api-keys'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
'Accept': 'application/json'
}
data = {
'name': 'Production API Key',
'expires_at': '2026-12-31T23:59:59Z'
}
response = requests.post(url, headers=headers, data=json.dumps(data))
newApiKey = response.json()
print(f"New API Key: {newApiKey['key']}") # Sauvegardez cette clé !
/api/v1/api-keys/{id}
Supprime définitivement une clé API. Cette action est irréversible.
curl -X DELETE "https://api.giga-signature.com/api/v1/api-keys/789" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.giga-signature.com/api/v1/api-keys/789', {
method: 'DELETE',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
});
if (response.ok) {
console.log('API key deleted successfully');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.giga-signature.com/api/v1/api-keys/789');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Accept: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 204) {
echo "API key deleted successfully";
}
import requests
url = 'https://api.giga-signature.com/api/v1/api-keys/789'
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
response = requests.delete(url, headers=headers)
if response.status_code == 204:
print('API key deleted successfully')
<?php
use GigaSignature\Client;
use GigaSignature\Models\SignatureProcess;
// Initialiser le client
$client = new Client('YOUR_API_KEY');
// 1. Upload a document
$document = $client->documents->upload([
'file' => '/path/to/contract.pdf',
'name' => 'Contrat de service 2024'
]);
// 2. Create a multi-document signature process
$process = $client->processes->create([
'name' => 'Signature contrat client',
'documents' => [
['id' => $document->id, 'order' => 1]
],
'signers' => [
[
'name' => 'Jean Dupont',
'email' => 'jean@example.com',
'order' => 1,
'type' => 'sequential'
]
],
'options' => [
'enable_otp' => true,
'enable_notifications' => true
]
]);
// Configure signature zones
$client->processes->defineFields($process->id, [
'fields' => [
[
'document_id' => $document->id,
'signer_id' => 1,
'type' => 'signature',
'page' => 5,
'x' => 100,
'y' => 200,
'width' => 200,
'height' => 80,
'required' => true
]
]
]);
// 4. Envoyer le processus aux signataires
$client->processes->send($process->id);
echo "Process sent successfully!";
The API returns standard HTTP error codes with detailed JSON messages.
| Code | Meaning | Recommended action |
|---|---|---|
| 400 | Bad Request | Check request parameters |
| 401 | Unauthorized | Check your API key |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | Rate limit exceeded, wait before retrying |
| 500 | Internal Server Error | Contact support if error persists |
{
"error": {
"code": "validation_error",
"message": "The provided data is invalid",
"errors": {
"email": [
"The email field is required",
"The email format is invalid"
]
}
}
}
For Laravel, Symfony and vanilla PHP
composer require gigasignature/php-sdk
For Node.js and browsers
npm install @gigasignature/js-sdk
For Django, Flask and Python
pip install gigasignature
Ruby, Go, Java - Coming soon
More SDKs are in development. Stay informed by subscribing to our developer newsletter.