PHP code example of rebasesoftware / edm-efatura

1. Go to this page and download the library: Download rebasesoftware/edm-efatura library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

rebasesoftware / edm-efatura example snippets




DM\EFatura\Client;
use EDM\EFatura\Exception\EDMSoapException;
use EDM\EFatura\Invoice\Invoice;
use EDM\EFatura\Invoice\Element\Company;
use EDM\EFatura\Invoice\Element\Line;
use EDM\EFatura\Invoice\Element\Product;
use EDM\EFatura\Invoice\Element\Tax;
use EDM\EFatura\Invoice\Element\PaymentType;

// Initialize client
$client = new Client(
    'https://test.edmbilisim.com.tr/EFaturaEDM21ea/EFaturaEDM.svc?singleWsdl',
    'your_username',
    'your_password',
    'your_hostname',
    'your_reason',
    'your_channel',
    'your_application'
);

// Login
try {
    if ($client->login()) {
        echo "Login successful!";
        $sessionId = $client->getSessionId();
        echo "Session ID: " . $sessionId;
    } else {
        echo "Login failed";
    }
} catch (EDMSoapException $e) {
    echo "Login error: " . $e->getMessage();
}

$client = new Client(
    'https://test.edmbilisim.com.tr/EFaturaEDM21ea/EFaturaEDM.svc?singleWsdl',
    'your_username',
    'your_password',
    'your_hostname',
    'your_reason',
    'your_channel',
    'your_application'
);

$success = $client->login();
if ($success) {
    $sessionId = $client->getSessionId();
    echo "Session established: " . $sessionId;
}

$success = $client->logout();
if ($success) {
    echo "Successfully logged out";
}

$sessionId = $client->getSessionId();

// Create and configure invoice
$invoice = new Invoice();
$invoice->setProfileId('TICARIFATURA');
$invoice->setId('INV-001');
// ... configure other invoice properties

$result = $client->sendInvoice($invoice);
// $result contains 'request' and 'response' arrays

// Get by invoice number
$invoice = $client->getInvoice('INV-001');

// Get by UUID
$invoice = $client->getInvoice(null, 'uuid-12345');

// Get incoming invoice
$incomingInvoice = $client->getInvoice('INV-001', null, true);

$status = $client->getInvoiceStatus('INV-001');
echo "Status: " . $status['response']->STATUS;
echo "Description: " . $status['response']->ACIKLAMA;

try {
    $result = $client->sendInvoice($invoice);
} catch (EDMSoapException $e) {
    echo "SOAP Error: " . $e->getMessage();
}

use EDM\EFatura\Invoice\Invoice;
use EDM\EFatura\Invoice\Element\Company;
use EDM\EFatura\Invoice\Element\Line;
use EDM\EFatura\Invoice\Element\Product;
use EDM\EFatura\Invoice\Element\Tax;
use EDM\EFatura\Invoice\Element\PaymentType;

// Create issuer company
$issuer = new Company();
$issuer->setTitle('Sample Company Ltd.');
$issuer->setTaxNumber('1234567890');
$issuer->setTaxOffice('Sample Tax Office');
$issuer->setAddress('Sample Address 123');
$issuer->setCity('Istanbul');
$issuer->setDistrict('Kadikoy');
$issuer->setCountryCode('TR');
$issuer->setCountryName('Turkey');
$issuer->setPhone('+90 212 123 45 67');
$issuer->setEmail('[email protected]');
$issuer->setWebsite('www.samplecompany.com');
$issuer->setGibUrn('urn:mail:[email protected]');

// Create recipient company
$recipient = new Company();
$recipient->setTitle('Customer Company Ltd.');
$recipient->setTaxNumber('0987654321');
$recipient->setTaxOffice('Customer Tax Office');
$recipient->setAddress('Customer Address 456');
$recipient->setCity('Ankara');
$recipient->setDistrict('Cankaya');
$recipient->setCountryCode('TR');
$recipient->setCountryName('Turkey');
$recipient->setPhone('+90 312 987 65 43');
$recipient->setEmail('[email protected]');
$recipient->setWebsite('www.customercompany.com');
$recipient->setGibUrn('urn:mail:[email protected]');

// Create payment type
$paymentType = new PaymentType();
$paymentType->setCode('1');
$paymentType->setDueDate(date('Y-m-d', strtotime('+30 days')));
$paymentType->setAccountCode('TR123456789012345678901234');
$paymentType->setCurrencyCode('TRY');
$paymentType->setPaymentNote('Payment within 30 days');

// Create invoice
$invoice = new Invoice();
$invoice->setProfileId('TICARIFATURA');
$invoice->setId('INV-' . date('Ymd-His'));
$invoice->setUuid(uniqid('uuid-', true));
$invoice->setIssueDate(date('Y-m-d'));
$invoice->setIssueTime(date('H:i:s'));
$invoice->setInvoiceTypeCode('SATIS');
$invoice->setNote('Sample invoice for testing');
$invoice->setDocumentCurrencyCode('TRY');
$invoice->setLineCountNumeric(1);
$invoice->setIssuer($issuer);
$invoice->setRecipient($recipient);
$invoice->setPaymentType($paymentType);

// Create product
$product = new Product();
$product->setName('Sample Product');
$product->setBrand('Sample Brand');
$product->setModel('Sample Model');
$product->setCustomCode('PROD001');

// Create line tax
$lineTax = new Tax();
$lineTax->setSequenceNumber(1);
$lineTax->setTaxExclusiveAmount(100.00);
$lineTax->setTaxAmount(18.00);
$lineTax->setCurrencyCode('TRY');
$lineTax->setTaxRate(18);
$lineTax->setTaxCode('0015');
$lineTax->setTaxName('KDV');

// Create line
$line = new Line();
$line->setLineNumber(1);
$line->setUnit('C62');
$line->setQuantity(1);
$line->setUnitPrice(100.00);
$line->setLineTotal(100.00);
$line->setCurrencyCode('TRY');
$line->setProduct($product);
$line->setTax($lineTax);

$invoice->addLine($line);

// Set totals
$invoice->setLineTotal(100.00);
$invoice->setTaxExclusiveTotal(100.00);
$invoice->setTaxInclusiveTotal(118.00);
$invoice->setTotalDiscount(0.00);
$invoice->setRoundingAmount(0.00);
$invoice->setPayableAmount(118.00);