Skip to content

Internship Declaration (E3.5) ​

The E3.5 form (action code 57) is used to declare internship placements. It is a comprehensive form covering personal information, education, internship terms, weekly schedule, and certifier details.

Overview ​

PropertyValue
Document ClassInternship
Action Code57
Declaration ModelInternshipDeclaration
Use CaseInternship start or modification

Basic Usage ​

php
use OxygenSuite\OxygenErgani\Http\Documents\Internship\Internship;
use OxygenSuite\OxygenErgani\Models\Internship\InternshipDeclaration;

$declaration = InternshipDeclaration::make()
    // Branch
    ->setBranchCode(0)
    ->setLaborInspectionCode('12345')
    ->setDypaServiceCode('123456')
    ->setMainActivityCode('6201')
    ->setBranchActivityCode('6201')
    ->setMunicipalityCode('0101')

    // Personal
    ->setLastName('ΠΑΠΑΔΟΠΟΥΛΟΣ')
    ->setFirstName('ΝΙΚΟΛΑΟΣ')
    ->setFatherName('ΙΩΑΝΝΗΣ')
    ->setMotherName('ΜΑΡΙΑ')
    ->setBirthPlace('ΑΘΗΝΑ')
    ->setBirthDate('15/03/2003')
    ->setSex('1')
    ->setNationality('001')
    ->setIdType('ΑΤ')
    ->setIdNumber('ΑΒ123456')
    ->setAfm('123456789')
    ->setAmka('15030312345')

    // Education
    ->setEducationLevel('3')
    ->setInstituteNationality('001')
    ->setInstituteName('ΤΕΙ ΑΘΗΝΩΝ')
    ->setSchool('ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ')
    ->setDepartment('ΠΛΗΡΟΦΟΡΙΚΗΣ')

    // Internship terms
    ->setPlacementDate('01/02/2025')
    ->setPlacementTime('09:00')
    ->setWeeklyHours(30.0)
    ->setTotalHours(720.0)
    ->setSpecialtyCode('123456')
    ->setCompensation(600.00)
    ->setHourlyCompensation(5.00)
    ->setStartDate('01/02/2025')
    ->setEndDate('31/07/2025')

    // Schedule (Monday-Friday, 09:00-15:00)
    ->setSchedule(1, '09:00', '15:00')
    ->setSchedule(2, '09:00', '15:00')
    ->setSchedule(3, '09:00', '15:00')
    ->setSchedule(4, '09:00', '15:00')
    ->setSchedule(5, '09:00', '15:00')

    // Certifier
    ->setCertifierLastName('ΓΕΩΡΓΙΟΥ')
    ->setCertifierFirstName('ΔΗΜΗΤΡΙΟΣ')
    ->setCertifierCapacity('ΔΙΕΥΘΥΝΤΗΣ')
    ->setCertifierAddress('ΛΕΩΦ. ΑΛΕΞΑΝΔΡΑΣ 1')
    ->setCertifierAfm('987654321');

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

Via Ergani Facade ​

php
use OxygenSuite\OxygenErgani\Ergani;
use OxygenSuite\OxygenErgani\Models\Internship\InternshipDeclaration;

$ergani = new Ergani($accessToken);
$responses = $ergani->sendInternshipDeclaration($declaration);

Field Reference ​

Branch/Location ​

MethodAPI FieldTypeRequiredDescription
setBranchCode()f_aa_pararthmatosint|stringYesBranch sequence number
setRelatedProtocol()f_rel_protocolstringNoRelated submission protocol
setRelatedDate()f_rel_dateDateTime|stringNoRelated submission date
setLaborInspectionCode()f_ypiresia_sepestringYesSEPE service code
setDypaServiceCode()f_ypiresia_oaedstringYesDYPA/OAED service code
setEmployerOrganization()f_ergodotikh_organwshstringNoEmployer organization
setMainActivityCode()f_kad_kyriastringNoMain activity code (KAD)
setSecondaryActivityCode1()f_kad_deyt_1stringNoSecondary activity code 1
setSecondaryActivityCode2()f_kad_deyt_2stringNoSecondary activity code 2
setSecondaryActivityCode3()f_kad_deyt_3stringNoSecondary activity code 3
setSecondaryActivityCode4()f_kad_deyt_4stringNoSecondary activity code 4
setBranchActivityCode()f_kad_pararthmatosstringNoBranch activity code
setMunicipalityCode()f_kallikratis_pararthmatosstringNoMunicipality code

Personal Information ​

MethodAPI FieldTypeRequiredDescription
setLastName()f_eponymostringYesLast name
setFirstName()f_onomastringYesFirst name
setFatherName()f_onoma_patrosstringYesFather's name
setMotherName()f_onoma_mitrosstringNoMother's name
setBirthPlace()f_topos_gennhshsstringNoPlace of birth
setBirthDate()f_birthdateDateTime|stringYesBirth date (DD/MM/YYYY)
setSex()f_sexSex|string|intYesSex (0=Male, 1=Female)
setNationality()f_yphkoothtastringYesNationality code
setMaritalStatus()f_marital_statusMaritalStatus|string|intNoMarital status (0-3)
setNumberOfChildren()f_arithmos_teknonint|stringNoNumber of children

Identity Document ​

MethodAPI FieldTypeRequiredDescription
setIdType()f_typos_taytothtasstringYesID document type
setIdNumber()f_ar_taytothtasstringYesID document number
setIdIssuingAuthority()f_ekdousa_arxhstringNoIssuing authority
setIdIssueDate()f_date_ekdosisDateTime|stringNoIssue date
setIdExpiryDate()f_date_ekdosis_lixiDateTime|stringNoExpiry date

Residence Permit (Foreign Nationals) ​

MethodAPI FieldTypeRequiredDescription
setResidencePermit()f_res_permit_intstring|boolNoHas residence permit (0/1)
setResidencePermitType()f_res_permit_int_typestringNoPermit type
setResidencePermitNumber()f_res_permit_int_arstringNoPermit number
setResidencePermitExpiry()f_res_permit_int_lixiDateTime|stringNoPermit expiry date

Tax/Insurance ​

MethodAPI FieldTypeRequiredDescription
setAfm()f_afmstringYesTax ID (AFM)
setTaxOffice()f_doystringNoTax office code
setAmika()f_amikastringNoIKA number
setAmka()f_amkastringYesSocial security number
setMinorBookNumber()f_ar_vivliou_anilikoustringNoMinor work permit book
setPhone()f_tilstringNoPhone number
setEmail()f_emailstringNoEmail address

Education ​

MethodAPI FieldTypeRequiredDescription
setEducationLevel()f_epipedo_morfosisstringNoEducation level (0-5)
setInstituteNationality()f_educational_institute_nationalitystringNoInstitute country
setInstituteName()f_educational_institute_namestringNoInstitute name
setSchool()f_sxolhstringNoSchool/Faculty
setDepartment()f_departmentstringNoDepartment

Internship Details ​

MethodAPI FieldTypeRequiredDescription
setApprovalNumber()f_approval_numberstringNoApproval number
setPlacementDate()f_date_proslipsisDateTime|stringYesInternship placement date
setPlacementTime()f_date_time_proslipsisstringYesPlacement time (HH:MM)
setWeeklyHours()f_week_hoursfloatYesWeekly hours (Greek float:1)
setTotalHours()f_total_hoursfloatNoTotal internship hours (Greek float:1)
setSpecialtyCode()f_eidikothtastringYesSpecialty code
setCompensation()f_apodoxesfloatYesGross monthly compensation (Greek float)
setHourlyCompensation()f_hour_apodoxesfloatNoHourly compensation (Greek float)
setStartDate()f_orismenou_apoDateTime|stringYesInternship period start
setEndDate()f_orismenou_ewsDateTime|stringYesInternship period end
setDypaPlacement()f_topothetisioaedstring|boolNoDYPA placement (0/1)
setComments()f_commentsstringNoAdditional comments

Weekly Schedule ​

The internship form requires a weekly schedule with up to three time ranges per day (primary, split shift, and break).

Schedule Helper Methods ​

php
// Primary schedule: Monday (1) through Sunday (7)
$declaration->setSchedule(1, '09:00', '15:00');    // Monday
$declaration->setSchedule(2, '09:00', '15:00');    // Tuesday

// Split shift (second shift block)
$declaration->setSplitSchedule(1, '17:00', '20:00');

// Break times
$declaration->setBreakSchedule(1, '12:00', '12:30');

Each day (1-7) has six underlying API fields. The helper methods set them in pairs:

Helper MethodSets API Fields
setSchedule($day, $from, $to)f_time_from_{day}, f_time_to_{day}
setSplitSchedule($day, $from, $to)f_second_time_from_{day}, f_second_time_to_{day}
setBreakSchedule($day, $from, $to)f_break_time_from_{day}, f_break_time_to_{day}

Where {day} is the day number (1=Monday, 7=Sunday).

Certifier ​

MethodAPI FieldTypeRequiredDescription
setCertifierLastName()f_eponymo_idiotitasstringYesCertifier last name
setCertifierFirstName()f_onoma_idiotitasstringYesCertifier first name
setCertifierCapacity()f_idiotita_idiotitasstringYesCertifier role/capacity
setCertifierAddress()f_dieythinsi_idiotitasstringNoCertifier address
setCertifierAfm()f_afm_idiotitasstringYesCertifier tax ID

Files ​

MethodAPI FieldTypeDescription
setLegalRepresentativeAfm()f_afm_proswpoystringRepresentative's AFM
setFormFile()f_filestringMain document (Base64 PDF)
setForeignFile()f_foreign_filestringForeign national docs (Base64 PDF)
setMinorFile()f_young_filestringMinor worker docs (Base64 PDF)

Complete Example ​

php
use OxygenSuite\OxygenErgani\Models\Internship\InternshipDeclaration;

$declaration = InternshipDeclaration::make()
    // Branch
    ->setBranchCode(0)
    ->setLaborInspectionCode('12345')
    ->setDypaServiceCode('123456')
    ->setMainActivityCode('6201')
    ->setBranchActivityCode('6201')
    ->setMunicipalityCode('0101')

    // Personal info
    ->setLastName('ΑΝΤΩΝΙΟΥ')
    ->setFirstName('ΕΛΕΝΗ')
    ->setFatherName('ΔΗΜΗΤΡΙΟΣ')
    ->setMotherName('ΑΙΚΑΤΕΡΙΝΗ')
    ->setBirthPlace('ΘΕΣΣΑΛΟΝΙΚΗ')
    ->setBirthDate('22/08/2003')
    ->setSex('1')
    ->setNationality('001')
    ->setMaritalStatus('0')

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

    // Tax/Insurance
    ->setAfm('555666777')
    ->setTaxOffice('1234')
    ->setAmka('22080312345')
    ->setEmail('eleni@example.com')
    ->setPhone('6971234567')

    // Education
    ->setEducationLevel('3')
    ->setInstituteNationality('001')
    ->setInstituteName('ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ')
    ->setSchool('ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ')
    ->setDepartment('ΠΛΗΡΟΦΟΡΙΚΗΣ')

    // Internship
    ->setPlacementDate('01/03/2025')
    ->setPlacementTime('09:00')
    ->setWeeklyHours(30.0)
    ->setTotalHours(720.0)
    ->setSpecialtyCode('123456')
    ->setCompensation(600.00)
    ->setHourlyCompensation(5.00)
    ->setStartDate('01/03/2025')
    ->setEndDate('31/08/2025')
    ->setDypaPlacement(false)

    // Schedule: Mon-Fri 09:00-15:00 with 30min break
    ->setSchedule(1, '09:00', '15:00')
    ->setSchedule(2, '09:00', '15:00')
    ->setSchedule(3, '09:00', '15:00')
    ->setSchedule(4, '09:00', '15:00')
    ->setSchedule(5, '09:00', '15:00')
    ->setBreakSchedule(1, '12:00', '12:30')
    ->setBreakSchedule(2, '12:00', '12:30')
    ->setBreakSchedule(3, '12:00', '12:30')
    ->setBreakSchedule(4, '12:00', '12:30')
    ->setBreakSchedule(5, '12:00', '12:30')

    // Certifier
    ->setCertifierLastName('ΓΕΩΡΓΙΟΥ')
    ->setCertifierFirstName('ΚΩΝΣΤΑΝΤΙΝΟΣ')
    ->setCertifierCapacity('ΔΙΕΥΘΥΝΤΗΣ HR')
    ->setCertifierAddress('ΕΓΝΑΤΙΑ 45, ΘΕΣΣΑΛΟΝΙΚΗ')
    ->setCertifierAfm('987654321')

    ->setComments('Πρακτική άσκηση μέσω προγράμματος ΕΣΠΑ');

Response Handling ​

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

foreach ($response as $result) {
    echo $result->id;              // Unique submission ID
    echo $result->protocol;        // Protocol number
    echo $result->submissionDate->format('d/m/Y H:i:s');
}

Retrieve PDF ​

php
$pdfBase64 = (new Internship())->pdf(
    $response[0]->protocol,
    $response[0]->submissionDate
);

file_put_contents('internship.pdf', base64_decode($pdfBase64));

Best Practices ​

  1. Schedule Helpers: Use setSchedule(), setSplitSchedule(), and setBreakSchedule() instead of setting individual time fields via ->set().

  2. Weekly Hours: Ensure setWeeklyHours() matches the sum of scheduled hours across all days.

  3. Certifier: The certifier is the person signing on behalf of the employer — typically an HR manager or company director.

  4. Education Fields: Fill in the educational institution details as they appear on the internship agreement.

  5. DYPA Placement: Set setDypaPlacement(true) only if the intern was placed through DYPA/OAED.

Testing with Factories ​

php
use OxygenSuite\OxygenErgani\Models\Internship\InternshipDeclaration;

$declaration = InternshipDeclaration::factory()->make();

// With state methods
$declaration = InternshipDeclaration::factory()
    ->mainBranch()
    ->female()
    ->partTime(20.0)
    ->make();

// Foreign national
$declaration = InternshipDeclaration::factory()
    ->foreignNational('002', 'TYPE_A', 'PERM123', '31/12/2026')
    ->make();

// OAED placement
$declaration = InternshipDeclaration::factory()
    ->withOaedPlacement()
    ->make();

See Also ​

Released under the MIT License.