Skip to main content
The /contracts/{id}/approvers endpoints manage the approvers added on one contract. These approvers must approve the contract before Tomorro sends it, either for review or for signature. They are the same approvers as the Approvers section of a contract in the Tomorro app. They are separate from the approval workflows that an admin configures on a contract type.

The rules in short

  1. You can add approvers only when the contract type does not already require an approval before review. A contract type workflow always takes precedence over approvers added on a contract.
  2. The approvers apply to the next send only, whether it is a send for review or a send for signature.
  3. The list is emptied as soon as that approval starts. To get another approval at a later send, add the approvers again.
  4. Add approvers one email at a time. Each POST adds one member to the list. It never replaces the list.

Before you add approvers

Call GET /contracts/{id}/approvers and read customApproversAllowed. The contract type workflow blocks you only when it applies to this contract: a workflow with conditions (for example, an amount above a threshold) blocks you only when the contract meets those conditions.
If the contract has no document yet, Tomorro cannot evaluate the contract type workflow, so customApproversAllowed is true. When the contract is later sent for review, the contract type workflow applies if it exists, and the approvers you added are dropped without being asked.

Add and remove approvers

  • POST /contracts/{id}/approvers with { "email": "..." } adds one member. Call it once per approver: three calls give three approvers. Adding an email that is already in the list does nothing.
  • DELETE /contracts/{id}/approvers with { "email": "..." } removes one member, as long as the next send has not happened yet.
  • Both calls return the full list after the change.
The email identifies the member, so a name is never accepted. The member must be an admin or a manager of the organization.
The member who sends the contract cannot approve their own send. If they are in the list, Tomorro skips them. If no other approver is left, no approval is requested. Do not add the member who owns your API key if that member also sends the contract.

Which send the approvers apply to

The approvers apply to the next send of the contract, then the list is emptied:
  • Send for review (the document goes to the counterparty): the approvers must approve before Tomorro sends the document. Once they approve, Tomorro sends it automatically.
  • Send for signature: the approvers must approve before Tomorro sends the contract for signature, unless the contract type has its own approval workflow before signature. In that case, the contract type workflow applies and the approvers you added are dropped without being asked.

Get an approval before review and before signature

A list applies to one send only. To get an approval at both steps, add the approvers twice:
  1. Right after the contract is created, add the approvers for the review.
  2. Once the review has been sent, add the approvers again for the signature. You know the review was sent when the contract moves to negotiating, for example with the contractStatusUpdated webhook.
  3. If your integration sends the contract for signature with POST /contracts/{id}/request-signatures, you can instead add the approvers right before that call.
To get an approval only before signature, skip step 1.
Webhooks are personal: a webhook only fires for events that concern the member who created it. Make sure that member is a participant of the contracts you follow.

What the list does not show

GET /contracts/{id}/approvers returns the approvers waiting for the next send. It does not show:
  • the approvers of a contract type workflow;
  • an approval that is in progress, or who already approved. Once the approval starts, the list is empty.