Provides a simple way to generate an ABA file which can be used to mass import payments into Australian banks.
- Simple API
- Laravel support via a service provider and facade
- Framework agnostic
- PHP 8+
Install the package through Composer.
composer require joelwmale/php-aba
Although Aba
is framework agnostic, it does support Laravel out of the box and comes with a Service provider and Facade for easy integration.
After you have installed the Aba
, open the config/app.php
file which is included with Laravel and add the following lines.
In the $providers
array add the following service provider.
Joelwmale\PhpAba\AbaServiceProvider::class
Add the facade of this package to the $aliases
array.
'Aba' => Joelwmale\PhpAba\Facades\Aba::class,
You can now use this facade in place of instantiating the converter yourself in the following examples.
use Joelwmale\PhpAba\PhpAba;
$aba = new PhpAba();
// descriptive record or file header
$aba->addFileDetails([
'bank_name' => 'ANZ', // bank name
'user_name' => 'John Doe', // account name or company
'user_number' => '301500', // user number (as allocated by APCA).
'description' => 'Payroll', // description
'process_date' => '010125' // DDMMYY - date for it to be processed by the bank
]);
// now you can add transactions
$aba->addTransaction([
'bsb' => '111-111',
'account_number' => '999999999',
'account_name' => 'John Doe',
'reference' => 'Payroll',
'remitter' => 'ACME Company',
'trace_bsb' => '222-222', // the originating bank bsb
'trace_account_number' => '888888888', // the originating bank account number
'transaction_code' => '53', // see below for transaction codes
'amount' => '250.87' // must be in whole dollars
]);
// generate the ABA file
$abaFileContent = $aba->generate();
$transactions = [
[
'bsb' => '111-111',
'account_number' => '999999999',
'account_name' => 'John Doe',
'reference' => 'Wages',
'remitter' => 'ACME Company',
'transaction_code' => '53',
'trace_bsb' => '222-222',
'trace_account_number' => '888888888',
'amount' => '250.87'
],
[
'bsb' => '222-2222',
'account_number' => '888888888',
'account_name' => 'Jane Doe',
'reference' => 'Salary',
'remitter' => 'ACME Company',
'transaction_code' => '50',
'trace_bsb' => '222-222',
'trace_account_number' => '888888888',
'amount' => '300.01'
]
];
$aba->addTransactions($transaction);
$aba->generate();
Field | Description |
Bank name | Bank name must be 3 characters long and Capitalised. For example: CBA |
BSB | The valid BSB format is XXX-XXX. |
Account number | Account number must be up to 9 digits. |
User name (Descriptive record) | User or preferred name must be letters only and up to 26 characters long. |
Account name (Detail record) | Account name must be BECS characters only and up to 32 characters long. |
User number | User number which is allocated by APCA must be up to 6 digits long. The Commonwealth bank default is 301500. |
Description (Descriptive record) | Description must be up to 12 characters long and letters only. |
Reference (Detail record) | The reference must be BECS characters only and up to 18 characters long. For example: Wages. |
Trace BSB | The trace BSB must be in the format XXX-XXX. |
Trace account number | The trace account number must be up to 9 digits. |
Remitter | The remitter must be letters only and up to 16 characters long. |
Code | Transaction Description |
13 | Externally initiated debit items |
50 | Externally initiated credit items with the exception of those bearing Transaction Codes |
51 | Australian Government Security Interest |
52 | Family Allowance |
53 | Pay |
54 | Pension |
55 | Allotment |
56 | Dividend |
57 | Debenture/Note Interest |