{"id":43808738,"url":"https://github.com/odenktools/php-bca","last_synced_at":"2026-02-05T23:05:38.739Z","repository":{"id":55392364,"uuid":"105284034","full_name":"odenktools/php-bca","owner":"odenktools","description":"Bank Central Asia Api","archived":false,"fork":false,"pushed_at":"2022-09-04T15:05:51.000Z","size":95,"stargazers_count":86,"open_issues_count":5,"forks_count":56,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-12-08T23:18:46.002Z","etag":null,"topics":["bank-central-asia","php","php-bca","php-library"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/odenktools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-29T14:50:19.000Z","updated_at":"2025-10-16T08:16:44.000Z","dependencies_parsed_at":"2022-08-14T23:11:02.780Z","dependency_job_id":null,"html_url":"https://github.com/odenktools/php-bca","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/odenktools/php-bca","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odenktools%2Fphp-bca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odenktools%2Fphp-bca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odenktools%2Fphp-bca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odenktools%2Fphp-bca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/odenktools","download_url":"https://codeload.github.com/odenktools/php-bca/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/odenktools%2Fphp-bca/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29137754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T23:02:30.544Z","status":"ssl_error","status_checked_at":"2026-02-05T23:02:24.945Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bank-central-asia","php","php-bca","php-library"],"created_at":"2026-02-05T23:05:37.935Z","updated_at":"2026-02-05T23:05:38.727Z","avatar_url":"https://github.com/odenktools.png","language":"PHP","readme":"[![SensioLabsInsight](https://insight.sensiolabs.com/projects/0a685157-ea99-4554-b302-9e8879d05648/small.png)](https://insight.sensiolabs.com/projects/0a685157-ea99-4554-b302-9e8879d05648)\n[![Build Status](https://travis-ci.org/odenktools/php-bca.svg?branch=master)](https://travis-ci.org/odenktools/php-bca)\n[![codecov](https://codecov.io/gh/odenktools/php-bca/branch/master/graph/badge.svg)](https://codecov.io/gh/odenktools/php-bca)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/odenktools/php-bca/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/odenktools/php-bca/?branch=master)\n[![Latest Stable Version](https://poser.pugx.org/odenktools/php-bca/v/stable)](https://packagist.org/packages/odenktools/php-bca)\n[![Latest Unstable Version](https://poser.pugx.org/odenktools/php-bca/v/unstable)](https://packagist.org/packages/odenktools/php-bca)\n[![Total Downloads](https://poser.pugx.org/odenktools/php-bca/downloads)](https://packagist.org/packages/odenktools/php-bca)\n\n# BCA (Bank Central Asia)\n\nNative PHP library untuk mengintegrasikan Aplikasi Anda dengan sistem BCA (Bank Central Asia). Untuk dokumentasi lebih jelas dan lengkap, silahkan kunjungi website resminya di [Developer BCA](https://developer.bca.co.id/documentation).\n\nUntuk Framework ```Laravel``` bisa menggunakan library [Odenktools Laravel BCA](https://github.com/odenktools/laravel-bca).\n\nJika merasa terbantu dengan adanya library ini, jangan lupa untuk kasih STAR untuk library ini.\n\n## PHP Version Support\n\n- [x] PHP 5.4.x\n- [x] PHP 5.5.x\n- [x] PHP 5.6.x\n- [x] PHP 7.0.x\n- [x] PHP 7.1.x\n- [x] PHP 7.2.x\n- [ ] PHP 7.3.x\n\nUntuk lebih detail silahkan kunjungi [PHP BCA TravisCI](https://travis-ci.org/odenktools/php-bca)\n\n## Fitur Library\n\n* [Installasi](https://github.com/odenktools/php-bca#instalasi)\n* [Setting](https://github.com/odenktools/php-bca#koneksi-dan-setting)\n* [Login](https://github.com/odenktools/php-bca#login)\n* [Informasi Saldo](https://github.com/odenktools/php-bca#balance-information)\n* [Transfer](https://github.com/odenktools/php-bca#fund-transfer)\n* [Mutasi Rekening](https://github.com/odenktools/php-bca#account-statement)\n* [Info Kurs](https://github.com/odenktools/php-bca#foreign-exchange-rate)\n* [Pencarian ATM Terdekat](https://github.com/odenktools/php-bca#nearest-atm-locator)\n* [Deposit Rate](https://github.com/odenktools/php-bca#deposit-rate)\n* [Generate Signature](https://github.com/odenktools/php-bca#generate-signature)\n* [How to contribute](https://github.com/odenktools/php-bca#how-to-contribute)\n\n### (NEW BCA API on December 2017)\n\nGet balance information\n\n```\n/fire/accounts/balance\n```\n\nGet beneficiary account’s information\n\n```\n/fire/accounts\n```\n\nGet status of a transaction\n\n```\n/fire/transactions\n```\n\nTransfer funds directly to beneficiary account\n\n```\n/fire/transactions/to-account\n```\n\nTransfer funds to beneficiary to be taken personally\n\n```\n/fire/transactions/cash-transfer\n```\n\nAmend cash transfer transaction’s detail\n\n```\n/fire/transactions/cash-transfer/amend\n```\n\nCancel cash transfer transaction\n\n```\n/fire/transactions/cash-transfer/cancel\n```\n\nGet status of payment by CompanyCode and CustomerNumber or RequestID\n\n```\n/va/payments?CompanyCode=\u0026RequestID=\n```\n\n### INSTALASI\n\n```bash\ncomposer require \"odenktools/php-bca\"\n```\n\n### KONEKSI DAN SETTING\n\nSebelum masuk ke tahap ```LOGIN``` pastikan seluruh kebutuhan seperti ```CORP_ID, CLIENT_KEY, CLIENT_SECRET, APIKEY, SECRETKEY``` telah diketahui.\n\n```php\n    $options = array(\n        'scheme'        =\u003e 'https',\n        'port'          =\u003e 443,\n        'host'          =\u003e 'sandbox.bca.co.id',\n        'timezone'      =\u003e 'Asia/Jakarta',\n        'timeout'       =\u003e 30,\n        'debug'         =\u003e true,\n        'development'   =\u003e true\n    );\n\n    // Setting default timezone Anda\n    \\Bca\\BcaHttp::setTimeZone('Asia/Jakarta');\n\n    // ATAU\n\n    // \\Bca\\BcaHttp::setTimeZone('Asia/Singapore');\n\n    $corp_id = \"BCAAPI2016\";\n    $client_key = \"NILAI-CLIENT-KEY-ANDA\";\n    $client_secret = \"NILAI-CLIENT-SECRET-ANDA\";\n    $apikey = \"NILAI-APIKEY-ANDA\";\n    $secret = \"SECRETKEY-ANDA\";\n\n    $bca = new \\Bca\\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret);\n\n    // ATAU\n\n    $bca = new \\Bca\\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret, $options);\n```\n\nMenggunakan custom **Curl Options**\n\n```php\n    $options = array(\n        'curl_options'  =\u003e array(\n            CURLOPT_SSL_VERIFYHOST =\u003e 0,\n            CURLOPT_SSLVERSION =\u003e 6,\n            CURLOPT_SSL_VERIFYPEER =\u003e false,\n            CURLOPT_TIMEOUT =\u003e 60\n        ),\n        'scheme'        =\u003e 'https',\n        'port'          =\u003e 443,\n        'host'          =\u003e 'sandbox.bca.co.id',\n        'timezone'      =\u003e 'Asia/Jakarta',\n        'timeout'       =\u003e 30,\n        'debug'         =\u003e true,\n        'development'   =\u003e true\n    );\n\n    // Setting default timezone Anda\n    \\Bca\\BcaHttp::setTimeZone('Asia/Jakarta');\n\n    // ATAU\n\n    // \\Bca\\BcaHttp::setTimeZone('Asia/Singapore');\n\n    $corp_id = \"BCAAPI2016\";\n    $client_key = \"NILAI-CLIENT-KEY-ANDA\";\n    $client_secret = \"NILAI-CLIENT-SECRET-ANDA\";\n    $apikey = \"NILAI-APIKEY-ANDA\";\n    $secret = \"SECRETKEY-ANDA\";\n\n    $bca = new \\Bca\\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret, $options);\n```\n\n### LOGIN\n\n```php\n    $corp_id = \"CORP_ID-ANDA\";\n    $client_key = \"NILAI-CLIENT-KEY-ANDA\";\n    $client_secret = \"NILAI-CLIENT-SECRET-ANDA\";\n    $apikey = \"NILAI-APIKEY-ANDA\";\n    $secret = \"SECRETKEY-ANDA\";\n\n    $bca = new \\Bca\\BcaHttp($corp_id, $client_key, $client_secret, $apikey, $secret);\n\n    // Request Login dan dapatkan nilai OAUTH\n    $response = $bca-\u003ehttpAuth();\n\n    // Cek hasil response berhasil atau tidak\n    echo json_encode($response);\n```\n\nSetelah Login berhasil pastikan anda menyimpan nilai ```TOKEN``` di tempat yang aman, karena nilai ```TOKEN``` tersebut agar digunakan untuk tugas tugas berikutnya.\n\n### BALANCE INFORMATION\n\nPastikan anda mendapatkan nilai ```TOKEN``` dan ```TOKEN``` tersebut masih berlaku (Tidak Expired).\n\n```php\n    // Ini adalah nilai token yang dihasilkan saat login\n    $token = \"MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB\";\n\n    //Nomor akun yang akan di ambil informasi saldonya, menggunakan ARRAY\n    $arrayAccNumber = array('0201245680', '0063001004', '1111111111');\n\n    $response = $bca-\u003egetBalanceInfo($token, $arrayAccNumber);\n\n    // Cek hasil response berhasil atau tidak\n    echo json_encode($response);\n```\n\n### FUND TRANSFER (UPDATED)\n\nPastikan anda mendapatkan nilai ```TOKEN``` dan ```TOKEN``` tersebut masih berlaku (Tidak Expired).\n\n```php\n    // Ini adalah nilai token yang dihasilkan saat login\n    $token = \"MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB\";\n\n    $amount = '50000.00';\n\n    // Nilai akun bank anda\n    $nomorakun = '0201245680';\n\n    // Nilai akun bank yang akan ditransfer\n    $nomordestinasi = '0201245681';\n\n    // Nomor PO, silahkan sesuaikan\n    $nomorPO = '12345/PO/2017';\n\n    // Nomor Transaksi anda, Silahkan generate sesuai kebutuhan anda\n    $nomorTransaksiID = '00000001';\n\n    $remark1 = 'Transfer Test Using Odenktools BCA';\n\n    $remark2 = 'Online Transfer Using Odenktools BCA';\n\n    // value hanya support idr dan usd\n    $mataUang = 'idr';\n\n    $response = $bca-\u003efundTransfers($token, \n                        $amount,\n                        $nomorakun,\n                        $nomordestinasi,\n                        $nomorPO,\n                        $remark1,\n                        $remark2,\n                        $nomorTransaksiID,\n                        $mataUang);\n\n    // Cek hasil response berhasil atau tidak\n    echo json_encode($response);\n```\n\nUntuk data ```remark1```, ```remark2```, ```nomorPO``` akan di replace menjadi ```lowercase``` dan dihapus ```whitespace```\n\n### ACCOUNT STATEMENT\n\nPastikan anda mendapatkan nilai ```TOKEN``` dan ```TOKEN``` tersebut masih berlaku (Tidak Expired).\n\n```php\n    // Ini adalah nilai token yang dihasilkan saat login\n    $token = \"MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB\";\n\n    // Nilai akun bank anda\n    $nomorakun = '0201245680';\n\n    // Tanggal start transaksi anda\n    $startdate = '2016-08-29';\n\n    // Tanggal akhir transaksi anda\n    $enddate = '2016-09-01';\n\n    $response = $bca-\u003egetAccountStatement($token, $nomorakun, $startdate, $enddate);\n\n    // Cek hasil response berhasil atau tidak\n    echo json_encode($response);\n```\n\n### FOREIGN EXCHANGE RATE\n\n```php\n    //Tipe rate :  bn, e-rate, tt, tc\n    $rateType = 'e-rate';\n\n    $mataUang = 'usd';\n\n    $response = $bca-\u003egetForexRate($token, $rateType, $mataUang);\n\n    // Cek hasil response berhasil atau tidak\n    echo json_encode($response);\n```\n\n### NEAREST ATM LOCATOR\n\n```php\n    $latitude = '-6.1900718';\n\n    $longitude = '106.797190';\n\n    $totalAtmShow = '10';\n\n    $radius = '20';\n\n    $response = $bca-\u003egetAtmLocation($token, $latitude, $longitude, $totalAtmShow, $radius);\n\n    // Cek hasil response berhasil atau tidak\n    echo json_encode($response);\n```\n\n### DEPOSIT RATE\n\nPastikan anda mendapatkan nilai ```TOKEN``` dan ```TOKEN``` tersebut masih berlaku (Tidak Expired).\n\n```php\n    // Ini adalah nilai token yang dihasilkan saat login\n    $token = \"MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB\";\n\n    $response       = $bca-\u003egetDepositRate($token);\n\n    // Cek hasil response berhasil atau tidak\n    echo json_encode($response);\n```\n\n### GENERATE SIGNATURE\n\nSaat berguna untuk keperluan testing.\n\n```php\n\n    $secret = \"NILAI-SECRET-ANDA\";\n\n    // Ini adalah nilai token yang dihasilkan saat login\n    $token = \"MvXPqa5bQs5U09Bbn8uejBE79BjI3NNCwXrtMnjdu52heeZmw9oXgB\";\n\n    $uriSign = \"GET:/general/info-bca/atm\";\n\n    // Format timestamp harus dalam ISO8601 format (yyyy-MM-ddTHH:mm:ss.SSSTZD)\n    $isoTime = \"2016-02-03T10:00:00.000+07:00\";\n\n    $bodyData = array();\n\n    //nilai body anda disini\n    $bodyData['a'] = \"BLAAA-BLLLAA\";\n    $bodyData['b'] = \"BLEHH-BLLLAA\";\n\n    //ketentuan BCA array harus disort terlebih dahulu\n    ksort($bodyData);\n\n    $authSignature = \\Bca\\BcaHttp::generateSign($uriSign, $token, $secret, $isoTime, $bodyData);\n\n    echo $authSignature;\n```\n\n# TESTING\n\nUntuk melakukan testing lakukan ```command``` berikut ini\n\n```bash\ncomposer run-script test\n```\n\nAtau menggunakan PHPUnit\n\n```bash\nvendor/bin/phpunit --verbose --coverage-text\n```\n\n# How to contribute\n\n* Lakukan **FORK** code.\n* Tambahkan **FORK** pada git remote anda\n\nUntuk contoh commandline nya :\n\n```bash\ngit remote add fork git@github.com:$USER/php-bca.git  # Tambahkan fork pada remote, $USER adalah username GitHub anda\n```\n\nMisalkan :\n\n```bash\ngit remote add fork git@github.com:johndoe/php-bca.git\n```\n\n* Setelah FORK, buat feature ```branch``` baru dengan cara\n\n```bash\ngit checkout -b feature/my-new-feature origin/develop \n```\n\n* Lakukan pekerjaan pada repository anda tersebut. \n* Sebelum melakukan commit lakukan ```Reformat kode``` anda menggunakan sesuai [PSR-2 Coding Style Guide](https://github.com/odenktools/php-bca#guidelines)\n* Setelah selesai lakukan commit\n\n```bash\ngit commit -am 'Menambahkan fitur A..B..C..D'\n```\n\n* Lakukan ```Push``` ke branch yang telah dibuat\n\n```bash\ngit push fork feature/my-new-feature\n```\n\n* Lakukan PullRequest pada GitHub, setelah pekerjaan anda akan kami review. Selesai.\n\n## Guidelines\n\n* Koding berstandart [PSR-2 Coding Style Guide](http://www.php-fig.org/psr/psr-2/)\n* Pastikan seluruh test yang dilakukan telah pass, jika anda menambahkan fitur baru, anda diharus kan untuk membuat unit test terkait dengan fitur tersebut.\n* Pergunakan [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) untuk menghindari conflict dan merge kode\n* Jika anda menambahkan fitur, mungkin anda juga harus mengupdate halaman dokumentasi pada repository ini.\n\n# LICENSE\n\nMIT License\n\nCopyright (c) 2017 odenktools\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodenktools%2Fphp-bca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fodenktools%2Fphp-bca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fodenktools%2Fphp-bca/lists"}