Webhook Tester API

Tạo một URL riêng ghi lại mọi request HTTP gửi tới nó – method, header, query, body – rồi xem trực tiếp trên trình duyệt hoặc qua API.

GETPOSTDELETEPATCHhttps://apibox.io.vn/v1/webhooks

Webhook Tester cung cấp các endpoint tạm ("bin") để debug webhook và HTTP callback. POST /v1/webhooks tạo một bin và trả về URL nhận request https://apibox.io.vn/hook/<id> kèm link trang xem trực tiếp. Cấu hình Stripe, GitHub, cổng thanh toán hay dịch vụ của bạn gửi về URL đó: URL chấp nhận mọi method HTTP và mọi đường dẫn con, ghi lại method, path, query string, header, IP và quốc gia của bên gửi cùng body (tối đa 256 KB; body nhị phân được lưu dạng base64).

Xem các request đã bắt bằng GET /v1/webhooks/<id>/requests (mới nhất trước, limit 1–100, mặc định 20). Truyền since (ngày ISO hoặc Unix giây) để chỉ lấy request mới khi polling. GET /v1/webhooks liệt kê các bin đang hoạt động, PATCH /v1/webhooks/<id> đổi phản hồi mà URL nhận trả về (response_status, response_body, response_content_type, name) để giả lập lỗi và cơ chế retry, DELETE /v1/webhooks/<id>/requests xoá lịch sử và DELETE /v1/webhooks/<id> xoá bin.

Bin tạo bằng API key tồn tại 30 ngày. Mỗi bin giữ các request mới nhất theo gói – Free 50, Starter 500, Pro 2.000 – và bạn có tối đa 2, 10 hoặc 50 bin hoạt động với gói Free, Starter, Pro. URL nhận chấp nhận tối đa 60 request mỗi phút cho mỗi bin.

Tham số

TênVị tríKiểuBắt buộcMặc định
idpathstringkhôngID của bin cho /v1/webhooks/{id} (GET, PATCH, DELETE) và /v1/webhooks/{id}/requests[/{request_id}] (GET, DELETE).
namebodystringkhôngPOST / PATCH: tên gợi nhớ của bin (tối đa 100 ký tự).
response_statusbodynumberkhông200POST / PATCH: mã HTTP mà URL nhận trả về (100–599).
response_bodybodystringkhông{"ok":true}POST / PATCH: nội dung phản hồi (tối đa 10.000 ký tự).
response_content_typebodystringkhôngapplication/jsonPOST / PATCH: Content-Type của phản hồi.
limitquerynumberkhông20GET …/requests: số request trả về (1–100), mới nhất trước.
sincequerystringkhôngGET …/requests: chỉ lấy request nhận sau ngày ISO hoặc Unix timestamp (giây) này.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/webhooks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Stripe test","response_status":200,"response_body":"{\"received\":true}"}'

Kết quả trả về

{
  "id": "adovzlj3btginkapev4iir",
  "name": "Stripe test",
  "url": "https://apibox.io.vn/hook/adovzlj3btginkapev4iir",
  "viewer_url": "https://apibox.io.vn/tools/webhook-tester/#adovzlj3btginkapev4iir",
  "response": {
    "status": 200,
    "content_type": "application/json",
    "body": "{\"received\":true}"
  },
  "request_count": 0,
  "created_at": "2026-11-10T05:09:53.000Z",
  "expires_at": "2026-12-10T05:09:53.000Z"
}

Ứng dụng

  • Xem chính xác payload và header chữ ký mà nhà cung cấp webhook gửi
  • Debug callback (IPN) của cổng thanh toán trước khi deploy backend
  • Giả lập lỗi 500 hoặc phản hồi chậm để kiểm tra cơ chế retry
  • Kiểm tra trong test end-to-end rằng ứng dụng đã gọi đúng request HTTP

Hỏi đáp

Test webhook khi chưa có server public thế nào?

Tạo một bin (POST /v1/webhooks, hoặc dùng công cụ Webhook Tester online), dán URL https://apibox.io.vn/hook/<id> vào trang cấu hình của nhà cung cấp rồi kích hoạt một sự kiện. Request sẽ hiện trên trang xem chỉ sau vài giây.

Có đổi được phản hồi mà URL webhook trả về không?

Được. Gọi PATCH /v1/webhooks/<id> với response_status (100–599), response_body (tối đa 10.000 ký tự) và response_content_type. Mặc định là 200 với {"ok":true}.

Request đã bắt được lưu bao lâu?

Bin tạo qua API tồn tại 30 ngày và giữ 50 / 500 / 2.000 request mới nhất tuỳ gói (Free / Starter / Pro). Request cũ hơn được tự động xoá.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →