Log

เวลาทิศทางรายการลายเซ็นผลลัพธ์
2026-08-29 13:48:37 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE280826-67-128
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14EVTZ6QKE7G1HDMH2YDJAA",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788011317",
    "x-p2p-signature": "sha256=fdc55ff7696df0905a05f2f00c44afc3a5ff5f8f527e367e4ff73f2a6780ce69"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "test1",
      "agent_ref": "DEP-20260828-AE9ZKU",
      "order_ref": "DE280826-67-128",
      "rate_used": 1,
      "created_at": "2026-08-28T14:42:24.000+00:00",
      "expires_at": "2026-08-28T15:12:24.000+00:00",
      "requested_amount": 30,
      "search_deadline_at": "2026-08-28T14:42:54.000+00:00"
    },
    "event_id": "01M14EVTZ6QKE7G1HDMH2YDJAA",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "no_transfer_before_expiry",
      "expired_at": "2026-08-28T15:12:24.000+00:00",
      "returned_amount": 30
    },
    "occurred_at": "2026-08-28T15:12:27.109Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14EVTZ6QKE7G1HDMH2YDJAA"}
2026-08-29 13:48:37 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE280826-57-127
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14ES32RP90RBQS0A70HYNJB",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788011317",
    "x-p2p-signature": "sha256=4f47ad5c9b28241b482ac18d87e3c4d4f60a724ec6a52c6fbd5b0d671e9f0f12"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "somchai01",
      "agent_ref": "DEP-20260828-XF9DRI",
      "order_ref": "DE280826-57-127",
      "rate_used": 1,
      "created_at": "2026-08-28T14:40:56.000+00:00",
      "expires_at": "2026-08-28T15:10:56.000+00:00",
      "requested_amount": 100,
      "search_deadline_at": "2026-08-28T14:41:26.000+00:00"
    },
    "event_id": "01M14ES32RP90RBQS0A70HYNJB",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "no_transfer_before_expiry",
      "expired_at": "2026-08-28T15:10:56.000+00:00",
      "returned_amount": 100
    },
    "occurred_at": "2026-08-28T15:10:57.112Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14ES32RP90RBQS0A70HYNJB"}
2026-08-29 13:48:37 INBOUND withdraw.cancelled POST /hooks withdraw.cancelled
reason=withdraw.cancelled ref=WD280826-57-63
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14E6S2XGXNNMQPJTHXNNVD8",
    "x-p2p-event-type": "withdraw.cancelled",
    "x-p2p-timestamp": "1788011316",
    "x-p2p-signature": "sha256=813dfb77445270980fa37dab1b48deb9d71087fea8c0551915781599554040ba"
  },
  "body": {
    "order": {
      "kind": "withdraw",
      "status": "expired",
      "metadata": null,
      "username": "somchai01",
      "agent_ref": "WDR-20260828-W2HOOY",
      "order_ref": "WD280826-57-63",
      "rate_used": 1,
      "baht_total": 10,
      "created_at": "2026-08-28T14:45:48.000+00:00",
      "expires_at": "2026-08-28T15:00:48.000+00:00",
      "baht_locked": 0,
      "credit_amount": 10,
      "filled_amount": 0,
      "baht_remaining": 10,
      "requested_amount": 10
    },
    "event_id": "01M14E6S2XGXNNMQPJTHXNNVD8",
    "event_type": "withdraw.cancelled",
    "settlement": {
      "reason": "no_buyer_before_expiry",
      "expired_at": "2026-08-28T15:00:48.000+00:00",
      "filled_amount": 0,
      "returned_amount": 10
    },
    "occurred_at": "2026-08-28T15:00:57.053Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14E6S2XGXNNMQPJTHXNNVD8"}
2026-08-29 13:48:36 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE280826-68-129
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14DMF4610FKZ4X4ATQEV85B",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788011316",
    "x-p2p-signature": "sha256=627879930958263eb12b034aa99e7ea93f2692076f65d9a29580dfef6fcd7007"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "test2",
      "agent_ref": "DEP-20260828-4A089E",
      "order_ref": "DE280826-68-129",
      "rate_used": 1,
      "created_at": "2026-08-28T14:45:20.000+00:00",
      "expires_at": "2026-08-28T15:15:20.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-28T14:45:50.000+00:00"
    },
    "event_id": "01M14DMF4610FKZ4X4ATQEV85B",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-28T14:50:48.000+00:00",
      "matched_amount": 10,
      "returned_amount": 10
    },
    "occurred_at": "2026-08-28T14:50:57.030Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14DMF4610FKZ4X4ATQEV85B"}
2026-08-29 13:48:36 INBOUND withdraw.matched POST /hooks withdraw.matched
reason=withdraw.matched ref=WD280826-57-63
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14DB22PS3719X2VV766437K",
    "x-p2p-event-type": "withdraw.matched",
    "x-p2p-timestamp": "1788011316",
    "x-p2p-signature": "sha256=892549cfe2d0f284b4a0ef2d40b9dff123a22c9865e7a38d5ebcdb20e7a42fbb"
  },
  "body": {
    "order": {
      "kind": "withdraw",
      "status": "open",
      "metadata": null,
      "username": "somchai01",
      "agent_ref": "WDR-20260828-W2HOOY",
      "order_ref": "WD280826-57-63",
      "rate_used": 1,
      "baht_total": 10,
      "created_at": "2026-08-28T14:45:48.000+00:00",
      "expires_at": "2026-08-28T15:00:48.000+00:00",
      "baht_locked": 10,
      "credit_amount": 10,
      "filled_amount": 0,
      "baht_remaining": 10,
      "requested_amount": 10
    },
    "event_id": "01M14DB22PS3719X2VV766437K",
    "event_type": "withdraw.matched",
    "settlement": {
      "match_id": 74,
      "expected_amount": 10,
      "lock_expires_at": "2026-08-28T14:50:48.731Z"
    },
    "occurred_at": "2026-08-28T14:45:48.751Z",
    "counterparty": {
      "username": "test2",
      "order_ref": "DE280826-68-129",
      "remaining_after": 0
    },
    "payee_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "B",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "1",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14DB22PS3719X2VV766437K"}
2026-08-29 13:48:36 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE280826-68-129
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14DB22FQMCBP50MFH92B9E0",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788011316",
    "x-p2p-signature": "sha256=150f34fe981a6916fe595dbf50d2bb2b6aa87985bd26e96904661d126d10a797"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "test2",
      "agent_ref": "DEP-20260828-4A089E",
      "order_ref": "DE280826-68-129",
      "rate_used": 1,
      "created_at": "2026-08-28T14:45:20.000+00:00",
      "expires_at": "2026-08-28T15:15:20.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-28T14:45:50.000+00:00"
    },
    "event_id": "01M14DB22FQMCBP50MFH92B9E0",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 74,
      "expected_amount": 10,
      "lock_expires_at": "2026-08-28T14:50:48.731Z"
    },
    "occurred_at": "2026-08-28T14:45:48.751Z",
    "counterparty": {
      "username": "somchai01",
      "order_ref": "WD280826-57-63",
      "remaining_after": 10
    },
    "payee_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "B",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "1",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14DB22FQMCBP50MFH92B9E0"}
2026-08-29 13:48:36 INBOUND deposit.no_supply POST /hooks deposit.no_supply
reason=deposit.no_supply ref=DE280826-67-128
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14D5TAP2P9R7NHFJ928SF0B",
    "x-p2p-event-type": "deposit.no_supply",
    "x-p2p-timestamp": "1788011316",
    "x-p2p-signature": "sha256=84b54352b929f64d7744c12a0776ff24e6089ca8c0182e32c194bda36e017df3"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "no_supply",
      "metadata": null,
      "username": "test1",
      "agent_ref": "DEP-20260828-AE9ZKU",
      "order_ref": "DE280826-67-128",
      "rate_used": 1,
      "created_at": "2026-08-28T14:42:24.000+00:00",
      "expires_at": "2026-08-28T15:12:24.000+00:00",
      "requested_amount": 30,
      "search_deadline_at": "2026-08-28T14:42:54.000+00:00"
    },
    "event_id": "01M14D5TAP2P9R7NHFJ928SF0B",
    "event_type": "deposit.no_supply",
    "settlement": {
      "reason": "no_supply_before_search_deadline"
    },
    "occurred_at": "2026-08-28T14:42:56.982Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14D5TAP2P9R7NHFJ928SF0B"}
2026-08-29 13:48:36 INBOUND deposit.no_supply POST /hooks deposit.no_supply
reason=deposit.no_supply ref=DE280826-57-127
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M14D32DY1158R4RW4K7CBCK8",
    "x-p2p-event-type": "deposit.no_supply",
    "x-p2p-timestamp": "1788011316",
    "x-p2p-signature": "sha256=4424d764a0215ef3caf8b2d1e126b77ac888f9611fe5e26eb735a409cf7ce877"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "no_supply",
      "metadata": null,
      "username": "somchai01",
      "agent_ref": "DEP-20260828-XF9DRI",
      "order_ref": "DE280826-57-127",
      "rate_used": 1,
      "created_at": "2026-08-28T14:40:56.000+00:00",
      "expires_at": "2026-08-28T15:10:56.000+00:00",
      "requested_amount": 100,
      "search_deadline_at": "2026-08-28T14:41:26.000+00:00"
    },
    "event_id": "01M14D32DY1158R4RW4K7CBCK8",
    "event_type": "deposit.no_supply",
    "settlement": {
      "reason": "no_supply_before_search_deadline"
    },
    "occurred_at": "2026-08-28T14:41:26.974Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M14D32DY1158R4RW4K7CBCK8"}
2026-08-29 13:45:31 INBOUND withdraw.cancelled POST /hooks withdraw.cancelled
reason=withdraw.cancelled ref=WD290826-58-67
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16W9BWP090V6RGZ62MY0B48",
    "x-p2p-event-type": "withdraw.cancelled",
    "x-p2p-timestamp": "1788011131",
    "x-p2p-signature": "sha256=d48c0cab9f4109f7f29faffcfa9804ac6875cf09e1f35e7286b716d62b34413f"
  },
  "body": {
    "order": {
      "kind": "withdraw",
      "status": "expired",
      "metadata": null,
      "username": "somsri02",
      "agent_ref": "WDR-20260829-D9OD5N",
      "order_ref": "WD290826-58-67",
      "rate_used": 1,
      "baht_total": 10,
      "created_at": "2026-08-29T13:30:30.000+00:00",
      "expires_at": "2026-08-29T13:45:30.000+00:00",
      "baht_locked": 0,
      "credit_amount": 10,
      "filled_amount": 0,
      "baht_remaining": 10,
      "requested_amount": 10
    },
    "event_id": "01M16W9BWP090V6RGZ62MY0B48",
    "event_type": "withdraw.cancelled",
    "settlement": {
      "reason": "no_buyer_before_expiry",
      "expired_at": "2026-08-29T13:45:30.000+00:00",
      "filled_amount": 0,
      "returned_amount": 10
    },
    "occurred_at": "2026-08-29T13:45:30.774Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16W9BWP090V6RGZ62MY0B48"}
2026-08-29 13:36:02 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE290826-57-139
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16VQZ7599FCVS1F8B0285EW",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788010561",
    "x-p2p-signature": "sha256=afdb7cab8d4ed00d006344d1b281951f62855066db533347f00635c8b2684fca"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "somchai01",
      "agent_ref": "DEP-20260829-WIKHQ3",
      "order_ref": "DE290826-57-139",
      "rate_used": 1,
      "created_at": "2026-08-29T13:30:56.000+00:00",
      "expires_at": "2026-08-29T14:00:56.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-29T13:31:26.000+00:00"
    },
    "event_id": "01M16VQZ7599FCVS1F8B0285EW",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-29T13:35:56.000+00:00",
      "matched_amount": 10,
      "returned_amount": 10
    },
    "occurred_at": "2026-08-29T13:36:00.740Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16VQZ7599FCVS1F8B0285EW"}
2026-08-29 13:34:52 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE290826-65-138
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16VNTVFYMG9KERF2ZRMSNS3",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788010491",
    "x-p2p-signature": "sha256=5b7c3eeed4b4ea198d483e2c7cd94ff7747c8445d0a242ad8bb2486a9e11b44b"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-VY03I8",
      "order_ref": "DE290826-65-138",
      "rate_used": 1,
      "created_at": "2026-08-29T13:29:43.000+00:00",
      "expires_at": "2026-08-29T13:59:43.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-29T13:30:13.000+00:00"
    },
    "event_id": "01M16VNTVFYMG9KERF2ZRMSNS3",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-29T13:34:43.000+00:00",
      "matched_amount": 10,
      "returned_amount": 10
    },
    "occurred_at": "2026-08-29T13:34:50.734Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16VNTVFYMG9KERF2ZRMSNS3"}
2026-08-29 13:30:57 INBOUND withdraw.matched POST /hooks withdraw.matched
reason=withdraw.matched ref=WD290826-58-67
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16VENSW1RKKWNN2BNQTVWKA",
    "x-p2p-event-type": "withdraw.matched",
    "x-p2p-timestamp": "1788010257",
    "x-p2p-signature": "sha256=d6d0e9a91c7226de79aca7db74c25db6ea97d4b14558672c2cb3361608e710a8"
  },
  "body": {
    "order": {
      "kind": "withdraw",
      "status": "open",
      "metadata": null,
      "username": "somsri02",
      "agent_ref": "WDR-20260829-D9OD5N",
      "order_ref": "WD290826-58-67",
      "rate_used": 1,
      "baht_total": 10,
      "created_at": "2026-08-29T13:30:30.000+00:00",
      "expires_at": "2026-08-29T13:45:30.000+00:00",
      "baht_locked": 10,
      "credit_amount": 10,
      "filled_amount": 0,
      "baht_remaining": 10,
      "requested_amount": 10
    },
    "event_id": "01M16VENSW1RKKWNN2BNQTVWKA",
    "event_type": "withdraw.matched",
    "settlement": {
      "match_id": 84,
      "expected_amount": 10,
      "lock_expires_at": "2026-08-29T13:35:56.116Z"
    },
    "occurred_at": "2026-08-29T13:30:56.182Z",
    "counterparty": {
      "username": "somchai01",
      "order_ref": "DE290826-57-139",
      "remaining_after": 0
    },
    "payee_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "B",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "B",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16VENSW1RKKWNN2BNQTVWKA"}
2026-08-29 13:30:57 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE290826-57-139
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16VENSP1KQ1EH2CG6M8K5KW",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788010256",
    "x-p2p-signature": "sha256=73a6841302082dad2ae6edd1e49be89103e848fb2bb7937dc4d4c20b79761051"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "somchai01",
      "agent_ref": "DEP-20260829-WIKHQ3",
      "order_ref": "DE290826-57-139",
      "rate_used": 1,
      "created_at": "2026-08-29T13:30:56.000+00:00",
      "expires_at": "2026-08-29T14:00:56.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-29T13:31:26.000+00:00"
    },
    "event_id": "01M16VENSP1KQ1EH2CG6M8K5KW",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 84,
      "expected_amount": 10,
      "lock_expires_at": "2026-08-29T13:35:56.116Z"
    },
    "occurred_at": "2026-08-29T13:30:56.182Z",
    "counterparty": {
      "username": "somsri02",
      "order_ref": "WD290826-58-67",
      "remaining_after": 10
    },
    "payee_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "B",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "B",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16VENSP1KQ1EH2CG6M8K5KW"}
2026-08-29 13:30:56 OUTBOUND POST /api/v1/orders/deposit 201 {"success":true,"data":{"order_ref":"DE290826-57-139","kind":"deposit","status":"awaiting_slip","amount":10,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/917b56f13a98864cde275de40d91a8ad1be (348ms)
2026-08-29 13:30:30 OUTBOUND POST /api/v1/orders/withdraw 201 {"success":true,"data":{"order_ref":"WD290826-58-67","kind":"withdraw","status":"open","credit_amount":10,"baht_total":10,"baht_remaining":10,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/6 (352ms)
2026-08-29 13:29:46 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE290826-65-138
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16VCET5R2GY730KJS4K9XCB",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788010186",
    "x-p2p-signature": "sha256=4f21fffc42372d413049d73ec62ce12ba1ee3a031ab1b5aea6850d86d5c2177c"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-VY03I8",
      "order_ref": "DE290826-65-138",
      "rate_used": 1,
      "created_at": "2026-08-29T13:29:43.000+00:00",
      "expires_at": "2026-08-29T13:59:43.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-29T13:30:13.000+00:00"
    },
    "event_id": "01M16VCET5R2GY730KJS4K9XCB",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 83,
      "expected_amount": 10,
      "lock_expires_at": "2026-08-29T13:34:43.473Z"
    },
    "occurred_at": "2026-08-29T13:29:43.492Z",
    "counterparty": {
      "username": "pool",
      "order_ref": "WD290826-69-64",
      "remaining_after": 10000
    },
    "payee_account": {
      "bank_code": "004",
      "bank_short": "KBANK",
      "account_name": "บัญชีกลางระบบ (ทดสอบ)",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx9999"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "B",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16VCET5R2GY730KJS4K9XCB"}
2026-08-29 13:29:43 OUTBOUND POST /api/v1/orders/deposit 201 {"success":true,"data":{"order_ref":"DE290826-65-138","kind":"deposit","status":"awaiting_slip","amount":10,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/b08c410b82aedee8cc9e698d7f46e8bcbe7 (816ms)
2026-08-29 13:29:07 OUTBOUND POST /api/v1/orders/deposit 422 {"success":false,"error":{"code":"INVALID_BANK_ACCOUNT","message":"Bank account is invalid","details":{"account_no":"malformed"}}} (375ms)
2026-08-29 13:25:22 INBOUND withdraw.cancelled POST /hooks withdraw.cancelled
reason=withdraw.cancelled ref=WD290826-58-66
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16V4E4TBMYYXFGZP15EDM30",
    "x-p2p-event-type": "withdraw.cancelled",
    "x-p2p-timestamp": "1788009921",
    "x-p2p-signature": "sha256=a672b2b5eab7fa7cb415db6239177c0eead1848e8c958b158e16ff66506c4815"
  },
  "body": {
    "order": {
      "kind": "withdraw",
      "status": "expired",
      "metadata": null,
      "username": "somsri02",
      "agent_ref": "WDR-20260829-KHNMPC",
      "order_ref": "WD290826-58-66",
      "rate_used": 1,
      "baht_total": 100,
      "created_at": "2026-08-29T13:10:20.000+00:00",
      "expires_at": "2026-08-29T13:25:20.000+00:00",
      "baht_locked": 0,
      "credit_amount": 100,
      "filled_amount": 0,
      "baht_remaining": 100,
      "requested_amount": 100
    },
    "event_id": "01M16V4E4TBMYYXFGZP15EDM30",
    "event_type": "withdraw.cancelled",
    "settlement": {
      "reason": "no_buyer_before_expiry",
      "expired_at": "2026-08-29T13:25:20.000+00:00",
      "filled_amount": 0,
      "returned_amount": 100
    },
    "occurred_at": "2026-08-29T13:25:20.665Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16V4E4TBMYYXFGZP15EDM30"}
2026-08-29 13:16:41 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE290826-65-137
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16TMJ8XWZ333VVKX30TVAXK",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788009401",
    "x-p2p-signature": "sha256=069994d4bee7d13fa88f4823a347817d5ef7b3f6aad02fac1558e7b61d9911c3"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-BN8SE6",
      "order_ref": "DE290826-65-137",
      "rate_used": 1,
      "created_at": "2026-08-29T13:11:33.000+00:00",
      "expires_at": "2026-08-29T13:41:33.000+00:00",
      "requested_amount": 100,
      "search_deadline_at": "2026-08-29T13:12:03.000+00:00"
    },
    "event_id": "01M16TMJ8XWZ333VVKX30TVAXK",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-29T13:16:33.000+00:00",
      "matched_amount": 100,
      "returned_amount": 100
    },
    "occurred_at": "2026-08-29T13:16:40.605Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16TMJ8XWZ333VVKX30TVAXK"}
2026-08-29 13:16:21 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE290826-65-136
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16TKYRM83PGDSPKV1TBKGGK",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788009381",
    "x-p2p-signature": "sha256=ccbb7253cce8e3d7d6cad03f74dea9a14c6b9744f609d39eaba30bb6a30a6723"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-2W3ZEL",
      "order_ref": "DE290826-65-136",
      "rate_used": 1,
      "created_at": "2026-08-29T13:11:14.000+00:00",
      "expires_at": "2026-08-29T13:41:14.000+00:00",
      "requested_amount": 120,
      "search_deadline_at": "2026-08-29T13:11:44.000+00:00"
    },
    "event_id": "01M16TKYRM83PGDSPKV1TBKGGK",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-29T13:16:14.000+00:00",
      "matched_amount": 120,
      "returned_amount": 120
    },
    "occurred_at": "2026-08-29T13:16:20.628Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16TKYRM83PGDSPKV1TBKGGK"}
2026-08-29 13:15:31 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE290826-65-135
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16TJDXCM62AYCFSH1HE5EAY",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788009331",
    "x-p2p-signature": "sha256=1c970d40bc24dfc62fd019e7a2e212e5e41900128478bc901c3f539291b160de"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-LWYKLB",
      "order_ref": "DE290826-65-135",
      "rate_used": 1,
      "created_at": "2026-08-29T13:10:30.000+00:00",
      "expires_at": "2026-08-29T13:40:30.000+00:00",
      "requested_amount": 20,
      "search_deadline_at": "2026-08-29T13:11:00.000+00:00"
    },
    "event_id": "01M16TJDXCM62AYCFSH1HE5EAY",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-29T13:15:30.000+00:00",
      "matched_amount": 20,
      "returned_amount": 20
    },
    "occurred_at": "2026-08-29T13:15:30.604Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16TJDXCM62AYCFSH1HE5EAY"}
2026-08-29 13:11:41 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE290826-65-134
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16TBD9MTT05RBH262NRZQ7J",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788009101",
    "x-p2p-signature": "sha256=789703e4ff827c6fd2acb5087034b60edd4b9e8327884b7ddcaed0e52625e24d"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-OW4HUN",
      "order_ref": "DE290826-65-134",
      "rate_used": 1,
      "created_at": "2026-08-29T13:06:37.000+00:00",
      "expires_at": "2026-08-29T13:36:37.000+00:00",
      "requested_amount": 510,
      "search_deadline_at": "2026-08-29T13:07:07.000+00:00"
    },
    "event_id": "01M16TBD9MTT05RBH262NRZQ7J",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-29T13:11:37.000+00:00",
      "matched_amount": 510,
      "returned_amount": 510
    },
    "occurred_at": "2026-08-29T13:11:40.596Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16TBD9MTT05RBH262NRZQ7J"}
2026-08-29 13:11:36 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE290826-65-137
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16TB6CA0FVY5452A7A26T1V",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788009096",
    "x-p2p-signature": "sha256=0bbbb5f65539fa80852c8e8b6697b003f1b268c34e327e232f399d98c34c9230"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-BN8SE6",
      "order_ref": "DE290826-65-137",
      "rate_used": 1,
      "created_at": "2026-08-29T13:11:33.000+00:00",
      "expires_at": "2026-08-29T13:41:33.000+00:00",
      "requested_amount": 100,
      "search_deadline_at": "2026-08-29T13:12:03.000+00:00"
    },
    "event_id": "01M16TB6CA0FVY5452A7A26T1V",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 82,
      "expected_amount": 100,
      "lock_expires_at": "2026-08-29T13:16:33.495Z"
    },
    "occurred_at": "2026-08-29T13:11:33.514Z",
    "counterparty": {
      "username": "pool",
      "order_ref": "WD290826-69-64",
      "remaining_after": 10000
    },
    "payee_account": {
      "bank_code": "004",
      "bank_short": "KBANK",
      "account_name": "บัญชีกลางระบบ (ทดสอบ)",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx9999"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16TB6CA0FVY5452A7A26T1V"}
2026-08-29 13:11:33 OUTBOUND POST /api/v1/orders/deposit 201 {"success":true,"data":{"order_ref":"DE290826-65-137","kind":"deposit","status":"awaiting_slip","amount":100,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/1234bf194d1e4793c828dbb2d105279616 (330ms)
2026-08-29 13:11:21 INBOUND deposit.cancelled POST /hooks deposit.cancelled
reason=deposit.cancelled ref=DE290826-65-133
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16TASRPRKTPJEGZ6Q2YSB1R",
    "x-p2p-event-type": "deposit.cancelled",
    "x-p2p-timestamp": "1788009081",
    "x-p2p-signature": "sha256=19eea78d8ee61b574ac6309b8fc102b1a2ca481572c5ae79efeca463421fd1c6"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "expired",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-DQXU50",
      "order_ref": "DE290826-65-133",
      "rate_used": 1,
      "created_at": "2026-08-29T13:06:13.000+00:00",
      "expires_at": "2026-08-29T13:36:13.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-29T13:06:43.000+00:00"
    },
    "event_id": "01M16TASRPRKTPJEGZ6Q2YSB1R",
    "event_type": "deposit.cancelled",
    "settlement": {
      "reason": "lock_expired_without_slip",
      "expired_at": "2026-08-29T13:11:13.000+00:00",
      "matched_amount": 10,
      "returned_amount": 10
    },
    "occurred_at": "2026-08-29T13:11:20.597Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16TASRPRKTPJEGZ6Q2YSB1R"}
2026-08-29 13:11:16 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE290826-65-136
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16TAKDW411WE2SAVQYKFJKA",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788009076",
    "x-p2p-signature": "sha256=90dc0887170d3e47964b53c3762ff225373e53efc82c996df987c8e9a6a0ac4a"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-2W3ZEL",
      "order_ref": "DE290826-65-136",
      "rate_used": 1,
      "created_at": "2026-08-29T13:11:14.000+00:00",
      "expires_at": "2026-08-29T13:41:14.000+00:00",
      "requested_amount": 120,
      "search_deadline_at": "2026-08-29T13:11:44.000+00:00"
    },
    "event_id": "01M16TAKDW411WE2SAVQYKFJKA",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 81,
      "expected_amount": 120,
      "lock_expires_at": "2026-08-29T13:16:14.083Z"
    },
    "occurred_at": "2026-08-29T13:11:14.107Z",
    "counterparty": {
      "username": "pool",
      "order_ref": "WD290826-69-64",
      "remaining_after": 10000
    },
    "payee_account": {
      "bank_code": "004",
      "bank_short": "KBANK",
      "account_name": "บัญชีกลางระบบ (ทดสอบ)",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx9999"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16TAKDW411WE2SAVQYKFJKA"}
2026-08-29 13:11:14 OUTBOUND POST /api/v1/orders/deposit 201 {"success":true,"data":{"order_ref":"DE290826-65-136","kind":"deposit","status":"awaiting_slip","amount":120,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/3249f7cb38d8ea5d3f5dc3bf1c0e0508c0 (542ms)
2026-08-29 13:10:31 INBOUND withdraw.matched POST /hooks withdraw.matched
reason=withdraw.matched ref=WD290826-58-66
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16T997C5TV5SAWEVSJJRESW",
    "x-p2p-event-type": "withdraw.matched",
    "x-p2p-timestamp": "1788009031",
    "x-p2p-signature": "sha256=ac45360e01e5e69dcf29e9e2f67704521ae34e753d951be160ade1c477723573"
  },
  "body": {
    "order": {
      "kind": "withdraw",
      "status": "open",
      "metadata": null,
      "username": "somsri02",
      "agent_ref": "WDR-20260829-KHNMPC",
      "order_ref": "WD290826-58-66",
      "rate_used": 1,
      "baht_total": 100,
      "created_at": "2026-08-29T13:10:20.000+00:00",
      "expires_at": "2026-08-29T13:25:20.000+00:00",
      "baht_locked": 20,
      "credit_amount": 100,
      "filled_amount": 0,
      "baht_remaining": 100,
      "requested_amount": 100
    },
    "event_id": "01M16T997C5TV5SAWEVSJJRESW",
    "event_type": "withdraw.matched",
    "settlement": {
      "match_id": 80,
      "expected_amount": 20,
      "lock_expires_at": "2026-08-29T13:15:30.821Z"
    },
    "occurred_at": "2026-08-29T13:10:30.887Z",
    "counterparty": {
      "username": "malee99",
      "order_ref": "DE290826-65-135",
      "remaining_after": 80
    },
    "payee_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16T997C5TV5SAWEVSJJRESW"}
2026-08-29 13:10:31 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE290826-65-135
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16T997786CY1GABZ8YB8EH6",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788009031",
    "x-p2p-signature": "sha256=ed1ecfe6b7e628417331e269fc6f60ba854cb50e0f3b2612771c2a10cdfd2da8"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-LWYKLB",
      "order_ref": "DE290826-65-135",
      "rate_used": 1,
      "created_at": "2026-08-29T13:10:30.000+00:00",
      "expires_at": "2026-08-29T13:40:30.000+00:00",
      "requested_amount": 20,
      "search_deadline_at": "2026-08-29T13:11:00.000+00:00"
    },
    "event_id": "01M16T997786CY1GABZ8YB8EH6",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 80,
      "expected_amount": 20,
      "lock_expires_at": "2026-08-29T13:15:30.821Z"
    },
    "occurred_at": "2026-08-29T13:10:30.887Z",
    "counterparty": {
      "username": "somsri02",
      "order_ref": "WD290826-58-66",
      "remaining_after": 100
    },
    "payee_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16T997786CY1GABZ8YB8EH6"}
2026-08-29 13:10:30 OUTBOUND POST /api/v1/orders/deposit 201 {"success":true,"data":{"order_ref":"DE290826-65-135","kind":"deposit","status":"awaiting_slip","amount":20,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/3c582263bd17cd8ed17875a9c48a8328ebb (406ms)
2026-08-29 13:10:20 OUTBOUND POST /api/v1/orders/withdraw 201 {"success":true,"data":{"order_ref":"WD290826-58-66","kind":"withdraw","status":"open","credit_amount":100,"baht_total":100,"baht_remaining":100,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/ (472ms)
2026-08-29 13:06:41 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE290826-65-134
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16T25QY784WSXMH7503GJ1K",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788008801",
    "x-p2p-signature": "sha256=8c2fd983d8756f60fa15b8949e1d38841ca17038d8f3e3a8011d07ce3a22c47b"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-OW4HUN",
      "order_ref": "DE290826-65-134",
      "rate_used": 1,
      "created_at": "2026-08-29T13:06:37.000+00:00",
      "expires_at": "2026-08-29T13:36:37.000+00:00",
      "requested_amount": 510,
      "search_deadline_at": "2026-08-29T13:07:07.000+00:00"
    },
    "event_id": "01M16T25QY784WSXMH7503GJ1K",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 79,
      "expected_amount": 510,
      "lock_expires_at": "2026-08-29T13:11:37.924Z"
    },
    "occurred_at": "2026-08-29T13:06:37.949Z",
    "counterparty": {
      "username": "pool",
      "order_ref": "WD290826-69-64",
      "remaining_after": 10000
    },
    "payee_account": {
      "bank_code": "004",
      "bank_short": "KBANK",
      "account_name": "บัญชีกลางระบบ (ทดสอบ)",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx9999"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16T25QY784WSXMH7503GJ1K"}
2026-08-29 13:06:37 OUTBOUND POST /api/v1/orders/deposit 201 {"success":true,"data":{"order_ref":"DE290826-65-134","kind":"deposit","status":"awaiting_slip","amount":510,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/7281fc86f0ad1a5a4665a6c099362cd428 (503ms)
2026-08-29 13:06:31 INBOUND withdraw.cancelled POST /hooks withdraw.cancelled
reason=withdraw.cancelled ref=WD290826-57-65
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16T1YHNMRNCN5VX2D41Q2KC",
    "x-p2p-event-type": "withdraw.cancelled",
    "x-p2p-timestamp": "1788008791",
    "x-p2p-signature": "sha256=f20d098084a1a831fdd91eea79716f310956fdd63cda129bd897ac73dfa914b2"
  },
  "body": {
    "order": {
      "kind": "withdraw",
      "status": "expired",
      "metadata": null,
      "username": "somchai01",
      "agent_ref": "WDR-20260829-9D1MYB",
      "order_ref": "WD290826-57-65",
      "rate_used": 1,
      "baht_total": 500,
      "created_at": "2026-08-29T12:51:21.000+00:00",
      "expires_at": "2026-08-29T13:06:21.000+00:00",
      "baht_locked": 0,
      "credit_amount": 500,
      "filled_amount": 0,
      "baht_remaining": 500,
      "requested_amount": 500
    },
    "event_id": "01M16T1YHNMRNCN5VX2D41Q2KC",
    "event_type": "withdraw.cancelled",
    "settlement": {
      "reason": "no_buyer_before_expiry",
      "expired_at": "2026-08-29T13:06:21.000+00:00",
      "filled_amount": 0,
      "returned_amount": 500
    },
    "occurred_at": "2026-08-29T13:06:30.579Z",
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16T1YHNMRNCN5VX2D41Q2KC"}
2026-08-29 13:06:16 INBOUND deposit.matched POST /hooks deposit.matched
reason=deposit.matched ref=DE290826-65-133
ดู payload
{
  "headers": {
    "x-p2p-event-id": "01M16T1E7MRSPEN25JYSC6W8P2",
    "x-p2p-event-type": "deposit.matched",
    "x-p2p-timestamp": "1788008776",
    "x-p2p-signature": "sha256=8436956e9d0990846ca0055dcb2c30c3a89d78b57edb29f564acee27838aa764"
  },
  "body": {
    "order": {
      "kind": "deposit",
      "status": "awaiting_slip",
      "metadata": null,
      "username": "malee99",
      "agent_ref": "DEP-20260829-DQXU50",
      "order_ref": "DE290826-65-133",
      "rate_used": 1,
      "created_at": "2026-08-29T13:06:13.000+00:00",
      "expires_at": "2026-08-29T13:36:13.000+00:00",
      "requested_amount": 10,
      "search_deadline_at": "2026-08-29T13:06:43.000+00:00"
    },
    "event_id": "01M16T1E7MRSPEN25JYSC6W8P2",
    "event_type": "deposit.matched",
    "settlement": {
      "match_id": 78,
      "expected_amount": 10,
      "lock_expires_at": "2026-08-29T13:11:13.839Z"
    },
    "occurred_at": "2026-08-29T13:06:13.874Z",
    "counterparty": {
      "username": "pool",
      "order_ref": "WD290826-69-64",
      "remaining_after": 10000
    },
    "payee_account": {
      "bank_code": "004",
      "bank_short": "KBANK",
      "account_name": "บัญชีกลางระบบ (ทดสอบ)",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx9999"
    },
    "payer_account": {
      "bank_code": "014",
      "bank_short": "SCB",
      "account_name": "A",
      "account_type": "bank_account",
      "promptpay_type": null,
      "account_no_masked": "xxxxxx1111"
    },
    "agent": {
      "id": 1,
      "code": "AG001"
    }
  }
}
✅ valid 200 {"success":true,"received_event_id":"01M16T1E7MRSPEN25JYSC6W8P2"}
2026-08-29 13:06:14 OUTBOUND POST /api/v1/orders/deposit 201 {"success":true,"data":{"order_ref":"DE290826-65-133","kind":"deposit","status":"awaiting_slip","amount":10,"deeplink_url":"https://p2p-payment.163.47.8.24.nip.io/o/f53ca9971a0077812bed58133e760c37fc0 (1607ms)