Skip to content

Transfer (E3M) ​

The E3M form is used for reporting employee transfers from another company to ERGANI. This applies when an employee's employment relationship is transferred due to business sale, merger, or similar corporate actions.

Overview ​

PropertyValue
Document ClassHiringModification
Action CodeWebE3M
Declaration ModelModificationDeclaration
Use CaseEmployee transferred from another company

When to Use E3M ​

Use E3M when:

  • A business is sold and employees transfer to the new owner
  • Companies merge and employees move to the surviving entity
  • A business unit is acquired with its employees
  • Any situation where employment continues but the employer changes

Basic Usage ​

php
use OxygenSuite\OxygenErgani\Http\Documents\Hiring\HiringModification;
use OxygenSuite\OxygenErgani\Models\Hiring\ModificationDeclaration;
use OxygenSuite\OxygenErgani\Enums\Sex;
use OxygenSuite\OxygenErgani\Enums\EmploymentType;
use OxygenSuite\OxygenErgani\Enums\EmploymentStatus;
use OxygenSuite\OxygenErgani\Enums\WorkerType;

$declaration = ModificationDeclaration::make()
    // Branch
    ->setBranchCode(0)
    ->setLaborInspectionServiceCode('12345')
    ->setDypaServiceCode('123456')

    // Personal Information
    ->setLastName('ΠΑΠΑΔΟΠΟΥΛΟΣ')
    ->setFirstName('ΙΩΑΝΝΗΣ')
    ->setFatherName('ΝΙΚΟΛΑΟΣ')
    ->setMotherName('ΜΑΡΙΑ')
    ->setBirthDate('15/03/1990')
    ->setSex(Sex::MALE)

    // Identity
    ->setNationality('001')
    ->setIdType('ΑΤ')
    ->setIdNumber('ΑΒ123456')

    // Tax/Insurance
    ->setAfm('123456789')
    ->setAmka('15039012345')

    // Employment Details
    ->setHiringDate('20/01/2025')
    ->setStartTime('09:00')
    ->setEndTime('17:00')
    ->setWeeklyHours(40.0)
    ->setSpecialtyCode('123456')
    ->setGrossSalary(1500.00)
    ->setEmploymentType(EmploymentType::INDEFINITE)
    ->setEmploymentStatus(EmploymentStatus::FULL)
    ->setWorkerType(WorkerType::EMPLOYEE)

    // Transfer-specific fields (required)
    ->setTransferDate('15/01/2025')
    ->setTransferCompanyAfm('987654321')
    ->setTransferCompanyName('PREVIOUS COMPANY LTD')

    // Insurance
    ->setMainInsurance('101');

$response = (new HiringModification())->handle($declaration);

E3M-Specific Fields ​

In addition to common fields, E3M includes:

Transfer Information (Required) ​

MethodAPI FieldTypeRequiredDescription
setTransferDate()f_date_metabibashsstringYesTransfer date (DD/MM/YYYY)
setTransferCompanyAfm()f_transfer_company_afmstringYesPrevious company's AFM (9 digits)
setTransferCompanyName()f_transfer_company_eponimiastringYesPrevious company's name (max 230 chars)

Employment Type & Salary ​

Same as E3N - see New Hire.

Trial Period ​

Same as E3N - see New Hire.

Insurance ​

Same as E3N - see New Hire.

DYPA Programs ​

Same as E3N - see New Hire.

Wage Payment ​

Same as E3N - see New Hire.

Note

Unlike E3N, E3M does not require acceptance files (f_basics_acceptance, f_file). The original employment terms from the previous employer continue to apply.

Complete Example ​

Business Acquisition Transfer ​

php
use OxygenSuite\OxygenErgani\Http\Documents\Hiring\HiringModification;
use OxygenSuite\OxygenErgani\Models\Hiring\ModificationDeclaration;
use OxygenSuite\OxygenErgani\Enums\Sex;
use OxygenSuite\OxygenErgani\Enums\EmploymentType;
use OxygenSuite\OxygenErgani\Enums\EmploymentStatus;
use OxygenSuite\OxygenErgani\Enums\WorkerType;

$declaration = ModificationDeclaration::make()
    // Branch
    ->setBranchCode(0)
    ->setLaborInspectionServiceCode('12345')
    ->setDypaServiceCode('123456')
    ->setBranchActivityCode('4711')

    // Personal
    ->setLastName('ΑΝΤΩΝΙΟΥ')
    ->setFirstName('ΜΑΡΙΑ')
    ->setFatherName('ΓΕΩΡΓΙΟΣ')
    ->setMotherName('ΕΛΕΝΗ')
    ->setBirthDate('05/11/1985')
    ->setSex(Sex::FEMALE)

    // Identity
    ->setNationality('001')
    ->setIdType('ΑΤ')
    ->setIdNumber('ΖΗ789012')
    ->setIdIssuingAuthority('Α.Τ. ΘΕΣΣΑΛΟΝΙΚΗΣ')

    // Tax/Insurance
    ->setAfm('555666777')
    ->setTaxOffice('1234')
    ->setAmka('05118512345')

    // Employment
    ->setHiringDate('01/02/2025')  // Date employment continues with new employer
    ->setStartTime('08:00')
    ->setEndTime('16:00')
    ->setWeeklyHours(40.0)
    ->setSpecialtyCode('345678')
    ->setSpecialtyDescription('ΛΟΓΙΣΤΗΣ')
    ->setExperienceYears(12)  // Total experience including previous employer
    ->setGrossSalary(2000.00)
    ->setEmploymentType(EmploymentType::INDEFINITE)
    ->setEmploymentStatus(EmploymentStatus::FULL)
    ->setWorkerType(WorkerType::EMPLOYEE)

    // Transfer Details
    ->setTransferDate('31/01/2025')  // Last day with previous employer
    ->setTransferCompanyAfm('111222333')
    ->setTransferCompanyName('ΠΑΛΑΙΑ ΕΤΑΙΡΕΙΑ Α.Ε.')

    // Work Organization
    ->setWorkingTimeDigitalOrganization(true)
    ->setFullEmploymentHours(40.0)
    ->setWorkingCard(true)

    // Insurance (continues from previous employer)
    ->setMainInsurance('101')

    // Wage Payment
    ->setCollectiveAgreementApplicable(true)
    ->setCollectiveAgreementComments('ΕΓΣΣΕ');

$response = (new HiringModification())->handle($declaration);

Multiple Transfers ​

When acquiring a business with multiple employees:

php
$employees = [
    ['afm' => '111111111', 'name' => 'ΠΑΠΑΔΟΠΟΥΛΟΣ', 'firstName' => 'ΙΩΑΝΝΗΣ'],
    ['afm' => '222222222', 'name' => 'ΓΕΩΡΓΙΟΥ', 'firstName' => 'ΜΑΡΙΑ'],
    ['afm' => '333333333', 'name' => 'ΝΙΚΟΛΑΟΥ', 'firstName' => 'ΠΕΤΡΟΣ'],
];

$declarations = [];
foreach ($employees as $emp) {
    $declarations[] = ModificationDeclaration::make()
        ->setBranchCode(0)
        ->setLaborInspectionServiceCode('12345')
        ->setDypaServiceCode('123456')
        ->setLastName($emp['name'])
        ->setFirstName($emp['firstName'])
        ->setAfm($emp['afm'])
        // ... other fields ...
        ->setTransferDate('31/01/2025')
        ->setTransferCompanyAfm('111222333')
        ->setTransferCompanyName('ΠΑΛΑΙΑ ΕΤΑΙΡΕΙΑ Α.Ε.')
        ->setMainInsurance('101');
}

$response = (new HiringModification())->handle($declarations);

Response Handling ​

php
$response = (new HiringModification())->handle($declaration);

foreach ($response as $result) {
    echo $result->id;              // Unique submission ID
    echo $result->protocol;        // Protocol number (e.g., 'Ε3Μ456')
    echo $result->submissionDate->format('d/m/Y H:i:s');
}

See Also ​

Released under the MIT License.