{
"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/terminal-payments",
"created_at": "2026-04-28T13:02:32Z",
"data": {
"event": "authorized",
"id": "019dd42e-87cf-7072-863e-7fef8714c2c0",
"terminal_id": "019d7188-1476-7a74-a7da-01c57793eb93",
"poi_id": "S1F2-000158244717080",
"amount": {
"value": "20.00",
"currency": "EUR"
},
"authorized_amount": {
"value": "21.00",
"currency": "EUR"
},
"tip_amount": {
"value": "1.00",
"currency": "EUR"
},
"payment_method": "cartebancaire",
"card_summary": "2120",
"metadata": "{\"order_id\": \"zelty-order-456\"}",
"created_at": "2026-04-28T13:01:52Z",
"authorized_at": "2026-04-28T13:02:00Z"
}
}
{
"id": "123e4567-e89b-12d3-a456-426614174001",
"subscription_id": "123e4567-e89b-12d3-a456-426614174000",
"organization_id": "123e4567-e89b-12d3-a456-426614174000",
"membership_id": "123e4567-e89b-12d3-a456-426614174000",
"type": "v1/terminal-payments",
"created_at": "2026-04-28T14:15:10Z",
"data": {
"event": "refused",
"id": "019dd501-a2b3-7c4d-8e5f-6a7b8c9d0e1f",
"terminal_id": "019d7188-1476-7a74-a7da-01c57793eb93",
"poi_id": "S1F2-000158244717080",
"amount": {
"value": "35.00",
"currency": "EUR"
},
"payment_method": "visa",
"card_summary": "1234",
"failure_reason": "214 Declined online",
"metadata": "{\"order_id\": \"zelty-order-457\"}",
"created_at": "2026-04-28T14:15:05Z"
}
}
Supported webhooks
v1/terminal-payments
OAuth scope: terminal.read
Webhook that delivers events related to terminal payments.
Supported events:
authorized— The payment was approved by the card issuer.refused— The payment was declined.
WEBHOOK
v1
/
terminal-payments
{
"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/terminal-payments",
"created_at": "2026-04-28T13:02:32Z",
"data": {
"event": "authorized",
"id": "019dd42e-87cf-7072-863e-7fef8714c2c0",
"terminal_id": "019d7188-1476-7a74-a7da-01c57793eb93",
"poi_id": "S1F2-000158244717080",
"amount": {
"value": "20.00",
"currency": "EUR"
},
"authorized_amount": {
"value": "21.00",
"currency": "EUR"
},
"tip_amount": {
"value": "1.00",
"currency": "EUR"
},
"payment_method": "cartebancaire",
"card_summary": "2120",
"metadata": "{\"order_id\": \"zelty-order-456\"}",
"created_at": "2026-04-28T13:01:52Z",
"authorized_at": "2026-04-28T13:02:00Z"
}
}
{
"id": "123e4567-e89b-12d3-a456-426614174001",
"subscription_id": "123e4567-e89b-12d3-a456-426614174000",
"organization_id": "123e4567-e89b-12d3-a456-426614174000",
"membership_id": "123e4567-e89b-12d3-a456-426614174000",
"type": "v1/terminal-payments",
"created_at": "2026-04-28T14:15:10Z",
"data": {
"event": "refused",
"id": "019dd501-a2b3-7c4d-8e5f-6a7b8c9d0e1f",
"terminal_id": "019d7188-1476-7a74-a7da-01c57793eb93",
"poi_id": "S1F2-000158244717080",
"amount": {
"value": "35.00",
"currency": "EUR"
},
"payment_method": "visa",
"card_summary": "1234",
"failure_reason": "214 Declined online",
"metadata": "{\"order_id\": \"zelty-order-457\"}",
"created_at": "2026-04-28T14:15:05Z"
}
}
This topic delivers events for POS terminal payment outcomes.
Events:
authorized— The payment was approved by the card issuer. Includesauthorized_amount(may differ from the requested amount if a tip was added),tip_amountif applicable,payment_method,card_summary, andauthorized_at.refused— The payment was declined. Includesfailure_reasonwith the decline code.
{
"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/terminal-payments",
"created_at": "2026-04-28T13:02:32Z",
"data": {
"event": "authorized",
"id": "019dd42e-87cf-7072-863e-7fef8714c2c0",
"terminal_id": "019d7188-1476-7a74-a7da-01c57793eb93",
"poi_id": "S1F2-000158244717080",
"amount": {
"value": "20.00",
"currency": "EUR"
},
"authorized_amount": {
"value": "21.00",
"currency": "EUR"
},
"tip_amount": {
"value": "1.00",
"currency": "EUR"
},
"payment_method": "cartebancaire",
"card_summary": "2120",
"metadata": "{\"order_id\": \"zelty-order-456\"}",
"created_at": "2026-04-28T13:01:52Z",
"authorized_at": "2026-04-28T13:02:00Z"
}
}
{
"id": "123e4567-e89b-12d3-a456-426614174001",
"subscription_id": "123e4567-e89b-12d3-a456-426614174000",
"organization_id": "123e4567-e89b-12d3-a456-426614174000",
"membership_id": "123e4567-e89b-12d3-a456-426614174000",
"type": "v1/terminal-payments",
"created_at": "2026-04-28T14:15:10Z",
"data": {
"event": "refused",
"id": "019dd501-a2b3-7c4d-8e5f-6a7b8c9d0e1f",
"terminal_id": "019d7188-1476-7a74-a7da-01c57793eb93",
"poi_id": "S1F2-000158244717080",
"amount": {
"value": "35.00",
"currency": "EUR"
},
"payment_method": "visa",
"card_summary": "1234",
"failure_reason": "214 Declined online",
"metadata": "{\"order_id\": \"zelty-order-457\"}",
"created_at": "2026-04-28T14:15:05Z"
}
}
Authorizations
The signature header follows the format t={timestamp},v1={signature}.
Verification steps:
- Extract the timestamp and signature from the signature header
- Reject the request if the timestamp is older than 5 minutes
- Recreate the signed payload: '{timestamp}.{raw_request_body}'
- Compute HMAC-SHA256 of the signed payload using your webhook secret as the key
- Compare the computed signature with the one in the header
Body
application/json
Unique identifier for this webhook event
Example:
"123e4567-e89b-12d3-a456-426614174000"
ID of the webhook subscription that received the event
Example:
"123e4567-e89b-12d3-a456-426614174000"
ID of the organization that owns the bank account
Example:
"123e4567-e89b-12d3-a456-426614174000"
ID of the membership associated with subscription
Example:
"123e4567-e89b-12d3-a456-426614174000"
Available options:
v1/transactions, v1/accounts, v1/organizations, v1/memberships, v1/consent-revocations, v1/cards, v1/payment-links, v1/payment-links-connections, v1/beneficiaries, v1/client-invoices, v1/terminal-payments, v1/clients, v1/products, v1/transfers, v1/recurring-transfers Example:
"v1/transactions"
Timestamp when the webhook event was created
Example:
"2025-01-24T10:55:00Z"
Show child attributes
Show child attributes
Response
200
Webhook received successfully
Was this page helpful?