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.00",
        "currency": "EUR",
        "local_amount": "45.00",
        "local_currency": "USD",
        "side": "debit",
        "settled_balance": "100.00",
        "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.00",
        "currency": "EUR",
        "local_amount": "45.00",
        "local_currency": "USD",
        "side": "debit",
        "settled_balance": "100.00",
        "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

Response

200

Webhook received successfully