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

# Order Requirements Webhooks Overview

> Order requirement-related webhook events overview

Order requirement webhooks notify your system when compliance opens an information requirement on one of your orders, and track it until it is resolved.

A requirement is a request for supporting information or documentation about a specific order (for example, as part of enhanced due diligence). It carries a message describing what is needed and, while it is waiting on you, a deadline.

These events allow you to:

* Get notified as soon as an order needs supporting information
* Surface the compliance message and deadline to the right team
* Track the review progress after you respond
* React to the final outcome (approved, rejected or expired)

***

# Order Requirement Lifecycle

An order requirement follows this state flow:

```
CREATED → IN_REVIEW → APPROVED
   ↓         ↓ ↘      ↗
EXPIRED ← MORE_INFO   REJECTED
```

### State Definitions

| State      | Description                                                                                           |
| :--------- | :---------------------------------------------------------------------------------------------------- |
| CREATED    | Compliance opened the requirement. It is waiting for your response before the `expiresAt` deadline.   |
| IN\_REVIEW | Your submission was received and is being reviewed by compliance.                                     |
| MORE\_INFO | Compliance needs additional information. Check `message` for what is missing; a new deadline applies. |
| APPROVED   | The requirement was resolved satisfactorily. Final state.                                             |
| REJECTED   | The provided information was not sufficient and the requirement was rejected. Final state.            |
| EXPIRED    | The deadline passed without a response (from `CREATED` or `MORE_INFO`). Final state.                  |

***

# Available Events

Each state transition fires the matching event:

| Event                   | Description                                                          |
| :---------------------- | :------------------------------------------------------------------- |
| `requirement_created`   | A new requirement was opened on one of your orders (state → CREATED) |
| `requirement_in_review` | Your response was received and is under review (state → IN\_REVIEW)  |
| `requirement_more_info` | Compliance requested additional information (state → MORE\_INFO)     |
| `requirement_approved`  | The requirement was approved (state → APPROVED, final)               |
| `requirement_rejected`  | The requirement was rejected (state → REJECTED, final)               |
| `requirement_expired`   | The requirement expired without a response (state → EXPIRED, final)  |

***

# Payload Fields

All six events share the same `data` structure:

* `requirementId` — Unique identifier of the requirement
* `orderId` — The order the requirement is attached to
* `merchantId` — Your merchant identifier
* `previousState` — The state the requirement was in before this transition. **Omitted on `requirement_created`.**
* `newState` — The state the requirement transitioned to (matches the event)
* `message` — Compliance message describing what is needed or the resolution. Included when provided.
* `expiresAt` — ISO 8601 deadline to respond. Present only while the requirement is not in a final state.

<Note>
  Requirements are responded to from the RalioPay Portal. Use `orderId` to correlate the requirement with the affected order in your systems.
</Note>
