Endpoints (v1)

1) Create contract

POST /api/v1/contracts

Uploads a PDF and creates a contract in contracts + contract_files.

multipart/form-data

curl -X POST "https://firmato.eu/sign/public/api/v1/contracts" \
  -H "Authorization: Bearer <token>" \
  -F "file=@contract.pdf" \
  -F "title=Sales Contract" \
  -F "description=Generated by Partner Platform"

Response

{
  "contract_id": 123,
  "status": "draft",
  "hash_sha256": "....",
  "upload_name": "contract.pdf"
}

2) Add parties (signers)

POST /api/v1/contracts/{id}/parties

curl -X POST "https://firmato.eu/sign/public/api/v1/contracts/123/parties" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "parties":[
      {"name":"Alice Doe","email":"alice@example.com"},
      {"name":"Bob Doe","email":"bob@example.com"}
    ]
  }'

The response includes each recipient sign_url (tokenized URL) that can be opened in a browser.


3) Send invitations

POST /api/v1/contracts/{id}/send

curl -X POST "https://firmato.eu/sign/public/api/v1/contracts/123/send" \
  -H "Authorization: Bearer <token>"

Add ?force=1 to resend invitations to all parties.


4) Get contract status

GET /api/v1/contracts/{id}

curl -X GET "https://firmato.eu/sign/public/api/v1/contracts/123" \
  -H "Authorization: Bearer <token>"

Returns contract row, parties signing status, and helper links including a stamped download URL (works once fully signed).


5) Download original PDF

GET /api/v1/contracts/{id}/download/original