How to create a Recruitment Terms of Business Agreement

ccdc## What is a Recruitment Terms of Business Agreement?

A recruitment agency terms of business agreement allows an agent to source candidates for a client and receive an introduction fee when the candidate is successfully engaged by the client. The agent’s fee can be a fixed fee or equivalent to a percentage of the candidate’s remuneration. Depending on the terms of business, the client might receive a full or partial refund of the agent’s fee if the candidate leaves or is dismissed within a certain period of working for the client.

Steps to create a Recruitment Terms of Business Agreement

  • Create a team that will create the contract
  • Retrieve the contract fields of the contract template
  • Create a contract and provide values for the contract fields
  • Add party members or collaborators
  • Sign the contract

Creating a team

Contracts are created in teams. A User can create a new Team or select an existing. In this guide we will create a "New Team for RTBA" with the create team

curl --request POST \
     --url https://sandbox.legislate.tech/v1/users/{{UserID}}/teams \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer APIKEY' \
     --header 'Content-Type: application/json' \
     --data '
{
     "name": "New team for RTBA"

A successful 201 response should return the team ID, an error could mean the name of the team has not been given, or the user ID is incorrect.

{
  "id": {{TeamID}},
  "name": "New team for RTBA",
  "created": "2022-06-16 15:16:27.980+0000",
  "_links": {
    "self": {
      "href": "https://sandbox.legislate.tech/v1/teams/{{TeamID}}"
    }
  }
}

Get contract fields

The contract is a public contract. We can look at the list of public contracts we can create using the Get contract type terms of a team (https://developers.legislate.tech/reference/getcontracttypesperteamusingget) which uses the team ID. A successful 204 response should look something like this:

{
    "id": 6690589634461711,
    "name": "Section 8 Notice",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/teams/6753931778590809/contract-types/6690589634461711"
      },
      {
        "rel": "templates",
        "href": "https://sandbox.legislate.tech/v1/teams/6753931778590809/contract-types/6690589634461711/templates"
      }
    ],
    "about_url": "www.legislate.tech"
  },
  {
    "id": 6690589634461712,
    "name": "Section 21 Notice",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/teams/6753931778590809/contract-types/6690589634461712"
      },
      {
        "rel": "templates",
        "href": "https://sandbox.legislate.tech/v1/teams/6753931778590809/contract-types/6690589634461712/templates"
      }
    ],
    "about_url": "www.legislate.tech"
  },

This list shows all the contracts the team can create, the Recruitment Terms of Business Agreement should be in this list:

 {
    "id": 6690589634461729,
    "name": "Recruitment Terms of Business Agreement",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/teams/TeamID/contract-types/6690589634461729"
      },
      {
        "rel": "templates",
        "href": "https://sandbox.legislate.tech/v1/teams/TeamID/contract-types/6690589634461729/templates"
      }
    ],
    "about_url": "https://help.legislate.tech/en/articles/5963824-the-recruitment-agreement",
    "about_html": "<p>A Recruitment Standard Terms of Business Agreement allows an Agent to introduce Candidates to a Client in exchange for an Introduction Fee if they are successfully engaged by the Client.</p>"
  }

This response shows the contract type id, which we can use to find the contract template id using the Get Contract Templates endpoint (https://developers.legislate.tech/reference/gettemplatesusingget):

[
  {
    "id": 105,
    "version": "Last updated 07/12/2021",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/teams/TeamID/contract-types/6690589634461729/templates/105"
      },
      {
        "rel": "type",
        "href": "https://sandbox.legislate.tech/v1/teams/TeamID/contract-types/6690589634461729"
      },
      {
        "rel": "terms",
        "href": "https://sandbox.legislate.tech/v1/templates/105/terms"
      }
    ]
  }
]

This returns our Contract Template ID, which we can now use to get the contract fields, with the Get contract fields endpoint (https://developers.legislate.tech/reference/gettemplatetermsusingget):

[
  {
    "id": 2632,
    "label": "Contract Name",
    "name": "contract_name",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2632"
      }
    ]
  },
  {
    "id": 2633,
    "label": "Agreement Date",
    "name": "contract_agreementDate",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2633"
      }
    ]
  },
  {
    "id": 2634,
    "label": "Commencement Date",
    "name": "contract_startDate",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2634"
      }
    ]
  },
  {
    "id": 2637,
    "label": "Is the Client entering into an exclusive arrangement with the Agent?",
    "name": "contract_agentExclusive",
    "options": [
      {
        "value": "agentExclusiveYes"
      },
      {
        "value": "agentExclusiveNo"
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2637"
      }
    ]
  },
  {
    "id": 2639,
    "label": "How will the Agent be paid?",
    "name": "contract_introductionFee",
    "options": [
      {
        "value": "introductionFeePercentage",
        "nested_fields": [
          {
            "id": 2658,
            "label": "Please confirm the percentage",
            "name": "contract_percentageFeeAmount",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2658"
              }
            ]
          },
          {
            "id": 2664,
            "label": "Is the Candidate's Remuneration limited to their annual gross basic salary?",
            "name": "contract_remunerationBasic",
            "options": [
              {
                "value": "remunerationBasicYes"
              },
              {
                "value": "RemunerationBasicNo"
              }
            ],
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2664"
              }
            ]
          }
        ]
      },
      {
        "value": "introductionFeeMargin",
        "nested_fields": [
          {
            "id": 2712,
            "label": "Please confirm the margin of the daily rate of the Contractor which will be used to calculate the Agent's fee",
            "name": "contract_agentMargin",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2712"
              }
            ]
          }
        ]
      },
      {
        "value": "introductionFeeFixed",
        "nested_fields": [
          {
            "id": 2644,
            "label": "Please confirm the amount to be paid upon the release of a Vacancy to the Agent",
            "name": "contract_fixedFeeAmount",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2644"
              }
            ]
          },
          {
            "id": 2656,
            "label": "Please confirm the amount to be paid once the Candidate has completed 12 full weeks of employment",
            "name": "contract_agentFeeEmploymentCompleteAmount",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2656"
              }
            ]
          },
          {
            "id": 2657,
            "label": "Please confirm the amount to be paid upon the Candidate’s commencement of employment",
            "name": "contract_agentFeeCommencmentAmount",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2657"
              }
            ]
          }
        ]
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2639"
      }
    ]
  },
  {
    "id": 2647,
    "label": "For how long must the Agent not solicit the Client's employees?",
    "name": "contract_nonSolicitationPeriod",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2647"
      }
    ]
  },
  {
    "id": 2648,
    "label": "Is the Agent required to take out any employer's liability, public liability and professional indemnity insurance?",
    "name": "contract_agentInsurance",
    "options": [
      {
        "value": "agentInsuranceYes",
        "nested_fields": [
          {
            "id": 2649,
            "label": "What is the Agent's sole aggregate liability cap?",
            "name": "contract_agentInsuranceAmount",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2649"
              }
            ]
          }
        ]
      },
      {
        "value": "agentInsuranceNo"
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2648"
      }
    ]
  },
  {
    "id": 2650,
    "label": "What is the term of the Agreement?",
    "name": "contract_term",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2650"
      }
    ]
  },
  {
    "id": 2651,
    "label": "After how long can the Agreement be reviewed?",
    "name": "contract_reviewPoint",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2651"
      }
    ]
  },
  {
    "id": 2652,
    "label": "How many Candidates will the Agent introduce at a minimum per Vacancy?",
    "name": "contract_minimumNumberOfCandidates",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2652"
      }
    ]
  },
  {
    "id": 2653,
    "label": "Within how many days must the Client notify the Agent of an offer of an Engagement to the Candidate?",
    "name": "contract_candidateOfferNotice",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2653"
      }
    ]
  },
  {
    "id": 2654,
    "label": "For how long must the Client not disclose the details of Candidates to Third Parties?",
    "name": "contract_thirdPartyNotice",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2654"
      }
    ]
  },
  {
    "id": 2655,
    "label": "Within how many days must the Client notify the Agent if it receives details of a Candidate from the Agent which it has already received ",
    "name": "contract_candidateAlreadyKnown",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2655"
      }
    ]
  },
  {
    "id": 2659,
    "label": "Can charges incurred by the Agent at the Client's request be charged to the Client in addition to the fee?",
    "name": "contract_clientOffset",
    "options": [
      {
        "value": "clientOffsetYes"
      },
      {
        "value": "clientOffsetNo"
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2659"
      }
    ]
  },
  {
    "id": 2660,
    "label": "Within how many days can the Client dispute the Agent's invoice",
    "name": "contract_invoiceDispute",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2660"
      }
    ]
  },
  {
    "id": 2661,
    "label": "How much notice must either Party give to the other to terminate this Agreement?",
    "name": "contract_agreementTerminationNotice",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2661"
      }
    ]
  },
  {
    "id": 2662,
    "label": "What is the Agent's email for receiving notices?",
    "name": "contract_emailNoticeAgent",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2662"
      }
    ]
  },
  {
    "id": 2663,
    "label": "What is the Client's email for receiving notices?",
    "name": "contract_emailNoticeClient",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2663"
      }
    ]
  },
  {
    "id": 2665,
    "label": "Would the Agent like to add their logo to the Agreement?",
    "name": "contract_logo",
    "options": [
      {
        "value": "logoYes",
        "nested_fields": [
          {
            "id": 2666,
            "label": "Please upload the logo",
            "name": "contract_logoDetails",
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2666"
              }
            ]
          }
        ]
      },
      {
        "value": "logoNo"
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2665"
      }
    ]
  },
  {
    "id": 2711,
    "label": "Will the Candidate be Engaged as an Employee or a Contractor?",
    "name": "contract_candidateType",
    "options": [
      {
        "value": "candidateTypeEmployee"
      },
      {
        "value": "candidateTypeContractor",
        "nested_fields": [
          {
            "id": 2713,
            "label": "Are Candidates paid a daily rate or for the delivery of a project?",
            "name": "contract_contractorType",
            "options": [
              {
                "value": "contractorTypePeriodOfTime"
              },
              {
                "value": "contractorTypeNumberOfProjects"
              }
            ],
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2713"
              }
            ]
          },
          {
            "id": 2777,
            "label": "Please confirm who is responsible for paying the Candidate",
            "name": "contract_whoWillPayCandidate",
            "options": [
              {
                "value": "whoWillPayCandidateClient"
              },
              {
                "value": "whoWillPayCandidateAgent"
              }
            ],
            "links": [
              {
                "rel": "self",
                "href": "https://sandbox.legislate.tech/v1/terms/2777"
              }
            ]
          }
        ]
      }
    ],
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2711"
      }
    ]
  },
  {
    "id": 2714,
    "label": "Within how long of the Commencement Date will the Agent's fee be refunded if the Candidate ceased to be Engaged by the Client? After this period, the Client may be entitled to a 60% refund",
    "name": "contract_agentFeeRefundPeriod",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2714"
      }
    ]
  },
  {
    "id": 2715,
    "label": "After how long of the Engagement Commencement Date will the Client not be entitled to a refund of the Agent's fee if the Candidate ceases to be Engaged by the Client?",
    "name": "contract_agentFeeRefundThirdPeriod",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2715"
      }
    ]
  },
  {
    "id": 2716,
    "label": "From how long after the Engagement Commencement Date will the Client be entitled to a 30% refund of the Agent fee if the Candidate ceases to be Engaged by the Client?",
    "name": "contract_agentFeeRefundSecondPeriod",
    "links": [
      {
        "rel": "self",
        "href": "https://sandbox.legislate.tech/v1/terms/2716"
      }
    ]
  }
]

This gives us all the fields for the contract we are trying to make, and we can now use the Create a contract with an auto generated bundle endpoint to create the contract. This endpoint uses the TeamID, UserID, Contract Template ID, and the fields as parameters to create the contract and return the ContractID (https://developers.legislate.tech/reference/postcontractusingpost-1):

curl --request POST \
     --url https://sandbox.legislate.tech/v1/teams/TeamID/contracts \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IklZMUlVNU5pNXRkYnFpNGJwa3czYyJ9.eyJodHRwczovL2FwcC5sZWdpc2xhdGUudGVjaC91c2VyX2lkIjoiNjc0OTU0MTg1MjI1MjEwMCIsImlzcyI6Imh0dHBzOi8vbGVnaXNsYXRlLXNhbmRib3guZXUuYXV0aDAuY29tLyIsInN1YiI6Ik0wOERWYXBHTHpDV2lJU01RdWZKSVI4cGFSbXQ4dVVXQGNsaWVudHMiLCJhdWQiOiJodHRwczovL3NhbmRib3gubGVnaXNsYXRlLnRlY2giLCJpYXQiOjE2NTcyODYwODIsImV4cCI6MTY1OTcwNjA4MiwiYXpwIjoiTTA4RFZhcEdMekNXaUlTTVF1ZkpJUjhwYVJtdDh1VVciLCJzY29wZSI6InJlYWQ6Y29udHJhY3RzIGdldDpjb250cmFjdHMiLCJndHkiOiJjbGllbnQtY3JlZGVudGlhbHMifQ.FEuZ6xu2orIiEfi-c3z8egKiJUS8HLu8qL8dLhTZYASVmhY_J88YS4ragjMkV8q1YJ2pv34jst6qFJstoaiaqjgu_E4NyFTm2rD0WFExsYeNha4VSJ6foE276vM9yz_WR_3qs7lzpgek25vX6vZg5984Yx6FIH7sMaTH1c1NpCFZEhjD0twyMq_5EGw_fRkuqnzw1UEmLmEEIzPtF5DAbRTtWEFICzdprsqzJSMaWOROLPgZpOSiVDO077MmvDsW_hOLbzwwT8I89CrJGhBT1UKJmU7G-hIi2aoOJyF-8bIW12Gpad4OlRmpcl1F2K3YCC_vJZepMncmlKtyYI4ETg' \
     --header 'Content-Type: application/json' \
     --data '
{
     "fields": [
          {
               "id": 2632,
               "name": "Contract Name",
               "value": "New RTBA"
          }
     ],
     "created_by_user_id": "UserID",
     "template_id": 105
}
'

We can then use this contractID to create a collaborator and thereby add a signature to the contract.

📘

Creating a collaborator

More info on how to do this can be found in the How to sign a contract guide - https://developers.legislate.tech/docs/how-to-sign-a-contract