Audit & Compliance
GET /audit
Retrieve comprehensive audit trails for UIP signatures using task hashes.
Endpoint
GET
https://audit.api.uip.id/v1/{task_hash}Headers
Authorization: Bearer YOUR_API_KEYPath Parameters
| Parameter | Type | Description |
|---|---|---|
| task_hash | string | The unique task hash returned from signature operations |
Response
{
"task_hash": "task_a1b2c3d4e5f6789012345678901234567890abcdef",
"signature_type": "document_signature",
"status": "completed",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:45:00Z",
"document": {
"title": "Employment Contract",
"hash": "sha256:a1b2c3d4e5f6...",
"filename": "contract.pdf",
"size": 1048576
},
"signer": {
"uip_id": "uip_user_1234567890",
"full_name": "Alice Johnson",
"verification_level": "government_id",
"country": "US",
"signed_at": "2024-01-15T10:45:00Z"
},
"signature": {
"value": "uip_sig_abc123def456...",
"algorithm": "EdDSA",
"device_id": "device_xyz789"
},
"metadata": {
"ip_address": "192.168.1.1",
"user_agent": "UIP Mobile iOS/2.1.0",
"location": {
"country": "US",
"city": "San Francisco",
"coordinates": "37.7749,-122.4194"
}
},
"audit_trail": [
{
"event": "signature_requested",
"timestamp": "2024-01-15T10:30:00Z"
},
{
"event": "document_viewed",
"timestamp": "2024-01-15T10:40:00Z"
},
{
"event": "signature_completed",
"timestamp": "2024-01-15T10:45:00Z"
}
]
}Complete Audit Trail
All signature operations return a task_hash for future audit retrieval. Store this hash for compliance and legal verification purposes.
Code Implementation
// JavaScript
async function getAuditTrail(taskHash) {
const response = await fetch('https://audit.api.uip.id/v1/' + taskHash, {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + YOUR_API_KEY
}
});
if (!response.ok) {
if (response.status === 404) {
throw new Error('Audit trail not found');
}
throw new Error('HTTP error! status: ' + response.status);
}
const auditData = await response.json();
return auditData;
}
// Usage
const taskHash = 'task_a1b2c3d4e5f6789012345678901234567890abcdef';
const audit = await getAuditTrail(taskHash);
console.log('Signature Status:', audit.status);
console.log('Signer:', audit.signer.full_name);
console.log('Signed at:', audit.signer.signed_at);
console.log('Document:', audit.document.title);
// Export for compliance
const auditReport = {
task: audit.task_hash,
signer: audit.signer.full_name,
document: audit.document.title,
timestamp: audit.completed_at,
verified: audit.signer.verification_level === 'government_id'
};
console.log('Audit Report:', JSON.stringify(auditReport, null, 2));Common Use Cases
1 Legal Compliance
Retrieve complete signature audit trails for legal proceedings, regulatory compliance, and contract disputes. Prove who signed what and when.
2 Signature Verification
Verify the authenticity of signatures with cryptographic proof, signer identity verification level, and complete metadata including device and location information.
3 Audit Reporting
Generate comprehensive audit reports for internal compliance, external audits, and regulatory submissions with timestamped event trails.