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

# Get transaction webhook payload

Fetch the current webhook payload for any withdrawal transaction by its ID. Use this endpoint to manually sync your system if a webhook delivery was missed or delayed.

The response is identical in shape to what is (or would be) sent to your registered webhook URL, built from the current state of the transaction.

## Endpoint

* **Method**: `GET`
* **URL**: `{{LIQUIDITY_URL}}/v1/transactions/:transactionId/webhook-payload`
* **Auth**: Bearer `{{accessToken}}` (merchant token)

## Path Parameters

| Parameter       | Type   | Required | Description                        |
| --------------- | ------ | -------- | ---------------------------------- |
| `transactionId` | string | Yes      | UUID of the transaction to look up |

## Request

```bash theme={null}
curl -X GET "{{LIQUIDITY_URL}}/v1/transactions/7794112b-094e-443d-8454-7192aee10557/webhook-payload" \
  -H "Authorization: Bearer {{accessToken}}"
```

## Response (200)

```json theme={null}
{
  "success": true,
  "data": {
    "eventType": "WITHDRAWAL",
    "status": "SUCCESS",
    "payload": {
      "description": "Payment sent",
      "method": "BANK_TRANSFER",
      "transactionId": "7794112b-094e-443d-8454-7192aee10557",
      "walletId": "44805633-c437-4140-a312-0e626c6feb19",
      "entityId": "9b5e1e96-5796-4648-94d4-62253728291e",
      "entityType": "USER",
      "summary": "Payment sent",
      "entry": "DEBIT",
      "amount": 20.87,
      "currency": "USD",
      "timestamp": 1771347650000,
      "feeCharged": "2.04174",
      "reason": ""
    }
  }
}
```

### Response Fields

| Field            | Type   | Description                                                                       |
| ---------------- | ------ | --------------------------------------------------------------------------------- |
| `data.eventType` | string | Always `WITHDRAWAL`                                                               |
| `data.status`    | string | Current transaction status (`PENDING`, `PROCESSING_PAY_OUT`, `SUCCESS`, `FAILED`) |
| `data.payload`   | object | Full webhook payload — same structure as the live webhook event                   |

See [Withdrawal Event](/guides/withdrawal-event) for a complete breakdown of the payload fields and all possible `status` and `reason` values.

## Error Responses

```json theme={null}
{
  "success": false,
  "message": "<error detail>",
  "fatal": true
}
```

| Situation                                            | HTTP | Message                                                   |
| ---------------------------------------------------- | ---- | --------------------------------------------------------- |
| Missing or invalid token                             | 401  | `Unauthorized`                                            |
| Transaction not found or belongs to another merchant | 404  | `Transaction not found`                                   |
| Transaction is not a withdrawal/payout type          | 422  | `Webhook payload not available for this transaction type` |

## Notes

* Only returns transactions that belong to the authenticated merchant. Requesting another merchant's transaction returns `404`.
* The `timestamp` in the response reflects when you called this endpoint, not when the original webhook was fired.
* Only supported for payout/withdrawal transactions. Collection transactions are not available via this endpoint.
