NAME
Business::ID::BCA - Parse/validate BCA account number
VERSION
This document describes version 0.05 of Business::ID::BCA (from Perl
distribution Business-ID-BCA), released on 2014-08-16.
SYNOPSIS
use Business::ID::BCA::Account qw(parse_bca_account);
my $res = parse_bca_account(account => '6000327555');
DESCRIPTION
This module parses/validates BCA account number. BCA (Bank Central Asia)
is one of the major banks in Indonesia.
It also contains a routine to list known BCA branches. Data is retrieved
from the Gudang Data project (http://github.com/sharyanto/gudangdata ).
Indonesian keywords: struktur nomor rekening BCA, format rekening BCA,
daftar kode cabang BCA
FUNCTIONS
list_bca_branches(%args) -> [status, msg, result, meta]
BCA branches.
REPLACE ME
Arguments ('*' denotes required arguments):
* city_code => *str*
Only return records where the 'city_code' field equals specified
value.
* city_code.contains => *str*
Only return records where the 'city_code' field contains specified
text.
* city_code.in => *array*
Only return records where the 'city_code' field is in the specified
values.
* city_code.is => *str*
Only return records where the 'city_code' field equals specified
value.
* city_code.isnt => *str*
Only return records where the 'city_code' field does not equal
specified value.
* city_code.max => *str*
Only return records where the 'city_code' field is less than or
equal to specified value.
* city_code.min => *str*
Only return records where the 'city_code' field is greater than or
equal to specified value.
* city_code.not_contains => *str*
Only return records where the 'city_code' field does not contain
specified text.
* city_code.not_in => *array*
Only return records where the 'city_code' field is not in the
specified values.
* city_code.xmax => *str*
Only return records where the 'city_code' field is less than
specified value.
* city_code.xmin => *str*
Only return records where the 'city_code' field is greater than
specified value.
* city_name => *str*
Only return records where the 'city_name' field equals specified
value.
* city_name.contains => *str*
Only return records where the 'city_name' field contains specified
text.
* city_name.in => *array*
Only return records where the 'city_name' field is in the specified
values.
* city_name.is => *str*
Only return records where the 'city_name' field equals specified
value.
* city_name.isnt => *str*
Only return records where the 'city_name' field does not equal
specified value.
* city_name.max => *str*
Only return records where the 'city_name' field is less than or
equal to specified value.
* city_name.min => *str*
Only return records where the 'city_name' field is greater than or
equal to specified value.
* city_name.not_contains => *str*
Only return records where the 'city_name' field does not contain
specified text.
* city_name.not_in => *array*
Only return records where the 'city_name' field is not in the
specified values.
* city_name.xmax => *str*
Only return records where the 'city_name' field is less than
specified value.
* city_name.xmin => *str*
Only return records where the 'city_name' field is greater than
specified value.
* code => *str*
Only return records where the 'code' field equals specified value.
* code.contains => *str*
Only return records where the 'code' field contains specified text.
* code.in => *array*
Only return records where the 'code' field is in the specified
values.
* code.is => *str*
Only return records where the 'code' field equals specified value.
* code.isnt => *str*
Only return records where the 'code' field does not equal specified
value.
* code.max => *str*
Only return records where the 'code' field is less than or equal to
specified value.
* code.min => *str*
Only return records where the 'code' field is greater than or equal
to specified value.
* code.not_contains => *str*
Only return records where the 'code' field does not contain
specified text.
* code.not_in => *array*
Only return records where the 'code' field is not in the specified
values.
* code.xmax => *str*
Only return records where the 'code' field is less than specified
value.
* code.xmin => *str*
Only return records where the 'code' field is greater than specified
value.
* ctime => *str*
Only return records where the 'ctime' field equals specified value.
* ctime.contains => *str*
Only return records where the 'ctime' field contains specified text.
* ctime.in => *array*
Only return records where the 'ctime' field is in the specified
values.
* ctime.is => *str*
Only return records where the 'ctime' field equals specified value.
* ctime.isnt => *str*
Only return records where the 'ctime' field does not equal specified
value.
* ctime.max => *str*
Only return records where the 'ctime' field is less than or equal to
specified value.
* ctime.min => *str*
Only return records where the 'ctime' field is greater than or equal
to specified value.
* ctime.not_contains => *str*
Only return records where the 'ctime' field does not contain
specified text.
* ctime.not_in => *array*
Only return records where the 'ctime' field is not in the specified
values.
* ctime.xmax => *str*
Only return records where the 'ctime' field is less than specified
value.
* ctime.xmin => *str*
Only return records where the 'ctime' field is greater than
specified value.
* detail => *bool* (default: 0)
Return array of full records instead of just ID fields.
By default, only the key (ID) field is returned per result entry.
* fields => *array* (default: "code")
Select fields to return.
* name => *str*
Only return records where the 'name' field equals specified value.
* name.contains => *str*
Only return records where the 'name' field contains specified text.
* name.in => *array*
Only return records where the 'name' field is in the specified
values.
* name.is => *str*
Only return records where the 'name' field equals specified value.
* name.isnt => *str*
Only return records where the 'name' field does not equal specified
value.
* name.max => *str*
Only return records where the 'name' field is less than or equal to
specified value.
* name.min => *str*
Only return records where the 'name' field is greater than or equal
to specified value.
* name.not_contains => *str*
Only return records where the 'name' field does not contain
specified text.
* name.not_in => *array*
Only return records where the 'name' field is not in the specified
values.
* name.xmax => *str*
Only return records where the 'name' field is less than specified
value.
* name.xmin => *str*
Only return records where the 'name' field is greater than specified
value.
* note => *str*
Only return records where the 'note' field equals specified value.
* note.contains => *str*
Only return records where the 'note' field contains specified text.
* note.in => *array*
Only return records where the 'note' field is in the specified
values.
* note.is => *str*
Only return records where the 'note' field equals specified value.
* note.isnt => *str*
Only return records where the 'note' field does not equal specified
value.
* note.max => *str*
Only return records where the 'note' field is less than or equal to
specified value.
* note.min => *str*
Only return records where the 'note' field is greater than or equal
to specified value.
* note.not_contains => *str*
Only return records where the 'note' field does not contain
specified text.
* note.not_in => *array*
Only return records where the 'note' field is not in the specified
values.
* note.xmax => *str*
Only return records where the 'note' field is less than specified
value.
* note.xmin => *str*
Only return records where the 'note' field is greater than specified
value.
* q => *str*
Search.
* random => *bool* (default: 0)
Return records in random order.
* result_limit => *int*
Only return a certain number of records.
* result_start => *int* (default: 1)
Only return starting from the n'th record.
* sort => *str*
Order records according to certain field(s).
A list of field names separated by comma. Each field can be prefixed
with '-' to specify descending order instead of the default
ascending.
* with_field_names => *bool*
Return field names in each record (as hash/associative array).
When enabled, function will return each record as hash/associative
array (field name => value pairs). Otherwise, function will return
each record as list/array (field value, field value, ...).
Return value:
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (result) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
(any)
parse_bca_account(%args) -> [status, msg, result, meta]
Parse/validate BCA account number.
Upon success/valid number, return status 200 with hash containing parsed
information. Upon invalid number, return 400. Parsed information
contains these keys:
* "branch_code"
* "branch_name"
* "branch_city_name" (not yet)
* "branch_city_code" (not yet)
* "account" (10-digits)
* "account_f" (canonically-formatted account number, e.g.
123.456789.0)
* "is_checking" (bool, true if detected as checking account [giro])
* "check_digit"
Arguments ('*' denotes required arguments):
* account* => *str*
* check_known_branches => *bool* (default: 0)
Check branch code against list of known branches.
List of known branches
Return value:
Returns an enveloped result (an array).
First element (status) is an integer containing HTTP status code (200
means OK, 4xx caller error, 5xx function error). Second element (msg) is
a string containing error message, or 'OK' if status is 200. Third
element (result) is optional, the actual result. Fourth element (meta)
is called result metadata and is optional, a hash that contains extra
information.
(any)
BUGS/NOTES
Check digit checking is not implemented yet. Anybody knows the algorithm
used?
HOMEPAGE
Please visit the project's homepage at
<https://metacpan.org/release/Business-ID-BCA>.
SOURCE
Source repository is at
<https://github.com/sharyanto/perl-Business-ID-BCA>.
BUGS
Please report any bugs or feature requests on the bugtracker website
<https://rt.cpan.org/Public/Dist/Display.html?Name=Business-ID-BCA>
When submitting a bug or request, please include a test-file or a patch
to an existing test-file that illustrates the bug or desired feature.
AUTHOR
Steven Haryanto <stevenharyanto@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.