# 3. Validate event

In order to register the vital event, the declaration form must be validated by checking all the details recorded and any supporting documents attached.

In OpenCRVS, the declaration form can be reviewed side by side with the supporting documents to ensure that it is accurate before the vital event is registered. If the information is correct, a user with `scope:record.register[event=event]` can go on to register the vital event; if it is not correct, it can be sent for updates if they have the scope `scope:record.declared.validate[event=event]`.

In the case where a Registrar has an assistant to conduct initial checks, eg. a Registration Agent with `scope:record.declared.validate[event=event].` They can review a declaration and subsequently send it for approval to a user with `scope:record.register[event=event]` .

### **Pre-condition**

A record is in the Ready for Review workqueue with the status ‘Declared’

### **Triggers**

A user with `scope:record.declared.validate[event=event]` or `scope:record.register[event=event]` assigns and downloads the declaration

### **Standard flow**

1. User navigates to Ready for Review workqueue
2. User assigns themselves to the record
3. Declaration is downloaded and is now available to be validated offline
4. User clicks “Review”
5. User validates declaration against supporting documents
6. Available actions depending on the user's assigned scopes:
   1. `scope:record.register[event=event]` > Register
   2. `scope:record.declared.validate[event=event]`> Send for approval
7. User is prompted to confirm their action
8. On confirming, declaration is sent to the Outbox for processing
9. Once processed the declaration status is updated
   1. `scope:record.register[event=event]` > Status = Registered
   2. `scope:record.declared.validate[event=event]`> Status = Validated

### **Post conditions**

* Declaration is shown to the users workqueue depending on their assigned scopes
  1. Ready to review. If`scope:record.register[event=event]`
  2. Sent for approval. If `scope:record.declared[event=event]`
  3. Ready to Print. If `scope:record.registrered.print&issue-certified-copies[event=event]`
* Record audit is updated to show the last action

### **Variations/Exceptions**

* If updates are required and the user has `scope:record.declared.reject[event=event]`. They can choose to send the declaration to the Requires Updates workqueue. Informant receives sms notification that their declaration was rejected and recommend them to visit the office.
* The validator can choose to change a part of the declaration. If so they will receive a warning prompt about making changes. Before navigating them to the required section of the form. A audit log of this change is recorded in Record Audit.
* When the system flags a declaration as a potential duplicate. A user with `scope:record.review-duplicates[event=event]` can review the potential declaration against any flagged records. They can then mark the record as not a duplicate or mark it as a duplicate and archive the declaration.

{% embed url="<https://youtu.be/M1dKPVk5Zzw>" %}


---

# Agent Instructions: 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 current page URL with the `ask` query parameter:

```
GET https://documentation.opencrvs.org/product-specifications/core-functions/3.-validate-event.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
