> ## Documentation Index
> Fetch the complete documentation index at: https://developers.verifica.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear y Enviar Solicitud de Firma

> Crea una nueva solicitud de firma y la envía inmediatamente a los firmantes

## Autenticación

Este endpoint requiere autenticación Bearer. Incluye tu API key en el header Authorization (si aún no sabes cómo obtener y usar tu API key, consulta la página de [Autenticación](/api-reference/authentication)):

```
Authorization: Bearer YOUR_API_KEY
```

## Cuerpo de la Solicitud

<ParamField body="name" type="string" required>
  Nombre de la solicitud de firma (máximo 255 caracteres)
</ParamField>

<ParamField body="expires_at" type="string">
  Fecha y hora de expiración (formato ISO 8601). Requerido sin `expires_in`. Debe ser al menos 10 minutos en el futuro.
</ParamField>

<ParamField body="expires_in" type="integer">
  Minutos hasta la expiración. Requerido sin `expires_at`. Mínimo: 1, Máximo: 43200
</ParamField>

<ParamField body="documents" type="array" required>
  Lista de documentos a firmar (mínimo 1)

  <Expandable title="propiedades de documento">
    <ParamField body="name" type="string" required>
      Nombre del documento (máximo 255 caracteres)
    </ParamField>

    <ParamField body="file" type="string" required>
      Archivo PDF codificado en Base64
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="signers" type="array" required>
  Lista de firmantes (mínimo 1)

  <Expandable title="propiedades de firmante">
    <ParamField body="full_name" type="string" required>
      Nombre completo del firmante (máximo 255 caracteres)
    </ParamField>

    <ParamField body="document_type" type="string" required>
      Tipo de documento: `dni`, `ce`, o `passport`
    </ParamField>

    <ParamField body="document_number" type="string" required>
      Número de documento (máximo 30 caracteres)
    </ParamField>

    <ParamField body="email" type="string" required>
      Correo electrónico del firmante (máximo 255 caracteres)
    </ParamField>

    <ParamField body="phone" type="string">
      Teléfono del firmante (máximo 20 caracteres)
    </ParamField>
  </Expandable>
</ParamField>

## Respuesta

<ResponseField name="status" type="string">
  Estado de la respuesta (ej: "success")
</ResponseField>

<ResponseField name="message" type="string">
  Mensaje de respuesta
</ResponseField>

<ResponseField name="data" type="object">
  Datos de respuesta

  <Expandable title="propiedades de data">
    <ResponseField name="signature" type="object">
      Objeto de la solicitud de firma creada

      <Expandable title="propiedades de signature">
        <ResponseField name="id" type="string">
          UUID de la solicitud de firma
        </ResponseField>

        <ResponseField name="organization_id" type="integer | null">
          ID de la organización
        </ResponseField>

        <ResponseField name="name" type="string">
          Nombre de la solicitud de firma
        </ResponseField>

        <ResponseField name="status" type="string">
          Estado de la firma
        </ResponseField>

        <ResponseField name="status_name" type="string">
          Nombre del estado en formato legible
        </ResponseField>

        <ResponseField name="created_at" type="string">
          Fecha y hora de creación
        </ResponseField>

        <ResponseField name="expiration_date" type="string | null">
          Fecha y hora de expiración
        </ResponseField>

        <ResponseField name="completed_at" type="string | null">
          Fecha y hora de completado
        </ResponseField>

        <ResponseField name="rejected_at" type="string | null">
          Fecha y hora de rechazo
        </ResponseField>

        <ResponseField name="rejected_reason" type="string | null">
          Motivo del rechazo
        </ResponseField>

        <ResponseField name="rejected_by" type="string | null">
          Quién rechazó la firma
        </ResponseField>

        <ResponseField name="documents" type="array">
          Lista de documentos
        </ResponseField>

        <ResponseField name="signers" type="array">
          Lista de firmantes con sus detalles
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Ejemplo de Solicitud

```json theme={null}
{
  "name": "Contrato de Servicios 2024",
  "expires_in": 10080,
  "documents": [
    {
      "name": "Contrato.pdf",
      "file": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago..."
    }
  ],
  "signers": [
    {
      "full_name": "Juan Pérez",
      "document_type": "dni",
      "document_number": "12345678",
      "email": "juan.perez@example.com",
      "phone": "+51999999999"
    },
    {
      "full_name": "María García",
      "document_type": "ce",
      "document_number": "87654321",
      "email": "maria.garcia@example.com"
    }
  ]
}
```

## Ejemplo de Respuesta

```json theme={null}
{
  "status": "success",
  "message": "Signature created successfully.",
  "data": {
    "signature": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "organization_id": 1,
      "name": "Contrato de Servicios 2024",
      "status": "sent",
      "status_name": "Enviado",
      "created_at": "2024-01-15T10:30:00Z",
      "expiration_date": "2024-01-22T10:30:00Z",
      "completed_at": null,
      "rejected_at": null,
      "rejected_reason": null,
      "rejected_by": null,
      "documents": [],
      "signers": []
    }
  }
}
```
