PHPackages                             bni-api/bni-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. bni-api/bni-php

ActiveLibrary[API Development](/categories/api)

bni-api/bni-php
===============

Official BNI API SDK for PHP

2.3.4(1y ago)01371[2 issues](https://github.com/bni-api/bni-php-sdk/issues)MITPHP

Since Sep 18Pushed 1y ago5 watchersCompare

[ Source](https://github.com/bni-api/bni-php-sdk)[ Packagist](https://packagist.org/packages/bni-api/bni-php)[ RSS](/packages/bni-api-bni-php/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (5)Versions (5)Used By (0)

BNI API SDK - PHP
=================

[](#bni-api-sdk---php)

This is the Official PHP client / library for BNI API. Please visit [Digital Services](https://digitalservices.bni.co.id/en/) for more information about our product and visit our documentation page at [API Documentation](https://digitalservices.bni.co.id/documentation/public/en) for more technical details.

1. Installation
---------------

[](#1-installation)

### 1.1 Using Composer

[](#11-using-composer)

[download](https://getcomposer.org/download/) Composer and run command line

```
composer require bni-api/bni-php

```

### 1.2 Manual Installation

[](#12-manual-installation)

If you are not using Composer, you can clone or [download](https://github.com/bni-api/bni-php-sdk/archive/refs/heads/main.zip) this repository.

2. Usage
--------

[](#2-usage)

### 2.1 Choose an API Product

[](#21-choose-an-api-product)

We have 5 API products you can use:

- [One Gate Payment](https://digitalservices.bni.co.id/api-products-detail/one-gate-payment) - A solution for a company to integrate its application / system with banking transaction services. [documentation](https://digitalservices.bni.co.id/documentation/)
- [Snap BI](https://apidevportal.bi.go.id/snap/info) - Integrate with SNAP BI [documentation](https://apidevportal.bi.go.id/snap/api-services)
- [RDN](https://digitalservices.bni.co.id/api-products-detail/rdn-service) - 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](https://digitalservices.bni.co.id/documentation/)
- [RDL](https://digitalservices.bni.co.id/api-products-detail/p2p-lending) - 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](https://digitalservices.bni.co.id/documentation/)
- [RDF](https://digitalservices.bni.co.id/api-products-detail/fintech-account-service) - is a solution for fintech companies registered with OJK in opening digital accounts to facilitate fund transfer transactions by utilizing API technology. [documentation](https://digitalservices.bni.co.id/documentation/)
- [BNI Move](https://digitalservices.bni.co.id/api-products) check out our API here. [documentation](https://digitalservices.bni.co.id/documentation)

### 2.2 Client Initialization and Configuration

[](#22-client-initialization-and-configuration)

Get your client key and server key from [Menu - Applications](https://digitalservices.bni.co.id/en/profile-menu/apps)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

[](#22a-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

[](#get-balance)

```
$getbalance = $ogp->getBalance(
  $accountNo = '115471119'
);
```

#### Get In House Inquiry

[](#get-in-house-inquiry)

```
$getInHouseInquiry = $ogp->getInHouseInquiry(
  $accountNo = '115471119'
);
```

#### Do Payment

[](#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

[](#get-payment-status)

```
$getPaymentStatus $ogp->getPaymentStatus(
  $customerReferenceNumber = '20170227000000000020' // max 20 char client defined reference number
);
```

#### Get Inter Bank Inquiry

[](#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

[](#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

[](#22b-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

[](#balance-inquiry)

```
$balanceInquiry = $snap->balanceInquiry(
  $partnerReferenceNo = '202010290000000000002', // optional
  $accountNo = '0115476117'
);
```

#### Internal Account Inquiry

[](#internal-account-inquiry)

```
$internalAccountInquiry = $snap->internalAccountInquiry(
    $partnerReferenceNo = '2023062601000000000509',
    $beneficiaryAccountNo = '317125693'
);
```

#### Transaction Status Inquiry

[](#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

[](#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

[](#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

[](#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

[](#external-account-inquiry)

```
$externalAccountInquiry = $snap->externalAccountInquiry(
  $beneficiaryAccountNo = '123456789',
  $partnerReferenceNo = '20240226163135663', // optional
  $beneficiaryBankCode = 'CENAIDJAXXX',
  $additionalInfoDeviceId = '09864ADCASA', // optional
  $additionalInfoChannel = 'API' // optional
);
```

#### Transfer Inter Bank

[](#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

[](#22c-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

[](#account-binding)

```
$response = $autopay->accountBinding(
  $partnerReferenceNo = '123456789009876544002',
  $bankAccountNo = '92345678902787',
  $bankCardNo = '92345678902788',
  $limit = 250000.00,
  $email = 'burhanaji2@gmail.com',
  $custIdMerchant = '92345678902788'
);
```

#### Account Unbinding

[](#account-unbinding)

```
$response = $autopay->accountUnbinding(
  $partnerReferenceNo = '12345678900987654484',
  $bankCardToken =
      'vvSWxFEu5p6ONXT3qEoZ2L5o7YJ4UjH7Mee3SDuxigMixnfVuOnQpbJxuboXijOAlna' .
      'ow6XVqP7VCyQqSSzdv24OQjGl7IRuUAVcAgzKzJQoybSLPk0kKKCdqJqwrOXZ',
  $chargeToken = 'Xob2d8BlMxVyQRloodpujCIvuFortJ',
  $otp = '',
  $custIdMerchant = '12313213131'
);
```

#### Balance Inquiry

[](#balance-inquiry-1)

```
$response = $autopay->balanceInquiry(
  $partnerReferenceNo = '2023102899999999999902',
  $accountNo = '9234567846',
  $amount = 1000.00,
  $bankCardToken =
      'q3jcQJJTrBvYzUt2VyzY68Klw8mG400K5NWaAL5JdTbjAqjXBG9LZr' .
      '0F4khuVdrezjXFLEJRzvmF5xLZhT2fJj73FbQlf9FeqGCNW8HKSEOpzz83HYkUaQWBX2TPkaJM'
);
```

#### Debit / Payment

[](#debit--payment)

```
$response = $autopay->debit(
  $partnerReferenceNo = '123456789009876477',
  $bankCardToken      =
      'YKYpg4xqTK1IuhlGQnrpiXHnxTcFx8ntjVfggWddVtTqsD8aUvi74oSijcVF0eV9' .
      '1zVbCganXNROsFUURUzPLWbSZp5yHKmMnijS4D2yrMeJ7yJHHTYtRHpCP2GcoXJ3',
  $chargeToken = 'ZDkLEQDZspP9FbahGkJoo3NmiSC6p0',
  $otp         = '',
  $amount      = [
      'value'    => '1000.00',
      'currency' => 'IDR'
  ],
  $remark      = 'remark'
);
```

#### Debit Refund

[](#debit-refund)

```
$response = $autopay->debitRefund(
  $originalPartnerReferenceNo = '123456789009876408',
  $partnerRefundNo            = '223456789009876487',
  $refundAmount               = [
      'value'    => 1000.00,
      'currency' => 'IDR'
  ],
  $reason     = 'Complaint from customer',
  $refundType = 'full'
);
```

#### Debit Status

[](#debit-status)

```
$response = $autopay->debitStatus(
  $originalPartnerReferenceNo = '123456789009876408',
  $transactionDate            = '20220419',
  $serviceCode                = '54',
  $amount                     = [
      'value'    => 1000.00,
      'currency' => 'IDR'
  ]
);
```

#### Limit Inquiry

[](#limit-inquiry)

```
$response = $autopay->limitInquiry(
  $partnerReferenceNo = '2020102900000000000001',
  $bankCardToken      = '6d7963617264746f6b656e',
  $accountNo          = '7382382957893840',
  $amount             = 200000.00
);
```

#### OTP

[](#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

[](#verify-otp)

```
$response = $autopay->verifyOtp(
  $originalPartnerReferenceNo = '123456789009876533',
  $originalReferenceNo        = '7979309099377000825262452054700150269920536175232508970766089901',
  $chargeToken                = 'dI7aK7aEbdgeMDnG2ygcEHQpyJQINm',
  $otp                        = '359677'
);
```

#### Set Limit

[](#set-limit)

```
$response = $autopay->setLimit(
  $partnerReferenceNo = '12345678900987654484',
  $bankCardToken      =
      'vvSWxFEu5p6ONXT3qEoZ2L5o7YJ4UjH7Mee3SDuxigMixnfVuOnQpbJxuboXijOAlna' .
      'ow6XVqP7VCyQqSSzdv24OQjGl7IRuUAVcAgzKzJQoybSLPk0kKKCdqJqwrOXZ',
  $limit              = 250000.00,
  $chargeToken        = '931C5fuQgmB3FICZOag30G9p0X4Gtb',
  $otp                = '898201'
);
```

### 2.2.D Ecollection

[](#22d-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

[](#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

[](#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

[](#inquiry-billing)

```
$inquiryBilling = $ecoll->inquiryBilling(
    $trxId = "trx-id6",
);
```

#### Inactive Billing

[](#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

[](#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

[](#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

[](#register-investors-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

[](#inquiry-account-info)

```
$inquiryAccountInfo = $rdf->inquiryAccountInfo(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account Balance

[](#inquiry-account-balance)

```
$inquiryAccountBalance = $rdf->inquiryAccountBalance(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account History

[](#inquiry-account-history)

```
$inquiryAccountHistory = $rdf->inquiryAccountHistory(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Payment Using Transfer

[](#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

[](#inquiry-payment-status)

```
$inquiryPaymentStatus = $rdf->inquiryPaymentStatus(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before

)
```

#### Payment Using Clearing

[](#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

[](#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

[](#inquiry-interbank-account)

```
$inquiryInterbankAccount = $rdf->inquiryInterbankAccount(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117',
  $beneficiaryBankCode = '013',
  $beneficiaryAccountNumber = '01300000',
)
```

#### Payment Using Interbank

[](#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

[](#22e-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

[](#face-recognition-1)

```
$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

[](#register-investor-1)

```
$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

[](#register-investors-account-1)

```
$registerInvestorAccount = $rdn->registerInvestorAccount(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $cifNumber = '9100749959',
  $currency = 'IDR',
  $openAccountReason = '2',
  $sourceOfFund = '1',
  $branchId = '0259',
  $bnisId = '19050813401',
  $sre = 'NI001CX5U00109',
)
```

#### Inquiry Account Info

[](#inquiry-account-info-1)

```
$inquiryAccountInfo = $rdn->inquiryAccountInfo(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account Balance

[](#inquiry-account-balance-1)

```
$inquiryAccountBalance = $rdn->inquiryAccountBalance(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account History

[](#inquiry-account-history-1)

```
$inquiryAccountHistory = $rdn->inquiryAccountHistory(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Payment Using Transfer

[](#payment-using-transfer-1)

```
$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

[](#inquiry-payment-status-1)

```
$inquiryPaymentStatus = $rdn->inquiryPaymentStatus(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before

)
```

#### Payment Using Clearing

[](#payment-using-clearing-1)

```
$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

[](#payment-using-rtgs-1)

```
$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

[](#inquiry-interbank-account-1)

```
$inquiryInterbankAccount = $rdn->inquiryInterbankAccount(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117',
  $beneficiaryBankCode = '013',
  $beneficiaryAccountNumber = '01300000',
)
```

#### Payment Using Interbank

[](#payment-using-interbank-1)

```
$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

[](#22f-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

[](#face-recognition-2)

```
$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

[](#check-sid)

```
$checkSID = $rdn->checkSID(
  $companyId = 'SANDBOX',
  $parentCompanyId = 'KSEI',
  $requestUuid = '52D3E26AA18D4FCA',
  $participantId = 'NI001',
  $sidNumber = 'IDD1206M9527805',
  $accountNumberOnKsei = 'NI001CRKG00146',
  $branchCode = '0259',
  $ack = 'N'
);
```

#### Register Investor

[](#register-investor-2)

```
$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

[](#register-investors-account-2)

```
$registerInvestorAccount = $rdn->registerInvestorAccount(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $cifNumber = '9100749959',
  $currency = 'IDR',
  $openAccountReason = '2',
  $sourceOfFund = '1',
  $branchId = '0259',
  $bnisId = '19050813401',
  $sre = 'NI001CX5U00109',
)
```

#### Send Data Static

[](#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

[](#inquiry-account-info-2)

```
$inquiryAccountInfo = $rdn->inquiryAccountInfo(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account Balance

[](#inquiry-account-balance-2)

```
$inquiryAccountBalance = $rdn->inquiryAccountBalance(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account History

[](#inquiry-account-history-2)

```
$inquiryAccountHistory = $rdn->inquiryAccountHistory(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Payment Using Transfer

[](#payment-using-transfer-2)

```
$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

[](#inquiry-payment-status-2)

```
$inquiryPaymentStatus = $rdn->inquiryPaymentStatus(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before

)
```

#### Payment Using Clearing

[](#payment-using-clearing-2)

```
$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

[](#payment-using-rtgs-2)

```
$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

[](#inquiry-interbank-account-2)

```
$inquiryInterbankAccount = $rdn->inquiryInterbankAccount(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117',
  $beneficiaryBankCode = '013',
  $beneficiaryAccountNumber = '01300000',
)
```

#### Payment Using Interbank

[](#payment-using-interbank-2)

```
$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)

[](#22g-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

[](#face-recognition-3)

```
$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

[](#register-investor-3)

```
$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

[](#register-investors-account-3)

```
$registerInvestorAccount = $rdl->registerInvestorAccount(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $cifNumber = '9100749959',
  $currency = 'IDR',
  $openAccountReason = '2',
  $sourceOfFund = '1',
  $branchId = '0259',
  $bnisId = '19050813401',
  $sre = 'NI001CX5U00109',
)
```

#### Inquiry Account Info

[](#inquiry-account-info-3)

```
$inquiryAccountInfo = $rdl->inquiryAccountInfo(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account Balance

[](#inquiry-account-balance-3)

```
$inquiryAccountBalance = $rdl->inquiryAccountBalance(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Inquiry Account History

[](#inquiry-account-history-3)

```
$inquiryAccountHistory = $rdl->inquiryAccountHistory(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117'
)
```

#### Payment Using Transfer

[](#payment-using-transfer-3)

```
$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

[](#inquiry-payment-status-3)

```
$inquiryPaymentStatus = $rdl->inquiryPaymentStatus(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $requestedUuid = 'E8C6E0027F6E429F' // UUID that has been processed before

)
```

#### Payment Using Clearing

[](#payment-using-clearing-3)

```
$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

[](#payment-using-rtgs-3)

```
$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

[](#inquiry-interbank-account-3)

```
$inquiryInterbankAccount = $rdl->inquiryInterbankAccount(
  $companyId = 'NI001',
  $parentCompanyId = 'KSEI',
  $accountNumber = '0115476117',
  $beneficiaryBankCode = '013',
  $beneficiaryAccountNumber = '01300000',
)
```

#### Payment Using Interbank

[](#payment-using-interbank-3)

```
$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

[](#22h-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

[](#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

[](#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
--------

[](#get-help)

- [Digital Services](https://digitalservices.bni.co.id/en/)
- [API documentation](https://digitalservices.bni.co.id/documentation/public/en)
- [Stackoverflow](https://stackoverflow.com/users/19817167/bni-api-management)
- Can't find answer you looking for? email to

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

607d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/fc8b3637e5c923766a760a6e07646744a25928dec6ef6aa9c8903eb3251c24cb?d=identicon)[bni-apm](/maintainers/bni-apm)

---

Top Contributors

[![AchillesJorgie](https://avatars.githubusercontent.com/u/16997514?v=4)](https://github.com/AchillesJorgie "AchillesJorgie (1 commits)")[![ramadhnkahfix](https://avatars.githubusercontent.com/u/50817317?v=4)](https://github.com/ramadhnkahfix "ramadhnkahfix (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bni-api-bni-php/health.svg)

```
[![Health](https://phpackages.com/badges/bni-api-bni-php/health.svg)](https://phpackages.com/packages/bni-api-bni-php)
```

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[convertkit/convertkitapi

Kit PHP SDK for the Kit API

2167.1k1](/packages/convertkit-convertkitapi)[mapado/rest-client-sdk

Rest Client SDK for hydra API

1125.9k2](/packages/mapado-rest-client-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
