Anti-Money Laundering Law of Bangladesh

First anti-money laundering legislation of the country is Money Laundering Prevention Act, 2002, which was effective from 7th April,2002 to 14th April,2008. It was replaced by the Money Laundering Prevention Ordinance on 15th April,2008; subsequently, the ordinance was passed by the national parliament and Money Laundering Prevention Act,2009 was enacted giving effectiveness from 15th April, 2009 (Gazette Notification:24th Feb,2009).

What is Money Laundering: Classic View

The process by which one conceals the existence, illegal source or illegal application of income, and then disguises that income to make it appear legitimate. That is, the money-launderer is converting his dirty money to clean money.

Reverse Money Laundering

The act of transferring/placing legitimate money and assets into an underground criminal network to support criminal activity. That is, one who is investing his clean money to dirty activities, he is laundering money.

Motivations for Laundering Money

There are numerous motivations for laundering money. Some notables are:

(a) Avoid revealing involvement in the underlying crime;
(b) Hide it so that the Government can’t take it away;
(c) Criminal needs it for future illegal activity;
(d) Be able to spend it!

Kinds of Criminals Launder money

Situations depend on country to country. In Bangladesh, mainly the following categories of persons are associated with money laundering –

(a) Public officials who receive bribes;
(b) Businessmen to finance smuggling, under-invoicing, over-invoicing;
(c) Human traffickers;
(d) Migrants to transfer assets;
(e) Drug dealers and terrorist financers.

Definition of Money Laundering as per section 2(L) of Money Laundering Prevention Act, 2002

In the earlier Act on anti-money laundering, two categories of activities were defined as money laundering, namely:

(a) Earned or acquired assets directly or indirectly through illegal means.
(b) Transfer, conversion, concealment of whereabouts of earned/acquired assets, which was earned directly or indirectly through illegal means, or assisting such activities.

Definition of Money Laundering as per section 2(k) of Money Laundering Prevention Act,2009

Four categories of activities have been defined as money laundering in the present Act, namely:

(a) Transfer, conversion, remitting abroad or bring from abroad to Bangladesh the proceeds or properties acquired through commission of a predicate offence, for the purpose of concealing or disguising the illicit origin of the money or property;
(b) Illegal remitting abroad of money or properties acquired/earned through legal or illegal means.
(c) To conduct, or attempt to conduct a financial transaction with an intent to avoid reporting requirements.
(d) To do or attempt to do such activities so that the illegitimate source of the fund or property can be concealed or disguised or knowingly assist to perform or conspire to perform such activities.

In brief, four categories of activities that are defined as money laundering in the new Act are:

(a) Transfer, conversion, remitting to and from Bangladesh involving proceeds of a predicate offence.
(b) Illegal remitting abroad of legally/illegally earned money/property.
(c) Transaction to avoid reporting requirements.
(d) To assist such activities.

List of Predicate Offences as per section 2(q)

Corruption and bribery;
Counterfeiting currency;
Counterfeiting documents;
Business of illegal arms;
Illicit dealings of narcotics, drugs and psychotropic substances;
Illicit dealings of stolen and other goods;
Kidnapping, illegal detention, hostage-taking;
Murder, grievous bodily injury;
Woman and child trafficking;
Smuggling and cross-border transfer of local and foreign currency;
Robbery or theft;
Trafficking human and illegal immigration;
Any other offence declared by Bangladesh Bank.

Reporting Agency as per section 2(L)

As we have seen that transaction to avoid reporting requirements has been defined as money laundering. Let us now see who are to reports, that is, which are reporting agencies:

(a) Bank/Financial Institutions;
(b) Insurance Companies;
(c) Money changers;
(d) Companies remitting money;
(e) Any such organization declared by Bangladesh Bank.

Responsibilities of Reporting Agency

Let us now see what are to be reported by the reporting agency:

(a) Keeping full information of its’ clients (KYC);
(b) Inform Bangladesh Bank proactively and immediately on suspicious transactions likely to be related to money laundering.

Suspicious Transaction as per section 2

Reporting agencies are to report suspicious transaction. Section 2 defines suspicious transaction as:

(a) Transaction that substantially deviates from usual transaction;
(b) Reasonable cause to believe that the transaction is related to any proceeds of crime.

Investigation and Trial under Money Laundering Prevention Act, 2002

As per section 5 of the Money Laundering Prevention Act, 2002, investigation was to be done by the Bangladesh Bank or any person authorized by Bangladesh Bank. And as per section 6 of the Money Laundering Prevention Act, 2002, all Session Judges were empowered for trial of money laundering cases.

Investigation and Trial under Money Laundering Prevention Act, 2009

Followings are the notable features of investigation and trial process under the Money Laundering Prevention Act, 2009:

(a) As per section 11, offences under the Act shall be cognizable, non-compoundable, non-bailable.
(b) Any individual may provide information to file First Information Report about the commission of a money laundering occurrence to the police station as per section 154 of CrPC.
(c) Offences under the Act considered as scheduled offences of the Anti-Corruption Commission Act, 2004; therefore, such offences can be investigated only by ACC (Section 9(1).
(d) To be tried by the Special Judge (Section 10).

Bank Account Freeze by Bangladesh Bank

Bangladesh Bank can issue order to any Bank/Financial Institutions to freeze an account for 30 days (can be extended further 30 days) where there are grounds to suspect that the transaction involves proceeds of crime (Section 23©). Special Judge can order continuation of such freezing (Section 10).

Freezing and Attachment of Property (Section 10)

Upon application of the investigating organization, the Court may give order of attachment of property, wherever situated, within or outside Bangladesh. Mutual Legal Assistance Request (MLAR) through the Attorney General Office is needed if the property is in outside of Bangladesh.

Punishment as per section 4(2)

Punishment for money laundering offences is imprisonment for a term not less than six months and not exceeding seven years. In addition, property involved with the offence shall be forfeited in favor of the state.

Enforcing Organizations

Bangladesh Bank: Keeping database and analyze facts provided by the reporting organizations. Giving direction to the reporting organization and monitoring their activities. Usually these are done by the Money Laundering Prevention Unit of Bangladesh Bank.

Financial Intelligence Unit (FIU) of BB: Exchanging information about suspicious transaction with FIU of other countries on the basis of signed contract.

Ministry of Home Affairs and Attorney-General Office: Central authority for MLAR.

Anti-Corruption Commission: Investigating Organization.

Burden of Proof/Evidence

There is no such provision in the Money Laundering Prevention Act that burden of proof lies with the accused. Collecting evidence of corroborative elements with predicate offences is important to prosecute. However, as per section 7 of the Criminal Law Amendment Act, 1958, when any person is charged of possessing pecuniary resources or property which is disproportionate to his known sources of income, for which he cannot satisfactorily account, it may be taken as a relevant fact in deciding whether he is guilty of the particular offence with which he is charged.

Bulk Cash Smuggling

Bulk cash smuggling cases are being prosecuted under section 16 of The Customs Act, 1969 and section 8(1) and 8(2) of The Foreign Exchange Regulation Act,1947

Setup PhpStrom In Ubuntu 12.04

You need to install Install Oracle Java 7 if its not in your machine.After this download and extract
Php Strop. Then move it to /opt folder, before this Run
sudo chmod 757 -R /opt to give access permission.

Then go to the Php strom bin dirictory and run these command:
cd /opt/phpstrom/bin
chmod +x
Thats it.

Install Oracle Java 7 in Ubuntu via PPA

This package provides Oracle Java JDK 7 (which includes Java JDK, JRE and the Java browser plugin). However, you can’t only install Oracle JRE – the PPA only provides the full Oracle JDK7 package.

To add our PPA and install the latest Oracle Java 7 in Ubuntu (supports Ubuntu 13.04, 12.10, 12.04, 11.10, 11.04 and 10.04), use the commands below:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

After the installation finishes, if you wish to see if it was successful, you can run the following command:

java -version

It should return something like this:

java version “1.7.0_10”
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

The package installs all the Java binaries, so you can also try “javac -version” which should return “javac 1.7.0_10” and so on (the “_10” part of the version can be different because I’m constantly updating the PPA with the latest Oracle Java 7 version). The current JDK version in the PPA is Oracle Java 7 Update 10 (7u10).

If for some reason, the Java version in use is not 1.7.0, you can try to run the following command:

sudo update-java-alternatives -s java-7-oracle

Update: the Oracle Java 7 (JDK & JRE) PPA is now available for Ubuntu 12.10 Quantal Quetzal and 13.04 Raring Ringtail.

Update 2: the installer now requires you accept the Oracle license before the installation begins. This is only required once. If for some reason you need the installation to be automated, you can run the following command to automatically accept the Oracle license:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections

Setting Java environment variables

To automatically set up the Java 7 environment variables, you can install the following package:

sudo apt-get install oracle-java7-set-default

If you’ve already installed oracle-java6-set-default or oracle-java8-set-default, they will be automatically removed when installing oracle-java7-set-default (and the environment variables will be set for Oracle Java 7 instead).

Removing Oracle Java 7

If you don’t want to use Oracle Java (JDK) 7 anymore and want to go back to OpenJDK, all you have to do is remove the Oracle JDK7 Installer and the previous Java (OpenJDK, etc.) version will be used:

sudo apt-get remove oracle-java7-installer

Setup Linux Environment

First, let me introduce LAMP Server to you. LAMP stands for Linux Apache MySql PERL/PHP. So, keep it in your mind that for installing the LAMP server, you must have Linux distribution such as Ubuntu and Debian in your pc. You also get these flavours in XAMPP (Linux version), what I showed already in my blog. But LAMP server will give you more efficiency and flexibility. I will guide you installing LAMP Server on Ubuntu in command line..

Well, before installing, type following command in terminal for necessary packages . .

sudo apt-get update

Now, first step is to install PHP 5 with Apache web server

sudo apt-get install apache2 php5 libapache2-mod-php5

Once installing is finished, please restart Apache server

sudo /etc/init.d/apache2 restart

Apache configuration file is located at /etc/apache2 /apache2.conf and web folder is /var/www. To make sure that PHP is installed and running properly. type following line..

sudo echo ” > /var/www/test.php

for giving permission you have to run this command
sudo chmod 757 -R /var/www

Then, open a browser and type http://localhost/test.php or http://IP_address/test.php and it will show you configuration and default setting.

Second step is to install MySql Databse server.

sudo apt-get install mysql-server mysql-client php5-mysql

After finishing the installation, it will prompt for password. You can change it’s password later on.

Third step is to install phpmyadmin. Basically , phpMyAdmin is a free software tool written in PHP intended to handle the administration of MySQL over the World Wide Web.

sudo apt-get install phpmyadmin

After finishing the installation, it will again prompt password two times. first one is for accessing Mysql and second one is for accessing phpMyadmin. phpMyadmin configuration file is located at /etc/phpmyadmin. Another thing is that to install phpMyadmin properly under apache server, you have to include following line to /etc/apache2/apache2.conf

sudo nano /etc/apache2/apache2.conf

then include following line..

Include /etc/phpmyadmin/apache.conf

Finally, save and close it and restart the apache server again. Point your browser to : http://localhost/phpmyadmin or http://IP_adress/phpmyadin. DONE…Your LAMP Server is ready for cooking web application..

Basic Python

Standard Data Types:

The data stored in memory can be of many types. For example, a person’s age is stored as a numeric value and his or her address is stored as alphanumeric characters. Python has various standard types that are used to define the operations possible on them and the storage method for each of them.

Python has five standard data types:

  • Numbers
  • String
  • List
  • Tuple
  • Dictionary

Python Lists:

lists are similar to arrays in C. One difference between them is that all the items belonging to a list can be of different data type.


list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list          # Prints complete list
print list[0]       # Prints first element of the list
print list[1:3]     # Prints elements starting from 2nd till 3rd 
print list[2:]      # Prints elements starting from 3rd element
print tinylist * 2  # Prints list two times
print list + tinylist # Prints concatenated lists

This will produce following result:

['abcd', 786, 2.23, 'john', 70.200000000000003]
[786, 2.23]
[2.23, 'john', 70.200000000000003]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']

Python Tuples:

A tuple is another sequence data type that is similar to the list. A tuple consists of a number of values separated by commas. Unlike lists, however, tuples are enclosed within parentheses.

The main differences between lists and tuples are: Lists are enclosed in brackets ( [ ] ), and their elements and size can be changed, while tuples are enclosed in parentheses ( ( ) ) and cannot be updated. Tuples can be thought of as read-only lists. For example:


tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print tuple           # Prints complete list
print tuple[0]        # Prints first element of the list
print tuple[1:3]      # Prints elements starting from 2nd till 3rd 
print tuple[2:]       # Prints elements starting from 3rd element
print tinytuple * 2   # Prints list two times
print tuple + tinytuple # Prints concatenated lists

This will produce following result:

('abcd', 786, 2.23, 'john', 70.200000000000003)
(786, 2.23)
(2.23, 'john', 70.200000000000003)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')

Following is invalid with tuple, because we attempted to update a tuple,which is not allowed. Similar case is possible with lists:


tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list

Python Dictionary:

Python’s dictionaries are kind of hash table type. They work like associative arrays or hashes found in Perl and consist of key-value pairs. A dictionary keys can be almost any Python type, but are usually numbers or strings. Values, on the other hand, can be any arbitrary Python object.

Dictionaries are enclosed by curly braces ( { } ) and values can be assigned and accessed using square braces ( [] ). For example:


dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

print dict['one']       # Prints value for 'one' key
print dict[2]           # Prints value for 2 key
print tinydict          # Prints complete dictionary
print tinydict.keys()   # Prints all the keys
print tinydict.values() # Prints all the values

This will produce following result:

This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

Dictionaries have no concept of order among elements. It is incorrect to say that the elements are “out of order”; they are simply unordered.