Transactions API
Create signature requests, track their state, resend signing links, and export records.
POST /api/transactions
Create a new signature request. multipart/form-data.
| Field | Type | Required | Notes |
|---|---|---|---|
signer_name | string | yes | Full legal name of the signer |
signer_email | string | yes | Where the signing link is sent |
attestation_type | string | no | Default signature. Others: approval, review, consent |
document | file | yes | PDF. Max 200 MB. File header must be %PDF- |
reference | file | yes | Face photo of the signer. JPEG or PNG. |
signer_emails | string | no | Comma-separated additional signers (up to 4) |
curl -X POST https://districtseal.com/api/transactions \
-H "X-API-Key: ds_live_abc123..." \
-F "signer_name=Alex Morgan" \
-F "signer_email=alex@example.com" \
-F "attestation_type=signature" \
-F "document=@contract.pdf" \
-F "reference=@alex-photo.jpg"
Response:
{
"id": 128,
"reference": "DS-TX-00000128",
"token": "RxDHcXpk4_beiWspTunj-Dt81m4fFSxsrYEkrB3MGLmEaajxerh54a_A9ZggI4Y6",
"sign_url": "https://districtseal.com/sign/RxDHcXpk...",
"status": "created"
}
402.
GET /api/transactions
List your transactions, most recent first.
curl https://districtseal.com/api/transactions \
-H "X-API-Key: ds_live_abc123..."
Response is an array of transaction summaries. Each object contains id, token, signer_name, signer_email, status, verification_mode, created_at, and verified_at.
GET /api/transactions/{id}
Get one transaction with its full event log. Only the owner of the transaction can access it — other owners receive HTTP 404 (not 403, to avoid leaking the existence of other users' transactions).
POST /api/transactions/{id}/resend
Re-sends the signing link to the signer's email. Only available for transactions that have not yet reached a terminal state.
curl -X POST https://districtseal.com/api/transactions/128/resend \
-H "X-API-Key: ds_live_abc123..."
POST /api/transactions/{id}/cancel
Cancels a pending transaction. Once cancelled, the signing link stops working. This action is irreversible.
GET /api/transactions/export.csv
Exports all your transactions as a CSV file. Columns: reference, signer, email, status, created, verified.
Verification — GET /api/verify/{label}/{hash}
Public endpoint. No authentication required. Given a certificate reference (for example DS-TX-00000128) and the first 16 characters of the document SHA-256 hash, returns the certificate validity.
curl https://districtseal.com/api/verify/DS-TX-00000128/3f03d835f65701fa
{
"valid": true,
"reference": "DS-TX-00000128",
"signer_name": "Alex Morgan",
"issuer_name": "Okoro & Partners",
"verified_at": "2026-09-22T02:11:47Z",
"document_sha256_prefix": "3f03d835f65701fa",
"verification_mode": "biometric",
"ledger_seal": "..."
}
Transaction states
| Status | Meaning |
|---|---|
created | Transaction created, link not yet opened |
consent_accepted | Signer has accepted consent, ceremony in progress |
capture_accepted | Video and reference captured, awaiting analysis |
ledger_issued | Verified. Certificate issued. |
failed | Verification failed after max attempts. No certificate. |
cancelled | Cancelled by the sender. No certificate. |
District Seal is a product of NEXSIM LLC, Montana, United States.
API support: support@districtseal.com