Skip to main content

Signing room links that expire, and lists you page with a cursor

· 3 min read

A signing room link lets anyone who has it open the signing room as that person. Until now, links never expired.

API version 3.7.0 gives links an expiry date and lets you rotate them. It also moves list endpoints to cursor pagination.

Links are generated when an agreement moves to pending, and they stay the same as the agreement moves through other lifecycle states. A new link expires at the agreement's expiration date if it has one, and after 7 days otherwise.

An expired link doesn't lock anyone out. When the person opens it, they can request a new link from the signing room. The new link replaces the old one, which stops working.

Links created while your client was on an older version don't expire, so nothing changes until you upgrade.

If a link has expired, or you think it reached someone it shouldn't have, rotate it:

POST /agreements/{agreement_id}/signing_room_links/{signing_room_link_id}/rotate

The old link stops working straight away, and every session opened with it ends. No email is sent, so deliver the new URL yourself.

Links are also replaced when a participant is forwarded, and revoked when a participant is removed.

Because a link can be replaced while the agreement is being signed, a URL you stored earlier may no longer work. Read the link from the participant or observer when you need it.

Participants, observers, and the issuer now carry a signing_room_link object with the url, status and expires_at. signing_room_url is still returned and holds the same URL.

To hear about changes as they happen, subscribe to the generated, rotated, and revoked events. They come in three categories, agreement, participant, and observer, and each one sends that resource as data.

Learn more about signing room links

Cursor pagination​

GET /agreements, GET /files, and GET /themes now page with a cursor. Each page returns limit, has_more, and next_cursor. Send next_cursor as cursor with the same order_by and filters until has_more is false.

Responses no longer include page, total_pages, or total_results, and sending page returns a 400. Clients on older versions keep offset pagination.

Learn more about pagination

Search agreements​

GET /agreements takes a new search parameter. It matches the main document's filename and the lookup key case-insensitively, or the agreement ID exactly, and needs at least 3 characters.

Get started​

Upgrade your API client to version 3.7.0. You can do this from your API client settings on zigned.se by clicking "Upgrade".