{"id":15277412,"url":"https://github.com/kiriminaja/php","last_synced_at":"2026-04-15T08:04:22.905Z","repository":{"id":61285362,"uuid":"550160079","full_name":"kiriminaja/php","owner":"kiriminaja","description":"KiriminAja API Client for PHP - Pickup Request, Tracking, Mapping and Integration Tools","archived":false,"fork":false,"pushed_at":"2025-03-28T09:18:10.000Z","size":133,"stargazers_count":11,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T10:15:16.782Z","etag":null,"topics":["codeigniter","composer","kiriminaja","laravel","packagist","php","php-library","rest-api","symfony"],"latest_commit_sha":null,"homepage":"https://developer.kiriminaja.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kiriminaja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-12T09:49:39.000Z","updated_at":"2025-03-28T09:16:21.000Z","dependencies_parsed_at":"2024-09-30T11:06:04.924Z","dependency_job_id":"dadf6786-a576-4b41-ae71-c43a4b74cb3d","html_url":"https://github.com/kiriminaja/php","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiriminaja%2Fphp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiriminaja%2Fphp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiriminaja%2Fphp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kiriminaja%2Fphp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kiriminaja","download_url":"https://codeload.github.com/kiriminaja/php/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586264,"owners_count":21128995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codeigniter","composer","kiriminaja","laravel","packagist","php","php-library","rest-api","symfony"],"created_at":"2024-09-30T11:06:01.879Z","updated_at":"2026-04-15T08:04:22.899Z","avatar_url":"https://github.com/kiriminaja.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KiriminAja PHP SDK\n\n[![Total Downloads](https://img.shields.io/packagist/dt/kiriminaja/kiriminaja-php)](https://packagist.org/packages/kiriminaja/kiriminaja-php)\n[![Latest Stable Version](https://img.shields.io/packagist/v/kiriminaja/kiriminaja-php)](https://packagist.org/packages/kiriminaja/kiriminaja-php)\n[![license](https://img.shields.io/packagist/l/kiriminaja/kiriminaja-php)](LICENSE)\n\nOfficial PHP SDK for the [KiriminAja](https://kiriminaja.com) logistics API.\n\n## Requirements\n\n- PHP 8.1+\n- ext-json\n\n## Installation\n\n```bash\ncomposer require kiriminaja/kiriminaja-php\n```\n\n---\n\n## Quick Start\n\nCall `KiriminAjaConfig` once at app startup, then call any service method on the `KiriminAja` facade.\n\n```php\nuse KiriminAja\\Base\\Config\\KiriminAjaConfig;\nuse KiriminAja\\Base\\Config\\Cache\\Mode;\nuse KiriminAja\\Services\\KiriminAja;\n\nKiriminAjaConfig::setMode(Mode::Staging)::setApiTokenKey('YOUR_API_KEY');\n\n// Use any service\n$provinces = KiriminAja::getProvince();\n```\n\n---\n\n## Config Options\n\n| Method                                       | Description                                             |\n| -------------------------------------------- | ------------------------------------------------------- |\n| `KiriminAjaConfig::setMode($mode)`           | `Mode::Staging` or `Mode::Production`                   |\n| `KiriminAjaConfig::setApiTokenKey($key)`     | Your KiriminAja API key                                 |\n| `KiriminAjaConfig::setBaseUrl($url)`         | Custom base URL (useful for proxy or self-hosted)       |\n| `KiriminAjaConfig::setCacheDirectory($path)` | Custom cache directory (useful if /tmp is not writable) |\n| `KiriminAjaConfig::disableCache()`           | Disable file-based caching entirely                     |\n\n```php\n// Custom cache directory\nKiriminAjaConfig::setCacheDirectory(__DIR__ . '/kiriminaja-cache');\n\n// Or disable caching entirely\nKiriminAjaConfig::disableCache();\n\nKiriminAjaConfig::setMode(Mode::Production)::setApiTokenKey('YOUR_API_KEY');\n```\n\n### Custom Base URL\n\nIf you need to route requests through a proxy or custom endpoint, set a custom base URL. This overrides the default URL resolved from the mode.\n\n```php\nKiriminAjaConfig::setMode(Mode::Production)\n    ::setApiTokenKey('YOUR_API_KEY')\n    ::setBaseUrl('https://proxy.example.com');\n```\n\n---\n\n## Laravel Integration\n\nThe SDK auto-registers via Laravel package discovery — no manual provider registration needed.\n\n### 1. Add to `config/services.php`\n\n```php\n'kiriminaja' =\u003e [\n    'mode' =\u003e env('KIRIMINAJA_MODE', 'staging'),\n    'api_key' =\u003e env('KIRIMINAJA_API_KEY', ''),\n    'base_url' =\u003e env('KIRIMINAJA_BASE_URL'),\n    'cache_store' =\u003e env('KIRIMINAJA_CACHE_STORE', 'laravel'),\n    'cache_prefix' =\u003e env('KIRIMINAJA_CACHE_PREFIX', 'kiriminaja:'),\n],\n```\n\n### 2. Add to your `.env`\n\n```env\nKIRIMINAJA_MODE=staging\nKIRIMINAJA_API_KEY=your-api-key-here\n```\n\n### 3. Use the SDK anywhere\n\n```php\nuse KiriminAja\\Services\\KiriminAja;\n\n$provinces = KiriminAja::getProvince();\n```\n\n### Config Reference (`services.kiriminaja`)\n\n| Key            | Env Variable              | Default       | Description                                           |\n| -------------- | ------------------------- | ------------- | ----------------------------------------------------- |\n| `mode`         | `KIRIMINAJA_MODE`         | `staging`     | `staging` or `production`                             |\n| `api_key`      | `KIRIMINAJA_API_KEY`      | `\"\"`          | Your KiriminAja API key                               |\n| `base_url`     | `KIRIMINAJA_BASE_URL`     | `null`        | Custom base URL (overrides mode-based URL)            |\n| `cache_store`  | `KIRIMINAJA_CACHE_STORE`  | `laravel`     | `laravel` (uses Laravel Cache) or `file` (file-based) |\n| `cache_prefix` | `KIRIMINAJA_CACHE_PREFIX` | `kiriminaja:` | Cache key prefix (Laravel store only)                 |\n\n---\n\n## Services\n\n### Address\n\n```php\n// List all provinces\nKiriminAja::getProvince();\n\n// Cities in a province (province_id)\nKiriminAja::getCity(5);\n\n// Districts in a city (city_id)\nKiriminAja::getDistrict(12);\n\n// Sub-districts in a district (kecamatan_id)\nKiriminAja::getSubDistrict(77);\n\n// Search districts by name\nKiriminAja::getDistrictByName(\"jakarta\");\n```\n\n---\n\n### Coverage Area \u0026 Pricing\n\n```php\nuse KiriminAja\\Models\\ShippingPriceData;\nuse KiriminAja\\Models\\ShippingPriceInstantData;\nuse KiriminAja\\Models\\ShippingFullPriceData;\n\n// Express shipping rates\n$data = new ShippingPriceData();\n$data-\u003eorigin = 1;\n$data-\u003edestination = 2;\n$data-\u003eweight = 1000;       // grams\n$data-\u003eitem_value = 50000;\n$data-\u003einsurance = 0;\n$data-\u003ecourier = ['jne', 'jnt'];\n\nKiriminAja::getPrice($data);\n\n// Instant (same-day) rates\n$data = new ShippingPriceInstantData();\n$data-\u003eservice = ['grab_express', 'gosend'];\n$data-\u003eitem_price = 10000;\n$data-\u003eorigin = ['lat' =\u003e -6.2, 'long' =\u003e 106.8, 'address' =\u003e 'Jl. Sudirman No.1'];\n$data-\u003edestination = ['lat' =\u003e -6.21, 'long' =\u003e 106.81, 'address' =\u003e 'Jl. Thamrin No.5'];\n$data-\u003eweight = 1000;\n$data-\u003evehicle = 'motor';       // 'motor' or 'mobil'\n$data-\u003etimezone = 'Asia/Jakarta';\n\nKiriminAja::getPriceInstant($data);\n\n// Full shipping price (all available couriers)\n$data = new ShippingFullPriceData();\n$data-\u003eorigin = 1;\n$data-\u003edestination = 2;\n$data-\u003eweight = 1000;\n\nKiriminAja::fullShippingPrice($data);\n```\n\n---\n\n### Order — Express\n\n```php\nuse KiriminAja\\Models\\RequestPickupData;\nuse KiriminAja\\Models\\PackageData;\n\n// Track by order ID\nKiriminAja::getTracking(\"ORDER123\");\n\n// Cancel shipment\nKiriminAja::cancelShipment(\"AWB123456\", \"Customer request\");\n\n// Request pickup\n$pickup = new RequestPickupData();\n$pickup-\u003eaddress = \"Jl. Jodipati No.29\";\n$pickup-\u003ephone = \"08133345678\";\n$pickup-\u003ename = \"Tokotries\";\n$pickup-\u003ekecamatan_id = 548;\n$pickup-\u003eschedule = \"2024-01-15 17:00:00\";\n$pickup-\u003eplatform_name = \"mitra\";\n\n$package = new PackageData();\n$package-\u003eorder_id = \"YGL-000000019\";\n$package-\u003edestination_name = \"Flag Test\";\n$package-\u003edestination_phone = \"082223323333\";\n$package-\u003edestination_address = \"Jl. Magelang KM 11\";\n$package-\u003edestination_kecamatan_id = 548;\n$package-\u003eweight = 520;\n$package-\u003ewidth = 8;\n$package-\u003eheight = 8;\n$package-\u003elength = 8;\n$package-\u003eitem_value = 275000;\n$package-\u003eshipping_cost = 65000;\n$package-\u003eservice = \"jne\";\n$package-\u003eservice_type = \"REG\";\n$package-\u003eitem_name = \"Test item\";\n$package-\u003epackage_type_id = 1;\n$package-\u003ecod = 0;\n\n$pickup-\u003epackages-\u003eadd($package);\nKiriminAja::requestPickup($pickup);\n\n// Pickup schedules\nKiriminAja::getSchedules();\n```\n\n---\n\n### Order — Instant\n\n```php\nuse KiriminAja\\Models\\RequestPickupInstantData;\nuse KiriminAja\\Models\\PackageInstantData;\n\n// Request instant pickup\n$pickup = new RequestPickupInstantData();\n$pickup-\u003eservice = \"gosend\";\n$pickup-\u003eservice_type = \"instant\";\n$pickup-\u003evehicle = \"motor\";\n$pickup-\u003eorder_prefix = \"BDI\";\n\n$package = new PackageInstantData();\n$package-\u003eorigin_name = \"Rizky\";\n$package-\u003eorigin_phone = \"081280045616\";\n$package-\u003eorigin_lat = -7.854584;\n$package-\u003eorigin_long = 110.331154;\n$package-\u003eorigin_address = \"Wirobrajan, Yogyakarta\";\n$package-\u003eorigin_address_note = \"Dekat Kantor\";\n$package-\u003edestination_name = \"Okka\";\n$package-\u003edestination_phone = \"081280045616\";\n$package-\u003edestination_lat = -7.776192;\n$package-\u003edestination_long = 110.325053;\n$package-\u003edestination_address = \"Godean, Sleman\";\n$package-\u003edestination_address_note = \"Dekat Pasar\";\n$package-\u003eshipping_price = 34000;\n$package-\u003eitem_name = \"Barang 1\";\n$package-\u003eitem_description = \"Barang 1 Description\";\n$package-\u003eitem_price = 20000;\n$package-\u003eitem_weight = 1000;     // grams\n\nKiriminAja::requestPickupInstant($pickup, $package);\n\n// Track instant order\nKiriminAja::getTrackingInstant(\"ORDER123\");\n\n// Find a new driver for an existing order\nKiriminAja::findNewDriver(\"ORDER123\");\n\n// Cancel instant order\nKiriminAja::cancelShipment(\"ORDER123\", \"\", isInstant: true);\n```\n\n---\n\n### Courier\n\n```php\n// List available couriers\nKiriminAja::getCouriers();\n\n// Courier groups\nKiriminAja::getCourierGroups();\n\n// Courier detail by code\nKiriminAja::getCourierDetail(\"jne\");\n\n// Set whitelist expeditions\nKiriminAja::setWhiteListExpedition([\"jne_reg\", \"jne_yes\"]);\n```\n\n---\n\n### Preference\n\n```php\n// Set callback URL\nKiriminAja::setCallback(\"https://example.com/webhook\");\n```\n\n---\n\n### Pickup Schedules\n\n```php\nKiriminAja::getSchedules();\n```\n\n---\n\n### Payment\n\n```php\n// Get payment details (express)\nKiriminAja::getPayment(\"PAY123\");\n\n// Get payment details (instant)\nKiriminAja::getPayment(\"PAY123\", isInstant: true);\n```\n\n---\n\n## Contributing\n\nFor any requests, bugs, or comments, please open an [issue](https://github.com/kiriminaja/kiriminaja-php/issues) or [submit a pull request](https://github.com/kiriminaja/kiriminaja-php/pulls).\n\n## Development\n\n```bash\ncomposer install           # install dependencies\nvendor/bin/phpunit tests   # run tests\n# or `make test`\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiriminaja%2Fphp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkiriminaja%2Fphp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkiriminaja%2Fphp/lists"}