Webhooks

Invunion POSTs a signed JSON envelope to your HTTPS URL when a subscribed event occurs. Choose event types per destination in Developer → Webhooks.

What you will find here

An outbound webhook is a tenant-scoped HTTPS POST. Configure destinations in Developer → Webhooks. Each tenant may have up to five destinations.

Events

A destination receives only the types you select.

Transactions

  • transaction.created

Invoices

  • invoice.created
  • invoice.updated
  • invoice.paid
  • invoice.partially_paid

Matching

  • match.created
  • match.suggested
  • match.confirmed
  • match.rejected
  • match.cancelled

Banking

  • bank.connected
  • bank.disconnected

Synchronization

  • sync.completed
  • sync.failed

Example payload

Invunion POSTs this envelope. type is the event name. data is the object for that event.

Transaction created

200

{
  "id": "9d7deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
  "type": "transaction.created",
  "created_at": "2026-09-12T08:12:00.000Z",
  "data": {
    "transaction": {
      "id": "2d0e6679-7425-40de-944b-e07fc1f90ae7",
      "amount": 1000,
      "currency": "EUR",
      "direction": "in",
      "remainingAmount": 1000,
      "status": "unmatched",
      "source": {
        "type": "bank",
        "id": "6b4deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
      },
      "accountId": "0a8deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
      "counterpartyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "transactionDate": "2026-09-12T00:00:00.000Z"
    }
  }
}

Invoice paid

200

{
  "id": "7b5deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
  "type": "invoice.paid",
  "created_at": "2026-09-12T09:00:03.000Z",
  "data": {
    "invoice": {
      "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
      "number": "INV-2026-0042",
      "total": 12000,
      "settled": 12000,
      "open": 0,
      "recovery": 100,
      "status": "paid"
    }
  }
}

Match created

200

{
  "id": "8c6deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
  "type": "match.created",
  "created_at": "2026-09-12T09:00:04.000Z",
  "data": {
    "match": {
      "id": "1c9e6679-7425-40de-944b-e07fc1f90ae7",
      "status": "active",
      "type": "manual",
      "isAutomatic": false,
      "isAiScored": false,
      "confidence": {
        "score": 100,
        "band": "high"
      },
      "reasons": [],
      "matchedAmount": 1000,
      "source": {
        "transactionType": "bank",
        "matchMethod": "manual",
        "transactionId": "2d0e6679-7425-40de-944b-e07fc1f90ae7",
        "pspEventId": null
      }
    },
    "invoice": {
      "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
      "number": "INV-2026-0042",
      "total": 12000,
      "settled": 1000,
      "open": 11000,
      "recovery": 8.33,
      "status": "partial"
    },
    "transaction": {
      "id": "2d0e6679-7425-40de-944b-e07fc1f90ae7",
      "amount": 1000,
      "currency": "EUR",
      "remaining": 0,
      "status": "matched"
    }
  }
}

Match suggested

200

{
  "id": "ad8deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
  "type": "match.suggested",
  "created_at": "2026-09-12T09:00:05.000Z",
  "data": {
    "match": {
      "id": "9fbe3506-5c28-41a3-ec25-32619d4fb7e5",
      "status": "pending_review",
      "type": "rule",
      "isAutomatic": true,
      "isAiScored": false,
      "confidence": {
        "score": 72,
        "band": "medium"
      },
      "reasons": [
        "amount_match",
        "date_proximity"
      ],
      "matchedAmount": 1000,
      "source": {
        "transactionType": "bank",
        "matchMethod": "rule",
        "transactionId": "2d0e6679-7425-40de-944b-e07fc1f90ae7",
        "pspEventId": null
      }
    },
    "invoice": {
      "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
      "number": "INV-2026-0042",
      "total": 12000,
      "settled": 0,
      "open": 12000,
      "recovery": 0,
      "status": "unpaid"
    },
    "transaction": {
      "id": "2d0e6679-7425-40de-944b-e07fc1f90ae7",
      "amount": 1000,
      "currency": "EUR",
      "remaining": 1000,
      "status": "unmatched"
    }
  }
}

Each request also includes x-invunion-event, x-invunion-event-id, x-invunion-delivery-id, x-invunion-attempt, and x-invunion-signature (t=UNIX_TIMESTAMP,v1=HEX_DIGEST). The signed body is authoritative for the event id and type.