Problem Symptoms
An attendee reports that they paid for the ticket, but:
- The registration status is "Awaiting payment"
- The ticket email has not arrived
- In the attendee list, the payment status is
pending
Most often, the cause is that the webhook from the payment gateway was not delivered or was not processed by tikento.
Step 1. Check the Webhook Delivery Log
tikento maintains a log of all incoming webhook requests:
- Open Settings → Payments.
- Select the gateway (YooKassa or Tochka).
- Go to the "Webhook log" tab.
The log displays:
- Request date and time
- Event type (
payment.succeeded,payment.canceled,refund.succeeded) - tikento's HTTP response code
- Request body (for diagnostics)
- Processing status (success / error)
Possible Results
| Situation | What It Means | What to Do |
|---|---|---|
| Webhook not in the log | Gateway did not send or could not deliver | Go to Step 2 |
Webhook present, code 200 | Processed successfully | Verify that the payment_id matches the problematic payment |
Webhook present, code 4xx | Validation error (invalid signature, unknown format) | Go to Step 4 |
Webhook present, code 5xx | tikento internal error | Go to Step 5 |
Step 2. Check Webhook Settings in the Gateway
Log in to the payment gateway's dashboard and verify:
YooKassa
- Open "Settings" → "HTTP notifications".
- Make sure the webhook URL matches:
https://app.tikento.com/webhooks/yookassa/{shopId} - Check that all required events are selected:
payment.succeededpayment.canceledrefund.succeeded
Tochka
- Open "Integration" → "Notifications".
- Make sure the webhook URL matches:
https://app.tikento.com/webhooks/tochka/{merchantId} - Check the event filters.
Common URL Errors
- Missing
https://(usinghttp://— gateways require HTTPS) - Trailing slash at the end of the URL
- Incorrect
shopIdormerchantIdin the path - URL from an old connection (if you reconnected the gateway)
Step 3. Check Webhook Endpoint Accessibility
If the URL is correct but the webhook is not being delivered, possible causes:
- Firewall or CDN is blocking incoming POST requests from the gateway
- Timeout: tikento did not respond within the allotted time (gateways typically wait 10-30 seconds)
- DNS issues: the domain does not resolve on the gateway's side
To verify, use a test webhook from the gateway's dashboard (if available) or request a resend.
Step 4. Validation Error (4xx)
If the webhook arrived but tikento returned a 4xx error:
| Code | Cause | Solution |
|---|---|---|
400 | Invalid request body | Check the notification format in the gateway. Make sure JSON format is selected, not XML |
401 | Invalid request signature | Make sure the secretKey in tikento is current. If you regenerated the key in the gateway, update it in tikento too |
404 | Incorrect webhook URL path | Check the URL — the shopId / merchantId may be incorrect |
409 | Duplicate webhook (already processed) | This is normal behavior — idempotency protection triggered. The payment has already been processed |
Step 5. Internal Error (5xx)
If the webhook was received but tikento returned 5xx — this is a temporary error on tikento's side. In most cases:
- The gateway will automatically retry delivery (see retry policy below).
- The issue is usually resolved on the retry.
- If the error persists — contact tikento support.
Retry Delivery Policy
| Gateway | Number of Attempts | Intervals |
|---|---|---|
| YooKassa | up to 10 | Exponential backoff: 1s, 5s, 30s, 2min, 10min, 30min, 1h, 3h, 6h, 12h |
| Tochka | up to 5 | Fixed interval: every 5 minutes |
If all attempts are exhausted, use manual retry.
Manual Retry and Confirmation
Manual Webhook Retry
In the webhook log, click "Retry" next to the failed entry. tikento will reprocess the webhook request body.
Manual Payment Confirmation
If the webhook cannot be restored, but you can see a successful payment in the gateway's dashboard:
- Open the event → "Attendees".
- Find the record with the stuck status.
- Click "Actions" → "Confirm payment manually".
- Specify a reason (for audit).
Manual confirmation updates the registration status and sends the attendee an email with the ticket.
Testing Webhooks
To ensure the webhook is working correctly, before or after setup:
Test Payment
- Create a test event with a paid ticket.
- Connect the gateway in test mode.
- Pay with a test card (
4111 1111 1111 1111). - Check the webhook log — an entry with code
200should appear. - Verify that the registration status updated to "Paid".
Test Webhook from the Gateway
Some gateways allow sending a test webhook manually:
- YooKassa: in the "HTTP notifications" section, click "Send test notification"
- Tochka: contact Tochka support to send a test notification
Prevention
To avoid webhook issues:
- When changing API keys in the gateway, immediately update them in tikento
- Do not delete or change the webhook URL unnecessarily
- Periodically check the webhook log for errors
- When reconnecting a gateway, always run a test payment