---
title: "Upload a pre-signed agreement"
method: POST
path: "/apps/gov-fr/v1/entry/{silo_entry_id}/agreement"
---

# Upload a pre-signed agreement

`POST /apps/gov-fr/v1/entry/{silo_entry_id}/agreement`

## Request

- Base URL: `https://api.invopop.com`
- URL: `https://api.invopop.com/apps/gov-fr/v1/entry/{silo_entry_id}/agreement`
- Auth: none required
- TypeScript: <https://skmtc.dev/invopop/apis/access-service-api/docs/apps/gov-fr/v1/entry/:silo_entry_id/agreement/post.ts> (a function with typed inputs; its response is checked against the schema)

Stores a mandate that the customer has signed outside Invopop.
Satisfies the `agreement` step on the approval flow.

Identity verification is still required; call `POST /identity`
before or after this endpoint, then call `POST /confirm` to
finalise. For in-app signing, use `POST /sign` instead of this
endpoint.

## Path parameters

- `silo_entry_id` string, required

## Request body

- AgreementSubmit
  - `data` string, byte, required: Base64-encoded binary of the pre-signed PDF mandate. Must be `application/pdf`, maximum 4 MB.

## Response `204`

Pre-signed agreement stored.

## Other responses

- `400`: The request is malformed or missing required parameters.
- `401`: Missing or invalid authentication token.
- `403`: The authenticated enrollment is not allowed to access this silo entry.
- `404`: The referenced silo entry or its party registration could not be found. The party must be registered before submitting the OTP.
- `422`: The request was well-formed but failed business validation — e.g. the uploaded file is not a valid PDF.
- `500`: An unexpected server-side error occurred.

---

[API](https://skmtc.dev/invopop/apis/access-service-api.md) - [All operations](https://skmtc.dev/invopop/apis/access-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/invopop/apis/access-service-api/revisions/fc954f96ea62?raw)
