---
title: "Create or update informed consent (v2)"
method: POST
path: "/api/consents/v2"
tags: ["consents"]
---

# Create or update informed consent (v2)

`POST /api/consents/v2`

Submit informed consent form without the tax data transmission consent, which is handled by PUT /patients/tax-deduction-consent.

## Request body

- CreateConsentRequestV2 — Request to create/update informed consent without the tax data transmission consent.
  - `consent_type` 'psychological' | 'nutritional', required — Informed consent type constants.
  - `operator_id` string, uuid, required — Operator UUID
  - `form_data` ConsentFormDataV2, required — Form data for informed consent (v2): the tax data transmission consent is no longer part of it.
    - `first_name` string, required — Patient first name
    - `last_name` string, required — Patient last name
    - `birth_place` string, required — Birth place
    - `birth_date` string, required — Birth date (DD/MM/YYYY)
    - `residence` string, required — Full residence address
    - `tax_code` string, required — Tax code (codice fiscale)
    - `minor_guardians_type` string, nullable — Minors only: tutor, parents
    - `parents_signature_mode` string, nullable — Minors only (parents): both_parents, single_parent
    - `single_parent_reason` string, nullable — Minors only (single_parent): deceased_other_parent, sole_custody, unknown_or_absent, other
    - `guardians` GuardianPerson[], nullable — Minors only: guardians/parents data (1 or 2)
      - `full_name` string, required — Full name
      - `birth_place` string, required — Birth place
      - `birth_date` string, required — Birth date (DD/MM/YYYY)
      - `residence` string, required — Full residence address
      - `tax_code` string, required — Tax code (codice fiscale)
      - `relationship` string, required — Relationship: parent, tutor
    - `gp_first_name` string — General practitioner first name
    - `gp_last_name` string — General practitioner last name
    - `gp_phone` string — General practitioner phone
    - `gp_email` string — General practitioner email
    - `consent_given` boolean, required — Main consent checkbox
    - `gdpr_consent` boolean — Deprecated: third-party data-sharing consent moved to patients.third_party_consent; no longer part of the informed consent

## Response `201`

Successful Response

- CreateConsentResponse — Response after creating/updating consent.
  - `consent_id` string, uuid, required — Consent UUID
  - `status` 'draft' | 'pending_otp' | 'pending_approval' | 'revision_required' | 'verified' | 'expired' | 'revoked', required — Informed consent status constants.
  - `message` string, required — Success message
  - `next_action` 'none' | 'upload_documents' | 'sign_pdf' | 'wait_approval' | 'verify_otp' | 'complete_form' | 'renew', required — Next action for consent flow.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/corabea/apis/corabea-api.md) · [All operations](https://skmtc.dev/corabea/apis/corabea-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/corabea/corabea-api/revisions/13c1bce1bdc4/schema)
