alaikas / zymeup-sdk
Official Zymeup logistics platform SDK for PHP
2.0.1
2026-08-04 07:33 UTC
Requires
- php: >=8.0
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^10.0 || ^11.0
This package is auto-updated.
Last update: 2026-08-05 09:17:30 UTC
README
Official multi-language SDK for the Shipzy logistics platform.
Current version: 2.0.2
Install
| Language | Package | Install |
|---|---|---|
| Node.js / TypeScript | @zymeup/sdk |
npm i @zymeup/sdk@2.0.2 |
| PHP | alaikas/zymeup-sdk |
composer require alaikas/zymeup-sdk:^2.0.1 |
| Go | github.com/alaikis/shipzy-sdks/go |
go get github.com/alaikis/shipzy-sdks/go@v2.0.0 |
| Python | zymeup-sdk |
pip install zymeup-sdk==2.0.0 |
| Rust | shipzy-sdk |
cargo add shipzy-sdk@2.0.0 |
| Ruby | shipzy-sdk |
gem install shipzy-sdk -v 2.0.0 |
| .NET | Shipzy.Sdk |
dotnet add package Shipzy.Sdk --version 2.0.0 |
| Swift | ShipzySDK |
2.0.0 |
Structure
| Directory | Language | Description |
|---|---|---|
node/ |
TypeScript | Core SDK + Web Components (epod-elements/) |
php/ |
PHP 8.0+ | PSR-4 autoloading, cURL HTTP client |
go/ |
Go | Module with typed clients |
python/ |
Python 3.10+ | pip-installable package |
rust/ |
Rust | async/await with reqwest |
ruby/ |
Ruby 3.0+ | Net::HTTP based client |
dotnet/ |
.NET 8+ | HttpClient based client |
swift/ |
Swift 5.9+ | URLSession based client |
java/ |
Java | ShipzyClient (order, epod, validation) |
kotlin/ |
Kotlin | ShipzyClient (order, epod, address, carrierEpod, validation) |
zig/ |
Zig | ShipzyClient (order, epod, address, carrierEpod, validation) |
epod-elements/ |
TypeScript | Web Components for EPOD workflows |
Features
| Feature | Node | PHP | Go | Python | Rust | Ruby | .NET | Swift | Java | Kotlin | Zig |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Order Management | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| EPOD (Electronic Proof of Delivery) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ECMR (Electronic Consignment Note) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Tracking | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Address Book | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| Pickup Points | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Activation | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Age Verification | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Product | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Finance | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Notification | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Support Ticket | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | — | — |
| Compliance | ✅ | ✅ | — | — | — | — | — | — | — | — | — |
| CPSC | ✅ | ✅ | — | — | — | — | — | — | — | — | — |
| Validation | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Web Components | ✅ | — | — | — | — | — | — | — | — | — | — |
Quick Start
Node.js
import { ShipzyClient } from '@zymeup/sdk'; const client = new ShipzyClient({ apiKey: 'your-api-key', role: 'merchant' }); const orders = await client.order.list({ page: 1, pageSize: 20 }); const epod = await client.epod.get('epod-id-123');
PHP
use Zymeup\SDK\ZymeupClient; $client = new ZymeupClient('your-api-key'); $orders = $client->order->list(['page' => 1, 'page_size' => 20]); $epod = $client->epod->get('epod-id-123');
Go
client := zymeup.NewZymeupClient("your-api-key") orders, _ := client.Order.List(nil) epod, _ := client.Epod.Get("epod-id-123")
Python
from zymeup_sdk import ZymeupClient client = ZymeupClient(api_key="your-api-key") orders = client.order.list(page=1, page_size=20) epod = client.epod.get("epod-id-123")
Ruby
require 'shipzy' client = Shipzy::ShipzyClient.new(Shipzy::Config.new.tap { |c| c.token = 'your-api-key' }) orders = client.order.list epod = client.epod.get('epod-id-123')
Rust
use shipzy_sdk::{ShipzyClient, ShipzyConfig}; let config = ShipzyConfig { token: Some("your-api-key".into()), ..Default::default() }; let client = ShipzyClient::new(config)?; let orders = client.order.list(1, 25, None).await?; let epod = client.epod.get("epod-id-123").await?;
.NET
using Shipzy.Sdk; var client = new ShipzyClient(new ShipzyConfig { Token = "your-api-key" }); var orders = await client.Order.ListAsync(page: 1, pageSize: 20); var epod = await client.Epod.GetAsync("epod-id-123");
Swift
import ShipzySDK let client = ShipzyClient(config: ShipzyConfig(token: "your-api-key")) let orders = try await client.order.list(page: 1, pageSize: 20) let epod = try await client.epod.get("epod-id-123")
Web Components
Browser-native Custom Elements for EPOD workflows. No framework required.
<script type="module" src="https://unpkg.com/@zymeup/sdk/epod-elements"></script> <shipzy-epod-list token="your-api-key" base-url="https://api.zymeup.com"></shipzy-epod-list>
Available elements: <shipzy-epod-list>, <shipzy-epod-detail>, <shipzy-epod-create>, <shipzy-epod-signature>, <shipzy-tracking-list>, <shipzy-tracking-detail>
API Reference
All SDKs expose the same interface through ShipzyClient:
| Property | Description |
|---|---|
order |
Order CRUD |
epod |
EPOD management (merchant) |
ecmr |
ECMR management |
tracking |
Tracking subscriptions and events |
address |
Address book |
merchantAddress |
Multi-tenant address book |
pickupPoints |
Pickup point CRUD |
activation |
Carrier activation and marketplace |
ageVerification |
Age verification requests |
product |
Product catalog |
finance |
Invoices and subscriptions |
notification |
Email, SMS, WhatsApp notifications |
supportTicket |
Ticket management |
shipment |
Shipment management |
parcel |
Parcel management |
compliance |
Customs and compliance |
carrier |
Carrier configuration |
carrierEpod |
EPOD management (carrier) |
carrierAddress |
Carrier address book |
platformConfig |
Platform configuration |
upload |
File uploads |
publicEpod |
Public EPOD signing (no auth) |
cpsc |
CPSC compliance (US) |
Role-Based Access
// Merchant const merchant = new ShipzyClient({ apiKey: '...', role: 'merchant' }); // Carrier const carrier = new ShipzyClient({ apiKey: '...', role: 'carrier', carrierCode: 'UPS' });
License
MIT