WEBHOOK
v1
/
transactions
{
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "subscription_id": "123e4567-e89b-12d3-a456-426614174000",
    "organization_id": "123e4567-e89b-12d3-a456-426614174000",
    "membership_id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "v1/transactions",
    "created_at": "2025-01-24T10:55:00Z",
    "data": {
        "event": "created",
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "transaction_id": "super-transaction-6576",
        "amount": 50.01,
        "currency": "EUR",
        "local_amount": 45.01,
        "local_currency": "USD",
        "side": "debit",
        "settled_balance": 100.02,
        "operation_type": "transfer",
        "status": "completed",
        "label": "ACME Corp",
        "clean_counterparty_name": "ACME Corp",
        "note": "Business lunch",
        "reference": "INV-1234",
        "settled_at": "2025-01-24T10:54:00Z",
        "emitted_at": "2025-01-24T10:54:00Z",
        "updated_at": "2025-01-24T10:55:00Z",
        "attachment_ids": [
            "attachment-1",
            "attachment-2"
        ],
        "subject_type": "Transfer",
        "bank_account_id": "123e4567-e89b-12d3-a456-426614174000",
        "transfer": {
            "counterparty_account_number": "123456789",
            "counterparty_account_number_format": "account_number",
            "counterparty_bank_identifier": "987654321",
            "counterparty_bank_identifier_format": "bic"
        }
    }
}
{
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "subscription_id": "123e4567-e89b-12d3-a456-426614174000",
    "organization_id": "123e4567-e89b-12d3-a456-426614174000",
    "membership_id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "v1/transactions",
    "created_at": "2025-01-24T10:55:00Z",
    "data": {
        "event": "created",
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "transaction_id": "super-transaction-6576",
        "amount": 50.01,
        "currency": "EUR",
        "local_amount": 45.01,
        "local_currency": "USD",
        "side": "debit",
        "settled_balance": 100.02,
        "operation_type": "transfer",
        "status": "completed",
        "label": "ACME Corp",
        "clean_counterparty_name": "ACME Corp",
        "note": "Business lunch",
        "reference": "INV-1234",
        "settled_at": "2025-01-24T10:54:00Z",
        "emitted_at": "2025-01-24T10:54:00Z",
        "updated_at": "2025-01-24T10:55:00Z",
        "attachment_ids": [
            "attachment-1",
            "attachment-2"
        ],
        "subject_type": "Transfer",
        "bank_account_id": "123e4567-e89b-12d3-a456-426614174000",
        "transfer": {
            "counterparty_account_number": "123456789",
            "counterparty_account_number_format": "account_number",
            "counterparty_bank_identifier": "987654321",
            "counterparty_bank_identifier_format": "bic"
        }
    }
}

Authorizations

X-Qonto-Signature
string
header
required

The signature header follows the format t={timestamp},v1={signature}.

Verification steps:

  1. Extract the timestamp and signature from the signature header
  2. Reject the request if the timestamp is older than 5 minutes
  3. Recreate the signed payload: '{timestamp}.{raw_request_body}'
  4. Compute HMAC-SHA256 of the signed payload using your webhook secret as the key
  5. Compare the computed signature with the one in the header

Body

application/json
id
string<uuid>
required

Unique identifier for this webhook event

Example:

"123e4567-e89b-12d3-a456-426614174000"

subscription_id
string<uuid>
required

ID of the webhook subscription that received the event

Example:

"123e4567-e89b-12d3-a456-426614174000"

organization_id
string<uuid>
required

ID of the organization that owns the bank account

Example:

"123e4567-e89b-12d3-a456-426614174000"

membership_id
string<uuid>
required

ID of the membership associated with subscription

Example:

"123e4567-e89b-12d3-a456-426614174000"

type
enum<string>
required
Available options:
v1/transactions,
v1/accounts,
v1/organizations,
v1/memberships,
v1/consent-revocations,
v1/cards
Example:

"v1/transactions"

created_at
string<date-time>
required

Timestamp when the webhook event was created

Example:

"2025-01-24T10:55:00Z"

data
object
required

Response

200

Webhook received successfully