DocsAPI › Transactions

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.

FieldTypeRequiredNotes
signer_namestringyesFull legal name of the signer
signer_emailstringyesWhere the signing link is sent
attestation_typestringnoDefault signature. Others: approval, review, consent
documentfileyesPDF. Max 200 MB. File header must be %PDF-
referencefileyesFace photo of the signer. JPEG or PNG.
signer_emailsstringnoComma-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"
}
Plan limits. Creating a transaction decrements your monthly signature quota (Free: 3, Pro: 25, Firm: 150) or PAYG credit balance. If the quota is exhausted, the request returns HTTP 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

StatusMeaning
createdTransaction created, link not yet opened
consent_acceptedSigner has accepted consent, ceremony in progress
capture_acceptedVideo and reference captured, awaiting analysis
ledger_issuedVerified. Certificate issued.
failedVerification failed after max attempts. No certificate.
cancelledCancelled by the sender. No certificate.

District Seal is a product of NEXSIM LLC, Montana, United States.

API support: support@districtseal.com

Back to documentation