ekoseoglu / php-parasut-api-v4

Parasut API Version 4
39 stars 13 forks source link

Parasut API PHP

Kaynak : https://apidocs.parasut.com

Kurulum

composer require inpinos/php-parasut-api-v4

Kullanımı

<?php

require_once __DIR__ . '/vendor/autoload.php';

try {
    $parasutAuthorization = new \Parasut\API\Authorization([
        "development" => true, //development mode 
        "client_id" => "YOUR_CLIENT_ID",
        "client_secret" => "YOUR_CLIENT_SECRET",
        "username" => "YOUR_EMAIL",
        "password" => "YOUR_PASSWORD",
        "redirect_uri" => "urn:ietf:wg:oauth:2.0:oob",
        "company_id" => "YOUR_COMPANY_ID"
    ]);
} catch (\Parasut\API\Exception $e) {
    echo "Error code : " . $e->getCode()."<br>";
    echo "Error message : " . $e->getMessage();
    die;
}

Müşteri İşlemleri

$contacts = new \Parasut\API\Contacts($parasutAuthorization);

$searchContactData2 = [ "name" => "XXXX", "email" => "XXXX" ];

$searchContactData3 = [ "name" => "XXXX", "email" => "XXXX", "tax_number" => "XXXX", "tax_office" => "XXXX", "city" => "XXXX", "account_type" => "customer" //customer, supplier ]; $searchContact1 = $contacts->search($searchContactData1); $searchContact2 = $contacts->search($searchContactData2); $searchContact3 = $contacts->search($searchContactData3);


- Yeni müşteri oluşturma
```php
$createContactData = [
    "data" => [
        "type" => "contacts",
        "attributes" => [
            "name" => "XXXX", //*zorunlu //ad soyad
            "email" => "XXXX", //e-posta
            "contact_type" => "person", //company, person (tüzel kişi, gerçek kişi)
            "tax_office" => "XXX", //vergi dairesi
            "tax_number" => "XXX", //vergi numarası
            "district" => "XXX", //ilçe
            "city" => "XXX", //il
            "address" => "XXX", //adres
            "phone" => "0XXXXXXXXXX", //tel no
            "account_type" => "customer" //customer, supplier
        ]
    ]
];
$createContact = $contacts->create($createContactData);

Fatura İşlemleri

$invoices = new \Parasut\API\Invoices($parasutAuthorization);

$searchInvoiceData2 = [ "invoice_id" => "XXXX", "contact_id" => "XXXX" ];

$searchInvoiceData3 = [ "issue_date" => "XXXX", "due_date" => "XXXX", "contact_id" => "XXXX", "invoice_id" => "XXXX", "invoice_series" => "XXXX", "item_type" => "invoice", "print_status" => "printed", //printed, not_printed, invoices_not_sent, e_invoice_sent, e_archive_sent, e_smm_sent "payment_status" => "paid" //overdue, not_due, unscheduled, paid ]; $searchInvoice1 = $invoices->search($searchInvoiceData1); $searchInvoice2 = $invoices->search($searchInvoiceData2); $searchInvoice3 = $invoices->search($searchInvoiceData3);


- Satış faturası oluşturma
```php
$createInvoiceData = [
    "data" => [
        "type" => "sales_invoices",
        "attributes" => [
            "item_type" => "invoice",
            "description" => "XXXX XXXX XXXX", //fatura açıklaması
            "issue_date" => "YYYY-MM-DD", //düzenleme tarihi
            "due_date" => "YYYY-MM-DD", //son tahsilat tarihi
            "invoice_series" => "XXX", //fatura seri no
            "invoice_id" => "XXX", //fatura sıra no
            "currency" => "TRL", //döviz tipi // TRL, USD, EUR, GBP
            "shipment_included" => false, //irsaliye
        ],
        "relationships" => [
            "details" => [
                "data" => [
                    0 => [
                        "type" => "sales_invoice_details",
                        "attributes" => [
                            "quantity" => 1, //birim adedi
                            "unit_price" => 100, //birim fiyatı (kdv'siz fiyatı)
                            "vat_rate" => 18, //kdv oranı
                            "description" => "XXXXX" //ürün açıklaması
                        ],
                        "relationships" => [
                            "product" => [
                                "data" => [
                                    "id" => 123456, //ürün id
                                    "type" => "products"
                                ]
                            ]
                        ]
                    ]
                ]
            ],
            "contact" => [
                "data" => [
                    "type" => "contacts",
                    "id" => 123456 //müşteri id
                ]
            ]
        ]
    ]
];
$createInvoice = $invoices->create($createInvoiceData);

$invoice_id = 123456; $editInvoice = $invoices->edit($invoice_id, $editInvoiceData);


- Satış faturası silme
```php
$invoice_id = 123456;
$deleteInvoice = $invoices->delete($invoice_id);

//VKN e-fatura sistemine kayıtlı değil if (empty($checkVKNType->result)) { $eArchiveData = [ "data" => [ "type" => "e_archives", "relationships" => [ "sales_invoice" => [ "data" => [ "id" => 123456, //invoice_id "type" => "sales_invoices" ] ] ] ] ]; $createEArchive = $invoices->create_e_archive($eArchiveData); } //VKN e-fatura sistemine kayıtlı else { $vkn = 12345678912; $checkVKNType = $invoices->check_vkn_type($vkn); $eInvoiceAddress = $checkVKNType->result->data[0]->attributes->e_invoice_address;

$eInvoiceData = [
"data" => [
    "type" => "e_invoices",
    "attributes" => [
        'scenario' => 'basic', // basic veya commercial (temel veya ticari)
        'to' => $eInvoiceAddress
    ],
    "relationships" => [
        "invoice" => [
            "data" => [
                "id" => 123456, //invoice_id
                "type" => "sales_invoices"
                ]
            ]
        ]
    ]
];
$createEInvoice = $invoices->create_e_invoice($eInvoiceData);

}


- E-Arşiv görüntüleme
```php
$e_archive_id = 123456; //invoice_id değildir.
$showEArchive = $invoices->show_e_archive($e_archive_id);

Ürün İşlemleri

$products = new \Parasut\API\Products($parasutAuthorization);

$searchProductData2 = [ "name" => "XXXX", "code" => "XXXX" ];

$searchProduct1 = $products->search($searchProductData1); $searchProduct2 = $products->search($searchProductData2);


- Yeni ürün oluşturma
```php
$productData = [
    "data" => [
        "type" => "products",
        "attributes" => [
            "name" => "XXXX", //ürün adı
            "vat_rate" => 18, //KDV oranı
            "unit" => "Adet", //birim
            "currency" => "TRL", //döviz tipi
            "inventory_tracking" => true, //stok durumu
            "initial_stock_count" => 100 //stok adedi
        ]
    ]
];
$createProduct = $products->create($productData);

$product_id = 123456; $editProduct = $products->edit($product_id, $productData);


- Ürün silme
```php
$product_id = 123456;
$deleteProduct = $products->delete($product_id);