[{"data":1,"prerenderedAt":10416},["ShallowReactive",2],{"navigation-docs_v2":3,"\u002Fv2\u002Fmoney-in\u002Fcheckout-link":124,"\u002Fv2\u002Fmoney-in\u002Fcheckout-link-surround":10411},[4],{"title":5,"path":6,"stem":7,"children":8,"page":64},"V2","\u002Fv2","v2",[9,27,65,86,99,116],{"title":10,"path":11,"stem":12,"children":13},"Introduction","\u002Fv2\u002Foverview","v2\u002F1.overview\u002F1.index",[14,15,19,23],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Test Details","\u002Fv2\u002Foverview\u002Ftest-details","v2\u002F1.overview\u002F2.test-details",{"title":20,"path":21,"stem":22},"Errors","\u002Fv2\u002Foverview\u002Ferrors","v2\u002F1.overview\u002F3.Errors",{"title":24,"path":25,"stem":26},"Migrate from V1","\u002Fv2\u002Foverview\u002Fmigrate-from-v1","v2\u002F1.overview\u002F4.migrate-from-v1",{"title":28,"path":29,"stem":30,"children":31,"page":64},"General","\u002Fv2\u002Fgeneral","v2\u002F2.general",[32,36,40,44,48,52,56,60],{"title":33,"path":34,"stem":35},"Lookups","\u002Fv2\u002Fgeneral\u002Flookups","v2\u002F2.general\u002F1.lookups",{"title":37,"path":38,"stem":39},"Payment Methods","\u002Fv2\u002Fgeneral\u002Fpayment-methods","v2\u002F2.general\u002F2.payment-methods",{"title":41,"path":42,"stem":43},"Customers","\u002Fv2\u002Fgeneral\u002Fcustomers","v2\u002F2.general\u002F3.customers",{"title":45,"path":46,"stem":47},"Bank Accounts","\u002Fv2\u002Fgeneral\u002Fbank-accounts","v2\u002F2.general\u002F4.bank-accounts",{"title":49,"path":50,"stem":51},"Cards","\u002Fv2\u002Fgeneral\u002Fcards","v2\u002F2.general\u002F5.cards",{"title":53,"path":54,"stem":55},"Mandates","\u002Fv2\u002Fgeneral\u002Fmandates","v2\u002F2.general\u002F6.mandates",{"title":57,"path":58,"stem":59},"Products","\u002Fv2\u002Fgeneral\u002Fproducts","v2\u002F2.general\u002F8.products",{"title":61,"path":62,"stem":63},"Transactions","\u002Fv2\u002Fgeneral\u002Ftransactions","v2\u002F2.general\u002F9.transactions",false,{"title":66,"path":67,"stem":68,"children":69,"page":64},"Money In","\u002Fv2\u002Fmoney-in","v2\u002F3.money-in",[70,74,78,82],{"title":71,"path":72,"stem":73},"Checkout Link","\u002Fv2\u002Fmoney-in\u002Fcheckout-link","v2\u002F3.money-in\u002F1.checkout-link",{"title":75,"path":76,"stem":77},"Checkout Form","\u002Fv2\u002Fmoney-in\u002Fcheckout-form","v2\u002F3.money-in\u002F2.checkout-form",{"title":79,"path":80,"stem":81},"Electronic Mandates","\u002Fv2\u002Fmoney-in\u002Felectronic-mandates","v2\u002F3.money-in\u002F3.electronic-mandates",{"title":83,"path":84,"stem":85},"Collections","\u002Fv2\u002Fmoney-in\u002Fcollections","v2\u002F3.money-in\u002F4.collections",{"title":87,"path":88,"stem":89,"children":90,"page":64},"Money Out","\u002Fv2\u002Fmoney-out","v2\u002F4.money-out",[91,95],{"title":92,"path":93,"stem":94},"Payouts","\u002Fv2\u002Fmoney-out\u002Fpayouts","v2\u002F4.money-out\u002F1.payouts",{"title":96,"path":97,"stem":98},"Recipients","\u002Fv2\u002Fmoney-out\u002Frecipients","v2\u002F4.money-out\u002F2.recipients",{"title":100,"path":101,"stem":102,"children":103,"page":64},"Verification","\u002Fv2\u002Fverification","v2\u002F5.verification",[104,108,112],{"title":105,"path":106,"stem":107},"CDV","\u002Fv2\u002Fverification\u002Fcdv","v2\u002F5.verification\u002F1.cdv",{"title":109,"path":110,"stem":111},"AVS-R","\u002Fv2\u002Fverification\u002Favs-r","v2\u002F5.verification\u002F2.avs-r",{"title":113,"path":114,"stem":115},"SDO","\u002Fv2\u002Fverification\u002Fsdo","v2\u002F5.verification\u002F3.sdo",{"title":117,"path":118,"stem":119,"children":120,"page":64},"Webhooks","\u002Fv2\u002Fwebhooks","v2\u002F6.webhooks",[121],{"title":117,"path":122,"stem":123},"\u002Fv2\u002Fwebhooks\u002Fwebhooks","v2\u002F6.webhooks\u002F1.webhooks",{"id":125,"title":71,"body":126,"description":10405,"extension":10406,"links":10407,"meta":10408,"navigation":549,"path":72,"seo":10409,"stem":73,"__hash__":10410},"docs_v2\u002Fv2\u002F3.money-in\u002F1.checkout-link.md",{"type":127,"value":128,"toc":10384},"minimark",[129,134,138,143,153,157,160,307,311,314,348,897,901,904,1251,1255,1258,2673,2677,2680,3036,3039,3073,3079,3208,3213,3353,3357,3382,4609,4613,4789,4793,4919,4923,4929,9436,9440,9446,9471,9475,9909,9913,10223,10227,10339,10343,10346,10369,10373,10380],[130,131,133],"h2",{"id":132},"request","Request",[135,136,137],"p",{},"Request to generate a checkout page session URL",[139,140,142],"h3",{"id":141},"path","Path",[135,144,145,149,150],{},[146,147,148],"code",{},"POST"," ",[146,151,152],{},"\u002Fcheckout\u002Flink",[139,154,156],{"id":155},"example-basic","Example (Basic)",[135,158,159],{},"Basic example to create a one-time payment link with a fixed amount.",[161,162,167],"pre",{"className":163,"code":164,"language":165,"meta":166,"style":166},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"type\": \"CHOOSE_WHAT_TO_PAY\",\n  \"item\": {\n    \"title\": \"My product name\",\n    \"frequency\": [\"ONE_TIME\"], \u002F\u002F [optional] default \"ONE_TIME\"\n    \"amount\": \"1200.00\" \u002F\u002F [optional] preset an amount to pay else an amount field will show for the user to enter\n  }\n}\n","json","",[146,168,169,178,206,221,244,273,295,301],{"__ignoreMap":166},[170,171,174],"span",{"class":172,"line":173},"line",1,[170,175,177],{"class":176},"sMK4o","{\n",[170,179,181,184,188,191,194,197,201,203],{"class":172,"line":180},2,[170,182,183],{"class":176},"  \"",[170,185,187],{"class":186},"spNyl","type",[170,189,190],{"class":176},"\"",[170,192,193],{"class":176},":",[170,195,196],{"class":176}," \"",[170,198,200],{"class":199},"sfazB","CHOOSE_WHAT_TO_PAY",[170,202,190],{"class":176},[170,204,205],{"class":176},",\n",[170,207,209,211,214,216,218],{"class":172,"line":208},3,[170,210,183],{"class":176},[170,212,213],{"class":186},"item",[170,215,190],{"class":176},[170,217,193],{"class":176},[170,219,220],{"class":176}," {\n",[170,222,224,227,231,233,235,237,240,242],{"class":172,"line":223},4,[170,225,226],{"class":176},"    \"",[170,228,230],{"class":229},"sBMFI","title",[170,232,190],{"class":176},[170,234,193],{"class":176},[170,236,196],{"class":176},[170,238,239],{"class":199},"My product name",[170,241,190],{"class":176},[170,243,205],{"class":176},[170,245,247,249,252,254,256,259,261,264,266,269],{"class":172,"line":246},5,[170,248,226],{"class":176},[170,250,251],{"class":229},"frequency",[170,253,190],{"class":176},[170,255,193],{"class":176},[170,257,258],{"class":176}," [",[170,260,190],{"class":176},[170,262,263],{"class":199},"ONE_TIME",[170,265,190],{"class":176},[170,267,268],{"class":176},"],",[170,270,272],{"class":271},"sHwdD"," \u002F\u002F [optional] default \"ONE_TIME\"\n",[170,274,276,278,281,283,285,287,290,292],{"class":172,"line":275},6,[170,277,226],{"class":176},[170,279,280],{"class":229},"amount",[170,282,190],{"class":176},[170,284,193],{"class":176},[170,286,196],{"class":176},[170,288,289],{"class":199},"1200.00",[170,291,190],{"class":176},[170,293,294],{"class":271}," \u002F\u002F [optional] preset an amount to pay else an amount field will show for the user to enter\n",[170,296,298],{"class":172,"line":297},7,[170,299,300],{"class":176},"  }\n",[170,302,304],{"class":172,"line":303},8,[170,305,306],{"class":176},"}\n",[139,308,310],{"id":309},"example-donation-form","Example (Donation form)",[135,312,313],{},"An example of a donation form with one-time, monthly and annual subscription options and an amount field the user can select.",[135,315,316,317,319,320,325,326,331,332,335,336,343,344,347],{},"Flexible checkouts (",[146,318,200],{},") use a single ",[321,322,323],"strong",{},[146,324,213],{}," object for the payer-facing offer. ",[321,327,328],{},[146,329,330],{},"customization.confirmation_message"," appears after successful payment unless you rely on redirects. Customer handling: send ",[146,333,334],{},"customer_id"," for an existing record, send a ",[337,338,340],"a",{"href":339},"#example-advanced-example-with-all-options",[146,341,342],{},"customer"," object to create or prefill, or omit both and optionally supply ",[146,345,346],{},"customer_fields"," for extra form fields (name, surname, and email always show).",[161,349,351],{"className":163,"code":350,"language":165,"meta":166,"style":166},"{\n  \"type\": \"CHOOSE_WHAT_TO_PAY\",\n  \u002F\u002F Pass your product \u002F campaign details via item\n  \"item\": {\n    \"title\": \"My product name\", \u002F\u002F Product title, will appear on invoice\n    \"description\": \"My product description\", \u002F\u002F [optional] longer description\n    \"frequency\": [\"ONE_TIME\", \"MONTHLY\", \"ANNUALLY\"], \u002F\u002F options the payer may choose among\n    \"amount_options\": [50, 100, 150, 200, 250], \u002F\u002F [optional] preset amounts (max five)\n    \"amount_max\": 3000 \u002F\u002F [optional] cap when payer enters any amount\n  },\n\n  \"customization\": {\n    \"button_text\": \"Donate now\", \u002F\u002F [optional] primary button label — see Advanced for full options\n    \"confirmation_message\": \"Thank you for your donation\" \u002F\u002F [optional] shown after payment; else use redirects\n  },\n\n  \"signature\": \"secret-key-for-payload\", \u002F\u002F [optional] payload signature when configured\n\n  \"notification\": {\n    \"email\": \"me@my-email.co.za\", \u002F\u002F [optional] email notifications on successful payment\n    \"webhook_url\": \"https:\u002F\u002Fmerchant.example\u002Fwebhooks\u002Fpayments\" \u002F\u002F webhook URL for each successful payment\n  },\n\n  \u002F\u002F Issue and optionally email an invoice after payment\n  \"invoice\": {\n    \"is_generate\": true,\n    \"is_send\": true \u002F\u002F send paid invoice to the customer when true\n  },\n\n  \u002F\u002F If neither customer_id nor customer is passed, show a form — these are extra collectable fields\n  \"customer_fields\": [\n    \"CONTACT_NUMBER\",\n    \"ID_NUMBER\",\n    \"COMPANY_NAME\",\n    \"COMPANY_REG\",\n    \"VAT_NUMBER\",\n    \"BILLING_ADDRESS\",\n    \"SHIPPING_ADDRESS\"\n  ]\n}\n",[146,352,353,357,375,380,392,414,437,478,520,538,544,551,565,589,611,616,621,645,650,664,688,710,715,720,726,740,755,773,778,783,789,803,815,827,839,851,863,875,886,892],{"__ignoreMap":166},[170,354,355],{"class":172,"line":173},[170,356,177],{"class":176},[170,358,359,361,363,365,367,369,371,373],{"class":172,"line":180},[170,360,183],{"class":176},[170,362,187],{"class":186},[170,364,190],{"class":176},[170,366,193],{"class":176},[170,368,196],{"class":176},[170,370,200],{"class":199},[170,372,190],{"class":176},[170,374,205],{"class":176},[170,376,377],{"class":172,"line":208},[170,378,379],{"class":271},"  \u002F\u002F Pass your product \u002F campaign details via item\n",[170,381,382,384,386,388,390],{"class":172,"line":223},[170,383,183],{"class":176},[170,385,213],{"class":186},[170,387,190],{"class":176},[170,389,193],{"class":176},[170,391,220],{"class":176},[170,393,394,396,398,400,402,404,406,408,411],{"class":172,"line":246},[170,395,226],{"class":176},[170,397,230],{"class":229},[170,399,190],{"class":176},[170,401,193],{"class":176},[170,403,196],{"class":176},[170,405,239],{"class":199},[170,407,190],{"class":176},[170,409,410],{"class":176},",",[170,412,413],{"class":271}," \u002F\u002F Product title, will appear on invoice\n",[170,415,416,418,421,423,425,427,430,432,434],{"class":172,"line":275},[170,417,226],{"class":176},[170,419,420],{"class":229},"description",[170,422,190],{"class":176},[170,424,193],{"class":176},[170,426,196],{"class":176},[170,428,429],{"class":199},"My product description",[170,431,190],{"class":176},[170,433,410],{"class":176},[170,435,436],{"class":271}," \u002F\u002F [optional] longer description\n",[170,438,439,441,443,445,447,449,451,453,455,457,459,462,464,466,468,471,473,475],{"class":172,"line":297},[170,440,226],{"class":176},[170,442,251],{"class":229},[170,444,190],{"class":176},[170,446,193],{"class":176},[170,448,258],{"class":176},[170,450,190],{"class":176},[170,452,263],{"class":199},[170,454,190],{"class":176},[170,456,410],{"class":176},[170,458,196],{"class":176},[170,460,461],{"class":199},"MONTHLY",[170,463,190],{"class":176},[170,465,410],{"class":176},[170,467,196],{"class":176},[170,469,470],{"class":199},"ANNUALLY",[170,472,190],{"class":176},[170,474,268],{"class":176},[170,476,477],{"class":271}," \u002F\u002F options the payer may choose among\n",[170,479,480,482,485,487,489,491,495,497,500,502,505,507,510,512,515,517],{"class":172,"line":303},[170,481,226],{"class":176},[170,483,484],{"class":229},"amount_options",[170,486,190],{"class":176},[170,488,193],{"class":176},[170,490,258],{"class":176},[170,492,494],{"class":493},"sbssI","50",[170,496,410],{"class":176},[170,498,499],{"class":493}," 100",[170,501,410],{"class":176},[170,503,504],{"class":493}," 150",[170,506,410],{"class":176},[170,508,509],{"class":493}," 200",[170,511,410],{"class":176},[170,513,514],{"class":493}," 250",[170,516,268],{"class":176},[170,518,519],{"class":271}," \u002F\u002F [optional] preset amounts (max five)\n",[170,521,523,525,528,530,532,535],{"class":172,"line":522},9,[170,524,226],{"class":176},[170,526,527],{"class":229},"amount_max",[170,529,190],{"class":176},[170,531,193],{"class":176},[170,533,534],{"class":493}," 3000",[170,536,537],{"class":271}," \u002F\u002F [optional] cap when payer enters any amount\n",[170,539,541],{"class":172,"line":540},10,[170,542,543],{"class":176},"  },\n",[170,545,547],{"class":172,"line":546},11,[170,548,550],{"emptyLinePlaceholder":549},true,"\n",[170,552,554,556,559,561,563],{"class":172,"line":553},12,[170,555,183],{"class":176},[170,557,558],{"class":186},"customization",[170,560,190],{"class":176},[170,562,193],{"class":176},[170,564,220],{"class":176},[170,566,568,570,573,575,577,579,582,584,586],{"class":172,"line":567},13,[170,569,226],{"class":176},[170,571,572],{"class":229},"button_text",[170,574,190],{"class":176},[170,576,193],{"class":176},[170,578,196],{"class":176},[170,580,581],{"class":199},"Donate now",[170,583,190],{"class":176},[170,585,410],{"class":176},[170,587,588],{"class":271}," \u002F\u002F [optional] primary button label — see Advanced for full options\n",[170,590,592,594,597,599,601,603,606,608],{"class":172,"line":591},14,[170,593,226],{"class":176},[170,595,596],{"class":229},"confirmation_message",[170,598,190],{"class":176},[170,600,193],{"class":176},[170,602,196],{"class":176},[170,604,605],{"class":199},"Thank you for your donation",[170,607,190],{"class":176},[170,609,610],{"class":271}," \u002F\u002F [optional] shown after payment; else use redirects\n",[170,612,614],{"class":172,"line":613},15,[170,615,543],{"class":176},[170,617,619],{"class":172,"line":618},16,[170,620,550],{"emptyLinePlaceholder":549},[170,622,624,626,629,631,633,635,638,640,642],{"class":172,"line":623},17,[170,625,183],{"class":176},[170,627,628],{"class":186},"signature",[170,630,190],{"class":176},[170,632,193],{"class":176},[170,634,196],{"class":176},[170,636,637],{"class":199},"secret-key-for-payload",[170,639,190],{"class":176},[170,641,410],{"class":176},[170,643,644],{"class":271}," \u002F\u002F [optional] payload signature when configured\n",[170,646,648],{"class":172,"line":647},18,[170,649,550],{"emptyLinePlaceholder":549},[170,651,653,655,658,660,662],{"class":172,"line":652},19,[170,654,183],{"class":176},[170,656,657],{"class":186},"notification",[170,659,190],{"class":176},[170,661,193],{"class":176},[170,663,220],{"class":176},[170,665,667,669,672,674,676,678,681,683,685],{"class":172,"line":666},20,[170,668,226],{"class":176},[170,670,671],{"class":229},"email",[170,673,190],{"class":176},[170,675,193],{"class":176},[170,677,196],{"class":176},[170,679,680],{"class":199},"me@my-email.co.za",[170,682,190],{"class":176},[170,684,410],{"class":176},[170,686,687],{"class":271}," \u002F\u002F [optional] email notifications on successful payment\n",[170,689,691,693,696,698,700,702,705,707],{"class":172,"line":690},21,[170,692,226],{"class":176},[170,694,695],{"class":229},"webhook_url",[170,697,190],{"class":176},[170,699,193],{"class":176},[170,701,196],{"class":176},[170,703,704],{"class":199},"https:\u002F\u002Fmerchant.example\u002Fwebhooks\u002Fpayments",[170,706,190],{"class":176},[170,708,709],{"class":271}," \u002F\u002F webhook URL for each successful payment\n",[170,711,713],{"class":172,"line":712},22,[170,714,543],{"class":176},[170,716,718],{"class":172,"line":717},23,[170,719,550],{"emptyLinePlaceholder":549},[170,721,723],{"class":172,"line":722},24,[170,724,725],{"class":271},"  \u002F\u002F Issue and optionally email an invoice after payment\n",[170,727,729,731,734,736,738],{"class":172,"line":728},25,[170,730,183],{"class":176},[170,732,733],{"class":186},"invoice",[170,735,190],{"class":176},[170,737,193],{"class":176},[170,739,220],{"class":176},[170,741,743,745,748,750,752],{"class":172,"line":742},26,[170,744,226],{"class":176},[170,746,747],{"class":229},"is_generate",[170,749,190],{"class":176},[170,751,193],{"class":176},[170,753,754],{"class":176}," true,\n",[170,756,758,760,763,765,767,770],{"class":172,"line":757},27,[170,759,226],{"class":176},[170,761,762],{"class":229},"is_send",[170,764,190],{"class":176},[170,766,193],{"class":176},[170,768,769],{"class":176}," true",[170,771,772],{"class":271}," \u002F\u002F send paid invoice to the customer when true\n",[170,774,776],{"class":172,"line":775},28,[170,777,543],{"class":176},[170,779,781],{"class":172,"line":780},29,[170,782,550],{"emptyLinePlaceholder":549},[170,784,786],{"class":172,"line":785},30,[170,787,788],{"class":271},"  \u002F\u002F If neither customer_id nor customer is passed, show a form — these are extra collectable fields\n",[170,790,792,794,796,798,800],{"class":172,"line":791},31,[170,793,183],{"class":176},[170,795,346],{"class":186},[170,797,190],{"class":176},[170,799,193],{"class":176},[170,801,802],{"class":176}," [\n",[170,804,806,808,811,813],{"class":172,"line":805},32,[170,807,226],{"class":176},[170,809,810],{"class":199},"CONTACT_NUMBER",[170,812,190],{"class":176},[170,814,205],{"class":176},[170,816,818,820,823,825],{"class":172,"line":817},33,[170,819,226],{"class":176},[170,821,822],{"class":199},"ID_NUMBER",[170,824,190],{"class":176},[170,826,205],{"class":176},[170,828,830,832,835,837],{"class":172,"line":829},34,[170,831,226],{"class":176},[170,833,834],{"class":199},"COMPANY_NAME",[170,836,190],{"class":176},[170,838,205],{"class":176},[170,840,842,844,847,849],{"class":172,"line":841},35,[170,843,226],{"class":176},[170,845,846],{"class":199},"COMPANY_REG",[170,848,190],{"class":176},[170,850,205],{"class":176},[170,852,854,856,859,861],{"class":172,"line":853},36,[170,855,226],{"class":176},[170,857,858],{"class":199},"VAT_NUMBER",[170,860,190],{"class":176},[170,862,205],{"class":176},[170,864,866,868,871,873],{"class":172,"line":865},37,[170,867,226],{"class":176},[170,869,870],{"class":199},"BILLING_ADDRESS",[170,872,190],{"class":176},[170,874,205],{"class":176},[170,876,878,880,883],{"class":172,"line":877},38,[170,879,226],{"class":176},[170,881,882],{"class":199},"SHIPPING_ADDRESS",[170,884,885],{"class":176},"\"\n",[170,887,889],{"class":172,"line":888},39,[170,890,891],{"class":176},"  ]\n",[170,893,895],{"class":172,"line":894},40,[170,896,306],{"class":176},[139,898,900],{"id":899},"example-products-subscriptions-and-invoices","Example (Products, subscriptions and invoices)",[135,902,903],{},"Example with a recurring and one-time product to create a subscription with invoices.",[161,905,907],{"className":163,"code":906,"language":165,"meta":166,"style":166},"{\n  \"type\": \"PRODUCTS_AND_SUBSCRIPTIONS\",\n\n  \"customization\": {\n    \"button_text\": \"Pay now\" \u002F\u002F [optional] button text — default label if omitted depends on checkout\n  },\n\n  \"signature\": \"secret-key-for-payload\", \u002F\u002F [optional] shared-secret signature for the payload\n\n  \"customer_id\": \"cus_abc123...\", \u002F\u002F existing customer record; alternatively pass full customer object\n\n  \u002F\u002F Catalog lines (one-off and recurring products may be mixed — see Products reference)\n  \"items\": [\n    {\n      \"product_id\": \"pro_abc123...\",\n      \"qty\": 2 \u002F\u002F default 1 when omitted\n    },\n    {\n      \"product_id\": \"pro_xyz789...\"\n    }\n  ],\n\n  \u002F\u002F Invoice for this checkout \u002F subscriptions created from it\n  \"invoice\": {\n    \"is_generate\": true, \u002F\u002F generate invoice for the basket or subscription billing\n    \"is_send\": true \u002F\u002F email invoice when paid\n  },\n\n  \u002F\u002F Redirects after payer finishes or taps cancel\n  \"redirects\": {\n    \"success_url\": \"https:\u002F\u002Fmerchant.example\u002Fsuccess?myquery=myparam\", \u002F\u002F may append &signature=\n    \"cancel_url\": \"https:\u002F\u002Fmerchant.example\u002Fcancel\"\n  }\n}\n",[146,908,909,913,932,936,948,968,972,976,997,1001,1023,1027,1032,1045,1050,1071,1088,1093,1097,1114,1119,1124,1128,1133,1145,1161,1176,1180,1184,1189,1202,1225,1243,1247],{"__ignoreMap":166},[170,910,911],{"class":172,"line":173},[170,912,177],{"class":176},[170,914,915,917,919,921,923,925,928,930],{"class":172,"line":180},[170,916,183],{"class":176},[170,918,187],{"class":186},[170,920,190],{"class":176},[170,922,193],{"class":176},[170,924,196],{"class":176},[170,926,927],{"class":199},"PRODUCTS_AND_SUBSCRIPTIONS",[170,929,190],{"class":176},[170,931,205],{"class":176},[170,933,934],{"class":172,"line":208},[170,935,550],{"emptyLinePlaceholder":549},[170,937,938,940,942,944,946],{"class":172,"line":223},[170,939,183],{"class":176},[170,941,558],{"class":186},[170,943,190],{"class":176},[170,945,193],{"class":176},[170,947,220],{"class":176},[170,949,950,952,954,956,958,960,963,965],{"class":172,"line":246},[170,951,226],{"class":176},[170,953,572],{"class":229},[170,955,190],{"class":176},[170,957,193],{"class":176},[170,959,196],{"class":176},[170,961,962],{"class":199},"Pay now",[170,964,190],{"class":176},[170,966,967],{"class":271}," \u002F\u002F [optional] button text — default label if omitted depends on checkout\n",[170,969,970],{"class":172,"line":275},[170,971,543],{"class":176},[170,973,974],{"class":172,"line":297},[170,975,550],{"emptyLinePlaceholder":549},[170,977,978,980,982,984,986,988,990,992,994],{"class":172,"line":303},[170,979,183],{"class":176},[170,981,628],{"class":186},[170,983,190],{"class":176},[170,985,193],{"class":176},[170,987,196],{"class":176},[170,989,637],{"class":199},[170,991,190],{"class":176},[170,993,410],{"class":176},[170,995,996],{"class":271}," \u002F\u002F [optional] shared-secret signature for the payload\n",[170,998,999],{"class":172,"line":522},[170,1000,550],{"emptyLinePlaceholder":549},[170,1002,1003,1005,1007,1009,1011,1013,1016,1018,1020],{"class":172,"line":540},[170,1004,183],{"class":176},[170,1006,334],{"class":186},[170,1008,190],{"class":176},[170,1010,193],{"class":176},[170,1012,196],{"class":176},[170,1014,1015],{"class":199},"cus_abc123...",[170,1017,190],{"class":176},[170,1019,410],{"class":176},[170,1021,1022],{"class":271}," \u002F\u002F existing customer record; alternatively pass full customer object\n",[170,1024,1025],{"class":172,"line":546},[170,1026,550],{"emptyLinePlaceholder":549},[170,1028,1029],{"class":172,"line":553},[170,1030,1031],{"class":271},"  \u002F\u002F Catalog lines (one-off and recurring products may be mixed — see Products reference)\n",[170,1033,1034,1036,1039,1041,1043],{"class":172,"line":567},[170,1035,183],{"class":176},[170,1037,1038],{"class":186},"items",[170,1040,190],{"class":176},[170,1042,193],{"class":176},[170,1044,802],{"class":176},[170,1046,1047],{"class":172,"line":591},[170,1048,1049],{"class":176},"    {\n",[170,1051,1052,1055,1058,1060,1062,1064,1067,1069],{"class":172,"line":613},[170,1053,1054],{"class":176},"      \"",[170,1056,1057],{"class":229},"product_id",[170,1059,190],{"class":176},[170,1061,193],{"class":176},[170,1063,196],{"class":176},[170,1065,1066],{"class":199},"pro_abc123...",[170,1068,190],{"class":176},[170,1070,205],{"class":176},[170,1072,1073,1075,1078,1080,1082,1085],{"class":172,"line":618},[170,1074,1054],{"class":176},[170,1076,1077],{"class":229},"qty",[170,1079,190],{"class":176},[170,1081,193],{"class":176},[170,1083,1084],{"class":493}," 2",[170,1086,1087],{"class":271}," \u002F\u002F default 1 when omitted\n",[170,1089,1090],{"class":172,"line":623},[170,1091,1092],{"class":176},"    },\n",[170,1094,1095],{"class":172,"line":647},[170,1096,1049],{"class":176},[170,1098,1099,1101,1103,1105,1107,1109,1112],{"class":172,"line":652},[170,1100,1054],{"class":176},[170,1102,1057],{"class":229},[170,1104,190],{"class":176},[170,1106,193],{"class":176},[170,1108,196],{"class":176},[170,1110,1111],{"class":199},"pro_xyz789...",[170,1113,885],{"class":176},[170,1115,1116],{"class":172,"line":666},[170,1117,1118],{"class":176},"    }\n",[170,1120,1121],{"class":172,"line":690},[170,1122,1123],{"class":176},"  ],\n",[170,1125,1126],{"class":172,"line":712},[170,1127,550],{"emptyLinePlaceholder":549},[170,1129,1130],{"class":172,"line":717},[170,1131,1132],{"class":271},"  \u002F\u002F Invoice for this checkout \u002F subscriptions created from it\n",[170,1134,1135,1137,1139,1141,1143],{"class":172,"line":722},[170,1136,183],{"class":176},[170,1138,733],{"class":186},[170,1140,190],{"class":176},[170,1142,193],{"class":176},[170,1144,220],{"class":176},[170,1146,1147,1149,1151,1153,1155,1158],{"class":172,"line":728},[170,1148,226],{"class":176},[170,1150,747],{"class":229},[170,1152,190],{"class":176},[170,1154,193],{"class":176},[170,1156,1157],{"class":176}," true,",[170,1159,1160],{"class":271}," \u002F\u002F generate invoice for the basket or subscription billing\n",[170,1162,1163,1165,1167,1169,1171,1173],{"class":172,"line":742},[170,1164,226],{"class":176},[170,1166,762],{"class":229},[170,1168,190],{"class":176},[170,1170,193],{"class":176},[170,1172,769],{"class":176},[170,1174,1175],{"class":271}," \u002F\u002F email invoice when paid\n",[170,1177,1178],{"class":172,"line":757},[170,1179,543],{"class":176},[170,1181,1182],{"class":172,"line":775},[170,1183,550],{"emptyLinePlaceholder":549},[170,1185,1186],{"class":172,"line":780},[170,1187,1188],{"class":271},"  \u002F\u002F Redirects after payer finishes or taps cancel\n",[170,1190,1191,1193,1196,1198,1200],{"class":172,"line":785},[170,1192,183],{"class":176},[170,1194,1195],{"class":186},"redirects",[170,1197,190],{"class":176},[170,1199,193],{"class":176},[170,1201,220],{"class":176},[170,1203,1204,1206,1209,1211,1213,1215,1218,1220,1222],{"class":172,"line":791},[170,1205,226],{"class":176},[170,1207,1208],{"class":229},"success_url",[170,1210,190],{"class":176},[170,1212,193],{"class":176},[170,1214,196],{"class":176},[170,1216,1217],{"class":199},"https:\u002F\u002Fmerchant.example\u002Fsuccess?myquery=myparam",[170,1219,190],{"class":176},[170,1221,410],{"class":176},[170,1223,1224],{"class":271}," \u002F\u002F may append &signature=\n",[170,1226,1227,1229,1232,1234,1236,1238,1241],{"class":172,"line":805},[170,1228,226],{"class":176},[170,1230,1231],{"class":229},"cancel_url",[170,1233,190],{"class":176},[170,1235,193],{"class":176},[170,1237,196],{"class":176},[170,1239,1240],{"class":199},"https:\u002F\u002Fmerchant.example\u002Fcancel",[170,1242,885],{"class":176},[170,1244,1245],{"class":172,"line":817},[170,1246,300],{"class":176},[170,1248,1249],{"class":172,"line":829},[170,1250,306],{"class":176},[139,1252,1254],{"id":1253},"example-advanced","Example (Advanced )",[135,1256,1257],{},"Advanced example with example with all options",[161,1259,1261],{"className":163,"code":1260,"language":165,"meta":166,"style":166},"{\n  \"type\": \"PRODUCTS_AND_SUBSCRIPTIONS\",\n\n  \"signature\": \"secret-key-for-payload\", \u002F\u002F [optional] shared-secret signature for the payload, see the signature section below\n\n  \u002F\u002F Inline customer create \u002F prefilled profile (alternative: customer_id)\n  \"customer\": {\n    \"reference\": \"CLN240919000001\",\n    \"company_name\": null,\n    \"person_name\": \"John\",\n    \"person_surname\": \"Doe\",\n    \"client_type\": \"RESIDENT_INDIVIDUAL\", \u002F\u002F [optional]\n    \"id_type\": \"SOUTH_AFRICAN_ID\",\n    \"id_number\": \"8007014800087\",\n    \"email\": \"johndoe@mail.com\",\n    \"contact_number\": \"+27831234567\",\n    \"billing_address\": {\n      \"line1\": \"1 Loop Street\",\n      \"line2\": \"Floor 5\",\n      \"city_or_town\": \"Cape Town\",\n      \"province_or_state\": \"Western Cape\",\n      \"postal_or_zip_code\": \"8001\",\n      \"country\": \"ZA\"\n    },\n    \"shipping\": {\n      \"contact_name\": \"Jane Doe\",\n      \"contact_number\": \"+27820000000\",\n      \"address\": {\n        \"line1\": \"1 Loop Street\",\n        \"line2\": \"Floor 5\",\n        \"city_or_town\": \"Cape Town\",\n        \"province_or_state\": \"Western Cape\",\n        \"postal_or_zip_code\": \"8001\",\n        \"country\": \"ZA\"\n      }\n    },\n    \"metadata\": {\n      \"custom_field_1\": \"custom data 1\",\n      \"custom_field_2\": \"custom data 2\"\n    }\n  },\n\n  \u002F\u002F Basket built from catalogue products — discount per line optional\n  \"items\": [\n    {\n      \"product_id\": \"pro_abc123...\",\n      \"qty\": 2,\n      \"discount\": 100 \u002F\u002F discount amount for this item (advanced use)\n    },\n    {\n      \"product_id\": \"pro_xyz789...\",\n      \"qty\": 3\n    },\n\n     \u002F\u002F ...when no product_id is passed a product can be created\n    {\n      \"name\": \"Generic Wooden Ball\",\n      \"description\": \"Good For Training And Recreational Purposes\",\n      \"code\": \"PRD-606075\",\n      \"unit_label\": \"each\",\n      \"price_excl\": \"2409.86\",\n      \"is_tax\": false,\n      \"pricing_type\": \"RECURRING\",\n      \"product_status\": \"ACTIVE\",\n      \"billing_period\": \"MONTHLY\",\n      \"custom_period\": null,\n      \"custom_interval\": null,\n      \"picture_default\": null,\n      \"pictures\": {} \u002F\u002F {...} media bundle when uploading gallery assets programmatically\n    }\n  ],\n\n  \"invoice\": {\n    \"is_generate\": true,\n    \"is_send\": true\n  },\n\n  \u002F\u002F Restrict rails shown — omit array to expose every method toggled on for the merchant\n  \"payment\": {\n    \"payment_methods\": [\"CARD\", \"ZAPPER\"]\n  },\n\n  \"redirects\": {\n    \u002F\u002F Successful redirect URLs may append `signature` when signatures are configured.\n    \"success_url\": \"https:\u002F\u002Fmerchant.example\u002Fsuccess?myquery=myparam\",\n    \"cancel_url\": \"https:\u002F\u002Fmerchant.example\u002Fcancel\"\n  },\n\n  \"settings\": {\n    \"expiry_time\": 1440 \u002F\u002F minutes until checkout link lapses — omit when the link never expires (default)\n  },\n\n  \"customization\": {\n    \"button_text\": \"Pay\",\n    \"type\": \"PAGE\", \u002F\u002F or \"EMBED\" for iframe-style hosting or in-app payments\n    \"is_display_cancel_button\": true,\n    \"is_display_total\": true,\n    \"is_display_items\": true, \u002F\u002F cart line detail list\n    \"brand\": {\n      \"primary\": \"#00DC82\",\n      \"secondary\": \"#CCCCCC\"\n    }\n  }\n}\n",[146,1262,1263,1267,1285,1289,1310,1314,1319,1331,1351,1365,1385,1405,1428,1448,1468,1487,1507,1520,1540,1560,1580,1600,1620,1638,1642,1655,1675,1694,1707,1727,1745,1763,1781,1799,1815,1820,1824,1837,1857,1875,1879,1884,1889,1895,1908,1913,1932,1947,1964,1969,1974,1993,2007,2012,2017,2023,2028,2049,2069,2089,2110,2131,2146,2167,2188,2208,2222,2236,2250,2268,2273,2278,2283,2296,2309,2323,2328,2333,2339,2353,2386,2391,2396,2409,2415,2434,2451,2456,2461,2475,2493,2498,2503,2516,2536,2559,2573,2587,2604,2618,2639,2658,2663,2668],{"__ignoreMap":166},[170,1264,1265],{"class":172,"line":173},[170,1266,177],{"class":176},[170,1268,1269,1271,1273,1275,1277,1279,1281,1283],{"class":172,"line":180},[170,1270,183],{"class":176},[170,1272,187],{"class":186},[170,1274,190],{"class":176},[170,1276,193],{"class":176},[170,1278,196],{"class":176},[170,1280,927],{"class":199},[170,1282,190],{"class":176},[170,1284,205],{"class":176},[170,1286,1287],{"class":172,"line":208},[170,1288,550],{"emptyLinePlaceholder":549},[170,1290,1291,1293,1295,1297,1299,1301,1303,1305,1307],{"class":172,"line":223},[170,1292,183],{"class":176},[170,1294,628],{"class":186},[170,1296,190],{"class":176},[170,1298,193],{"class":176},[170,1300,196],{"class":176},[170,1302,637],{"class":199},[170,1304,190],{"class":176},[170,1306,410],{"class":176},[170,1308,1309],{"class":271}," \u002F\u002F [optional] shared-secret signature for the payload, see the signature section below\n",[170,1311,1312],{"class":172,"line":246},[170,1313,550],{"emptyLinePlaceholder":549},[170,1315,1316],{"class":172,"line":275},[170,1317,1318],{"class":271},"  \u002F\u002F Inline customer create \u002F prefilled profile (alternative: customer_id)\n",[170,1320,1321,1323,1325,1327,1329],{"class":172,"line":297},[170,1322,183],{"class":176},[170,1324,342],{"class":186},[170,1326,190],{"class":176},[170,1328,193],{"class":176},[170,1330,220],{"class":176},[170,1332,1333,1335,1338,1340,1342,1344,1347,1349],{"class":172,"line":303},[170,1334,226],{"class":176},[170,1336,1337],{"class":229},"reference",[170,1339,190],{"class":176},[170,1341,193],{"class":176},[170,1343,196],{"class":176},[170,1345,1346],{"class":199},"CLN240919000001",[170,1348,190],{"class":176},[170,1350,205],{"class":176},[170,1352,1353,1355,1358,1360,1362],{"class":172,"line":522},[170,1354,226],{"class":176},[170,1356,1357],{"class":229},"company_name",[170,1359,190],{"class":176},[170,1361,193],{"class":176},[170,1363,1364],{"class":176}," null,\n",[170,1366,1367,1369,1372,1374,1376,1378,1381,1383],{"class":172,"line":540},[170,1368,226],{"class":176},[170,1370,1371],{"class":229},"person_name",[170,1373,190],{"class":176},[170,1375,193],{"class":176},[170,1377,196],{"class":176},[170,1379,1380],{"class":199},"John",[170,1382,190],{"class":176},[170,1384,205],{"class":176},[170,1386,1387,1389,1392,1394,1396,1398,1401,1403],{"class":172,"line":546},[170,1388,226],{"class":176},[170,1390,1391],{"class":229},"person_surname",[170,1393,190],{"class":176},[170,1395,193],{"class":176},[170,1397,196],{"class":176},[170,1399,1400],{"class":199},"Doe",[170,1402,190],{"class":176},[170,1404,205],{"class":176},[170,1406,1407,1409,1412,1414,1416,1418,1421,1423,1425],{"class":172,"line":553},[170,1408,226],{"class":176},[170,1410,1411],{"class":229},"client_type",[170,1413,190],{"class":176},[170,1415,193],{"class":176},[170,1417,196],{"class":176},[170,1419,1420],{"class":199},"RESIDENT_INDIVIDUAL",[170,1422,190],{"class":176},[170,1424,410],{"class":176},[170,1426,1427],{"class":271}," \u002F\u002F [optional]\n",[170,1429,1430,1432,1435,1437,1439,1441,1444,1446],{"class":172,"line":567},[170,1431,226],{"class":176},[170,1433,1434],{"class":229},"id_type",[170,1436,190],{"class":176},[170,1438,193],{"class":176},[170,1440,196],{"class":176},[170,1442,1443],{"class":199},"SOUTH_AFRICAN_ID",[170,1445,190],{"class":176},[170,1447,205],{"class":176},[170,1449,1450,1452,1455,1457,1459,1461,1464,1466],{"class":172,"line":591},[170,1451,226],{"class":176},[170,1453,1454],{"class":229},"id_number",[170,1456,190],{"class":176},[170,1458,193],{"class":176},[170,1460,196],{"class":176},[170,1462,1463],{"class":199},"8007014800087",[170,1465,190],{"class":176},[170,1467,205],{"class":176},[170,1469,1470,1472,1474,1476,1478,1480,1483,1485],{"class":172,"line":613},[170,1471,226],{"class":176},[170,1473,671],{"class":229},[170,1475,190],{"class":176},[170,1477,193],{"class":176},[170,1479,196],{"class":176},[170,1481,1482],{"class":199},"johndoe@mail.com",[170,1484,190],{"class":176},[170,1486,205],{"class":176},[170,1488,1489,1491,1494,1496,1498,1500,1503,1505],{"class":172,"line":618},[170,1490,226],{"class":176},[170,1492,1493],{"class":229},"contact_number",[170,1495,190],{"class":176},[170,1497,193],{"class":176},[170,1499,196],{"class":176},[170,1501,1502],{"class":199},"+27831234567",[170,1504,190],{"class":176},[170,1506,205],{"class":176},[170,1508,1509,1511,1514,1516,1518],{"class":172,"line":623},[170,1510,226],{"class":176},[170,1512,1513],{"class":229},"billing_address",[170,1515,190],{"class":176},[170,1517,193],{"class":176},[170,1519,220],{"class":176},[170,1521,1522,1524,1527,1529,1531,1533,1536,1538],{"class":172,"line":647},[170,1523,1054],{"class":176},[170,1525,1526],{"class":493},"line1",[170,1528,190],{"class":176},[170,1530,193],{"class":176},[170,1532,196],{"class":176},[170,1534,1535],{"class":199},"1 Loop Street",[170,1537,190],{"class":176},[170,1539,205],{"class":176},[170,1541,1542,1544,1547,1549,1551,1553,1556,1558],{"class":172,"line":652},[170,1543,1054],{"class":176},[170,1545,1546],{"class":493},"line2",[170,1548,190],{"class":176},[170,1550,193],{"class":176},[170,1552,196],{"class":176},[170,1554,1555],{"class":199},"Floor 5",[170,1557,190],{"class":176},[170,1559,205],{"class":176},[170,1561,1562,1564,1567,1569,1571,1573,1576,1578],{"class":172,"line":666},[170,1563,1054],{"class":176},[170,1565,1566],{"class":493},"city_or_town",[170,1568,190],{"class":176},[170,1570,193],{"class":176},[170,1572,196],{"class":176},[170,1574,1575],{"class":199},"Cape Town",[170,1577,190],{"class":176},[170,1579,205],{"class":176},[170,1581,1582,1584,1587,1589,1591,1593,1596,1598],{"class":172,"line":690},[170,1583,1054],{"class":176},[170,1585,1586],{"class":493},"province_or_state",[170,1588,190],{"class":176},[170,1590,193],{"class":176},[170,1592,196],{"class":176},[170,1594,1595],{"class":199},"Western Cape",[170,1597,190],{"class":176},[170,1599,205],{"class":176},[170,1601,1602,1604,1607,1609,1611,1613,1616,1618],{"class":172,"line":712},[170,1603,1054],{"class":176},[170,1605,1606],{"class":493},"postal_or_zip_code",[170,1608,190],{"class":176},[170,1610,193],{"class":176},[170,1612,196],{"class":176},[170,1614,1615],{"class":199},"8001",[170,1617,190],{"class":176},[170,1619,205],{"class":176},[170,1621,1622,1624,1627,1629,1631,1633,1636],{"class":172,"line":717},[170,1623,1054],{"class":176},[170,1625,1626],{"class":493},"country",[170,1628,190],{"class":176},[170,1630,193],{"class":176},[170,1632,196],{"class":176},[170,1634,1635],{"class":199},"ZA",[170,1637,885],{"class":176},[170,1639,1640],{"class":172,"line":722},[170,1641,1092],{"class":176},[170,1643,1644,1646,1649,1651,1653],{"class":172,"line":728},[170,1645,226],{"class":176},[170,1647,1648],{"class":229},"shipping",[170,1650,190],{"class":176},[170,1652,193],{"class":176},[170,1654,220],{"class":176},[170,1656,1657,1659,1662,1664,1666,1668,1671,1673],{"class":172,"line":742},[170,1658,1054],{"class":176},[170,1660,1661],{"class":493},"contact_name",[170,1663,190],{"class":176},[170,1665,193],{"class":176},[170,1667,196],{"class":176},[170,1669,1670],{"class":199},"Jane Doe",[170,1672,190],{"class":176},[170,1674,205],{"class":176},[170,1676,1677,1679,1681,1683,1685,1687,1690,1692],{"class":172,"line":757},[170,1678,1054],{"class":176},[170,1680,1493],{"class":493},[170,1682,190],{"class":176},[170,1684,193],{"class":176},[170,1686,196],{"class":176},[170,1688,1689],{"class":199},"+27820000000",[170,1691,190],{"class":176},[170,1693,205],{"class":176},[170,1695,1696,1698,1701,1703,1705],{"class":172,"line":775},[170,1697,1054],{"class":176},[170,1699,1700],{"class":493},"address",[170,1702,190],{"class":176},[170,1704,193],{"class":176},[170,1706,220],{"class":176},[170,1708,1709,1712,1715,1717,1719,1721,1723,1725],{"class":172,"line":780},[170,1710,1711],{"class":176},"        \"",[170,1713,1526],{"class":1714},"swJcz",[170,1716,190],{"class":176},[170,1718,193],{"class":176},[170,1720,196],{"class":176},[170,1722,1535],{"class":199},[170,1724,190],{"class":176},[170,1726,205],{"class":176},[170,1728,1729,1731,1733,1735,1737,1739,1741,1743],{"class":172,"line":785},[170,1730,1711],{"class":176},[170,1732,1546],{"class":1714},[170,1734,190],{"class":176},[170,1736,193],{"class":176},[170,1738,196],{"class":176},[170,1740,1555],{"class":199},[170,1742,190],{"class":176},[170,1744,205],{"class":176},[170,1746,1747,1749,1751,1753,1755,1757,1759,1761],{"class":172,"line":791},[170,1748,1711],{"class":176},[170,1750,1566],{"class":1714},[170,1752,190],{"class":176},[170,1754,193],{"class":176},[170,1756,196],{"class":176},[170,1758,1575],{"class":199},[170,1760,190],{"class":176},[170,1762,205],{"class":176},[170,1764,1765,1767,1769,1771,1773,1775,1777,1779],{"class":172,"line":805},[170,1766,1711],{"class":176},[170,1768,1586],{"class":1714},[170,1770,190],{"class":176},[170,1772,193],{"class":176},[170,1774,196],{"class":176},[170,1776,1595],{"class":199},[170,1778,190],{"class":176},[170,1780,205],{"class":176},[170,1782,1783,1785,1787,1789,1791,1793,1795,1797],{"class":172,"line":817},[170,1784,1711],{"class":176},[170,1786,1606],{"class":1714},[170,1788,190],{"class":176},[170,1790,193],{"class":176},[170,1792,196],{"class":176},[170,1794,1615],{"class":199},[170,1796,190],{"class":176},[170,1798,205],{"class":176},[170,1800,1801,1803,1805,1807,1809,1811,1813],{"class":172,"line":829},[170,1802,1711],{"class":176},[170,1804,1626],{"class":1714},[170,1806,190],{"class":176},[170,1808,193],{"class":176},[170,1810,196],{"class":176},[170,1812,1635],{"class":199},[170,1814,885],{"class":176},[170,1816,1817],{"class":172,"line":841},[170,1818,1819],{"class":176},"      }\n",[170,1821,1822],{"class":172,"line":853},[170,1823,1092],{"class":176},[170,1825,1826,1828,1831,1833,1835],{"class":172,"line":865},[170,1827,226],{"class":176},[170,1829,1830],{"class":229},"metadata",[170,1832,190],{"class":176},[170,1834,193],{"class":176},[170,1836,220],{"class":176},[170,1838,1839,1841,1844,1846,1848,1850,1853,1855],{"class":172,"line":877},[170,1840,1054],{"class":176},[170,1842,1843],{"class":493},"custom_field_1",[170,1845,190],{"class":176},[170,1847,193],{"class":176},[170,1849,196],{"class":176},[170,1851,1852],{"class":199},"custom data 1",[170,1854,190],{"class":176},[170,1856,205],{"class":176},[170,1858,1859,1861,1864,1866,1868,1870,1873],{"class":172,"line":888},[170,1860,1054],{"class":176},[170,1862,1863],{"class":493},"custom_field_2",[170,1865,190],{"class":176},[170,1867,193],{"class":176},[170,1869,196],{"class":176},[170,1871,1872],{"class":199},"custom data 2",[170,1874,885],{"class":176},[170,1876,1877],{"class":172,"line":894},[170,1878,1118],{"class":176},[170,1880,1882],{"class":172,"line":1881},41,[170,1883,543],{"class":176},[170,1885,1887],{"class":172,"line":1886},42,[170,1888,550],{"emptyLinePlaceholder":549},[170,1890,1892],{"class":172,"line":1891},43,[170,1893,1894],{"class":271},"  \u002F\u002F Basket built from catalogue products — discount per line optional\n",[170,1896,1898,1900,1902,1904,1906],{"class":172,"line":1897},44,[170,1899,183],{"class":176},[170,1901,1038],{"class":186},[170,1903,190],{"class":176},[170,1905,193],{"class":176},[170,1907,802],{"class":176},[170,1909,1911],{"class":172,"line":1910},45,[170,1912,1049],{"class":176},[170,1914,1916,1918,1920,1922,1924,1926,1928,1930],{"class":172,"line":1915},46,[170,1917,1054],{"class":176},[170,1919,1057],{"class":229},[170,1921,190],{"class":176},[170,1923,193],{"class":176},[170,1925,196],{"class":176},[170,1927,1066],{"class":199},[170,1929,190],{"class":176},[170,1931,205],{"class":176},[170,1933,1935,1937,1939,1941,1943,1945],{"class":172,"line":1934},47,[170,1936,1054],{"class":176},[170,1938,1077],{"class":229},[170,1940,190],{"class":176},[170,1942,193],{"class":176},[170,1944,1084],{"class":493},[170,1946,205],{"class":176},[170,1948,1950,1952,1955,1957,1959,1961],{"class":172,"line":1949},48,[170,1951,1054],{"class":176},[170,1953,1954],{"class":229},"discount",[170,1956,190],{"class":176},[170,1958,193],{"class":176},[170,1960,499],{"class":493},[170,1962,1963],{"class":271}," \u002F\u002F discount amount for this item (advanced use)\n",[170,1965,1967],{"class":172,"line":1966},49,[170,1968,1092],{"class":176},[170,1970,1972],{"class":172,"line":1971},50,[170,1973,1049],{"class":176},[170,1975,1977,1979,1981,1983,1985,1987,1989,1991],{"class":172,"line":1976},51,[170,1978,1054],{"class":176},[170,1980,1057],{"class":229},[170,1982,190],{"class":176},[170,1984,193],{"class":176},[170,1986,196],{"class":176},[170,1988,1111],{"class":199},[170,1990,190],{"class":176},[170,1992,205],{"class":176},[170,1994,1996,1998,2000,2002,2004],{"class":172,"line":1995},52,[170,1997,1054],{"class":176},[170,1999,1077],{"class":229},[170,2001,190],{"class":176},[170,2003,193],{"class":176},[170,2005,2006],{"class":493}," 3\n",[170,2008,2010],{"class":172,"line":2009},53,[170,2011,1092],{"class":176},[170,2013,2015],{"class":172,"line":2014},54,[170,2016,550],{"emptyLinePlaceholder":549},[170,2018,2020],{"class":172,"line":2019},55,[170,2021,2022],{"class":271},"     \u002F\u002F ...when no product_id is passed a product can be created\n",[170,2024,2026],{"class":172,"line":2025},56,[170,2027,1049],{"class":176},[170,2029,2031,2033,2036,2038,2040,2042,2045,2047],{"class":172,"line":2030},57,[170,2032,1054],{"class":176},[170,2034,2035],{"class":229},"name",[170,2037,190],{"class":176},[170,2039,193],{"class":176},[170,2041,196],{"class":176},[170,2043,2044],{"class":199},"Generic Wooden Ball",[170,2046,190],{"class":176},[170,2048,205],{"class":176},[170,2050,2052,2054,2056,2058,2060,2062,2065,2067],{"class":172,"line":2051},58,[170,2053,1054],{"class":176},[170,2055,420],{"class":229},[170,2057,190],{"class":176},[170,2059,193],{"class":176},[170,2061,196],{"class":176},[170,2063,2064],{"class":199},"Good For Training And Recreational Purposes",[170,2066,190],{"class":176},[170,2068,205],{"class":176},[170,2070,2072,2074,2076,2078,2080,2082,2085,2087],{"class":172,"line":2071},59,[170,2073,1054],{"class":176},[170,2075,146],{"class":229},[170,2077,190],{"class":176},[170,2079,193],{"class":176},[170,2081,196],{"class":176},[170,2083,2084],{"class":199},"PRD-606075",[170,2086,190],{"class":176},[170,2088,205],{"class":176},[170,2090,2092,2094,2097,2099,2101,2103,2106,2108],{"class":172,"line":2091},60,[170,2093,1054],{"class":176},[170,2095,2096],{"class":229},"unit_label",[170,2098,190],{"class":176},[170,2100,193],{"class":176},[170,2102,196],{"class":176},[170,2104,2105],{"class":199},"each",[170,2107,190],{"class":176},[170,2109,205],{"class":176},[170,2111,2113,2115,2118,2120,2122,2124,2127,2129],{"class":172,"line":2112},61,[170,2114,1054],{"class":176},[170,2116,2117],{"class":229},"price_excl",[170,2119,190],{"class":176},[170,2121,193],{"class":176},[170,2123,196],{"class":176},[170,2125,2126],{"class":199},"2409.86",[170,2128,190],{"class":176},[170,2130,205],{"class":176},[170,2132,2134,2136,2139,2141,2143],{"class":172,"line":2133},62,[170,2135,1054],{"class":176},[170,2137,2138],{"class":229},"is_tax",[170,2140,190],{"class":176},[170,2142,193],{"class":176},[170,2144,2145],{"class":176}," false,\n",[170,2147,2149,2151,2154,2156,2158,2160,2163,2165],{"class":172,"line":2148},63,[170,2150,1054],{"class":176},[170,2152,2153],{"class":229},"pricing_type",[170,2155,190],{"class":176},[170,2157,193],{"class":176},[170,2159,196],{"class":176},[170,2161,2162],{"class":199},"RECURRING",[170,2164,190],{"class":176},[170,2166,205],{"class":176},[170,2168,2170,2172,2175,2177,2179,2181,2184,2186],{"class":172,"line":2169},64,[170,2171,1054],{"class":176},[170,2173,2174],{"class":229},"product_status",[170,2176,190],{"class":176},[170,2178,193],{"class":176},[170,2180,196],{"class":176},[170,2182,2183],{"class":199},"ACTIVE",[170,2185,190],{"class":176},[170,2187,205],{"class":176},[170,2189,2191,2193,2196,2198,2200,2202,2204,2206],{"class":172,"line":2190},65,[170,2192,1054],{"class":176},[170,2194,2195],{"class":229},"billing_period",[170,2197,190],{"class":176},[170,2199,193],{"class":176},[170,2201,196],{"class":176},[170,2203,461],{"class":199},[170,2205,190],{"class":176},[170,2207,205],{"class":176},[170,2209,2211,2213,2216,2218,2220],{"class":172,"line":2210},66,[170,2212,1054],{"class":176},[170,2214,2215],{"class":229},"custom_period",[170,2217,190],{"class":176},[170,2219,193],{"class":176},[170,2221,1364],{"class":176},[170,2223,2225,2227,2230,2232,2234],{"class":172,"line":2224},67,[170,2226,1054],{"class":176},[170,2228,2229],{"class":229},"custom_interval",[170,2231,190],{"class":176},[170,2233,193],{"class":176},[170,2235,1364],{"class":176},[170,2237,2239,2241,2244,2246,2248],{"class":172,"line":2238},68,[170,2240,1054],{"class":176},[170,2242,2243],{"class":229},"picture_default",[170,2245,190],{"class":176},[170,2247,193],{"class":176},[170,2249,1364],{"class":176},[170,2251,2253,2255,2258,2260,2262,2265],{"class":172,"line":2252},69,[170,2254,1054],{"class":176},[170,2256,2257],{"class":229},"pictures",[170,2259,190],{"class":176},[170,2261,193],{"class":176},[170,2263,2264],{"class":176}," {}",[170,2266,2267],{"class":271}," \u002F\u002F {...} media bundle when uploading gallery assets programmatically\n",[170,2269,2271],{"class":172,"line":2270},70,[170,2272,1118],{"class":176},[170,2274,2276],{"class":172,"line":2275},71,[170,2277,1123],{"class":176},[170,2279,2281],{"class":172,"line":2280},72,[170,2282,550],{"emptyLinePlaceholder":549},[170,2284,2286,2288,2290,2292,2294],{"class":172,"line":2285},73,[170,2287,183],{"class":176},[170,2289,733],{"class":186},[170,2291,190],{"class":176},[170,2293,193],{"class":176},[170,2295,220],{"class":176},[170,2297,2299,2301,2303,2305,2307],{"class":172,"line":2298},74,[170,2300,226],{"class":176},[170,2302,747],{"class":229},[170,2304,190],{"class":176},[170,2306,193],{"class":176},[170,2308,754],{"class":176},[170,2310,2312,2314,2316,2318,2320],{"class":172,"line":2311},75,[170,2313,226],{"class":176},[170,2315,762],{"class":229},[170,2317,190],{"class":176},[170,2319,193],{"class":176},[170,2321,2322],{"class":176}," true\n",[170,2324,2326],{"class":172,"line":2325},76,[170,2327,543],{"class":176},[170,2329,2331],{"class":172,"line":2330},77,[170,2332,550],{"emptyLinePlaceholder":549},[170,2334,2336],{"class":172,"line":2335},78,[170,2337,2338],{"class":271},"  \u002F\u002F Restrict rails shown — omit array to expose every method toggled on for the merchant\n",[170,2340,2342,2344,2347,2349,2351],{"class":172,"line":2341},79,[170,2343,183],{"class":176},[170,2345,2346],{"class":186},"payment",[170,2348,190],{"class":176},[170,2350,193],{"class":176},[170,2352,220],{"class":176},[170,2354,2356,2358,2361,2363,2365,2367,2369,2372,2374,2376,2378,2381,2383],{"class":172,"line":2355},80,[170,2357,226],{"class":176},[170,2359,2360],{"class":229},"payment_methods",[170,2362,190],{"class":176},[170,2364,193],{"class":176},[170,2366,258],{"class":176},[170,2368,190],{"class":176},[170,2370,2371],{"class":199},"CARD",[170,2373,190],{"class":176},[170,2375,410],{"class":176},[170,2377,196],{"class":176},[170,2379,2380],{"class":199},"ZAPPER",[170,2382,190],{"class":176},[170,2384,2385],{"class":176},"]\n",[170,2387,2389],{"class":172,"line":2388},81,[170,2390,543],{"class":176},[170,2392,2394],{"class":172,"line":2393},82,[170,2395,550],{"emptyLinePlaceholder":549},[170,2397,2399,2401,2403,2405,2407],{"class":172,"line":2398},83,[170,2400,183],{"class":176},[170,2402,1195],{"class":186},[170,2404,190],{"class":176},[170,2406,193],{"class":176},[170,2408,220],{"class":176},[170,2410,2412],{"class":172,"line":2411},84,[170,2413,2414],{"class":271},"    \u002F\u002F Successful redirect URLs may append `signature` when signatures are configured.\n",[170,2416,2418,2420,2422,2424,2426,2428,2430,2432],{"class":172,"line":2417},85,[170,2419,226],{"class":176},[170,2421,1208],{"class":229},[170,2423,190],{"class":176},[170,2425,193],{"class":176},[170,2427,196],{"class":176},[170,2429,1217],{"class":199},[170,2431,190],{"class":176},[170,2433,205],{"class":176},[170,2435,2437,2439,2441,2443,2445,2447,2449],{"class":172,"line":2436},86,[170,2438,226],{"class":176},[170,2440,1231],{"class":229},[170,2442,190],{"class":176},[170,2444,193],{"class":176},[170,2446,196],{"class":176},[170,2448,1240],{"class":199},[170,2450,885],{"class":176},[170,2452,2454],{"class":172,"line":2453},87,[170,2455,543],{"class":176},[170,2457,2459],{"class":172,"line":2458},88,[170,2460,550],{"emptyLinePlaceholder":549},[170,2462,2464,2466,2469,2471,2473],{"class":172,"line":2463},89,[170,2465,183],{"class":176},[170,2467,2468],{"class":186},"settings",[170,2470,190],{"class":176},[170,2472,193],{"class":176},[170,2474,220],{"class":176},[170,2476,2478,2480,2483,2485,2487,2490],{"class":172,"line":2477},90,[170,2479,226],{"class":176},[170,2481,2482],{"class":229},"expiry_time",[170,2484,190],{"class":176},[170,2486,193],{"class":176},[170,2488,2489],{"class":493}," 1440",[170,2491,2492],{"class":271}," \u002F\u002F minutes until checkout link lapses — omit when the link never expires (default)\n",[170,2494,2496],{"class":172,"line":2495},91,[170,2497,543],{"class":176},[170,2499,2501],{"class":172,"line":2500},92,[170,2502,550],{"emptyLinePlaceholder":549},[170,2504,2506,2508,2510,2512,2514],{"class":172,"line":2505},93,[170,2507,183],{"class":176},[170,2509,558],{"class":186},[170,2511,190],{"class":176},[170,2513,193],{"class":176},[170,2515,220],{"class":176},[170,2517,2519,2521,2523,2525,2527,2529,2532,2534],{"class":172,"line":2518},94,[170,2520,226],{"class":176},[170,2522,572],{"class":229},[170,2524,190],{"class":176},[170,2526,193],{"class":176},[170,2528,196],{"class":176},[170,2530,2531],{"class":199},"Pay",[170,2533,190],{"class":176},[170,2535,205],{"class":176},[170,2537,2539,2541,2543,2545,2547,2549,2552,2554,2556],{"class":172,"line":2538},95,[170,2540,226],{"class":176},[170,2542,187],{"class":229},[170,2544,190],{"class":176},[170,2546,193],{"class":176},[170,2548,196],{"class":176},[170,2550,2551],{"class":199},"PAGE",[170,2553,190],{"class":176},[170,2555,410],{"class":176},[170,2557,2558],{"class":271}," \u002F\u002F or \"EMBED\" for iframe-style hosting or in-app payments\n",[170,2560,2562,2564,2567,2569,2571],{"class":172,"line":2561},96,[170,2563,226],{"class":176},[170,2565,2566],{"class":229},"is_display_cancel_button",[170,2568,190],{"class":176},[170,2570,193],{"class":176},[170,2572,754],{"class":176},[170,2574,2576,2578,2581,2583,2585],{"class":172,"line":2575},97,[170,2577,226],{"class":176},[170,2579,2580],{"class":229},"is_display_total",[170,2582,190],{"class":176},[170,2584,193],{"class":176},[170,2586,754],{"class":176},[170,2588,2590,2592,2595,2597,2599,2601],{"class":172,"line":2589},98,[170,2591,226],{"class":176},[170,2593,2594],{"class":229},"is_display_items",[170,2596,190],{"class":176},[170,2598,193],{"class":176},[170,2600,1157],{"class":176},[170,2602,2603],{"class":271}," \u002F\u002F cart line detail list\n",[170,2605,2607,2609,2612,2614,2616],{"class":172,"line":2606},99,[170,2608,226],{"class":176},[170,2610,2611],{"class":229},"brand",[170,2613,190],{"class":176},[170,2615,193],{"class":176},[170,2617,220],{"class":176},[170,2619,2621,2623,2626,2628,2630,2632,2635,2637],{"class":172,"line":2620},100,[170,2622,1054],{"class":176},[170,2624,2625],{"class":493},"primary",[170,2627,190],{"class":176},[170,2629,193],{"class":176},[170,2631,196],{"class":176},[170,2633,2634],{"class":199},"#00DC82",[170,2636,190],{"class":176},[170,2638,205],{"class":176},[170,2640,2642,2644,2647,2649,2651,2653,2656],{"class":172,"line":2641},101,[170,2643,1054],{"class":176},[170,2645,2646],{"class":493},"secondary",[170,2648,190],{"class":176},[170,2650,193],{"class":176},[170,2652,196],{"class":176},[170,2654,2655],{"class":199},"#CCCCCC",[170,2657,885],{"class":176},[170,2659,2661],{"class":172,"line":2660},102,[170,2662,1118],{"class":176},[170,2664,2666],{"class":172,"line":2665},103,[170,2667,300],{"class":176},[170,2669,2671],{"class":172,"line":2670},104,[170,2672,306],{"class":176},[139,2674,2676],{"id":2675},"example-embed-payments","Example (Embed payments)",[135,2678,2679],{},"Embed payments into your mobile app or frameworks like React, Angular or Vue",[161,2681,2683],{"className":163,"code":2682,"language":165,"meta":166,"style":166},"{\n  \"type\": \"PRODUCTS_AND_SUBSCRIPTIONS\",\n\n  \"customization\": {\n    \"button_text\": \"Pay now\", \u002F\u002F [optional] button text — default label if omitted depends on checkout\n    \"type\": \"EMBED\", \u002F\u002F show embedded screen that can be displayed in a iFrame or WebView, this will also send message events instead of a redirect\n    \"is_display_cancel_button\": false, \u002F\u002F hide the cancel button, if true will trigger a 'payment.cancelled' message\n    \"is_display_total\": false, \u002F\u002F hide the total amount\n    \"is_display_items\": false, \u002F\u002F hide the checkout items\n    \"brand\": {\n      \"primary\": \"#00DC82\", \u002F\u002F brand according to your app\n      \"secondary\": \"#CCCCCC\"\n    }\n  },\n\n  \"customer_id\": \"cus_abc123...\", \u002F\u002F existing customer record; alternatively pass full customer object\n\n  \u002F\u002F Catalog lines (one-off and recurring products may be mixed — see Products reference)\n  \"items\": [\n    {\n      \"product_id\": \"pro_abc123...\",\n      \"qty\": 2 \u002F\u002F default 1 when omitted\n    },\n    {\n      \"product_id\": \"pro_xyz789...\"\n    }\n  ],\n\n  \u002F\u002F Invoice for this checkout \u002F subscriptions created from it\n  \"invoice\": {\n    \"is_generate\": true, \u002F\u002F generate invoice for the basket or subscription billing\n    \"is_send\": true \u002F\u002F email invoice when paid\n  },\n}\n",[146,2684,2685,2689,2707,2711,2723,2743,2765,2781,2796,2811,2823,2844,2860,2864,2868,2872,2892,2896,2900,2912,2916,2934,2948,2952,2956,2972,2976,2980,2984,2988,3000,3014,3028,3032],{"__ignoreMap":166},[170,2686,2687],{"class":172,"line":173},[170,2688,177],{"class":176},[170,2690,2691,2693,2695,2697,2699,2701,2703,2705],{"class":172,"line":180},[170,2692,183],{"class":176},[170,2694,187],{"class":186},[170,2696,190],{"class":176},[170,2698,193],{"class":176},[170,2700,196],{"class":176},[170,2702,927],{"class":199},[170,2704,190],{"class":176},[170,2706,205],{"class":176},[170,2708,2709],{"class":172,"line":208},[170,2710,550],{"emptyLinePlaceholder":549},[170,2712,2713,2715,2717,2719,2721],{"class":172,"line":223},[170,2714,183],{"class":176},[170,2716,558],{"class":186},[170,2718,190],{"class":176},[170,2720,193],{"class":176},[170,2722,220],{"class":176},[170,2724,2725,2727,2729,2731,2733,2735,2737,2739,2741],{"class":172,"line":246},[170,2726,226],{"class":176},[170,2728,572],{"class":229},[170,2730,190],{"class":176},[170,2732,193],{"class":176},[170,2734,196],{"class":176},[170,2736,962],{"class":199},[170,2738,190],{"class":176},[170,2740,410],{"class":176},[170,2742,967],{"class":271},[170,2744,2745,2747,2749,2751,2753,2755,2758,2760,2762],{"class":172,"line":275},[170,2746,226],{"class":176},[170,2748,187],{"class":229},[170,2750,190],{"class":176},[170,2752,193],{"class":176},[170,2754,196],{"class":176},[170,2756,2757],{"class":199},"EMBED",[170,2759,190],{"class":176},[170,2761,410],{"class":176},[170,2763,2764],{"class":271}," \u002F\u002F show embedded screen that can be displayed in a iFrame or WebView, this will also send message events instead of a redirect\n",[170,2766,2767,2769,2771,2773,2775,2778],{"class":172,"line":297},[170,2768,226],{"class":176},[170,2770,2566],{"class":229},[170,2772,190],{"class":176},[170,2774,193],{"class":176},[170,2776,2777],{"class":176}," false,",[170,2779,2780],{"class":271}," \u002F\u002F hide the cancel button, if true will trigger a 'payment.cancelled' message\n",[170,2782,2783,2785,2787,2789,2791,2793],{"class":172,"line":303},[170,2784,226],{"class":176},[170,2786,2580],{"class":229},[170,2788,190],{"class":176},[170,2790,193],{"class":176},[170,2792,2777],{"class":176},[170,2794,2795],{"class":271}," \u002F\u002F hide the total amount\n",[170,2797,2798,2800,2802,2804,2806,2808],{"class":172,"line":522},[170,2799,226],{"class":176},[170,2801,2594],{"class":229},[170,2803,190],{"class":176},[170,2805,193],{"class":176},[170,2807,2777],{"class":176},[170,2809,2810],{"class":271}," \u002F\u002F hide the checkout items\n",[170,2812,2813,2815,2817,2819,2821],{"class":172,"line":540},[170,2814,226],{"class":176},[170,2816,2611],{"class":229},[170,2818,190],{"class":176},[170,2820,193],{"class":176},[170,2822,220],{"class":176},[170,2824,2825,2827,2829,2831,2833,2835,2837,2839,2841],{"class":172,"line":546},[170,2826,1054],{"class":176},[170,2828,2625],{"class":493},[170,2830,190],{"class":176},[170,2832,193],{"class":176},[170,2834,196],{"class":176},[170,2836,2634],{"class":199},[170,2838,190],{"class":176},[170,2840,410],{"class":176},[170,2842,2843],{"class":271}," \u002F\u002F brand according to your app\n",[170,2845,2846,2848,2850,2852,2854,2856,2858],{"class":172,"line":553},[170,2847,1054],{"class":176},[170,2849,2646],{"class":493},[170,2851,190],{"class":176},[170,2853,193],{"class":176},[170,2855,196],{"class":176},[170,2857,2655],{"class":199},[170,2859,885],{"class":176},[170,2861,2862],{"class":172,"line":567},[170,2863,1118],{"class":176},[170,2865,2866],{"class":172,"line":591},[170,2867,543],{"class":176},[170,2869,2870],{"class":172,"line":613},[170,2871,550],{"emptyLinePlaceholder":549},[170,2873,2874,2876,2878,2880,2882,2884,2886,2888,2890],{"class":172,"line":618},[170,2875,183],{"class":176},[170,2877,334],{"class":186},[170,2879,190],{"class":176},[170,2881,193],{"class":176},[170,2883,196],{"class":176},[170,2885,1015],{"class":199},[170,2887,190],{"class":176},[170,2889,410],{"class":176},[170,2891,1022],{"class":271},[170,2893,2894],{"class":172,"line":623},[170,2895,550],{"emptyLinePlaceholder":549},[170,2897,2898],{"class":172,"line":647},[170,2899,1031],{"class":271},[170,2901,2902,2904,2906,2908,2910],{"class":172,"line":652},[170,2903,183],{"class":176},[170,2905,1038],{"class":186},[170,2907,190],{"class":176},[170,2909,193],{"class":176},[170,2911,802],{"class":176},[170,2913,2914],{"class":172,"line":666},[170,2915,1049],{"class":176},[170,2917,2918,2920,2922,2924,2926,2928,2930,2932],{"class":172,"line":690},[170,2919,1054],{"class":176},[170,2921,1057],{"class":229},[170,2923,190],{"class":176},[170,2925,193],{"class":176},[170,2927,196],{"class":176},[170,2929,1066],{"class":199},[170,2931,190],{"class":176},[170,2933,205],{"class":176},[170,2935,2936,2938,2940,2942,2944,2946],{"class":172,"line":712},[170,2937,1054],{"class":176},[170,2939,1077],{"class":229},[170,2941,190],{"class":176},[170,2943,193],{"class":176},[170,2945,1084],{"class":493},[170,2947,1087],{"class":271},[170,2949,2950],{"class":172,"line":717},[170,2951,1092],{"class":176},[170,2953,2954],{"class":172,"line":722},[170,2955,1049],{"class":176},[170,2957,2958,2960,2962,2964,2966,2968,2970],{"class":172,"line":728},[170,2959,1054],{"class":176},[170,2961,1057],{"class":229},[170,2963,190],{"class":176},[170,2965,193],{"class":176},[170,2967,196],{"class":176},[170,2969,1111],{"class":199},[170,2971,885],{"class":176},[170,2973,2974],{"class":172,"line":742},[170,2975,1118],{"class":176},[170,2977,2978],{"class":172,"line":757},[170,2979,1123],{"class":176},[170,2981,2982],{"class":172,"line":775},[170,2983,550],{"emptyLinePlaceholder":549},[170,2985,2986],{"class":172,"line":780},[170,2987,1132],{"class":271},[170,2989,2990,2992,2994,2996,2998],{"class":172,"line":785},[170,2991,183],{"class":176},[170,2993,733],{"class":186},[170,2995,190],{"class":176},[170,2997,193],{"class":176},[170,2999,220],{"class":176},[170,3001,3002,3004,3006,3008,3010,3012],{"class":172,"line":791},[170,3003,226],{"class":176},[170,3005,747],{"class":229},[170,3007,190],{"class":176},[170,3009,193],{"class":176},[170,3011,1157],{"class":176},[170,3013,1160],{"class":271},[170,3015,3016,3018,3020,3022,3024,3026],{"class":172,"line":805},[170,3017,226],{"class":176},[170,3019,762],{"class":229},[170,3021,190],{"class":176},[170,3023,193],{"class":176},[170,3025,769],{"class":176},[170,3027,1175],{"class":271},[170,3029,3030],{"class":172,"line":817},[170,3031,543],{"class":176},[170,3033,3034],{"class":172,"line":829},[170,3035,306],{"class":176},[135,3037,3038],{},"The following message events will be sent to your app via a native bridge; use them to drive the next action:",[3040,3041,3042,3048,3053,3058,3063,3068],"ul",{},[3043,3044,3045],"li",{},[146,3046,3047],{},"payment.loaded",[3043,3049,3050],{},[146,3051,3052],{},"payment.cancelled",[3043,3054,3055],{},[146,3056,3057],{},"payment.failed",[3043,3059,3060],{},[146,3061,3062],{},"payment.successful",[3043,3064,3065],{},[146,3066,3067],{},"payment.pending",[3043,3069,3070],{},[146,3071,3072],{},"payment.closed",[135,3074,3075,3076,3078],{},"The following data will be sent in the message on ",[146,3077,3062],{}," events to verify the transaction:",[161,3080,3082],{"className":163,"code":3081,"language":165,"meta":166,"style":166},"{\n  \"source\": \"kwik-payments\",\n  \"event\": \"payment.successful\",\n  \"sessionId\": \"ses_abc123...\",\n  \"transactionId\": \"tra_abc123...\",\n  \"customerId\": \"cus_abc123...\",\n  \"status\": \"PAID\"\n}\n",[146,3083,3084,3088,3108,3127,3147,3167,3186,3204],{"__ignoreMap":166},[170,3085,3086],{"class":172,"line":173},[170,3087,177],{"class":176},[170,3089,3090,3092,3095,3097,3099,3101,3104,3106],{"class":172,"line":180},[170,3091,183],{"class":176},[170,3093,3094],{"class":186},"source",[170,3096,190],{"class":176},[170,3098,193],{"class":176},[170,3100,196],{"class":176},[170,3102,3103],{"class":199},"kwik-payments",[170,3105,190],{"class":176},[170,3107,205],{"class":176},[170,3109,3110,3112,3115,3117,3119,3121,3123,3125],{"class":172,"line":208},[170,3111,183],{"class":176},[170,3113,3114],{"class":186},"event",[170,3116,190],{"class":176},[170,3118,193],{"class":176},[170,3120,196],{"class":176},[170,3122,3062],{"class":199},[170,3124,190],{"class":176},[170,3126,205],{"class":176},[170,3128,3129,3131,3134,3136,3138,3140,3143,3145],{"class":172,"line":223},[170,3130,183],{"class":176},[170,3132,3133],{"class":186},"sessionId",[170,3135,190],{"class":176},[170,3137,193],{"class":176},[170,3139,196],{"class":176},[170,3141,3142],{"class":199},"ses_abc123...",[170,3144,190],{"class":176},[170,3146,205],{"class":176},[170,3148,3149,3151,3154,3156,3158,3160,3163,3165],{"class":172,"line":246},[170,3150,183],{"class":176},[170,3152,3153],{"class":186},"transactionId",[170,3155,190],{"class":176},[170,3157,193],{"class":176},[170,3159,196],{"class":176},[170,3161,3162],{"class":199},"tra_abc123...",[170,3164,190],{"class":176},[170,3166,205],{"class":176},[170,3168,3169,3171,3174,3176,3178,3180,3182,3184],{"class":172,"line":275},[170,3170,183],{"class":176},[170,3172,3173],{"class":186},"customerId",[170,3175,190],{"class":176},[170,3177,193],{"class":176},[170,3179,196],{"class":176},[170,3181,1015],{"class":199},[170,3183,190],{"class":176},[170,3185,205],{"class":176},[170,3187,3188,3190,3193,3195,3197,3199,3202],{"class":172,"line":297},[170,3189,183],{"class":176},[170,3191,3192],{"class":186},"status",[170,3194,190],{"class":176},[170,3196,193],{"class":176},[170,3198,196],{"class":176},[170,3200,3201],{"class":199},"PAID",[170,3203,885],{"class":176},[170,3205,3206],{"class":172,"line":303},[170,3207,306],{"class":176},[135,3209,3075,3210,3212],{},[146,3211,3057],{}," events:",[161,3214,3216],{"className":163,"code":3215,"language":165,"meta":166,"style":166},"{\n  \"source\": \"kwik-payments\",\n  \"event\": \"payment.failed\",\n  \"sessionId\": \"ses_abc123...\",\n  \"transactionId\": \"tra_abc123...\",\n  \"customerId\": \"cus_abc123...\",\n  \"status\": \"DECLINED\",\n  \"message\": \"Your transaction was declined due to insufficient funds\"\n}\n",[146,3217,3218,3222,3240,3258,3276,3294,3312,3331,3349],{"__ignoreMap":166},[170,3219,3220],{"class":172,"line":173},[170,3221,177],{"class":176},[170,3223,3224,3226,3228,3230,3232,3234,3236,3238],{"class":172,"line":180},[170,3225,183],{"class":176},[170,3227,3094],{"class":186},[170,3229,190],{"class":176},[170,3231,193],{"class":176},[170,3233,196],{"class":176},[170,3235,3103],{"class":199},[170,3237,190],{"class":176},[170,3239,205],{"class":176},[170,3241,3242,3244,3246,3248,3250,3252,3254,3256],{"class":172,"line":208},[170,3243,183],{"class":176},[170,3245,3114],{"class":186},[170,3247,190],{"class":176},[170,3249,193],{"class":176},[170,3251,196],{"class":176},[170,3253,3057],{"class":199},[170,3255,190],{"class":176},[170,3257,205],{"class":176},[170,3259,3260,3262,3264,3266,3268,3270,3272,3274],{"class":172,"line":223},[170,3261,183],{"class":176},[170,3263,3133],{"class":186},[170,3265,190],{"class":176},[170,3267,193],{"class":176},[170,3269,196],{"class":176},[170,3271,3142],{"class":199},[170,3273,190],{"class":176},[170,3275,205],{"class":176},[170,3277,3278,3280,3282,3284,3286,3288,3290,3292],{"class":172,"line":246},[170,3279,183],{"class":176},[170,3281,3153],{"class":186},[170,3283,190],{"class":176},[170,3285,193],{"class":176},[170,3287,196],{"class":176},[170,3289,3162],{"class":199},[170,3291,190],{"class":176},[170,3293,205],{"class":176},[170,3295,3296,3298,3300,3302,3304,3306,3308,3310],{"class":172,"line":275},[170,3297,183],{"class":176},[170,3299,3173],{"class":186},[170,3301,190],{"class":176},[170,3303,193],{"class":176},[170,3305,196],{"class":176},[170,3307,1015],{"class":199},[170,3309,190],{"class":176},[170,3311,205],{"class":176},[170,3313,3314,3316,3318,3320,3322,3324,3327,3329],{"class":172,"line":297},[170,3315,183],{"class":176},[170,3317,3192],{"class":186},[170,3319,190],{"class":176},[170,3321,193],{"class":176},[170,3323,196],{"class":176},[170,3325,3326],{"class":199},"DECLINED",[170,3328,190],{"class":176},[170,3330,205],{"class":176},[170,3332,3333,3335,3338,3340,3342,3344,3347],{"class":172,"line":303},[170,3334,183],{"class":176},[170,3336,3337],{"class":186},"message",[170,3339,190],{"class":176},[170,3341,193],{"class":176},[170,3343,196],{"class":176},[170,3345,3346],{"class":199},"Your transaction was declined due to insufficient funds",[170,3348,885],{"class":176},[170,3350,3351],{"class":172,"line":522},[170,3352,306],{"class":176},[139,3354,3356],{"id":3355},"request-parameters","Request Parameters",[135,3358,3359,3360,3364,3365,3368,3369,3372,3373,3375,3376,3378,3379,3381],{},"Fields below appear in the ",[337,3361,3363],{"href":3362},"#example-basic","request body examples"," on this page. ",[321,3366,3367],{},"Y"," = required for all requests, ",[321,3370,3371],{},"C"," = required or applicable depending on ",[146,3374,187],{}," and whether you pass ",[146,3377,334],{}," vs inline ",[146,3380,342],{},".",[3383,3384,3385,3415],"table",{},[3386,3387,3388],"thead",{},[3389,3390,3391,3400,3403,3406,3412],"tr",{},[3392,3393,3395],"th",{"align":3394},"left",[3396,3397,3399],"div",{"style":3398},"width:100px","Field",[3392,3401,3402],{"align":3394},"Required",[3392,3404,3405],{"align":3394},"Type",[3392,3407,3408],{"align":3394},[3396,3409,3411],{"style":3410},"width:300px","Description",[3392,3413,3414],{"align":3394},"Example",[3416,3417,3418,3441,3461,3476,3491,3512,3526,3541,3557,3585,3601,3623,3643,3661,3677,3693,3709,3725,3743,3764,3783,3801,3818,3834,3850,3869,3882,3898,3920,3936,3951,3966,3981,3995,4025,4051,4066,4084,4099,4113,4127,4141,4155,4169,4193,4207,4221,4235,4249,4263,4277,4291,4309,4326,4341,4355,4372,4389,4410,4427,4472,4487,4501,4514,4539,4553,4567,4581,4595],"tbody",{},[3389,3419,3420,3423,3425,3428,3437],{},[3421,3422,187],"td",{"align":3394},[3421,3424,3367],{"align":3394},[3421,3426,3427],{"align":3394},"ENUM",[3421,3429,3430,3431,3433,3434,3436],{"align":3394},"Checkout mode: ",[146,3432,200],{}," (flexible \u002F donation-style) or ",[146,3435,927],{}," (catalog line items)",[3421,3438,3439],{"align":3394},[146,3440,200],{},[3389,3442,3443,3445,3447,3450,3458],{},[3421,3444,213],{"align":3394},[3421,3446,3371],{"align":3394},[3421,3448,3449],{"align":3394},"Object",[3421,3451,3452,3453,3455,3456],{"align":3394},"Present when ",[146,3454,187],{}," is ",[146,3457,200],{},[3421,3459,3460],{"align":3394},"See basic and donation examples",[3389,3462,3463,3466,3468,3471,3474],{},[3421,3464,3465],{"align":3394},"item.title",[3421,3467,3371],{"align":3394},[3421,3469,3470],{"align":3394},"String",[3421,3472,3473],{"align":3394},"Product or payment title; shown on the checkout and invoice",[3421,3475,239],{"align":3394},[3389,3477,3478,3481,3484,3486,3489],{},[3421,3479,3480],{"align":3394},"item.description",[3421,3482,3483],{"align":3394},"N",[3421,3485,3470],{"align":3394},[3421,3487,3488],{"align":3394},"Optional longer product description",[3421,3490,429],{"align":3394},[3389,3492,3493,3496,3498,3501,3507],{},[3421,3494,3495],{"align":3394},"item.frequency",[3421,3497,3483],{"align":3394},[3421,3499,3500],{"align":3394},"Array",[3421,3502,3503,3504,3506],{"align":3394},"Frequencies the payer can choose (e.g. one-time and subscriptions). Defaults to ",[146,3505,263],{}," if omitted",[3421,3508,3509],{"align":3394},[146,3510,3511],{},"[\"ONE_TIME\", \"MONTHLY\", \"ANNUALLY\"]",[3389,3513,3514,3517,3519,3521,3524],{},[3421,3515,3516],{"align":3394},"item.amount",[3421,3518,3483],{"align":3394},[3421,3520,3470],{"align":3394},[3421,3522,3523],{"align":3394},"Preset amount; if omitted the user can enter an amount",[3421,3525,289],{"align":3394},[3389,3527,3528,3531,3533,3535,3538],{},[3421,3529,3530],{"align":3394},"item.amount_options",[3421,3532,3483],{"align":3394},[3421,3534,3500],{"align":3394},[3421,3536,3537],{"align":3394},"Preset amounts the user can pick from, max 5 amounts",[3421,3539,3540],{"align":3394},"[50.00, 100.00, 150.00, 200.00, 250.00]",[3389,3542,3543,3546,3548,3551,3554],{},[3421,3544,3545],{"align":3394},"item.amount_max",[3421,3547,3483],{"align":3394},[3421,3549,3550],{"align":3394},"Number",[3421,3552,3553],{"align":3394},"Maximum amount allowed when the user enters an amount",[3421,3555,3556],{"align":3394},"3000.00",[3389,3558,3559,3561,3563,3565,3582],{},[3421,3560,1038],{"align":3394},[3421,3562,3371],{"align":3394},[3421,3564,3500],{"align":3394},[3421,3566,3452,3567,3455,3569,3571,3572,3574,3575,3577,3578],{"align":3394},[146,3568,187],{},[146,3570,927],{},"; each row either references ",[146,3573,1057],{}," or defines an inline product (omit ",[146,3576,1057],{},"), see ",[337,3579,3581],{"href":3580},"\u002Freference\u002Fproducts","products",[3421,3583,3584],{"align":3394},"See examples",[3389,3586,3587,3592,3594,3596,3599],{},[3421,3588,1038,3589,3591],{"align":3394},[170,3590],{},".product_id",[3421,3593,3371],{"align":3394},[3421,3595,3470],{"align":3394},[3421,3597,3598],{"align":3394},"Catalog product id when referencing an existing product; omit for an inline-defined line item",[3421,3600,1066],{"align":3394},[3389,3602,3603,3608,3610,3613,3620],{},[3421,3604,1038,3605,3607],{"align":3394},[170,3606],{},".qty",[3421,3609,3483],{"align":3394},[3421,3611,3612],{"align":3394},"Integer",[3421,3614,3615,3616,3619],{"align":3394},"Quantity for this line item (default ",[146,3617,3618],{},"1",")",[3421,3621,3622],{"align":3394},"2",[3389,3624,3625,3630,3632,3634,3640],{},[3421,3626,1038,3627,3629],{"align":3394},[170,3628],{},".discount",[3421,3631,3483],{"align":3394},[3421,3633,3550],{"align":3394},[3421,3635,3636,3637,3639],{"align":3394},"Discount amount for catalog lines (",[146,3638,1057],{}," present), advanced use",[3421,3641,3642],{"align":3394},"100.00",[3389,3644,3645,3650,3652,3654,3659],{},[3421,3646,1038,3647,3649],{"align":3394},[170,3648],{},".name",[3421,3651,3371],{"align":3394},[3421,3653,3470],{"align":3394},[3421,3655,3656,3657,3619],{"align":3394},"Product name when defining an inline item (no ",[146,3658,1057],{},[3421,3660,2044],{"align":3394},[3389,3662,3663,3668,3670,3672,3675],{},[3421,3664,1038,3665,3667],{"align":3394},[170,3666],{},".description",[3421,3669,3483],{"align":3394},[3421,3671,3470],{"align":3394},[3421,3673,3674],{"align":3394},"Inline item description",[3421,3676,2064],{"align":3394},[3389,3678,3679,3684,3686,3688,3691],{},[3421,3680,1038,3681,3683],{"align":3394},[170,3682],{},".code",[3421,3685,3371],{"align":3394},[3421,3687,3470],{"align":3394},[3421,3689,3690],{"align":3394},"Unique product code; record may be created when unique",[3421,3692,2084],{"align":3394},[3389,3694,3695,3700,3702,3704,3707],{},[3421,3696,1038,3697,3699],{"align":3394},[170,3698],{},".unit_label",[3421,3701,3483],{"align":3394},[3421,3703,3470],{"align":3394},[3421,3705,3706],{"align":3394},"Unit label",[3421,3708,2105],{"align":3394},[3389,3710,3711,3716,3718,3720,3723],{},[3421,3712,1038,3713,3715],{"align":3394},[170,3714],{},".price_excl",[3421,3717,3371],{"align":3394},[3421,3719,3470],{"align":3394},[3421,3721,3722],{"align":3394},"Price excluding tax",[3421,3724,2126],{"align":3394},[3389,3726,3727,3732,3734,3737,3740],{},[3421,3728,1038,3729,3731],{"align":3394},[170,3730],{},".is_tax",[3421,3733,3483],{"align":3394},[3421,3735,3736],{"align":3394},"Boolean",[3421,3738,3739],{"align":3394},"Whether tax applies",[3421,3741,3742],{"align":3394},"false",[3389,3744,3745,3750,3752,3754,3760],{},[3421,3746,1038,3747,3749],{"align":3394},[170,3748],{},".pricing_type",[3421,3751,3371],{"align":3394},[3421,3753,3427],{"align":3394},[3421,3755,3756,3757,3759],{"align":3394},"e.g. ",[146,3758,2162],{}," or one-time as per your catalog",[3421,3761,3762],{"align":3394},[146,3763,2162],{},[3389,3765,3766,3771,3773,3775,3779],{},[3421,3767,1038,3768,3770],{"align":3394},[170,3769],{},".product_status",[3421,3772,3483],{"align":3394},[3421,3774,3427],{"align":3394},[3421,3776,3756,3777],{"align":3394},[146,3778,2183],{},[3421,3780,3781],{"align":3394},[146,3782,2183],{},[3389,3784,3785,3790,3792,3794,3799],{},[3421,3786,1038,3787,3789],{"align":3394},[170,3788],{},".billing_period",[3421,3791,3371],{"align":3394},[3421,3793,3470],{"align":3394},[3421,3795,3796,3797,3619],{"align":3394},"When recurring (e.g. ",[146,3798,461],{},[3421,3800,461],{"align":3394},[3389,3802,3803,3808,3810,3813,3816],{},[3421,3804,1038,3805,3807],{"align":3394},[170,3806],{},".custom_period",[3421,3809,3483],{"align":3394},[3421,3811,3812],{"align":3394},"null",[3421,3814,3815],{"align":3394},"Custom billing period detail if applicable",[3421,3817,3812],{"align":3394},[3389,3819,3820,3825,3827,3829,3832],{},[3421,3821,1038,3822,3824],{"align":3394},[170,3823],{},".custom_interval",[3421,3826,3483],{"align":3394},[3421,3828,3812],{"align":3394},[3421,3830,3831],{"align":3394},"Custom interval if applicable",[3421,3833,3812],{"align":3394},[3389,3835,3836,3841,3843,3845,3848],{},[3421,3837,1038,3838,3840],{"align":3394},[170,3839],{},".picture_default",[3421,3842,3483],{"align":3394},[3421,3844,3812],{"align":3394},[3421,3846,3847],{"align":3394},"Default image reference",[3421,3849,3812],{"align":3394},[3389,3851,3852,3857,3859,3861,3864],{},[3421,3853,1038,3854,3856],{"align":3394},[170,3855],{},".pictures",[3421,3858,3483],{"align":3394},[3421,3860,3449],{"align":3394},[3421,3862,3863],{"align":3394},"Gallery or image payload",[3421,3865,3866],{"align":3394},[146,3867,3868],{},"{}",[3389,3870,3871,3873,3875,3877,3880],{},[3421,3872,628],{"align":3394},[3421,3874,3483],{"align":3394},[3421,3876,3470],{"align":3394},[3421,3878,3879],{"align":3394},"Optional passphrase signature for verifying the payload",[3421,3881,637],{"align":3394},[3389,3883,3884,3886,3888,3890,3896],{},[3421,3885,334],{"align":3394},[3421,3887,3371],{"align":3394},[3421,3889,3470],{"align":3394},[3421,3891,3892,3893,3895],{"align":3394},"Use an existing customer record instead of ",[146,3894,342],{}," inline object",[3421,3897,1015],{"align":3394},[3389,3899,3900,3902,3904,3906,3915],{},[3421,3901,346],{"align":3394},[3421,3903,3483],{"align":3394},[3421,3905,3500],{"align":3394},[3421,3907,3908,3909,3911,3912,3914],{"align":3394},"Extra fields on the payer form when neither ",[146,3910,334],{}," nor ",[146,3913,342],{}," is supplied; name, surname and email always show",[3421,3916,3917],{"align":3394},[146,3918,3919],{},"[\"CONTACT_NUMBER\", \"ID_NUMBER\", \"COMPANY_NAME\", \"COMPANY_REG\", \"VAT_NUMBER\", \"BILLING_ADDRESS\", \"SHIPPING_ADDRESS\"]",[3389,3921,3922,3924,3926,3928,3933],{},[3421,3923,342],{"align":3394},[3421,3925,3371],{"align":3394},[3421,3927,3449],{"align":3394},[3421,3929,3930,3931],{"align":3394},"Create or prefill payer details when not using only ",[146,3932,334],{},[3421,3934,3935],{"align":3394},"See advanced example",[3389,3937,3938,3941,3943,3946,3949],{},[3421,3939,3940],{"align":3394},"customer.reference",[3421,3942,3371],{"align":3394},[3421,3944,3945],{"align":3394},"String(35)",[3421,3947,3948],{"align":3394},"Your reference for this customer",[3421,3950,1346],{"align":3394},[3389,3952,3953,3956,3958,3961,3964],{},[3421,3954,3955],{"align":3394},"customer.company_name",[3421,3957,3371],{"align":3394},[3421,3959,3960],{"align":3394},"String(64)",[3421,3962,3963],{"align":3394},"Company name when applicable",[3421,3965,3812],{"align":3394},[3389,3967,3968,3971,3973,3976,3979],{},[3421,3969,3970],{"align":3394},"customer.person_name",[3421,3972,3371],{"align":3394},[3421,3974,3975],{"align":3394},"String(32)",[3421,3977,3978],{"align":3394},"First name",[3421,3980,1380],{"align":3394},[3389,3982,3983,3986,3988,3990,3993],{},[3421,3984,3985],{"align":3394},"customer.person_surname",[3421,3987,3371],{"align":3394},[3421,3989,3975],{"align":3394},[3421,3991,3992],{"align":3394},"Surname",[3421,3994,1400],{"align":3394},[3389,3996,3997,4000,4002,4004,4021],{},[3421,3998,3999],{"align":3394},"customer.client_type",[3421,4001,3483],{"align":3394},[3421,4003,3427],{"align":3394},[3421,4005,4006,4008,4009,4008,4012,4008,4015,4008,4018],{"align":3394},[146,4007,1420],{},", ",[146,4010,4011],{},"NON_RESIDENT_INDIVIDUAL",[146,4013,4014],{},"DOMESTIC_COMPANY",[146,4016,4017],{},"FOREIGN_COMPANY",[146,4019,4020],{},"FINANCIAL_INSTITUTION",[3421,4022,4023],{"align":3394},[146,4024,1420],{},[3389,4026,4027,4030,4032,4034,4047],{},[3421,4028,4029],{"align":3394},"customer.id_type",[3421,4031,3483],{"align":3394},[3421,4033,3427],{"align":3394},[3421,4035,4036,4008,4038,4008,4041,4008,4044],{"align":3394},[146,4037,1443],{},[146,4039,4040],{},"PASSPORT_NUMBER",[146,4042,4043],{},"TEMPORARY_RESIDENCE",[146,4045,4046],{},"COMPANY_REGISTRATION_NUMBER",[3421,4048,4049],{"align":3394},[146,4050,1443],{},[3389,4052,4053,4056,4058,4061,4064],{},[3421,4054,4055],{"align":3394},"customer.id_number",[3421,4057,3483],{"align":3394},[3421,4059,4060],{"align":3394},"String(13)",[3421,4062,4063],{"align":3394},"Identity or registration number",[3421,4065,1463],{"align":3394},[3389,4067,4068,4071,4073,4076,4079],{},[3421,4069,4070],{"align":3394},"customer.email",[3421,4072,3371],{"align":3394},[3421,4074,4075],{"align":3394},"String(128)",[3421,4077,4078],{"align":3394},"Email address",[3421,4080,4081],{"align":3394},[337,4082,1482],{"href":4083},"mailto:johndoe@mail.com",[3389,4085,4086,4089,4091,4094,4097],{},[3421,4087,4088],{"align":3394},"customer.contact_number",[3421,4090,3371],{"align":3394},[3421,4092,4093],{"align":3394},"String(16)",[3421,4095,4096],{"align":3394},"Contact number",[3421,4098,1502],{"align":3394},[3389,4100,4101,4104,4106,4108,4111],{},[3421,4102,4103],{"align":3394},"customer.billing_address.line1",[3421,4105,3483],{"align":3394},[3421,4107,3470],{"align":3394},[3421,4109,4110],{"align":3394},"Billing line 1",[3421,4112,1535],{"align":3394},[3389,4114,4115,4118,4120,4122,4125],{},[3421,4116,4117],{"align":3394},"customer.billing_address.line2",[3421,4119,3483],{"align":3394},[3421,4121,3470],{"align":3394},[3421,4123,4124],{"align":3394},"Billing line 2",[3421,4126,1555],{"align":3394},[3389,4128,4129,4132,4134,4136,4139],{},[3421,4130,4131],{"align":3394},"customer.billing_address.city_or_town",[3421,4133,3483],{"align":3394},[3421,4135,3470],{"align":3394},[3421,4137,4138],{"align":3394},"City or town",[3421,4140,1575],{"align":3394},[3389,4142,4143,4146,4148,4150,4153],{},[3421,4144,4145],{"align":3394},"customer.billing_address.province_or_state",[3421,4147,3483],{"align":3394},[3421,4149,3470],{"align":3394},[3421,4151,4152],{"align":3394},"Province or state",[3421,4154,1595],{"align":3394},[3389,4156,4157,4160,4162,4164,4167],{},[3421,4158,4159],{"align":3394},"customer.billing_address.postal_or_zip_code",[3421,4161,3483],{"align":3394},[3421,4163,3470],{"align":3394},[3421,4165,4166],{"align":3394},"Postal or ZIP code",[3421,4168,1615],{"align":3394},[3389,4170,4171,4174,4176,4179,4189],{},[3421,4172,4173],{"align":3394},"customer.billing_address.country",[3421,4175,3483],{"align":3394},[3421,4177,4178],{"align":3394},"String(2)",[3421,4180,4181,4188],{"align":3394},[337,4182,4187],{"href":4183,"rel":4184,":target":4186},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_3166-1_alpha-2",[4185],"nofollow","_blank","ISO 3166-1 alpha-2"," country code",[3421,4190,4191],{"align":3394},[146,4192,1635],{},[3389,4194,4195,4198,4200,4202,4205],{},[3421,4196,4197],{"align":3394},"customer.shipping.contact_name",[3421,4199,3483],{"align":3394},[3421,4201,3470],{"align":3394},[3421,4203,4204],{"align":3394},"Shipping contact name",[3421,4206,1670],{"align":3394},[3389,4208,4209,4212,4214,4216,4219],{},[3421,4210,4211],{"align":3394},"customer.shipping.contact_number",[3421,4213,3483],{"align":3394},[3421,4215,4093],{"align":3394},[3421,4217,4218],{"align":3394},"Shipping contact number",[3421,4220,1689],{"align":3394},[3389,4222,4223,4226,4228,4230,4233],{},[3421,4224,4225],{"align":3394},"customer.shipping.address.line1",[3421,4227,3483],{"align":3394},[3421,4229,3470],{"align":3394},[3421,4231,4232],{"align":3394},"Shipping line 1",[3421,4234,1535],{"align":3394},[3389,4236,4237,4240,4242,4244,4247],{},[3421,4238,4239],{"align":3394},"customer.shipping.address.line2",[3421,4241,3483],{"align":3394},[3421,4243,3470],{"align":3394},[3421,4245,4246],{"align":3394},"Shipping line 2",[3421,4248,1555],{"align":3394},[3389,4250,4251,4254,4256,4258,4261],{},[3421,4252,4253],{"align":3394},"customer.shipping.address.city_or_town",[3421,4255,3483],{"align":3394},[3421,4257,3470],{"align":3394},[3421,4259,4260],{"align":3394},"Shipping city",[3421,4262,1575],{"align":3394},[3389,4264,4265,4268,4270,4272,4275],{},[3421,4266,4267],{"align":3394},"customer.shipping.address.province_or_state",[3421,4269,3483],{"align":3394},[3421,4271,3470],{"align":3394},[3421,4273,4274],{"align":3394},"Shipping province or state",[3421,4276,1595],{"align":3394},[3389,4278,4279,4282,4284,4286,4289],{},[3421,4280,4281],{"align":3394},"customer.shipping.address.postal_or_zip_code",[3421,4283,3483],{"align":3394},[3421,4285,3470],{"align":3394},[3421,4287,4288],{"align":3394},"Shipping postal code",[3421,4290,1615],{"align":3394},[3389,4292,4293,4296,4298,4300,4305],{},[3421,4294,4295],{"align":3394},"customer.shipping.address.country",[3421,4297,3483],{"align":3394},[3421,4299,4178],{"align":3394},[3421,4301,4302],{"align":3394},[337,4303,4187],{"href":4183,"rel":4304,":target":4186},[4185],[3421,4306,4307],{"align":3394},[146,4308,1635],{},[3389,4310,4311,4314,4316,4318,4321],{},[3421,4312,4313],{"align":3394},"customer.metadata",[3421,4315,3483],{"align":3394},[3421,4317,3449],{"align":3394},[3421,4319,4320],{"align":3394},"Custom key\u002Fvalue metadata",[3421,4322,4323],{"align":3394},[146,4324,4325],{},"{\"custom_field_1\": \"custom data 1\"}",[3389,4327,4328,4331,4333,4335,4338],{},[3421,4329,4330],{"align":3394},"invoice.is_generate",[3421,4332,3371],{"align":3394},[3421,4334,3736],{"align":3394},[3421,4336,4337],{"align":3394},"Whether to generate an invoice for the payment or subscription",[3421,4339,4340],{"align":3394},"true",[3389,4342,4343,4346,4348,4350,4353],{},[3421,4344,4345],{"align":3394},"invoice.is_send",[3421,4347,3483],{"align":3394},[3421,4349,3736],{"align":3394},[3421,4351,4352],{"align":3394},"Whether to send the paid invoice to the customer",[3421,4354,4340],{"align":3394},[3389,4356,4357,4360,4362,4364,4367],{},[3421,4358,4359],{"align":3394},"notification.email",[3421,4361,3483],{"align":3394},[3421,4363,3470],{"align":3394},[3421,4365,4366],{"align":3394},"Email address to notify on each successful payment",[3421,4368,4369],{"align":3394},[337,4370,680],{"href":4371},"mailto:me@my-email.co.za",[3389,4373,4374,4377,4379,4381,4384],{},[3421,4375,4376],{"align":3394},"notification.webhook_url",[3421,4378,3483],{"align":3394},[3421,4380,3470],{"align":3394},[3421,4382,4383],{"align":3394},"Webhook URL for each successful payment",[3421,4385,4386],{"align":3394},[337,4387,704],{"href":704,"rel":4388},[4185],[3389,4390,4391,4394,4396,4398,4405],{},[3421,4392,4393],{"align":3394},"redirects.success_url",[3421,4395,3483],{"align":3394},[3421,4397,3470],{"align":3394},[3421,4399,4400,4401,4404],{"align":3394},"Redirect after successful payment; ",[146,4402,4403],{},"&signature="," appended if configured",[3421,4406,4407],{"align":3394},[337,4408,1217],{"href":1217,"rel":4409},[4185],[3389,4411,4412,4415,4417,4419,4422],{},[3421,4413,4414],{"align":3394},"redirects.cancel_url",[3421,4416,3483],{"align":3394},[3421,4418,3470],{"align":3394},[3421,4420,4421],{"align":3394},"Redirect if the payer cancels",[3421,4423,4424],{"align":3394},[337,4425,1240],{"href":1240,"rel":4426},[4185],[3389,4428,4429,4432,4434,4436,4464],{},[3421,4430,4431],{"align":3394},"payment.payment_methods",[3421,4433,3483],{"align":3394},[3421,4435,3500],{"align":3394},[3421,4437,4438,4439,4008,4441,4008,4443,4008,4446,4008,4449,4008,4452,4008,4455,4008,4458,4008,4461,3619],{"align":3394},"Limit methods shown (",[146,4440,2371],{},[146,4442,2380],{},[146,4444,4445],{},"SNAPSCAN",[146,4447,4448],{},"APPLE_PAY",[146,4450,4451],{},"GOOGLE_PAY",[146,4453,4454],{},"SCAN_TO_PAY",[146,4456,4457],{},"1VOUCHER",[146,4459,4460],{},"SCODE",[146,4462,4463],{},"MONEY_BADGER",[3421,4465,4466,4467,4008,4469,4471],{"align":3394},"[",[146,4468,2371],{},[146,4470,2380],{},"]",[3389,4473,4474,4477,4479,4481,4484],{},[3421,4475,4476],{"align":3394},"settings.expiry_time",[3421,4478,3483],{"align":3394},[3421,4480,3612],{"align":3394},[3421,4482,4483],{"align":3394},"Link lifetime in minutes; omit so the link does not expire (per advanced example comment)",[3421,4485,4486],{"align":3394},"1440",[3389,4488,4489,4492,4494,4496,4499],{},[3421,4490,4491],{"align":3394},"customization.button_text",[3421,4493,3483],{"align":3394},[3421,4495,3470],{"align":3394},[3421,4497,4498],{"align":3394},"Primary action button label",[3421,4500,2531],{"align":3394},[3389,4502,4503,4505,4507,4509,4512],{},[3421,4504,330],{"align":3394},[3421,4506,3483],{"align":3394},[3421,4508,3470],{"align":3394},[3421,4510,4511],{"align":3394},"Message after successful payment (donation example); otherwise use redirects",[3421,4513,605],{"align":3394},[3389,4515,4516,4519,4521,4523,4535],{},[3421,4517,4518],{"align":3394},"customization.type",[3421,4520,3483],{"align":3394},[3421,4522,3427],{"align":3394},[3421,4524,4525,4526,4528,4529,4531,4532,4534],{"align":3394},"Create a link for a ",[146,4527,2551],{}," or pass through ",[146,4530,2757],{}," for iframe or in-app payments. The ",[146,4533,2757],{}," type pages will not redirect you but transmit a message via the window postMessage() method",[3421,4536,4537],{"align":3394},[146,4538,2551],{},[3389,4540,4541,4544,4546,4548,4551],{},[3421,4542,4543],{"align":3394},"customization.is_display_cancel_button",[3421,4545,3483],{"align":3394},[3421,4547,3736],{"align":3394},[3421,4549,4550],{"align":3394},"Show cancel control",[3421,4552,4340],{"align":3394},[3389,4554,4555,4558,4560,4562,4565],{},[3421,4556,4557],{"align":3394},"customization.is_display_total",[3421,4559,3483],{"align":3394},[3421,4561,3736],{"align":3394},[3421,4563,4564],{"align":3394},"Show total",[3421,4566,4340],{"align":3394},[3389,4568,4569,4572,4574,4576,4579],{},[3421,4570,4571],{"align":3394},"customization.is_display_items",[3421,4573,3483],{"align":3394},[3421,4575,3736],{"align":3394},[3421,4577,4578],{"align":3394},"Show line items",[3421,4580,4340],{"align":3394},[3389,4582,4583,4586,4588,4590,4593],{},[3421,4584,4585],{"align":3394},"customization.brand.primary",[3421,4587,3483],{"align":3394},[3421,4589,3470],{"align":3394},[3421,4591,4592],{"align":3394},"Primary hex colour",[3421,4594,2634],{"align":3394},[3389,4596,4597,4600,4602,4604,4607],{},[3421,4598,4599],{"align":3394},"customization.brand.secondary",[3421,4601,3483],{"align":3394},[3421,4603,3470],{"align":3394},[3421,4605,4606],{"align":3394},"Secondary hex colour",[3421,4608,2655],{"align":3394},[139,4610,4612],{"id":4611},"response-body","Response Body",[161,4614,4616],{"className":163,"code":4615,"language":165,"meta":166,"style":166},"{\n    \"status\": true,\n    \"result\": {\n      \"id\": \"chk_HVpCeoNys1f22X7QcuWHY\",\n      \"session_id\": \"ses_G-xkVKoxHgEBrY8suKgR3\",\n      \"amount\": \"1200.00\",\n      \"currency\": \"ZAR\",\n      \"customer_id\": \"cus_abc123...\",\n      \"link_url\": \"https:\u002F\u002Fpay.kwik.co.za\u002Fcheckout\u002Fcs_test_a1b2c3\",\n      \"expires_at\": \"2025-09-13T12:30:00Z\"\n    }\n}\n",[146,4617,4618,4622,4634,4647,4667,4687,4705,4725,4743,4763,4781,4785],{"__ignoreMap":166},[170,4619,4620],{"class":172,"line":173},[170,4621,177],{"class":176},[170,4623,4624,4626,4628,4630,4632],{"class":172,"line":180},[170,4625,226],{"class":176},[170,4627,3192],{"class":186},[170,4629,190],{"class":176},[170,4631,193],{"class":176},[170,4633,754],{"class":176},[170,4635,4636,4638,4641,4643,4645],{"class":172,"line":208},[170,4637,226],{"class":176},[170,4639,4640],{"class":186},"result",[170,4642,190],{"class":176},[170,4644,193],{"class":176},[170,4646,220],{"class":176},[170,4648,4649,4651,4654,4656,4658,4660,4663,4665],{"class":172,"line":223},[170,4650,1054],{"class":176},[170,4652,4653],{"class":229},"id",[170,4655,190],{"class":176},[170,4657,193],{"class":176},[170,4659,196],{"class":176},[170,4661,4662],{"class":199},"chk_HVpCeoNys1f22X7QcuWHY",[170,4664,190],{"class":176},[170,4666,205],{"class":176},[170,4668,4669,4671,4674,4676,4678,4680,4683,4685],{"class":172,"line":246},[170,4670,1054],{"class":176},[170,4672,4673],{"class":229},"session_id",[170,4675,190],{"class":176},[170,4677,193],{"class":176},[170,4679,196],{"class":176},[170,4681,4682],{"class":199},"ses_G-xkVKoxHgEBrY8suKgR3",[170,4684,190],{"class":176},[170,4686,205],{"class":176},[170,4688,4689,4691,4693,4695,4697,4699,4701,4703],{"class":172,"line":275},[170,4690,1054],{"class":176},[170,4692,280],{"class":229},[170,4694,190],{"class":176},[170,4696,193],{"class":176},[170,4698,196],{"class":176},[170,4700,289],{"class":199},[170,4702,190],{"class":176},[170,4704,205],{"class":176},[170,4706,4707,4709,4712,4714,4716,4718,4721,4723],{"class":172,"line":297},[170,4708,1054],{"class":176},[170,4710,4711],{"class":229},"currency",[170,4713,190],{"class":176},[170,4715,193],{"class":176},[170,4717,196],{"class":176},[170,4719,4720],{"class":199},"ZAR",[170,4722,190],{"class":176},[170,4724,205],{"class":176},[170,4726,4727,4729,4731,4733,4735,4737,4739,4741],{"class":172,"line":303},[170,4728,1054],{"class":176},[170,4730,334],{"class":229},[170,4732,190],{"class":176},[170,4734,193],{"class":176},[170,4736,196],{"class":176},[170,4738,1015],{"class":199},[170,4740,190],{"class":176},[170,4742,205],{"class":176},[170,4744,4745,4747,4750,4752,4754,4756,4759,4761],{"class":172,"line":522},[170,4746,1054],{"class":176},[170,4748,4749],{"class":229},"link_url",[170,4751,190],{"class":176},[170,4753,193],{"class":176},[170,4755,196],{"class":176},[170,4757,4758],{"class":199},"https:\u002F\u002Fpay.kwik.co.za\u002Fcheckout\u002Fcs_test_a1b2c3",[170,4760,190],{"class":176},[170,4762,205],{"class":176},[170,4764,4765,4767,4770,4772,4774,4776,4779],{"class":172,"line":540},[170,4766,1054],{"class":176},[170,4768,4769],{"class":229},"expires_at",[170,4771,190],{"class":176},[170,4773,193],{"class":176},[170,4775,196],{"class":176},[170,4777,4778],{"class":199},"2025-09-13T12:30:00Z",[170,4780,885],{"class":176},[170,4782,4783],{"class":172,"line":546},[170,4784,1118],{"class":176},[170,4786,4787],{"class":172,"line":553},[170,4788,306],{"class":176},[139,4790,4792],{"id":4791},"response-parameters","Response Parameters",[3383,4794,4795,4811],{},[3386,4796,4797],{},[3389,4798,4799,4803,4805,4809],{},[3392,4800,4801],{"align":3394},[3396,4802,3399],{"style":3398},[3392,4804,3405],{"align":3394},[3392,4806,4807],{"align":3394},[3396,4808,3411],{"style":3410},[3392,4810,3414],{"align":3394},[3416,4812,4813,4824,4836,4849,4861,4880,4892,4907],{},[3389,4814,4815,4817,4819,4822],{},[3421,4816,3192],{"align":3394},[3421,4818,3736],{"align":3394},[3421,4820,4821],{"align":3394},"Indicates if the request was successful",[3421,4823,4340],{"align":3394},[3389,4825,4826,4829,4831,4834],{},[3421,4827,4828],{"align":3394},"result.id",[3421,4830,3470],{"align":3394},[3421,4832,4833],{"align":3394},"Unique checkout session identifier",[3421,4835,4662],{"align":3394},[3389,4837,4838,4841,4844,4847],{},[3421,4839,4840],{"align":3394},"result.session_id",[3421,4842,4843],{"align":3394},"String (32)",[3421,4845,4846],{"align":3394},"Session identifier for the checkout",[3421,4848,4682],{"align":3394},[3389,4850,4851,4854,4856,4859],{},[3421,4852,4853],{"align":3394},"result.amount",[3421,4855,3470],{"align":3394},[3421,4857,4858],{"align":3394},"Checkout amount",[3421,4860,289],{"align":3394},[3389,4862,4863,4866,4868,4876],{},[3421,4864,4865],{"align":3394},"result.currency",[3421,4867,3975],{"align":3394},[3421,4869,4870,4875],{"align":3394},[337,4871,4874],{"href":4872,"rel":4873,":target":4186},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_4217",[4185],"ISO 4217"," currency code",[3421,4877,4878],{"align":3394},[146,4879,4720],{},[3389,4881,4882,4885,4887,4890],{},[3421,4883,4884],{"align":3394},"result.customer_id",[3421,4886,3975],{"align":3394},[3421,4888,4889],{"align":3394},"Associated customer ID",[3421,4891,1015],{"align":3394},[3389,4893,4894,4897,4899,4902],{},[3421,4895,4896],{"align":3394},"result.link_url",[3421,4898,3470],{"align":3394},[3421,4900,4901],{"align":3394},"URL to redirect user to complete checkout",[3421,4903,4904],{"align":3394},[337,4905,4758],{"href":4758,"rel":4906},[4185],[3389,4908,4909,4912,4914,4917],{},[3421,4910,4911],{"align":3394},"result.expires_at",[3421,4913,3470],{"align":3394},[3421,4915,4916],{"align":3394},"ISO timestamp when the checkout session expires",[3421,4918,4778],{"align":3394},[130,4920,4922],{"id":4921},"signature-creation","Signature creation",[135,4924,4925,4926,4928],{},"When creating API keys on the dashboard you can download a passphrase key, use the key in the examples below to generate your signature and send it in the ",[146,4927,628],{}," parameter:",[4930,4931,4932,5659,6464,7484,8822],"code-group",{},[161,4933,4938],{"className":4934,"code":4935,"filename":4936,"language":4937,"meta":166,"style":166},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const crypto = require('crypto')\n\nfunction canonicalize(value) {\n  if (value === null || typeof value !== 'object') {\n    return JSON.stringify(value)\n  }\n\n  if (Array.isArray(value)) {\n    return `[${value.map(canonicalize).join(',')}]`\n  }\n\n  return `{${Object.keys(value)\n    .filter((key) => key !== 'signature' && value[key] !== undefined)\n    .sort()\n    .map((key) => `${JSON.stringify(key)}:${canonicalize(value[key])}`)\n    .join(',')}}`\n}\n\nfunction generateKwikSignature(payload, passphrase) {\n  const canonicalPayload = canonicalize(payload)\n\n  return crypto\n    .createHmac('sha256', passphrase)\n    .update(canonicalPayload)\n    .digest('hex')\n}\n\n\u002F\u002F Usage example\nconst payload = {\n  type: 'CHOOSE_WHAT_TO_PAY',\n  item: {\n    title: 'My product name',\n    frequency: ['ONE_TIME'], \u002F\u002F optional\n    amount: '1200.00'       \u002F\u002F optional\n  }\n}\n\n\u002F\u002F get this from the dashboard when creating an API key\nconst passphrase = 'your-secure-passphrase'\n\nconst signature = generateKwikSignature(payload, passphrase)\n\nconst requestBody = {\n  ...payload,\n  signature\n}\n\nconsole.log('Canonical payload:', canonicalize(payload))\nconsole.log('Signature:', signature)\nconsole.log('Request body:', requestBody)\n","Node.js","javascript",[146,4939,4940,4970,4974,4992,5034,5053,5057,5061,5083,5128,5132,5136,5158,5203,5213,5259,5281,5285,5289,5310,5329,5333,5340,5362,5376,5394,5398,5402,5407,5418,5433,5442,5457,5479,5495,5499,5503,5507,5512,5529,5533,5552,5556,5567,5576,5581,5585,5589,5615,5637],{"__ignoreMap":166},[170,4941,4942,4945,4949,4952,4956,4959,4962,4965,4967],{"class":172,"line":173},[170,4943,4944],{"class":186},"const",[170,4946,4948],{"class":4947},"sTEyZ"," crypto ",[170,4950,4951],{"class":176},"=",[170,4953,4955],{"class":4954},"s2Zo4"," require",[170,4957,4958],{"class":4947},"(",[170,4960,4961],{"class":176},"'",[170,4963,4964],{"class":199},"crypto",[170,4966,4961],{"class":176},[170,4968,4969],{"class":4947},")\n",[170,4971,4972],{"class":172,"line":180},[170,4973,550],{"emptyLinePlaceholder":549},[170,4975,4976,4979,4982,4984,4988,4990],{"class":172,"line":208},[170,4977,4978],{"class":186},"function",[170,4980,4981],{"class":4954}," canonicalize",[170,4983,4958],{"class":176},[170,4985,4987],{"class":4986},"sHdIc","value",[170,4989,3619],{"class":176},[170,4991,220],{"class":176},[170,4993,4994,4998,5001,5003,5006,5009,5012,5015,5018,5021,5024,5027,5029,5032],{"class":172,"line":223},[170,4995,4997],{"class":4996},"s7zQu","  if",[170,4999,5000],{"class":1714}," (",[170,5002,4987],{"class":4947},[170,5004,5005],{"class":176}," ===",[170,5007,5008],{"class":176}," null",[170,5010,5011],{"class":176}," ||",[170,5013,5014],{"class":176}," typeof",[170,5016,5017],{"class":4947}," value",[170,5019,5020],{"class":176}," !==",[170,5022,5023],{"class":176}," '",[170,5025,5026],{"class":199},"object",[170,5028,4961],{"class":176},[170,5030,5031],{"class":1714},") ",[170,5033,177],{"class":176},[170,5035,5036,5039,5042,5044,5047,5049,5051],{"class":172,"line":246},[170,5037,5038],{"class":4996},"    return",[170,5040,5041],{"class":4947}," JSON",[170,5043,3381],{"class":176},[170,5045,5046],{"class":4954},"stringify",[170,5048,4958],{"class":1714},[170,5050,4987],{"class":4947},[170,5052,4969],{"class":1714},[170,5054,5055],{"class":172,"line":275},[170,5056,300],{"class":176},[170,5058,5059],{"class":172,"line":297},[170,5060,550],{"emptyLinePlaceholder":549},[170,5062,5063,5065,5067,5069,5071,5074,5076,5078,5081],{"class":172,"line":303},[170,5064,4997],{"class":4996},[170,5066,5000],{"class":1714},[170,5068,3500],{"class":4947},[170,5070,3381],{"class":176},[170,5072,5073],{"class":4954},"isArray",[170,5075,4958],{"class":1714},[170,5077,4987],{"class":4947},[170,5079,5080],{"class":1714},")) ",[170,5082,177],{"class":176},[170,5084,5085,5087,5090,5092,5095,5097,5099,5102,5105,5107,5110,5112,5114,5116,5118,5120,5123,5125],{"class":172,"line":522},[170,5086,5038],{"class":4996},[170,5088,5089],{"class":176}," `",[170,5091,4466],{"class":199},[170,5093,5094],{"class":176},"${",[170,5096,4987],{"class":4947},[170,5098,3381],{"class":176},[170,5100,5101],{"class":4954},"map",[170,5103,5104],{"class":4947},"(canonicalize)",[170,5106,3381],{"class":176},[170,5108,5109],{"class":4954},"join",[170,5111,4958],{"class":4947},[170,5113,4961],{"class":176},[170,5115,410],{"class":199},[170,5117,4961],{"class":176},[170,5119,3619],{"class":4947},[170,5121,5122],{"class":176},"}",[170,5124,4471],{"class":199},[170,5126,5127],{"class":176},"`\n",[170,5129,5130],{"class":172,"line":540},[170,5131,300],{"class":176},[170,5133,5134],{"class":172,"line":546},[170,5135,550],{"emptyLinePlaceholder":549},[170,5137,5138,5141,5143,5146,5148,5150,5152,5155],{"class":172,"line":553},[170,5139,5140],{"class":4996},"  return",[170,5142,5089],{"class":176},[170,5144,5145],{"class":199},"{",[170,5147,5094],{"class":176},[170,5149,3449],{"class":4947},[170,5151,3381],{"class":176},[170,5153,5154],{"class":4954},"keys",[170,5156,5157],{"class":4947},"(value)\n",[170,5159,5160,5163,5166,5168,5170,5173,5175,5178,5181,5184,5186,5188,5190,5193,5196,5198,5201],{"class":172,"line":567},[170,5161,5162],{"class":176},"    .",[170,5164,5165],{"class":4954},"filter",[170,5167,4958],{"class":4947},[170,5169,4958],{"class":176},[170,5171,5172],{"class":4986},"key",[170,5174,3619],{"class":176},[170,5176,5177],{"class":186}," =>",[170,5179,5180],{"class":4947}," key ",[170,5182,5183],{"class":176},"!==",[170,5185,5023],{"class":176},[170,5187,628],{"class":199},[170,5189,4961],{"class":176},[170,5191,5192],{"class":176}," &&",[170,5194,5195],{"class":4947}," value[key] ",[170,5197,5183],{"class":176},[170,5199,5200],{"class":176}," undefined",[170,5202,4969],{"class":4947},[170,5204,5205,5207,5210],{"class":172,"line":591},[170,5206,5162],{"class":176},[170,5208,5209],{"class":4954},"sort",[170,5211,5212],{"class":4947},"()\n",[170,5214,5215,5217,5219,5221,5223,5225,5227,5229,5232,5235,5237,5239,5242,5244,5246,5248,5251,5254,5257],{"class":172,"line":613},[170,5216,5162],{"class":176},[170,5218,5101],{"class":4954},[170,5220,4958],{"class":4947},[170,5222,4958],{"class":176},[170,5224,5172],{"class":4986},[170,5226,3619],{"class":176},[170,5228,5177],{"class":186},[170,5230,5231],{"class":176}," `${",[170,5233,5234],{"class":4947},"JSON",[170,5236,3381],{"class":176},[170,5238,5046],{"class":4954},[170,5240,5241],{"class":4947},"(key)",[170,5243,5122],{"class":176},[170,5245,193],{"class":199},[170,5247,5094],{"class":176},[170,5249,5250],{"class":4954},"canonicalize",[170,5252,5253],{"class":4947},"(value[key])",[170,5255,5256],{"class":176},"}`",[170,5258,4969],{"class":4947},[170,5260,5261,5263,5265,5267,5269,5271,5273,5275,5277,5279],{"class":172,"line":618},[170,5262,5162],{"class":176},[170,5264,5109],{"class":4954},[170,5266,4958],{"class":4947},[170,5268,4961],{"class":176},[170,5270,410],{"class":199},[170,5272,4961],{"class":176},[170,5274,3619],{"class":4947},[170,5276,5122],{"class":176},[170,5278,5122],{"class":199},[170,5280,5127],{"class":176},[170,5282,5283],{"class":172,"line":623},[170,5284,306],{"class":176},[170,5286,5287],{"class":172,"line":647},[170,5288,550],{"emptyLinePlaceholder":549},[170,5290,5291,5293,5296,5298,5301,5303,5306,5308],{"class":172,"line":652},[170,5292,4978],{"class":186},[170,5294,5295],{"class":4954}," generateKwikSignature",[170,5297,4958],{"class":176},[170,5299,5300],{"class":4986},"payload",[170,5302,410],{"class":176},[170,5304,5305],{"class":4986}," passphrase",[170,5307,3619],{"class":176},[170,5309,220],{"class":176},[170,5311,5312,5315,5318,5321,5323,5325,5327],{"class":172,"line":666},[170,5313,5314],{"class":186},"  const",[170,5316,5317],{"class":4947}," canonicalPayload",[170,5319,5320],{"class":176}," =",[170,5322,4981],{"class":4954},[170,5324,4958],{"class":1714},[170,5326,5300],{"class":4947},[170,5328,4969],{"class":1714},[170,5330,5331],{"class":172,"line":690},[170,5332,550],{"emptyLinePlaceholder":549},[170,5334,5335,5337],{"class":172,"line":712},[170,5336,5140],{"class":4996},[170,5338,5339],{"class":4947}," crypto\n",[170,5341,5342,5344,5347,5349,5351,5354,5356,5358,5360],{"class":172,"line":717},[170,5343,5162],{"class":176},[170,5345,5346],{"class":4954},"createHmac",[170,5348,4958],{"class":1714},[170,5350,4961],{"class":176},[170,5352,5353],{"class":199},"sha256",[170,5355,4961],{"class":176},[170,5357,410],{"class":176},[170,5359,5305],{"class":4947},[170,5361,4969],{"class":1714},[170,5363,5364,5366,5369,5371,5374],{"class":172,"line":722},[170,5365,5162],{"class":176},[170,5367,5368],{"class":4954},"update",[170,5370,4958],{"class":1714},[170,5372,5373],{"class":4947},"canonicalPayload",[170,5375,4969],{"class":1714},[170,5377,5378,5380,5383,5385,5387,5390,5392],{"class":172,"line":728},[170,5379,5162],{"class":176},[170,5381,5382],{"class":4954},"digest",[170,5384,4958],{"class":1714},[170,5386,4961],{"class":176},[170,5388,5389],{"class":199},"hex",[170,5391,4961],{"class":176},[170,5393,4969],{"class":1714},[170,5395,5396],{"class":172,"line":742},[170,5397,306],{"class":176},[170,5399,5400],{"class":172,"line":757},[170,5401,550],{"emptyLinePlaceholder":549},[170,5403,5404],{"class":172,"line":775},[170,5405,5406],{"class":271},"\u002F\u002F Usage example\n",[170,5408,5409,5411,5414,5416],{"class":172,"line":780},[170,5410,4944],{"class":186},[170,5412,5413],{"class":4947}," payload ",[170,5415,4951],{"class":176},[170,5417,220],{"class":176},[170,5419,5420,5423,5425,5427,5429,5431],{"class":172,"line":785},[170,5421,5422],{"class":1714},"  type",[170,5424,193],{"class":176},[170,5426,5023],{"class":176},[170,5428,200],{"class":199},[170,5430,4961],{"class":176},[170,5432,205],{"class":176},[170,5434,5435,5438,5440],{"class":172,"line":791},[170,5436,5437],{"class":1714},"  item",[170,5439,193],{"class":176},[170,5441,220],{"class":176},[170,5443,5444,5447,5449,5451,5453,5455],{"class":172,"line":805},[170,5445,5446],{"class":1714},"    title",[170,5448,193],{"class":176},[170,5450,5023],{"class":176},[170,5452,239],{"class":199},[170,5454,4961],{"class":176},[170,5456,205],{"class":176},[170,5458,5459,5462,5464,5466,5468,5470,5472,5474,5476],{"class":172,"line":817},[170,5460,5461],{"class":1714},"    frequency",[170,5463,193],{"class":176},[170,5465,258],{"class":4947},[170,5467,4961],{"class":176},[170,5469,263],{"class":199},[170,5471,4961],{"class":176},[170,5473,4471],{"class":4947},[170,5475,410],{"class":176},[170,5477,5478],{"class":271}," \u002F\u002F optional\n",[170,5480,5481,5484,5486,5488,5490,5492],{"class":172,"line":829},[170,5482,5483],{"class":1714},"    amount",[170,5485,193],{"class":176},[170,5487,5023],{"class":176},[170,5489,289],{"class":199},[170,5491,4961],{"class":176},[170,5493,5494],{"class":271},"       \u002F\u002F optional\n",[170,5496,5497],{"class":172,"line":841},[170,5498,300],{"class":176},[170,5500,5501],{"class":172,"line":853},[170,5502,306],{"class":176},[170,5504,5505],{"class":172,"line":865},[170,5506,550],{"emptyLinePlaceholder":549},[170,5508,5509],{"class":172,"line":877},[170,5510,5511],{"class":271},"\u002F\u002F get this from the dashboard when creating an API key\n",[170,5513,5514,5516,5519,5521,5523,5526],{"class":172,"line":888},[170,5515,4944],{"class":186},[170,5517,5518],{"class":4947}," passphrase ",[170,5520,4951],{"class":176},[170,5522,5023],{"class":176},[170,5524,5525],{"class":199},"your-secure-passphrase",[170,5527,5528],{"class":176},"'\n",[170,5530,5531],{"class":172,"line":894},[170,5532,550],{"emptyLinePlaceholder":549},[170,5534,5535,5537,5540,5542,5544,5547,5549],{"class":172,"line":1881},[170,5536,4944],{"class":186},[170,5538,5539],{"class":4947}," signature ",[170,5541,4951],{"class":176},[170,5543,5295],{"class":4954},[170,5545,5546],{"class":4947},"(payload",[170,5548,410],{"class":176},[170,5550,5551],{"class":4947}," passphrase)\n",[170,5553,5554],{"class":172,"line":1886},[170,5555,550],{"emptyLinePlaceholder":549},[170,5557,5558,5560,5563,5565],{"class":172,"line":1891},[170,5559,4944],{"class":186},[170,5561,5562],{"class":4947}," requestBody ",[170,5564,4951],{"class":176},[170,5566,220],{"class":176},[170,5568,5569,5572,5574],{"class":172,"line":1897},[170,5570,5571],{"class":176},"  ...",[170,5573,5300],{"class":4947},[170,5575,205],{"class":176},[170,5577,5578],{"class":172,"line":1910},[170,5579,5580],{"class":4947},"  signature\n",[170,5582,5583],{"class":172,"line":1915},[170,5584,306],{"class":176},[170,5586,5587],{"class":172,"line":1934},[170,5588,550],{"emptyLinePlaceholder":549},[170,5590,5591,5594,5596,5599,5601,5603,5606,5608,5610,5612],{"class":172,"line":1949},[170,5592,5593],{"class":4947},"console",[170,5595,3381],{"class":176},[170,5597,5598],{"class":4954},"log",[170,5600,4958],{"class":4947},[170,5602,4961],{"class":176},[170,5604,5605],{"class":199},"Canonical payload:",[170,5607,4961],{"class":176},[170,5609,410],{"class":176},[170,5611,4981],{"class":4954},[170,5613,5614],{"class":4947},"(payload))\n",[170,5616,5617,5619,5621,5623,5625,5627,5630,5632,5634],{"class":172,"line":1966},[170,5618,5593],{"class":4947},[170,5620,3381],{"class":176},[170,5622,5598],{"class":4954},[170,5624,4958],{"class":4947},[170,5626,4961],{"class":176},[170,5628,5629],{"class":199},"Signature:",[170,5631,4961],{"class":176},[170,5633,410],{"class":176},[170,5635,5636],{"class":4947}," signature)\n",[170,5638,5639,5641,5643,5645,5647,5649,5652,5654,5656],{"class":172,"line":1971},[170,5640,5593],{"class":4947},[170,5642,3381],{"class":176},[170,5644,5598],{"class":4954},[170,5646,4958],{"class":4947},[170,5648,4961],{"class":176},[170,5650,5651],{"class":199},"Request body:",[170,5653,4961],{"class":176},[170,5655,410],{"class":176},[170,5657,5658],{"class":4947}," requestBody)\n",[161,5660,5665],{"className":5661,"code":5662,"filename":5663,"language":5664,"meta":166,"style":166},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C?php\n\nfunction canonicalize($value) {\n    if ($value === null) return 'null';\n    if (is_bool($value)) return $value ? 'true' : 'false';\n    if (is_int($value) || is_float($value)) return json_encode($value);\n    if (is_string($value)) return json_encode($value);\n\n    if (is_array($value)) {\n        $isList = array_keys($value) === range(0, count($value) - 1);\n\n        if ($isList) {\n            return '[' . implode(',', array_map('canonicalize', $value)) . ']';\n        }\n\n        ksort($value);\n\n        $parts = [];\n        foreach ($value as $key => $item) {\n            if ($key === 'signature') continue;\n            $parts[] = json_encode((string)$key) . ':' . canonicalize($item);\n        }\n\n        return '{' . implode(',', $parts) . '}';\n    }\n\n    return json_encode($value);\n}\n\nfunction generateKwikSignature($payload, $passphrase) {\n    return hash_hmac('sha256', canonicalize($payload), $passphrase);\n}\n\n\u002F\u002F Usage\n$payload = [\n    \"type\" => \"CHOOSE_WHAT_TO_PAY\",\n    \"item\" => [\n        \"title\" => \"My product name\",\n        \"frequency\" => [\"ONE_TIME\"],\n        \"amount\" => \"1200.00\"\n    ]\n];\n\n$passphrase = 'your-secure-passphrase';\n\n$signature = generateKwikSignature($payload, $passphrase);\n\n$requestBody = array_merge($payload, [\n    \"signature\" => $signature\n]);\n\nprint_r($requestBody);\n","PHP","php",[146,5666,5667,5675,5679,5694,5723,5766,5804,5829,5833,5850,5898,5902,5916,5972,5977,5981,5992,5996,6008,6036,6060,6106,6110,6114,6155,6159,6163,6175,6179,6183,6204,6236,6240,6244,6249,6261,6279,6291,6309,6330,6346,6351,6356,6360,6377,6381,6404,6408,6428,6443,6448,6452],{"__ignoreMap":166},[170,5668,5669,5672],{"class":172,"line":173},[170,5670,5671],{"class":176},"\u003C?",[170,5673,5674],{"class":4947},"php\n",[170,5676,5677],{"class":172,"line":180},[170,5678,550],{"emptyLinePlaceholder":549},[170,5680,5681,5683,5685,5688,5690,5692],{"class":172,"line":208},[170,5682,4978],{"class":186},[170,5684,4981],{"class":4954},[170,5686,5687],{"class":176},"($",[170,5689,4987],{"class":4947},[170,5691,3619],{"class":176},[170,5693,220],{"class":176},[170,5695,5696,5699,5702,5705,5708,5711,5714,5716,5718,5720],{"class":172,"line":223},[170,5697,5698],{"class":4996},"    if",[170,5700,5701],{"class":176}," ($",[170,5703,5704],{"class":4947},"value ",[170,5706,5707],{"class":176},"===",[170,5709,5710],{"class":176}," null)",[170,5712,5713],{"class":4996}," return",[170,5715,5023],{"class":176},[170,5717,3812],{"class":199},[170,5719,4961],{"class":176},[170,5721,5722],{"class":176},";\n",[170,5724,5725,5727,5729,5732,5734,5736,5739,5741,5744,5746,5749,5751,5753,5755,5758,5760,5762,5764],{"class":172,"line":246},[170,5726,5698],{"class":4996},[170,5728,5000],{"class":176},[170,5730,5731],{"class":4954},"is_bool",[170,5733,5687],{"class":176},[170,5735,4987],{"class":4947},[170,5737,5738],{"class":176},"))",[170,5740,5713],{"class":4996},[170,5742,5743],{"class":176}," $",[170,5745,5704],{"class":4947},[170,5747,5748],{"class":176},"?",[170,5750,5023],{"class":176},[170,5752,4340],{"class":199},[170,5754,4961],{"class":176},[170,5756,5757],{"class":176}," :",[170,5759,5023],{"class":176},[170,5761,3742],{"class":199},[170,5763,4961],{"class":176},[170,5765,5722],{"class":176},[170,5767,5768,5770,5772,5775,5777,5779,5781,5783,5786,5788,5790,5792,5794,5797,5799,5801],{"class":172,"line":275},[170,5769,5698],{"class":4996},[170,5771,5000],{"class":176},[170,5773,5774],{"class":4954},"is_int",[170,5776,5687],{"class":176},[170,5778,4987],{"class":4947},[170,5780,3619],{"class":176},[170,5782,5011],{"class":176},[170,5784,5785],{"class":4954}," is_float",[170,5787,5687],{"class":176},[170,5789,4987],{"class":4947},[170,5791,5738],{"class":176},[170,5793,5713],{"class":4996},[170,5795,5796],{"class":4954}," json_encode",[170,5798,5687],{"class":176},[170,5800,4987],{"class":4947},[170,5802,5803],{"class":176},");\n",[170,5805,5806,5808,5810,5813,5815,5817,5819,5821,5823,5825,5827],{"class":172,"line":297},[170,5807,5698],{"class":4996},[170,5809,5000],{"class":176},[170,5811,5812],{"class":4954},"is_string",[170,5814,5687],{"class":176},[170,5816,4987],{"class":4947},[170,5818,5738],{"class":176},[170,5820,5713],{"class":4996},[170,5822,5796],{"class":4954},[170,5824,5687],{"class":176},[170,5826,4987],{"class":4947},[170,5828,5803],{"class":176},[170,5830,5831],{"class":172,"line":303},[170,5832,550],{"emptyLinePlaceholder":549},[170,5834,5835,5837,5839,5842,5844,5846,5848],{"class":172,"line":522},[170,5836,5698],{"class":4996},[170,5838,5000],{"class":176},[170,5840,5841],{"class":4954},"is_array",[170,5843,5687],{"class":176},[170,5845,4987],{"class":4947},[170,5847,5738],{"class":176},[170,5849,220],{"class":176},[170,5851,5852,5855,5858,5860,5863,5865,5867,5869,5871,5874,5876,5879,5881,5884,5886,5888,5890,5893,5896],{"class":172,"line":540},[170,5853,5854],{"class":176},"        $",[170,5856,5857],{"class":4947},"isList ",[170,5859,4951],{"class":176},[170,5861,5862],{"class":4954}," array_keys",[170,5864,5687],{"class":176},[170,5866,4987],{"class":4947},[170,5868,3619],{"class":176},[170,5870,5005],{"class":176},[170,5872,5873],{"class":4954}," range",[170,5875,4958],{"class":176},[170,5877,5878],{"class":493},"0",[170,5880,410],{"class":176},[170,5882,5883],{"class":4954}," count",[170,5885,5687],{"class":176},[170,5887,4987],{"class":4947},[170,5889,3619],{"class":176},[170,5891,5892],{"class":176}," -",[170,5894,5895],{"class":493}," 1",[170,5897,5803],{"class":176},[170,5899,5900],{"class":172,"line":546},[170,5901,550],{"emptyLinePlaceholder":549},[170,5903,5904,5907,5909,5912,5914],{"class":172,"line":553},[170,5905,5906],{"class":4996},"        if",[170,5908,5701],{"class":176},[170,5910,5911],{"class":4947},"isList",[170,5913,3619],{"class":176},[170,5915,220],{"class":176},[170,5917,5918,5921,5923,5925,5927,5930,5933,5935,5937,5939,5941,5943,5946,5948,5950,5952,5954,5956,5958,5960,5962,5964,5966,5968,5970],{"class":172,"line":567},[170,5919,5920],{"class":4996},"            return",[170,5922,5023],{"class":176},[170,5924,4466],{"class":199},[170,5926,4961],{"class":176},[170,5928,5929],{"class":176}," .",[170,5931,5932],{"class":4954}," implode",[170,5934,4958],{"class":176},[170,5936,4961],{"class":176},[170,5938,410],{"class":199},[170,5940,4961],{"class":176},[170,5942,410],{"class":176},[170,5944,5945],{"class":4954}," array_map",[170,5947,4958],{"class":176},[170,5949,4961],{"class":176},[170,5951,5250],{"class":199},[170,5953,4961],{"class":176},[170,5955,410],{"class":176},[170,5957,5743],{"class":176},[170,5959,4987],{"class":4947},[170,5961,5738],{"class":176},[170,5963,5929],{"class":176},[170,5965,5023],{"class":176},[170,5967,4471],{"class":199},[170,5969,4961],{"class":176},[170,5971,5722],{"class":176},[170,5973,5974],{"class":172,"line":591},[170,5975,5976],{"class":176},"        }\n",[170,5978,5979],{"class":172,"line":613},[170,5980,550],{"emptyLinePlaceholder":549},[170,5982,5983,5986,5988,5990],{"class":172,"line":618},[170,5984,5985],{"class":4954},"        ksort",[170,5987,5687],{"class":176},[170,5989,4987],{"class":4947},[170,5991,5803],{"class":176},[170,5993,5994],{"class":172,"line":623},[170,5995,550],{"emptyLinePlaceholder":549},[170,5997,5998,6000,6003,6005],{"class":172,"line":647},[170,5999,5854],{"class":176},[170,6001,6002],{"class":4947},"parts ",[170,6004,4951],{"class":176},[170,6006,6007],{"class":176}," [];\n",[170,6009,6010,6013,6015,6017,6020,6022,6025,6028,6030,6032,6034],{"class":172,"line":652},[170,6011,6012],{"class":4996},"        foreach",[170,6014,5701],{"class":176},[170,6016,5704],{"class":4947},[170,6018,6019],{"class":176},"as",[170,6021,5743],{"class":176},[170,6023,6024],{"class":4947},"key ",[170,6026,6027],{"class":176},"=>",[170,6029,5743],{"class":176},[170,6031,213],{"class":4947},[170,6033,3619],{"class":176},[170,6035,220],{"class":176},[170,6037,6038,6041,6043,6045,6047,6049,6051,6053,6055,6058],{"class":172,"line":666},[170,6039,6040],{"class":4996},"            if",[170,6042,5701],{"class":176},[170,6044,6024],{"class":4947},[170,6046,5707],{"class":176},[170,6048,5023],{"class":176},[170,6050,628],{"class":199},[170,6052,4961],{"class":176},[170,6054,3619],{"class":176},[170,6056,6057],{"class":4996}," continue",[170,6059,5722],{"class":176},[170,6061,6062,6065,6068,6071,6073,6075,6078,6081,6084,6086,6088,6090,6092,6094,6096,6098,6100,6102,6104],{"class":172,"line":690},[170,6063,6064],{"class":176},"            $",[170,6066,6067],{"class":4947},"parts",[170,6069,6070],{"class":176},"[]",[170,6072,5320],{"class":176},[170,6074,5796],{"class":4954},[170,6076,6077],{"class":176},"((",[170,6079,6080],{"class":186},"string",[170,6082,6083],{"class":176},")$",[170,6085,5172],{"class":4947},[170,6087,3619],{"class":176},[170,6089,5929],{"class":176},[170,6091,5023],{"class":176},[170,6093,193],{"class":199},[170,6095,4961],{"class":176},[170,6097,5929],{"class":176},[170,6099,4981],{"class":4954},[170,6101,5687],{"class":176},[170,6103,213],{"class":4947},[170,6105,5803],{"class":176},[170,6107,6108],{"class":172,"line":712},[170,6109,5976],{"class":176},[170,6111,6112],{"class":172,"line":717},[170,6113,550],{"emptyLinePlaceholder":549},[170,6115,6116,6119,6121,6123,6125,6127,6129,6131,6133,6135,6137,6139,6141,6143,6145,6147,6149,6151,6153],{"class":172,"line":722},[170,6117,6118],{"class":4996},"        return",[170,6120,5023],{"class":176},[170,6122,5145],{"class":199},[170,6124,4961],{"class":176},[170,6126,5929],{"class":176},[170,6128,5932],{"class":4954},[170,6130,4958],{"class":176},[170,6132,4961],{"class":176},[170,6134,410],{"class":199},[170,6136,4961],{"class":176},[170,6138,410],{"class":176},[170,6140,5743],{"class":176},[170,6142,6067],{"class":4947},[170,6144,3619],{"class":176},[170,6146,5929],{"class":176},[170,6148,5023],{"class":176},[170,6150,5122],{"class":199},[170,6152,4961],{"class":176},[170,6154,5722],{"class":176},[170,6156,6157],{"class":172,"line":728},[170,6158,1118],{"class":176},[170,6160,6161],{"class":172,"line":742},[170,6162,550],{"emptyLinePlaceholder":549},[170,6164,6165,6167,6169,6171,6173],{"class":172,"line":757},[170,6166,5038],{"class":4996},[170,6168,5796],{"class":4954},[170,6170,5687],{"class":176},[170,6172,4987],{"class":4947},[170,6174,5803],{"class":176},[170,6176,6177],{"class":172,"line":775},[170,6178,306],{"class":176},[170,6180,6181],{"class":172,"line":780},[170,6182,550],{"emptyLinePlaceholder":549},[170,6184,6185,6187,6189,6191,6193,6195,6197,6200,6202],{"class":172,"line":785},[170,6186,4978],{"class":186},[170,6188,5295],{"class":4954},[170,6190,5687],{"class":176},[170,6192,5300],{"class":4947},[170,6194,410],{"class":176},[170,6196,5743],{"class":176},[170,6198,6199],{"class":4947},"passphrase",[170,6201,3619],{"class":176},[170,6203,220],{"class":176},[170,6205,6206,6208,6211,6213,6215,6217,6219,6221,6223,6225,6227,6230,6232,6234],{"class":172,"line":791},[170,6207,5038],{"class":4996},[170,6209,6210],{"class":4954}," hash_hmac",[170,6212,4958],{"class":176},[170,6214,4961],{"class":176},[170,6216,5353],{"class":199},[170,6218,4961],{"class":176},[170,6220,410],{"class":176},[170,6222,4981],{"class":4954},[170,6224,5687],{"class":176},[170,6226,5300],{"class":4947},[170,6228,6229],{"class":176},"),",[170,6231,5743],{"class":176},[170,6233,6199],{"class":4947},[170,6235,5803],{"class":176},[170,6237,6238],{"class":172,"line":805},[170,6239,306],{"class":176},[170,6241,6242],{"class":172,"line":817},[170,6243,550],{"emptyLinePlaceholder":549},[170,6245,6246],{"class":172,"line":829},[170,6247,6248],{"class":271},"\u002F\u002F Usage\n",[170,6250,6251,6254,6257,6259],{"class":172,"line":841},[170,6252,6253],{"class":176},"$",[170,6255,6256],{"class":4947},"payload ",[170,6258,4951],{"class":176},[170,6260,802],{"class":176},[170,6262,6263,6265,6267,6269,6271,6273,6275,6277],{"class":172,"line":853},[170,6264,226],{"class":176},[170,6266,187],{"class":199},[170,6268,190],{"class":176},[170,6270,5177],{"class":176},[170,6272,196],{"class":176},[170,6274,200],{"class":199},[170,6276,190],{"class":176},[170,6278,205],{"class":176},[170,6280,6281,6283,6285,6287,6289],{"class":172,"line":865},[170,6282,226],{"class":176},[170,6284,213],{"class":199},[170,6286,190],{"class":176},[170,6288,5177],{"class":176},[170,6290,802],{"class":176},[170,6292,6293,6295,6297,6299,6301,6303,6305,6307],{"class":172,"line":877},[170,6294,1711],{"class":176},[170,6296,230],{"class":199},[170,6298,190],{"class":176},[170,6300,5177],{"class":176},[170,6302,196],{"class":176},[170,6304,239],{"class":199},[170,6306,190],{"class":176},[170,6308,205],{"class":176},[170,6310,6311,6313,6315,6317,6319,6321,6323,6325,6327],{"class":172,"line":888},[170,6312,1711],{"class":176},[170,6314,251],{"class":199},[170,6316,190],{"class":176},[170,6318,5177],{"class":176},[170,6320,258],{"class":176},[170,6322,190],{"class":176},[170,6324,263],{"class":199},[170,6326,190],{"class":176},[170,6328,6329],{"class":176},"],\n",[170,6331,6332,6334,6336,6338,6340,6342,6344],{"class":172,"line":894},[170,6333,1711],{"class":176},[170,6335,280],{"class":199},[170,6337,190],{"class":176},[170,6339,5177],{"class":176},[170,6341,196],{"class":176},[170,6343,289],{"class":199},[170,6345,885],{"class":176},[170,6347,6348],{"class":172,"line":1881},[170,6349,6350],{"class":176},"    ]\n",[170,6352,6353],{"class":172,"line":1886},[170,6354,6355],{"class":176},"];\n",[170,6357,6358],{"class":172,"line":1891},[170,6359,550],{"emptyLinePlaceholder":549},[170,6361,6362,6364,6367,6369,6371,6373,6375],{"class":172,"line":1897},[170,6363,6253],{"class":176},[170,6365,6366],{"class":4947},"passphrase ",[170,6368,4951],{"class":176},[170,6370,5023],{"class":176},[170,6372,5525],{"class":199},[170,6374,4961],{"class":176},[170,6376,5722],{"class":176},[170,6378,6379],{"class":172,"line":1910},[170,6380,550],{"emptyLinePlaceholder":549},[170,6382,6383,6385,6388,6390,6392,6394,6396,6398,6400,6402],{"class":172,"line":1915},[170,6384,6253],{"class":176},[170,6386,6387],{"class":4947},"signature ",[170,6389,4951],{"class":176},[170,6391,5295],{"class":4954},[170,6393,5687],{"class":176},[170,6395,5300],{"class":4947},[170,6397,410],{"class":176},[170,6399,5743],{"class":176},[170,6401,6199],{"class":4947},[170,6403,5803],{"class":176},[170,6405,6406],{"class":172,"line":1934},[170,6407,550],{"emptyLinePlaceholder":549},[170,6409,6410,6412,6415,6417,6420,6422,6424,6426],{"class":172,"line":1949},[170,6411,6253],{"class":176},[170,6413,6414],{"class":4947},"requestBody ",[170,6416,4951],{"class":176},[170,6418,6419],{"class":4954}," array_merge",[170,6421,5687],{"class":176},[170,6423,5300],{"class":4947},[170,6425,410],{"class":176},[170,6427,802],{"class":176},[170,6429,6430,6432,6434,6436,6438,6440],{"class":172,"line":1966},[170,6431,226],{"class":176},[170,6433,628],{"class":199},[170,6435,190],{"class":176},[170,6437,5177],{"class":176},[170,6439,5743],{"class":176},[170,6441,6442],{"class":4947},"signature\n",[170,6444,6445],{"class":172,"line":1971},[170,6446,6447],{"class":176},"]);\n",[170,6449,6450],{"class":172,"line":1976},[170,6451,550],{"emptyLinePlaceholder":549},[170,6453,6454,6457,6459,6462],{"class":172,"line":1995},[170,6455,6456],{"class":4954},"print_r",[170,6458,5687],{"class":176},[170,6460,6461],{"class":4947},"requestBody",[170,6463,5803],{"class":176},[161,6465,6470],{"className":6466,"code":6467,"filename":6468,"language":6469,"meta":166,"style":166},"language-csharp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Security.Cryptography;\nusing System.Text;\nusing System.Text.Json;\n\npublic class KwikSignature\n{\n    public static string Canonicalize(object value)\n    {\n        if (value == null) return \"null\";\n\n        if (value is string || value is bool || value is int || value is long || value is decimal || value is double)\n            return JsonSerializer.Serialize(value);\n\n        if (value is IEnumerable\u003Cobject> list)\n            return \"[\" + string.Join(\",\", list.Select(Canonicalize)) + \"]\";\n\n        if (value is IDictionary\u003Cstring, object> dict)\n        {\n            var parts = dict\n                .Where(kvp => kvp.Key != \"signature\")\n                .OrderBy(kvp => kvp.Key)\n                .Select(kvp => JsonSerializer.Serialize(kvp.Key) + \":\" + Canonicalize(kvp.Value));\n\n            return \"{\" + string.Join(\",\", parts) + \"}\";\n        }\n\n        return JsonSerializer.Serialize(value);\n    }\n\n    public static string GenerateKwikSignature(IDictionary\u003Cstring, object> payload, string passphrase)\n    {\n        var canonical = Canonicalize(payload);\n\n        using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(passphrase));\n        var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(canonical));\n\n        return Convert.ToHexString(hash).ToLowerInvariant();\n    }\n\n    public static void Main()\n    {\n        var payload = new Dictionary\u003Cstring, object>\n        {\n            [\"type\"] = \"CHOOSE_WHAT_TO_PAY\",\n            [\"item\"] = new Dictionary\u003Cstring, object>\n            {\n                [\"title\"] = \"My product name\",\n                [\"frequency\"] = new List\u003Cobject> { \"ONE_TIME\" },\n                [\"amount\"] = \"1200.00\"\n            }\n        };\n\n        var passphrase = \"your-secure-passphrase\";\n\n        var signature = GenerateKwikSignature(payload, passphrase);\n        payload[\"signature\"] = signature;\n\n        Console.WriteLine(JsonSerializer.Serialize(payload));\n    }\n}\n","C#","csharp",[146,6471,6472,6482,6499,6512,6530,6543,6560,6564,6575,6579,6600,6604,6627,6631,6690,6708,6712,6733,6787,6791,6819,6824,6837,6871,6893,6945,6949,6991,6995,6999,7015,7019,7023,7058,7062,7080,7084,7124,7159,7163,7189,7193,7197,7211,7215,7237,7241,7264,7290,7295,7318,7351,7371,7376,7381,7385,7401,7405,7426,7447,7451,7476,7480],{"__ignoreMap":166},[170,6473,6474,6477,6480],{"class":172,"line":173},[170,6475,6476],{"class":493},"using",[170,6478,6479],{"class":4947}," System",[170,6481,5722],{"class":176},[170,6483,6484,6486,6488,6490,6492,6494,6497],{"class":172,"line":180},[170,6485,6476],{"class":493},[170,6487,6479],{"class":4947},[170,6489,3381],{"class":176},[170,6491,83],{"class":4947},[170,6493,3381],{"class":176},[170,6495,6496],{"class":4947},"Generic",[170,6498,5722],{"class":176},[170,6500,6501,6503,6505,6507,6510],{"class":172,"line":208},[170,6502,6476],{"class":493},[170,6504,6479],{"class":4947},[170,6506,3381],{"class":176},[170,6508,6509],{"class":4947},"Linq",[170,6511,5722],{"class":176},[170,6513,6514,6516,6518,6520,6523,6525,6528],{"class":172,"line":223},[170,6515,6476],{"class":493},[170,6517,6479],{"class":4947},[170,6519,3381],{"class":176},[170,6521,6522],{"class":4947},"Security",[170,6524,3381],{"class":176},[170,6526,6527],{"class":4947},"Cryptography",[170,6529,5722],{"class":176},[170,6531,6532,6534,6536,6538,6541],{"class":172,"line":246},[170,6533,6476],{"class":493},[170,6535,6479],{"class":4947},[170,6537,3381],{"class":176},[170,6539,6540],{"class":4947},"Text",[170,6542,5722],{"class":176},[170,6544,6545,6547,6549,6551,6553,6555,6558],{"class":172,"line":275},[170,6546,6476],{"class":493},[170,6548,6479],{"class":4947},[170,6550,3381],{"class":176},[170,6552,6540],{"class":4947},[170,6554,3381],{"class":176},[170,6556,6557],{"class":4947},"Json",[170,6559,5722],{"class":176},[170,6561,6562],{"class":172,"line":297},[170,6563,550],{"emptyLinePlaceholder":549},[170,6565,6566,6569,6572],{"class":172,"line":303},[170,6567,6568],{"class":186},"public",[170,6570,6571],{"class":229}," class",[170,6573,6574],{"class":229}," KwikSignature\n",[170,6576,6577],{"class":172,"line":522},[170,6578,177],{"class":176},[170,6580,6581,6584,6587,6590,6593,6596,6598],{"class":172,"line":540},[170,6582,6583],{"class":186},"    public",[170,6585,6586],{"class":186}," static",[170,6588,6589],{"class":176}," string",[170,6591,6592],{"class":4954}," Canonicalize",[170,6594,6595],{"class":176},"(object",[170,6597,5017],{"class":229},[170,6599,4969],{"class":176},[170,6601,6602],{"class":172,"line":546},[170,6603,1049],{"class":176},[170,6605,6606,6608,6610,6612,6615,6617,6619,6621,6623,6625],{"class":172,"line":553},[170,6607,5906],{"class":4996},[170,6609,5000],{"class":176},[170,6611,5704],{"class":4947},[170,6613,6614],{"class":176},"==",[170,6616,5710],{"class":176},[170,6618,5713],{"class":4996},[170,6620,196],{"class":176},[170,6622,3812],{"class":199},[170,6624,190],{"class":176},[170,6626,5722],{"class":176},[170,6628,6629],{"class":172,"line":567},[170,6630,550],{"emptyLinePlaceholder":549},[170,6632,6633,6635,6637,6639,6642,6644,6646,6649,6651,6654,6656,6658,6660,6663,6665,6667,6669,6672,6674,6676,6678,6681,6683,6685,6687],{"class":172,"line":591},[170,6634,5906],{"class":4996},[170,6636,5000],{"class":176},[170,6638,5704],{"class":4947},[170,6640,6641],{"class":176},"is",[170,6643,6589],{"class":176},[170,6645,5011],{"class":176},[170,6647,6648],{"class":4947}," value ",[170,6650,6641],{"class":176},[170,6652,6653],{"class":176}," bool",[170,6655,5011],{"class":176},[170,6657,6648],{"class":4947},[170,6659,6641],{"class":176},[170,6661,6662],{"class":176}," int",[170,6664,5011],{"class":176},[170,6666,6648],{"class":4947},[170,6668,6641],{"class":176},[170,6670,6671],{"class":176}," long",[170,6673,5011],{"class":176},[170,6675,6648],{"class":4947},[170,6677,6641],{"class":176},[170,6679,6680],{"class":176}," decimal",[170,6682,5011],{"class":176},[170,6684,6648],{"class":4947},[170,6686,6641],{"class":176},[170,6688,6689],{"class":176}," double)\n",[170,6691,6692,6694,6697,6699,6702,6704,6706],{"class":172,"line":613},[170,6693,5920],{"class":4996},[170,6695,6696],{"class":4947}," JsonSerializer",[170,6698,3381],{"class":176},[170,6700,6701],{"class":4954},"Serialize",[170,6703,4958],{"class":176},[170,6705,4987],{"class":4947},[170,6707,5803],{"class":176},[170,6709,6710],{"class":172,"line":618},[170,6711,550],{"emptyLinePlaceholder":549},[170,6713,6714,6716,6718,6720,6722,6725,6728,6731],{"class":172,"line":623},[170,6715,5906],{"class":4996},[170,6717,5000],{"class":176},[170,6719,5704],{"class":4947},[170,6721,6641],{"class":176},[170,6723,6724],{"class":229}," IEnumerable",[170,6726,6727],{"class":176},"\u003Cobject>",[170,6729,6730],{"class":229}," list",[170,6732,4969],{"class":176},[170,6734,6735,6737,6739,6741,6743,6746,6748,6750,6753,6755,6757,6759,6761,6763,6765,6767,6770,6772,6775,6777,6779,6781,6783,6785],{"class":172,"line":647},[170,6736,5920],{"class":4996},[170,6738,196],{"class":176},[170,6740,4466],{"class":199},[170,6742,190],{"class":176},[170,6744,6745],{"class":176}," +",[170,6747,6589],{"class":176},[170,6749,3381],{"class":176},[170,6751,6752],{"class":4954},"Join",[170,6754,4958],{"class":176},[170,6756,190],{"class":176},[170,6758,410],{"class":199},[170,6760,190],{"class":176},[170,6762,410],{"class":176},[170,6764,6730],{"class":4947},[170,6766,3381],{"class":176},[170,6768,6769],{"class":4954},"Select",[170,6771,4958],{"class":176},[170,6773,6774],{"class":4947},"Canonicalize",[170,6776,5738],{"class":176},[170,6778,6745],{"class":176},[170,6780,196],{"class":176},[170,6782,4471],{"class":199},[170,6784,190],{"class":176},[170,6786,5722],{"class":176},[170,6788,6789],{"class":172,"line":652},[170,6790,550],{"emptyLinePlaceholder":549},[170,6792,6793,6795,6797,6799,6801,6804,6807,6809,6811,6814,6817],{"class":172,"line":666},[170,6794,5906],{"class":4996},[170,6796,5000],{"class":176},[170,6798,5704],{"class":4947},[170,6800,6641],{"class":176},[170,6802,6803],{"class":229}," IDictionary",[170,6805,6806],{"class":176},"\u003C",[170,6808,6080],{"class":176},[170,6810,410],{"class":176},[170,6812,6813],{"class":176}," object>",[170,6815,6816],{"class":229}," dict",[170,6818,4969],{"class":176},[170,6820,6821],{"class":172,"line":690},[170,6822,6823],{"class":176},"        {\n",[170,6825,6826,6829,6832,6834],{"class":172,"line":712},[170,6827,6828],{"class":229},"            var",[170,6830,6831],{"class":229}," parts",[170,6833,5320],{"class":176},[170,6835,6836],{"class":4947}," dict\n",[170,6838,6839,6842,6845,6847,6850,6852,6855,6857,6860,6863,6865,6867,6869],{"class":172,"line":717},[170,6840,6841],{"class":176},"                .",[170,6843,6844],{"class":4954},"Where",[170,6846,4958],{"class":176},[170,6848,6849],{"class":229},"kvp",[170,6851,5177],{"class":176},[170,6853,6854],{"class":4947}," kvp",[170,6856,3381],{"class":176},[170,6858,6859],{"class":4947},"Key ",[170,6861,6862],{"class":176},"!=",[170,6864,196],{"class":176},[170,6866,628],{"class":199},[170,6868,190],{"class":176},[170,6870,4969],{"class":176},[170,6872,6873,6875,6878,6880,6882,6884,6886,6888,6891],{"class":172,"line":722},[170,6874,6841],{"class":176},[170,6876,6877],{"class":4954},"OrderBy",[170,6879,4958],{"class":176},[170,6881,6849],{"class":229},[170,6883,5177],{"class":176},[170,6885,6854],{"class":4947},[170,6887,3381],{"class":176},[170,6889,6890],{"class":4947},"Key",[170,6892,4969],{"class":176},[170,6894,6895,6897,6899,6901,6903,6905,6907,6909,6911,6913,6915,6917,6919,6921,6923,6925,6927,6929,6931,6933,6935,6937,6939,6942],{"class":172,"line":728},[170,6896,6841],{"class":176},[170,6898,6769],{"class":4954},[170,6900,4958],{"class":176},[170,6902,6849],{"class":229},[170,6904,5177],{"class":176},[170,6906,6696],{"class":4947},[170,6908,3381],{"class":176},[170,6910,6701],{"class":4954},[170,6912,4958],{"class":176},[170,6914,6849],{"class":4947},[170,6916,3381],{"class":176},[170,6918,6890],{"class":4947},[170,6920,3619],{"class":176},[170,6922,6745],{"class":176},[170,6924,196],{"class":176},[170,6926,193],{"class":199},[170,6928,190],{"class":176},[170,6930,6745],{"class":176},[170,6932,6592],{"class":4954},[170,6934,4958],{"class":176},[170,6936,6849],{"class":4947},[170,6938,3381],{"class":176},[170,6940,6941],{"class":4947},"Value",[170,6943,6944],{"class":176},"));\n",[170,6946,6947],{"class":172,"line":742},[170,6948,550],{"emptyLinePlaceholder":549},[170,6950,6951,6953,6955,6957,6959,6961,6963,6965,6967,6969,6971,6973,6975,6977,6979,6981,6983,6985,6987,6989],{"class":172,"line":757},[170,6952,5920],{"class":4996},[170,6954,196],{"class":176},[170,6956,5145],{"class":199},[170,6958,190],{"class":176},[170,6960,6745],{"class":176},[170,6962,6589],{"class":176},[170,6964,3381],{"class":176},[170,6966,6752],{"class":4954},[170,6968,4958],{"class":176},[170,6970,190],{"class":176},[170,6972,410],{"class":199},[170,6974,190],{"class":176},[170,6976,410],{"class":176},[170,6978,6831],{"class":4947},[170,6980,3619],{"class":176},[170,6982,6745],{"class":176},[170,6984,196],{"class":176},[170,6986,5122],{"class":199},[170,6988,190],{"class":176},[170,6990,5722],{"class":176},[170,6992,6993],{"class":172,"line":775},[170,6994,5976],{"class":176},[170,6996,6997],{"class":172,"line":780},[170,6998,550],{"emptyLinePlaceholder":549},[170,7000,7001,7003,7005,7007,7009,7011,7013],{"class":172,"line":785},[170,7002,6118],{"class":4996},[170,7004,6696],{"class":4947},[170,7006,3381],{"class":176},[170,7008,6701],{"class":4954},[170,7010,4958],{"class":176},[170,7012,4987],{"class":4947},[170,7014,5803],{"class":176},[170,7016,7017],{"class":172,"line":791},[170,7018,1118],{"class":176},[170,7020,7021],{"class":172,"line":805},[170,7022,550],{"emptyLinePlaceholder":549},[170,7024,7025,7027,7029,7031,7034,7036,7039,7041,7043,7045,7047,7050,7052,7054,7056],{"class":172,"line":817},[170,7026,6583],{"class":186},[170,7028,6586],{"class":186},[170,7030,6589],{"class":176},[170,7032,7033],{"class":4954}," GenerateKwikSignature",[170,7035,4958],{"class":176},[170,7037,7038],{"class":229},"IDictionary",[170,7040,6806],{"class":176},[170,7042,6080],{"class":176},[170,7044,410],{"class":176},[170,7046,6813],{"class":176},[170,7048,7049],{"class":229}," payload",[170,7051,410],{"class":176},[170,7053,6589],{"class":176},[170,7055,5305],{"class":229},[170,7057,4969],{"class":176},[170,7059,7060],{"class":172,"line":829},[170,7061,1049],{"class":176},[170,7063,7064,7067,7070,7072,7074,7076,7078],{"class":172,"line":841},[170,7065,7066],{"class":229},"        var",[170,7068,7069],{"class":229}," canonical",[170,7071,5320],{"class":176},[170,7073,6592],{"class":4954},[170,7075,4958],{"class":176},[170,7077,5300],{"class":4947},[170,7079,5803],{"class":176},[170,7081,7082],{"class":172,"line":853},[170,7083,550],{"emptyLinePlaceholder":549},[170,7085,7086,7089,7092,7095,7097,7100,7103,7105,7108,7110,7113,7115,7118,7120,7122],{"class":172,"line":865},[170,7087,7088],{"class":4996},"        using",[170,7090,7091],{"class":229}," var",[170,7093,7094],{"class":229}," hmac",[170,7096,5320],{"class":176},[170,7098,7099],{"class":176}," new",[170,7101,7102],{"class":229}," HMACSHA256",[170,7104,4958],{"class":176},[170,7106,7107],{"class":4947},"Encoding",[170,7109,3381],{"class":176},[170,7111,7112],{"class":4947},"UTF8",[170,7114,3381],{"class":176},[170,7116,7117],{"class":4954},"GetBytes",[170,7119,4958],{"class":176},[170,7121,6199],{"class":4947},[170,7123,6944],{"class":176},[170,7125,7126,7128,7131,7133,7135,7137,7140,7142,7144,7146,7148,7150,7152,7154,7157],{"class":172,"line":877},[170,7127,7066],{"class":229},[170,7129,7130],{"class":229}," hash",[170,7132,5320],{"class":176},[170,7134,7094],{"class":4947},[170,7136,3381],{"class":176},[170,7138,7139],{"class":4954},"ComputeHash",[170,7141,4958],{"class":176},[170,7143,7107],{"class":4947},[170,7145,3381],{"class":176},[170,7147,7112],{"class":4947},[170,7149,3381],{"class":176},[170,7151,7117],{"class":4954},[170,7153,4958],{"class":176},[170,7155,7156],{"class":4947},"canonical",[170,7158,6944],{"class":176},[170,7160,7161],{"class":172,"line":888},[170,7162,550],{"emptyLinePlaceholder":549},[170,7164,7165,7167,7170,7172,7175,7177,7180,7183,7186],{"class":172,"line":894},[170,7166,6118],{"class":4996},[170,7168,7169],{"class":4947}," Convert",[170,7171,3381],{"class":176},[170,7173,7174],{"class":4954},"ToHexString",[170,7176,4958],{"class":176},[170,7178,7179],{"class":4947},"hash",[170,7181,7182],{"class":176},").",[170,7184,7185],{"class":4954},"ToLowerInvariant",[170,7187,7188],{"class":176},"();\n",[170,7190,7191],{"class":172,"line":1881},[170,7192,1118],{"class":176},[170,7194,7195],{"class":172,"line":1886},[170,7196,550],{"emptyLinePlaceholder":549},[170,7198,7199,7201,7203,7206,7209],{"class":172,"line":1891},[170,7200,6583],{"class":186},[170,7202,6586],{"class":186},[170,7204,7205],{"class":176}," void",[170,7207,7208],{"class":4954}," Main",[170,7210,5212],{"class":176},[170,7212,7213],{"class":172,"line":1897},[170,7214,1049],{"class":176},[170,7216,7217,7219,7221,7223,7225,7228,7230,7232,7234],{"class":172,"line":1910},[170,7218,7066],{"class":229},[170,7220,7049],{"class":229},[170,7222,5320],{"class":176},[170,7224,7099],{"class":176},[170,7226,7227],{"class":229}," Dictionary",[170,7229,6806],{"class":176},[170,7231,6080],{"class":176},[170,7233,410],{"class":176},[170,7235,7236],{"class":176}," object>\n",[170,7238,7239],{"class":172,"line":1915},[170,7240,6823],{"class":176},[170,7242,7243,7246,7248,7250,7252,7254,7256,7258,7260,7262],{"class":172,"line":1934},[170,7244,7245],{"class":176},"            [",[170,7247,190],{"class":176},[170,7249,187],{"class":199},[170,7251,190],{"class":176},[170,7253,4471],{"class":176},[170,7255,5320],{"class":176},[170,7257,196],{"class":176},[170,7259,200],{"class":199},[170,7261,190],{"class":176},[170,7263,205],{"class":176},[170,7265,7266,7268,7270,7272,7274,7276,7278,7280,7282,7284,7286,7288],{"class":172,"line":1949},[170,7267,7245],{"class":176},[170,7269,190],{"class":176},[170,7271,213],{"class":199},[170,7273,190],{"class":176},[170,7275,4471],{"class":176},[170,7277,5320],{"class":176},[170,7279,7099],{"class":176},[170,7281,7227],{"class":229},[170,7283,6806],{"class":176},[170,7285,6080],{"class":176},[170,7287,410],{"class":176},[170,7289,7236],{"class":176},[170,7291,7292],{"class":172,"line":1966},[170,7293,7294],{"class":176},"            {\n",[170,7296,7297,7300,7302,7304,7306,7308,7310,7312,7314,7316],{"class":172,"line":1971},[170,7298,7299],{"class":176},"                [",[170,7301,190],{"class":176},[170,7303,230],{"class":199},[170,7305,190],{"class":176},[170,7307,4471],{"class":176},[170,7309,5320],{"class":176},[170,7311,196],{"class":176},[170,7313,239],{"class":199},[170,7315,190],{"class":176},[170,7317,205],{"class":176},[170,7319,7320,7322,7324,7326,7328,7330,7332,7334,7337,7339,7342,7344,7346,7348],{"class":172,"line":1976},[170,7321,7299],{"class":176},[170,7323,190],{"class":176},[170,7325,251],{"class":199},[170,7327,190],{"class":176},[170,7329,4471],{"class":176},[170,7331,5320],{"class":176},[170,7333,7099],{"class":176},[170,7335,7336],{"class":229}," List",[170,7338,6727],{"class":176},[170,7340,7341],{"class":176}," {",[170,7343,196],{"class":176},[170,7345,263],{"class":199},[170,7347,190],{"class":176},[170,7349,7350],{"class":176}," },\n",[170,7352,7353,7355,7357,7359,7361,7363,7365,7367,7369],{"class":172,"line":1995},[170,7354,7299],{"class":176},[170,7356,190],{"class":176},[170,7358,280],{"class":199},[170,7360,190],{"class":176},[170,7362,4471],{"class":176},[170,7364,5320],{"class":176},[170,7366,196],{"class":176},[170,7368,289],{"class":199},[170,7370,885],{"class":176},[170,7372,7373],{"class":172,"line":2009},[170,7374,7375],{"class":176},"            }\n",[170,7377,7378],{"class":172,"line":2014},[170,7379,7380],{"class":176},"        };\n",[170,7382,7383],{"class":172,"line":2019},[170,7384,550],{"emptyLinePlaceholder":549},[170,7386,7387,7389,7391,7393,7395,7397,7399],{"class":172,"line":2025},[170,7388,7066],{"class":229},[170,7390,5305],{"class":229},[170,7392,5320],{"class":176},[170,7394,196],{"class":176},[170,7396,5525],{"class":199},[170,7398,190],{"class":176},[170,7400,5722],{"class":176},[170,7402,7403],{"class":172,"line":2030},[170,7404,550],{"emptyLinePlaceholder":549},[170,7406,7407,7409,7412,7414,7416,7418,7420,7422,7424],{"class":172,"line":2051},[170,7408,7066],{"class":229},[170,7410,7411],{"class":229}," signature",[170,7413,5320],{"class":176},[170,7415,7033],{"class":4954},[170,7417,4958],{"class":176},[170,7419,5300],{"class":4947},[170,7421,410],{"class":176},[170,7423,5305],{"class":4947},[170,7425,5803],{"class":176},[170,7427,7428,7431,7433,7435,7437,7439,7441,7443,7445],{"class":172,"line":2071},[170,7429,7430],{"class":4947},"        payload",[170,7432,4466],{"class":176},[170,7434,190],{"class":176},[170,7436,628],{"class":199},[170,7438,190],{"class":176},[170,7440,4471],{"class":176},[170,7442,5320],{"class":176},[170,7444,7411],{"class":4947},[170,7446,5722],{"class":176},[170,7448,7449],{"class":172,"line":2091},[170,7450,550],{"emptyLinePlaceholder":549},[170,7452,7453,7456,7458,7461,7463,7466,7468,7470,7472,7474],{"class":172,"line":2112},[170,7454,7455],{"class":4947},"        Console",[170,7457,3381],{"class":176},[170,7459,7460],{"class":4954},"WriteLine",[170,7462,4958],{"class":176},[170,7464,7465],{"class":4947},"JsonSerializer",[170,7467,3381],{"class":176},[170,7469,6701],{"class":4954},[170,7471,4958],{"class":176},[170,7473,5300],{"class":4947},[170,7475,6944],{"class":176},[170,7477,7478],{"class":172,"line":2133},[170,7479,1118],{"class":176},[170,7481,7482],{"class":172,"line":2148},[170,7483,306],{"class":176},[161,7485,7490],{"className":7486,"code":7487,"filename":7488,"language":7489,"meta":166,"style":166},"language-java shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import javax.crypto.Mac;\nimport javax.crypto.spec.SecretKeySpec;\nimport java.nio.charset.StandardCharsets;\nimport java.util.*;\n\npublic class KwikSignature {\n\n    public static String canonicalize(Object value) {\n        if (value == null) return \"null\";\n\n        if (value instanceof String) return \"\\\"\" + value + \"\\\"\";\n        if (value instanceof Boolean || value instanceof Number) return value.toString();\n\n        if (value instanceof List\u003C?>) {\n            List\u003C?> list = (List\u003C?>) value;\n            List\u003CString> parts = new ArrayList\u003C>();\n            for (Object item : list) parts.add(canonicalize(item));\n            return \"[\" + String.join(\",\", parts) + \"]\";\n        }\n\n        if (value instanceof Map\u003C?, ?> map) {\n            List\u003CString> keys = new ArrayList\u003C>();\n            for (Object k : map.keySet()) {\n                if (!\"signature\".equals(k)) keys.add((String) k);\n            }\n            Collections.sort(keys);\n\n            List\u003CString> parts = new ArrayList\u003C>();\n            for (String key : keys) {\n                parts.add(\"\\\"\" + key + \"\\\":\" + canonicalize(map.get(key)));\n            }\n\n            return \"{\" + String.join(\",\", parts) + \"}\";\n        }\n\n        return \"\\\"\" + value.toString() + \"\\\"\";\n    }\n\n    public static String generateKwikSignature(Map\u003CString, Object> payload, String passphrase) throws Exception {\n        String canonical = canonicalize(payload);\n\n        Mac mac = Mac.getInstance(\"HmacSHA256\");\n        mac.init(new SecretKeySpec(passphrase.getBytes(StandardCharsets.UTF_8), \"HmacSHA256\"));\n\n        byte[] hash = mac.doFinal(canonical.getBytes(StandardCharsets.UTF_8));\n\n        StringBuilder hex = new StringBuilder();\n        for (byte b : hash) hex.append(String.format(\"%02x\", b));\n\n        return hex.toString();\n    }\n\n    public static void main(String[] args) throws Exception {\n        Map\u003CString, Object> payload = new HashMap\u003C>();\n\n        payload.put(\"type\", \"CHOOSE_WHAT_TO_PAY\");\n\n        Map\u003CString, Object> item = new HashMap\u003C>();\n        item.put(\"title\", \"My product name\");\n        item.put(\"frequency\", List.of(\"ONE_TIME\"));\n        item.put(\"amount\", \"1200.00\");\n\n        payload.put(\"item\", item);\n\n        String passphrase = \"your-secure-passphrase\";\n\n        String signature = generateKwikSignature(payload, passphrase);\n\n        payload.put(\"signature\", signature);\n\n        System.out.println(payload);\n    }\n}\n","Java","java",[146,7491,7492,7511,7533,7557,7575,7579,7590,7594,7615,7637,7641,7680,7716,7720,7741,7773,7796,7831,7873,7877,7881,7912,7933,7958,8002,8006,8021,8025,8045,8063,8114,8118,8122,8164,8168,8172,8203,8207,8211,8255,8273,8277,8306,8352,8356,8394,8398,8415,8467,8471,8483,8487,8491,8519,8545,8549,8576,8580,8604,8631,8666,8692,8696,8719,8723,8739,8743,8763,8767,8789,8793,8814,8818],{"__ignoreMap":166},[170,7493,7494,7497,7500,7502,7504,7506,7509],{"class":172,"line":173},[170,7495,7496],{"class":493},"import",[170,7498,7499],{"class":186}," javax",[170,7501,3381],{"class":176},[170,7503,4964],{"class":186},[170,7505,3381],{"class":176},[170,7507,7508],{"class":186},"Mac",[170,7510,5722],{"class":176},[170,7512,7513,7515,7517,7519,7521,7523,7526,7528,7531],{"class":172,"line":180},[170,7514,7496],{"class":493},[170,7516,7499],{"class":186},[170,7518,3381],{"class":176},[170,7520,4964],{"class":186},[170,7522,3381],{"class":176},[170,7524,7525],{"class":186},"spec",[170,7527,3381],{"class":176},[170,7529,7530],{"class":186},"SecretKeySpec",[170,7532,5722],{"class":176},[170,7534,7535,7537,7540,7542,7545,7547,7550,7552,7555],{"class":172,"line":208},[170,7536,7496],{"class":493},[170,7538,7539],{"class":186}," java",[170,7541,3381],{"class":176},[170,7543,7544],{"class":186},"nio",[170,7546,3381],{"class":176},[170,7548,7549],{"class":186},"charset",[170,7551,3381],{"class":176},[170,7553,7554],{"class":186},"StandardCharsets",[170,7556,5722],{"class":176},[170,7558,7559,7561,7563,7565,7568,7570,7573],{"class":172,"line":223},[170,7560,7496],{"class":493},[170,7562,7539],{"class":186},[170,7564,3381],{"class":176},[170,7566,7567],{"class":186},"util",[170,7569,3381],{"class":176},[170,7571,7572],{"class":4947},"*",[170,7574,5722],{"class":176},[170,7576,7577],{"class":172,"line":246},[170,7578,550],{"emptyLinePlaceholder":549},[170,7580,7581,7583,7585,7588],{"class":172,"line":275},[170,7582,6568],{"class":186},[170,7584,6571],{"class":186},[170,7586,7587],{"class":229}," KwikSignature",[170,7589,220],{"class":176},[170,7591,7592],{"class":172,"line":297},[170,7593,550],{"emptyLinePlaceholder":549},[170,7595,7596,7598,7600,7603,7605,7607,7609,7611,7613],{"class":172,"line":303},[170,7597,6583],{"class":186},[170,7599,6586],{"class":186},[170,7601,7602],{"class":186}," String",[170,7604,4981],{"class":4954},[170,7606,4958],{"class":176},[170,7608,3449],{"class":186},[170,7610,5017],{"class":4986},[170,7612,3619],{"class":176},[170,7614,220],{"class":176},[170,7616,7617,7619,7621,7623,7625,7627,7629,7631,7633,7635],{"class":172,"line":522},[170,7618,5906],{"class":4996},[170,7620,5000],{"class":176},[170,7622,5704],{"class":4947},[170,7624,6614],{"class":176},[170,7626,5710],{"class":176},[170,7628,5713],{"class":4996},[170,7630,196],{"class":176},[170,7632,3812],{"class":199},[170,7634,190],{"class":176},[170,7636,5722],{"class":176},[170,7638,7639],{"class":172,"line":540},[170,7640,550],{"emptyLinePlaceholder":549},[170,7642,7643,7645,7647,7649,7652,7654,7656,7658,7660,7663,7665,7667,7669,7672,7674,7676,7678],{"class":172,"line":546},[170,7644,5906],{"class":4996},[170,7646,5000],{"class":176},[170,7648,5704],{"class":4947},[170,7650,7651],{"class":176},"instanceof",[170,7653,7602],{"class":4947},[170,7655,3619],{"class":176},[170,7657,5713],{"class":4996},[170,7659,196],{"class":176},[170,7661,7662],{"class":4947},"\\\"",[170,7664,190],{"class":176},[170,7666,6745],{"class":176},[170,7668,6648],{"class":4947},[170,7670,7671],{"class":176},"+",[170,7673,196],{"class":176},[170,7675,7662],{"class":4947},[170,7677,190],{"class":176},[170,7679,5722],{"class":176},[170,7681,7682,7684,7686,7688,7690,7693,7696,7698,7700,7703,7705,7707,7709,7711,7714],{"class":172,"line":553},[170,7683,5906],{"class":4996},[170,7685,5000],{"class":176},[170,7687,5704],{"class":4947},[170,7689,7651],{"class":176},[170,7691,7692],{"class":4947}," Boolean ",[170,7694,7695],{"class":176},"||",[170,7697,6648],{"class":4947},[170,7699,7651],{"class":176},[170,7701,7702],{"class":4947}," Number",[170,7704,3619],{"class":176},[170,7706,5713],{"class":4996},[170,7708,5017],{"class":4947},[170,7710,3381],{"class":176},[170,7712,7713],{"class":4954},"toString",[170,7715,7188],{"class":176},[170,7717,7718],{"class":172,"line":567},[170,7719,550],{"emptyLinePlaceholder":549},[170,7721,7722,7724,7726,7728,7730,7732,7734,7736,7739],{"class":172,"line":591},[170,7723,5906],{"class":4996},[170,7725,5000],{"class":176},[170,7727,5704],{"class":4947},[170,7729,7651],{"class":176},[170,7731,7336],{"class":186},[170,7733,6806],{"class":176},[170,7735,5748],{"class":4996},[170,7737,7738],{"class":176},">)",[170,7740,220],{"class":176},[170,7742,7743,7746,7748,7750,7753,7756,7758,7760,7763,7765,7767,7769,7771],{"class":172,"line":613},[170,7744,7745],{"class":186},"            List",[170,7747,6806],{"class":176},[170,7749,5748],{"class":186},[170,7751,7752],{"class":176},">",[170,7754,7755],{"class":4947}," list ",[170,7757,4951],{"class":176},[170,7759,5000],{"class":176},[170,7761,7762],{"class":186},"List",[170,7764,6806],{"class":176},[170,7766,5748],{"class":4996},[170,7768,7738],{"class":176},[170,7770,5017],{"class":4947},[170,7772,5722],{"class":176},[170,7774,7775,7777,7779,7781,7783,7786,7788,7790,7793],{"class":172,"line":618},[170,7776,7745],{"class":186},[170,7778,6806],{"class":176},[170,7780,3470],{"class":186},[170,7782,7752],{"class":176},[170,7784,7785],{"class":4947}," parts ",[170,7787,4951],{"class":176},[170,7789,7099],{"class":4996},[170,7791,7792],{"class":186}," ArrayList",[170,7794,7795],{"class":176},"\u003C>();\n",[170,7797,7798,7801,7803,7805,7808,7810,7812,7814,7816,7818,7821,7823,7825,7827,7829],{"class":172,"line":623},[170,7799,7800],{"class":4996},"            for",[170,7802,5000],{"class":176},[170,7804,3449],{"class":186},[170,7806,7807],{"class":4947}," item ",[170,7809,193],{"class":4996},[170,7811,6730],{"class":4947},[170,7813,3619],{"class":176},[170,7815,6831],{"class":4947},[170,7817,3381],{"class":176},[170,7819,7820],{"class":4954},"add",[170,7822,4958],{"class":176},[170,7824,5250],{"class":4954},[170,7826,4958],{"class":176},[170,7828,213],{"class":4947},[170,7830,6944],{"class":176},[170,7832,7833,7835,7837,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871],{"class":172,"line":647},[170,7834,5920],{"class":4996},[170,7836,196],{"class":176},[170,7838,4466],{"class":199},[170,7840,190],{"class":176},[170,7842,6745],{"class":176},[170,7844,7602],{"class":4947},[170,7846,3381],{"class":176},[170,7848,5109],{"class":4954},[170,7850,4958],{"class":176},[170,7852,190],{"class":176},[170,7854,410],{"class":199},[170,7856,190],{"class":176},[170,7858,410],{"class":176},[170,7860,6831],{"class":4947},[170,7862,3619],{"class":176},[170,7864,6745],{"class":176},[170,7866,196],{"class":176},[170,7868,4471],{"class":199},[170,7870,190],{"class":176},[170,7872,5722],{"class":176},[170,7874,7875],{"class":172,"line":652},[170,7876,5976],{"class":176},[170,7878,7879],{"class":172,"line":666},[170,7880,550],{"emptyLinePlaceholder":549},[170,7882,7883,7885,7887,7889,7891,7894,7896,7898,7900,7903,7905,7908,7910],{"class":172,"line":690},[170,7884,5906],{"class":4996},[170,7886,5000],{"class":176},[170,7888,5704],{"class":4947},[170,7890,7651],{"class":176},[170,7892,7893],{"class":186}," Map",[170,7895,6806],{"class":176},[170,7897,5748],{"class":4996},[170,7899,410],{"class":176},[170,7901,7902],{"class":4996}," ?",[170,7904,7752],{"class":176},[170,7906,7907],{"class":4947}," map",[170,7909,3619],{"class":176},[170,7911,220],{"class":176},[170,7913,7914,7916,7918,7920,7922,7925,7927,7929,7931],{"class":172,"line":712},[170,7915,7745],{"class":186},[170,7917,6806],{"class":176},[170,7919,3470],{"class":186},[170,7921,7752],{"class":176},[170,7923,7924],{"class":4947}," keys ",[170,7926,4951],{"class":176},[170,7928,7099],{"class":4996},[170,7930,7792],{"class":186},[170,7932,7795],{"class":176},[170,7934,7935,7937,7939,7941,7944,7946,7948,7950,7953,7956],{"class":172,"line":717},[170,7936,7800],{"class":4996},[170,7938,5000],{"class":176},[170,7940,3449],{"class":186},[170,7942,7943],{"class":4947}," k ",[170,7945,193],{"class":4996},[170,7947,7907],{"class":4947},[170,7949,3381],{"class":176},[170,7951,7952],{"class":4954},"keySet",[170,7954,7955],{"class":176},"())",[170,7957,220],{"class":176},[170,7959,7960,7963,7966,7968,7970,7972,7974,7977,7979,7982,7984,7987,7989,7991,7993,7995,7997,8000],{"class":172,"line":722},[170,7961,7962],{"class":4996},"                if",[170,7964,7965],{"class":176}," (!",[170,7967,190],{"class":176},[170,7969,628],{"class":199},[170,7971,190],{"class":176},[170,7973,3381],{"class":176},[170,7975,7976],{"class":4954},"equals",[170,7978,4958],{"class":176},[170,7980,7981],{"class":4947},"k",[170,7983,5738],{"class":176},[170,7985,7986],{"class":4947}," keys",[170,7988,3381],{"class":176},[170,7990,7820],{"class":4954},[170,7992,6077],{"class":176},[170,7994,3470],{"class":4947},[170,7996,3619],{"class":176},[170,7998,7999],{"class":4947}," k",[170,8001,5803],{"class":176},[170,8003,8004],{"class":172,"line":728},[170,8005,7375],{"class":176},[170,8007,8008,8011,8013,8015,8017,8019],{"class":172,"line":742},[170,8009,8010],{"class":4947},"            Collections",[170,8012,3381],{"class":176},[170,8014,5209],{"class":4954},[170,8016,4958],{"class":176},[170,8018,5154],{"class":4947},[170,8020,5803],{"class":176},[170,8022,8023],{"class":172,"line":757},[170,8024,550],{"emptyLinePlaceholder":549},[170,8026,8027,8029,8031,8033,8035,8037,8039,8041,8043],{"class":172,"line":775},[170,8028,7745],{"class":186},[170,8030,6806],{"class":176},[170,8032,3470],{"class":186},[170,8034,7752],{"class":176},[170,8036,7785],{"class":4947},[170,8038,4951],{"class":176},[170,8040,7099],{"class":4996},[170,8042,7792],{"class":186},[170,8044,7795],{"class":176},[170,8046,8047,8049,8051,8053,8055,8057,8059,8061],{"class":172,"line":780},[170,8048,7800],{"class":4996},[170,8050,5000],{"class":176},[170,8052,3470],{"class":186},[170,8054,5180],{"class":4947},[170,8056,193],{"class":4996},[170,8058,7986],{"class":4947},[170,8060,3619],{"class":176},[170,8062,220],{"class":176},[170,8064,8065,8068,8070,8072,8074,8076,8078,8080,8082,8084,8086,8088,8090,8092,8094,8096,8098,8100,8102,8104,8107,8109,8111],{"class":172,"line":785},[170,8066,8067],{"class":4947},"                parts",[170,8069,3381],{"class":176},[170,8071,7820],{"class":4954},[170,8073,4958],{"class":176},[170,8075,190],{"class":176},[170,8077,7662],{"class":4947},[170,8079,190],{"class":176},[170,8081,6745],{"class":176},[170,8083,5180],{"class":4947},[170,8085,7671],{"class":176},[170,8087,196],{"class":176},[170,8089,7662],{"class":4947},[170,8091,193],{"class":199},[170,8093,190],{"class":176},[170,8095,6745],{"class":176},[170,8097,4981],{"class":4954},[170,8099,4958],{"class":176},[170,8101,5101],{"class":4947},[170,8103,3381],{"class":176},[170,8105,8106],{"class":4954},"get",[170,8108,4958],{"class":176},[170,8110,5172],{"class":4947},[170,8112,8113],{"class":176},")));\n",[170,8115,8116],{"class":172,"line":791},[170,8117,7375],{"class":176},[170,8119,8120],{"class":172,"line":805},[170,8121,550],{"emptyLinePlaceholder":549},[170,8123,8124,8126,8128,8130,8132,8134,8136,8138,8140,8142,8144,8146,8148,8150,8152,8154,8156,8158,8160,8162],{"class":172,"line":817},[170,8125,5920],{"class":4996},[170,8127,196],{"class":176},[170,8129,5145],{"class":199},[170,8131,190],{"class":176},[170,8133,6745],{"class":176},[170,8135,7602],{"class":4947},[170,8137,3381],{"class":176},[170,8139,5109],{"class":4954},[170,8141,4958],{"class":176},[170,8143,190],{"class":176},[170,8145,410],{"class":199},[170,8147,190],{"class":176},[170,8149,410],{"class":176},[170,8151,6831],{"class":4947},[170,8153,3619],{"class":176},[170,8155,6745],{"class":176},[170,8157,196],{"class":176},[170,8159,5122],{"class":199},[170,8161,190],{"class":176},[170,8163,5722],{"class":176},[170,8165,8166],{"class":172,"line":829},[170,8167,5976],{"class":176},[170,8169,8170],{"class":172,"line":841},[170,8171,550],{"emptyLinePlaceholder":549},[170,8173,8174,8176,8178,8180,8182,8184,8186,8188,8190,8193,8195,8197,8199,8201],{"class":172,"line":853},[170,8175,6118],{"class":4996},[170,8177,196],{"class":176},[170,8179,7662],{"class":4947},[170,8181,190],{"class":176},[170,8183,6745],{"class":176},[170,8185,5017],{"class":4947},[170,8187,3381],{"class":176},[170,8189,7713],{"class":4954},[170,8191,8192],{"class":176},"()",[170,8194,6745],{"class":176},[170,8196,196],{"class":176},[170,8198,7662],{"class":4947},[170,8200,190],{"class":176},[170,8202,5722],{"class":176},[170,8204,8205],{"class":172,"line":865},[170,8206,1118],{"class":176},[170,8208,8209],{"class":172,"line":877},[170,8210,550],{"emptyLinePlaceholder":549},[170,8212,8213,8215,8217,8219,8221,8223,8226,8228,8230,8232,8235,8237,8239,8241,8243,8245,8247,8250,8253],{"class":172,"line":888},[170,8214,6583],{"class":186},[170,8216,6586],{"class":186},[170,8218,7602],{"class":186},[170,8220,5295],{"class":4954},[170,8222,4958],{"class":176},[170,8224,8225],{"class":186},"Map",[170,8227,6806],{"class":176},[170,8229,3470],{"class":186},[170,8231,410],{"class":176},[170,8233,8234],{"class":186}," Object",[170,8236,7752],{"class":176},[170,8238,7049],{"class":4986},[170,8240,410],{"class":176},[170,8242,7602],{"class":186},[170,8244,5305],{"class":4986},[170,8246,3619],{"class":176},[170,8248,8249],{"class":186}," throws",[170,8251,8252],{"class":186}," Exception",[170,8254,220],{"class":176},[170,8256,8257,8260,8263,8265,8267,8269,8271],{"class":172,"line":894},[170,8258,8259],{"class":186},"        String",[170,8261,8262],{"class":4947}," canonical ",[170,8264,4951],{"class":176},[170,8266,4981],{"class":4954},[170,8268,4958],{"class":176},[170,8270,5300],{"class":4947},[170,8272,5803],{"class":176},[170,8274,8275],{"class":172,"line":1881},[170,8276,550],{"emptyLinePlaceholder":549},[170,8278,8279,8282,8285,8287,8290,8292,8295,8297,8299,8302,8304],{"class":172,"line":1886},[170,8280,8281],{"class":186},"        Mac",[170,8283,8284],{"class":4947}," mac ",[170,8286,4951],{"class":176},[170,8288,8289],{"class":4947}," Mac",[170,8291,3381],{"class":176},[170,8293,8294],{"class":4954},"getInstance",[170,8296,4958],{"class":176},[170,8298,190],{"class":176},[170,8300,8301],{"class":199},"HmacSHA256",[170,8303,190],{"class":176},[170,8305,5803],{"class":176},[170,8307,8308,8311,8313,8316,8318,8321,8324,8326,8328,8330,8333,8335,8337,8339,8342,8344,8346,8348,8350],{"class":172,"line":1891},[170,8309,8310],{"class":4947},"        mac",[170,8312,3381],{"class":176},[170,8314,8315],{"class":4954},"init",[170,8317,4958],{"class":176},[170,8319,8320],{"class":4996},"new",[170,8322,8323],{"class":4954}," SecretKeySpec",[170,8325,4958],{"class":176},[170,8327,6199],{"class":4947},[170,8329,3381],{"class":176},[170,8331,8332],{"class":4954},"getBytes",[170,8334,4958],{"class":176},[170,8336,7554],{"class":4947},[170,8338,3381],{"class":176},[170,8340,8341],{"class":4947},"UTF_8",[170,8343,6229],{"class":176},[170,8345,196],{"class":176},[170,8347,8301],{"class":199},[170,8349,190],{"class":176},[170,8351,6944],{"class":176},[170,8353,8354],{"class":172,"line":1897},[170,8355,550],{"emptyLinePlaceholder":549},[170,8357,8358,8361,8363,8366,8368,8371,8373,8376,8378,8380,8382,8384,8386,8388,8390,8392],{"class":172,"line":1910},[170,8359,8360],{"class":186},"        byte",[170,8362,6070],{"class":176},[170,8364,8365],{"class":4947}," hash ",[170,8367,4951],{"class":176},[170,8369,8370],{"class":4947}," mac",[170,8372,3381],{"class":176},[170,8374,8375],{"class":4954},"doFinal",[170,8377,4958],{"class":176},[170,8379,7156],{"class":4947},[170,8381,3381],{"class":176},[170,8383,8332],{"class":4954},[170,8385,4958],{"class":176},[170,8387,7554],{"class":4947},[170,8389,3381],{"class":176},[170,8391,8341],{"class":4947},[170,8393,6944],{"class":176},[170,8395,8396],{"class":172,"line":1915},[170,8397,550],{"emptyLinePlaceholder":549},[170,8399,8400,8403,8406,8408,8410,8413],{"class":172,"line":1934},[170,8401,8402],{"class":186},"        StringBuilder",[170,8404,8405],{"class":4947}," hex ",[170,8407,4951],{"class":176},[170,8409,7099],{"class":4996},[170,8411,8412],{"class":4954}," StringBuilder",[170,8414,7188],{"class":176},[170,8416,8417,8420,8422,8425,8428,8430,8432,8434,8437,8439,8442,8444,8446,8448,8451,8453,8455,8458,8460,8462,8465],{"class":172,"line":1949},[170,8418,8419],{"class":4996},"        for",[170,8421,5000],{"class":176},[170,8423,8424],{"class":186},"byte",[170,8426,8427],{"class":4947}," b ",[170,8429,193],{"class":4996},[170,8431,7130],{"class":4947},[170,8433,3619],{"class":176},[170,8435,8436],{"class":4947}," hex",[170,8438,3381],{"class":176},[170,8440,8441],{"class":4954},"append",[170,8443,4958],{"class":176},[170,8445,3470],{"class":4947},[170,8447,3381],{"class":176},[170,8449,8450],{"class":4954},"format",[170,8452,4958],{"class":176},[170,8454,190],{"class":176},[170,8456,8457],{"class":199},"%02x",[170,8459,190],{"class":176},[170,8461,410],{"class":176},[170,8463,8464],{"class":4947}," b",[170,8466,6944],{"class":176},[170,8468,8469],{"class":172,"line":1966},[170,8470,550],{"emptyLinePlaceholder":549},[170,8472,8473,8475,8477,8479,8481],{"class":172,"line":1971},[170,8474,6118],{"class":4996},[170,8476,8436],{"class":4947},[170,8478,3381],{"class":176},[170,8480,7713],{"class":4954},[170,8482,7188],{"class":176},[170,8484,8485],{"class":172,"line":1976},[170,8486,1118],{"class":176},[170,8488,8489],{"class":172,"line":1995},[170,8490,550],{"emptyLinePlaceholder":549},[170,8492,8493,8495,8497,8499,8502,8504,8506,8508,8511,8513,8515,8517],{"class":172,"line":2009},[170,8494,6583],{"class":186},[170,8496,6586],{"class":186},[170,8498,7205],{"class":186},[170,8500,8501],{"class":4954}," main",[170,8503,4958],{"class":176},[170,8505,3470],{"class":186},[170,8507,6070],{"class":176},[170,8509,8510],{"class":4986}," args",[170,8512,3619],{"class":176},[170,8514,8249],{"class":186},[170,8516,8252],{"class":186},[170,8518,220],{"class":176},[170,8520,8521,8524,8526,8528,8530,8532,8534,8536,8538,8540,8543],{"class":172,"line":2014},[170,8522,8523],{"class":186},"        Map",[170,8525,6806],{"class":176},[170,8527,3470],{"class":186},[170,8529,410],{"class":176},[170,8531,8234],{"class":186},[170,8533,7752],{"class":176},[170,8535,5413],{"class":4947},[170,8537,4951],{"class":176},[170,8539,7099],{"class":4996},[170,8541,8542],{"class":186}," HashMap",[170,8544,7795],{"class":176},[170,8546,8547],{"class":172,"line":2019},[170,8548,550],{"emptyLinePlaceholder":549},[170,8550,8551,8553,8555,8558,8560,8562,8564,8566,8568,8570,8572,8574],{"class":172,"line":2025},[170,8552,7430],{"class":4947},[170,8554,3381],{"class":176},[170,8556,8557],{"class":4954},"put",[170,8559,4958],{"class":176},[170,8561,190],{"class":176},[170,8563,187],{"class":199},[170,8565,190],{"class":176},[170,8567,410],{"class":176},[170,8569,196],{"class":176},[170,8571,200],{"class":199},[170,8573,190],{"class":176},[170,8575,5803],{"class":176},[170,8577,8578],{"class":172,"line":2030},[170,8579,550],{"emptyLinePlaceholder":549},[170,8581,8582,8584,8586,8588,8590,8592,8594,8596,8598,8600,8602],{"class":172,"line":2051},[170,8583,8523],{"class":186},[170,8585,6806],{"class":176},[170,8587,3470],{"class":186},[170,8589,410],{"class":176},[170,8591,8234],{"class":186},[170,8593,7752],{"class":176},[170,8595,7807],{"class":4947},[170,8597,4951],{"class":176},[170,8599,7099],{"class":4996},[170,8601,8542],{"class":186},[170,8603,7795],{"class":176},[170,8605,8606,8609,8611,8613,8615,8617,8619,8621,8623,8625,8627,8629],{"class":172,"line":2071},[170,8607,8608],{"class":4947},"        item",[170,8610,3381],{"class":176},[170,8612,8557],{"class":4954},[170,8614,4958],{"class":176},[170,8616,190],{"class":176},[170,8618,230],{"class":199},[170,8620,190],{"class":176},[170,8622,410],{"class":176},[170,8624,196],{"class":176},[170,8626,239],{"class":199},[170,8628,190],{"class":176},[170,8630,5803],{"class":176},[170,8632,8633,8635,8637,8639,8641,8643,8645,8647,8649,8651,8653,8656,8658,8660,8662,8664],{"class":172,"line":2091},[170,8634,8608],{"class":4947},[170,8636,3381],{"class":176},[170,8638,8557],{"class":4954},[170,8640,4958],{"class":176},[170,8642,190],{"class":176},[170,8644,251],{"class":199},[170,8646,190],{"class":176},[170,8648,410],{"class":176},[170,8650,7336],{"class":4947},[170,8652,3381],{"class":176},[170,8654,8655],{"class":4954},"of",[170,8657,4958],{"class":176},[170,8659,190],{"class":176},[170,8661,263],{"class":199},[170,8663,190],{"class":176},[170,8665,6944],{"class":176},[170,8667,8668,8670,8672,8674,8676,8678,8680,8682,8684,8686,8688,8690],{"class":172,"line":2112},[170,8669,8608],{"class":4947},[170,8671,3381],{"class":176},[170,8673,8557],{"class":4954},[170,8675,4958],{"class":176},[170,8677,190],{"class":176},[170,8679,280],{"class":199},[170,8681,190],{"class":176},[170,8683,410],{"class":176},[170,8685,196],{"class":176},[170,8687,289],{"class":199},[170,8689,190],{"class":176},[170,8691,5803],{"class":176},[170,8693,8694],{"class":172,"line":2133},[170,8695,550],{"emptyLinePlaceholder":549},[170,8697,8698,8700,8702,8704,8706,8708,8710,8712,8714,8717],{"class":172,"line":2148},[170,8699,7430],{"class":4947},[170,8701,3381],{"class":176},[170,8703,8557],{"class":4954},[170,8705,4958],{"class":176},[170,8707,190],{"class":176},[170,8709,213],{"class":199},[170,8711,190],{"class":176},[170,8713,410],{"class":176},[170,8715,8716],{"class":4947}," item",[170,8718,5803],{"class":176},[170,8720,8721],{"class":172,"line":2169},[170,8722,550],{"emptyLinePlaceholder":549},[170,8724,8725,8727,8729,8731,8733,8735,8737],{"class":172,"line":2190},[170,8726,8259],{"class":186},[170,8728,5518],{"class":4947},[170,8730,4951],{"class":176},[170,8732,196],{"class":176},[170,8734,5525],{"class":199},[170,8736,190],{"class":176},[170,8738,5722],{"class":176},[170,8740,8741],{"class":172,"line":2210},[170,8742,550],{"emptyLinePlaceholder":549},[170,8744,8745,8747,8749,8751,8753,8755,8757,8759,8761],{"class":172,"line":2224},[170,8746,8259],{"class":186},[170,8748,5539],{"class":4947},[170,8750,4951],{"class":176},[170,8752,5295],{"class":4954},[170,8754,4958],{"class":176},[170,8756,5300],{"class":4947},[170,8758,410],{"class":176},[170,8760,5305],{"class":4947},[170,8762,5803],{"class":176},[170,8764,8765],{"class":172,"line":2238},[170,8766,550],{"emptyLinePlaceholder":549},[170,8768,8769,8771,8773,8775,8777,8779,8781,8783,8785,8787],{"class":172,"line":2252},[170,8770,7430],{"class":4947},[170,8772,3381],{"class":176},[170,8774,8557],{"class":4954},[170,8776,4958],{"class":176},[170,8778,190],{"class":176},[170,8780,628],{"class":199},[170,8782,190],{"class":176},[170,8784,410],{"class":176},[170,8786,7411],{"class":4947},[170,8788,5803],{"class":176},[170,8790,8791],{"class":172,"line":2270},[170,8792,550],{"emptyLinePlaceholder":549},[170,8794,8795,8798,8800,8803,8805,8808,8810,8812],{"class":172,"line":2275},[170,8796,8797],{"class":4947},"        System",[170,8799,3381],{"class":176},[170,8801,8802],{"class":4947},"out",[170,8804,3381],{"class":176},[170,8806,8807],{"class":4954},"println",[170,8809,4958],{"class":176},[170,8811,5300],{"class":4947},[170,8813,5803],{"class":176},[170,8815,8816],{"class":172,"line":2280},[170,8817,1118],{"class":176},[170,8819,8820],{"class":172,"line":2285},[170,8821,306],{"class":176},[161,8823,8828],{"className":8824,"code":8825,"filename":8826,"language":8827,"meta":166,"style":166},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import json\nimport hmac\nimport hashlib\n\ndef canonicalize(value):\n    if value is None or not isinstance(value, (dict, list)):\n        return json.dumps(value, separators=(',', ':'))\n\n    if isinstance(value, list):\n        return '[' + ','.join(canonicalize(v) for v in value) + ']'\n\n    return '{' + ','.join(\n        json.dumps(k) + ':' + canonicalize(value[k])\n        for k in sorted(value.keys())\n        if k != 'signature'\n    ) + '}'\n\ndef generate_kwik_signature(payload, passphrase):\n    canonical = canonicalize(payload)\n\n    return hmac.new(\n        passphrase.encode(),\n        canonical.encode(),\n        hashlib.sha256\n    ).hexdigest()\n\n# Usage\npayload = {\n    \"type\": \"CHOOSE_WHAT_TO_PAY\",\n    \"item\": {\n        \"title\": \"My product name\",\n        \"frequency\": [\"ONE_TIME\"],\n        \"amount\": \"1200.00\"\n    }\n}\n\npassphrase = \"your-secure-passphrase\"\n\nsignature = generate_kwik_signature(payload, passphrase)\n\nrequest_body = {\n    **payload,\n    \"signature\": signature\n}\n\nprint(request_body)\n","Python","python",[146,8829,8830,8837,8844,8851,8855,8869,8907,8948,8952,8968,9022,9026,9051,9089,9111,9125,9138,9142,9159,9174,9178,9190,9203,9214,9224,9234,9238,9243,9251,9269,9281,9299,9319,9335,9339,9343,9347,9359,9363,9381,9385,9394,9403,9416,9420,9424],{"__ignoreMap":166},[170,8831,8832,8834],{"class":172,"line":173},[170,8833,7496],{"class":4996},[170,8835,8836],{"class":4947}," json\n",[170,8838,8839,8841],{"class":172,"line":180},[170,8840,7496],{"class":4996},[170,8842,8843],{"class":4947}," hmac\n",[170,8845,8846,8848],{"class":172,"line":208},[170,8847,7496],{"class":4996},[170,8849,8850],{"class":4947}," hashlib\n",[170,8852,8853],{"class":172,"line":223},[170,8854,550],{"emptyLinePlaceholder":549},[170,8856,8857,8860,8862,8864,8866],{"class":172,"line":246},[170,8858,8859],{"class":186},"def",[170,8861,4981],{"class":4954},[170,8863,4958],{"class":176},[170,8865,4987],{"class":4986},[170,8867,8868],{"class":176},"):\n",[170,8870,8871,8873,8875,8877,8880,8883,8886,8889,8891,8893,8895,8897,8900,8902,8904],{"class":172,"line":275},[170,8872,5698],{"class":4996},[170,8874,6648],{"class":4947},[170,8876,6641],{"class":176},[170,8878,8879],{"class":176}," None",[170,8881,8882],{"class":176}," or",[170,8884,8885],{"class":176}," not",[170,8887,8888],{"class":4954}," isinstance",[170,8890,4958],{"class":176},[170,8892,4987],{"class":4954},[170,8894,410],{"class":176},[170,8896,5000],{"class":176},[170,8898,8899],{"class":229},"dict",[170,8901,410],{"class":176},[170,8903,6730],{"class":229},[170,8905,8906],{"class":176},")):\n",[170,8908,8909,8911,8914,8916,8919,8921,8923,8925,8928,8931,8933,8935,8937,8939,8941,8943,8945],{"class":172,"line":297},[170,8910,6118],{"class":4996},[170,8912,8913],{"class":4947}," json",[170,8915,3381],{"class":176},[170,8917,8918],{"class":4954},"dumps",[170,8920,4958],{"class":176},[170,8922,4987],{"class":4954},[170,8924,410],{"class":176},[170,8926,8927],{"class":4986}," separators",[170,8929,8930],{"class":176},"=(",[170,8932,4961],{"class":176},[170,8934,410],{"class":199},[170,8936,4961],{"class":176},[170,8938,410],{"class":176},[170,8940,5023],{"class":176},[170,8942,193],{"class":199},[170,8944,4961],{"class":176},[170,8946,8947],{"class":176},"))\n",[170,8949,8950],{"class":172,"line":303},[170,8951,550],{"emptyLinePlaceholder":549},[170,8953,8954,8956,8958,8960,8962,8964,8966],{"class":172,"line":522},[170,8955,5698],{"class":4996},[170,8957,8888],{"class":4954},[170,8959,4958],{"class":176},[170,8961,4987],{"class":4954},[170,8963,410],{"class":176},[170,8965,6730],{"class":229},[170,8967,8868],{"class":176},[170,8969,8970,8972,8974,8976,8978,8980,8982,8984,8986,8988,8990,8992,8994,8996,8999,9001,9004,9007,9010,9012,9014,9016,9018,9020],{"class":172,"line":540},[170,8971,6118],{"class":4996},[170,8973,5023],{"class":176},[170,8975,4466],{"class":199},[170,8977,4961],{"class":176},[170,8979,6745],{"class":176},[170,8981,5023],{"class":176},[170,8983,410],{"class":199},[170,8985,4961],{"class":176},[170,8987,3381],{"class":176},[170,8989,5109],{"class":4954},[170,8991,4958],{"class":176},[170,8993,5250],{"class":4954},[170,8995,4958],{"class":176},[170,8997,8998],{"class":4954},"v",[170,9000,3619],{"class":176},[170,9002,9003],{"class":4996}," for",[170,9005,9006],{"class":4954}," v ",[170,9008,9009],{"class":4996},"in",[170,9011,5017],{"class":4954},[170,9013,3619],{"class":176},[170,9015,6745],{"class":176},[170,9017,5023],{"class":176},[170,9019,4471],{"class":199},[170,9021,5528],{"class":176},[170,9023,9024],{"class":172,"line":546},[170,9025,550],{"emptyLinePlaceholder":549},[170,9027,9028,9030,9032,9034,9036,9038,9040,9042,9044,9046,9048],{"class":172,"line":553},[170,9029,5038],{"class":4996},[170,9031,5023],{"class":176},[170,9033,5145],{"class":199},[170,9035,4961],{"class":176},[170,9037,6745],{"class":176},[170,9039,5023],{"class":176},[170,9041,410],{"class":199},[170,9043,4961],{"class":176},[170,9045,3381],{"class":176},[170,9047,5109],{"class":4954},[170,9049,9050],{"class":176},"(\n",[170,9052,9053,9056,9058,9060,9062,9064,9066,9068,9070,9072,9074,9076,9078,9080,9082,9084,9086],{"class":172,"line":567},[170,9054,9055],{"class":4954},"        json",[170,9057,3381],{"class":176},[170,9059,8918],{"class":4954},[170,9061,4958],{"class":176},[170,9063,7981],{"class":4954},[170,9065,3619],{"class":176},[170,9067,6745],{"class":176},[170,9069,5023],{"class":176},[170,9071,193],{"class":199},[170,9073,4961],{"class":176},[170,9075,6745],{"class":176},[170,9077,4981],{"class":4954},[170,9079,4958],{"class":176},[170,9081,4987],{"class":4954},[170,9083,4466],{"class":176},[170,9085,7981],{"class":4954},[170,9087,9088],{"class":176},"])\n",[170,9090,9091,9093,9095,9097,9100,9102,9104,9106,9108],{"class":172,"line":591},[170,9092,8419],{"class":4996},[170,9094,7943],{"class":4954},[170,9096,9009],{"class":4996},[170,9098,9099],{"class":4954}," sorted",[170,9101,4958],{"class":176},[170,9103,4987],{"class":4954},[170,9105,3381],{"class":176},[170,9107,5154],{"class":4954},[170,9109,9110],{"class":176},"())\n",[170,9112,9113,9115,9117,9119,9121,9123],{"class":172,"line":613},[170,9114,5906],{"class":4996},[170,9116,7943],{"class":4954},[170,9118,6862],{"class":176},[170,9120,5023],{"class":176},[170,9122,628],{"class":199},[170,9124,5528],{"class":176},[170,9126,9127,9130,9132,9134,9136],{"class":172,"line":618},[170,9128,9129],{"class":176},"    )",[170,9131,6745],{"class":176},[170,9133,5023],{"class":176},[170,9135,5122],{"class":199},[170,9137,5528],{"class":176},[170,9139,9140],{"class":172,"line":623},[170,9141,550],{"emptyLinePlaceholder":549},[170,9143,9144,9146,9149,9151,9153,9155,9157],{"class":172,"line":647},[170,9145,8859],{"class":186},[170,9147,9148],{"class":4954}," generate_kwik_signature",[170,9150,4958],{"class":176},[170,9152,5300],{"class":4986},[170,9154,410],{"class":176},[170,9156,5305],{"class":4986},[170,9158,8868],{"class":176},[170,9160,9161,9164,9166,9168,9170,9172],{"class":172,"line":652},[170,9162,9163],{"class":4947},"    canonical ",[170,9165,4951],{"class":176},[170,9167,4981],{"class":4954},[170,9169,4958],{"class":176},[170,9171,5300],{"class":4954},[170,9173,4969],{"class":176},[170,9175,9176],{"class":172,"line":666},[170,9177,550],{"emptyLinePlaceholder":549},[170,9179,9180,9182,9184,9186,9188],{"class":172,"line":690},[170,9181,5038],{"class":4996},[170,9183,7094],{"class":4947},[170,9185,3381],{"class":176},[170,9187,8320],{"class":4954},[170,9189,9050],{"class":176},[170,9191,9192,9195,9197,9200],{"class":172,"line":712},[170,9193,9194],{"class":4954},"        passphrase",[170,9196,3381],{"class":176},[170,9198,9199],{"class":4954},"encode",[170,9201,9202],{"class":176},"(),\n",[170,9204,9205,9208,9210,9212],{"class":172,"line":717},[170,9206,9207],{"class":4954},"        canonical",[170,9209,3381],{"class":176},[170,9211,9199],{"class":4954},[170,9213,9202],{"class":176},[170,9215,9216,9219,9221],{"class":172,"line":722},[170,9217,9218],{"class":4954},"        hashlib",[170,9220,3381],{"class":176},[170,9222,9223],{"class":1714},"sha256\n",[170,9225,9226,9229,9232],{"class":172,"line":728},[170,9227,9228],{"class":176},"    ).",[170,9230,9231],{"class":4954},"hexdigest",[170,9233,5212],{"class":176},[170,9235,9236],{"class":172,"line":742},[170,9237,550],{"emptyLinePlaceholder":549},[170,9239,9240],{"class":172,"line":757},[170,9241,9242],{"class":271},"# Usage\n",[170,9244,9245,9247,9249],{"class":172,"line":775},[170,9246,6256],{"class":4947},[170,9248,4951],{"class":176},[170,9250,220],{"class":176},[170,9252,9253,9255,9257,9259,9261,9263,9265,9267],{"class":172,"line":780},[170,9254,226],{"class":176},[170,9256,187],{"class":199},[170,9258,190],{"class":176},[170,9260,193],{"class":176},[170,9262,196],{"class":176},[170,9264,200],{"class":199},[170,9266,190],{"class":176},[170,9268,205],{"class":176},[170,9270,9271,9273,9275,9277,9279],{"class":172,"line":785},[170,9272,226],{"class":176},[170,9274,213],{"class":199},[170,9276,190],{"class":176},[170,9278,193],{"class":176},[170,9280,220],{"class":176},[170,9282,9283,9285,9287,9289,9291,9293,9295,9297],{"class":172,"line":791},[170,9284,1711],{"class":176},[170,9286,230],{"class":199},[170,9288,190],{"class":176},[170,9290,193],{"class":176},[170,9292,196],{"class":176},[170,9294,239],{"class":199},[170,9296,190],{"class":176},[170,9298,205],{"class":176},[170,9300,9301,9303,9305,9307,9309,9311,9313,9315,9317],{"class":172,"line":805},[170,9302,1711],{"class":176},[170,9304,251],{"class":199},[170,9306,190],{"class":176},[170,9308,193],{"class":176},[170,9310,258],{"class":176},[170,9312,190],{"class":176},[170,9314,263],{"class":199},[170,9316,190],{"class":176},[170,9318,6329],{"class":176},[170,9320,9321,9323,9325,9327,9329,9331,9333],{"class":172,"line":817},[170,9322,1711],{"class":176},[170,9324,280],{"class":199},[170,9326,190],{"class":176},[170,9328,193],{"class":176},[170,9330,196],{"class":176},[170,9332,289],{"class":199},[170,9334,885],{"class":176},[170,9336,9337],{"class":172,"line":829},[170,9338,1118],{"class":176},[170,9340,9341],{"class":172,"line":841},[170,9342,306],{"class":176},[170,9344,9345],{"class":172,"line":853},[170,9346,550],{"emptyLinePlaceholder":549},[170,9348,9349,9351,9353,9355,9357],{"class":172,"line":865},[170,9350,6366],{"class":4947},[170,9352,4951],{"class":176},[170,9354,196],{"class":176},[170,9356,5525],{"class":199},[170,9358,885],{"class":176},[170,9360,9361],{"class":172,"line":877},[170,9362,550],{"emptyLinePlaceholder":549},[170,9364,9365,9367,9369,9371,9373,9375,9377,9379],{"class":172,"line":888},[170,9366,6387],{"class":4947},[170,9368,4951],{"class":176},[170,9370,9148],{"class":4954},[170,9372,4958],{"class":176},[170,9374,5300],{"class":4954},[170,9376,410],{"class":176},[170,9378,5305],{"class":4954},[170,9380,4969],{"class":176},[170,9382,9383],{"class":172,"line":894},[170,9384,550],{"emptyLinePlaceholder":549},[170,9386,9387,9390,9392],{"class":172,"line":1881},[170,9388,9389],{"class":4947},"request_body ",[170,9391,4951],{"class":176},[170,9393,220],{"class":176},[170,9395,9396,9399,9401],{"class":172,"line":1886},[170,9397,9398],{"class":176},"    **",[170,9400,5300],{"class":4947},[170,9402,205],{"class":176},[170,9404,9405,9407,9409,9411,9413],{"class":172,"line":1891},[170,9406,226],{"class":176},[170,9408,628],{"class":199},[170,9410,190],{"class":176},[170,9412,193],{"class":176},[170,9414,9415],{"class":4947}," signature\n",[170,9417,9418],{"class":172,"line":1897},[170,9419,306],{"class":176},[170,9421,9422],{"class":172,"line":1910},[170,9423,550],{"emptyLinePlaceholder":549},[170,9425,9426,9429,9431,9434],{"class":172,"line":1915},[170,9427,9428],{"class":4954},"print",[170,9430,4958],{"class":176},[170,9432,9433],{"class":4954},"request_body",[170,9435,4969],{"class":176},[130,9437,9439],{"id":9438},"webhook","Webhook",[135,9441,9442,9443,9445],{},"When a checkout session is completed, updated, or expires, a webhook may be delivered to ",[146,9444,4376],{}," when that field was supplied on create. Broader platform webhooks are configured separately if applicable.",[135,9447,9448,9449,9451,9452,4008,9455,4008,9458,9461,9462,9466,9467,9470],{},"Possible ",[146,9450,3114],{}," values include ",[146,9453,9454],{},"checkout.completed",[146,9456,9457],{},"checkout.expired",[146,9459,9460],{},"checkout.failed",", and others listed under ",[337,9463,9465],{"href":9464},"#webhook-events","Webhook events",". The ",[146,9468,9469],{},"subscription"," object is present only when a recurring collection is created.",[139,9472,9474],{"id":9473},"webhook-payload","Webhook Payload",[161,9476,9478],{"className":163,"code":9477,"language":165,"meta":166,"style":166},"{\n  \u002F\u002F checkout.completed · checkout.expired · checkout.failed · etc.\n  \"event\": \"checkout.completed\",\n  \"data\": [\n    {\n      \"checkout\": {\n        \"id\": \"chk_HVpCeoNys1f22X7QcuWHY\",\n        \"session_id\": \"ses_G-xkVKoxHgEBrY8suKgR3\",\n        \"amount\": \"1200.00\",\n        \"currency\": \"ZAR\",\n        \"customer_id\": \"cus_abc123...\",\n        \"card_id\": \"crd_SFq2E9LskQimPkf2mRqnV\", \u002F\u002F populated for card tenders\n        \"transaction_id\": \"tra_pr6CvR_4pvWwmgQ4y3dtY\",\n        \"transaction_status\": \"ACTIVE\",\n        \"expires_at\": \"2025-09-13T12:30:00Z\",\n        \"completed_at\": \"2025-09-13T10:15:30Z\"\n      },\n      \u002F\u002F Only present once a recurring collection \u002F mandate results from checkout\n      \"subscription\": {\n        \"id\": \"col_Pw5jImVFZfpd0Lplp35op\",\n        \"amount\": \"1200.00\",\n        \"currency\": \"ZAR\",\n        \"subscription_status\": \"ACTIVE\",\n        \"payment_method\": \"CARD\",\n        \"payment_method_id\": \"pam_ak7lHmJ0a2fuD1q4M6b0q\",\n        \"created_at\": \"2025-09-13T10:15:30Z\"\n      }\n    }\n  ],\n  \"created_at\": \"2025-09-13T12:30:00Z\"\n}\n",[146,9479,9480,9484,9489,9507,9520,9524,9537,9555,9573,9591,9609,9627,9650,9670,9689,9707,9725,9730,9735,9747,9766,9784,9802,9821,9840,9860,9877,9881,9885,9889,9905],{"__ignoreMap":166},[170,9481,9482],{"class":172,"line":173},[170,9483,177],{"class":176},[170,9485,9486],{"class":172,"line":180},[170,9487,9488],{"class":271},"  \u002F\u002F checkout.completed · checkout.expired · checkout.failed · etc.\n",[170,9490,9491,9493,9495,9497,9499,9501,9503,9505],{"class":172,"line":208},[170,9492,183],{"class":176},[170,9494,3114],{"class":186},[170,9496,190],{"class":176},[170,9498,193],{"class":176},[170,9500,196],{"class":176},[170,9502,9454],{"class":199},[170,9504,190],{"class":176},[170,9506,205],{"class":176},[170,9508,9509,9511,9514,9516,9518],{"class":172,"line":223},[170,9510,183],{"class":176},[170,9512,9513],{"class":186},"data",[170,9515,190],{"class":176},[170,9517,193],{"class":176},[170,9519,802],{"class":176},[170,9521,9522],{"class":172,"line":246},[170,9523,1049],{"class":176},[170,9525,9526,9528,9531,9533,9535],{"class":172,"line":275},[170,9527,1054],{"class":176},[170,9529,9530],{"class":229},"checkout",[170,9532,190],{"class":176},[170,9534,193],{"class":176},[170,9536,220],{"class":176},[170,9538,9539,9541,9543,9545,9547,9549,9551,9553],{"class":172,"line":297},[170,9540,1711],{"class":176},[170,9542,4653],{"class":493},[170,9544,190],{"class":176},[170,9546,193],{"class":176},[170,9548,196],{"class":176},[170,9550,4662],{"class":199},[170,9552,190],{"class":176},[170,9554,205],{"class":176},[170,9556,9557,9559,9561,9563,9565,9567,9569,9571],{"class":172,"line":303},[170,9558,1711],{"class":176},[170,9560,4673],{"class":493},[170,9562,190],{"class":176},[170,9564,193],{"class":176},[170,9566,196],{"class":176},[170,9568,4682],{"class":199},[170,9570,190],{"class":176},[170,9572,205],{"class":176},[170,9574,9575,9577,9579,9581,9583,9585,9587,9589],{"class":172,"line":522},[170,9576,1711],{"class":176},[170,9578,280],{"class":493},[170,9580,190],{"class":176},[170,9582,193],{"class":176},[170,9584,196],{"class":176},[170,9586,289],{"class":199},[170,9588,190],{"class":176},[170,9590,205],{"class":176},[170,9592,9593,9595,9597,9599,9601,9603,9605,9607],{"class":172,"line":540},[170,9594,1711],{"class":176},[170,9596,4711],{"class":493},[170,9598,190],{"class":176},[170,9600,193],{"class":176},[170,9602,196],{"class":176},[170,9604,4720],{"class":199},[170,9606,190],{"class":176},[170,9608,205],{"class":176},[170,9610,9611,9613,9615,9617,9619,9621,9623,9625],{"class":172,"line":546},[170,9612,1711],{"class":176},[170,9614,334],{"class":493},[170,9616,190],{"class":176},[170,9618,193],{"class":176},[170,9620,196],{"class":176},[170,9622,1015],{"class":199},[170,9624,190],{"class":176},[170,9626,205],{"class":176},[170,9628,9629,9631,9634,9636,9638,9640,9643,9645,9647],{"class":172,"line":553},[170,9630,1711],{"class":176},[170,9632,9633],{"class":493},"card_id",[170,9635,190],{"class":176},[170,9637,193],{"class":176},[170,9639,196],{"class":176},[170,9641,9642],{"class":199},"crd_SFq2E9LskQimPkf2mRqnV",[170,9644,190],{"class":176},[170,9646,410],{"class":176},[170,9648,9649],{"class":271}," \u002F\u002F populated for card tenders\n",[170,9651,9652,9654,9657,9659,9661,9663,9666,9668],{"class":172,"line":567},[170,9653,1711],{"class":176},[170,9655,9656],{"class":493},"transaction_id",[170,9658,190],{"class":176},[170,9660,193],{"class":176},[170,9662,196],{"class":176},[170,9664,9665],{"class":199},"tra_pr6CvR_4pvWwmgQ4y3dtY",[170,9667,190],{"class":176},[170,9669,205],{"class":176},[170,9671,9672,9674,9677,9679,9681,9683,9685,9687],{"class":172,"line":591},[170,9673,1711],{"class":176},[170,9675,9676],{"class":493},"transaction_status",[170,9678,190],{"class":176},[170,9680,193],{"class":176},[170,9682,196],{"class":176},[170,9684,2183],{"class":199},[170,9686,190],{"class":176},[170,9688,205],{"class":176},[170,9690,9691,9693,9695,9697,9699,9701,9703,9705],{"class":172,"line":613},[170,9692,1711],{"class":176},[170,9694,4769],{"class":493},[170,9696,190],{"class":176},[170,9698,193],{"class":176},[170,9700,196],{"class":176},[170,9702,4778],{"class":199},[170,9704,190],{"class":176},[170,9706,205],{"class":176},[170,9708,9709,9711,9714,9716,9718,9720,9723],{"class":172,"line":618},[170,9710,1711],{"class":176},[170,9712,9713],{"class":493},"completed_at",[170,9715,190],{"class":176},[170,9717,193],{"class":176},[170,9719,196],{"class":176},[170,9721,9722],{"class":199},"2025-09-13T10:15:30Z",[170,9724,885],{"class":176},[170,9726,9727],{"class":172,"line":623},[170,9728,9729],{"class":176},"      },\n",[170,9731,9732],{"class":172,"line":647},[170,9733,9734],{"class":271},"      \u002F\u002F Only present once a recurring collection \u002F mandate results from checkout\n",[170,9736,9737,9739,9741,9743,9745],{"class":172,"line":652},[170,9738,1054],{"class":176},[170,9740,9469],{"class":229},[170,9742,190],{"class":176},[170,9744,193],{"class":176},[170,9746,220],{"class":176},[170,9748,9749,9751,9753,9755,9757,9759,9762,9764],{"class":172,"line":666},[170,9750,1711],{"class":176},[170,9752,4653],{"class":493},[170,9754,190],{"class":176},[170,9756,193],{"class":176},[170,9758,196],{"class":176},[170,9760,9761],{"class":199},"col_Pw5jImVFZfpd0Lplp35op",[170,9763,190],{"class":176},[170,9765,205],{"class":176},[170,9767,9768,9770,9772,9774,9776,9778,9780,9782],{"class":172,"line":690},[170,9769,1711],{"class":176},[170,9771,280],{"class":493},[170,9773,190],{"class":176},[170,9775,193],{"class":176},[170,9777,196],{"class":176},[170,9779,289],{"class":199},[170,9781,190],{"class":176},[170,9783,205],{"class":176},[170,9785,9786,9788,9790,9792,9794,9796,9798,9800],{"class":172,"line":712},[170,9787,1711],{"class":176},[170,9789,4711],{"class":493},[170,9791,190],{"class":176},[170,9793,193],{"class":176},[170,9795,196],{"class":176},[170,9797,4720],{"class":199},[170,9799,190],{"class":176},[170,9801,205],{"class":176},[170,9803,9804,9806,9809,9811,9813,9815,9817,9819],{"class":172,"line":717},[170,9805,1711],{"class":176},[170,9807,9808],{"class":493},"subscription_status",[170,9810,190],{"class":176},[170,9812,193],{"class":176},[170,9814,196],{"class":176},[170,9816,2183],{"class":199},[170,9818,190],{"class":176},[170,9820,205],{"class":176},[170,9822,9823,9825,9828,9830,9832,9834,9836,9838],{"class":172,"line":722},[170,9824,1711],{"class":176},[170,9826,9827],{"class":493},"payment_method",[170,9829,190],{"class":176},[170,9831,193],{"class":176},[170,9833,196],{"class":176},[170,9835,2371],{"class":199},[170,9837,190],{"class":176},[170,9839,205],{"class":176},[170,9841,9842,9844,9847,9849,9851,9853,9856,9858],{"class":172,"line":728},[170,9843,1711],{"class":176},[170,9845,9846],{"class":493},"payment_method_id",[170,9848,190],{"class":176},[170,9850,193],{"class":176},[170,9852,196],{"class":176},[170,9854,9855],{"class":199},"pam_ak7lHmJ0a2fuD1q4M6b0q",[170,9857,190],{"class":176},[170,9859,205],{"class":176},[170,9861,9862,9864,9867,9869,9871,9873,9875],{"class":172,"line":742},[170,9863,1711],{"class":176},[170,9865,9866],{"class":493},"created_at",[170,9868,190],{"class":176},[170,9870,193],{"class":176},[170,9872,196],{"class":176},[170,9874,9722],{"class":199},[170,9876,885],{"class":176},[170,9878,9879],{"class":172,"line":757},[170,9880,1819],{"class":176},[170,9882,9883],{"class":172,"line":775},[170,9884,1118],{"class":176},[170,9886,9887],{"class":172,"line":780},[170,9888,1123],{"class":176},[170,9890,9891,9893,9895,9897,9899,9901,9903],{"class":172,"line":785},[170,9892,183],{"class":176},[170,9894,9866],{"class":186},[170,9896,190],{"class":176},[170,9898,193],{"class":176},[170,9900,196],{"class":176},[170,9902,4778],{"class":199},[170,9904,885],{"class":176},[170,9906,9907],{"class":172,"line":791},[170,9908,306],{"class":176},[139,9910,9912],{"id":9911},"webhook-payload-parameters","Webhook Payload Parameters",[3383,9914,9915,9932],{},[3386,9916,9917],{},[3389,9918,9919,9924,9926,9930],{},[3392,9920,9921],{"align":3394},[3396,9922,3399],{"style":9923},"width:120px",[3392,9925,3405],{"align":3394},[3392,9927,9928],{"align":3394},[3396,9929,3411],{"style":3410},[3392,9931,3414],{"align":3394},[3416,9933,9934,9945,9959,9972,9985,9998,10017,10030,10044,10058,10078,10092,10106,10120,10134,10152,10170,10184,10198,10212],{},[3389,9935,9936,9938,9940,9943],{},[3421,9937,3114],{"align":3394},[3421,9939,3470],{"align":3394},[3421,9941,9942],{"align":3394},"Type of webhook event that occurred",[3421,9944,9454],{"align":3394},[3389,9946,9947,9949,9951,9954],{},[3421,9948,9513],{"align":3394},[3421,9950,3500],{"align":3394},[3421,9952,9953],{"align":3394},"Array containing checkout and payment data",[3421,9955,9956],{"align":3394},[170,9957,9958],{},"...",[3389,9960,9961,9966,9968,9970],{},[3421,9962,9513,9963,9965],{"align":3394},[170,9964],{},".checkout.id",[3421,9967,3470],{"align":3394},[3421,9969,4833],{"align":3394},[3421,9971,4662],{"align":3394},[3389,9973,9974,9979,9981,9983],{},[3421,9975,9513,9976,9978],{"align":3394},[170,9977],{},".checkout.session_id",[3421,9980,3470],{"align":3394},[3421,9982,4846],{"align":3394},[3421,9984,4682],{"align":3394},[3389,9986,9987,9992,9994,9996],{},[3421,9988,9513,9989,9991],{"align":3394},[170,9990],{},".checkout.amount",[3421,9993,3470],{"align":3394},[3421,9995,4858],{"align":3394},[3421,9997,289],{"align":3394},[3389,9999,10000,10005,10008,10013],{},[3421,10001,9513,10002,10004],{"align":3394},[170,10003],{},".checkout.currency",[3421,10006,10007],{"align":3394},"String(3)",[3421,10009,10010,4875],{"align":3394},[337,10011,4874],{"href":4872,"rel":10012,":target":4186},[4185],[3421,10014,10015],{"align":3394},[146,10016,4720],{},[3389,10018,10019,10024,10026,10028],{},[3421,10020,9513,10021,10023],{"align":3394},[170,10022],{},".checkout.customer_id",[3421,10025,3975],{"align":3394},[3421,10027,4889],{"align":3394},[3421,10029,1015],{"align":3394},[3389,10031,10032,10037,10039,10042],{},[3421,10033,9513,10034,10036],{"align":3394},[170,10035],{},".checkout.card_id",[3421,10038,3470],{"align":3394},[3421,10040,10041],{"align":3394},"Card identifier when payment was made with a saved or newly created card",[3421,10043,9642],{"align":3394},[3389,10045,10046,10051,10053,10056],{},[3421,10047,9513,10048,10050],{"align":3394},[170,10049],{},".checkout.transaction_id",[3421,10052,3470],{"align":3394},[3421,10054,10055],{"align":3394},"Transaction identifier",[3421,10057,9665],{"align":3394},[3389,10059,10060,10065,10067,10074],{},[3421,10061,9513,10062,10064],{"align":3394},[170,10063],{},".checkout.transaction_status",[3421,10066,3427],{"align":3394},[3421,10068,10069,10070],{"align":3394},"Transaction status, see ",[337,10071,10073],{"href":10072},"\u002Freference\u002Flookups","lookups",[3421,10075,10076],{"align":3394},[146,10077,2183],{},[3389,10079,10080,10085,10087,10090],{},[3421,10081,9513,10082,10084],{"align":3394},[170,10083],{},".checkout.expires_at",[3421,10086,3470],{"align":3394},[3421,10088,10089],{"align":3394},"ISO timestamp when checkout session expires",[3421,10091,4778],{"align":3394},[3389,10093,10094,10099,10101,10104],{},[3421,10095,9513,10096,10098],{"align":3394},[170,10097],{},".checkout.completed_at",[3421,10100,3470],{"align":3394},[3421,10102,10103],{"align":3394},"ISO timestamp when checkout was completed",[3421,10105,9722],{"align":3394},[3389,10107,10108,10113,10115,10118],{},[3421,10109,9513,10110,10112],{"align":3394},[170,10111],{},".subscription.id",[3421,10114,3470],{"align":3394},[3421,10116,10117],{"align":3394},"Subscription identifier",[3421,10119,9761],{"align":3394},[3389,10121,10122,10127,10129,10132],{},[3421,10123,9513,10124,10126],{"align":3394},[170,10125],{},".subscription.amount",[3421,10128,3470],{"align":3394},[3421,10130,10131],{"align":3394},"Subscription amount",[3421,10133,289],{"align":3394},[3389,10135,10136,10141,10143,10148],{},[3421,10137,9513,10138,10140],{"align":3394},[170,10139],{},".subscription.currency",[3421,10142,10007],{"align":3394},[3421,10144,10145,4875],{"align":3394},[337,10146,4874],{"href":4872,"rel":10147,":target":4186},[4185],[3421,10149,10150],{"align":3394},[146,10151,4720],{},[3389,10153,10154,10159,10161,10166],{},[3421,10155,9513,10156,10158],{"align":3394},[170,10157],{},".subscription.subscription_status",[3421,10160,3427],{"align":3394},[3421,10162,10163,10164],{"align":3394},"Subscription status, see ",[337,10165,10073],{"href":10072},[3421,10167,10168],{"align":3394},[146,10169,2183],{},[3389,10171,10172,10177,10179,10182],{},[3421,10173,9513,10174,10176],{"align":3394},[170,10175],{},".subscription.payment_method",[3421,10178,3470],{"align":3394},[3421,10180,10181],{"align":3394},"Payment method used",[3421,10183,2371],{"align":3394},[3389,10185,10186,10191,10193,10196],{},[3421,10187,9513,10188,10190],{"align":3394},[170,10189],{},".subscription.payment_method_id",[3421,10192,3470],{"align":3394},[3421,10194,10195],{"align":3394},"Payment method id used",[3421,10197,9855],{"align":3394},[3389,10199,10200,10205,10207,10210],{},[3421,10201,9513,10202,10204],{"align":3394},[170,10203],{},".subscription.created_at",[3421,10206,3470],{"align":3394},[3421,10208,10209],{"align":3394},"ISO timestamp when payment was created",[3421,10211,9722],{"align":3394},[3389,10213,10214,10216,10218,10221],{},[3421,10215,9866],{"align":3394},[3421,10217,3470],{"align":3394},[3421,10219,10220],{"align":3394},"ISO timestamp when webhook was created",[3421,10222,9722],{"align":3394},[139,10224,10226],{"id":10225},"webhook-events","Webhook Events",[3383,10228,10229,10244],{},[3386,10230,10231],{},[3389,10232,10233,10236,10238,10241],{},[3392,10234,10235],{"align":3394},"Event",[3392,10237,3411],{"align":3394},[3392,10239,10240],{"align":3394},"Trigger Condition",[3392,10242,10243],{"align":3394},"Data Included",[3416,10245,10246,10261,10276,10291,10307,10323],{},[3389,10247,10248,10252,10255,10258],{},[3421,10249,10250],{"align":3394},[146,10251,9454],{},[3421,10253,10254],{"align":3394},"Checkout session was successfully completed with payment",[3421,10256,10257],{"align":3394},"When customer completes payment successfully",[3421,10259,10260],{"align":3394},"Checkout details, payment information, transaction data",[3389,10262,10263,10267,10270,10273],{},[3421,10264,10265],{"align":3394},[146,10266,9457],{},[3421,10268,10269],{"align":3394},"Checkout session expired without completion",[3421,10271,10272],{"align":3394},"When checkout session reaches expiry time without payment",[3421,10274,10275],{"align":3394},"Checkout details only, no payment data",[3389,10277,10278,10282,10285,10288],{},[3421,10279,10280],{"align":3394},[146,10281,9460],{},[3421,10283,10284],{"align":3394},"Checkout session failed due to payment failure",[3421,10286,10287],{"align":3394},"When payment processing fails (declined card, insufficient funds, etc.)",[3421,10289,10290],{"align":3394},"Checkout details, failed payment attempt, error information",[3389,10292,10293,10298,10301,10304],{},[3421,10294,10295],{"align":3394},[146,10296,10297],{},"checkout.abandoned",[3421,10299,10300],{"align":3394},"Customer abandoned the checkout process",[3421,10302,10303],{"align":3394},"When customer leaves checkout page without completing",[3421,10305,10306],{"align":3394},"Checkout details, abandonment timestamp",[3389,10308,10309,10314,10317,10320],{},[3421,10310,10311],{"align":3394},[146,10312,10313],{},"checkout.pending",[3421,10315,10316],{"align":3394},"Payment is pending additional verification",[3421,10318,10319],{"align":3394},"When payment requires manual review or 3DS authentication",[3421,10321,10322],{"align":3394},"Checkout details, pending payment status",[3389,10324,10325,10330,10333,10336],{},[3421,10326,10327],{"align":3394},[146,10328,10329],{},"checkout.cancelled",[3421,10331,10332],{"align":3394},"Checkout was cancelled by customer or system",[3421,10334,10335],{"align":3394},"When cancel button is used or system cancels due to fraud",[3421,10337,10338],{"align":3394},"Checkout details, cancellation reason",[139,10340,10342],{"id":10341},"webhook-security","Webhook Security",[135,10344,10345],{},"All webhooks are sent with the following headers for verification:",[3040,10347,10348,10354,10360],{},[3043,10349,10350,10353],{},[146,10351,10352],{},"X-Signature",": HMAC-SHA256 signature of the payload",[3043,10355,10356,10359],{},[146,10357,10358],{},"X-Timestamp",": Unix timestamp of when the webhook was sent",[3043,10361,10362,10365,10366],{},[146,10363,10364],{},"User-Agent",": ",[146,10367,10368],{},"Kwik-Webhooks\u002F1.0",[139,10370,10372],{"id":10371},"webhook-response","Webhook Response",[135,10374,10375,10376,10379],{},"Your endpoint should respond with a ",[146,10377,10378],{},"200"," status code to acknowledge receipt. Failed webhooks will be retried up to 3 times with exponential backoff.",[10381,10382,10383],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":166,"searchDepth":173,"depth":180,"links":10385},[10386,10397,10398],{"id":132,"depth":180,"text":133,"children":10387},[10388,10389,10390,10391,10392,10393,10394,10395,10396],{"id":141,"depth":208,"text":142},{"id":155,"depth":208,"text":156},{"id":309,"depth":208,"text":310},{"id":899,"depth":208,"text":900},{"id":1253,"depth":208,"text":1254},{"id":2675,"depth":208,"text":2676},{"id":3355,"depth":208,"text":3356},{"id":4611,"depth":208,"text":4612},{"id":4791,"depth":208,"text":4792},{"id":4921,"depth":180,"text":4922},{"id":9438,"depth":180,"text":9439,"children":10399},[10400,10401,10402,10403,10404],{"id":9473,"depth":208,"text":9474},{"id":9911,"depth":208,"text":9912},{"id":10225,"depth":208,"text":10226},{"id":10341,"depth":208,"text":10342},{"id":10371,"depth":208,"text":10372},"Create a secure, customizable checkout link session to capture payments with cards, bank transfers, and other payment methods. Supports 3D Secure authentication, cards storage for recurring billing, invoice issuance, customer creation, and webhook notifications.","md",null,{},{"title":71,"description":10405},"q5RVIdT2uk4n5CzUR1W1qmGukE3YpwcIQTc1YbCIkNw",[10412,10414],{"title":61,"path":62,"stem":63,"description":10413,"children":-1},"Retrieve and monitor transaction records including payment attempts, status changes, and settlement details. Access comprehensive transaction history with filtering, pagination, and detailed status information for reporting and reconciliation.",{"title":75,"path":76,"stem":77,"description":10415,"children":-1},"Create a secure, customizable checkout form session to capture payments with cards, bank transfers, and other payment methods. Supports 3D Secure authentication, cards storage for recurring billing, invoice issuance, customer creation, and webhook notifications.",1780668572336]