[{"data":1,"prerenderedAt":522},["ShallowReactive",2],{"page-\u002Fapi\u002Fautentikasi":3},{"id":4,"title":5,"body":6,"description":513,"endpoint":514,"extension":515,"icon":514,"meta":516,"method":514,"nav":514,"navigation":517,"path":518,"seo":519,"stem":520,"__hash__":521},"docs\u002Fapi\u002Fautentikasi.md","Autentikasi",{"type":7,"value":8,"toc":502},"minimark",[9,22,27,47,51,82,95,99,102,107,145,149,156,221,231,240,244,391,395,406,410,490,498],[10,11,12,13,17,18,21],"p",{},"Public API CSKU memakai dua nilai milik bisnis Anda: ",[14,15,16],"strong",{},"Business ID"," dan ",[14,19,20],{},"Secret Key",". Keduanya dikirim di setiap request. Tidak ada token yang kedaluwarsa, jadi satu pasang kredensial berlaku sampai Anda membuat Secret Key baru.",[23,24,26],"h2",{"id":25},"syarat","Syarat",[28,29,30,44],"ul",{},[31,32,33,34,37,38,43],"li",{},"Paket Anda punya fitur ",[14,35,36],{},"API",". Tanpa fitur ini menu Secret Key tidak muncul, dan endpoint pesan menolak request. Lihat ",[39,40,42],"a",{"href":41},"\u002Fpanduan\u002Fberlangganan","Berlangganan & kredit",".",[31,45,46],{},"Anda punya akses ke email akun yang login, karena membuat Secret Key butuh kode OTP.",[23,48,50],{"id":49},"ambil-kredensial","Ambil kredensial",[52,53,54,63,72,75],"ol",{},[31,55,56,57,60,61,43],{},"Buka ",[14,58,59],{},"Pengaturan → Informasi Bisnis",". Salin ",[14,62,16],{},[31,64,56,65,68,69,43],{},[14,66,67],{},"Pengaturan → Secret Key",", lalu klik ",[14,70,71],{},"Buat Secret Key Baru",[31,73,74],{},"Masukkan kode OTP yang dikirim ke email. Kode berlaku 5 menit. Setelah 3 kali salah, Anda harus menunggu 5 menit.",[31,76,77,78,81],{},"Secret Key ditampilkan ",[14,79,80],{},"sekali saja",". Salin dan simpan di tempat aman sebelum menutup jendela.",[83,84,87],"callout",{"type":85,"title":86},"warning","Secret Key lama langsung tidak berlaku",[10,88,89,90,94],{},"Membuat Secret Key baru membatalkan yang lama saat itu juga. Semua integrasi yang memakai secret lama, termasuk pengecekan header di ",[39,91,93],{"href":92},"\u002Fwebhook\u002Fkeamanan-retry","webhook",", harus diperbarui.",[23,96,98],{"id":97},"cara-mengirim-kredensial","Cara mengirim kredensial",[10,100,101],{},"Pilih salah satu cara. Keduanya setara.",[103,104,106],"h3",{"id":105},"cara-1-header-business-dan-secret","Cara 1: header Business dan Secret",[108,109,114],"pre",{"className":110,"code":111,"language":112,"meta":113,"style":113},"language-http shiki shiki-themes github-light github-dark","Business: BIZ_ID_ANDA\nSecret: SECRET_ANDA\n","http","",[115,116,117,134],"code",{"__ignoreMap":113},[118,119,122,126,130],"span",{"class":120,"line":121},"line",1,[118,123,125],{"class":124},"s9eBZ","Business",[118,127,129],{"class":128},"szBVR",":",[118,131,133],{"class":132},"sZZnC"," BIZ_ID_ANDA\n",[118,135,137,140,142],{"class":120,"line":136},2,[118,138,139],{"class":124},"Secret",[118,141,129],{"class":128},[118,143,144],{"class":132}," SECRET_ANDA\n",[103,146,148],{"id":147},"cara-2-authorization-bearer","Cara 2: Authorization Bearer",[10,150,151,152,155],{},"Gabungkan ",[115,153,154],{},"BIZ_ID:SECRET"," (dipisah titik dua), encode dengan Base64, lalu kirim sebagai Bearer token.",[108,157,161],{"className":158,"code":159,"language":160,"meta":113,"style":113},"language-bash shiki shiki-themes github-light github-dark","TOKEN=$(printf '%s' \"BIZ_ID_ANDA:SECRET_ANDA\" | base64)\ncurl https:\u002F\u002Fapi.csku.ai\u002Fv1\u002Fconversation\u002Fneed-human\u002Ftotal \\\n  -H \"Authorization: Bearer $TOKEN\"\n","bash",[115,162,163,195,206],{"__ignoreMap":113},[118,164,165,169,172,175,179,182,185,188,192],{"class":120,"line":121},[118,166,168],{"class":167},"sVt8B","TOKEN",[118,170,171],{"class":128},"=",[118,173,174],{"class":167},"$(",[118,176,178],{"class":177},"sj4cs","printf",[118,180,181],{"class":132}," '%s'",[118,183,184],{"class":132}," \"BIZ_ID_ANDA:SECRET_ANDA\"",[118,186,187],{"class":128}," |",[118,189,191],{"class":190},"sScJk"," base64",[118,193,194],{"class":167},")\n",[118,196,197,200,203],{"class":120,"line":136},[118,198,199],{"class":190},"curl",[118,201,202],{"class":132}," https:\u002F\u002Fapi.csku.ai\u002Fv1\u002Fconversation\u002Fneed-human\u002Ftotal",[118,204,205],{"class":177}," \\\n",[118,207,209,212,215,218],{"class":120,"line":208},3,[118,210,211],{"class":177},"  -H",[118,213,214],{"class":132}," \"Authorization: Bearer ",[118,216,217],{"class":167},"$TOKEN",[118,219,220],{"class":132},"\"\n",[10,222,223,224,227,228,230],{},"Header ",[115,225,226],{},"Authorization"," hanya dibaca jika header ",[115,229,139],{}," kosong.",[83,232,234],{"type":233},"tip",[10,235,236,237,239],{},"Nilai yang ditampilkan dashboard saat membuat Secret Key sudah dalam format Base64 ",[115,238,154],{},". Nilai itu bisa langsung dipakai sebagai Bearer token.",[23,241,243],{"id":242},"contoh-lengkap","Contoh lengkap",[108,245,249],{"className":246,"code":247,"language":248,"meta":113,"style":113},"language-js shiki shiki-themes github-light github-dark","const res = await fetch('https:\u002F\u002Fapi.csku.ai\u002Fv1\u002Fmessage', {\n  method: 'POST',\n  headers: {\n    Business: process.env.CSKU_BUSINESS_ID,\n    Secret: process.env.CSKU_SECRET,\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({ conversation_id: 'CO_01J…', text: 'Halo kak' }),\n})\nconst data = await res.json()\n","js",[115,250,251,277,288,293,304,315,329,335,364,370],{"__ignoreMap":113},[118,252,253,256,259,262,265,268,271,274],{"class":120,"line":121},[118,254,255],{"class":128},"const",[118,257,258],{"class":177}," res",[118,260,261],{"class":128}," =",[118,263,264],{"class":128}," await",[118,266,267],{"class":190}," fetch",[118,269,270],{"class":167},"(",[118,272,273],{"class":132},"'https:\u002F\u002Fapi.csku.ai\u002Fv1\u002Fmessage'",[118,275,276],{"class":167},", {\n",[118,278,279,282,285],{"class":120,"line":136},[118,280,281],{"class":167},"  method: ",[118,283,284],{"class":132},"'POST'",[118,286,287],{"class":167},",\n",[118,289,290],{"class":120,"line":208},[118,291,292],{"class":167},"  headers: {\n",[118,294,296,299,302],{"class":120,"line":295},4,[118,297,298],{"class":167},"    Business: process.env.",[118,300,301],{"class":177},"CSKU_BUSINESS_ID",[118,303,287],{"class":167},[118,305,307,310,313],{"class":120,"line":306},5,[118,308,309],{"class":167},"    Secret: process.env.",[118,311,312],{"class":177},"CSKU_SECRET",[118,314,287],{"class":167},[118,316,318,321,324,327],{"class":120,"line":317},6,[118,319,320],{"class":132},"    'Content-Type'",[118,322,323],{"class":167},": ",[118,325,326],{"class":132},"'application\u002Fjson'",[118,328,287],{"class":167},[118,330,332],{"class":120,"line":331},7,[118,333,334],{"class":167},"  },\n",[118,336,338,341,344,346,349,352,355,358,361],{"class":120,"line":337},8,[118,339,340],{"class":167},"  body: ",[118,342,343],{"class":177},"JSON",[118,345,43],{"class":167},[118,347,348],{"class":190},"stringify",[118,350,351],{"class":167},"({ conversation_id: ",[118,353,354],{"class":132},"'CO_01J…'",[118,356,357],{"class":167},", text: ",[118,359,360],{"class":132},"'Halo kak'",[118,362,363],{"class":167}," }),\n",[118,365,367],{"class":120,"line":366},9,[118,368,369],{"class":167},"})\n",[118,371,373,375,378,380,382,385,388],{"class":120,"line":372},10,[118,374,255],{"class":128},[118,376,377],{"class":177}," data",[118,379,261],{"class":128},[118,381,264],{"class":128},[118,383,384],{"class":167}," res.",[118,386,387],{"class":190},"json",[118,389,390],{"class":167},"()\n",[23,392,394],{"id":393},"keamanan","Keamanan",[28,396,397,400,403],{},[31,398,399],{},"Simpan Business ID dan Secret Key di server (variabel lingkungan atau secret manager). Jangan taruh di aplikasi mobile, JavaScript browser, atau repository.",[31,401,402],{},"Secret Key memberi akses penuh ke API bisnis Anda. Jika bocor, buat Secret Key baru segera.",[31,404,405],{},"API tidak menerapkan batas request (rate limit), tapi tetap kirim request secukupnya dan antrekan pengiriman massal di sisi Anda.",[23,407,409],{"id":408},"error-autentikasi","Error autentikasi",[411,412,413,429],"table",{},[414,415,416],"thead",{},[417,418,419,426],"tr",{},[420,421,422,423],"th",{},"Pesan ",[115,424,425],{},"error_msg",[420,427,428],{},"Penyebab",[430,431,432,446,460,470,480],"tbody",{},[417,433,434,440],{},[435,436,437],"td",{},[115,438,439],{},"Data tidak valid. Mohon periksa kembali parameter dan header",[435,441,442,443,445],{},"Format Bearer salah (bukan Base64 ",[115,444,154],{},")",[417,447,448,457],{},[435,449,450,453,454],{},[115,451,452],{},"business not found"," \u002F ",[115,455,456],{},"biz not found",[435,458,459],{},"Business ID tidak dikenal",[417,461,462,467],{},[435,463,464],{},[115,465,466],{},"secret not valid ",[435,468,469],{},"Secret salah atau sudah diganti",[417,471,472,477],{},[435,473,474],{},[115,475,476],{},"Anda belum memiliki paket aktif.",[435,478,479],{},"Paket tidak aktif",[417,481,482,487],{},[435,483,484],{},[115,485,486],{},"Paket user tidak memiliki fitur API.",[435,488,489],{},"Paket aktif, tapi tanpa fitur API",[10,491,492,493,497],{},"Lihat ",[39,494,496],{"href":495},"\u002Fapi\u002Frespons","Format respons & error"," untuk bentuk lengkap respons error.",[499,500,501],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}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 .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":113,"searchDepth":208,"depth":208,"links":503},[504,505,506,510,511,512],{"id":25,"depth":136,"text":26},{"id":49,"depth":136,"text":50},{"id":97,"depth":136,"text":98,"children":507},[508,509],{"id":105,"depth":208,"text":106},{"id":147,"depth":208,"text":148},{"id":242,"depth":136,"text":243},{"id":393,"depth":136,"text":394},{"id":408,"depth":136,"text":409},"Setiap request Public API memakai Business ID dan Secret Key bisnis Anda.",null,"md",{},true,"\u002Fapi\u002Fautentikasi",{"title":5,"description":513},"api\u002Fautentikasi","n7F-Ruab7De9m7RBFWscIti0DzphIfiqmb-17gAOmTo",1791957694416]