> For the complete documentation index, see [llms.txt](https://selenium-4.gitbook.io/nexus-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://selenium-4.gitbook.io/nexus-docs/service-domain/document-services/operacoes/main-2.md).

# Update Document

| Campo              | Valor                                                                  |
| ------------------ | ---------------------------------------------------------------------- |
| **Service Domain** | Document Services                                                      |
| **BIAN Version**   | 14.0.0                                                                 |
| **Operation**      | Update Document                                                        |
| **Method**         | PUT                                                                    |
| **API Name**       | Document Services API                                                  |
| **Versão**         | v1.0.0                                                                 |
| **Endpoint**       | `PUT /v1/document-services/document-directory/{document-directory-id}` |
| **Autenticação**   | Bearer Token (OAuth 2.0 / OIDC)                                        |

***

## 1. Descrição da Operação

A operação `UpdateDocument` actualiza os metadados ou o conteúdo de um documento já existente dentro de uma instância do directório de documentos. A actualização regista o tipo e motivo da alteração, o autor, comentários, a transição do estado do fluxo de trabalho (workflow) e gera uma trilha de auditoria (`auditTrail`) com o registo detalhado das alterações (`changeLog[]`).

***

## 2. Path Parameters

| Parâmetro               | Tipo   | Obrigatório | Descrição                                                                                                       |
| ----------------------- | ------ | ----------- | --------------------------------------------------------------------------------------------------------------- |
| `document-directory-id` | string | Sim         | Identificador da instância do directório de documentos que contém o documento a actualizar (ex: `DOC-DIR-001`). |

***

## 3. Payload de Pedido (Request)

### 3.1 Exemplo

```json
{
  "documentDirectoryUpdateInputRecord": {
    "documentDirectoryUpdateActionRequest": "UpdateDocument",
    "documentDirectoryUpdateActionTaskRecord": {
      "documentDirectoryUpdateActionRequest": "UpdateDocument",
      "documentDirectoryUpdateActionTaskReference": "DDUR-001",
      "documentDirectoryInstanceReference": "DOC-DIR-001",
      "documentDirectoryEntryReference": "DOC-ID-001",
      "documentDirectoryUpdateRecord": {
        "updateType": "STATUS_AND_METADATA",
        "updateReason": "VERIFICATION_COMPLETED",
        "updatedBy": "COMPLIANCE_OFFICER_001",
        "updateComments": "Document verified and approved for account opening process",
        "documentEntryDetails": {
          "documentStatus": "VERIFIED",
          "documentVersion": "1.1",
          "documentLastModifiedDate": "2025-07-10T16:45:00Z",
          "documentSecurity": {
            "digitalSignature": true,
            "verificationCertificate": "CERT-2025-VER-001",
            "verifiedBy": "COMPLIANCE_OFFICER_001",
            "verificationDate": "2025-07-10T16:45:00Z"
          },
          "documentContent": {
            "documentMetadata": {
              "verificationStatus": "PASSED",
              "verificationScore": 95,
              "documetNumber": "AB123456789",
              "issuingAuthority": "Government Passport Office",
              "issuanceDate": "2020-07-10",
              "expirationDate": "2030-07-10",
              "issuingCountry": "United States"
            },
            "documentExtractedData": {
              "firstName": "John",
              "lastName": "Doe",
              "dateOfBirth": "1985-05-15",
              "nationality": "American",
              "documentNumber": "AB123456789",
              "extractionConfidence": 98.5,
              "extractionMethod": "OCR_WITH_AI_VALIDATION"
            }
          },
          "documentCompliance": {
            "complianceStatus": "COMPLIANT",
            "lastComplianceCheck": "2025-07-10T16:45:00Z",
            "nextComplianceReview": "2026-07-10T16:45:00Z",
            "retentionCompliance": "COMPLIANT",
            "privacyCompliance": "COMPLIANT",
            "complianceNotes": "All KYC requirements satisfied. Document meets regulatory standards."
          },
          "documentWorkflow": {
            "currentWorkflowState": "VERIFIED",
            "workflowTransition": {
              "fromState": "UNDER_REVIEW",
              "toState": "VERIFIED",
              "transitionDate": "2025-07-10T16:45:00Z",
              "transitionActor": "COMPLIANCE_OFFICER_001",
              "transitionReason": "Manual verification completed successfully",
              "transitionComments": "Identity verified against government database"
            },
            "nextAction": "ARCHIVE_FOR_RETENTION",
            "workflowOwner": "DOCUMENT_MANAGEMENT_TEAM"
          },
          "auditTrail": {
            "updateAction": "STATUS_UPDATE",
            "updateTimestamp": "2025-07-10T16:45:00Z",
            "updateSource": "COMPLIANCE_SYSTEM",
            "updateAuthorization": "AUTH-2025-UPDATE-001",
            "dataIntegrityCheck": "PASSED",
            "backupCreated": true,
            "changeLog": [
              {
                "field": "documentStatus",
                "oldValue": "UNDER_REVIEW",
                "newValue": "VERIFIED",
                "changeReason": "Verification process completed"
              },
              {
                "field": "complianceStatus",
                "oldValue": "PENDING_REVIEW",
                "newValue": "COMPLIANT",
                "changeReason": "Compliance validation passed"
              }
            ]
          }
        }
      }
    }
  }
}
```

### 3.2 Objecto: `documentDirectoryUpdateActionTaskRecord`

| Campo                                        | Tipo   | Descrição                                                                   |
| -------------------------------------------- | ------ | --------------------------------------------------------------------------- |
| `documentDirectoryUpdateActionRequest`       | string | Identificador da ação de negócio solicitada. Valor: `UpdateDocument`.       |
| `documentDirectoryUpdateActionTaskReference` | string | Referência única da tarefa de actualização (ex: `DDUR-001`).                |
| `documentDirectoryInstanceReference`         | string | Identificador da instância do directório de documentos (ex: `DOC-DIR-001`). |
| `documentDirectoryEntryReference`            | string | Identificador do documento a actualizar (ex: `DOC-ID-001`).                 |
| `documentDirectoryUpdateRecord`              | object | Registo com os dados da actualização. Ver secção 3.3.                       |

### 3.3 Objecto: `documentDirectoryUpdateRecord`

| Campo                  | Tipo   | Descrição                                                                                                                                                                                          |
| ---------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `updateType`           | string | Tipo de actualização a aplicar (ex: `STATUS_AND_METADATA`).                                                                                                                                        |
| `updateReason`         | string | Motivo da actualização (ex: `VERIFICATION_COMPLETED`).                                                                                                                                             |
| `updatedBy`            | string | Identificador do autor da actualização.                                                                                                                                                            |
| `updateComments`       | string | Comentário livre sobre a actualização.                                                                                                                                                             |
| `documentEntryDetails` | object | Campos do documento a actualizar (`documentStatus`, `documentVersion`, `documentLastModifiedDate`, `documentSecurity`, `documentContent`, `documentCompliance`, `documentWorkflow`, `auditTrail`). |

### 3.4 Objecto: `documentEntryDetails.documentWorkflow`

| Campo                  | Tipo   | Descrição                                                                                                                               |
| ---------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| `currentWorkflowState` | string | Estado corrente do fluxo de trabalho após a actualização.                                                                               |
| `workflowTransition`   | object | Detalhe da transição de estado (`fromState`, `toState`, `transitionDate`, `transitionActor`, `transitionReason`, `transitionComments`). |
| `nextAction`           | string | Próxima ação prevista no fluxo de trabalho.                                                                                             |
| `workflowOwner`        | string | Equipa/sistema responsável pelo fluxo de trabalho.                                                                                      |

### 3.5 Objecto: `documentEntryDetails.auditTrail`

| Campo                 | Tipo              | Descrição                                                                                      |
| --------------------- | ----------------- | ---------------------------------------------------------------------------------------------- |
| `updateAction`        | string            | Tipo de ação registada na auditoria (ex: `STATUS_UPDATE`).                                     |
| `updateTimestamp`     | string (ISO 8601) | Data/hora do registo de auditoria.                                                             |
| `updateSource`        | string            | Sistema de origem da actualização.                                                             |
| `updateAuthorization` | string            | Referência da autorização que permitiu a actualização.                                         |
| `dataIntegrityCheck`  | string            | Resultado da verificação de integridade dos dados (ex: `PASSED`).                              |
| `backupCreated`       | boolean           | Indica se foi criada cópia de segurança antes da actualização.                                 |
| `changeLog[]`         | array             | Lista de alterações efectuadas, cada uma com `field`, `oldValue`, `newValue` e `changeReason`. |

***

## 4. Payload de Resposta (Response)

### 4.1 Exemplo

```json
{
  "documentDirectoryUpdateOutputRecord": {
    "documentDirectoryUpdateActionTaskRecord": {
      "documentDirectoryUpdateActionRequest": "UpdateDocument",
      "documentDirectoryUpdateActionTaskReference": "DDUR-001",
      "documentDirectoryUpdateActionTaskRecord": {
        "documentDirectoryInstanceRecord": {
          "documentDirectoryInstanceReference": "DOC-DIR-001",
          "documentDirectoryInstanceStatus": "Active",
          "documentDirectoryEntryRecord": {
            "documentEntryReference": "DOC-ID-001",
            "documentEntryDetails": {
              "documentId": "DOC-ID-001",
              "documentType": "IDENTIFICATION",
              "documentSubType": "PASSPORT",
              "documentName": "Customer Passport Document",
              "documentDescription": "Primary identification document for KYC verification",
              "documentStatus": "VERIFIED",
              "documentFormat": "PDF",
              "documentSize": 2048576,
              "documentMimeType": "application/pdf",
              "documentVersion": "1.1",
              "documentLanguage": "en-US",
              "documentClassification": "CONFIDENTIAL",
              "documentRetentionPeriod": "P10Y",
              "documentCreationDate": "2025-07-10T14:30:00Z",
              "documentLastModifiedDate": "2025-07-10T16:45:00Z",
              "documentExpiryDate": "2030-07-10T00:00:00Z",
              "documentOwnership": {
                "documentOwnerReference": "CUST-001",
                "documentOwnerType": "CUSTOMER",
                "documentOwnerName": "John Doe"
              },
              "documentLocation": {
                "documentStorageType": "CLOUD",
                "documentStorageLocation": "s3://bank-documents/identification/DOC-ID-001.pdf",
                "documentAccessUrl": "https://secure.bank.com/documents/DOC-ID-001",
                "documentDownloadUrl": "https://secure.bank.com/api/documents/DOC-ID-001/download"
              },
              "documentSecurity": {
                "encryptionStatus": "ENCRYPTED",
                "encryptionMethod": "AES-256",
                "accessLevel": "RESTRICTED",
                "accessPermissions": ["READ", "DOWNLOAD"],
                "digitalSignature": true,
                "verificationCertificate": "CERT-2025-VER-001",
                "verifiedBy": "COMPLIANCE_OFFICER_001",
                "verificationDate": "2025-07-10T16:45:00Z",
                "checksumMD5": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
                "checksumSHA256": "z9y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4j3i2h1g0f9e8d7c6b5a4"
              },
              "documentCompliance": {
                "regulatoryRequirements": ["KYC", "AML", "GDPR"],
                "complianceStatus": "COMPLIANT",
                "lastComplianceCheck": "2025-07-10T16:45:00Z",
                "nextComplianceReview": "2026-07-10T16:45:00Z",
                "retentionCompliance": "COMPLIANT",
                "privacyCompliance": "COMPLIANT"
              },
              "documentWorkflow": {
                "currentWorkflowState": "VERIFIED",
                "workflowHistory": [
                  {
                    "state": "SUBMITTED",
                    "timestamp": "2025-07-10T14:30:00Z",
                    "actor": "CUSTOMER",
                    "comment": "Document uploaded by customer"
                  },
                  {
                    "state": "UNDER_REVIEW",
                    "timestamp": "2025-07-10T15:00:00Z",
                    "actor": "SYSTEM",
                    "comment": "Automated document validation initiated"
                  },
                  {
                    "state": "VERIFIED",
                    "timestamp": "2025-07-10T16:45:00Z",
                    "actor": "COMPLIANCE_OFFICER_001",
                    "comment": "Document verified and approved"
                  }
                ],
                "nextAction": "ARCHIVE_FOR_RETENTION",
                "workflowOwner": "DOCUMENT_MANAGEMENT_TEAM"
              }
            }
          }
        }
      }
    },
    "documentDirectoryUpdateActionResponse": {
      "documentDirectoryUpdateActionResponseCode": "Success",
      "documentDirectoryUpdateActionResponseMessage": "Document DOC-ID-001 successfully updated to VERIFIED status",
      "documentDirectoryUpdateActionResponseDetails": {
        "documentId": "DOC-ID-001",
        "previousStatus": "UNDER_REVIEW",
        "currentStatus": "VERIFIED",
        "updateTimestamp": "2025-07-10T16:45:00Z",
        "updatedBy": "COMPLIANCE_OFFICER_001",
        "versionIncremented": true,
        "newVersion": "1.1",
        "complianceValidated": true,
        "nextActions": ["ARCHIVE_FOR_RETENTION"],
        "notificationsSent": ["CUSTOMER_SMS", "BRANCH_EMAIL"]
      }
    }
  }
}
```

### 4.2 Objecto: `documentDirectoryUpdateActionResponse`

| Campo                                          | Tipo   | Descrição                                                                                                                                                                                                  |
| ---------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `documentDirectoryUpdateActionResponseCode`    | string | Código do resultado da operação (ex: `Success`).                                                                                                                                                           |
| `documentDirectoryUpdateActionResponseMessage` | string | Mensagem descritiva do resultado da actualização.                                                                                                                                                          |
| `documentDirectoryUpdateActionResponseDetails` | object | Detalhes do resultado: `documentId`, `previousStatus`, `currentStatus`, `updateTimestamp`, `updatedBy`, `versionIncremented`, `newVersion`, `complianceValidated`, `nextActions[]`, `notificationsSent[]`. |

> O restante conteúdo de `documentDirectoryEntryRecord.documentEntryDetails` na resposta reflecte o estado actualizado do documento, seguindo a mesma estrutura de campos documentada em [Retrieve Document Information](https://github.com/selenium-digital/nexus-docs/tree/main/docs/document-services/update-document/retrieve-document-information.md).
