PHPackages                             apo-bozdag/isyerim-pos - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. apo-bozdag/isyerim-pos

ActiveLibrary[Payment Processing](/categories/payments)

apo-bozdag/isyerim-pos
======================

Laravel package for IsyerimPOS Payment Gateway API integration with Virtual POS, Physical POS, Marketplace and Wallet support

v1.1.0(6mo ago)45[2 PRs](https://github.com/RadKod/isyerim-pos/pulls)MITPHPPHP ^8.2CI passing

Since Nov 3Pushed 1mo agoCompare

[ Source](https://github.com/RadKod/isyerim-pos)[ Packagist](https://packagist.org/packages/apo-bozdag/isyerim-pos)[ Docs](https://github.com/apo-bozdag/isyerim-pos)[ GitHub Sponsors](https://github.com/apo-bozdag)[ RSS](/packages/apo-bozdag-isyerim-pos/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (13)Versions (8)Used By (0)

IsyerimPOS Laravel Package
==========================

[](#isyerimpos-laravel-package)

[![Latest Version on Packagist](https://camo.githubusercontent.com/468e5689fb040714041e91e2b2f9505d701fbbfbeeb0d279964e8d8d037af32c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f61706f2d626f7a6461672f6973796572696d2d706f732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/apo-bozdag/isyerim-pos)[![GitHub Tests Action Status](https://camo.githubusercontent.com/3a83a8f102cea7fe0e26cf77e1513719f28119094f6450664a9685bde3fa16fa/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f61706f2d626f7a6461672f6973796572696d2d706f732f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/apo-bozdag/isyerim-pos/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/b413569181815d1932489742efd856c3471ff84b968b603423ab64197c5b8f0f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f61706f2d626f7a6461672f6973796572696d2d706f732f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/apo-bozdag/isyerim-pos/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/3a020bab1682f9f5594583e1e6ec171edb764676bba9c64b5c88a080efc91e39/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f61706f2d626f7a6461672f6973796572696d2d706f732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/apo-bozdag/isyerim-pos)

A comprehensive Laravel package for integrating with IsyerimPOS payment gateway API. This package provides a clean, fluent interface for processing payments, managing POS devices, marketplace operations, and wallet transactions.

Features
--------

[](#features)

- **Virtual POS (Sanal POS)**: Process online card payments with 3D Secure support
- **Physical POS Devices**: Manage and create carts for physical POS terminals
- **Marketplace**: Sub-merchant management and payment distribution
- **Wallet Operations**: Account management, balance checks, and money transfers
- **Comprehensive Error Handling**: Custom exceptions for better debugging
- **Logging Support**: Optional request/response logging
- **Test Mode**: Built-in support for test environment

Installation
------------

[](#installation)

Install the package via composer:

```
composer require apo-bozdag/isyerim-pos
```

Publish the config file:

```
php artisan vendor:publish --tag="isyerim-pos-config"
```

Configuration
-------------

[](#configuration)

Add your IsyerimPOS credentials to your `.env` file:

```
ISYERIMPOS_MERCHANT_ID=your-merchant-id
ISYERIMPOS_USER_ID=your-user-id
ISYERIMPOS_API_KEY=your-api-key

# Optional: Set to production URL when going live
ISYERIMPOS_BASE_URL=https://apitest.isyerimpos.com/v1/

# Optional: Enable logging for debugging
ISYERIMPOS_LOGGING=true
```

Usage
-----

[](#usage)

### Virtual POS (Sanal POS)

[](#virtual-pos-sanal-pos)

#### Get Installment Options

[](#get-installment-options)

```
use Abdullah\IsyerimPos\Facades\IsyerimPos;

$installments = IsyerimPos::virtualPos()->getInstallments(
    cardNumber: '5818775818772285',
    amount: 100.00,
    reflectCost: true
);
```

#### 3D Secure Payment

[](#3d-secure-payment)

```
$payment = IsyerimPos::virtualPos()->payRequest3d([
    'ReturnUrl' => 'https://yoursite.com/payment/callback',
    'OrderId' => 'ORDER-123456',
    'ClientIp' => request()->ip(),
    'Installment' => 1,
    'Amount' => 100.00,
    'Is3D' => true,
    'IsAutoCommit' => false,
    'CardInfo' => [
        'CardOwner' => 'JOHN DOE',
        'CardNo' => '5818775818772285',
        'Month' => '12',
        'Year' => '26',
        'Cvv' => '123',
    ],
    'CustomerInfo' => [
        'Name' => 'John Doe',
        'Phone' => '5301234567',
        'Email' => 'john@example.com',
        'Address' => 'Sample Address',
        'Description' => 'Payment for order #123',
    ],
    'Products' => [
        [
            'Name' => 'Product 1',
            'Count' => 1,
            'UnitPrice' => 100.00,
        ],
    ],
]);

// Redirect user to 3D Secure page
return redirect($payment['redirectUrl']);
```

#### Complete Payment

[](#complete-payment)

```
$result = IsyerimPos::virtualPos()->payComplete(
    uid: $request->uid,
    key: $request->key
);
```

#### Check Payment Result

[](#check-payment-result)

```
$status = IsyerimPos::virtualPos()->payResultCheck(uid: 'transaction-uid');
```

#### Cancel/Refund Transactions

[](#cancelrefund-transactions)

```
// Cancel
$cancel = IsyerimPos::virtualPos()->cancelRequest(
    uid: 'transaction-uid',
    description: 'Customer requested cancellation'
);

// Refund (full or partial)
$refund = IsyerimPos::virtualPos()->refundRequest(
    uid: 'transaction-uid',
    amount: 50.00, // 0 for full refund
    description: 'Partial refund'
);
```

#### Create Payment Link

[](#create-payment-link)

```
$paymentLink = IsyerimPos::virtualPos()->createPayLink([
    'LifeTime' => 15, // minutes
    'Amount' => 100.00,
    'ReturnUrl' => 'https://yoursite.com/payment/return',
    'InstallmentActive' => false,
    'Description' => 'Payment for Order #123',
    'SendSms' => true,
    'SendMail' => true,
    'Customer' => [
        'Name' => 'John',
        'Surname' => 'Doe',
        'Phone' => '5301234567',
        'Email' => 'john@example.com',
    ],
    'Products' => [
        [
            'Name' => 'Product 1',
            'Count' => 1,
            'UnitPrice' => 100.00,
        ],
    ],
]);
```

### Physical POS Service

[](#physical-pos-service)

```
// Get terminals
$terminals = IsyerimPos::physicalPos()->getTerminals();

// Create cart
$cart = IsyerimPos::physicalPos()->createCart([
    'Name' => 'TABLE-1',
    'TerminalId' => '12345678',
    'Direct' => true,
    'PaymentType' => 0, // 0: credit card, 1: cash
    'Items' => [
        [
            'Count' => 1,
            'Name' => 'Product Name',
            'TaxValue' => 18,
            'UnitPrice' => 100.00,
        ],
    ],
]);

// Get carts
$carts = IsyerimPos::physicalPos()->getCarts(tid: '12345678');
```

### Marketplace Service

[](#marketplace-service)

```
// Add sub-merchant
$subMerchant = IsyerimPos::marketplace()->addSubMerchant([
    'CreateUser' => true,
    'companyName' => 'Demo Company Ltd.',
    'shopName' => 'Demo Shop',
    'authorizedPerson' => 'John Doe',
    'tcIdentityNumber' => '12345678901',
    'taxNumber' => '1234567890',
    'taxOffice' => 'Kadıköy',
    'email' => 'shop@example.com',
    'gsmNumber' => '5301234567',
    'iban' => 'TR000000000000000000000000',
    'accountOwner' => 'Demo Company',
    'province' => 'Istanbul',
    'provinceCode' => 34,
    'valor' => 10,
    'PaymentDay' => 5,
]);

// Get payment status
$status = IsyerimPos::marketplace()->getPaymentStatus(uid: 'payment-uid');

// Get payments for date
$payments = IsyerimPos::marketplace()->getPayments(date: '2024-01-15');
```

### Wallet Service

[](#wallet-service)

```
// Get wallet accounts
$accounts = IsyerimPos::wallet()->getWalletAccounts();

// Get balance
$balance = IsyerimPos::wallet()->getWalletBalance(walletId: 12345);

// Get transactions
$transactions = IsyerimPos::wallet()->getWalletTransactions(
    startDate: '2024-01-01',
    endDate: '2024-01-31',
    walletId: 12345
);

// Collection request
$collection = IsyerimPos::wallet()->collectionRequest([
    'identityNo' => '12345678901',
    'amount' => 100.00,
    'url' => 'https://yoursite.com/webhook',
]);
```

API Models &amp; Enums
----------------------

[](#api-models--enums)

The package provides PHP enums for working with IsyerimPOS API responses. These enums offer type-safe handling of API values with helpful utility methods.

### Available Enums

[](#available-enums)

#### CardType

[](#cardtype)

Card classification enum (`Abdullah\IsyerimPos\Enums\CardType`):

```
use Abdullah\IsyerimPos\Enums\CardType;

CardType::UNDEFINED        // 0
CardType::CREDIT_CARD      // 1
CardType::DEBIT_CARD       // 2
CardType::ACQUIRING        // 3
CardType::PREPAID          // 4

// Usage example
$cardType = CardType::tryFromValue($apiResponse['cardType']);
echo $cardType->label(); // "Credit Card"
```

#### CardSchema

[](#cardschema)

Card network/scheme enum (`Abdullah\IsyerimPos\Enums\CardSchema`):

```
use Abdullah\IsyerimPos\Enums\CardSchema;

CardSchema::UNDEFINED             // 0
CardSchema::VISA                  // 1
CardSchema::MASTERCARD            // 2
CardSchema::AMEX                  // 3
CardSchema::DINERS_CLUB           // 4
CardSchema::JCB                   // 5
CardSchema::TROY                  // 6
CardSchema::UNION_PAY             // 7
CardSchema::PROPRIETARY_DOMESTIC  // 8

// Usage example
$schema = CardSchema::tryFromValue($apiResponse['cardSchema']);
echo $schema->label(); // "Visa"
```

#### CardBrand

[](#cardbrand)

Turkish card programs enum (`Abdullah\IsyerimPos\Enums\CardBrand`):

```
use Abdullah\IsyerimPos\Enums\CardBrand;

CardBrand::UNDEFINED      // 0
CardBrand::ADVANTAGE      // 1
CardBrand::AXESS          // 2
CardBrand::BONUS          // 3
CardBrand::MAXIMUM        // 6
CardBrand::PARAF          // 7
CardBrand::WORLD          // 8
// ... and more (18 total brands)

// Usage example
$brand = CardBrand::tryFromValue($apiResponse['cardBrand']);
echo $brand->label(); // "Bonus"
```

#### ProcessStatus

[](#processstatus)

Transaction lifecycle state enum (`Abdullah\IsyerimPos\Enums\ProcessStatus`):

```
use Abdullah\IsyerimPos\Enums\ProcessStatus;

ProcessStatus::UNDEFINED                  // 0
ProcessStatus::PENDING                    // 1
ProcessStatus::VERIFIED                   // 2
ProcessStatus::SUCCESSFUL                 // 4
ProcessStatus::FAILED                     // 5
ProcessStatus::CANCELLED                  // 6
ProcessStatus::CANCELLATION_IN_PROGRESS   // 7
ProcessStatus::REFUND_IN_PROGRESS         // 8
ProcessStatus::CHARGEBACK_IN_PROGRESS     // 9
ProcessStatus::RISKY                      // 10

// Usage example with helper methods
$status = ProcessStatus::tryFromValue($apiResponse['status']);

if ($status->isSuccessful()) {
    // Payment completed successfully
}

if ($status->isPending()) {
    // Payment is still processing
}

if ($status->isFinal()) {
    // Payment reached a final state (successful, failed, or cancelled)
}

echo $status->label(); // "Successful"
```

### API Response Models

[](#api-response-models)

The IsyerimPOS API returns standardized response models:

#### Result/Pay Model

[](#resultpay-model)

Standard response wrapper containing:

- Operation completion status
- Success/error messages
- Error codes and error collections
- Additional response data

#### CardInfo Model

[](#cardinfo-model)

Payment card information:

- Cardholder name
- Card number
- Expiration month/year
- CVV security code

#### CustomerInfo Model

[](#customerinfo-model)

Customer details:

- Name and email
- Physical address
- Phone number
- Optional description/notes

#### Product Model

[](#product-model)

Line item information:

- Product name
- Quantity count
- Per-unit pricing

#### Payment Model

[](#payment-model)

Transfer/payment details:

- Account holder name
- IBAN
- Payment description
- Amount
- Sub-merchant identifier
- External customer reference

For complete model definitions and additional details, see the [official API documentation](https://dev.isyerimpos.com/modeller).

Error Handling
--------------

[](#error-handling)

The package throws specific exceptions for different error scenarios:

```
use Abdullah\IsyerimPos\Exceptions\PaymentException;
use Abdullah\IsyerimPos\Exceptions\ApiException;
use Abdullah\IsyerimPos\Exceptions\AuthenticationException;

try {
    $payment = IsyerimPos::virtualPos()->payRequest3d($data);
} catch (AuthenticationException $e) {
    // Handle authentication errors (invalid credentials)
} catch (PaymentException $e) {
    // Handle payment-specific errors
} catch (ApiException $e) {
    // Handle API errors
}
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Credits
-------

[](#credits)

- [Abdullah Bozdağ](https://github.com/apo-bozdag)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance81

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 84.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

190d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/dccaf8b5c7d5f1500a61b370e672063615fdccbe44765eccd577a6fabe1ef3bd?d=identicon)[abdullahbozdag](/maintainers/abdullahbozdag)

---

Top Contributors

[![apo-bozdag](https://avatars.githubusercontent.com/u/33822884?v=4)](https://github.com/apo-bozdag "apo-bozdag (22 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

isyerimisyerimposlaravellaravel-11laravel-12poslaravellaravel-packagepaymentposwalletpayment gatewayturkeymarketplace3d-securevirtual-posisyerimposturkish-payment-gateway

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/apo-bozdag-isyerim-pos/health.svg)

```
[![Health](https://phpackages.com/badges/apo-bozdag-isyerim-pos/health.svg)](https://phpackages.com/packages/apo-bozdag-isyerim-pos)
```

###  Alternatives

[musahmusah/laravel-multipayment-gateways

A Laravel Package that makes implementation of multiple payment Gateways endpoints and webhooks seamless

852.2k1](/packages/musahmusah-laravel-multipayment-gateways)[021/laravel-wallet

Reliable and flexible wallet system for Laravel

2785.2k](/packages/021-laravel-wallet)[creagia/laravel-redsys

Laravel Redsys Payments Gateway

2013.6k](/packages/creagia-laravel-redsys)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
