---
title: "Initiate Signature Challenge"
method: POST
path: "/api/agreement/v1/contract-revisions/{id}/signatures/{slotCode}/otp-challenges"
tags: ["Contract Revisions"]
---

# Initiate Signature Challenge

`POST /api/agreement/v1/contract-revisions/{id}/signatures/{slotCode}/otp-challenges`

## Request

- The document declares no server URL.
- Auth: OpenID Connect (`http://localhost:6999/realms/agate/.well-known/openid-configuration`, scopes: `agridata.ch.Agridata_Datenbezueger`, `agridata.ch.Agridata_Datenanbieter`)

Initiates a challenge for a specific signature slot of a specific contract revision.

## Path parameters

- `id` string, uuid, required
- `slotCode` 'DATA_CONSUMER_01' | 'DATA_CONSUMER_02' | 'DATA_PROVIDER_01' | 'DATA_PROVIDER_02', required

## Query parameters

- `actingRole` 'CONSUMER' | 'PROVIDER'

## Response `200`

OK

- OtpChallengeDto
  - `challengeId` string, uuid
  - `expiresAt` string, date-time
  - `maskedPhoneNumber` string: Masked phone number
  - `retryAfterSeconds` integer: Number of remaining attempts

## Other responses

- `401`: Not Authorized
- `403`: Not Allowed
- `404`: The resource or element was not found
- `500`: Internal server error: unexpected error

## Changes

- **2026-10-19** `75957f6bdc66`: 4 warning
  - added the new `EXPORT_CAPACITY_EXHAUSTED` enum value to the `type` response property for the response status `404`
  - added the new `EXPORT_CAPACITY_EXHAUSTED` enum value to the `type` response property for the response status `500`
  - added the new `EXPORT_LIMIT_EXCEEDED` enum value to the `type` response property for the response status `404`
  - added the new `EXPORT_LIMIT_EXCEEDED` enum value to the `type` response property for the response status `500`
- **2026-09-24** `1aa7b6ad5bcc`: 2 warning
  - added the new `UID_CLAIM_MISSING` enum value to the `type` response property for the response status `404`
  - added the new `UID_CLAIM_MISSING` enum value to the `type` response property for the response status `500`
- **2026-06-04** `d1729646b766`: 2 warning
  - added the new `DATA_PROVIDER_ERROR` enum value to the `type` response property for the response status `404`
  - added the new `DATA_PROVIDER_ERROR` enum value to the `type` response property for the response status `500`
- **2026-05-29** `a598446f8093`: 2 info
  - removed the `DATA_PROVIDER_ERROR` enum value from the `type` response property for the response status `404`
  - removed the `DATA_PROVIDER_ERROR` enum value from the `type` response property for the response status `500`
- …earlier changes not shown

[Operation history](https://skmtc.dev/agridata/apis/agridata-ch-api/changes/api/agreement/v1/contract-revisions/:id/signatures/:slotCode/otp-challenges/post.md)

---

[API](https://skmtc.dev/agridata/apis/agridata-ch-api.md) - [All operations](https://skmtc.dev/agridata/apis/agridata-ch-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agridata/apis/agridata-ch-api/revisions/48ab7e1541c3?raw)
