bni-api/bni-php
Official BNI API SDK for PHP
Maintainers
Requires
- guzzlehttp/guzzle: 7.*
Requires (Dev)
- codeception/codeception: 4.2.x-dev
- codeception/module-asserts: ^1.0.0
- codeception/module-phpbrowser: ^1.0.0
- phpunit/phpunit: ^9.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT 6cfda97be10dee272587524ffc7eb2a28c659a59
- BNI-APM <bni.dgl.apm.woop@gmail.com>
This package is auto-updated.
Last update: 2026-06-24 10:44:59 UTC
README
This is the Official PHP client / library for BNI API. Please visit Digital Services for more information about our product and visit our documentation page at API Documentation for more technical details.
1. Installation
1.1 Using Composer
download Composer and run command line
composer require bni-api/bni-php
1.2 Manual Installation
If you are not using Composer, you can clone or download this repository.
2. Usage
2.1 Choose an API Product
We have 5 API products you can use:
- One Gate Payment - A solution for a company to integrate its application / system with banking transaction services. documentation
- Snap BI - Integrate with SNAP BI documentation
- RDN - is BNI's innovation in providing solutions for securities companies in opening digital accounts for investors and can facilitate book-entry transactions by integrating them with API. documentation
- RDL - is the provision of financial services to bring together lenders and loan recipients in order to enter into lending and borrowing agreements in rupiah currency directly through an electronic system using the internet network. documentation
- RDF - is a solution for fintech companies registered with OJK in opening digital accounts to facilitate fund transfer transactions by utilizing API technology. documentation
- BNI Move check out our API here. documentation
2.2 Client Initialization and Configuration
Get your client key and server key from Menu - Applications Create API client object
use BniApi\BniPhp\Bni; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' );
2.2.A One Gate Payment
Create One Gate Payment class object
use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\OneGatePayment; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' ); $ogp = new OneGatePayment($bni);
Available methods for One Gate Payment class
Get Balance
$getbalance = $ogp->getBalance( $accountNo = '115471119' );
Get In House Inquiry
$getInHouseInquiry = $ogp->getInHouseInquiry( $accountNo = '115471119' );
Do Payment
$doPayment = $ogp->doPayment( $customerReferenceNumber = '20170227000000000020', // max 20 char client defined reference number $paymentMethod = '0', // 0: In-house (intra BNI), 1: RTGS transfer, 2: Kliring transfer $debitAccountNo = '113183203', $creditAccountNo = '115471119', $valueDate = '20170227000000000', $valueCurrency = 'IDR', $valueAmount = '100500', $remark = '', // optional $beneficiaryEmailAddress = 'mail@example.com', // optional $beneficiaryName = 'Mr.X', // optional max 50 char (mandatory if paymentMethod 1 / 2) $beneficiaryAddress1 = 'Jakarta', // optional max 50 char (mandatory if paymentMethod 1 / 2) $beneficiaryAddress2 = '', // optional max 50 char $destinationBankCode = '', // optional (mandatory if paymentMethod 1 / 2) $chargingModelId = 'OUR' // OUR: fee will be paid by sender (default), BEN: fee will be paid by beneficary, SHA: fee divided );
Get Payment Status
$getPaymentStatus $ogp->getPaymentStatus( $customerReferenceNumber = '20170227000000000020' // max 20 char client defined reference number );
Get Inter Bank Inquiry
$getInterBankInquiry = $ogp->getInterBankInquiry( $customerReferenceNumber = '20170227000000000021', // max 20 char client defined reference number $accountNum = '113183203', $destinationBankCode = '014', $destinationAccountNum = '3333333333' );
Get Inter Bank Payment
$getInterBankPayment = $ogp->getInterBankPayment( $customerReferenceNumber = '20170227000000000021', // max 20 char client defined reference number $amount = '100500', $destinationAccountNum = '3333333333', $destinationAccountName = 'BENEFICIARY NAME 1 UNTIL HERE1BENEFICIARY NAME 2(OPT) UNTIL HERE2', $destinationBankCode = '014', $destinationBankName = 'BCA', $accountNum = '115471119', $retrievalReffNum = '100000000024' // refference number for Interbank Transaction );
2.2.B Snap BI
Create Snap BI class object
use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\SnapBI; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' ); $snap = new SnapBI( $bni = '{instance-of-bni-class}', $privateKeyPath = '{your-path-private-key}', $channelId = '{your-channel}' );
Available methods for Snap BI class
Balance Inquiry
$balanceInquiry = $snap->balanceInquiry( $partnerReferenceNo = '202010290000000000002', // optional $accountNo = '0115476117' );
Internal Account Inquiry
$internalAccountInquiry = $snap->internalAccountInquiry( $partnerReferenceNo = '2023062601000000000509', $beneficiaryAccountNo = '317125693' );
Transaction Status Inquiry
$transactionStatusInquiry = $snap->transactionStatusInquiry( $originalPartnerReferenceNo = '2022051314142684054947620220513141426840549476', // optional $originalReferenceNo = '', // transaction reference number $originalExternalId = '', // optional $serviceCode = '22', // SNAP BI service code $transactionDate = '', $amountValue = '100000001.00', $amountCurrency = 'IDR', $addtionalInfoDeviceId = '09864ADCASA', // optinal $additionalInfoChannel = 'API', // optinal );
Transfer Intra Bank
$transferIntraBank = $snap->transferIntraBank( $partnerReferenceNo = '20220426170737356898', // transaction reference number $amountValue = '55000.00', $amountCurrency = 'IDR', $beneficiaryAccountNo = '0115476151', $beneficiaryEmail = '', // optional $currency = 'IDR', // optional $customerReference = '20220426170737356898', // optional $feeType = 'OUR', // OUR: fee will be paid by sender (default), BEN: fee will be paid by beneficary, SHA: fee divided $remark = '20220426170737356898', // optional $sourceAccountNo = '0115476117', $transactionDate = '2022-04-26T17:07:36+07:00', $additionalInfoDeviceId = '', $additionalInfoChannel = '' );
Transfer RTGS
$transferRTGS = $snap->transferRTGS( $partnerReferenceNo = '20220513095840015788857', // transaction reference number $amountValue = '100000001.00', $amountCurrency = 'IDR', $beneficiaryAccountName = 'PTXYZIndonesia', $beneficiaryAccountNo = '3333333333', $beneficiaryAccountAddress = 'JlGatotSubrotoNoKav18RW1KuninganBarKecMampangPrptKotaJakartaSelatanDaerahKhususIbukotaJakarta12710' $beneficiaryBankCode = 'CENAIDJA', $beneficiaryBankName = 'PTBANKCENTRALASIATbk', // optional $beneficiaryCustomerResidence = '1', $beneficiaryCustomerType = '2', $beneficiaryEmail = '-', // optional $currency = 'IDR' $customerReference = '20220513095840015788857', $feeType = 'OUR', // OUR: fee will be paid by sender (default), BEN: fee will be paid by beneficary, SHA: fee divided $kodepos = '-', // optional $recieverPhone = '-', // optional $remark = 'DANA20220513095840015788857PTZomatoMediaIndonesia', // optional $senderCustomerResidence = '-', // optional $senderCustomerType = '-', // optional $senderPhone = '-', // optional $sourceAccountNo = '0115476151', $transactionDate = '2020-06-17T01:03:04+07:00', $additionalInfoDeviceId = '', // optional $additionalInfoChannel = '' // optional );
Transfer SKNBI
$transferSKNBI = $snap->transferSKNBI( $partnerReferenceNo = '2022101829912160579817066466', // transaction reference number $amountValue = '120000000.00', $amountCurrency = 'IDR', $beneficiaryAccountName = 'Trinawati Eka Putri', $beneficiaryAccountNo = '0115476117', $beneficiaryAccountAddress = 'Palembang', // optional $beneficiaryBankCode = 'CENAIDJAXXX', $beneficiaryBankName = 'PT. BANK CENTRAL ASIA Tbk.', // optional $beneficiaryCustomerResidence = '1', $beneficiaryCustomerType = '1', $beneficiaryEmail = 'xyz@xyz.co.id' // optional $currency = 'IDR', // optional $customerReference = '56756567567', $feeType = 'BEN', // OUR: fee will be paid by sender (default), BEN: fee will be paid by beneficary, SHA: fee divided $kodepos = '-', // optional $recieverPhone = '-', // optional $remark = 'remark test', // optional $senderCustomerResidence = '', // optional $senderCustomerType = '', // optional $senderPhone = '', // optional $sourceAccountNo = '0115476151', $transactionDate = '2022-10-18T09:44:44+07:00', $additionalInfoDeviceId = 'Biaya Hidup Pihak Asing', // optional $additionalInfoChannel = '01' // optional );
External Account Inquiry
$externalAccountInquiry = $snap->externalAccountInquiry( $beneficiaryAccountNo = '123456789', $partnerReferenceNo = '20240226163135663', // optional $beneficiaryBankCode = 'CENAIDJAXXX', $additionalInfoDeviceId = '09864ADCASA', // optional $additionalInfoChannel = 'API' // optional );
Transfer Inter Bank
$transferInterBank = $snap->transferInterBank( $partnerReferenceNo = '20240226163731861', // transaction reference number $amountValue = '20000', $amountCurrency = 'IDR', $beneficiaryAccountName = 'SRI ANGGRAINI', $beneficiaryAccountNo = '0000000986', $beneficiaryAccountAddress = 'Palembang', // optional $beneficiaryBankCode = '014', $beneficiaryBankName = 'Bank BCA', // optional $beneficiaryEmail = 'customertes@outlook.com', // optional $currency = 'IDR', // optional $customerReference = '20231219085', // optional $sourceAccountNo = '1000161562', $transactionDate = '2024-01-04T08:37:08+07:00', $feeType = 'OUR', // OUR: fee will be paid by sender (default), BEN: fee will be paid by beneficary, SHA: fee divided $additionalInfoDeviceId = '09864ADCASA', // optional $additionalInfoChannel = 'API' // optional );
2.2.C Autopay SNAP
Create Autopay class object
use BniApi\BniPhp\api\Autopay; $autopay = new Autopay( $merchantID, $clientID, $clientSecret, $privateKey, 'alpha' );
Available methods for Autopay class
Account Binding
$response = $autopay->accountBinding( $partnerReferenceNo = '123456789009876544002', $bankAccountNo = '92345678902787', $bankCardNo = '92345678902788', $limit = 250000.00, $email = 'burhanaji2@gmail.com', $custIdMerchant = '92345678902788' );
Account Unbinding
$response = $autopay->accountUnbinding( $partnerReferenceNo = '12345678900987654484', $bankCardToken = 'vvSWxFEu5p6ONXT3qEoZ2L5o7YJ4UjH7Mee3SDuxigMixnfVuOnQpbJxuboXijOAlna' . 'ow6XVqP7VCyQqSSzdv24OQjGl7IRuUAVcAgzKzJQoybSLPk0kKKCdqJqwrOXZ', $chargeToken = 'Xob2d8BlMxVyQRloodpujCIvuFortJ', $otp = '', $custIdMerchant = '12313213131' );
Balance Inquiry
$response = $autopay->balanceInquiry( $partnerReferenceNo = '2023102899999999999902', $accountNo = '9234567846', $amount = 1000.00, $bankCardToken = 'q3jcQJJTrBvYzUt2VyzY68Klw8mG400K5NWaAL5JdTbjAqjXBG9LZr' . '0F4khuVdrezjXFLEJRzvmF5xLZhT2fJj73FbQlf9FeqGCNW8HKSEOpzz83HYkUaQWBX2TPkaJM' );
Debit / Payment
$response = $autopay->debit( $partnerReferenceNo = '123456789009876477', $bankCardToken = 'YKYpg4xqTK1IuhlGQnrpiXHnxTcFx8ntjVfggWddVtTqsD8aUvi74oSijcVF0eV9' . '1zVbCganXNROsFUURUzPLWbSZp5yHKmMnijS4D2yrMeJ7yJHHTYtRHpCP2GcoXJ3', $chargeToken = 'ZDkLEQDZspP9FbahGkJoo3NmiSC6p0', $otp = '', $amount = [ 'value' => '1000.00', 'currency' => 'IDR' ], $remark = 'remark' );
Debit Refund
$response = $autopay->debitRefund( $originalPartnerReferenceNo = '123456789009876408', $partnerRefundNo = '223456789009876487', $refundAmount = [ 'value' => 1000.00, 'currency' => 'IDR' ], $reason = 'Complaint from customer', $refundType = 'full' );
Debit Status
$response = $autopay->debitStatus( $originalPartnerReferenceNo = '123456789009876408', $transactionDate = '20220419', $serviceCode = '54', $amount = [ 'value' => 1000.00, 'currency' => 'IDR' ] );
Limit Inquiry
$response = $autopay->limitInquiry( $partnerReferenceNo = '2020102900000000000001', $bankCardToken = '6d7963617264746f6b656e', $accountNo = '7382382957893840', $amount = 200000.00 );
OTP
$response = $autopay->otp( $partnerReferenceNo = '12345678900987654484', $journeyID = '12345678900987654484', $bankCardToken = 'vvSWxFEu5p6ONXT3qEoZ2L5o7YJ4UjH7Mee3SDuxigMixnfVuOnQpbJxuboXijOAlna' . 'ow6XVqP7VCyQqSSzdv24OQjGl7IRuUAVcAgzKzJQoybSLPk0kKKCdqJqwrOXZ', $otpReasonCode = '54', $additionalInfo = [ 'expiredOtp' => "2023-07-26T18:56:11+07:00", ], $externalStoreId = '134928924949479' );
Verify OTP
$response = $autopay->verifyOtp( $originalPartnerReferenceNo = '123456789009876533', $originalReferenceNo = '7979309099377000825262452054700150269920536175232508970766089901', $chargeToken = 'dI7aK7aEbdgeMDnG2ygcEHQpyJQINm', $otp = '359677' );
Set Limit
$response = $autopay->setLimit( $partnerReferenceNo = '12345678900987654484', $bankCardToken = 'vvSWxFEu5p6ONXT3qEoZ2L5o7YJ4UjH7Mee3SDuxigMixnfVuOnQpbJxuboXijOAlna' . 'ow6XVqP7VCyQqSSzdv24OQjGl7IRuUAVcAgzKzJQoybSLPk0kKKCdqJqwrOXZ', $limit = 250000.00, $chargeToken = '931C5fuQgmB3FICZOag30G9p0X4Gtb', $otp = '898201' );
2.2.D Ecollection
Create Ecollection class object
use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\SnapBI; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', // clientId consists prefix and client id separated with dash (-) character. Example: 8-000. 8 as prefix, 000 as client id $clientSecret = '{your-client-secret}', // client secret key $apiKey = '{your-api-key}', // can be emptied $apiSecret = '{your-api-secret}', // can be emptied $appName = '{your-app-name}' // can be emptied ); $ecoll = new Ecollection($bni);
Available methods for Ecollection class
Create Billing
$createBilling = $ecoll->createBilling( $trxId = "trx-id899", // mandatory $trxAmount = "100000", // mandatory except billing type is "o" (open payment) $billingType = "c", // mandatory. Credit: o,c,i,m,n,x. Debit: p,j,d,z $customerName = "test name", // mandatory $customerEmail = "mail@example.com", // optional $customerPhone = "08123123", // optional $virtualAccount = "", // optional, if empty then autogenerated $datetimeExpired = "2023-09-31T17:00:00+07:00", // optional $description = "test description update", // optional );
Update Billing
$updateBilling = $ecoll->updateBilling( $trxId = "trx-id6", // mandatory $trxAmount = "100000", // mandatory except billing type is "o" (open payment) $customerName = "test name updated", // mandatory $customerEmail = "", // optional $customerPhone = "", // optional $virtualAccount = "8325201106194912", // optional $datetimeExpired = "2023-09-31T17:00:00+07:00", // optional $description = "test description update", // optional );
Inquiry Billing
$inquiryBilling = $ecoll->inquiryBilling( $trxId = "trx-id6", );
Inactive Billing
$inactiveBilling = $ecoll->inactiveBilling( $trxId = "trx-id6", // mandatory $virtualAccount = "8325201106194911" // mandatory ); ### 2.2.C Fintech Account Service (RDF) Create `RDF` Class Object ```php use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\RDF; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' ); $rdf = new RDF( $bni = '{instance-of-bni-class}', $privateKeyPath = '{your-path-private-key}', $channelId = '{your-channel}' );
Face Recognition
$faceRecognition = $rdf->faceRecognition( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $firstName = 'MOHAMMAD', $middleName = 'BAQER', $lastName = 'ZALQAD', $idNumber = '0141111121260118', // Identity Number (KTP only) $birthDate = '29-09-2021', // format : DD-MM-YYYY $birthPlace = 'BANDUNG', $gender = 'M', // βMβ or βFβ $cityAddress = 'Bandung', $stateProvAddress = 'Jawa Barat', $addressCountry = 'ID', // e.g.: βIDβ $streetAddress1 = 'bandung', $streetAddress2 = 'bandung', $postCodeAddress = '40914', $country = 'ID', // e.g.: βIDβ $selfiePhoto = '29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuP', // Base64 encoded selfie photo );
Register Investor
$registerInvestor = $rdf->registerInvestor( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $uuidFaceRecog = '492F33851D634CFB', // RequestUuid successed value from Face Recognition API (KYC valid) $title = '01', $firstName = 'Agus', $middleName = '', $lastName = 'Saputra', $optNPWP = '1', // β1β or β0β (Default β1β) $NPWPNum = '001058893408123', $nationality = 'ID', // e.g.: βIDβ $domicileCountry = 'ID', // e.g.: βIDβ $religion = '2', $birthPlace = 'Semarang', $birthDate = '14081982', // DDMMYYYY $gender = 'M', // βMβ or βFβ $isMarried = 'S', $motherMaidenName = 'Dina Maryati', $jobCode = '01', $education = '07', $idType = '01', $idNumber = '4147016201959998', // Identity Number (KTP only) $idIssuingCity = 'Jakarta Barat', $idExpiryDate = '26102099', // ddMMyyyy $addressStreet = 'Jalan Mawar Melati', $addressRtRwPerum = '003009Sentosa', $addressKel = 'Cengkareng Barat', $addressKec = 'Cengkareng/Jakarta Barat', $zipCode = '11730', $homePhone1 = '0214', // Area code, e.g. 021 (3 - 4 digit) If not exist, fill with β9999β $homePhone2 = '7459', // Number after area code (min 4 digit) If not exist, fill with β99999999β $officePhone1 = '', // Area code, e.g. 021 $officePhone2 = '', // Number after area code $mobilePhone1 = '0812', // Operator code, e.g. 0812 (4 digit) If not exist, fill with β0899β $mobilePhone2 = '12348331', // Number after operator code (min 6 digit) If not exist, fill with β999999β $faxNum1 = '', // Area code, e.g. 021 $faxNum2 = '', // Number after area code $email = 'agus.saputra@gmail.com', $monthlyIncome = '8000000', $branchOpening = '0259', $institutionName = 'PT. BNI SECURITIES', $sid = 'IDD280436215354', $employerName = 'Salman', // Employer Name / Company Name $employerAddDet = 'St Baker', // Employer street address / home street address $employerAddCity = 'Arrandelle', // Employer city address / home city address $jobDesc = 'Pedagang' // Current investor job, $ownedBankAccNo = '0337109074', // Investorβs owned bank account $idIssuingDate = '10122008' // Issue date, e.g.: β10122016β );
Register Investor's Account
$registerInvestorAccount = $rdf->registerInvestorAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $cifNumber = '9100749959', $currency = 'IDR', $openAccountReason = '2', $sourceOfFund = '1', $branchId = '0259', $bnisId = '19050813401', $sre = 'NI001CX5U00109', )
Inquiry Account Info
$inquiryAccountInfo = $rdf->inquiryAccountInfo( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account Balance
$inquiryAccountBalance = $rdf->inquiryAccountBalance( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account History
$inquiryAccountHistory = $rdf->inquiryAccountHistory( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Payment Using Transfer
$paymentUsingTransfer = $rdf->paymentUsingTransfer( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '0115471119', $currency = 'IDR', // e.g., βIDRβ $amount = '11500', $remark = 'Test RDN' // Recommended for the reconciliation purpose )
Inquiry Payment Status
$inquiryPaymentStatus = $rdf->inquiryPaymentStatus( $companyId = 'NI001', $parentCompanyId = 'KSEI', $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before )
Payment Using Clearing
$paymentUsingClearing = $rdf->paymentUsingClearing( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = '140397', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 15000, $remark = 'Test kliring', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Payment Using RTGS
$paymentUsingRTGS = $rdf->paymentUsingRTGS( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = 'CENAIDJA', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 120000000, $remark = 'Test rtgs', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Inquiry Interbank Account
$inquiryInterbankAccount = $rdf->inquiryInterbankAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryBankCode = '013', $beneficiaryAccountNumber = '01300000', )
Payment Using Interbank
$paymentUsingInterbank = $rdf->paymentUsingInterbank( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAccountName = 'KEN AROK', // Get from Inquiry Interbank Account $beneficiaryBankCode = '014', $beneficiaryBankName = 'BANK BCA', // Get from Inquiry Interbank Account $amount = 15000, )
2.2.E RDF Service
Create RDF Class Object
use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\RDF; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' ); $rdn = new RDF( $bni = '{instance-of-bni-class}', $privateKeyPath = '{your-path-private-key}', $channelId = '{your-channel}' );
Face Recognition
$faceRecognition = $rdn->faceRecognition( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $firstName = 'MOHAMMAD', $middleName = 'BAQER', $lastName = 'ZALQAD', $idNumber = '0141111121260118', // Identity Number (KTP only) $birthDate = '29-09-2021', // format : DD-MM-YYYY $birthPlace = 'BANDUNG', $gender = 'M', // βMβ or βFβ $cityAddress = 'Bandung', $stateProvAddress = 'Jawa Barat', $addressCountry = 'ID', // e.g.: βIDβ $streetAddress1 = 'bandung', $streetAddress2 = 'bandung', $postCodeAddress = '40914', $country = 'ID', // e.g.: βIDβ $selfiePhoto = '29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuP', // Base64 encoded selfie photo );
Register Investor
$registerInvestor = $rdn->registerInvestor( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $uuidFaceRecog = '492F33851D634CFB', // RequestUuid successed value from Face Recognition API (KYC valid) $title = '01', $firstName = 'Agus', $middleName = '', $lastName = 'Saputra', $optNPWP = '1', // β1β or β0β (Default β1β) $NPWPNum = '001058893408123', $nationality = 'ID', // e.g.: βIDβ $domicileCountry = 'ID', // e.g.: βIDβ $religion = '2', $birthPlace = 'Semarang', $birthDate = '14081982', // DDMMYYYY $gender = 'M', // βMβ or βFβ $isMarried = 'S', $motherMaidenName = 'Dina Maryati', $jobCode = '01', $education = '07', $idType = '01', $idNumber = '4147016201959998', // Identity Number (KTP only) $idIssuingCity = 'Jakarta Barat', $idExpiryDate = '26102099', // ddMMyyyy $addressStreet = 'Jalan Mawar Melati', $addressRtRwPerum = '003009Sentosa', $addressKel = 'Cengkareng Barat', $addressKec = 'Cengkareng/Jakarta Barat', $zipCode = '11730', $homePhone1 = '0214', // Area code, e.g. 021 (3 - 4 digit) If not exist, fill with β9999β $homePhone2 = '7459', // Number after area code (min 4 digit) If not exist, fill with β99999999β $officePhone1 = '', // Area code, e.g. 021 $officePhone2 = '', // Number after area code $mobilePhone1 = '0812', // Operator code, e.g. 0812 (4 digit) If not exist, fill with β0899β $mobilePhone2 = '12348331', // Number after operator code (min 6 digit) If not exist, fill with β999999β $faxNum1 = '', // Area code, e.g. 021 $faxNum2 = '', // Number after area code $email = 'agus.saputra@gmail.com', $monthlyIncome = '8000000', $branchOpening = '0259', $institutionName = 'PT. BNI SECURITIES', $sid = 'IDD280436215354', $employerName = 'Salman', // Employer Name / Company Name $employerAddDet = 'St Baker', // Employer street address / home street address $employerAddCity = 'Arrandelle', // Employer city address / home city address $jobDesc = 'Pedagang' // Current investor job, $ownedBankAccNo = '0337109074', // Investorβs owned bank account $idIssuingDate = '10122008' // Issue date, e.g.: β10122016β );
Register Investor's Account
$registerInvestorAccount = $rdn->registerInvestorAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $cifNumber = '9100749959', $currency = 'IDR', $openAccountReason = '2', $sourceOfFund = '1', $branchId = '0259', $bnisId = '19050813401', $sre = 'NI001CX5U00109', )
Inquiry Account Info
$inquiryAccountInfo = $rdn->inquiryAccountInfo( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account Balance
$inquiryAccountBalance = $rdn->inquiryAccountBalance( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account History
$inquiryAccountHistory = $rdn->inquiryAccountHistory( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Payment Using Transfer
$paymentUsingTransfer = $rdn->paymentUsingTransfer( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '0115471119', $currency = 'IDR', // e.g., βIDRβ $amount = 11500, $remark = 'Test RDN' // Recommended for the reconciliation purpose )
Inquiry Payment Status
$inquiryPaymentStatus = $rdn->inquiryPaymentStatus( $companyId = 'NI001', $parentCompanyId = 'KSEI', $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before )
Payment Using Clearing
$paymentUsingClearing = $rdn->paymentUsingClearing( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = '140397', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 15000, $remark = 'Test kliring', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Payment Using RTGS
$paymentUsingRTGS = $rdn->paymentUsingRTGS( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = 'CENAIDJA', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 120000000, $remark = 'Test rtgs', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Inquiry Interbank Account
$inquiryInterbankAccount = $rdn->inquiryInterbankAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryBankCode = '013', $beneficiaryAccountNumber = '01300000', )
Payment Using Interbank
$paymentUsingInterbank = $rdn->paymentUsingInterbank( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAccountName = 'KEN AROK', // Get from Inquiry Interbank Account $beneficiaryBankCode = '014', $beneficiaryBankName = 'BANK BCA', // Get from Inquiry Interbank Account $amount = 15000, )
2.2.F RDN Service
Create RDN Class Object
use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\RDN; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' ); $rdn = new RDN( $bni = '{instance-of-bni-class}', $privateKeyPath = '{your-path-private-key}', $channelId = '{your-channel}' );
Face Recognition
$faceRecognition = $rdn->faceRecognition( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $firstName = 'MOHAMMAD', $middleName = 'BAQER', $lastName = 'ZALQAD', $idNumber = '0141111121260118', // Identity Number (KTP only) $birthDate = '29-09-2021', // format : DD-MM-YYYY $birthPlace = 'BANDUNG', $gender = 'M', // βMβ or βFβ $cityAddress = 'Bandung', $stateProvAddress = 'Jawa Barat', $addressCountry = 'ID', // e.g.: βIDβ $streetAddress1 = 'bandung', $streetAddress2 = 'bandung', $postCodeAddress = '40914', $country = 'ID', // e.g.: βIDβ $selfiePhoto = '29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuP', // Base64 encoded selfie photo );
Check SID
$checkSID = $rdn->checkSID( $companyId = 'SANDBOX', $parentCompanyId = 'KSEI', $requestUuid = '52D3E26AA18D4FCA', $participantId = 'NI001', $sidNumber = 'IDD1206M9527805', $accountNumberOnKsei = 'NI001CRKG00146', $branchCode = '0259', $ack = 'N' );
Register Investor
$registerInvestor = $rdn->registerInvestor( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $uuidFaceRecog = '492F33851D634CFB', // RequestUuid successed value from Face Recognition API (KYC valid) $title = '01', $firstName = 'Agus', $middleName = '', $lastName = 'Saputra', $optNPWP = '1', // β1β or β0β (Default β1β) $NPWPNum = '001058893408123', $nationality = 'ID', // e.g.: βIDβ $domicileCountry = 'ID', // e.g.: βIDβ $religion = '2', $birthPlace = 'Semarang', $birthDate = '14081982', // DDMMYYYY $gender = 'M', // βMβ or βFβ $isMarried = 'S', $motherMaidenName = 'Dina Maryati', $jobCode = '01', $education = '07', $idType = '01', $idNumber = '4147016201959998', // Identity Number (KTP only) $idIssuingCity = 'Jakarta Barat', $idExpiryDate = '26102099', // ddMMyyyy $addressStreet = 'Jalan Mawar Melati', $addressRtRwPerum = '003009Sentosa', $addressKel = 'Cengkareng Barat', $addressKec = 'Cengkareng/Jakarta Barat', $zipCode = '11730', $homePhone1 = '0214', // Area code, e.g. 021 (3 - 4 digit) If not exist, fill with β9999β $homePhone2 = '7459', // Number after area code (min 4 digit) If not exist, fill with β99999999β $officePhone1 = '', // Area code, e.g. 021 $officePhone2 = '', // Number after area code $mobilePhone1 = '0812', // Operator code, e.g. 0812 (4 digit) If not exist, fill with β0899β $mobilePhone2 = '12348331', // Number after operator code (min 6 digit) If not exist, fill with β999999β $faxNum1 = '', // Area code, e.g. 021 $faxNum2 = '', // Number after area code $email = 'agus.saputra@gmail.com', $monthlyIncome = '8000000', $branchOpening = '0259', $institutionName = 'PT. BNI SECURITIES', $sid = 'IDD280436215354', $employerName = 'Salman', // Employer Name / Company Name $employerAddDet = 'St Baker', // Employer street address / home street address $employerAddCity = 'Arrandelle', // Employer city address / home city address $jobDesc = 'Pedagang' // Current investor job, $ownedBankAccNo = '0337109074', // Investorβs owned bank account $idIssuingDate = '10122008' // Issue date, e.g.: β10122016β );
Register Investor's Account
$registerInvestorAccount = $rdn->registerInvestorAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $cifNumber = '9100749959', $currency = 'IDR', $openAccountReason = '2', $sourceOfFund = '1', $branchId = '0259', $bnisId = '19050813401', $sre = 'NI001CX5U00109', )
Send Data Static
$sendDataStatic = $rdn->sendDataStatic( $companyId = 'SPS App', $parentCompanyId = 'KSEI', $participantCode = 'NI001', // Institution code, e.g: βNI001β $participantName = 'PT. BNI SECURITIES', // Institution name, e.g.: βPT. BNI SECURITIESβ $investorName = 'SUMARNO', $investorCode = 'IDD250436742277', // Investor code, e.g.: βIDD250436742277β $investorAccountNumber = 'NI001042300155', // e.g.: βNI001042300155β $bankAccountNumber = '242345393', // e.g.: β242345393β $activityDate = '20180511', // yyyyMMdd, e.g: β20180511β $activity = 'O' // (O)pening / (C)lose / (B)lock Account / (U)nblock Account )
Inquiry Account Info
$inquiryAccountInfo = $rdn->inquiryAccountInfo( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account Balance
$inquiryAccountBalance = $rdn->inquiryAccountBalance( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account History
$inquiryAccountHistory = $rdn->inquiryAccountHistory( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Payment Using Transfer
$paymentUsingTransfer = $rdn->paymentUsingTransfer( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '0115471119', $currency = 'IDR', // e.g., βIDRβ $amount = 11500, $remark = 'Test RDN' // Recommended for the reconciliation purpose )
Inquiry Payment Status
$inquiryPaymentStatus = $rdn->inquiryPaymentStatus( $companyId = 'NI001', $parentCompanyId = 'KSEI', $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before )
Payment Using Clearing
$paymentUsingClearing = $rdn->paymentUsingClearing( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = '140397', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 15000, $remark = 'Test kliring', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Payment Using RTGS
$paymentUsingRTGS = $rdn->paymentUsingRTGS( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = 'CENAIDJA', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 120000000, $remark = 'Test rtgs', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Inquiry Interbank Account
$inquiryInterbankAccount = $rdn->inquiryInterbankAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryBankCode = '013', $beneficiaryAccountNumber = '01300000', )
Payment Using Interbank
$paymentUsingInterbank = $rdn->paymentUsingInterbank( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAccountName = 'KEN AROK', // Get from Inquiry Interbank Account $beneficiaryBankCode = '014', $beneficiaryBankName = 'BANK BCA', // Get from Inquiry Interbank Account $amount = 15000, )
2.2.G P2P Lending Service (RDL)
Create RDL Class Object
use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\RDL; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' ); $rdl = new RDL( $bni = '{instance-of-bni-class}', $privateKeyPath = '{your-path-private-key}', $channelId = '{your-channel}' );
Face Recognition
$faceRecognition = $rdl->faceRecognition( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $firstName = 'MOHAMMAD', $middleName = 'BAQER', $lastName = 'ZALQAD', $idNumber = '0141111121260118', // Identity Number (KTP only) $birthDate = '29-09-2021', // format : DD-MM-YYYY $birthPlace = 'BANDUNG', $gender = 'M', // βMβ or βFβ $cityAddress = 'Bandung', $stateProvAddress = 'Jawa Barat', $addressCountry = 'ID', // e.g.: βIDβ $streetAddress1 = 'bandung', $streetAddress2 = 'bandung', $postCodeAddress = '40914', $country = 'ID', // e.g.: βIDβ $selfiePhoto = '29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuP', // Base64 encoded selfie photo );
Register Investor
$registerInvestor = $rdl->registerInvestor( $companyId = 'SANDBOX', $parentCompanyId = 'STI_CHS', $uuidFaceRecog = '492F33851D634CFB', // RequestUuid successed value from Face Recognition API (KYC valid) $title = '01', $firstName = 'Agus', $middleName = '', $lastName = 'Saputra', $optNPWP = '1', // β1β or β0β (Default β1β) $NPWPNum = '001058893408123', $nationality = 'ID', // e.g.: βIDβ $domicileCountry = 'ID', // e.g.: βIDβ $religion = '2', $birthPlace = 'Semarang', $birthDate = '14081982', // DDMMYYYY $gender = 'M', // βMβ or βFβ $isMarried = 'S', $motherMaidenName = 'Dina Maryati', $jobCode = '01', $education = '07', $idType = '01', $idNumber = '4147016201959998', // Identity Number (KTP only) $idIssuingCity = 'Jakarta Barat', $idExpiryDate = '26102099', // ddMMyyyy $addressStreet = 'Jalan Mawar Melati', $addressRtRwPerum = '003009Sentosa', $addressKel = 'Cengkareng Barat', $addressKec = 'Cengkareng/Jakarta Barat', $zipCode = '11730', $homePhone1 = '0214', // Area code, e.g. 021 (3 - 4 digit) If not exist, fill with β9999β $homePhone2 = '7459', // Number after area code (min 4 digit) If not exist, fill with β99999999β $officePhone1 = '', // Area code, e.g. 021 $officePhone2 = '', // Number after area code $mobilePhone1 = '0812', // Operator code, e.g. 0812 (4 digit) If not exist, fill with β0899β $mobilePhone2 = '12348331', // Number after operator code (min 6 digit) If not exist, fill with β999999β $faxNum1 = '', // Area code, e.g. 021 $faxNum2 = '', // Number after area code $email = 'agus.saputra@gmail.com', $monthlyIncome = '8000000', $branchOpening = '0259', $institutionName = 'PT. BNI SECURITIES', $sid = 'IDD280436215354', $employerName = 'Salman', // Employer Name / Company Name $employerAddDet = 'St Baker', // Employer street address / home street address $employerAddCity = 'Arrandelle', // Employer city address / home city address $jobDesc = 'Pedagang' // Current investor job, $ownedBankAccNo = '0337109074', // Investorβs owned bank account $idIssuingDate = '10122008' // Issue date, e.g.: β10122016β );
Register Investor's Account
$registerInvestorAccount = $rdl->registerInvestorAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $cifNumber = '9100749959', $currency = 'IDR', $openAccountReason = '2', $sourceOfFund = '1', $branchId = '0259', $bnisId = '19050813401', $sre = 'NI001CX5U00109', )
Inquiry Account Info
$inquiryAccountInfo = $rdl->inquiryAccountInfo( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account Balance
$inquiryAccountBalance = $rdl->inquiryAccountBalance( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Inquiry Account History
$inquiryAccountHistory = $rdl->inquiryAccountHistory( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117' )
Payment Using Transfer
$paymentUsingTransfer = $rdl->paymentUsingTransfer( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '0115471119', $currency = 'IDR', // e.g., βIDRβ $amount = 11500, $remark = 'Test RDN' // Recommended for the reconciliation purpose )
Inquiry Payment Status
$inquiryPaymentStatus = $rdl->inquiryPaymentStatus( $companyId = 'NI001', $parentCompanyId = 'KSEI', $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before )
Payment Using Clearing
$paymentUsingClearing = $rdl->paymentUsingClearing( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = '140397', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 15000, $remark = 'Test kliring', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Payment Using RTGS
$paymentUsingRTGS = $rdl->paymentUsingRTGS( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAddress1 = 'Jakarta', $beneficiaryAddress2 = '', $beneficiaryBankCode = 'CENAIDJA', $beneficiaryName = 'Panji Samudra', $currency = 'IDR', // e.g., βIDRβ $amount = 120000000, $remark = 'Test rtgs', // Recommended for the reconciliation purpose $chargingType = 'OUR' )
Inquiry Interbank Account
$inquiryInterbankAccount = $rdl->inquiryInterbankAccount( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryBankCode = '013', $beneficiaryAccountNumber = '01300000', )
Payment Using Interbank
$paymentUsingInterbank = $rdl->paymentUsingInterbank( $companyId = 'NI001', $parentCompanyId = 'KSEI', $accountNumber = '0115476117', $beneficiaryAccountNumber = '3333333333', $beneficiaryAccountName = 'KEN AROK', // Get from Inquiry Interbank Account $beneficiaryBankCode = '014', $beneficiaryBankName = 'BANK BCA', // Get from Inquiry Interbank Account $amount = 15000, )
2.2.H Digiloan BNI Move
Create Bni Move Class Object
use BniApi\BniPhp\Bni; use BniApi\BniPhp\api\RDL; $bni = new Bni( $env = 'sandbox', // dev, sandbox, prod $clientId = '{your-client-id}', $clientSecret = '{your-client-secret}', $apiKey = '{your-api-key}', $apiSecret = '{your-api-secret}', $appName = '{your-app-name}' );
Prescreening
$bniMove = new BniMove($bni) $prescreening = $bniMove->prescreening( $kodeMitra = 'BNI', $npp = '', $namaLengkapKtp = 'Muhammad Haikal Madani', $noKtp = '3174052209980002', $noHandphone = '085921658045', $alamatUsaha = 'jakarta', $provinsiUsaha = '06', $kotaUsaha = '143', $kecamatanUsaha = '1074', $kelurahanUsaha = '4254', $kodePosUsaha = '11450', $sektorEkonomi = '2', $totalPenjualan = 50000000, $jangkaWaktu = '12', $jenisPinjaman = '1', $maximumKredit = 50000000, $jenisKelamin = '1', $tanggalLahir = '1998-10-07', $subSektorEkonomi = '050111', $deskripsi = 'Usaha Ternak Perikanan', $Email = 'muhammadhaikalmadani@mail.com' );
Save Image
$bniMove = new BniMove($bni) $prescreening = $bniMove->saveImage( $Id = 'MJO2024022000004', $deskripsi = 'Foto Identitas KTP', $jenisDokumen = 'A03', $namaFile = 'Foto KTP', $extensionFile = 'png', $dataBase64 = '{image}' #convert your image to base64 );
Get help
- Digital Services
- API documentation
- Stackoverflow
- Can't find answer you looking for? email to apisupport@bni.co.id
