[{"data":1,"prerenderedAt":681},["ShallowReactive",2],{"navigation":3,"\u002Fdevelopers\u002Fwebhooks":148,"\u002Fdevelopers\u002Fwebhooks-surround":676},[4,8,12,16,81,98,115],{"title":5,"path":6,"stem":7},"Home","\u002Fhome","1.home",{"title":9,"path":10,"stem":11},"Insights","\u002Finsights","2.insights",{"title":13,"path":14,"stem":15},"Transactions","\u002Ftransactions","3.transactions",{"title":17,"path":18,"stem":19,"children":20,"page":38},"Money In","\u002Fmoney-in","4.money-in",[21,39,43,64,77],{"title":22,"path":23,"stem":24,"children":25,"page":38},"Get Paid","\u002Fmoney-in\u002Fget-paid","4.money-in\u002F1.get-paid",[26,30,34],{"title":27,"path":28,"stem":29},"Payment Links","\u002Fmoney-in\u002Fget-paid\u002Fpayment-links","4.money-in\u002F1.get-paid\u002F1.payment-links",{"title":31,"path":32,"stem":33},"Pay Buttons","\u002Fmoney-in\u002Fget-paid\u002Fpay-buttons","4.money-in\u002F1.get-paid\u002F2.pay-buttons",{"title":35,"path":36,"stem":37},"Electronic Mandates","\u002Fmoney-in\u002Fget-paid\u002Felectronic-mandates","4.money-in\u002F1.get-paid\u002F3.electronic-mandates",false,{"title":40,"path":41,"stem":42},"Customers","\u002Fmoney-in\u002Fcustomers","4.money-in\u002F2.customers",{"title":44,"path":45,"stem":46,"children":47,"page":38},"Recurring","\u002Fmoney-in\u002Frecurring","4.money-in\u002F3.recurring",[48,52,56,60],{"title":49,"path":50,"stem":51},"Collections","\u002Fmoney-in\u002Frecurring\u002Fcollections","4.money-in\u002F3.recurring\u002F1.collections",{"title":53,"path":54,"stem":55},"Subscriptions","\u002Fmoney-in\u002Frecurring\u002Fsubscriptions","4.money-in\u002F3.recurring\u002F2.subscriptions",{"title":57,"path":58,"stem":59},"Mandates","\u002Fmoney-in\u002Frecurring\u002Fmandates","4.money-in\u002F3.recurring\u002F4.mandates",{"title":61,"path":62,"stem":63},"Stored Cards","\u002Fmoney-in\u002Frecurring\u002Fstored-cards","4.money-in\u002F3.recurring\u002F5.stored-cards",{"title":65,"path":66,"stem":67,"children":68,"page":38},"Commerce","\u002Fmoney-in\u002Fcommerce","4.money-in\u002F4.commerce",[69,73],{"title":70,"path":71,"stem":72},"Invoices","\u002Fmoney-in\u002Fcommerce\u002Finvoices","4.money-in\u002F4.commerce\u002F1.invoices",{"title":74,"path":75,"stem":76},"Products","\u002Fmoney-in\u002Fcommerce\u002Fproducts","4.money-in\u002F4.commerce\u002F2.products",{"title":78,"path":79,"stem":80},"Terminals","\u002Fmoney-in\u002Fterminals","4.money-in\u002F5.terminals",{"title":82,"path":83,"stem":84,"children":85,"page":38},"Money Out","\u002Fmoney-out","5.money-out",[86,90,94],{"title":87,"path":88,"stem":89},"Balances","\u002Fmoney-out\u002Fbalance","5.money-out\u002F1.balance",{"title":91,"path":92,"stem":93},"Recipients","\u002Fmoney-out\u002Frecipients","5.money-out\u002F2.recipients",{"title":95,"path":96,"stem":97},"Payouts","\u002Fmoney-out\u002Fpayouts","5.money-out\u002F3.payouts",{"title":99,"path":100,"stem":101,"children":102,"page":38},"Developers","\u002Fdevelopers","6.developers",[103,107,111],{"title":104,"path":105,"stem":106},"Access Tokens","\u002Fdevelopers\u002Faccess-tokens","6.developers\u002F1.access-tokens",{"title":108,"path":109,"stem":110},"Integrations","\u002Fdevelopers\u002Fintegrations","6.developers\u002F2.integrations",{"title":112,"path":113,"stem":114},"Webhooks","\u002Fdevelopers\u002Fwebhooks","6.developers\u002F3.webhooks",{"title":116,"path":117,"stem":118,"children":119,"page":38},"Settings","\u002Fsettings","7.settings",[120,124,128,132,136,140,144],{"title":121,"path":122,"stem":123},"Profile","\u002Fsettings\u002Fprofile","7.settings\u002F1.profile",{"title":125,"path":126,"stem":127},"Business Information","\u002Fsettings\u002Fbusiness-info","7.settings\u002F2.business-info",{"title":129,"path":130,"stem":131},"Branding","\u002Fsettings\u002Fbranding","7.settings\u002F3.branding",{"title":133,"path":134,"stem":135},"Invoice Settings","\u002Fsettings\u002Finvoices","7.settings\u002F4.invoices",{"title":137,"path":138,"stem":139},"Payment Methods","\u002Fsettings\u002Fpayment-methods","7.settings\u002F5.payment-methods",{"title":141,"path":142,"stem":143},"Teams","\u002Fsettings\u002Fteams","7.settings\u002F6.teams",{"title":145,"path":146,"stem":147},"History","\u002Fsettings\u002Fhistory","7.settings\u002F7.history",{"id":149,"title":112,"body":150,"description":669,"extension":670,"links":671,"meta":672,"navigation":673,"path":113,"seo":674,"stem":114,"__hash__":675},"docs\u002F6.developers\u002F3.webhooks.md",{"type":151,"value":152,"toc":651},"minimark",[153,157,160,163,172,177,182,190,195,198,203,208,260,263,266,270,273,328,331,334,337,341,344,372,376,379,382,385,398,401,405,408,412,415,460,464,467,473,476,479,493,497,500,503,506,565,568,572,600,604,607,633,637,640,644,647],[154,155,156],"p",{},"Webhooks allow Kwik to send real-time notifications to your application whenever an event occurs on your account.",[154,158,159],{},"Instead of continuously polling the API for updates, your application can listen for webhook events and immediately react when payments, customers, mandates, collections, payouts, invoices, and other resources change.",[154,161,162],{},"For a complete technical reference, event payloads, security information, and implementation examples, please refer to:",[154,164,165],{},[166,167,171],"a",{"href":168,"rel":169},"https:\u002F\u002Fdocs.kwik.co.za\u002Fv2\u002Fwebhooks\u002Fwebhooks",[170],"nofollow","Webhook API Documentation",[173,174],"img",{"src":175,"alt":112,"width":176},"\u002Fimages\u002Fwebhooks.png",800,[178,179,181],"h2",{"id":180},"creating-a-webhook","Creating a Webhook",[154,183,184,185,189],{},"To create a new webhook, select ",[186,187,188],"strong",{},"Create",".",[173,191],{"src":192,"alt":193,"width":194},"\u002Fimages\u002Fwebhooks.create.png","Create Webhook",100,[154,196,197],{},"The webhook creation form allows you to define where Kwik should send event notifications.",[173,199],{"src":200,"alt":201,"width":202},"\u002Fimages\u002Fwebhooks.create.modal.png","Webhook Creation Form",400,[204,205,207],"h3",{"id":206},"fields","Fields",[209,210,211,224],"table",{},[212,213,214],"thead",{},[215,216,217,221],"tr",{},[218,219,220],"th",{},"Field",[218,222,223],{},"Description",[225,226,227,236,244,252],"tbody",{},[215,228,229,233],{},[230,231,232],"td",{},"Name",[230,234,235],{},"Friendly name used to identify the webhook.",[215,237,238,241],{},[230,239,240],{},"Webhook URL",[230,242,243],{},"HTTPS endpoint that will receive webhook notifications.",[215,245,246,249],{},[230,247,248],{},"Events",[230,250,251],{},"One or more events that should trigger a webhook notification.",[215,253,254,257],{},[230,255,256],{},"Status",[230,258,259],{},"Determines whether the webhook is active.",[204,261,248],{"id":262},"events",[154,264,265],{},"Select the events your application would like to receive.",[173,267],{"src":268,"alt":269,"width":202},"\u002Fimages\u002Fwebhooks.create.event.png","Webhook Events",[154,271,272],{},"Examples include:",[274,275,276,280,283,286,289,292,295,298,301,304,307,310,313,316,319,322,325],"ul",{},[277,278,279],"li",{},"bank_account.created",[277,281,282],{},"bank_account.updated",[277,284,285],{},"checkout.completed",[277,287,288],{},"checkout.expired",[277,290,291],{},"checkout.failed",[277,293,294],{},"collection.created",[277,296,297],{},"collection.updated",[277,299,300],{},"customer.created",[277,302,303],{},"customer.updated",[277,305,306],{},"invoice.created",[277,308,309],{},"invoice.updated",[277,311,312],{},"mandate.created",[277,314,315],{},"mandate.updated",[277,317,318],{},"payout.created",[277,320,321],{},"payout.updated",[277,323,324],{},"transaction.created",[277,326,327],{},"transaction.updated",[154,329,330],{},"The complete list of supported events is available in the API documentation.",[204,332,256],{"id":333},"status",[154,335,336],{},"Choose whether the webhook should actively receive notifications.",[173,338],{"src":339,"alt":340,"width":202},"\u002Fimages\u002Fwebhooks.create.status.png","Webhook Status",[154,342,343],{},"Available statuses:",[209,345,346,354],{},[212,347,348],{},[215,349,350,352],{},[218,351,256],{},[218,353,223],{},[225,355,356,364],{},[215,357,358,361],{},[230,359,360],{},"Live",[230,362,363],{},"The webhook will receive events from Kwik.",[215,365,366,369],{},[230,367,368],{},"Disabled",[230,370,371],{},"The webhook is inactive and no events will be sent.",[178,373,375],{"id":374},"managing-webhooks","Managing Webhooks",[154,377,378],{},"Once created, all webhooks are displayed in the webhook list.",[173,380],{"src":175,"alt":381,"width":176},"Webhook List",[154,383,384],{},"The list displays:",[274,386,387,390,393,395],{},[277,388,389],{},"Creation date",[277,391,392],{},"Webhook name",[277,394,240],{},[277,396,397],{},"Current status",[154,399,400],{},"Use the search bar to quickly locate a webhook.",[178,402,404],{"id":403},"webhook-actions","Webhook Actions",[154,406,407],{},"Each webhook provides additional actions through the action menu.",[173,409],{"src":410,"alt":404,"width":411},"\u002Fimages\u002Fwebhooks.actions.png",150,[154,413,414],{},"Available actions include:",[209,416,417,426],{},[212,418,419],{},[215,420,421,424],{},[218,422,423],{},"Action",[218,425,223],{},[225,427,428,436,444,452],{},[215,429,430,433],{},[230,431,432],{},"Test Webhook",[230,434,435],{},"Sends a sample event to the configured endpoint.",[215,437,438,441],{},[230,439,440],{},"View Events",[230,442,443],{},"View webhook delivery history and responses.",[215,445,446,449],{},[230,447,448],{},"Edit",[230,450,451],{},"Modify the webhook configuration.",[215,453,454,457],{},[230,455,456],{},"Delete",[230,458,459],{},"Permanently remove the webhook.",[178,461,463],{"id":462},"testing-a-webhook","Testing a Webhook",[154,465,466],{},"Before using a webhook in production, it is recommended to test the endpoint.",[154,468,469,470,472],{},"Select ",[186,471,432],{}," from the actions menu.",[173,474],{"src":475,"alt":432,"width":202},"\u002Fimages\u002Fwebhooks.actions.test-webhook.png",[154,477,478],{},"Choose an event type and Kwik will immediately send a test payload to the configured endpoint. This allows you to:",[274,480,481,484,487,490],{},[277,482,483],{},"Verify connectivity",[277,485,486],{},"Confirm payload processing",[277,488,489],{},"Validate response handling",[277,491,492],{},"Test error handling and retries",[178,494,496],{"id":495},"viewing-webhook-events","Viewing Webhook Events",[154,498,499],{},"The webhook event log provides visibility into all webhook deliveries.",[173,501],{"src":502,"alt":269,"width":176},"\u002Fimages\u002Fwebhooks.actions.events.png",[154,504,505],{},"For each delivery attempt you can view:",[209,507,508,516],{},[212,509,510],{},[215,511,512,514],{},[218,513,220],{},[218,515,223],{},[225,517,518,526,533,541,549,557],{},[215,519,520,523],{},[230,521,522],{},"Event",[230,524,525],{},"The event that was triggered.",[215,527,528,530],{},[230,529,256],{},[230,531,532],{},"Success or failure result.",[215,534,535,538],{},[230,536,537],{},"HTTP Code",[230,539,540],{},"Response code returned by your endpoint.",[215,542,543,546],{},[230,544,545],{},"Test Event",[230,547,548],{},"Indicates whether the event was a test payload.",[215,550,551,554],{},[230,552,553],{},"Retry Timestamp",[230,555,556],{},"Date and time of the next retry attempt, if applicable.",[215,558,559,562],{},[230,560,561],{},"Retry Counter",[230,563,564],{},"Number of delivery retries attempted.",[154,566,567],{},"This information is useful when troubleshooting webhook integrations.",[178,569,571],{"id":570},"best-practices","Best Practices",[274,573,574,577,585,588,591,594,597],{},[277,575,576],{},"Always use HTTPS endpoints.",[277,578,579,580,584],{},"Return a successful ",[581,582,583],"code",{},"2xx"," HTTP response as quickly as possible.",[277,586,587],{},"Process webhook payloads asynchronously where possible.",[277,589,590],{},"Verify webhook signatures according to the API documentation.",[277,592,593],{},"Monitor webhook delivery history regularly.",[277,595,596],{},"Subscribe only to the events your application requires.",[277,598,599],{},"Use the webhook testing feature before moving integrations into production.",[178,601,603],{"id":602},"common-use-cases","Common Use Cases",[154,605,606],{},"Webhooks are commonly used for:",[274,608,609,612,615,618,621,624,627,630],{},[277,610,611],{},"Updating payment statuses",[277,613,614],{},"Synchronising customers with external systems",[277,616,617],{},"Updating invoices automatically",[277,619,620],{},"Triggering business workflows",[277,622,623],{},"Updating CRM platforms",[277,625,626],{},"Sending notifications to customers",[277,628,629],{},"Reconciling payments in accounting systems",[277,631,632],{},"Automating collections and payout processes",[178,634,636],{"id":635},"related-sections","Related Sections",[154,638,639],{},"Generate API credentials:",[154,641,642],{},[166,643,104],{"href":105},[154,645,646],{},"Connect accounting platforms:",[154,648,649],{},[166,650,108],{"href":109},{"title":652,"searchDepth":653,"depth":654,"links":655},"",1,2,[656,662,663,664,665,666,667,668],{"id":180,"depth":654,"text":181,"children":657},[658,660,661],{"id":206,"depth":659,"text":207},3,{"id":262,"depth":659,"text":248},{"id":333,"depth":659,"text":256},{"id":374,"depth":654,"text":375},{"id":403,"depth":654,"text":404},{"id":462,"depth":654,"text":463},{"id":495,"depth":654,"text":496},{"id":570,"depth":654,"text":571},{"id":602,"depth":654,"text":603},{"id":635,"depth":654,"text":636},"Receive real-time notifications from Kwik when events occur on your account.","md",null,{},true,{"title":112,"description":669},"jJmU0c7La14-o7pnHE-kwmY1lG2za57FyWNNBLGCnko",[677,679],{"title":108,"path":109,"stem":110,"description":678,"children":-1},"Connect your accounting and business systems to the Kwik platform.",{"title":121,"path":122,"stem":123,"description":680,"children":-1},"Manage your personal information, contact details, security settings and account preferences.",1780840821642]