# Transaction Event

Guru Pay sends a Transaction Webhook when a transaction changes state in the system. This allows your application to stay up-to-date with real-time status changes such as  `created`, `processed`, `failed` or `rejected` .

## When It's Triggered

This webhook is triggered when:

* A transaction reaches a new lifecycle stage (e.g. Transaction is processed, transaction got rejected).
* The transaction is inbound or outbound for an account assigned to your integration.
* The webhook configuration is active for the recipient account.

## Event Structure

```json
{
  "uuid": "be017d83-7d0e-447a-b682-3516e0dfafa0",
  "status": "created",
  "parent_transaction_uuid": null,
  "operation_date": "2025-05-28",
  "operation_date_time": "2025-05-28 11:04:44",
  "operation_date_unix": 1748430284,
  "amount": 2.22,
  "currency": "EUR",
  "payment_type": "INTERNAL",
  "transaction_type": "payment",
  "payment_urgency": "NORMAL",
  "payment_details": "2.22",
  "payment_code": null,
  "end_to_end_ident": "c0e26c0dc450445cbf1f52243d13b654",
  "direction": "DEBIT",
  "document_number": "TRNS_ZYQOXVY9ZU40OMDLC8CB2ICR",
  "created_at": 1748430284,
  "payer": {
    "name": "SERVICES UAB",
    "iban": "LT583400010000025717",
    "address": "Basanaviciaus Str. 1",
    "country_code": "LT",
    "agency_id": null,
    "agency_name": null,
    "agency_address": null,
    "agency_country": null,
    "ultimate": []
  },
  "recipient": {
    "name": "Benificiary name",
    "iban": "LT133400015000032274",
    "address": "Address 1",
    "country_code": "AU",
    "agency_id": null,
    "agency_name": null,
    "agency_address": null,
    "agency_country": null,
    "ultimate": []
  }
}
```

## Event Types

| Type             | Description                                               |
| ---------------- | --------------------------------------------------------- |
| status.created   | A new transaction has been recorded.                      |
| status.processed | A transaction has been completed successfully.            |
| status.failed    | A transaction was rejected by AML or compliance.          |
| status.rejected  | A transanction failed due to technical or business rules. |
