[{"data":1,"prerenderedAt":592},["ShallowReactive",2],{"navigation":3,"\u002Fapi-to-api\u002Fauthentication":47},[4,34,41],{"title":5,"path":6,"stem":7,"children":8},"API to API","\u002Fapi-to-api","1.api-to-api\u002F1.index",[9,10,14,18,22,26,30],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Authentication","\u002Fapi-to-api\u002Fauthentication","1.api-to-api\u002F2.authentication",{"title":15,"path":16,"stem":17},"Customer","\u002Fapi-to-api\u002Fcustomer","1.api-to-api\u002F3.customer",{"title":19,"path":20,"stem":21},"Products","\u002Fapi-to-api\u002Fproducts","1.api-to-api\u002F4.products",{"title":23,"path":24,"stem":25},"Checkout","\u002Fapi-to-api\u002Fcheckout","1.api-to-api\u002F5.checkout",{"title":27,"path":28,"stem":29},"Payment","\u002Fapi-to-api\u002Fpayment","1.api-to-api\u002F6.payment",{"title":31,"path":32,"stem":33},"Callback","\u002Fapi-to-api\u002Fcallback","1.api-to-api\u002F7.callback",{"title":35,"path":36,"stem":37,"children":38},"Iframe Static","\u002Fiframe-static","2.iframe-static\u002F1.index",[39],{"title":40,"path":36,"stem":37},"Overview",{"title":42,"path":43,"stem":44,"children":45},"Iframe Dynamic","\u002Fiframe-dynamic","3.iframe-dynamic\u002F1.index",[46],{"title":40,"path":43,"stem":44},{"id":48,"title":11,"body":49,"description":585,"extension":586,"links":587,"meta":588,"navigation":589,"path":12,"seo":590,"stem":13,"__hash__":591},"docs\u002F1.api-to-api\u002F2.authentication.md",{"type":50,"value":51,"toc":577},"minimark",[52,56,60,65,68,109,173,177,180,204,253,257,343,347,425,429,432,454,458,573],[53,54,11],"h1",{"id":55},"authentication",[57,58,59],"p",{},"Autentikasi API-to-API memakai secret key mitra dan OTP. Secret key dikirim lewat header, sedangkan token dari hasil verifikasi dipakai untuk endpoint berikutnya.",[61,62,64],"h2",{"id":63},"request-otp","Request OTP",[57,66,67],{},"Endpoint ini memvalidasi secret key, nomor mitra, dan password. Jika valid, Miharogames mengirim OTP ke nomor mitra.",[69,70,75],"pre",{"className":71,"code":72,"language":73,"meta":74,"style":74},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST \u002Fclient\u002Fv2\u002Fauth\u002Flogin_mitra\nX-SECRET-KEY: {partner_secret_key}\nContent-Type: application\u002Fjson\n","bash","",[76,77,78,91,100],"code",{"__ignoreMap":74},[79,80,83,87],"span",{"class":81,"line":82},"line",1,[79,84,86],{"class":85},"sBMFI","POST",[79,88,90],{"class":89},"sfazB"," \u002Fclient\u002Fv2\u002Fauth\u002Flogin_mitra\n",[79,92,94,97],{"class":81,"line":93},2,[79,95,96],{"class":85},"X-SECRET-KEY:",[79,98,99],{"class":89}," {partner_secret_key}\n",[79,101,103,106],{"class":81,"line":102},3,[79,104,105],{"class":85},"Content-Type:",[79,107,108],{"class":89}," application\u002Fjson\n",[69,110,114],{"className":111,"code":112,"language":113,"meta":74,"style":74},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"no_telp\": \"081234567890\",\n  \"password\": \"password-mitra\"\n}\n","json",[76,115,116,122,148,167],{"__ignoreMap":74},[79,117,118],{"class":81,"line":82},[79,119,121],{"class":120},"sMK4o","{\n",[79,123,124,127,131,134,137,140,143,145],{"class":81,"line":93},[79,125,126],{"class":120},"  \"",[79,128,130],{"class":129},"spNyl","no_telp",[79,132,133],{"class":120},"\"",[79,135,136],{"class":120},":",[79,138,139],{"class":120}," \"",[79,141,142],{"class":89},"081234567890",[79,144,133],{"class":120},[79,146,147],{"class":120},",\n",[79,149,150,152,155,157,159,161,164],{"class":81,"line":102},[79,151,126],{"class":120},[79,153,154],{"class":129},"password",[79,156,133],{"class":120},[79,158,136],{"class":120},[79,160,139],{"class":120},[79,162,163],{"class":89},"password-mitra",[79,165,166],{"class":120},"\"\n",[79,168,170],{"class":81,"line":169},4,[79,171,172],{"class":120},"}\n",[61,174,176],{"id":175},"verify-otp","Verify OTP",[57,178,179],{},"Endpoint ini menukar OTP menjadi token akses.",[69,181,183],{"className":71,"code":182,"language":73,"meta":74,"style":74},"POST \u002Fclient\u002Fv2\u002Fauth\u002Flogin_mitra_verify\nX-SECRET-KEY: {partner_secret_key}\nContent-Type: application\u002Fjson\n",[76,184,185,192,198],{"__ignoreMap":74},[79,186,187,189],{"class":81,"line":82},[79,188,86],{"class":85},[79,190,191],{"class":89}," \u002Fclient\u002Fv2\u002Fauth\u002Flogin_mitra_verify\n",[79,193,194,196],{"class":81,"line":93},[79,195,96],{"class":85},[79,197,99],{"class":89},[79,199,200,202],{"class":81,"line":102},[79,201,105],{"class":85},[79,203,108],{"class":89},[69,205,207],{"className":111,"code":206,"language":113,"meta":74,"style":74},"{\n  \"no_telp\": \"081234567890\",\n  \"otp\": \"123456\"\n}\n",[76,208,209,213,231,249],{"__ignoreMap":74},[79,210,211],{"class":81,"line":82},[79,212,121],{"class":120},[79,214,215,217,219,221,223,225,227,229],{"class":81,"line":93},[79,216,126],{"class":120},[79,218,130],{"class":129},[79,220,133],{"class":120},[79,222,136],{"class":120},[79,224,139],{"class":120},[79,226,142],{"class":89},[79,228,133],{"class":120},[79,230,147],{"class":120},[79,232,233,235,238,240,242,244,247],{"class":81,"line":102},[79,234,126],{"class":120},[79,236,237],{"class":129},"otp",[79,239,133],{"class":120},[79,241,136],{"class":120},[79,243,139],{"class":120},[79,245,246],{"class":89},"123456",[79,248,166],{"class":120},[79,250,251],{"class":81,"line":169},[79,252,172],{"class":120},[61,254,256],{"id":255},"response-request-otp","Response Request OTP",[69,258,260],{"className":111,"code":259,"language":113,"meta":74,"style":74},"{\n  \"status\": true,\n  \"message\": \"Kode OTP berhasil dikirimkan ke nomor telepon terdaftar.\",\n  \"data\": {\n    \"no_telp\": \"081234567890\"\n  }\n}\n",[76,261,262,266,280,300,314,332,338],{"__ignoreMap":74},[79,263,264],{"class":81,"line":82},[79,265,121],{"class":120},[79,267,268,270,273,275,277],{"class":81,"line":93},[79,269,126],{"class":120},[79,271,272],{"class":129},"status",[79,274,133],{"class":120},[79,276,136],{"class":120},[79,278,279],{"class":120}," true,\n",[79,281,282,284,287,289,291,293,296,298],{"class":81,"line":102},[79,283,126],{"class":120},[79,285,286],{"class":129},"message",[79,288,133],{"class":120},[79,290,136],{"class":120},[79,292,139],{"class":120},[79,294,295],{"class":89},"Kode OTP berhasil dikirimkan ke nomor telepon terdaftar.",[79,297,133],{"class":120},[79,299,147],{"class":120},[79,301,302,304,307,309,311],{"class":81,"line":169},[79,303,126],{"class":120},[79,305,306],{"class":129},"data",[79,308,133],{"class":120},[79,310,136],{"class":120},[79,312,313],{"class":120}," {\n",[79,315,317,320,322,324,326,328,330],{"class":81,"line":316},5,[79,318,319],{"class":120},"    \"",[79,321,130],{"class":85},[79,323,133],{"class":120},[79,325,136],{"class":120},[79,327,139],{"class":120},[79,329,142],{"class":89},[79,331,166],{"class":120},[79,333,335],{"class":81,"line":334},6,[79,336,337],{"class":120},"  }\n",[79,339,341],{"class":81,"line":340},7,[79,342,172],{"class":120},[61,344,346],{"id":345},"response-verify-otp","Response Verify OTP",[69,348,350],{"className":111,"code":349,"language":113,"meta":74,"style":74},"{\n  \"status\": true,\n  \"message\": \"Verifikasi berhasil. Autentikasi disetujui.\",\n  \"data\": {\n    \"token\": \"customer_access_token\"\n  }\n}\n",[76,351,352,356,368,387,399,417,421],{"__ignoreMap":74},[79,353,354],{"class":81,"line":82},[79,355,121],{"class":120},[79,357,358,360,362,364,366],{"class":81,"line":93},[79,359,126],{"class":120},[79,361,272],{"class":129},[79,363,133],{"class":120},[79,365,136],{"class":120},[79,367,279],{"class":120},[79,369,370,372,374,376,378,380,383,385],{"class":81,"line":102},[79,371,126],{"class":120},[79,373,286],{"class":129},[79,375,133],{"class":120},[79,377,136],{"class":120},[79,379,139],{"class":120},[79,381,382],{"class":89},"Verifikasi berhasil. Autentikasi disetujui.",[79,384,133],{"class":120},[79,386,147],{"class":120},[79,388,389,391,393,395,397],{"class":81,"line":169},[79,390,126],{"class":120},[79,392,306],{"class":129},[79,394,133],{"class":120},[79,396,136],{"class":120},[79,398,313],{"class":120},[79,400,401,403,406,408,410,412,415],{"class":81,"line":316},[79,402,319],{"class":120},[79,404,405],{"class":85},"token",[79,407,133],{"class":120},[79,409,136],{"class":120},[79,411,139],{"class":120},[79,413,414],{"class":89},"customer_access_token",[79,416,166],{"class":120},[79,418,419],{"class":81,"line":334},[79,420,337],{"class":120},[79,422,423],{"class":81,"line":340},[79,424,172],{"class":120},[61,426,428],{"id":427},"token-usage","Token usage",[57,430,431],{},"Kirim token hasil verifikasi pada endpoint customer, product, checkout, dan payment.",[69,433,435],{"className":71,"code":434,"language":73,"meta":74,"style":74},"Authorization: Bearer {access_token}\nX-SECRET-KEY: {partner_secret_key}\n",[76,436,437,448],{"__ignoreMap":74},[79,438,439,442,445],{"class":81,"line":82},[79,440,441],{"class":85},"Authorization:",[79,443,444],{"class":89}," Bearer",[79,446,447],{"class":89}," {access_token}\n",[79,449,450,452],{"class":81,"line":93},[79,451,96],{"class":85},[79,453,99],{"class":89},[61,455,457],{"id":456},"error-conditions","Error Conditions",[459,460,461,477],"table",{},[462,463,464],"thead",{},[465,466,467,471,474],"tr",{},[468,469,470],"th",{},"HTTP",[468,472,473],{},"Kondisi",[468,475,476],{},"Message",[478,479,480,500,514,529,543,558],"tbody",{},[465,481,482,488,491],{},[483,484,485],"td",{},[76,486,487],{},"400",[483,489,490],{},"Field wajib kosong.",[483,492,493,496,497],{},[76,494,495],{},"Nomor Telepon wajib diisi"," atau ",[76,498,499],{},"Kode OTP wajib diisi",[465,501,502,506,509],{},[483,503,504],{},[76,505,487],{},[483,507,508],{},"OTP salah.",[483,510,511],{},[76,512,513],{},"Kode OTP tidak valid atau salah.",[465,515,516,521,524],{},[483,517,518],{},[76,519,520],{},"401",[483,522,523],{},"Secret key kosong\u002Ftidak valid.",[483,525,526],{},[76,527,528],{},"Akses ditolak. Pastikan kredensial integrasi yang digunakan sudah benar dan masih aktif.",[465,530,531,535,538],{},[483,532,533],{},[76,534,520],{},[483,536,537],{},"Password\u002Fmitra tidak cocok.",[483,539,540],{},[76,541,542],{},"Autentikasi gagal: Kata sandi yang dimasukkan tidak sesuai atau akun bukan milik mitra ini.",[465,544,545,550,553],{},[483,546,547],{},[76,548,549],{},"403",[483,551,552],{},"Nomor bukan akun mitra.",[483,554,555],{},[76,556,557],{},"Akses ditolak: Nomor telepon tidak terdaftar sebagai mitra.",[465,559,560,565,568],{},[483,561,562],{},[76,563,564],{},"404",[483,566,567],{},"Akun OTP tidak ditemukan.",[483,569,570],{},[76,571,572],{},"Akun tidak ditemukan atau tidak terdaftar sebagai mitra.",[574,575,576],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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}",{"title":74,"searchDepth":82,"depth":93,"links":578},[579,580,581,582,583,584],{"id":63,"depth":93,"text":64},{"id":175,"depth":93,"text":176},{"id":255,"depth":93,"text":256},{"id":345,"depth":93,"text":346},{"id":427,"depth":93,"text":428},{"id":456,"depth":93,"text":457},"Login mitra dan verifikasi OTP untuk membuat access token.","md",null,{},true,{"title":11,"description":585},"lCe3NCM_eoCvx2ZGLiM4FNHTiyQrNFtUKeB2Nl3aYhA",1786900675574]