> 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/docs/document-services/update-document/main.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).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://selenium-4.gitbook.io/nexus-docs/docs/document-services/update-document/main.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
