Skip to main content
POST
/
api
/
passport
/
seal
Seal a document
curl --request POST \
  --url https://signsealship.com/api/passport/seal \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file='@example-file'
const form = new FormData();
form.append('file', '<string>');

const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};

options.body = form;

fetch('https://signsealship.com/api/passport/seal', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests

url = "https://signsealship.com/api/passport/seal"

files = { "file": ("example-file", open("example-file", "rb")) }
headers = {"Authorization": "Bearer <token>"}

response = requests.post(url, files=files, headers=headers)

print(response.text)
{
  "passportId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "verifyCode": "<string>",
  "verifyUrl": "<string>",
  "docSha256": "<string>",
  "sealedSha256": "<string>",
  "status": "sealed",
  "timestamps": {
    "rfc3161": {
      "authority": "<string>",
      "timestampedAtUtc": "2023-11-07T05:31:56Z"
    },
    "openTimestamps": {
      "calendar": "<string>",
      "submittedAtUtc": "2023-11-07T05:31:56Z",
      "status": "pending"
    }
  }
}
{
"error": "<string>"
}
{
"error": "A valid partner API key is required."
}

Authorizations

Authorization
string
header
required

Partner API key. Send as Authorization: Bearer sss_pk_....

Body

multipart/form-data
file
file
required

The executed PDF. Maximum 35 MB.

Response

Document sealed.

passportId
string<uuid>
verifyCode
string
verifyUrl
string

Absolute public verification URL.

docSha256
string

SHA-256 of the exact bytes you uploaded (pre-seal).

sealedSha256
string

SHA-256 of the sealed PDF SignSealShip produced.

status
string
Example:

"sealed"

timestamps
object

Independent timestamp evidence; either member is null when the authority could not be reached.