Hanzo
OpenapiEsign

Opens a document you were asked to sign, using your signing link.

Opens a document you were asked to sign, using your signing link.

GET /v1/esign/o/{org}/sign/{token}

Addresshttps://api.hanzo.ai/v1/esign/o/{org}/sign/{token}
MethodGET
Operationget_esign_o_by_org_sign_by_token
AuthAuthorization: Bearer $HANZO_API_KEY

Opens a document you were asked to sign, using your signing link.

It answers the document, the recipient the link identifies, the fields THAT recipient must fill, and the PDF to display. The first open also marks the recipient as having opened it and records that on the audit trail, so this read has a side effect by design.

This door takes NO account: the signing token is the entire credential, and it names the recipient, so a signer sees only their own fields and never the other recipients' tokens. The token resolves to its owning tenant FIRST, before any per-tenant store is opened, and the org segment is only checked against that answer. An unknown or wrong-org token is one and the same 404, never a hint that some other document exists.

Request

2 fields.

FieldInTypeRequiredDescription
orgpathstringyes
tokenpathstringyes

Response

StatusBodyMeaning
200esignSessionok

200 body — 23 fields.

FieldInTypeAlwaysDescription
documentbodyesignState
document.idbodystringID is the document id.
document.statusbodystringStatus is PENDING while it is out for signature.
document.titlebodystringTitle is the document's name.
fieldsbodyesignField[]Fields is only the fields this recipient must fill — never another party's, so the layout a signer sees cannot reveal what anyone else was asked for.
fields[].customTextbodystringCustomText is the value a non-signature field was filled with, empty until it is.
fields[].fieldMetabodyanyFieldMeta is the caller's own metadata for this field, stored verbatim at placement and never interpreted.
fields[].heightbodynumberHeight is the field's height, -1 when the renderer is to choose one.
fields[].idbodystringID is the field id.
fields[].insertedbodybooleanInserted is whether this field has been filled in.
fields[].pagebodynumberPage is the 1-based page the field sits on.
fields[].positionXbodynumberPositionX is the field's horizontal position on that page.
fields[].positionYbodynumberPositionY is the field's vertical position on that page.
fields[].recipientIdbodystringRecipientID is who must fill this field.
fields[].typebodystringType is what the field collects — SIGNATURE, DATE, NAME, EMAIL, TEXT and the rest.
fields[].widthbodynumberWidth is the field's width, -1 when the renderer is to choose one.
pdfBase64bodystringPdfBase64 is the PDF to display, base64-encoded.
recipientbodyesignSigner
recipient.emailbodystringEmail is the address the link was issued to.
recipient.idbodystringID is the recipient id.
recipient.namebodystringName is the display name recorded for them, empty when none was given.
recipient.rolebodystringRole is the role they were added with.
recipient.signingStatusbodystringSigningStatus is NOT_SIGNED until they finish or decline.

Failure carries the platform error shape — see Errors.

Examples

hanzo esign o sign get <org> <token>

Esign API · All Hanzo APIs · Interactive reference

How is this guide?

On this page