Skip to content

komoju/komoju-php-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

komoju-php-sdk

PHP client for the KOMOJU Payments API — Full featured access to the KOMOJU payments system.

Installation

composer require komoju/komoju-sdk:^1.0.0-beta.1

Requires PHP 7.4+ and the curl, json, and mbstring extensions.

Quick Start

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

$config = Komoju\Configuration::getDefaultConfiguration()
    ->setApiKey('YOUR_SECRET_KEY');

Get your API keys from the KOMOJU Merchant Settings.

Accept a Payment

Charge a customer directly with their payment details:

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

$config = Komoju\Configuration::getDefaultConfiguration()
    ->setApiKey('YOUR_SECRET_KEY');

$paymentsApi = new Komoju\Api\PaymentsApi(new GuzzleHttp\Client(), $config);

try {
    $payment = $paymentsApi->createPayment(
        new Komoju\Model\CreatePaymentRequestWithPaymentDetails([
            'amount'          => 1000,
            'currency'        => 'JPY',
            'payment_details' => new Komoju\Model\CreditCardPaymentDetails([
                'type'               => 'credit_card',
                'number'             => '4111111111111111',
                'month'              => 12,
                'year'               => 2025,
                'verification_value' => '123',
            ]),
        ])
    );
    echo "Payment created: {$payment->getId()} ({$payment->getStatus()})\n";

    // Capture an authorized payment
    $captured = $paymentsApi->capturePayment(
        $payment->getId(),
        new Komoju\Model\CapturePaymentRequest()
    );
    echo "Captured at: {$captured->getCapturedAt()}\n";
} catch (Komoju\ApiException $e) {
    echo "Error {$e->getCode()}: {$e->getMessage()}\n";
}

Hosted Payment Page (Sessions)

Redirect customers to a KOMOJU-hosted checkout page:

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

$config = Komoju\Configuration::getDefaultConfiguration()
    ->setApiKey('YOUR_SECRET_KEY');

$sessionsApi = new Komoju\Api\SessionsApi(new GuzzleHttp\Client(), $config);

try {
    $session = $sessionsApi->createSession(
        new Komoju\Model\CreateSessionRequestWithPaymentMode([
            'mode'           => 'payment',
            'amount'         => 5000,
            'currency'       => 'JPY',
            'return_url'     => 'https://example.com/thank-you',
            'default_locale' => 'ja',
        ])
    );
    echo "Redirect customer to: {$session->getSessionUrl()}\n";
} catch (Komoju\ApiException $e) {
    echo "Error {$e->getCode()}: {$e->getMessage()}\n";
}

Error Handling

All API errors throw Komoju\ApiException:

try {
    $payment = $paymentsApi->showPayment('pay_xxx');
} catch (Komoju\ApiException $e) {
    echo $e->getCode();       // HTTP status code (e.g. 404, 422)
    echo $e->getMessage();    // Human-readable description
    print_r($e->getResponseBody()); // Full response body
}

Documentation

Full API reference is auto-generated in the docs/ directory.

All URIs are relative to https://komoju.com/api/v1

Class Method HTTP request Description
BarcodesApi showBarcode GET /barcodes/{payment_id} Barcode: Show
DisbursementsApi cancelDisbursement POST /disbursements/{id}/cancel Disbursement: Cancel
DisbursementsApi createDisbursement POST /disbursements Disbursement: Create
DisbursementsApi disbursementReport GET /disbursements/report Disbursement: Report
DisbursementsApi listDisbursements GET /disbursements Disbursement: List
DisbursementsApi showDisbursement GET /disbursements/{id} Disbursement: Show
EventsApi listEvents GET /events Event: List
EventsApi showEvent GET /events/{id} Event Show
OneClickApi deleteExternalCustomer DELETE /external_customers/{id} External Customer: Destroy
PaymentsApi cancelPayment POST /payments/{id}/cancel Payment: Cancel
PaymentsApi capturePayment POST /payments/{id}/capture Payment: Capture
PaymentsApi createPayment POST /payments Payment: Create
PaymentsApi createRefundRequest POST /payments/{id}/refund_request Payment: Refund Request
PaymentsApi finalizePayment POST /payments/{id}/finalize Payment: Finalize
PaymentsApi listPaymentMethods GET /payment_methods Payment Method: List
PaymentsApi listPayments GET /payments Payment: List
PaymentsApi refundPayment POST /payments/{id}/refund Payment: Refund
PaymentsApi showPayment GET /payments/{id} Payment: Show
PaymentsApi updatePayment PATCH /payments/{id} Payment: Update
PlatformModelApi balanceTransfer POST /balances/{currency}/transfer Balance: Transfer
PlatformModelApi createFile POST /merchants/{merchant_id}/files File: Create
PlatformModelApi createMerchant POST /merchants Merchant: Create
PlatformModelApi createMerchantBalanceTransfer POST /merchants/{merchant_id}/balances/{currency}/transfer Balance: Transfer
PlatformModelApi editMerchantBalanceSettings PATCH /merchants/{merchant_id}/balances/{currency}/settings Balances: Edit Settings
PlatformModelApi listLiveApplicationPaymentMethods GET /live_application/{merchant_id}/payment_methods Live Application: Payment Methods
PlatformModelApi listMerchants GET /merchants Merchant: List
PlatformModelApi listSubmerchantPayments GET /merchants/{merchant_id}/payments Payment: List for Merchant
PlatformModelApi listSubmerchantSettlements GET /merchants/{merchant_id}/settlements Settlement: List
PlatformModelApi merchantBalanceTransactions GET /merchants/{merchant_id}/balances/{currency}/transactions Balance: Transactions
PlatformModelApi showFile GET /merchants/{merchant_id}/files/{id} File: Show
PlatformModelApi showLiveApplication GET /live_application/{merchant_id} Live Application: Show
PlatformModelApi showLiveApplicationPaymentMethod GET /live_application/{merchant_id}/payment_methods/{payment_method} Live Application: Show Payment Method
PlatformModelApi showMerchant GET /merchants/{id} Merchant: Show
PlatformModelApi showMerchantBalance GET /merchants/{merchant_id}/balances/{currency} Balance: Show
PlatformModelApi showMerchantBalanceSettings GET /merchants/{merchant_id}/balances/{currency}/settings Balance: Show Settings
PlatformModelApi showMerchantBalanceTransaction GET /merchants/{merchant_id}/balances/{currency}/transactions/{transaction_uuid} Balance: Transaction
PlatformModelApi showSubmerchantSettlement GET /merchants/{merchant_id}/settlements/{id} Settlement: Show
PlatformModelApi simulateLiveApplicationPaymentMethodStatus PATCH /live_application/{merchant_id}/payment_methods/{payment_method}/simulate_status Live Application: Simulate Payment Method Status
PlatformModelApi simulateLiveApplicationStatus PATCH /live_application/{merchant_id}/simulate_status Live Application: Simulate Status
PlatformModelApi submerchantSettlementCSV GET /merchants/{merchant_id}/settlements/{id}/csv Settlement: CSV
PlatformModelApi submerchantSettlementPDF GET /merchants/{merchant_id}/settlements/{id}/pdf Settlement: PDF
PlatformModelApi submerchantSettlementXLS GET /merchants/{merchant_id}/settlements/{id}/xls Settlement: XLS
PlatformModelApi updateLiveApplication PATCH /live_application/{merchant_id} Live Application: Update
PlatformModelApi updateLiveApplicationPaymentMethod PATCH /live_application/{merchant_id}/payment_methods/{payment_method} Live Application: Update Payment Method
PlatformModelApi updateMerchant PATCH /merchants/{id} Merchant: Update
SecureTokensApi createSecureToken POST /secure_tokens SecureToken: Create
SecureTokensApi showSecureToken GET /secure_tokens/{id} SecureToken: Show
SessionsApi cancelSession POST /sessions/{id}/cancel Session: Cancel
SessionsApi createSession POST /sessions Session: Create
SessionsApi paySession POST /sessions/{id}/pay Session: Pay
SessionsApi showSession GET /sessions/{id} Session: Show
SettlementsApi listSettlements GET /settlements Settlement: Index
SettlementsApi showSettlement GET /settlements/{id} Settlement: Show
SettlementsApi showSettlementCSV GET /settlements/{id}/csv Settlement: CSV
SettlementsApi showSettlementPDF GET /settlements/{id}/pdf Settlement: PDF
SettlementsApi showSettlementXLS GET /settlements/{id}/xls Settlement: XLS
SettlementsApi showTransaction GET /balances/{currency}/transactions/{transaction_uuid} Balance: Transaction
SubscriptionsApi createCustomer POST /customers Customer: Create
SubscriptionsApi createSubscription POST /subscriptions Subscription: Create
SubscriptionsApi deleteCustomer DELETE /customers/{id} Customer: Destroy
SubscriptionsApi deleteSubscription DELETE /subscriptions/{id} Subscription: Destroy
SubscriptionsApi listCustomers GET /customers Customer: List
SubscriptionsApi listSubscriptions GET /subscriptions Subscription: List
SubscriptionsApi showCustomer GET /customers/{id} Customer: Show
SubscriptionsApi showSubscription GET /subscriptions/{id} Subscription: Show
SubscriptionsApi updateCustomer PATCH /customers/{id} Customer: Update
TokensApi createToken POST /tokens Token: Create

Models

Authorization

Authentication schemes defined for the API:

api_key

  • Type: HTTP basic authentication (KOMOJU API key as username, blank password)
  • Use $config->setApiKey('YOUR_SECRET_KEY') for convenience

Support

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages