{"items":[{"type":"link","link":"https://developers.xsolla.com/#api","label":"Home page","labelTranslationKey":"sidebar.homePageLabel","icon":"/assets/sidebar-item-home.fd3d2b3c91f902fbc43a05c268a93377758b6172e032bbcd4cfb0211304ca738.9c1bb791.svg"},{"type":"link","label":"Webhooks","routeSlug":"/webhooks","link":"/webhooks/","items":[]},{"type":"link","label":"Overview ","routeSlug":"/webhooks/overview","link":"/webhooks/overview","items":[]},{"type":"group","label":"List of required webhooks ","routeSlug":"/webhooks/list-of-required-webhooks","link":"/webhooks/list-of-required-webhooks","items":[{"type":"link","label":"Store and Payments ","routeSlug":"/webhooks/store-and-payments","link":"/webhooks/store-and-payments","items":[]},{"type":"link","label":"Subscriptions ","routeSlug":"/webhooks/required-webhooks-subscriptions","link":"/webhooks/required-webhooks-subscriptions","items":[]}]},{"type":"group","label":"Set up webhooks in Publisher Account ","routeSlug":"/webhooks/set-up-webhooks-in-publisher-account","link":"/webhooks/set-up-webhooks-in-publisher-account","items":[{"type":"link","label":"General settings ","routeSlug":"/webhooks/general-settings","link":"/webhooks/general-settings","items":[]},{"type":"link","label":"Secret key rotation ","routeSlug":"/webhooks/secret-key-rotation","link":"/webhooks/secret-key-rotation","items":[]},{"type":"link","label":"Advanced settings ","routeSlug":"/webhooks/advanced-settings","link":"/webhooks/advanced-settings","items":[]}]},{"type":"group","label":"Test webhooks in Publisher Account ","routeSlug":"/webhooks/test-webhooks-in-publisher-account","link":"/webhooks/test-webhooks-in-publisher-account","items":[{"type":"link","label":"Payments and Store ","routeSlug":"/webhooks/payments-and-store","link":"/webhooks/payments-and-store","items":[]},{"type":"link","label":"Subscriptions ","routeSlug":"/webhooks/test-webhooks-subscriptions","link":"/webhooks/test-webhooks-subscriptions","items":[]}]},{"type":"group","label":"Webhook listener ","routeSlug":"/webhooks/webhook-listener","link":"/webhooks/webhook-listener","items":[{"type":"link","label":"Generation of signature ","routeSlug":"/webhooks/generation-of-signature","link":"/webhooks/generation-of-signature","items":[]},{"type":"link","label":"Example of a webhook (HTTP): ","routeSlug":"/webhooks/example-of-a-webhook-http","link":"/webhooks/example-of-a-webhook-http","items":[]},{"type":"link","label":"Example of a webhook (curl): ","routeSlug":"/webhooks/example-of-a-webhook-curl","link":"/webhooks/example-of-a-webhook-curl","items":[]},{"type":"link","label":"C# example of implementing signature generation (general sample): ","routeSlug":"/webhooks/csharp-signature-generation-general-sample","link":"/webhooks/csharp-signature-generation-general-sample","items":[]},{"type":"link","label":"C# example of implementing signature generation (.NET 5.0 and later): ","routeSlug":"/webhooks/csharp-signature-generation-net-5-0-and-later","link":"/webhooks/csharp-signature-generation-net-5-0-and-later","items":[]},{"type":"link","label":"C# example of implementing signature generation (.NET 7.0 and later): ","routeSlug":"/webhooks/csharp-signature-generation-net-7-0-and-later","link":"/webhooks/csharp-signature-generation-net-7-0-and-later","items":[]},{"type":"link","label":"C++ example of implementing signature generation: ","routeSlug":"/webhooks/cpp-signature-generation","link":"/webhooks/cpp-signature-generation","items":[]},{"type":"link","label":"Go example of implementing signature generation: ","routeSlug":"/webhooks/go-signature-generation","link":"/webhooks/go-signature-generation","items":[]},{"type":"link","label":"PHP example of implementing signature generation: ","routeSlug":"/webhooks/php-signature-generation","link":"/webhooks/php-signature-generation","items":[]},{"type":"link","label":"Node.js example of implementing signature generation: ","routeSlug":"/webhooks/nodejs-signature-generation","link":"/webhooks/nodejs-signature-generation","items":[]},{"type":"link","label":"Sending responses to webhook ","routeSlug":"/webhooks/sending-responses-to-webhook","link":"/webhooks/sending-responses-to-webhook","items":[]}]},{"type":"link","label":"Errors ","routeSlug":"/webhooks/errors","link":"/webhooks/errors","items":[]},{"type":"group","label":"Best practices ","routeSlug":"/webhooks/best-practices","link":"/webhooks/best-practices","items":[{"type":"link","label":"Security ","routeSlug":"/webhooks/security","link":"/webhooks/security","items":[]},{"type":"link","label":"Webhook handler architecture ","routeSlug":"/webhooks/webhook-handler-architecture","link":"/webhooks/webhook-handler-architecture","items":[]},{"type":"link","label":"Idempotency and duplicates ","routeSlug":"/webhooks/idempotency-and-duplicates","link":"/webhooks/idempotency-and-duplicates","items":[]},{"type":"link","label":"System resilience ","routeSlug":"/webhooks/system-resilience","link":"/webhooks/system-resilience","items":[]},{"type":"link","label":"Implementation examples ","routeSlug":"/webhooks/implementation-examples","link":"/webhooks/implementation-examples","items":[]}]},{"type":"group","label":"FAQs ","routeSlug":"/webhooks/faqs","link":"/webhooks/faqs","items":[{"type":"link","label":"Do I need to use HTTPS for a webhook protocol? ","routeSlug":"/webhooks/do-i-need-to-use-https-for-a-webhook-protocol","link":"/webhooks/do-i-need-to-use-https-for-a-webhook-protocol","items":[]},{"type":"link","label":"Can I receive payment webhooks at several URLs? ","routeSlug":"/webhooks/can-i-receive-payment-webhooks-at-several-urls","link":"/webhooks/can-i-receive-payment-webhooks-at-several-urls","items":[]},{"type":"link","label":"Why was Xsolla notification not sent to the webhook URL? ","routeSlug":"/webhooks/why-was-xsolla-notification-not-sent-to-the-webhook-url","link":"/webhooks/why-was-xsolla-notification-not-sent-to-the-webhook-url","items":[]},{"type":"link","label":"How do I prevent duplicate transaction IDs during processing? ","routeSlug":"/webhooks/how-do-i-prevent-duplicate-transaction-ids-during-processing","link":"/webhooks/how-do-i-prevent-duplicate-transaction-ids-during-processing","items":[]},{"type":"link","label":"Are there any best practices for working with webhooks? ","routeSlug":"/webhooks/are-there-any-best-practices-for-working-with-webhooks","link":"/webhooks/are-there-any-best-practices-for-working-with-webhooks","items":[]}]},{"type":"link","label":"Webhook integration checklist ","routeSlug":"/webhooks/webhook-integration-checklist","link":"/webhooks/webhook-integration-checklist","items":[]},{"type":"link","label":"Webhooks list ","routeSlug":"/webhooks/webhooks-list","link":"/webhooks/webhooks-list","items":[]},{"type":"separator","label":"User validation"},{"type":"group","label":"User validation","items":[{"type":"separator","label":"Webhooks","variant":"secondary"},{"type":"link","label":"User validation","httpVerb":"post","routeSlug":"/webhooks/user-validation/user-validation","badges":[],"link":"/webhooks/user-validation/user-validation","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"User search","httpVerb":"post","routeSlug":"/webhooks/user-validation/user-search","badges":[],"link":"/webhooks/user-validation/user-search","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"User validation in Web Shop","httpVerb":"post","routeSlug":"/webhooks/user-validation/user-validation-in-webshop","badges":[],"link":"/webhooks/user-validation/user-validation-in-webshop","deprecated":false,"isAdditionalOperation":false}],"link":"/webhooks/user-validation","routeSlug":"/webhooks/user-validation"},{"type":"separator","label":"Payments"},{"type":"group","label":"Payments","items":[{"type":"separator","label":"Webhooks","variant":"secondary"},{"type":"link","label":"Payment","httpVerb":"post","routeSlug":"/webhooks/payments/payment","badges":[],"link":"/webhooks/payments/payment","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Refund","httpVerb":"post","routeSlug":"/webhooks/payments/refund","badges":[],"link":"/webhooks/payments/refund","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Partial refund","httpVerb":"post","routeSlug":"/webhooks/payments/partial-refund","badges":[],"link":"/webhooks/payments/partial-refund","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Declined payment","httpVerb":"post","routeSlug":"/webhooks/payments/payment-declined","badges":[],"link":"/webhooks/payments/payment-declined","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Add payment account","httpVerb":"post","routeSlug":"/webhooks/payments/add-payment-account","badges":[],"link":"/webhooks/payments/add-payment-account","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Remove payment account","httpVerb":"post","routeSlug":"/webhooks/payments/remove-payment-account","badges":[],"link":"/webhooks/payments/remove-payment-account","deprecated":false,"isAdditionalOperation":false}],"link":"/webhooks/payments","routeSlug":"/webhooks/payments"},{"type":"separator","label":"Game services"},{"type":"group","label":"Combined webhooks","items":[{"type":"separator","label":"Webhooks","variant":"secondary"},{"type":"link","label":"Successful payment for order (with payment and transaction details)","httpVerb":"post","routeSlug":"/webhooks/combined-webhooks/successful-order-payment","badges":[],"link":"/webhooks/combined-webhooks/successful-order-payment","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Order cancellation (with payment and transaction details)","httpVerb":"post","routeSlug":"/webhooks/combined-webhooks/order-cancellation","badges":[],"link":"/webhooks/combined-webhooks/order-cancellation","deprecated":false,"isAdditionalOperation":false}],"link":"/webhooks/combined-webhooks","routeSlug":"/webhooks/combined-webhooks"},{"type":"group","label":"Separate webhooks","items":[{"type":"separator","label":"Webhooks","variant":"secondary"},{"type":"link","label":"Successful payment for order (without payment and transaction details)","httpVerb":"post","routeSlug":"/webhooks/separate-webhooks/successful-order-payment-separate","badges":[],"link":"/webhooks/separate-webhooks/successful-order-payment-separate","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Order cancellation (without payment and transaction details)","httpVerb":"post","routeSlug":"/webhooks/separate-webhooks/order-cancellation-separate","badges":[],"link":"/webhooks/separate-webhooks/order-cancellation-separate","deprecated":false,"isAdditionalOperation":false}],"link":"/webhooks/separate-webhooks","routeSlug":"/webhooks/separate-webhooks"},{"type":"group","label":"Personalization webhook","items":[{"type":"separator","label":"Webhooks","variant":"secondary"},{"type":"link","label":"Catalog personalization on partner side","httpVerb":"post","routeSlug":"/webhooks/personalization/personalized-partner-catalog","badges":[],"link":"/webhooks/personalization/personalized-partner-catalog","deprecated":false,"isAdditionalOperation":false}],"link":"/webhooks/personalization","routeSlug":"/webhooks/personalization"},{"type":"separator","label":"Anti-fraud"},{"type":"group","label":"Anti-fraud","items":[{"type":"separator","label":"Webhooks","variant":"secondary"},{"type":"link","label":"Anti-fraud system rejected transaction","httpVerb":"post","routeSlug":"/webhooks/anti-fraud/afs-rejected-transaction","badges":[],"link":"/webhooks/anti-fraud/afs-rejected-transaction","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Anti-fraud blocklist update","httpVerb":"post","routeSlug":"/webhooks/anti-fraud/afs-rejected-blocklist","badges":[],"link":"/webhooks/anti-fraud/afs-rejected-blocklist","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Dispute","httpVerb":"post","routeSlug":"/webhooks/anti-fraud/dispute","badges":[],"link":"/webhooks/anti-fraud/dispute","deprecated":false,"isAdditionalOperation":false}],"link":"/webhooks/anti-fraud","routeSlug":"/webhooks/anti-fraud"},{"type":"separator","label":"Subscriptions"},{"type":"group","label":"Subscriptions","items":[{"type":"separator","label":"Webhooks","variant":"secondary"},{"type":"link","label":"Created subscription","httpVerb":"post","routeSlug":"/webhooks/subscriptions/created-subscription","badges":[],"link":"/webhooks/subscriptions/created-subscription","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Updated subscription","httpVerb":"post","routeSlug":"/webhooks/subscriptions/updated-subscription","badges":[],"link":"/webhooks/subscriptions/updated-subscription","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Canceled subscription","httpVerb":"post","routeSlug":"/webhooks/subscriptions/canceled-subscription","badges":[],"link":"/webhooks/subscriptions/canceled-subscription","deprecated":false,"isAdditionalOperation":false},{"type":"link","label":"Nonrenewing subscription","httpVerb":"post","routeSlug":"/webhooks/subscriptions/nonrenewing-subscription","badges":[],"link":"/webhooks/subscriptions/nonrenewing-subscription","deprecated":false,"isAdditionalOperation":false}],"link":"/webhooks/subscriptions","routeSlug":"/webhooks/subscriptions"}]}