[{"data":1,"prerenderedAt":3782},["ShallowReactive",2],{"navigation-docs_v2":3,"\u002Fv2\u002Fmoney-in\u002Fcard-vault-link":136,"\u002Fv2\u002Fmoney-in\u002Fcard-vault-link-surround":3777},[4],{"title":5,"path":6,"stem":7,"children":8,"page":68},"V2","\u002Fv2","v2",[9,27,69,98,111,128],{"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\u002Ferror-handling","v2\u002F1.overview\u002F3.error-handling",{"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":68},"General","\u002Fv2\u002Fgeneral","v2\u002F2.general",[32,36,40,44,48,52,56,60,64],{"title":33,"path":34,"stem":35},"Lookups","\u002Fv2\u002Fgeneral\u002Flookups","v2\u002F2.general\u002F1.lookups",{"title":37,"path":38,"stem":39},"Customer portal Link","\u002Fv2\u002Fgeneral\u002Fcustomer-portal-link","v2\u002F2.general\u002F10.customer-portal-link",{"title":41,"path":42,"stem":43},"Payment Methods","\u002Fv2\u002Fgeneral\u002Fpayment-methods","v2\u002F2.general\u002F2.payment-methods",{"title":45,"path":46,"stem":47},"Customers","\u002Fv2\u002Fgeneral\u002Fcustomers","v2\u002F2.general\u002F3.customers",{"title":49,"path":50,"stem":51},"Bank Accounts","\u002Fv2\u002Fgeneral\u002Fbank-accounts","v2\u002F2.general\u002F4.bank-accounts",{"title":53,"path":54,"stem":55},"Cards","\u002Fv2\u002Fgeneral\u002Fcards","v2\u002F2.general\u002F5.cards",{"title":57,"path":58,"stem":59},"Mandates","\u002Fv2\u002Fgeneral\u002Fmandates","v2\u002F2.general\u002F6.mandates",{"title":61,"path":62,"stem":63},"Products","\u002Fv2\u002Fgeneral\u002Fproducts","v2\u002F2.general\u002F8.products",{"title":65,"path":66,"stem":67},"Transactions","\u002Fv2\u002Fgeneral\u002Ftransactions","v2\u002F2.general\u002F9.transactions",false,{"title":70,"path":71,"stem":72,"children":73,"page":68},"Money In","\u002Fv2\u002Fmoney-in","v2\u002F3.money-in",[74,78,82,86,90,94],{"title":75,"path":76,"stem":77},"Collections","\u002Fv2\u002Fmoney-in\u002Fcollections","v2\u002F3.money-in\u002F1.collections",{"title":79,"path":80,"stem":81},"Electronic Mandates","\u002Fv2\u002Fmoney-in\u002Felectronic-mandates","v2\u002F3.money-in\u002F2.electronic-mandates",{"title":83,"path":84,"stem":85},"Checkout Link","\u002Fv2\u002Fmoney-in\u002Fcheckout-link","v2\u002F3.money-in\u002F3.checkout-link",{"title":87,"path":88,"stem":89},"Checkout Form","\u002Fv2\u002Fmoney-in\u002Fcheckout-form","v2\u002F3.money-in\u002F4.checkout-form",{"title":91,"path":92,"stem":93},"Card Vault Link","\u002Fv2\u002Fmoney-in\u002Fcard-vault-link","v2\u002F3.money-in\u002F5.card-vault-link",{"title":95,"path":96,"stem":97},"Card Vault Charge","\u002Fv2\u002Fmoney-in\u002Fcard-vault-charge","v2\u002F3.money-in\u002F6.card-vault-charge",{"title":99,"path":100,"stem":101,"children":102,"page":68},"Money Out","\u002Fv2\u002Fmoney-out","v2\u002F4.money-out",[103,107],{"title":104,"path":105,"stem":106},"Payouts","\u002Fv2\u002Fmoney-out\u002Fpayouts","v2\u002F4.money-out\u002F1.payouts",{"title":108,"path":109,"stem":110},"Recipients","\u002Fv2\u002Fmoney-out\u002Frecipients","v2\u002F4.money-out\u002F2.recipients",{"title":112,"path":113,"stem":114,"children":115,"page":68},"Verification","\u002Fv2\u002Fverification","v2\u002F5.verification",[116,120,124],{"title":117,"path":118,"stem":119},"CDV","\u002Fv2\u002Fverification\u002Fcdv","v2\u002F5.verification\u002F1.cdv",{"title":121,"path":122,"stem":123},"AVS-R","\u002Fv2\u002Fverification\u002Favs-r","v2\u002F5.verification\u002F2.avs-r",{"title":125,"path":126,"stem":127},"SDO","\u002Fv2\u002Fverification\u002Fsdo","v2\u002F5.verification\u002F3.sdo",{"title":129,"path":130,"stem":131,"children":132,"page":68},"Webhooks","\u002Fv2\u002Fwebhooks","v2\u002F6.webhooks",[133],{"title":129,"path":134,"stem":135},"\u002Fv2\u002Fwebhooks\u002Fwebhooks","v2\u002F6.webhooks\u002F1.webhooks",{"id":137,"title":91,"body":138,"description":3771,"extension":3772,"links":3773,"meta":3774,"navigation":377,"path":92,"seo":3775,"stem":93,"__hash__":3776},"docs_v2\u002Fv2\u002F3.money-in\u002F5.card-vault-link.md",{"type":139,"value":140,"toc":3750},"minimark",[141,147,152,156,168,173,182,228,232,238,336,340,346,649,653,659,893,897,900,1493,1497,1500,1697,1700,1734,1740,1889,1894,2034,2038,2057,2554,2558,2753,2757,2902,2906,2917,2921,2927,2946,2950,3307,3311,3576,3580,3705,3709,3712,3735,3739,3746],[142,143],"img",{"src":144,"alt":145,"width":146},"\u002Fimg\u002Fcard-vault-link.png","Card vault link",400,[148,149,151],"h2",{"id":150},"request","Request",[153,154,155],"p",{},"Request to generate a card vault page session URL where a payer can securely store a card, or manage their stored cards. Only cards are supported on this page — no other payment methods are shown.",[153,157,158,159,163,164,167],{},"Every newly stored card is verified with a 3D Secure authenticated transaction. If ",[160,161,162],"code",{},"fee.amount"," is supplied it is charged as a one-time fee when the card is stored; otherwise a default ",[160,165,166],{},"R2.00"," verification amount is charged (an amount is required for 3DS authentication).",[169,170,172],"h3",{"id":171},"path","Path",[153,174,175,178,179],{},[160,176,177],{},"POST"," ",[160,180,181],{},"\u002Fcard-vault\u002F{customer_id}\u002Flink",[183,184,185,205],"table",{},[186,187,188],"thead",{},[189,190,191,196,199,202],"tr",{},[192,193,195],"th",{"align":194},"left","Path Parameter",[192,197,198],{"align":194},"Type",[192,200,201],{"align":194},"Description",[192,203,204],{"align":194},"Example",[206,207,208],"tbody",{},[189,209,210,214,217,225],{},[211,212,213],"td",{"align":194},"customer_id",[211,215,216],{"align":194},"String(32)",[211,218,219,220],{"align":194},"The customer to store or manage cards for. The customer must exist — see ",[221,222,224],"a",{"href":223},"\u002Freference\u002Fcustomers","customers",[211,226,227],{"align":194},"cus_abc123...",[169,229,231],{"id":230},"example-basic","Example (Basic)",[153,233,234,235,237],{},"Basic example to create a link where the payer stores a card. The default ",[160,236,166],{}," verification amount is charged for 3DS.",[239,240,245],"pre",{"className":241,"code":242,"language":243,"meta":244,"style":244},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"type\": \"STORE_CARD\",\n  \"item\": {\n    \"title\": \"Save your card\" \u002F\u002F shown on the vault page and payer statement\n  }\n}\n","json","",[160,246,247,256,284,299,324,330],{"__ignoreMap":244},[248,249,252],"span",{"class":250,"line":251},"line",1,[248,253,255],{"class":254},"sMK4o","{\n",[248,257,259,262,266,269,272,275,279,281],{"class":250,"line":258},2,[248,260,261],{"class":254},"  \"",[248,263,265],{"class":264},"spNyl","type",[248,267,268],{"class":254},"\"",[248,270,271],{"class":254},":",[248,273,274],{"class":254}," \"",[248,276,278],{"class":277},"sfazB","STORE_CARD",[248,280,268],{"class":254},[248,282,283],{"class":254},",\n",[248,285,287,289,292,294,296],{"class":250,"line":286},3,[248,288,261],{"class":254},[248,290,291],{"class":264},"item",[248,293,268],{"class":254},[248,295,271],{"class":254},[248,297,298],{"class":254}," {\n",[248,300,302,305,309,311,313,315,318,320],{"class":250,"line":301},4,[248,303,304],{"class":254},"    \"",[248,306,308],{"class":307},"sBMFI","title",[248,310,268],{"class":254},[248,312,271],{"class":254},[248,314,274],{"class":254},[248,316,317],{"class":277},"Save your card",[248,319,268],{"class":254},[248,321,323],{"class":322},"sHwdD"," \u002F\u002F shown on the vault page and payer statement\n",[248,325,327],{"class":250,"line":326},5,[248,328,329],{"class":254},"  }\n",[248,331,333],{"class":250,"line":332},6,[248,334,335],{"class":254},"}\n",[169,337,339],{"id":338},"example-one-time-fee","Example (One-time fee)",[153,341,342,343,345],{},"Charge a one-time fee when the card is stored, instead of the default ",[160,344,166],{}," verification amount.",[239,347,349],{"className":241,"code":348,"language":243,"meta":244,"style":244},"{\n  \"type\": \"STORE_CARD\",\n\n  \"item\": {\n    \"title\": \"Card activation fee\", \u002F\u002F shown on the vault page and payer statement\n    \"description\": \"A once-off activation fee is charged when your card is saved\" \u002F\u002F [optional]\n  },\n\n  \"fee\": {\n    \"amount\": \"50.00\", \u002F\u002F one-time fee charged with the 3DS verification; omit to default to \"2.00\"\n    \"is_refund\": false \u002F\u002F [optional] default false — when true, the default R2.00 verification amount is automatically reversed after successful storage; ignored when a custom fee amount is set\n  },\n\n  \"notification\": {\n    \"email\": \"me@my-email.co.za\", \u002F\u002F [optional] email notification when a card is stored\n    \"webhook_url\": \"https:\u002F\u002Fmerchant.example\u002Fwebhooks\u002Fcards\" \u002F\u002F webhook on card vault events\n  },\n\n  \"redirects\": {\n    \"success_url\": \"https:\u002F\u002Fmerchant.example\u002Fcard-saved?myquery=myparam\", \u002F\u002F may append &signature=\n    \"cancel_url\": \"https:\u002F\u002Fmerchant.example\u002Fcancel\"\n  }\n}\n",[160,350,351,355,373,379,391,413,434,440,445,459,483,501,506,511,525,549,571,576,581,595,619,639,644],{"__ignoreMap":244},[248,352,353],{"class":250,"line":251},[248,354,255],{"class":254},[248,356,357,359,361,363,365,367,369,371],{"class":250,"line":258},[248,358,261],{"class":254},[248,360,265],{"class":264},[248,362,268],{"class":254},[248,364,271],{"class":254},[248,366,274],{"class":254},[248,368,278],{"class":277},[248,370,268],{"class":254},[248,372,283],{"class":254},[248,374,375],{"class":250,"line":286},[248,376,378],{"emptyLinePlaceholder":377},true,"\n",[248,380,381,383,385,387,389],{"class":250,"line":301},[248,382,261],{"class":254},[248,384,291],{"class":264},[248,386,268],{"class":254},[248,388,271],{"class":254},[248,390,298],{"class":254},[248,392,393,395,397,399,401,403,406,408,411],{"class":250,"line":326},[248,394,304],{"class":254},[248,396,308],{"class":307},[248,398,268],{"class":254},[248,400,271],{"class":254},[248,402,274],{"class":254},[248,404,405],{"class":277},"Card activation fee",[248,407,268],{"class":254},[248,409,410],{"class":254},",",[248,412,323],{"class":322},[248,414,415,417,420,422,424,426,429,431],{"class":250,"line":332},[248,416,304],{"class":254},[248,418,419],{"class":307},"description",[248,421,268],{"class":254},[248,423,271],{"class":254},[248,425,274],{"class":254},[248,427,428],{"class":277},"A once-off activation fee is charged when your card is saved",[248,430,268],{"class":254},[248,432,433],{"class":322}," \u002F\u002F [optional]\n",[248,435,437],{"class":250,"line":436},7,[248,438,439],{"class":254},"  },\n",[248,441,443],{"class":250,"line":442},8,[248,444,378],{"emptyLinePlaceholder":377},[248,446,448,450,453,455,457],{"class":250,"line":447},9,[248,449,261],{"class":254},[248,451,452],{"class":264},"fee",[248,454,268],{"class":254},[248,456,271],{"class":254},[248,458,298],{"class":254},[248,460,462,464,467,469,471,473,476,478,480],{"class":250,"line":461},10,[248,463,304],{"class":254},[248,465,466],{"class":307},"amount",[248,468,268],{"class":254},[248,470,271],{"class":254},[248,472,274],{"class":254},[248,474,475],{"class":277},"50.00",[248,477,268],{"class":254},[248,479,410],{"class":254},[248,481,482],{"class":322}," \u002F\u002F one-time fee charged with the 3DS verification; omit to default to \"2.00\"\n",[248,484,486,488,491,493,495,498],{"class":250,"line":485},11,[248,487,304],{"class":254},[248,489,490],{"class":307},"is_refund",[248,492,268],{"class":254},[248,494,271],{"class":254},[248,496,497],{"class":254}," false",[248,499,500],{"class":322}," \u002F\u002F [optional] default false — when true, the default R2.00 verification amount is automatically reversed after successful storage; ignored when a custom fee amount is set\n",[248,502,504],{"class":250,"line":503},12,[248,505,439],{"class":254},[248,507,509],{"class":250,"line":508},13,[248,510,378],{"emptyLinePlaceholder":377},[248,512,514,516,519,521,523],{"class":250,"line":513},14,[248,515,261],{"class":254},[248,517,518],{"class":264},"notification",[248,520,268],{"class":254},[248,522,271],{"class":254},[248,524,298],{"class":254},[248,526,528,530,533,535,537,539,542,544,546],{"class":250,"line":527},15,[248,529,304],{"class":254},[248,531,532],{"class":307},"email",[248,534,268],{"class":254},[248,536,271],{"class":254},[248,538,274],{"class":254},[248,540,541],{"class":277},"me@my-email.co.za",[248,543,268],{"class":254},[248,545,410],{"class":254},[248,547,548],{"class":322}," \u002F\u002F [optional] email notification when a card is stored\n",[248,550,552,554,557,559,561,563,566,568],{"class":250,"line":551},16,[248,553,304],{"class":254},[248,555,556],{"class":307},"webhook_url",[248,558,268],{"class":254},[248,560,271],{"class":254},[248,562,274],{"class":254},[248,564,565],{"class":277},"https:\u002F\u002Fmerchant.example\u002Fwebhooks\u002Fcards",[248,567,268],{"class":254},[248,569,570],{"class":322}," \u002F\u002F webhook on card vault events\n",[248,572,574],{"class":250,"line":573},17,[248,575,439],{"class":254},[248,577,579],{"class":250,"line":578},18,[248,580,378],{"emptyLinePlaceholder":377},[248,582,584,586,589,591,593],{"class":250,"line":583},19,[248,585,261],{"class":254},[248,587,588],{"class":264},"redirects",[248,590,268],{"class":254},[248,592,271],{"class":254},[248,594,298],{"class":254},[248,596,598,600,603,605,607,609,612,614,616],{"class":250,"line":597},20,[248,599,304],{"class":254},[248,601,602],{"class":307},"success_url",[248,604,268],{"class":254},[248,606,271],{"class":254},[248,608,274],{"class":254},[248,610,611],{"class":277},"https:\u002F\u002Fmerchant.example\u002Fcard-saved?myquery=myparam",[248,613,268],{"class":254},[248,615,410],{"class":254},[248,617,618],{"class":322}," \u002F\u002F may append &signature=\n",[248,620,622,624,627,629,631,633,636],{"class":250,"line":621},21,[248,623,304],{"class":254},[248,625,626],{"class":307},"cancel_url",[248,628,268],{"class":254},[248,630,271],{"class":254},[248,632,274],{"class":254},[248,634,635],{"class":277},"https:\u002F\u002Fmerchant.example\u002Fcancel",[248,637,638],{"class":254},"\"\n",[248,640,642],{"class":250,"line":641},22,[248,643,329],{"class":254},[248,645,647],{"class":250,"line":646},23,[248,648,335],{"class":254},[169,650,652],{"id":651},"example-manage-cards","Example (Manage cards)",[153,654,655,656,658],{},"Create a link where the payer can view, add, remove, set the default, and reorder their stored cards. Adding a card runs the same 3DS verification flow as ",[160,657,278],{},".",[239,660,662],{"className":241,"code":661,"language":243,"meta":244,"style":244},"{\n  \"type\": \"MANAGE_CARDS\",\n\n  \"item\": {\n    \"title\": \"Manage your cards\"\n  },\n\n  \"manage\": {\n    \"is_allow_add\": true, \u002F\u002F [optional] default true — payer can add a new card (runs the R2.00 \u002F fee 3DS flow)\n    \"is_allow_remove\": true, \u002F\u002F [optional] default true — removing the default card promotes the next card by priority\n    \"is_allow_set_default\": true \u002F\u002F [optional] default true — payer can choose their default card and reorder fallbacks\n  },\n\n  \"notification\": {\n    \"webhook_url\": \"https:\u002F\u002Fmerchant.example\u002Fwebhooks\u002Fcards\" \u002F\u002F card.stored · card.removed · card.default_changed · card.reordered\n  },\n\n  \"redirects\": {\n    \"success_url\": \"https:\u002F\u002Fmerchant.example\u002Fcards?myquery=myparam\",\n    \"cancel_url\": \"https:\u002F\u002Fmerchant.example\u002Fcancel\"\n  }\n}\n",[160,663,664,668,687,691,703,720,724,728,741,758,774,791,795,799,811,830,834,838,850,869,885,889],{"__ignoreMap":244},[248,665,666],{"class":250,"line":251},[248,667,255],{"class":254},[248,669,670,672,674,676,678,680,683,685],{"class":250,"line":258},[248,671,261],{"class":254},[248,673,265],{"class":264},[248,675,268],{"class":254},[248,677,271],{"class":254},[248,679,274],{"class":254},[248,681,682],{"class":277},"MANAGE_CARDS",[248,684,268],{"class":254},[248,686,283],{"class":254},[248,688,689],{"class":250,"line":286},[248,690,378],{"emptyLinePlaceholder":377},[248,692,693,695,697,699,701],{"class":250,"line":301},[248,694,261],{"class":254},[248,696,291],{"class":264},[248,698,268],{"class":254},[248,700,271],{"class":254},[248,702,298],{"class":254},[248,704,705,707,709,711,713,715,718],{"class":250,"line":326},[248,706,304],{"class":254},[248,708,308],{"class":307},[248,710,268],{"class":254},[248,712,271],{"class":254},[248,714,274],{"class":254},[248,716,717],{"class":277},"Manage your cards",[248,719,638],{"class":254},[248,721,722],{"class":250,"line":332},[248,723,439],{"class":254},[248,725,726],{"class":250,"line":436},[248,727,378],{"emptyLinePlaceholder":377},[248,729,730,732,735,737,739],{"class":250,"line":442},[248,731,261],{"class":254},[248,733,734],{"class":264},"manage",[248,736,268],{"class":254},[248,738,271],{"class":254},[248,740,298],{"class":254},[248,742,743,745,748,750,752,755],{"class":250,"line":447},[248,744,304],{"class":254},[248,746,747],{"class":307},"is_allow_add",[248,749,268],{"class":254},[248,751,271],{"class":254},[248,753,754],{"class":254}," true,",[248,756,757],{"class":322}," \u002F\u002F [optional] default true — payer can add a new card (runs the R2.00 \u002F fee 3DS flow)\n",[248,759,760,762,765,767,769,771],{"class":250,"line":461},[248,761,304],{"class":254},[248,763,764],{"class":307},"is_allow_remove",[248,766,268],{"class":254},[248,768,271],{"class":254},[248,770,754],{"class":254},[248,772,773],{"class":322}," \u002F\u002F [optional] default true — removing the default card promotes the next card by priority\n",[248,775,776,778,781,783,785,788],{"class":250,"line":485},[248,777,304],{"class":254},[248,779,780],{"class":307},"is_allow_set_default",[248,782,268],{"class":254},[248,784,271],{"class":254},[248,786,787],{"class":254}," true",[248,789,790],{"class":322}," \u002F\u002F [optional] default true — payer can choose their default card and reorder fallbacks\n",[248,792,793],{"class":250,"line":503},[248,794,439],{"class":254},[248,796,797],{"class":250,"line":508},[248,798,378],{"emptyLinePlaceholder":377},[248,800,801,803,805,807,809],{"class":250,"line":513},[248,802,261],{"class":254},[248,804,518],{"class":264},[248,806,268],{"class":254},[248,808,271],{"class":254},[248,810,298],{"class":254},[248,812,813,815,817,819,821,823,825,827],{"class":250,"line":527},[248,814,304],{"class":254},[248,816,556],{"class":307},[248,818,268],{"class":254},[248,820,271],{"class":254},[248,822,274],{"class":254},[248,824,565],{"class":277},[248,826,268],{"class":254},[248,828,829],{"class":322}," \u002F\u002F card.stored · card.removed · card.default_changed · card.reordered\n",[248,831,832],{"class":250,"line":551},[248,833,439],{"class":254},[248,835,836],{"class":250,"line":573},[248,837,378],{"emptyLinePlaceholder":377},[248,839,840,842,844,846,848],{"class":250,"line":578},[248,841,261],{"class":254},[248,843,588],{"class":264},[248,845,268],{"class":254},[248,847,271],{"class":254},[248,849,298],{"class":254},[248,851,852,854,856,858,860,862,865,867],{"class":250,"line":583},[248,853,304],{"class":254},[248,855,602],{"class":307},[248,857,268],{"class":254},[248,859,271],{"class":254},[248,861,274],{"class":254},[248,863,864],{"class":277},"https:\u002F\u002Fmerchant.example\u002Fcards?myquery=myparam",[248,866,268],{"class":254},[248,868,283],{"class":254},[248,870,871,873,875,877,879,881,883],{"class":250,"line":597},[248,872,304],{"class":254},[248,874,626],{"class":307},[248,876,268],{"class":254},[248,878,271],{"class":254},[248,880,274],{"class":254},[248,882,635],{"class":277},[248,884,638],{"class":254},[248,886,887],{"class":250,"line":621},[248,888,329],{"class":254},[248,890,891],{"class":250,"line":641},[248,892,335],{"class":254},[169,894,896],{"id":895},"example-advanced","Example (Advanced)",[153,898,899],{},"Advanced example with all options, including card placement in the cascade order, vault limits, and page customization.",[239,901,903],{"className":241,"code":902,"language":243,"meta":244,"style":244},"{\n  \"type\": \"STORE_CARD\",\n\n  \"signature\": \"secret-key-for-payload\", \u002F\u002F [optional] shared-secret signature for the payload, see the signature section below\n\n  \"item\": {\n    \"title\": \"Save your card\",\n    \"description\": \"Securely store your card for future payments\"\n  },\n\n  \u002F\u002F Placement of the newly stored card in the customer's cascade order\n  \"card\": {\n    \"is_default\": false, \u002F\u002F [optional] default true for the customer's first card, false otherwise; when true, the existing default card is demoted\n    \"priority\": 2 \u002F\u002F [optional] explicit fallback position among non-default cards; ignored when is_default is true; defaults to the end of the cascade order\n  },\n\n  \"fee\": {\n    \"amount\": \"50.00\",\n    \"is_refund\": false\n  },\n\n  \"notification\": {\n    \"email\": \"me@my-email.co.za\",\n    \"webhook_url\": \"https:\u002F\u002Fmerchant.example\u002Fwebhooks\u002Fcards\"\n  },\n\n  \"redirects\": {\n    \"success_url\": \"https:\u002F\u002Fmerchant.example\u002Fcard-saved?myquery=myparam\",\n    \"cancel_url\": \"https:\u002F\u002Fmerchant.example\u002Fcancel\"\n  },\n\n  \"settings\": {\n    \"expiry_time\": 1440, \u002F\u002F minutes until the vault link lapses — omit when the link never expires (default)\n    \"max_cards\": 3, \u002F\u002F [optional] cap on stored cards for this customer; the link shows an error state when the customer is at the limit — omit for no limit\n    \"is_duplicate_check\": true \u002F\u002F [optional] default true — rejects storing a card whose PAN fingerprint already exists on this customer\n  },\n\n  \"customization\": {\n    \"button_text\": \"Save card\", \u002F\u002F [optional] primary action button label\n    \"type\": \"PAGE\", \u002F\u002F or \"EMBED\" for iframe-style hosting or in-app card storage\n    \"is_display_cancel_button\": true,\n    \"confirmation_message\": \"Your card has been saved\", \u002F\u002F [optional] shown after successful storage; otherwise use redirects\n    \"brand\": {\n      \"primary\": \"#00DC82\",\n      \"secondary\": \"#CCCCCC\"\n    }\n  }\n}\n",[160,904,905,909,927,931,954,958,970,988,1005,1009,1013,1018,1031,1048,1066,1070,1074,1086,1104,1117,1121,1125,1137,1155,1172,1177,1182,1195,1214,1231,1236,1241,1255,1275,1295,1312,1317,1322,1336,1360,1383,1398,1422,1436,1458,1477,1483,1488],{"__ignoreMap":244},[248,906,907],{"class":250,"line":251},[248,908,255],{"class":254},[248,910,911,913,915,917,919,921,923,925],{"class":250,"line":258},[248,912,261],{"class":254},[248,914,265],{"class":264},[248,916,268],{"class":254},[248,918,271],{"class":254},[248,920,274],{"class":254},[248,922,278],{"class":277},[248,924,268],{"class":254},[248,926,283],{"class":254},[248,928,929],{"class":250,"line":286},[248,930,378],{"emptyLinePlaceholder":377},[248,932,933,935,938,940,942,944,947,949,951],{"class":250,"line":301},[248,934,261],{"class":254},[248,936,937],{"class":264},"signature",[248,939,268],{"class":254},[248,941,271],{"class":254},[248,943,274],{"class":254},[248,945,946],{"class":277},"secret-key-for-payload",[248,948,268],{"class":254},[248,950,410],{"class":254},[248,952,953],{"class":322}," \u002F\u002F [optional] shared-secret signature for the payload, see the signature section below\n",[248,955,956],{"class":250,"line":326},[248,957,378],{"emptyLinePlaceholder":377},[248,959,960,962,964,966,968],{"class":250,"line":332},[248,961,261],{"class":254},[248,963,291],{"class":264},[248,965,268],{"class":254},[248,967,271],{"class":254},[248,969,298],{"class":254},[248,971,972,974,976,978,980,982,984,986],{"class":250,"line":436},[248,973,304],{"class":254},[248,975,308],{"class":307},[248,977,268],{"class":254},[248,979,271],{"class":254},[248,981,274],{"class":254},[248,983,317],{"class":277},[248,985,268],{"class":254},[248,987,283],{"class":254},[248,989,990,992,994,996,998,1000,1003],{"class":250,"line":442},[248,991,304],{"class":254},[248,993,419],{"class":307},[248,995,268],{"class":254},[248,997,271],{"class":254},[248,999,274],{"class":254},[248,1001,1002],{"class":277},"Securely store your card for future payments",[248,1004,638],{"class":254},[248,1006,1007],{"class":250,"line":447},[248,1008,439],{"class":254},[248,1010,1011],{"class":250,"line":461},[248,1012,378],{"emptyLinePlaceholder":377},[248,1014,1015],{"class":250,"line":485},[248,1016,1017],{"class":322},"  \u002F\u002F Placement of the newly stored card in the customer's cascade order\n",[248,1019,1020,1022,1025,1027,1029],{"class":250,"line":503},[248,1021,261],{"class":254},[248,1023,1024],{"class":264},"card",[248,1026,268],{"class":254},[248,1028,271],{"class":254},[248,1030,298],{"class":254},[248,1032,1033,1035,1038,1040,1042,1045],{"class":250,"line":508},[248,1034,304],{"class":254},[248,1036,1037],{"class":307},"is_default",[248,1039,268],{"class":254},[248,1041,271],{"class":254},[248,1043,1044],{"class":254}," false,",[248,1046,1047],{"class":322}," \u002F\u002F [optional] default true for the customer's first card, false otherwise; when true, the existing default card is demoted\n",[248,1049,1050,1052,1055,1057,1059,1063],{"class":250,"line":513},[248,1051,304],{"class":254},[248,1053,1054],{"class":307},"priority",[248,1056,268],{"class":254},[248,1058,271],{"class":254},[248,1060,1062],{"class":1061},"sbssI"," 2",[248,1064,1065],{"class":322}," \u002F\u002F [optional] explicit fallback position among non-default cards; ignored when is_default is true; defaults to the end of the cascade order\n",[248,1067,1068],{"class":250,"line":527},[248,1069,439],{"class":254},[248,1071,1072],{"class":250,"line":551},[248,1073,378],{"emptyLinePlaceholder":377},[248,1075,1076,1078,1080,1082,1084],{"class":250,"line":573},[248,1077,261],{"class":254},[248,1079,452],{"class":264},[248,1081,268],{"class":254},[248,1083,271],{"class":254},[248,1085,298],{"class":254},[248,1087,1088,1090,1092,1094,1096,1098,1100,1102],{"class":250,"line":578},[248,1089,304],{"class":254},[248,1091,466],{"class":307},[248,1093,268],{"class":254},[248,1095,271],{"class":254},[248,1097,274],{"class":254},[248,1099,475],{"class":277},[248,1101,268],{"class":254},[248,1103,283],{"class":254},[248,1105,1106,1108,1110,1112,1114],{"class":250,"line":583},[248,1107,304],{"class":254},[248,1109,490],{"class":307},[248,1111,268],{"class":254},[248,1113,271],{"class":254},[248,1115,1116],{"class":254}," false\n",[248,1118,1119],{"class":250,"line":597},[248,1120,439],{"class":254},[248,1122,1123],{"class":250,"line":621},[248,1124,378],{"emptyLinePlaceholder":377},[248,1126,1127,1129,1131,1133,1135],{"class":250,"line":641},[248,1128,261],{"class":254},[248,1130,518],{"class":264},[248,1132,268],{"class":254},[248,1134,271],{"class":254},[248,1136,298],{"class":254},[248,1138,1139,1141,1143,1145,1147,1149,1151,1153],{"class":250,"line":646},[248,1140,304],{"class":254},[248,1142,532],{"class":307},[248,1144,268],{"class":254},[248,1146,271],{"class":254},[248,1148,274],{"class":254},[248,1150,541],{"class":277},[248,1152,268],{"class":254},[248,1154,283],{"class":254},[248,1156,1158,1160,1162,1164,1166,1168,1170],{"class":250,"line":1157},24,[248,1159,304],{"class":254},[248,1161,556],{"class":307},[248,1163,268],{"class":254},[248,1165,271],{"class":254},[248,1167,274],{"class":254},[248,1169,565],{"class":277},[248,1171,638],{"class":254},[248,1173,1175],{"class":250,"line":1174},25,[248,1176,439],{"class":254},[248,1178,1180],{"class":250,"line":1179},26,[248,1181,378],{"emptyLinePlaceholder":377},[248,1183,1185,1187,1189,1191,1193],{"class":250,"line":1184},27,[248,1186,261],{"class":254},[248,1188,588],{"class":264},[248,1190,268],{"class":254},[248,1192,271],{"class":254},[248,1194,298],{"class":254},[248,1196,1198,1200,1202,1204,1206,1208,1210,1212],{"class":250,"line":1197},28,[248,1199,304],{"class":254},[248,1201,602],{"class":307},[248,1203,268],{"class":254},[248,1205,271],{"class":254},[248,1207,274],{"class":254},[248,1209,611],{"class":277},[248,1211,268],{"class":254},[248,1213,283],{"class":254},[248,1215,1217,1219,1221,1223,1225,1227,1229],{"class":250,"line":1216},29,[248,1218,304],{"class":254},[248,1220,626],{"class":307},[248,1222,268],{"class":254},[248,1224,271],{"class":254},[248,1226,274],{"class":254},[248,1228,635],{"class":277},[248,1230,638],{"class":254},[248,1232,1234],{"class":250,"line":1233},30,[248,1235,439],{"class":254},[248,1237,1239],{"class":250,"line":1238},31,[248,1240,378],{"emptyLinePlaceholder":377},[248,1242,1244,1246,1249,1251,1253],{"class":250,"line":1243},32,[248,1245,261],{"class":254},[248,1247,1248],{"class":264},"settings",[248,1250,268],{"class":254},[248,1252,271],{"class":254},[248,1254,298],{"class":254},[248,1256,1258,1260,1263,1265,1267,1270,1272],{"class":250,"line":1257},33,[248,1259,304],{"class":254},[248,1261,1262],{"class":307},"expiry_time",[248,1264,268],{"class":254},[248,1266,271],{"class":254},[248,1268,1269],{"class":1061}," 1440",[248,1271,410],{"class":254},[248,1273,1274],{"class":322}," \u002F\u002F minutes until the vault link lapses — omit when the link never expires (default)\n",[248,1276,1278,1280,1283,1285,1287,1290,1292],{"class":250,"line":1277},34,[248,1279,304],{"class":254},[248,1281,1282],{"class":307},"max_cards",[248,1284,268],{"class":254},[248,1286,271],{"class":254},[248,1288,1289],{"class":1061}," 3",[248,1291,410],{"class":254},[248,1293,1294],{"class":322}," \u002F\u002F [optional] cap on stored cards for this customer; the link shows an error state when the customer is at the limit — omit for no limit\n",[248,1296,1298,1300,1303,1305,1307,1309],{"class":250,"line":1297},35,[248,1299,304],{"class":254},[248,1301,1302],{"class":307},"is_duplicate_check",[248,1304,268],{"class":254},[248,1306,271],{"class":254},[248,1308,787],{"class":254},[248,1310,1311],{"class":322}," \u002F\u002F [optional] default true — rejects storing a card whose PAN fingerprint already exists on this customer\n",[248,1313,1315],{"class":250,"line":1314},36,[248,1316,439],{"class":254},[248,1318,1320],{"class":250,"line":1319},37,[248,1321,378],{"emptyLinePlaceholder":377},[248,1323,1325,1327,1330,1332,1334],{"class":250,"line":1324},38,[248,1326,261],{"class":254},[248,1328,1329],{"class":264},"customization",[248,1331,268],{"class":254},[248,1333,271],{"class":254},[248,1335,298],{"class":254},[248,1337,1339,1341,1344,1346,1348,1350,1353,1355,1357],{"class":250,"line":1338},39,[248,1340,304],{"class":254},[248,1342,1343],{"class":307},"button_text",[248,1345,268],{"class":254},[248,1347,271],{"class":254},[248,1349,274],{"class":254},[248,1351,1352],{"class":277},"Save card",[248,1354,268],{"class":254},[248,1356,410],{"class":254},[248,1358,1359],{"class":322}," \u002F\u002F [optional] primary action button label\n",[248,1361,1363,1365,1367,1369,1371,1373,1376,1378,1380],{"class":250,"line":1362},40,[248,1364,304],{"class":254},[248,1366,265],{"class":307},[248,1368,268],{"class":254},[248,1370,271],{"class":254},[248,1372,274],{"class":254},[248,1374,1375],{"class":277},"PAGE",[248,1377,268],{"class":254},[248,1379,410],{"class":254},[248,1381,1382],{"class":322}," \u002F\u002F or \"EMBED\" for iframe-style hosting or in-app card storage\n",[248,1384,1386,1388,1391,1393,1395],{"class":250,"line":1385},41,[248,1387,304],{"class":254},[248,1389,1390],{"class":307},"is_display_cancel_button",[248,1392,268],{"class":254},[248,1394,271],{"class":254},[248,1396,1397],{"class":254}," true,\n",[248,1399,1401,1403,1406,1408,1410,1412,1415,1417,1419],{"class":250,"line":1400},42,[248,1402,304],{"class":254},[248,1404,1405],{"class":307},"confirmation_message",[248,1407,268],{"class":254},[248,1409,271],{"class":254},[248,1411,274],{"class":254},[248,1413,1414],{"class":277},"Your card has been saved",[248,1416,268],{"class":254},[248,1418,410],{"class":254},[248,1420,1421],{"class":322}," \u002F\u002F [optional] shown after successful storage; otherwise use redirects\n",[248,1423,1425,1427,1430,1432,1434],{"class":250,"line":1424},43,[248,1426,304],{"class":254},[248,1428,1429],{"class":307},"brand",[248,1431,268],{"class":254},[248,1433,271],{"class":254},[248,1435,298],{"class":254},[248,1437,1439,1442,1445,1447,1449,1451,1454,1456],{"class":250,"line":1438},44,[248,1440,1441],{"class":254},"      \"",[248,1443,1444],{"class":1061},"primary",[248,1446,268],{"class":254},[248,1448,271],{"class":254},[248,1450,274],{"class":254},[248,1452,1453],{"class":277},"#00DC82",[248,1455,268],{"class":254},[248,1457,283],{"class":254},[248,1459,1461,1463,1466,1468,1470,1472,1475],{"class":250,"line":1460},45,[248,1462,1441],{"class":254},[248,1464,1465],{"class":1061},"secondary",[248,1467,268],{"class":254},[248,1469,271],{"class":254},[248,1471,274],{"class":254},[248,1473,1474],{"class":277},"#CCCCCC",[248,1476,638],{"class":254},[248,1478,1480],{"class":250,"line":1479},46,[248,1481,1482],{"class":254},"    }\n",[248,1484,1486],{"class":250,"line":1485},47,[248,1487,329],{"class":254},[248,1489,1491],{"class":250,"line":1490},48,[248,1492,335],{"class":254},[169,1494,1496],{"id":1495},"example-embed-card-storage","Example (Embed card storage)",[153,1498,1499],{},"Embed card storage into your mobile app or frameworks like React, Angular or Vue.",[239,1501,1503],{"className":241,"code":1502,"language":243,"meta":244,"style":244},"{\n  \"type\": \"STORE_CARD\",\n\n  \"item\": {\n    \"title\": \"Save your card\"\n  },\n\n  \"customization\": {\n    \"button_text\": \"Save card\", \u002F\u002F [optional]\n    \"type\": \"EMBED\", \u002F\u002F show embedded screen that can be displayed in an 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 'card.cancelled' message\n    \"brand\": {\n      \"primary\": \"#00DC82\", \u002F\u002F brand according to your app\n      \"secondary\": \"#CCCCCC\"\n    }\n  }\n}\n",[160,1504,1505,1509,1527,1531,1543,1559,1563,1567,1579,1599,1621,1636,1648,1669,1685,1689,1693],{"__ignoreMap":244},[248,1506,1507],{"class":250,"line":251},[248,1508,255],{"class":254},[248,1510,1511,1513,1515,1517,1519,1521,1523,1525],{"class":250,"line":258},[248,1512,261],{"class":254},[248,1514,265],{"class":264},[248,1516,268],{"class":254},[248,1518,271],{"class":254},[248,1520,274],{"class":254},[248,1522,278],{"class":277},[248,1524,268],{"class":254},[248,1526,283],{"class":254},[248,1528,1529],{"class":250,"line":286},[248,1530,378],{"emptyLinePlaceholder":377},[248,1532,1533,1535,1537,1539,1541],{"class":250,"line":301},[248,1534,261],{"class":254},[248,1536,291],{"class":264},[248,1538,268],{"class":254},[248,1540,271],{"class":254},[248,1542,298],{"class":254},[248,1544,1545,1547,1549,1551,1553,1555,1557],{"class":250,"line":326},[248,1546,304],{"class":254},[248,1548,308],{"class":307},[248,1550,268],{"class":254},[248,1552,271],{"class":254},[248,1554,274],{"class":254},[248,1556,317],{"class":277},[248,1558,638],{"class":254},[248,1560,1561],{"class":250,"line":332},[248,1562,439],{"class":254},[248,1564,1565],{"class":250,"line":436},[248,1566,378],{"emptyLinePlaceholder":377},[248,1568,1569,1571,1573,1575,1577],{"class":250,"line":442},[248,1570,261],{"class":254},[248,1572,1329],{"class":264},[248,1574,268],{"class":254},[248,1576,271],{"class":254},[248,1578,298],{"class":254},[248,1580,1581,1583,1585,1587,1589,1591,1593,1595,1597],{"class":250,"line":447},[248,1582,304],{"class":254},[248,1584,1343],{"class":307},[248,1586,268],{"class":254},[248,1588,271],{"class":254},[248,1590,274],{"class":254},[248,1592,1352],{"class":277},[248,1594,268],{"class":254},[248,1596,410],{"class":254},[248,1598,433],{"class":322},[248,1600,1601,1603,1605,1607,1609,1611,1614,1616,1618],{"class":250,"line":461},[248,1602,304],{"class":254},[248,1604,265],{"class":307},[248,1606,268],{"class":254},[248,1608,271],{"class":254},[248,1610,274],{"class":254},[248,1612,1613],{"class":277},"EMBED",[248,1615,268],{"class":254},[248,1617,410],{"class":254},[248,1619,1620],{"class":322}," \u002F\u002F show embedded screen that can be displayed in an iFrame or WebView, this will also send message events instead of a redirect\n",[248,1622,1623,1625,1627,1629,1631,1633],{"class":250,"line":485},[248,1624,304],{"class":254},[248,1626,1390],{"class":307},[248,1628,268],{"class":254},[248,1630,271],{"class":254},[248,1632,1044],{"class":254},[248,1634,1635],{"class":322}," \u002F\u002F hide the cancel button, if true will trigger a 'card.cancelled' message\n",[248,1637,1638,1640,1642,1644,1646],{"class":250,"line":503},[248,1639,304],{"class":254},[248,1641,1429],{"class":307},[248,1643,268],{"class":254},[248,1645,271],{"class":254},[248,1647,298],{"class":254},[248,1649,1650,1652,1654,1656,1658,1660,1662,1664,1666],{"class":250,"line":508},[248,1651,1441],{"class":254},[248,1653,1444],{"class":1061},[248,1655,268],{"class":254},[248,1657,271],{"class":254},[248,1659,274],{"class":254},[248,1661,1453],{"class":277},[248,1663,268],{"class":254},[248,1665,410],{"class":254},[248,1667,1668],{"class":322}," \u002F\u002F brand according to your app\n",[248,1670,1671,1673,1675,1677,1679,1681,1683],{"class":250,"line":513},[248,1672,1441],{"class":254},[248,1674,1465],{"class":1061},[248,1676,268],{"class":254},[248,1678,271],{"class":254},[248,1680,274],{"class":254},[248,1682,1474],{"class":277},[248,1684,638],{"class":254},[248,1686,1687],{"class":250,"line":527},[248,1688,1482],{"class":254},[248,1690,1691],{"class":250,"line":551},[248,1692,329],{"class":254},[248,1694,1695],{"class":250,"line":573},[248,1696,335],{"class":254},[153,1698,1699],{},"The following message events will be sent to your app via a native bridge; use them to drive the next action:",[1701,1702,1703,1709,1714,1719,1724,1729],"ul",{},[1704,1705,1706],"li",{},[160,1707,1708],{},"card.loaded",[1704,1710,1711],{},[160,1712,1713],{},"card.cancelled",[1704,1715,1716],{},[160,1717,1718],{},"card.failed",[1704,1720,1721],{},[160,1722,1723],{},"card.stored",[1704,1725,1726],{},[160,1727,1728],{},"card.pending",[1704,1730,1731],{},[160,1732,1733],{},"card.closed",[153,1735,1736,1737,1739],{},"The following data will be sent in the message on ",[160,1738,1723],{}," events to verify the stored card:",[239,1741,1743],{"className":241,"code":1742,"language":243,"meta":244,"style":244},"{\n  \"source\": \"kwik-payments\",\n  \"event\": \"card.stored\",\n  \"sessionId\": \"ses_abc123...\",\n  \"customerId\": \"cus_abc123...\",\n  \"cardId\": \"crd_abc123...\",\n  \"transactionId\": \"tra_abc123...\",\n  \"status\": \"ACTIVE\"\n}\n",[160,1744,1745,1749,1769,1788,1808,1827,1847,1867,1885],{"__ignoreMap":244},[248,1746,1747],{"class":250,"line":251},[248,1748,255],{"class":254},[248,1750,1751,1753,1756,1758,1760,1762,1765,1767],{"class":250,"line":258},[248,1752,261],{"class":254},[248,1754,1755],{"class":264},"source",[248,1757,268],{"class":254},[248,1759,271],{"class":254},[248,1761,274],{"class":254},[248,1763,1764],{"class":277},"kwik-payments",[248,1766,268],{"class":254},[248,1768,283],{"class":254},[248,1770,1771,1773,1776,1778,1780,1782,1784,1786],{"class":250,"line":286},[248,1772,261],{"class":254},[248,1774,1775],{"class":264},"event",[248,1777,268],{"class":254},[248,1779,271],{"class":254},[248,1781,274],{"class":254},[248,1783,1723],{"class":277},[248,1785,268],{"class":254},[248,1787,283],{"class":254},[248,1789,1790,1792,1795,1797,1799,1801,1804,1806],{"class":250,"line":301},[248,1791,261],{"class":254},[248,1793,1794],{"class":264},"sessionId",[248,1796,268],{"class":254},[248,1798,271],{"class":254},[248,1800,274],{"class":254},[248,1802,1803],{"class":277},"ses_abc123...",[248,1805,268],{"class":254},[248,1807,283],{"class":254},[248,1809,1810,1812,1815,1817,1819,1821,1823,1825],{"class":250,"line":326},[248,1811,261],{"class":254},[248,1813,1814],{"class":264},"customerId",[248,1816,268],{"class":254},[248,1818,271],{"class":254},[248,1820,274],{"class":254},[248,1822,227],{"class":277},[248,1824,268],{"class":254},[248,1826,283],{"class":254},[248,1828,1829,1831,1834,1836,1838,1840,1843,1845],{"class":250,"line":332},[248,1830,261],{"class":254},[248,1832,1833],{"class":264},"cardId",[248,1835,268],{"class":254},[248,1837,271],{"class":254},[248,1839,274],{"class":254},[248,1841,1842],{"class":277},"crd_abc123...",[248,1844,268],{"class":254},[248,1846,283],{"class":254},[248,1848,1849,1851,1854,1856,1858,1860,1863,1865],{"class":250,"line":436},[248,1850,261],{"class":254},[248,1852,1853],{"class":264},"transactionId",[248,1855,268],{"class":254},[248,1857,271],{"class":254},[248,1859,274],{"class":254},[248,1861,1862],{"class":277},"tra_abc123...",[248,1864,268],{"class":254},[248,1866,283],{"class":254},[248,1868,1869,1871,1874,1876,1878,1880,1883],{"class":250,"line":442},[248,1870,261],{"class":254},[248,1872,1873],{"class":264},"status",[248,1875,268],{"class":254},[248,1877,271],{"class":254},[248,1879,274],{"class":254},[248,1881,1882],{"class":277},"ACTIVE",[248,1884,638],{"class":254},[248,1886,1887],{"class":250,"line":447},[248,1888,335],{"class":254},[153,1890,1736,1891,1893],{},[160,1892,1718],{}," events:",[239,1895,1897],{"className":241,"code":1896,"language":243,"meta":244,"style":244},"{\n  \"source\": \"kwik-payments\",\n  \"event\": \"card.failed\",\n  \"sessionId\": \"ses_abc123...\",\n  \"customerId\": \"cus_abc123...\",\n  \"transactionId\": \"tra_abc123...\",\n  \"status\": \"DECLINED\",\n  \"message\": \"Your card could not be verified due to insufficient funds\"\n}\n",[160,1898,1899,1903,1921,1939,1957,1975,1993,2012,2030],{"__ignoreMap":244},[248,1900,1901],{"class":250,"line":251},[248,1902,255],{"class":254},[248,1904,1905,1907,1909,1911,1913,1915,1917,1919],{"class":250,"line":258},[248,1906,261],{"class":254},[248,1908,1755],{"class":264},[248,1910,268],{"class":254},[248,1912,271],{"class":254},[248,1914,274],{"class":254},[248,1916,1764],{"class":277},[248,1918,268],{"class":254},[248,1920,283],{"class":254},[248,1922,1923,1925,1927,1929,1931,1933,1935,1937],{"class":250,"line":286},[248,1924,261],{"class":254},[248,1926,1775],{"class":264},[248,1928,268],{"class":254},[248,1930,271],{"class":254},[248,1932,274],{"class":254},[248,1934,1718],{"class":277},[248,1936,268],{"class":254},[248,1938,283],{"class":254},[248,1940,1941,1943,1945,1947,1949,1951,1953,1955],{"class":250,"line":301},[248,1942,261],{"class":254},[248,1944,1794],{"class":264},[248,1946,268],{"class":254},[248,1948,271],{"class":254},[248,1950,274],{"class":254},[248,1952,1803],{"class":277},[248,1954,268],{"class":254},[248,1956,283],{"class":254},[248,1958,1959,1961,1963,1965,1967,1969,1971,1973],{"class":250,"line":326},[248,1960,261],{"class":254},[248,1962,1814],{"class":264},[248,1964,268],{"class":254},[248,1966,271],{"class":254},[248,1968,274],{"class":254},[248,1970,227],{"class":277},[248,1972,268],{"class":254},[248,1974,283],{"class":254},[248,1976,1977,1979,1981,1983,1985,1987,1989,1991],{"class":250,"line":332},[248,1978,261],{"class":254},[248,1980,1853],{"class":264},[248,1982,268],{"class":254},[248,1984,271],{"class":254},[248,1986,274],{"class":254},[248,1988,1862],{"class":277},[248,1990,268],{"class":254},[248,1992,283],{"class":254},[248,1994,1995,1997,1999,2001,2003,2005,2008,2010],{"class":250,"line":436},[248,1996,261],{"class":254},[248,1998,1873],{"class":264},[248,2000,268],{"class":254},[248,2002,271],{"class":254},[248,2004,274],{"class":254},[248,2006,2007],{"class":277},"DECLINED",[248,2009,268],{"class":254},[248,2011,283],{"class":254},[248,2013,2014,2016,2019,2021,2023,2025,2028],{"class":250,"line":442},[248,2015,261],{"class":254},[248,2017,2018],{"class":264},"message",[248,2020,268],{"class":254},[248,2022,271],{"class":254},[248,2024,274],{"class":254},[248,2026,2027],{"class":277},"Your card could not be verified due to insufficient funds",[248,2029,638],{"class":254},[248,2031,2032],{"class":250,"line":447},[248,2033,335],{"class":254},[169,2035,2037],{"id":2036},"request-parameters","Request Parameters",[153,2039,2040,2041,2045,2046,2050,2051,2054,2055,658],{},"Fields below appear in the ",[221,2042,2044],{"href":2043},"#example-basic","request body examples"," on this page. ",[2047,2048,2049],"strong",{},"Y"," = required for all requests, ",[2047,2052,2053],{},"C"," = required or applicable depending on ",[160,2056,265],{},[183,2058,2059,2082],{},[186,2060,2061],{},[189,2062,2063,2070,2073,2075,2080],{},[192,2064,2065],{"align":194},[2066,2067,2069],"div",{"style":2068},"width:100px","Field",[192,2071,2072],{"align":194},"Required",[192,2074,198],{"align":194},[192,2076,2077],{"align":194},[2066,2078,201],{"style":2079},"width:300px",[192,2081,204],{"align":194},[206,2083,2084,2106,2121,2136,2151,2168,2194,2216,2233,2258,2276,2295,2311,2327,2340,2357,2375,2396,2413,2428,2443,2459,2473,2487,2512,2526,2540],{},[189,2085,2086,2088,2090,2093,2102],{},[211,2087,265],{"align":194},[211,2089,2049],{"align":194},[211,2091,2092],{"align":194},"ENUM",[211,2094,2095,2096,2098,2099,2101],{"align":194},"Vault mode: ",[160,2097,278],{}," (store a new card) or ",[160,2100,682],{}," (view, add, remove, set default, reorder stored cards)",[211,2103,2104],{"align":194},[160,2105,278],{},[189,2107,2108,2110,2112,2115,2118],{},[211,2109,291],{"align":194},[211,2111,2049],{"align":194},[211,2113,2114],{"align":194},"Object",[211,2116,2117],{"align":194},"Payer-facing details for the vault page",[211,2119,2120],{"align":194},"See basic example",[189,2122,2123,2126,2128,2131,2134],{},[211,2124,2125],{"align":194},"item.title",[211,2127,2049],{"align":194},[211,2129,2130],{"align":194},"String",[211,2132,2133],{"align":194},"Title shown on the vault page and payer statement",[211,2135,317],{"align":194},[189,2137,2138,2141,2144,2146,2149],{},[211,2139,2140],{"align":194},"item.description",[211,2142,2143],{"align":194},"N",[211,2145,2130],{"align":194},[211,2147,2148],{"align":194},"Optional longer description shown on the vault page",[211,2150,1002],{"align":194},[189,2152,2153,2155,2157,2159,2165],{},[211,2154,1024],{"align":194},[211,2156,2143],{"align":194},[211,2158,2114],{"align":194},[211,2160,2161,2162,2164],{"align":194},"Placement of the newly stored card in the customer's cascade order (",[160,2163,278],{}," only)",[211,2166,2167],{"align":194},"See advanced example",[189,2169,2170,2173,2175,2178,2192],{},[211,2171,2172],{"align":194},"card.is_default",[211,2174,2143],{"align":194},[211,2176,2177],{"align":194},"Boolean",[211,2179,2180,2181,2184,2185,2188,2189,2191],{"align":194},"Make the new card the customer's default. Defaults to ",[160,2182,2183],{},"true"," for the customer's first card, ",[160,2186,2187],{},"false"," otherwise. When ",[160,2190,2183],{},", the existing default is demoted",[211,2193,2187],{"align":194},[189,2195,2196,2199,2201,2204,2213],{},[211,2197,2198],{"align":194},"card.priority",[211,2200,2143],{"align":194},[211,2202,2203],{"align":194},"Integer",[211,2205,2206,2207,2209,2210,2212],{"align":194},"Explicit fallback position among non-default cards; ignored when ",[160,2208,1037],{}," is ",[160,2211,2183],{},". Defaults to the end of the cascade order",[211,2214,2215],{"align":194},"2",[189,2217,2218,2220,2222,2224,2231],{},[211,2219,162],{"align":194},[211,2221,2143],{"align":194},[211,2223,2130],{"align":194},[211,2225,2226,2227,2230],{"align":194},"One-time fee charged with the 3DS verification when the card is stored. Defaults to ",[160,2228,2229],{},"2.00"," (an amount is required for 3DS authentication)",[211,2232,475],{"align":194},[189,2234,2235,2238,2240,2242,2256],{},[211,2236,2237],{"align":194},"fee.is_refund",[211,2239,2143],{"align":194},[211,2241,2177],{"align":194},[211,2243,2244,2245,2247,2248,2250,2251,2253,2254],{"align":194},"When ",[160,2246,2183],{},", the default ",[160,2249,166],{}," verification amount is automatically reversed after successful storage. Ignored when a custom ",[160,2252,162],{}," is set. Default ",[160,2255,2187],{},[211,2257,2187],{"align":194},[189,2259,2260,2262,2264,2266,2273],{},[211,2261,734],{"align":194},[211,2263,2053],{"align":194},[211,2265,2114],{"align":194},[211,2267,2268,2269,2209,2271],{"align":194},"Payer permissions when ",[160,2270,265],{},[160,2272,682],{},[211,2274,2275],{"align":194},"See manage example",[189,2277,2278,2281,2283,2285,2293],{},[211,2279,2280],{"align":194},"manage.is_allow_add",[211,2282,2143],{"align":194},[211,2284,2177],{"align":194},[211,2286,2287,2288,2290,2291],{"align":194},"Payer can add a new card; runs the ",[160,2289,166],{}," \u002F fee 3DS flow. Default ",[160,2292,2183],{},[211,2294,2183],{"align":194},[189,2296,2297,2300,2302,2304,2309],{},[211,2298,2299],{"align":194},"manage.is_allow_remove",[211,2301,2143],{"align":194},[211,2303,2177],{"align":194},[211,2305,2306,2307],{"align":194},"Payer can remove stored cards; removing the default promotes the next card by priority. Default ",[160,2308,2183],{},[211,2310,2183],{"align":194},[189,2312,2313,2316,2318,2320,2325],{},[211,2314,2315],{"align":194},"manage.is_allow_set_default",[211,2317,2143],{"align":194},[211,2319,2177],{"align":194},[211,2321,2322,2323],{"align":194},"Payer can choose their default card and reorder fallbacks. Default ",[160,2324,2183],{},[211,2326,2183],{"align":194},[189,2328,2329,2331,2333,2335,2338],{},[211,2330,937],{"align":194},[211,2332,2143],{"align":194},[211,2334,2130],{"align":194},[211,2336,2337],{"align":194},"Optional passphrase signature for verifying the payload",[211,2339,946],{"align":194},[189,2341,2342,2345,2347,2349,2352],{},[211,2343,2344],{"align":194},"notification.email",[211,2346,2143],{"align":194},[211,2348,2130],{"align":194},[211,2350,2351],{"align":194},"Email address to notify when a card is stored",[211,2353,2354],{"align":194},[221,2355,541],{"href":2356},"mailto:me@my-email.co.za",[189,2358,2359,2362,2364,2366,2369],{},[211,2360,2361],{"align":194},"notification.webhook_url",[211,2363,2143],{"align":194},[211,2365,2130],{"align":194},[211,2367,2368],{"align":194},"Webhook URL for card vault events",[211,2370,2371],{"align":194},[221,2372,565],{"href":565,"rel":2373},[2374],"nofollow",[189,2376,2377,2380,2382,2384,2391],{},[211,2378,2379],{"align":194},"redirects.success_url",[211,2381,2143],{"align":194},[211,2383,2130],{"align":194},[211,2385,2386,2387,2390],{"align":194},"Redirect after the card is stored or changes are saved; ",[160,2388,2389],{},"&signature="," appended if configured",[211,2392,2393],{"align":194},[221,2394,611],{"href":611,"rel":2395},[2374],[189,2397,2398,2401,2403,2405,2408],{},[211,2399,2400],{"align":194},"redirects.cancel_url",[211,2402,2143],{"align":194},[211,2404,2130],{"align":194},[211,2406,2407],{"align":194},"Redirect if the payer cancels",[211,2409,2410],{"align":194},[221,2411,635],{"href":635,"rel":2412},[2374],[189,2414,2415,2418,2420,2422,2425],{},[211,2416,2417],{"align":194},"settings.expiry_time",[211,2419,2143],{"align":194},[211,2421,2203],{"align":194},[211,2423,2424],{"align":194},"Link lifetime in minutes; omit so the link does not expire (default)",[211,2426,2427],{"align":194},"1440",[189,2429,2430,2433,2435,2437,2440],{},[211,2431,2432],{"align":194},"settings.max_cards",[211,2434,2143],{"align":194},[211,2436,2203],{"align":194},[211,2438,2439],{"align":194},"Cap on stored cards for this customer; the link shows an error state when the customer is at the limit. Omit for no limit",[211,2441,2442],{"align":194},"3",[189,2444,2445,2448,2450,2452,2457],{},[211,2446,2447],{"align":194},"settings.is_duplicate_check",[211,2449,2143],{"align":194},[211,2451,2177],{"align":194},[211,2453,2454,2455],{"align":194},"Rejects storing a card whose PAN fingerprint already exists on this customer, preventing the same card occupying two cascade slots. Default ",[160,2456,2183],{},[211,2458,2183],{"align":194},[189,2460,2461,2464,2466,2468,2471],{},[211,2462,2463],{"align":194},"customization.button_text",[211,2465,2143],{"align":194},[211,2467,2130],{"align":194},[211,2469,2470],{"align":194},"Primary action button label",[211,2472,1352],{"align":194},[189,2474,2475,2478,2480,2482,2485],{},[211,2476,2477],{"align":194},"customization.confirmation_message",[211,2479,2143],{"align":194},[211,2481,2130],{"align":194},[211,2483,2484],{"align":194},"Message after successful storage; otherwise use redirects",[211,2486,1414],{"align":194},[189,2488,2489,2492,2494,2496,2508],{},[211,2490,2491],{"align":194},"customization.type",[211,2493,2143],{"align":194},[211,2495,2092],{"align":194},[211,2497,2498,2499,2501,2502,2504,2505,2507],{"align":194},"Create a link for a ",[160,2500,1375],{}," or pass through ",[160,2503,1613],{}," for iframe or in-app card storage. The ",[160,2506,1613],{}," type pages will not redirect you but transmit a message via the window postMessage() method",[211,2509,2510],{"align":194},[160,2511,1375],{},[189,2513,2514,2517,2519,2521,2524],{},[211,2515,2516],{"align":194},"customization.is_display_cancel_button",[211,2518,2143],{"align":194},[211,2520,2177],{"align":194},[211,2522,2523],{"align":194},"Show cancel control",[211,2525,2183],{"align":194},[189,2527,2528,2531,2533,2535,2538],{},[211,2529,2530],{"align":194},"customization.brand.primary",[211,2532,2143],{"align":194},[211,2534,2130],{"align":194},[211,2536,2537],{"align":194},"Primary hex colour",[211,2539,1453],{"align":194},[189,2541,2542,2545,2547,2549,2552],{},[211,2543,2544],{"align":194},"customization.brand.secondary",[211,2546,2143],{"align":194},[211,2548,2130],{"align":194},[211,2550,2551],{"align":194},"Secondary hex colour",[211,2553,1474],{"align":194},[169,2555,2557],{"id":2556},"response-body","Response Body",[239,2559,2561],{"className":241,"code":2560,"language":243,"meta":244,"style":244},"{\n    \"status\": true,\n    \"result\": {\n      \"id\": \"cdl_HVpCeoNys1f22X7QcuWHY\",\n      \"session_id\": \"ses_G-xkVKoxHgEBrY8suKgR3\",\n      \"customer_id\": \"cus_abc123...\",\n      \"type\": \"STORE_CARD\",\n      \"fee_amount\": \"2.00\",\n      \"currency\": \"ZAR\",\n      \"link_url\": \"https:\u002F\u002Fpay.kwik.co.za\u002Fcard-vault\u002Fcs_test_a1b2c3\",\n      \"expires_at\": \"2026-07-06T12:30:00Z\"\n    }\n}\n",[160,2562,2563,2567,2579,2592,2612,2632,2650,2668,2687,2707,2727,2745,2749],{"__ignoreMap":244},[248,2564,2565],{"class":250,"line":251},[248,2566,255],{"class":254},[248,2568,2569,2571,2573,2575,2577],{"class":250,"line":258},[248,2570,304],{"class":254},[248,2572,1873],{"class":264},[248,2574,268],{"class":254},[248,2576,271],{"class":254},[248,2578,1397],{"class":254},[248,2580,2581,2583,2586,2588,2590],{"class":250,"line":286},[248,2582,304],{"class":254},[248,2584,2585],{"class":264},"result",[248,2587,268],{"class":254},[248,2589,271],{"class":254},[248,2591,298],{"class":254},[248,2593,2594,2596,2599,2601,2603,2605,2608,2610],{"class":250,"line":301},[248,2595,1441],{"class":254},[248,2597,2598],{"class":307},"id",[248,2600,268],{"class":254},[248,2602,271],{"class":254},[248,2604,274],{"class":254},[248,2606,2607],{"class":277},"cdl_HVpCeoNys1f22X7QcuWHY",[248,2609,268],{"class":254},[248,2611,283],{"class":254},[248,2613,2614,2616,2619,2621,2623,2625,2628,2630],{"class":250,"line":326},[248,2615,1441],{"class":254},[248,2617,2618],{"class":307},"session_id",[248,2620,268],{"class":254},[248,2622,271],{"class":254},[248,2624,274],{"class":254},[248,2626,2627],{"class":277},"ses_G-xkVKoxHgEBrY8suKgR3",[248,2629,268],{"class":254},[248,2631,283],{"class":254},[248,2633,2634,2636,2638,2640,2642,2644,2646,2648],{"class":250,"line":332},[248,2635,1441],{"class":254},[248,2637,213],{"class":307},[248,2639,268],{"class":254},[248,2641,271],{"class":254},[248,2643,274],{"class":254},[248,2645,227],{"class":277},[248,2647,268],{"class":254},[248,2649,283],{"class":254},[248,2651,2652,2654,2656,2658,2660,2662,2664,2666],{"class":250,"line":436},[248,2653,1441],{"class":254},[248,2655,265],{"class":307},[248,2657,268],{"class":254},[248,2659,271],{"class":254},[248,2661,274],{"class":254},[248,2663,278],{"class":277},[248,2665,268],{"class":254},[248,2667,283],{"class":254},[248,2669,2670,2672,2675,2677,2679,2681,2683,2685],{"class":250,"line":442},[248,2671,1441],{"class":254},[248,2673,2674],{"class":307},"fee_amount",[248,2676,268],{"class":254},[248,2678,271],{"class":254},[248,2680,274],{"class":254},[248,2682,2229],{"class":277},[248,2684,268],{"class":254},[248,2686,283],{"class":254},[248,2688,2689,2691,2694,2696,2698,2700,2703,2705],{"class":250,"line":447},[248,2690,1441],{"class":254},[248,2692,2693],{"class":307},"currency",[248,2695,268],{"class":254},[248,2697,271],{"class":254},[248,2699,274],{"class":254},[248,2701,2702],{"class":277},"ZAR",[248,2704,268],{"class":254},[248,2706,283],{"class":254},[248,2708,2709,2711,2714,2716,2718,2720,2723,2725],{"class":250,"line":461},[248,2710,1441],{"class":254},[248,2712,2713],{"class":307},"link_url",[248,2715,268],{"class":254},[248,2717,271],{"class":254},[248,2719,274],{"class":254},[248,2721,2722],{"class":277},"https:\u002F\u002Fpay.kwik.co.za\u002Fcard-vault\u002Fcs_test_a1b2c3",[248,2724,268],{"class":254},[248,2726,283],{"class":254},[248,2728,2729,2731,2734,2736,2738,2740,2743],{"class":250,"line":485},[248,2730,1441],{"class":254},[248,2732,2733],{"class":307},"expires_at",[248,2735,268],{"class":254},[248,2737,271],{"class":254},[248,2739,274],{"class":254},[248,2741,2742],{"class":277},"2026-07-06T12:30:00Z",[248,2744,638],{"class":254},[248,2746,2747],{"class":250,"line":503},[248,2748,1482],{"class":254},[248,2750,2751],{"class":250,"line":508},[248,2752,335],{"class":254},[169,2754,2756],{"id":2755},"response-parameters","Response Parameters",[183,2758,2759,2775],{},[186,2760,2761],{},[189,2762,2763,2767,2769,2773],{},[192,2764,2765],{"align":194},[2066,2766,2069],{"style":2068},[192,2768,198],{"align":194},[192,2770,2771],{"align":194},[2066,2772,201],{"style":2079},[192,2774,204],{"align":194},[206,2776,2777,2788,2800,2812,2824,2838,2850,2871,2886],{},[189,2778,2779,2781,2783,2786],{},[211,2780,1873],{"align":194},[211,2782,2177],{"align":194},[211,2784,2785],{"align":194},"Whether the request succeeded",[211,2787,2183],{"align":194},[189,2789,2790,2793,2795,2798],{},[211,2791,2792],{"align":194},"result.id",[211,2794,216],{"align":194},[211,2796,2797],{"align":194},"Unique card vault link identifier",[211,2799,2607],{"align":194},[189,2801,2802,2805,2807,2810],{},[211,2803,2804],{"align":194},"result.session_id",[211,2806,216],{"align":194},[211,2808,2809],{"align":194},"Session identifier for the vault link",[211,2811,2627],{"align":194},[189,2813,2814,2817,2819,2822],{},[211,2815,2816],{"align":194},"result.customer_id",[211,2818,216],{"align":194},[211,2820,2821],{"align":194},"Associated customer ID",[211,2823,227],{"align":194},[189,2825,2826,2829,2831,2834],{},[211,2827,2828],{"align":194},"result.type",[211,2830,2092],{"align":194},[211,2832,2833],{"align":194},"Vault mode for this link",[211,2835,2836],{"align":194},[160,2837,278],{},[189,2839,2840,2843,2845,2848],{},[211,2841,2842],{"align":194},"result.fee_amount",[211,2844,2130],{"align":194},[211,2846,2847],{"align":194},"Fee or verification amount charged when the card is stored",[211,2849,2229],{"align":194},[189,2851,2852,2855,2858,2867],{},[211,2853,2854],{"align":194},"result.currency",[211,2856,2857],{"align":194},"String(3)",[211,2859,2860,2866],{"align":194},[221,2861,2865],{"href":2862,"rel":2863,":target":2864},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_4217",[2374],"_blank","ISO 4217"," currency code",[211,2868,2869],{"align":194},[160,2870,2702],{},[189,2872,2873,2876,2878,2881],{},[211,2874,2875],{"align":194},"result.link_url",[211,2877,2130],{"align":194},[211,2879,2880],{"align":194},"URL to redirect the payer to store or manage cards",[211,2882,2883],{"align":194},[221,2884,2722],{"href":2722,"rel":2885},[2374],[189,2887,2888,2891,2893,2900],{},[211,2889,2890],{"align":194},"result.expires_at",[211,2892,2130],{"align":194},[211,2894,2895,2896,2899],{"align":194},"ISO timestamp when the vault link expires; ",[160,2897,2898],{},"null"," when the link does not expire",[211,2901,2742],{"align":194},[148,2903,2905],{"id":2904},"signature-creation","Signature creation",[153,2907,2908,2909,2911,2912,2916],{},"When creating API keys on the dashboard you can download a passphrase key, use it to generate your signature and send it in the ",[160,2910,937],{}," parameter. The canonicalization and HMAC-SHA256 process is identical across all endpoints — see ",[221,2913,2915],{"href":2914},"\u002Fv2\u002Fmoney-in\u002Fcheckout-link#signature-creation","Checkout Link — Signature creation"," for Node.js, PHP, C#, Java, and Python examples.",[148,2918,2920],{"id":2919},"webhook","Webhook",[153,2922,2923,2924,2926],{},"When a card is stored, fails verification, is removed, or the customer's card order changes, a webhook may be delivered to ",[160,2925,2361],{}," when that field was supplied on create. Broader platform webhooks are configured separately if applicable.",[153,2928,2929,2930,2932,2933,2935,2936,2935,2938,2941,2942,658],{},"Possible ",[160,2931,1775],{}," values include ",[160,2934,1723],{},", ",[160,2937,1718],{},[160,2939,2940],{},"card.removed",", and others listed under ",[221,2943,2945],{"href":2944},"#webhook-events","Webhook events",[169,2947,2949],{"id":2948},"webhook-payload","Webhook Payload",[239,2951,2953],{"className":241,"code":2952,"language":243,"meta":244,"style":244},"{\n  \u002F\u002F card.stored · card.failed · card.removed · card.default_changed · card.reordered · card.link_expired\n  \"event\": \"card.stored\",\n  \"data\": [\n    {\n      \"card\": {\n        \"id\": \"crd_SFq2E9LskQimPkf2mRqnV\",\n        \"customer_id\": \"cus_abc123...\",\n        \"session_id\": \"ses_G-xkVKoxHgEBrY8suKgR3\",\n        \"brand\": \"VISA\",\n        \"last_four\": \"4242\",\n        \"expiry_month\": \"09\",\n        \"expiry_year\": \"2029\",\n        \"holder\": \"J DOE\",\n        \"card_status\": \"ACTIVE\",\n        \"is_default\": false,\n        \"priority\": 2,\n        \"fee_amount\": \"2.00\",\n        \"fee_transaction_id\": \"tra_pr6CvR_4pvWwmgQ4y3dtY\", \u002F\u002F 3DS verification \u002F fee transaction (the card's CIT anchor for card-on-file charges)\n        \"created_at\": \"2026-07-06T10:15:30Z\"\n      }\n    }\n  ],\n  \"created_at\": \"2026-07-06T10:15:30Z\"\n}\n",[160,2954,2955,2959,2964,2982,2996,3001,3013,3033,3051,3069,3088,3108,3128,3148,3168,3187,3200,3214,3232,3255,3273,3278,3282,3287,3303],{"__ignoreMap":244},[248,2956,2957],{"class":250,"line":251},[248,2958,255],{"class":254},[248,2960,2961],{"class":250,"line":258},[248,2962,2963],{"class":322},"  \u002F\u002F card.stored · card.failed · card.removed · card.default_changed · card.reordered · card.link_expired\n",[248,2965,2966,2968,2970,2972,2974,2976,2978,2980],{"class":250,"line":286},[248,2967,261],{"class":254},[248,2969,1775],{"class":264},[248,2971,268],{"class":254},[248,2973,271],{"class":254},[248,2975,274],{"class":254},[248,2977,1723],{"class":277},[248,2979,268],{"class":254},[248,2981,283],{"class":254},[248,2983,2984,2986,2989,2991,2993],{"class":250,"line":301},[248,2985,261],{"class":254},[248,2987,2988],{"class":264},"data",[248,2990,268],{"class":254},[248,2992,271],{"class":254},[248,2994,2995],{"class":254}," [\n",[248,2997,2998],{"class":250,"line":326},[248,2999,3000],{"class":254},"    {\n",[248,3002,3003,3005,3007,3009,3011],{"class":250,"line":332},[248,3004,1441],{"class":254},[248,3006,1024],{"class":307},[248,3008,268],{"class":254},[248,3010,271],{"class":254},[248,3012,298],{"class":254},[248,3014,3015,3018,3020,3022,3024,3026,3029,3031],{"class":250,"line":436},[248,3016,3017],{"class":254},"        \"",[248,3019,2598],{"class":1061},[248,3021,268],{"class":254},[248,3023,271],{"class":254},[248,3025,274],{"class":254},[248,3027,3028],{"class":277},"crd_SFq2E9LskQimPkf2mRqnV",[248,3030,268],{"class":254},[248,3032,283],{"class":254},[248,3034,3035,3037,3039,3041,3043,3045,3047,3049],{"class":250,"line":442},[248,3036,3017],{"class":254},[248,3038,213],{"class":1061},[248,3040,268],{"class":254},[248,3042,271],{"class":254},[248,3044,274],{"class":254},[248,3046,227],{"class":277},[248,3048,268],{"class":254},[248,3050,283],{"class":254},[248,3052,3053,3055,3057,3059,3061,3063,3065,3067],{"class":250,"line":447},[248,3054,3017],{"class":254},[248,3056,2618],{"class":1061},[248,3058,268],{"class":254},[248,3060,271],{"class":254},[248,3062,274],{"class":254},[248,3064,2627],{"class":277},[248,3066,268],{"class":254},[248,3068,283],{"class":254},[248,3070,3071,3073,3075,3077,3079,3081,3084,3086],{"class":250,"line":461},[248,3072,3017],{"class":254},[248,3074,1429],{"class":1061},[248,3076,268],{"class":254},[248,3078,271],{"class":254},[248,3080,274],{"class":254},[248,3082,3083],{"class":277},"VISA",[248,3085,268],{"class":254},[248,3087,283],{"class":254},[248,3089,3090,3092,3095,3097,3099,3101,3104,3106],{"class":250,"line":485},[248,3091,3017],{"class":254},[248,3093,3094],{"class":1061},"last_four",[248,3096,268],{"class":254},[248,3098,271],{"class":254},[248,3100,274],{"class":254},[248,3102,3103],{"class":277},"4242",[248,3105,268],{"class":254},[248,3107,283],{"class":254},[248,3109,3110,3112,3115,3117,3119,3121,3124,3126],{"class":250,"line":503},[248,3111,3017],{"class":254},[248,3113,3114],{"class":1061},"expiry_month",[248,3116,268],{"class":254},[248,3118,271],{"class":254},[248,3120,274],{"class":254},[248,3122,3123],{"class":277},"09",[248,3125,268],{"class":254},[248,3127,283],{"class":254},[248,3129,3130,3132,3135,3137,3139,3141,3144,3146],{"class":250,"line":508},[248,3131,3017],{"class":254},[248,3133,3134],{"class":1061},"expiry_year",[248,3136,268],{"class":254},[248,3138,271],{"class":254},[248,3140,274],{"class":254},[248,3142,3143],{"class":277},"2029",[248,3145,268],{"class":254},[248,3147,283],{"class":254},[248,3149,3150,3152,3155,3157,3159,3161,3164,3166],{"class":250,"line":513},[248,3151,3017],{"class":254},[248,3153,3154],{"class":1061},"holder",[248,3156,268],{"class":254},[248,3158,271],{"class":254},[248,3160,274],{"class":254},[248,3162,3163],{"class":277},"J DOE",[248,3165,268],{"class":254},[248,3167,283],{"class":254},[248,3169,3170,3172,3175,3177,3179,3181,3183,3185],{"class":250,"line":527},[248,3171,3017],{"class":254},[248,3173,3174],{"class":1061},"card_status",[248,3176,268],{"class":254},[248,3178,271],{"class":254},[248,3180,274],{"class":254},[248,3182,1882],{"class":277},[248,3184,268],{"class":254},[248,3186,283],{"class":254},[248,3188,3189,3191,3193,3195,3197],{"class":250,"line":551},[248,3190,3017],{"class":254},[248,3192,1037],{"class":1061},[248,3194,268],{"class":254},[248,3196,271],{"class":254},[248,3198,3199],{"class":254}," false,\n",[248,3201,3202,3204,3206,3208,3210,3212],{"class":250,"line":573},[248,3203,3017],{"class":254},[248,3205,1054],{"class":1061},[248,3207,268],{"class":254},[248,3209,271],{"class":254},[248,3211,1062],{"class":1061},[248,3213,283],{"class":254},[248,3215,3216,3218,3220,3222,3224,3226,3228,3230],{"class":250,"line":578},[248,3217,3017],{"class":254},[248,3219,2674],{"class":1061},[248,3221,268],{"class":254},[248,3223,271],{"class":254},[248,3225,274],{"class":254},[248,3227,2229],{"class":277},[248,3229,268],{"class":254},[248,3231,283],{"class":254},[248,3233,3234,3236,3239,3241,3243,3245,3248,3250,3252],{"class":250,"line":583},[248,3235,3017],{"class":254},[248,3237,3238],{"class":1061},"fee_transaction_id",[248,3240,268],{"class":254},[248,3242,271],{"class":254},[248,3244,274],{"class":254},[248,3246,3247],{"class":277},"tra_pr6CvR_4pvWwmgQ4y3dtY",[248,3249,268],{"class":254},[248,3251,410],{"class":254},[248,3253,3254],{"class":322}," \u002F\u002F 3DS verification \u002F fee transaction (the card's CIT anchor for card-on-file charges)\n",[248,3256,3257,3259,3262,3264,3266,3268,3271],{"class":250,"line":597},[248,3258,3017],{"class":254},[248,3260,3261],{"class":1061},"created_at",[248,3263,268],{"class":254},[248,3265,271],{"class":254},[248,3267,274],{"class":254},[248,3269,3270],{"class":277},"2026-07-06T10:15:30Z",[248,3272,638],{"class":254},[248,3274,3275],{"class":250,"line":621},[248,3276,3277],{"class":254},"      }\n",[248,3279,3280],{"class":250,"line":641},[248,3281,1482],{"class":254},[248,3283,3284],{"class":250,"line":646},[248,3285,3286],{"class":254},"  ],\n",[248,3288,3289,3291,3293,3295,3297,3299,3301],{"class":250,"line":1157},[248,3290,261],{"class":254},[248,3292,3261],{"class":264},[248,3294,268],{"class":254},[248,3296,271],{"class":254},[248,3298,274],{"class":254},[248,3300,3270],{"class":277},[248,3302,638],{"class":254},[248,3304,3305],{"class":250,"line":1174},[248,3306,335],{"class":254},[169,3308,3310],{"id":3309},"webhook-payload-parameters","Webhook Payload Parameters",[183,3312,3313,3330],{},[186,3314,3315],{},[189,3316,3317,3322,3324,3328],{},[192,3318,3319],{"align":194},[2066,3320,2069],{"style":3321},"width:120px",[192,3323,198],{"align":194},[192,3325,3326],{"align":194},[2066,3327,201],{"style":2079},[192,3329,204],{"align":194},[206,3331,3332,3343,3358,3372,3385,3399,3419,3434,3449,3463,3477,3495,3509,3523,3537,3551,3565],{},[189,3333,3334,3336,3338,3341],{},[211,3335,1775],{"align":194},[211,3337,2130],{"align":194},[211,3339,3340],{"align":194},"Type of webhook event that occurred",[211,3342,1723],{"align":194},[189,3344,3345,3347,3350,3353],{},[211,3346,2988],{"align":194},[211,3348,3349],{"align":194},"Array",[211,3351,3352],{"align":194},"Array containing card data",[211,3354,3355],{"align":194},[248,3356,3357],{},"...",[189,3359,3360,3365,3367,3370],{},[211,3361,2988,3362,3364],{"align":194},[248,3363],{},".card.id",[211,3366,216],{"align":194},[211,3368,3369],{"align":194},"Unique card identifier",[211,3371,3028],{"align":194},[189,3373,3374,3379,3381,3383],{},[211,3375,2988,3376,3378],{"align":194},[248,3377],{},".card.customer_id",[211,3380,216],{"align":194},[211,3382,2821],{"align":194},[211,3384,227],{"align":194},[189,3386,3387,3392,3394,3397],{},[211,3388,2988,3389,3391],{"align":194},[248,3390],{},".card.session_id",[211,3393,216],{"align":194},[211,3395,3396],{"align":194},"Vault link session that produced this event",[211,3398,2627],{"align":194},[189,3400,3401,3406,3408,3415],{},[211,3402,2988,3403,3405],{"align":194},[248,3404],{},".card.brand",[211,3407,2092],{"align":194},[211,3409,3410,3411],{"align":194},"Card brand, see ",[221,3412,3414],{"href":3413},"\u002Freference\u002Flookups","lookups",[211,3416,3417],{"align":194},[160,3418,3083],{},[189,3420,3421,3426,3429,3432],{},[211,3422,2988,3423,3425],{"align":194},[248,3424],{},".card.last_four",[211,3427,3428],{"align":194},"String(4)",[211,3430,3431],{"align":194},"Last four digits of the card number",[211,3433,3103],{"align":194},[189,3435,3436,3441,3444,3447],{},[211,3437,2988,3438,3440],{"align":194},[248,3439],{},".card.expiry_month",[211,3442,3443],{"align":194},"String(2)",[211,3445,3446],{"align":194},"Card expiry month",[211,3448,3123],{"align":194},[189,3450,3451,3456,3458,3461],{},[211,3452,2988,3453,3455],{"align":194},[248,3454],{},".card.expiry_year",[211,3457,3428],{"align":194},[211,3459,3460],{"align":194},"Card expiry year",[211,3462,3143],{"align":194},[189,3464,3465,3470,3472,3475],{},[211,3466,2988,3467,3469],{"align":194},[248,3468],{},".card.holder",[211,3471,2130],{"align":194},[211,3473,3474],{"align":194},"Cardholder name",[211,3476,3163],{"align":194},[189,3478,3479,3484,3486,3491],{},[211,3480,2988,3481,3483],{"align":194},[248,3482],{},".card.card_status",[211,3485,2092],{"align":194},[211,3487,3488,3489],{"align":194},"Card status, see ",[221,3490,3414],{"href":3413},[211,3492,3493],{"align":194},[160,3494,1882],{},[189,3496,3497,3502,3504,3507],{},[211,3498,2988,3499,3501],{"align":194},[248,3500],{},".card.is_default",[211,3503,2177],{"align":194},[211,3505,3506],{"align":194},"Whether this card is the customer's default",[211,3508,2187],{"align":194},[189,3510,3511,3516,3518,3521],{},[211,3512,2988,3513,3515],{"align":194},[248,3514],{},".card.priority",[211,3517,2203],{"align":194},[211,3519,3520],{"align":194},"Resolved position in the customer's cascade order",[211,3522,2215],{"align":194},[189,3524,3525,3530,3532,3535],{},[211,3526,2988,3527,3529],{"align":194},[248,3528],{},".card.fee_amount",[211,3531,2130],{"align":194},[211,3533,3534],{"align":194},"Fee or verification amount charged when the card was stored",[211,3536,2229],{"align":194},[189,3538,3539,3544,3546,3549],{},[211,3540,2988,3541,3543],{"align":194},[248,3542],{},".card.fee_transaction_id",[211,3545,2130],{"align":194},[211,3547,3548],{"align":194},"Transaction identifier of the 3DS verification \u002F fee charge",[211,3550,3247],{"align":194},[189,3552,3553,3558,3560,3563],{},[211,3554,2988,3555,3557],{"align":194},[248,3556],{},".card.created_at",[211,3559,2130],{"align":194},[211,3561,3562],{"align":194},"ISO timestamp when the card was stored",[211,3564,3270],{"align":194},[189,3566,3567,3569,3571,3574],{},[211,3568,3261],{"align":194},[211,3570,2130],{"align":194},[211,3572,3573],{"align":194},"ISO timestamp when webhook was created",[211,3575,3270],{"align":194},[169,3577,3579],{"id":3578},"webhook-events","Webhook Events",[183,3581,3582,3597],{},[186,3583,3584],{},[189,3585,3586,3589,3591,3594],{},[192,3587,3588],{"align":194},"Event",[192,3590,201],{"align":194},[192,3592,3593],{"align":194},"Trigger Condition",[192,3595,3596],{"align":194},"Data Included",[206,3598,3599,3614,3629,3651,3670,3686],{},[189,3600,3601,3605,3608,3611],{},[211,3602,3603],{"align":194},[160,3604,1723],{},[211,3606,3607],{"align":194},"A card was successfully verified and stored in the vault",[211,3609,3610],{"align":194},"When 3DS authentication and the verification \u002F fee charge succeed",[211,3612,3613],{"align":194},"Card details, fee amount, fee transaction",[189,3615,3616,3620,3623,3626],{},[211,3617,3618],{"align":194},[160,3619,1718],{},[211,3621,3622],{"align":194},"Card storage failed",[211,3624,3625],{"align":194},"When 3DS authentication fails or the verification \u002F fee charge is declined",[211,3627,3628],{"align":194},"Card attempt details, error information",[189,3630,3631,3635,3638,3644],{},[211,3632,3633],{"align":194},[160,3634,2940],{},[211,3636,3637],{"align":194},"A card was removed from the vault",[211,3639,3640,3641,3643],{"align":194},"When the payer removes a card on a ",[160,3642,682],{}," link, or via the API",[211,3645,3646,3647,3650],{"align":194},"Removed card details; ",[160,3648,3649],{},"promoted_card_id"," when the default changed as a result",[189,3652,3653,3658,3661,3664],{},[211,3654,3655],{"align":194},[160,3656,3657],{},"card.default_changed",[211,3659,3660],{"align":194},"The customer's default card changed",[211,3662,3663],{"align":194},"When the payer or merchant sets a new default card",[211,3665,3666,3669],{"align":194},[160,3667,3668],{},"previous_card_id"," and new default card details",[189,3671,3672,3677,3680,3683],{},[211,3673,3674],{"align":194},[160,3675,3676],{},"card.reordered",[211,3678,3679],{"align":194},"The customer's cascade order changed",[211,3681,3682],{"align":194},"When the payer or merchant reorders fallback cards",[211,3684,3685],{"align":194},"Full resolved cascade order",[189,3687,3688,3693,3696,3702],{},[211,3689,3690],{"align":194},[160,3691,3692],{},"card.link_expired",[211,3694,3695],{"align":194},"The vault link expired without completion",[211,3697,3698,3699,3701],{"align":194},"When the link reaches ",[160,3700,2417],{}," without a card being stored",[211,3703,3704],{"align":194},"Link details only, no card data",[169,3706,3708],{"id":3707},"webhook-security","Webhook Security",[153,3710,3711],{},"All webhooks are sent with the following headers for verification:",[1701,3713,3714,3720,3726],{},[1704,3715,3716,3719],{},[160,3717,3718],{},"X-Signature",": HMAC-SHA256 signature of the payload",[1704,3721,3722,3725],{},[160,3723,3724],{},"X-Timestamp",": Unix timestamp of when the webhook was sent",[1704,3727,3728,3731,3732],{},[160,3729,3730],{},"User-Agent",": ",[160,3733,3734],{},"Kwik-Webhooks\u002F1.0",[169,3736,3738],{"id":3737},"webhook-response","Webhook Response",[153,3740,3741,3742,3745],{},"Your endpoint should respond with a ",[160,3743,3744],{},"200"," status code to acknowledge receipt. Failed webhooks will be retried up to 3 times with exponential backoff.",[3747,3748,3749],"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}",{"title":244,"searchDepth":251,"depth":258,"links":3751},[3752,3763,3764],{"id":150,"depth":258,"text":151,"children":3753},[3754,3755,3756,3757,3758,3759,3760,3761,3762],{"id":171,"depth":286,"text":172},{"id":230,"depth":286,"text":231},{"id":338,"depth":286,"text":339},{"id":651,"depth":286,"text":652},{"id":895,"depth":286,"text":896},{"id":1495,"depth":286,"text":1496},{"id":2036,"depth":286,"text":2037},{"id":2556,"depth":286,"text":2557},{"id":2755,"depth":286,"text":2756},{"id":2904,"depth":258,"text":2905},{"id":2919,"depth":258,"text":2920,"children":3765},[3766,3767,3768,3769,3770],{"id":2948,"depth":286,"text":2949},{"id":3309,"depth":286,"text":3310},{"id":3578,"depth":286,"text":3579},{"id":3707,"depth":286,"text":3708},{"id":3737,"depth":286,"text":3738},"Create a secure, customizable link session for a customer to store or manage cards in the card vault. Cards are tokenized and verified with 3D Secure authentication, with an optional one-time fee, support for default and fallback card ordering, and webhook notifications.","md",null,{},{"title":91,"description":3771},"2Sza7HViZSyYE4pJHTBVhjKtWK-TwO4qG7JO3vv1Bho",[3778,3780],{"title":87,"path":88,"stem":89,"description":3779,"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.",{"title":95,"path":96,"stem":97,"description":3781,"children":-1},"Charge a customer's stored cards server-to-server. Attempts the default card first with automatic cascade to fallback cards, or targets a specific card. Supports merchant-initiated (MIT) scheme compliance, invoice issuance, synchronous and asynchronous processing, and webhook notifications.",1783236293778]