H
Hype Drip

Daftar Limit Transfer BCA di ATM, m-Banking, dan Internet Banking

Author

Carter Sullivan

Published Apr 05, 2026

Limit transfer BCA berbeda-beda tergantung pada jenis rekening, kartu ATM, serta kanal transaksi yang digunakan nasabah.

Lihat Foto

Limit transfer BCA berbeda-beda tergantung pada jenis rekening, kartu ATM, serta kanal transaksi yang digunakan nasabah.(PIXABAY)

JAKARTA, KOMPAS.com Limit transfer BCA adalah batas maksimal jumlah uang yang dapat ditransfer dalam satu transaksi atau dalam satu periode satu hari. Batas limit transfer BCA berbeda-beda tergantung pada jenis rekening, kartu ATM, serta kanal transaksi yang digunakan nasabah.

Calon nasabah yang membuka tabungan di Bank BCA tentu perlu mengetahui besaran limit transfer BCA per hari. Hal ini agar calon nasabah dapat memilih produk tabungan BCA yang tepat dan sesuai dengan kebutuhan.

Bank BCA sendiri merupakan bank swasta terbesar di Indonesia, baik dari sisi aset maupun jumlah nasabah. Seperti bank pada umumnya, BCA membatasi jumlah uang yang dapat ditransfer oleh nasabah setiap harinya. 

Baca juga: Cara Buka Rekening BCA Syariah Online serta Syarat dan Biayanya

Adanya pembatasan atau limit transfer BCA ini bertujuan untuk melindungi transaksi nasabah. Misalnya dari penyalahgunaan kartu ATM yang hilang. 

Lalu berapa limit transfer BCA ke sesama BCA dan bank lain per harinya? 

Limit transfer BCA 2023

Dikutip dari laman bca.co.id, berikut limit transfer BCA berdasarkan jenis tabungan, jenis kartu, dan channel yang digunakan. 

1. Limit transfer BCA Tahapan (Blue)

  • Limit transfer BCA ke BCA: Rp 50 juta
  • Limit transfer BCA ke bank lain: Rp 15 juta.
  • Limit transfer BCA ke BCA via mobile banking BCA: Rp 50 juta.
  • Limit transfer BCA ke bank lain via mobile banking BCA: Rp 15 juta.
  • Limit transfer BCA via internet banking: Rp 500 juta.
  • Limit transfer BCA via myBCA: Rp 300 juta.

2. Limit transfer BCA Gold (Tahapan)

  • Limit transfer BCA ke BCA: Rp 75 juta
  • Limit transfer BCA ke bank lain: Rp 20 juta.
  • Limit transfer BCA ke BCA via mobile banking BCA: Rp 75 juta.
  • Limit transfer BCA ke bank lain via mobile banking BCA: Rp 20 juta.
  • Limit transfer BCA via internet banking: Rp 500 juta.
  • Limit transfer BCA via myBCA: Rp 300 juta.

Baca juga: Bikin Panik Nasional, Tim IT OJK Turun Tangan Periksa Error BSI

3. Limit transfer BCA Platinum (Tahapan)

  • Limit transfer BCA ke BCA: Rp 100 juta
  • Limit transfer BCA ke bank lain: Rp 25 juta.
  • Limit transfer BCA keBCA via mobile banking BCA: Rp 100 juta.
  • Limit transfer BCA ke bank lain via mobile banking BCA: Rp 25 juta.
  • Limit transfer via internet banking: Rp 500 juta.
  • Limit transfer via myBCA: Rp 300 juta.

4. Limit transfer BCA Xpresi

  • Limit transfer BCA ke BCA: Rp 25 juta
  • Limit transfer BCA ke bank lain: Rp 10 juta.
  • Limit transfer BCA ke BCA via mobile banking BCA: Rp 25 juta.
  • Limit transfer BCA ke bank lain via mobile banking BCA: Rp 10 juta.
  • Limit transfer BCA via internet banking: Rp 500 juta.
  • Limit transfer BCA via myBCA: Rp 300 juta.

5. Limit transfer BCA Tapres

  • Limit transfer BCA ke BCA: Rp 75 juta
  • Limit transfer BCA ke bank lain: Rp 20 juta.
  • Limit transfer BCA ke BCA via mobile banking BCA: Rp 75 juta.
  • Limit transfer BCA ke bank lain via mobile banking BCA: Rp 20 juta.
  • Limit transfer BCA via internet banking: Rp 500 juta.
  • Limit transfer BCA via myBCA: Rp 300 juta.

6. Limit transfer BCA TabunganKu

  • Limit tarik tunai: Rp 7 juta.
  • Limit setoran tunai: Rp 15 juta.
  • Limit transfer BCA ke BCA: Rp 25 juta.

Baca juga: Banyak Orang Berebut Jadi Kepala Desa, Memang Gajinya Berapa?

Adapun biaya administrasi transfer BCA ke bank lain adalah Rp 2.500 untuk layanan transfer BI-FAST (mobile banking). Sedangkan untuk layanan transfer online, biaya administrasi transfer BCA ke bank lain Rp 6.500.

Sebagai tambahan, untuk limit transfer ke BCA Virtual Account (VA) mengikuti ketentuan Virtual Account yang berlaku di sini

Limit transfer BCA berbeda-beda tergantung pada jenis rekening, kartu ATM, serta kanal transaksi yang digunakan nasabah.bca.co.id Limit transfer BCA berbeda-beda tergantung pada jenis rekening, kartu ATM, serta kanal transaksi yang digunakan nasabah.

Cara transfer uang lewat ATM BCA

1. Cara transfer BCA ke sesama BCA lewat ATM 

  • Kunjungi ATM BCA terdekat.
  • Masukkan kartu ATM BCA ke mesin.
  • Masukkan 6 digit PIN ATM BCA.
  • Klik menu "Transaksi Lainnya".
  • Klik menu "Transfer" dan "Ke Rek BCA".
  • Masukkan nomor rekening BCA yang menjadi tujuan transfer.
  • Masukkan nominal transfer BCA yang diinginkan.
  • Klik "Ya" saat konfirmasi.
  • Tunggu bukti transfer BCA muncul.

2. Cara transfer BCA ke bank lain lewat ATM

  • Masukkan kartu ATM BCA.
  • Masukkan 6 digit PIN ATM BCA dengan benar.
  • Pilih menu “Transaksi Lainnya”.
  • Lalu, pilih menu “Transfer” dan menu “Ke Rekening Bank Lain”.
  • Masukkan kode bank tujuan diikuti nomor rekening tujuan tujuan transfer.
  • Kemudian, masukkan nominal yang akan ditransfer.
  • Pertanyaan tentang No Referensi bisa dikosongkan atau dilewati.
  • Pada layar ATM akan muncul informasi transaksi transfer, mulai dari nomor rekening tujuan, nama pemilik rekening, hingga nominal transaksi.
  • Jika semua sudah benar, tekan "OK atau Ya".
  • Tunggu struk keluar dari ATM yang menjadi bukti transaksi.

Baca juga: Rekrutmen Bersama BUMN 2023, Ini Daftar Lowongan Kerja untuk S1 Semua Jurusan

Cara transfer uang lewat m-Banking BCA

1. Cara transfer BCA ke sesama BCA via BCA mobile

  • Buka aplikasi BCA mobile
  • Pilih fitur "m-Transfer"
  • Pilih "Transfer Antar Rekening"
  • Masukkan informasi rekening tujuan, nominal transfer dan berita
  • Pastikan kembali informasi transfer sudah benar
  • Konfirmasi dengan memasukkan PIN
  • Transfer ke sesama rekening berhasil

2. Cara transfer BCA ke bank lain via BCA mobile

  • Buka aplikasi BCA mobile
  • Pilih "m-Transfer"
  • Pilih "Transfer Antar Bank"
  • Masukkan informasi rekening tujuan, nominal transfer, layanan transfer dan berita
  • Pastikan kembali informasi transfer sudah benar
  • Konfirmasi dengan memasukkan PIN
  • Transfer ke antar bank berhasil

Baca juga: Segmen Mikro Jadi Kunci BRI Cetak Laba Jumbo di Kuartal I-2023

Cara transfer uang lewat Internet Banking BCA

1. Cara transfer BCA ke sesama BCA via KlikBCA 

  • Buka pada browser.
  • Masukan User ID dan PIN KlikBCA Individual.
  • Klik Login.
  • Masukkan nomor rekening BCA.
  • Klik Transfer Dana.
  • Klik Transfer ke Rekening BCA.
  • Pilih nomor rekening dari daftar.
  • Isi nominal transfer BCA.
  • Tunggu 8 digit untuk isi KeyBCA.
  • Aktifkan KeyBCA, Masukkan pin dan tekan angka 2.
  • Masukkan 8 digit.
  • Masukkan 8 digit dari Respon KeyBCA APLLI 2.
  • Klik Lanjutkan.
  • Tunggu informasi rekening tujuan.
  • Nyalakan KeyBCA kembali.
  • Klik angka 1.
  • Tunggu 8 digit di kotak Respon KeyBCA APPLI 1.
  • Pilih Kirim.
  • Tunggu bukti transaksi transfer BCA berhasil.

2. Cara transfer BCA ke bank lain via KlikBCA

  • Buka pada browser.
  • Masukan User ID dan PIN KlikBCA Individual.
  • Klik Login.
  • Masukkan nomor rekening BCA.
  • Klik Transfer Dana.
  • Klik Transfer ke Rek. Bank Lain.
  • Pilih nomor rekening dari daftar.
  • Isi nominal transfer BCA.
  • Tunggu 8 digit untuk isi KeyBCA.
  • Aktifkan KeyBCA, Masukkan pin dan tekan angka 2.
  • Masukkan 8 digit.
  • Masukkan 8 digit dari Respon KeyBCA APLLI 2.
  • Klik Lanjutkan.
  • Tunggu informasi rekening tujuan.
  • Nyalakan KeyBCA kembali.
  • Klik angka 1.
  • Tunggu 8 digit di kotak Respon KeyBCA APPLI 1.
  • Pilih Kirim.
  • Tunggu bukti transaksi transfer BCA berhasil.

Baca juga: Mengenal Hotel Meruorah, Pelabuhan Tua yang Naik Kelas Jadi Venue Utama KTT ASEAN

Nah, itulah besaran limit transfer BCA ke sesama BCA dan bank lain berdasarkan jenis tabungan, jenis kartu ATM, dan channel transaksi yang digunakan. Limit transfer BCA perlu diketahui agar terhindar dari kesalahan saat transaksi dan tidak merugikan pihak lain.

Limit transfer BCA berbeda-beda tergantung pada jenis rekening, kartu ATM, serta kanal transaksi yang digunakan nasabah.Dok BCA Limit transfer BCA berbeda-beda tergantung pada jenis rekening, kartu ATM, serta kanal transaksi yang digunakan nasabah. Dapatkan update berita pilihan dan breaking news setiap hari dari Kompas.com. Mari bergabung di Grup Telegram "Kompas.com News Update", caranya klik link , kemudian join. Anda harus install aplikasi Telegram terlebih dulu di ponsel.  

Pilihan Untukmu

`); var wSpecStop = createElementFromHTML(`

Konten disembunyikan.
Muat ulang halaman untuk perbarui rekomendasi.

`); reactionPopup.querySelector('.buttonShare').setAttribute('data-title', item.title); reactionPopup.querySelector('.buttonShare').setAttribute('data-url', itemUrl); reactionPopup.querySelector('.buttonShare').setAttribute('data-campaign', 'AIML_Widget_Desktop'); let userFeedback = new UserFeedback(resultObj.engine['tracker_algsrc'], itemUrl + tracker_params, jxRecHelper, index); reactionPopup.querySelector('.buttonBookmark').addEventListener('click', function() { do_bookmark(itemUrl, index, userFeedback); }); reactionPopup.querySelector('.buttonShare').addEventListener('click', function() { userFeedback.event('share'); }); reactionPopup.querySelector('.buttonNotInterest').addEventListener('click', function() { if (getCookie('kmps_usrid')) { hideThisArt(this); userFeedback.event('not-interested'); } else { const parentAction = this.parentElement.parentElement.parentElement if (!!parentAction) { let indexElement = parentAction.getAttribute('data-index') if (indexElement != 'undefined') { localStorage.setItem('reaction_not_interest_temp', JSON.stringify({ urlpage: items[indexElement].url })) } } window.location.href = "" + btoa(window.location.href); } }); /** * trigger action "userFeedback" that user not interest item before, when not interest without login */ if (getCookie('kmps_usrid') && localStorage.getItem('reaction_not_interest_temp')) { const tempUrlNotInterest = JSON.parse(localStorage.getItem('reaction_not_interest_temp')) if (itemUrl == tempUrlNotInterest.urlpage) { userFeedback.event('not-interested'); localStorage.removeItem('reaction_not_interest_temp'); } } wSpecStop.querySelector('.wSpec-stop-undo').addEventListener('click', function() { showThisArt(this); userFeedback.event('un-not-interested'); }); recItem.appendChild(buttonOption); recItem.appendChild(reactionPopup); recItem.appendChild(wSpecStop); } var recItemWrapperA = createElement('a', null, null, null); recItemWrapperA.setAttribute('href', itemUrl + tracker_params); var titleDiv = createElement('h4', null, null, [cssClasses.title]); var titleTextNode = document.createTextNode(item.title); if (item.itemType == 'video') { var iconVideo = createElement('div', null, null, ['icoInline', 'icoVideo']); iconVideo.style.marginRight = '5px'; titleDiv.appendChild(iconVideo); } titleDiv.appendChild(titleTextNode); var sourceDiv = null; if (item.hasOwnProperty('method')) { sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type'] + ' . ' + item.method.toUpperCase()); } else { var sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type']); } var textWrapper = createElement('div', null, null, [cssClasses.text_wrapper]); textWrapper.appendChild(categoryDiv); textWrapper.appendChild(titleDiv); textWrapper.appendChild(sourceDiv); recItemWrapper.appendChild(imgWrapper); recItemWrapper.appendChild(textWrapper); recItemWrapperA.appendChild(recItemWrapper); recItem.appendChild(recItemWrapperA); widgetWrapper.appendChild(recItem); // hook up the click handler for this item // recItem.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); recItemWrapperA.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); }); } // end while var endDate = new Date(); var loadtime = (endDate.getTime() - startDate.getTime()); trackEventGa('AIML Article Recommendation', 'Content Loaded', 'algsrc='+algsrc+',site=MONEY,device=desktop,loadtime=' + loadtime) let domain = window.location.hostname; if(domain=='){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "Gues"; let subs_type = ""; let is_lgn = 0; let engine = algsrc; if(getCookie('kmps_usrid')){is_lgn=1}; let time_load = loadtime; resolve(); /*** * JXRECSDK NOTES 3 of 5 - * pass all the info about the items to the rec helper * each one is an object: ALL MANDATORY * div * id * pos */ jxRecHelper.items(widgetItemArr); /*** * JXRECSDK NOTES 4 of 5 - * Call the ready() of the helper object when the recommendation * results have been populated to the widget * (This will register the action=ready event) */ if (resultObj.engine['type'] == 'api-1') { jxRecHelper.ready(resultObj.options.algo + ":" + resultObj.options.version); } else { jxRecHelper.ready(resultObj.engine['type']); } } else { jxRecHelper.error(204); console.error("Error: no recommendation items"); return; } } catch (err) { jxRecHelper.error(901); console.log(err.stack); let domain = window.location.hostname; if(domain=='){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "Gues"; let subs_type = "" let is_lgn = 0; let engine = algsrc; if(getCookie('kmps_usrid')){is_lgn=1}; let endDate = new Date(); let time_load = (endDate.getTime() - startDate.getTime()); } }); } const _jxRecSdkURL = ' var startDate = new Date(); class OneWidget { constructor() { //this is also the one we will pass to the JX rec helper object when //we instantiate it: //In this implementation most of these come from the options obj //on the publisher page. this._options = { accountid: '9262bf2590d558736cac4fff7978fcb1', pageurl: ' widget_id: '1000183-6xWeiWZFIM', type: 'pages', container: 'rekomendasi-konten-pilihan-untukmu-aiml', keywords: content_tags, title: title, customid: "26", count: 14, }; this._containerId = this._options.container; this._container = document.getElementById(this._containerId); this._engines = [{"url":"https:\/\/recommendation.kgdata.dev\/rec\/kompascom\/api\/v2\/recommendation\/item","method":"POST","pageurl":"https:\/\/money.kompas.com\/read\/2023\/05\/14\/071300326\/daftar-limit-transfer-bca-di-atm-m-banking-dan-internet-banking","system":"kg","type":"api-2","tracker_params":"?source=widgetML&engine=C","tracker_algsrc":"C","count":14,"page_status":"read","excludeitemids":["20230514071300326"],"multiFormat":true}]; } kickOff() { startDate = new Date(); const rand = Math.floor(Math.random() * 1000); /*const randSystem = Math.floor(Math.random() * 3); this._engine = this._engines[randSystem] if (location.hostname.indexOf('lestari') != -1) { this._engine = this._engines[1] }*/ this._engine = this._engines[0]; this._options.system = this._engine['system'] trackEventGa('AIML Article Recommendation', 'Widget load', 'algsrc=' + this._engine['tracker_algsrc'] + ',site=MONEY,device=desktop') let promJXSDK = fetchJSFileP(_jxRecSdkURL); let thisObj = this; // first we wait on the JX REC SDK to be loaded and initialized let recHelperObj = null; let recResults = null; promJXSDK .then(function() { /*** * JXRECSDK NOTES 1 of 5 - INSTANTIATION OF A JX REC HELPER OBJECT * Call this AFTER JX REC SDK is loaded but BEFORE you call your REC * backend. * * param: MANDATORY options object * options object must at a minimal have * accountid: get from jixie * widgetid: get from jixie * container: DIV ID of the destination div to house the widget * (for jixie widget this is just the options object passed from the page) * * (This will also register the action=load event) */ recHelperObj = jxRecMgr.createJxRecHelper(thisObj._options); let basicInfo = thisObj._options; basicInfo.engine = thisObj._engine if (basicInfo.engine.type == 'api-1') { var options = { count: basicInfo['count'], adpositions: "", keywords: basicInfo['keywords'], title: basicInfo['title'], date_published: "2023-05-14", pagecategory: "MONEY", algo: "mixed" }; if(getCookie('kmps_usrid')){ var kg = { pagetype:basicInfo.engine.page_status, uid:getCookie('kmps_usrid'), ukid:getCookie('kmp_uid') } if(basicInfo.engine.page_status=='read'){ kg['excludeitemids'] = basicInfo.engine.excludeitemids; kg['multiFormat'] = true; } options['additional'] = { kg:kg }; } return recHelperObj.getJxRecommendations(options); } else { return fetchRecommendationsP(basicInfo, recHelperObj.getJxUserInfo()); } }) .then(function(resp) { if (thisObj._engine.type == 'api-3') { recResults = new Object recResults.items = resp.docs.result; } else { recResults = resp; } recResults.engine = thisObj._engine; if (!resp || !recResults.items || recResults.items.length == 0) { /*** * JXRECSDK NOTES 2 of 5 - * Call the error() function on the recHelper when either an error * has occured in the fetching or there are no recommended items * * (This will register the action=error event) */ recHelperObj.error(204); throw "no recommendation results"; } }) .then(function() { // everything is ready (recommendation results, css): document.getElementById("rekomendasi-konten-pilihan-untukmu-aiml").classList.remove("-loading"); document.querySelector('.wSpec-list').remove(); createDisplay(rand, thisObj._container, recResults, recHelperObj) .then(function() { toggleDropdown(); //observe lozad lozad('.lozad', { load: function(el) { el.src = el.dataset.src; el.onload = function() { el.classList.add('fade') } } }).observe() }) }) .catch(function(error) { console.log(`Unable to create recommendations widget ${error.stack} ${error.message}`); }); } } var limit_gtm_ready = 1; function check_gtm_ready() { if ('ga' in window) { // create a new instance of our widget based on the options const newW = new OneWidget(); newW.kickOff(); } else { const timeout_gtm_ready = setTimeout(check_gtm_ready, 500) limit_gtm_ready += 1; if (limit_gtm_ready > 10) { clearTimeout(timeout_gtm_ready); const newW = new OneWidget(); newW.kickOff(); } } } check_gtm_ready() document.querySelector('.wSpec-secret').addEventListener('click', function(e) { e.preventDefault(); let wSl = document.querySelectorAll('.wSpec-source'); if (wSl.length > 0) { for (let i = 0; i < wSl.length; i++) { wSl[i].classList.toggle('show') } } }) function trackEventGa(category, action, label) { if ("ga" in window) { ga(function() { tracker = ga.getAll()[0]; if (tracker) { tracker.send("event", category, action, label); console.log('track event ', category, action, label) } }) } } function formBody(obj) { let formBody = []; for (var property in obj) { let encodedKey = encodeURIComponent(property); let encodedValue = encodeURIComponent(obj[property]); formBody.push(encodedKey + "=" + encodedValue); } return formBody.join("&"); } function getCookie(name) { var name = name + '='; var cookies = decodeURIComponent(document.cookie).split(';'); for (var i = 0; i < cookies.length; i++) { var c = cookies[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } } function get_guid(url) { const videoPath = url.match(/\/watch\/(\d+)/); if (videoPath) { return `video.${videoPath[1]}`; } let arrayUrl = url.split('/'); let readPath = arrayUrl.indexOf('read'); if (arrayUrl[readPath + 1] == 'xml') { readPath += 1; } let year = arrayUrl[readPath + 1]; let month = arrayUrl[readPath + 2]; let date = arrayUrl[readPath + 3]; let id = arrayUrl[readPath + 4]; let guid = `.xml.${year}.${month}.${date}.${id}`; return guid; } function toggleDropdown() { let tdd = document.querySelectorAll('[data-dropdown]') if (!!tdd) { tdd.forEach((el) => { el.addEventListener('click', function() { el.parentElement.classList.toggle('-active') let saved = el.parentElement.getAttribute('data-saved') let kmps_usrid = getCookie('kmps_usrid'); if (kmps_usrid && !saved && el.parentElement.classList.contains('-active')) { let url = el.parentElement.getAttribute('data-url'); let guid = get_guid(url); check_bookmark( kmps_usrid, guid ).then(function(resp) { if (resp.hasOwnProperty('total_data')) { if (resp.total_data > 0) { el.parentElement.querySelector('.buttonBookmark').classList.add('-active'); el.parentElement.querySelector('.buttonBookmark').innerHTML = 'Hapus dari tersimpan'; el.parentElement.setAttribute('data-saved', 'true'); } else { el.parentElement.setAttribute('data-saved', 'false'); } } }) } }) document.addEventListener("click", function(e) { // console.log(e.target) if (el.contains(e.target)) { // console.log(tdd) } else { el.parentElement.classList.remove('-active') } }); }); } } function check_bookmark(kmps_usrid, guid) { let url = ` return new Promise(function(resolve, reject) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { resolve(JSON.parse(this.responseText)) } }; xmlhttp.open("GET", url, true); xmlhttp.send(); }); } function do_bookmark(pageurl, pos, userFeedback) { const wSpecItem = document.querySelector(`.wSpec-item[data-index="${pos}"]`); const btnBookmark = wSpecItem.querySelector('.buttonBookmark'); const kmps_usrid = getCookie('kmps_usrid'); const guid = get_guid(pageurl); const type = pageurl.match(/\/watch\/(\d+)/) ? 'video' : 'article'; if (kmps_usrid) { if (btnBookmark.classList.contains('-active')) { set_unbookmark({ guid: guid, kmps_usrid: kmps_usrid, type: type }).then(function(resp) { btnBookmark.classList.remove('-active'); btnBookmark.innerHTML = 'Simpan artikel'; reactionToast('Artikel berhasil dihapus dari list yang disimpan'); userFeedback.event('un-save'); }).catch(function(resp) { // message: "Data doesn't exists" if (resp.hasOwnProperty('message') && resp.message.includes('exist')) { btnBookmark.classList.remove('-active'); btnBookmark.innerHTML = 'Simpan artikel'; reactionToast('Artikel berhasil dihapus dari list yang disimpan'); } }) } else { const user_bookmark_url = ""; set_bookmark({ guid: guid, kmps_usrid: kmps_usrid, type: type, publisher: 'kompas', platform: 'desktop' }).then(function(resp) { btnBookmark.classList.add('-active'); btnBookmark.innerHTML = 'Hapus dari tersimpan'; reactionToast('Artikel berhasil disimpan', user_bookmark_url); userFeedback.event('save'); }).catch(function(resp) { // message: "Data already exist" if (resp.hasOwnProperty('message') && resp.message.includes('exist')) { btnBookmark.classList.add('-active'); btnBookmark.innerHTML = 'Hapus dari tersimpan'; reactionToast('Artikel berhasil disimpan', user_bookmark_url); } }) } } else { const login_url = "" + btoa(window.location.href); window.location.href = login_url; } } function set_bookmark(data) { const url = ""; return new Promise(function(resolve, reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 201) { resolve(JSON.parse(this.responseText)); } else if (this.readyState == 4 && this.status == 400) { reject(JSON.parse(this.responseText)); } }; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send(formBody(data)); }); } function set_unbookmark(data) { const url = ""; return new Promise(function(resolve, reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { resolve(JSON.parse(this.responseText)); } else if (this.readyState == 4 && this.status == 400) { reject(JSON.parse(this.responseText)); } }; xmlhttp.open("POST", url, true); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send(formBody(data)); }); } class UserFeedback { constructor(engine, pageurl, jxRecHelper, pos) { this.engine = engine; this.pageurl = pageurl; this.jxRecHelper = jxRecHelper; this.pos = pos; } event(feedback) { if (this.engine == 'C') { const xmlhttp = new XMLHttpRequest(); let params = { domain: 'kompas.com', ce_userid: getCookie('kmps_usrid'), ce_sessionid: getCookie('ukid'), ce_pageurl: this.pageurl, engine: 'C', ce_feedback: feedback } xmlhttp.open("GET", ' + formatParams(params)); xmlhttp.send(); } else if (this.engine == 'V') { if (feedback == 'share') { this.jxRecHelper.shared(this.pos); } else if (feedback == 'save') { this.jxRecHelper.bookmarked(this.pos); } else if (feedback == 'not-interested') { this.jxRecHelper.hidden(this.pos); } else if (feedback == 'un-not-interested') { this.jxRecHelper.unhidden(this.pos); } } } } function formatParams(params) { return "?" + Object .keys(params) .map(function(key) { return key + "=" + encodeURIComponent(params[key]) }) .join("&") } document.addEventListener("click", function(e){ let dx = document.querySelectorAll('[data-dropdown]') if(dx) { dx.forEach(function(el){ if(el.contains(e.target)) { el.parentElement.classList.toggle('-active') } else { el.parentElement.classList.remove('-active') } }) } })