---
title: "Create a framework agreement and signing link"
method: POST
path: "/public/onboarding/v1/create-framework-agreement"
tags: ["Onboarding flow"]
---

# Create a framework agreement and signing link

`POST /public/onboarding/v1/create-framework-agreement`

## Request

- Base URL: `https://api.maqqie.app`
- URL: `https://api.maqqie.app/public/onboarding/v1/create-framework-agreement`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://maqqie.app/auth/realms/maqqie/protocol/openid-connect/token`
- TypeScript: <https://skmtc.dev/maqqie/apis/maqqie-platform-public-api/docs/public/onboarding/v1/create-framework-agreement/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a framework agreement and a signing link, for the given worker.
Once the agreement is signed, the FrameworkAgreementSignedEvent webhook is executed.

## Request body

- FrameworkAgreementCreationRequestV1
  - `workerId` string, uuid: The unique id of the worker, as returned from the /create-worker endpoint.
  - `isPayrollTaxReduction` boolean: true if the worker wants us to apply payroll tax reduction (Dutch: loonheffingskorting), false otherwise
  - `payrollTaxReductionStartDate` string, date: The date from which the payroll tax reduction should be applied. Required if isPayrollTaxReduction is true, ignored otherwise.

## Response `200`

Successfully created the agreement

- FrameworkAgreementCreationResponseV1
  - `signingUrl` string, uri: A URL to the web UI (Stiply) that shows the agreement to the worker and allows them to e-sign it.
  - `signingUrlExpirationTimestamp` string, date-time: The timestamp (UTC) at which the signing URL will expire. When browsing to the URL after this timestamp, the web UI (Stiply) will show an error page.

## Other responses

- `400`: The request could not be processed. This could be due to a number of reasons: * The request does not have all required data. * Data in the request is invalid. * Data in the request is inconsistent. * The operation is not allowed given the current state of the data.
- `401`: The request did not contain credentials identifying the caller, or the provided credentials were invalid.
- `403`: The data that the request referred to is inaccessible to the caller.

---

[API](https://skmtc.dev/maqqie/apis/maqqie-platform-public-api.md) - [All operations](https://skmtc.dev/maqqie/apis/maqqie-platform-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/maqqie/apis/maqqie-platform-public-api/revisions/5cb82e369b70?raw)
