GoCardless webhook payload example (payment confirmed)

GoCardless · event: payments / confirmed · content type: application/json

This is a representative sample — fake IDs, real structure. To see a payload with your data, point the provider at a capture URL (button below).

See it live, not frozen

One click creates a free capture bin with this exact payload already in it — pretty-printed, headers inspectable, replayable to your own endpoint:

Then paste the bin's URL into GoCardless's webhook settings to capture a real delivery. No signup.

Headers

content-type: application/json
webhook-signature: 5b528dadeeaaa876142437628cda70d8afea0b4fdc915995b6452ee0b1eb86fb
origin: https://api.gocardless.com

Body

{
  "events": [
    {
      "id": "EV0123FN9GJ0Q2",
      "created_at": "2026-08-30T09:41:26.510Z",
      "resource_type": "payments",
      "action": "confirmed",
      "links": {
        "payment": "PM00A9V3N2KQ8D"
      },
      "details": {
        "origin": "gocardless",
        "cause": "payment_confirmed",
        "description": "Enough time has passed since the payment was submitted for the banks to return an error, so this payment is now confirmed."
      },
      "metadata": {}
    },
    {
      "id": "EV0123FN9H7T5X",
      "created_at": "2026-08-30T09:41:26.510Z",
      "resource_type": "payments",
      "action": "confirmed",
      "links": {
        "payment": "PM00A9V3P1XW2R"
      },
      "details": {
        "origin": "gocardless",
        "cause": "payment_confirmed",
        "description": "Enough time has passed since the payment was submitted for the banks to return an error, so this payment is now confirmed."
      },
      "metadata": {}
    }
  ],
  "meta": {
    "webhook_id": "WB0002ZKQW9GJF"
  }
}

Things that bite people

Send it yourself

Reproduce this delivery against any endpoint (your handler, a bin, staging):

$ curl -X POST https://your-endpoint.example/hook \
  -H 'content-type: application/json' \
  -H 'webhook-signature: 5b528dadeeaaa876142437628cda70d8afea0b4fdc915995b6452ee0b1eb86fb' \
  -H 'origin: https://api.gocardless.com' \
 -d '{
  "events": [
    {
      "id": "EV0123FN9GJ0Q2",
      "created_at": "2026-08-30T09:41:26.510Z",
      "resource_type": "payments",
      "action": "confirmed",
      "links": {
        "payment": "PM00A9V3N2KQ8D"
      },
      "details": {
        "origin": "gocardless",
        "cause": "payment_confirmed",
        "description": "Enough time has passed since the payment was submitted for the banks to return an error, so this payment is now confirmed."
      },
      "metadata": {}
    },
    {
      "id": "EV0123FN9H7T5X",
      "created_at": "2026-08-30T09:41:26.510Z",
      "resource_type": "payments",
      "action": "confirmed",
      "links": {
        "payment": "PM00A9V3P1XW2R"
      },
      "details": {
        "origin": "gocardless",
        "cause": "payment_confirmed",
        "description": "Enough time has passed since the payment was submitted for the banks to return an error, so this payment is now confirmed."
      },
      "metadata": {}
    }
  ],
  "meta": {
    "webhook_id": "WB0002ZKQW9GJF"
  }
}'

← All payload examples · Signature debugger · Docs