Перейти до змісту

Phase 2 — Tracking, Partnerships, Compliance Providers

Focused research у відповідь на 3 рішення з Phase 1 corrections: C2 (Awery as Phase 9+ avia partner), C3 (WIN platform research before Phase 7 build), C-eFTI-byDesign (sanctions screening для Phase 8 EU expansion). Плюс гібридна tracking strategy з D11 (direct CarrierAdapters для top-4 + aggregator fallback).

Бюджет research: ~30-45 хв. Невпевнені факти позначені «(?)».


Track 1 — Tracking Aggregators (per D11 hybrid)

1.1 Vizion API (vizionapi.com)

Профіль. US-based developer-first container tracking API. Позиціонування — clean JSON, webhook-driven, AIS-rich data. Особливо сильні у US import flow та Class I rail intermodal.

Coverage. - 99 % global ocean freight (carriers self-claim) — підтверджено маркетингом, але без публічного списку «який саме carrier ↔ який тип події». - Усі major US terminals (publicly listed у coverage spreadsheet). - North American Class I railways (BNSF, UP, CSX, NS, CN, CP) — для intermodal. - Custom carrier integrations за окремий quote (для exotics типу Чорноморських feeder operators).

Pricing tiers (з vizionapi.com/pricing та public listings).

Plan Cost What's included
Core від $119/міс (?) до $399/міс (?) — ціна вказана у двох різних місцях, потребує підтвердження Ocean tracking, webhook events, MBL+container#, AIS, vessel verification, location enrichment, Google Sheets, 24h email support
Professional "Contact for pricing" (custom quote) Core + terminal events (LFD, Available for Pickup), Class I rail, OAuth, container trace, carrier quality reports, premium support
Enterprise / Custom Custom quote (volume-based) + bespoke carrier integrations, dedicated CSM

Note: vizionapi.com показує дві різні стартові ціни на сторінці Core ($119 vs $399). Це або A/B test, або застаріла копія. Перед production-commitment треба отримати прямий quote.

Latency / refresh. - Webhook payload приходить через 30 сек до кількох хвилин після першого track-request (initial pull від carrier). - Ongoing: Vizion polls upstream sources multiple times daily, типова latency події ≤ 6 годин від реального terminal/carrier API timestamp до webhook. - Polling fallback: GET endpoint, з check every 12 годин на оновлення (для клієнтів які не хочуть webhooks).

Sample integration (Python, REST).

import requests

VIZION_API_KEY = "vk_..."
BASE = "https://api.vizionapi.com"

# Step 1: Register a container for tracking
resp = requests.post(
    f"{BASE}/references",
    headers={"Authorization": f"Bearer {VIZION_API_KEY}"},
    json={
        "request_type": "BL_NUMBER_WITH_SCAC",
        "scac_code": "MAEU",
        "request_number": "234567891",
        "webhook": {"url": "https://api.shipcore.io/v1/webhooks/vizion"},
    },
)
shipment_id = resp.json()["id"]

# Step 2: Poll fallback (if no webhook delivered)
events = requests.get(
    f"{BASE}/references/{shipment_id}",
    headers={"Authorization": f"Bearer {VIZION_API_KEY}"},
).json()

Strengths для ShipCore. - Developer-first API + clear webhooks → straight fit з нашою AggregatorCarrierAdapter. - AIS verification — ловимо реальні vessel events, не тільки carrier-self-reported. - Транспарентний free dev-tier (Webhook.site sandbox підтримується).

Weaknesses. - US-bias: Class I rail тільки North American, EU rail (DB Cargo, PKP) — нема. - Terminal coverage слабкий поза US/major EU портами (Constanța feeder, Reni — швидше за все no coverage out-of-box). - Pricing непрозорий вище за Core tier.


1.2 Terminal49 (terminal49.com)

Профіль. Прямий конкурент Vizion, ocean-first focus. Орієнтований на importers + freight forwarders, акцент на demurrage / detention cost control (Last Free Date intelligence — їхня differentiation).

Coverage. - 150+ data sources: Class I rails, US terminals, ocean carriers. - 100 % carriers що touch North America for US import data — усі доступні через єдиний JSON API. - EU coverage слабша за US (як і у Vizion).

Pricing. - Free Developer Key — до 100 контейнерів total для testing. - Production: мінімум 100 контейнерів/міс commitment (per publicly available info). - Reported per-container pricing ~$3 на контейнер at higher volume (per G2 reviews 2026 — не official price card). - Ціни вище за Vizion для small volume, але вигідніші у scale (~mid 5-figures USD/рік для 1000+ контейнерів/міс). - Enterprise / volume tiers — custom quote.

API model. Push-based webhooks при container status change (milestones, ETAs, new data). Standardized JSON across carriers — unified schema.

Strengths. - Найкраща LFD intelligence на ринку (важливо для Constanța demurrage scenarios у Чорноморському корідорі). - Free dev tier дозволяє full proof-of-integration перед billing. - Чіткіше структуроване developer onboarding (документація + sample apps на GitHub @Terminal49).

Weaknesses. - Ocean+intermodal focus; нема air, нема truck/LTL. - EU carrier nuances (Black Sea feeder operators) — швидше за все обмежено.


1.3 project44 (project44.com)

Профіль. Enterprise multimodal visibility platform. 1000+ enterprise brands, $100M+ ARR (FY2024), 30 %+ YoY growth. Наближається до позиції «de-facto standard у Fortune 500 supply chain».

Coverage. - 4 інтегровані модулі: transportation management, supply chain visibility, yard management, eCommerce logistics. - All modes: ocean, air, road (FTL+LTL), rail, parcel. - Найкраща network density серед aggregators — більше carrier-side OAuth handshake коробкою.

Pricing. Custom enterprise quote, не публікується. Per Tradlinx blog (2026), ціна включає setup fees, integration fees, per-shipment charges, мінімальний контракт 12+ місяців. Анонімний benchmark — від $100K/рік для mid-enterprise з 5K shipments/міс (наближення з community sources, не публічно).

Partnership program. Так, project44 має партнерську програму (TMS integrators, BI/analytics tools, customs brokers), але це resellers / certified integrators з повним enterprise compliance. Малі SaaS типу ShipCore інтегрують як data consumer, не як reseller.

Verdict для ShipCore. Скіп для v1. Економіка не сходиться — ми будемо платити enterprise ціну за кейси, де клієнт відстежує 200-500 контейнерів/міс. P44 повертаємось у Phase 9+ якщо ARPU зросте до enterprise рівня.


1.4 FourKites (fourkites.com)

Профіль. Multimodal visibility (road + rail + ocean + air + parcel + last-mile). 3M+ shipments/день, 200+ countries, 1200+ recognized brands (включно з 9 з top-10 CPG, 18 з top-20 F&B).

Coverage. - Ocean: 98 % global ocean traffic, ETAs 6× more accurate (per власне marketing). - EU rail: через NIC-place партнерство — позиціонує себе як «єдиний у Європі multimodal single-platform». - Yards, warehouses, stores — beyond-transport visibility.

Pricing. Per-user model, $100-500/користувач/міс (Tradlinx 2026 benchmark, third-party). Plus implementation/integration fees.

EU status. Активне розширення — Spotos partnership 2024 для European shippers, NIC-place rail. Public у EU, але historically US-first.

Verdict для ShipCore. Скіп для v1. Per-user pricing погано матчить SMB/forwarder economics (де sales+ops team може бути 30+ людей по $300/міс = $9K/міс лише за visibility — нерентабельно для ShipCore-Forwarder Mid tier).


1.5 Architectural Integration Plan (per D11)

Канонічний паттерн — CarrierAdapter interface. Один інтерфейс, дві реалізації; Forwarder Booking workflow вибирає за carrier_code.

# backend/shipcore/integrations/carrier_adapter.py
from __future__ import annotations
from abc import ABC, abstractmethod
from dataclasses import dataclass
from datetime import datetime
from typing import Iterable


@dataclass(frozen=True)
class TrackingEvent:
    """Канонічна модель події незалежна від carrier."""
    booking_ref: str
    container_no: str | None
    event_code: str          # UNECE event codes (LOAD, DISC, GATE_IN, GATE_OUT, ...)
    event_time: datetime
    location_unlocode: str | None
    vessel_imo: str | None
    voyage_no: str | None
    raw_source: dict          # original payload для audit


class CarrierAdapter(ABC):
    """Базовий контракт. Кожен carrier — direct або aggregator."""

    carrier_code: str  # SCAC (MAEU, HLCU, CMAU, MSCU, ...) або aggregator id

    @abstractmethod
    def register_tracking(self, booking_ref: str, container_no: str | None) -> str:
        """Підписатись на оновлення; повертає external tracking id."""

    @abstractmethod
    def fetch_events(self, tracking_id: str) -> Iterable[TrackingEvent]:
        """Pull-fallback. Зазвичай використовується тільки якщо webhook не прийшов."""

    @abstractmethod
    def parse_webhook(self, payload: dict) -> Iterable[TrackingEvent]:
        """Push-канал. Webhook handler передає сюди raw payload, отримує канонічні events."""


class DirectCarrierAdapter(CarrierAdapter):
    """OAuth2 + carrier-native REST. Maersk, Hapag-Lloyd, CMA CGM, MSC."""
    # Підкласи:
    #   MaerskSpotAdapter    (Phase 5)
    #   HapagLloydAdapter    (Phase 8)
    #   CmaCgmAdapter        (Phase 8)
    #   MscEbusinessAdapter  (Phase 8)


class AggregatorCarrierAdapter(CarrierAdapter):
    """Vizion / Terminal49 fallback для всіх інших carriers."""

    def __init__(self, provider: str, api_key: str):
        self.provider = provider  # 'vizion' | 'terminal49'
        self.api_key = api_key


# backend/shipcore/integrations/registry.py
CARRIER_ADAPTERS = {
    'MAEU': MaerskSpotAdapter,           # P0 — Phase 5
    'HLCU': HapagLloydAdapter,           # P1 — Phase 8
    'CMAU': CmaCgmAdapter,               # P1 — Phase 8
    'MSCU': MscEbusinessAdapter,         # P1 — Phase 8
    # Решта (ONE, ZIM, COSCO, Evergreen, Yang Ming, HMM, ...) → fallback
}

def get_adapter(carrier_code: str) -> CarrierAdapter:
    cls = CARRIER_ADAPTERS.get(carrier_code)
    if cls:
        return cls()
    return AggregatorCarrierAdapter(provider='vizion', api_key=settings.VIZION_API_KEY)

Model side. - shipcore.Booking.tracking_status — denormalized last event - shipcore.ShipmentEvent (from D6 thin core) — append-only лог нормалізованих подій - shipcore.integrations.CarrierCredential — OAuth tokens / API keys per tenant per carrier

Webhook side. - Single endpoint /api/v1/webhooks/{provider} (provider ∈ direct carriers + aggregators) - HMAC verification per provider (Maersk uses signature header, Vizion uses webhook secret) - Async processing через Celery → write ShipmentEvent, update Booking.tracking_status, broadcast у Channels (live UI update)


1.6 Cost Analysis — UA Mid-Market Customer (500 containers/month)

Профіль: UA forwarder, 500 нових контейнерів/міс, 80% з top-4 carriers (Maersk/Hapag/CMA/MSC) → решта 100 контейнерів/міс на ONE/ZIM/COSCO/Evergreen.

Сценарій A — Vizion для всіх 500 контейнерів. - Estimate: $500-800/міс при Core tier з custom quote (на 500 моніторингів). - Setup once, no per-carrier OAuth maintenance. - Cost-per-container: ~$1.0-1.6.

Сценарій B — Direct top-4 + Vizion fallback (D11 hybrid, ShipCore default). - Maersk/Hapag/CMA/MSC direct → API costs $0 (carriers самі надають free OAuth tier для forwarders). - 100 контейнерів/міс через Vizion → estimate $120-200/міс. - Total: $120-200/міс для 500 контейнерів. - Cost-per-container: ~$0.24-0.40. - Hidden cost: dev час на 4 direct adapters (~5-7 днів кожен у Phase 5+8 = ~25 днів total).

Сценарій C — Terminal49 для всіх 500. - ~$3/контейнер × 500 = $1500/міс. - Pure ocean focus, найкраща LFD intelligence (плюс для UA→Constanța demurrage). - Setup за день, free dev tier для тестування. - Cost-per-container: $3.

Сценарій D — project44 / FourKites. - Enterprise pricing $50K-150K/рік. - $8K-12K/міс для 500 контейнерів — 3-5× вище за прямого forwarder margin на цьому обсязі. Не life-viable для UA mid-market.

Recommendation.

Phase Strategy Reasoning
Phase 5 (MVP) Сценарій B — Maersk direct + Vizion fallback Найдешевше + найшвидший time-to-market
Phase 8 (EU expansion) Додати Hapag/CMA/MSC direct → знижуємо vendor-lock на Vizion Якщо ZAMMLER pilot покаже >2K контейнерів/міс, Terminal49 стає економічно вигіднішим за Vizion для LFD-intensive flows
Phase 9+ Reconsider project44, якщо ARPU > $5K/міс per tenant Тоді OK платити $100K/рік за coverage

Track 2 — Awery Partnership Plan (Phase 9+ avia)

2.1 Awery — публічна інформація

Параметр Значення Джерело
Заснована 2010 (UA-походження, IT-команда родом з Києва, юр. особа дрейфувала) crunchbase, awery.aero/about-us (?)
Поточний HQ RAK (Ras al Khaimah, UAE), 31291 ZoomInfo
Альт. локації Montreal CA (founding office), Київ (R&D), Singapore, EU desk LinkedIn (?)
Розмір ~67 employees (Feb 2026) на 4 континентах (EU, Asia, NA, ME) ZoomInfo
CEO / Founder Vitaly Smilianets LinkedIn
COO Vladimir Gabovich LinkedIn
CCO/CXO Tristan Koch LinkedIn
Продукт Awery ERP — повний aviation ERP: airline ops, ground handling, GSSA, cargo, charter, fleet maintenance awery.aero
Notable customers Etihad Cargo (Cargo Chartering Programme), Network Aviation Group (global IT transformation), Group Concorde (GSSA) meantime.global press, aviation press

2.2 ONE Record positioning — чому саме Awery

  • 5× IATA ONE Record Hackathon winner (latest — Hong Kong 2026 з проєктом «Voyager», 48-hour build).
  • Перший digital provider інтегрований з IATA CO2 Connect for Cargo (March 2026).
  • Keynote IATA WCS 2026 (Lima, 10-12 March): «ONE Record as the Backbone for Sustainable Air Cargo» — Awery себе позиціонує як ONE Record thought leader.
  • IATA Survey (Dec 2025): зростаюча обізнаність ONE Record серед stakeholders, але fragmentation залишається — Awery позиціонується як консолідатор.

Mandatory ONE Record transition timing. - З січня 2026 ONE Record стало IATA-preferred standard для cargo data exchange. - Mandatory adoption — 2026 (Loadstar, IATA press), але exact compliance enforcement дата для airlines не зафіксована (поки IATA tracks adoption metrics).

2.3 API documentation — public vs partner-gated

  • awery.aero показує product modules (Cargo Spot, Crew, Maintenance, Charter), але немає публічного developer.awery.aero portal на момент перевірки.
  • API доступне через partnership / customer relationship — partner-gated.
  • ONE Record API specification — public (IATA standard), Awery впроваджує як reference implementation.
  • Dev-evidence: GSSA-онбординги Awery (Group Concorde, FEDAGSA winner) — це їхні комерційні integrations, не open standard.

2.4 Можливі partnership models

Model A — Reseller (ShipCore продає Awery avia як addon). - ShipCore отримує margin (15-25 %?) на subscription Awery. - Plus: швидкий time-to-market для UA forwarders, які потребують air cargo flow. - Minus: ShipCore залежить від Awery roadmap; немає differentiation. - Fit: medium — імітує модель CargoWise + add-ons.

Model B — White-label (Awery використовує ShipCore stack для UA-ринку). - Awery бере ShipCore-Forwarder як «UA local TMS», ShipCore тримає UA compliance (eTTN, M.E.Doc, ДПС). - Plus: Awery приходить на UA-ринок без own UA-compliance R&D. - Minus: Awery значно більший — переговорна позиція слабка для ShipCore. - Fit: low — Awery, маючи 67 employees + UAE/Canada/UA-roots, не потребує UA proxy. Вони краще наймуть UA dev-shop напряму.

Model C — Bidirectional data exchange (Awery AWB ↔ ShipCore Booking). - Інтеграція через ONE Record (обидві сторони speak ONE Record). - ShipCore Booking, що включає avia leg, передає shipment data в Awery; Awery повертає AWB events назад у ShipCore. - Plus: clean separation of concerns. Кожен робить своє. Standards-based. - Minus: вимагає, щоб ShipCore сам впровадив ONE Record consumer (Phase 8 deliverable). - Fit: HIGH — це найреалістичніший шлях. Не вимагає commercial agreement — лише technical interop.

Model D — Joint venture. - Awery + ShipCore спільно засновують UA-логістична-плагін company. - Минус: занадто складно для current sizes, Awery не має stake-incentive. - Fit: very low — не реалістично.

2.5 Outreach plan

Decision-makers (рекомендований порядок). 1. Tristan Koch (CCO/CXO) — найбільш approachable для partnership conversation; саме його роль — partner/customer experience. LinkedIn outreach + опис ShipCore як ONE Record-ready UA TMS. 2. Vladimir Gabovich (COO) — якщо Tristan ескалює до операційного рішення. 3. Vitaly Smilianets (CEO/Founder) — лише для commercial commit; перші 2 розмови — не з ним.

Channels. - LinkedIn DM — primary (Tristan активно постить, є шанс на дзеркальну response). - IATA WCS 2027 (March, location TBD на момент написання) — face-to-face during keynote/booth (Awery має regular presence). - Direct email через partners@awery.aero (?) — secondary, після LinkedIn warm-up. - Через UA tech community — Awery R&D team історично з Києва, є шанс «теплого» intro через Lviv/Kyiv tech meetups.

Timeline.

Phase Action
Phase 4-5 (зараз — кін. 2026) Soft intro через LinkedIn + email; share ShipCore concept doc (1-page, non-NDA). Goal: introductory call, not commitment.
Phase 6-7 (2027 H1) Якщо positive: design ONE Record interop spec разом. ShipCore робить proof-of-concept Booking → AWB exchange.
Phase 8 (2027 H2) Production rollout як Model C для першого spinning UA-forwarder клієнта з air cargo лінією.
Phase 9+ Якщо traction — обговорити Model A reseller agreement.

2.6 Risks

  • R1: Awery занадто large щоб ігнорувати ShipCore proposal. Реальний ризик — 67 співробітників, корпоративний customer base (Etihad, Network Aviation), річна виручка ~$5-15M (?). UA SMB ринок для них — non-priority. Mitigation: не продавати їм нічого, продавати їх клієнтам ShipCore як local UA layer. Заходимо через клієнтів-агентів Awery в UA, не через Awery HQ.
  • R2: ONE Record adoption повільніша за маркетинг. IATA survey Dec 2025 показав «growing awareness» — це diplomatic для «slow adoption». Якщо до Phase 9 ONE Record все ще не mandatory, Model C технічно ускладнюється (треба підтримувати legacy Cargo-IMP/Cargo-XML паралельно).
  • R3: UA-roots Awery — palpable conflict. Якщо Awery планує власний UA-launch (припустимо, через Києв R&D), ми можемо стати конкурентами, не партнерами. Mitigation: перші розмови у Phase 4-5 саме для калібрування цього сигналу.

Track 3 — WIN Platform Deep (Phase 7 buy-vs-build)

3.1 WIN — повне ім'я та позиціонування

  • Worldwide Information Network (WIN) — підтверджено через winwebconnect.com та Riege press release.
  • HQ: Bangkok, Thailand. Customer service offices у Asia, Europe, Africa, North America.
  • Parent company: не зафіксовано публічно. Independent organization (?).
  • Брендинг: на market presence — як «WIN» / «WIN Connect»; домен winwebconnect.com.

3.2 Coverage — air vs ocean

Важливе уточнення з research: WIN в момент Riege Scope integration позиціонувався як «air freight only». Сторінка winwebconnect.com/Public/Products/WIN_airfreight.html явно air-only product (e-AWB, e-Manifest, AWB tracking, 160+ airlines).

Riege Scope Implementation press release (історичний): натякає на «Worldwide Information Network… для air and ocean freight forwarding» — але це Scope's capability (Scope покриває обидва), не WIN's. Імовірно, Riege використовує WIN тільки для air-leg, а ocean — інший connectivity (DCSA, native carrier APIs).

Висновок: WIN = air-cargo connectivity hub. Якщо потрібен ocean rate aggregation, WIN — не той інструмент. Це критично для Phase 7 decision.

3.3 Pricing model

  • Не публікується. Сайт декларує «account free of charge» лише для destination agents (consume-only side), не для primary forwarders.
  • Бізнес-модель — subscription per forwarder office (?) + можливі transaction fees (?).
  • IATA multilateral e-AWB enrollment включений (single-click).

Естімація для UA-forwarder з air desk (без публічних чисел): $200-800/міс/office, базуючись на типовому EDI service-bureau pricing у regions (?).

3.4 Customer base & integration patterns

  • 160+ airlines з'єднано (через IATA Cargo-IMP, Cargo-XML, future ONE Record).
  • Customer types: independent forwarders, co-loaders (з окремими credentials).
  • Integration pattern (Riege case): system-to-system REST/Web Service wrapper над IATA messaging. Riege Scope викликає WIN API для:
  • Send FWB (e-AWB master) до airlines
  • Send FHL (e-Manifest, house AWBs) до airlines
  • Receive FSU status updates / tracking events
  • WIN documentation public: «WIN Air Freight API» Release 3.4 + 3.5 PDFs доступні з winwebconnect.com/Public/Resources/TechDocs/.

3.5 Buy-vs-Build для ShipCore-Pricing (Phase 7)

Корекція: оригінальна постановка C3 — «WIN platform research перед LaneRateHistory build». Але WIN — це air messaging hub, не rate aggregator. Тому buy-vs-build треба передефінувати.

Що ми реально хочемо у shipcore_pricing.LaneRateHistory: 1. Спостерігати ринкові ставки на маршрутах (UA→Constanța feeder, EU↔Asia ocean, EU intra-road). 2. Storing tenant-private quotes/contracts → benchmark внутрішніх margin. 3. Trend analytics (FSC adjustments, seasonal premium) для CPM calculator.

WIN не вирішує цього. Ні. WIN — це e-AWB connectivity layer. Аналог для ocean — DCSA APIs / INTTRA (legacy). Аналог для rate aggregation (що ми думали) — це Xeneta (ocean+air freight rate analytics platform), Freightos / WebCargo (booking marketplace), Freightify (rate management SaaS).

Перевизначений buy-vs-build (для Phase 7).

Опція Cost Timeline Differentiation Recommendation
Build LaneRateHistory tenant-private (з нашого виконаного booking flow) ~10-15 дн dev 2-3 тижні High — UA-coridor specifics (Чорноморський feeder, Дунайський, EU Land), які не покриває жоден aggregator GO (Phase 7)
Partner Xeneta для ocean+air market index $50-150K/рік (?) (enterprise) 1-2 тижні interop Low — дані доступні всім; ми лише robust UI поверх Pas в v1; reconsider у Phase 9
Partner WIN для air e-AWB connectivity $200-800/міс/office (?) 2-4 тижні Air-only; не пересікається з shipcore_pricing scope Розглянути у Phase 9 з shipcore_avia як partner до Awery (Track 2 вище)
Partner Freightify для contract rate management UI Custom (10-30K/рік?) 2-3 тижні UI/UX покращення, але lock-in Skip — будуємо свій pricing engine

Recommendation Phase 7. - Build shipcore_pricing.LaneRateHistory як tenant-private aggregator з виконаних Booking.executed_rate записів. - Не партнер ні з ким для market rate intelligence у v1. - WIN partnership — переніс у Phase 9 як частину shipcore_avia + Awery narrative (air e-AWB connectivity), не у Phase 7 pricing.


Track 4 — Compliance Screening Providers (Phase 8)

4.1 EU public sanctions XML feed (free baseline для v1.5)

Source. European Commission DG FISMA — Consolidated Financial Sanctions List.

URLs (verified): - XML feed (token-protected, free public token): https://webgate.ec.europa.eu/fsd/fsf/public/files/xmlFullSanctionsList_1_1/content?token=dG9rZW4tMjAxNw (token dG9rZW4tMjAxNw — public, base64 за «token-2017») - RSS update feed: https://webgate.ec.europa.eu/fsd/fsf/public/rss - Data portal landing: https://data.europa.eu/data/datasets/financialsanctions

Format & schema. - XML 1.1 schema (FSF), structured: entities (persons, groups, vessels), sanctions programmes, regulation references, identifiers (date of birth, place, passport, registration number). - Updated same day as Official Journal publication; baseline daily refresh recommended.

Coverage limitations (free feed). - ✅ Усі EU CFSP sanctions programmes (включно з RU, BY, IR, KP, SY, etc.). - ❌ Нема OFAC SDN (US) — окрема feed від OFAC, але теж free (sanctionssearch.ofac.treas.gov + treasury.gov XML). - ❌ Нема UK HMT consolidated list (post-Brexit окремо) — теж free, gov.uk OFSI. - ❌ Нема UN consolidated list — free feed від un.org/securitycouncil/content/un-sc-consolidated-list. - ❌ Нема PEP (Politically Exposed Persons) — це коммерційний продукт. - ❌ Нема adverse media — коммерційний продукт.

Висновок: для v1.5 baseline (KYC perform на client creation + перед invoice issue) EU + OFAC + UK HMT + UN free feeds — достатньо для basic compliance. PEP/adverse media — paid upgrade.

4.2 Refinitiv World-Check One (LSEG)

Профіль. De-facto enterprise standard для KYC/AML screening. LSEG (London Stock Exchange Group) brand з 2023 (раніше — Refinitiv).

Coverage. - 57,000+ active sanctions records, 300+ sanction programmes. - 10,000+ global information resources, 900+ sanction/regulatory/law-enforcement lists, 5900+ official/government sites. - Major lists OFAC, EU, UN — 24/7/365 monitored. - Включає PEP, adverse media, beneficial ownership.

API. - World-Check One — API-first, REST. - Batch screening + real-time за one-call API. - OAuth + HMAC signing. - Документація — partner-gated.

Pricing. - Не публікується. Per G2 reviews + community: «extraordinarily expensive», тижні-місяці на implementation. - Annual enterprise contract; multi-year discounts. - Anonymous benchmarks: starting $25K-50K/рік для small SME tier; enterprise — $100K+/рік (?).

Verdict для ShipCore. Skip у v1, reconsider у Phase 9. Цінник не стикується з UA mid-market economics. Reseller / GSI partner channel — складно отримати без enterprise sales rep.

4.3 ComplyAdvantage

Профіль. Modern AI-driven AML/sanctions/PEP screening, fintech-favorite. Базовано в London, серйозний competitor World-Check на digital-native side.

Coverage. - Real-time updates з OFAC, HMT, EU consolidated, UN + 60+ jurisdictions. - PEP database, adverse media, watchlists. - Manual data quality checks expert team.

API. - REST + JSON, sandbox. - SFTP batch + web UI alternatives. - Mambu + AWS marketplace integrations.

Performance. - Reported: 70 % reduction in false positives, 50 % faster onboarding, 95 % automation of KYC reviews.

Pricing. - Не публікується. Анонімні benchmarks: $15-30K/рік для small SaaS (1-10K screenings/міс), $50-150K/рік mid-tier. - Per-screen pricing у некоторих tiers (~$0.05-0.50/screen volume).

Verdict. Strong upgrade candidate для Phase 9 як заміна або complement до vector EU+OFAC free feeds. Дешевше за World-Check, modern API, краща fit для SaaS архітектури.

4.4 Sanctions.io

Профіль. Cost-effective developer-first screening API. Орієнтований на fintech/SaaS, не enterprise.

Coverage. - 75+ sanctions/watchlists з 30+ jurisdictions. - PEP database 1M+ records (включно сім'ями та close associates). - Interpol + FBI 8K records — free with subscription.

Performance. - Lists updated every 60 minutes. - 99.99 % uptime, < 350 ms response time. - REST API, batch screening, manual UI, CRM integrations.

Pricing. - Контрактна з online volume calculator — не fixed published rates. - Tiered за screening volume. - Анонімні benchmarks: starts ~$200-500/міс для small volume (1-5K screenings/міс), scaling to $2-5K/міс mid (50K screenings/міс).

Verdict. Best fit для Phase 8 v1.5. Прозоріше за World-Check, дешевше за ComplyAdvantage, sufficient coverage для UA forwarder KYC flow.

4.5 Recommendation: progressive upgrade path

v1 (Phase 5-7) — UA-only. - KYC focus: UA-only клієнти. Перевірка через ДПС (вже інтегровано) + Опендатабот (free). - Sanctions screening — deferred (не вимагається для UA-only flow в межах UA).

v1.5 (Phase 8) — EU expansion baseline. - EU consolidated XML (free) + OFAC SDN (free) + UN consolidated (free) + UK HMT (free). - Pre-load locally, daily refresh job (Celery beat). - Screening — на client create + перед invoice issue + cron-job для existing client revisit. - Reasoning: free; для small UA forwarder з єдиним 1-2 EU клієнтами на рік досить.

v2 upgrade (Phase 9+, optional, premium tier). - Sanctions.io як default upgrade path для клієнтів які хочуть PEP + adverse media + frequent refresh. - ComplyAdvantage як enterprise tier для клієнтів з 1000+ KYC checks/міс. - World-Check / LSEG — лише за explicit enterprise customer request (multinational forwarder).

4.6 Implementation note

# backend/shipcore/compliance/sanctions/__init__.py
class SanctionsProvider(ABC):
    @abstractmethod
    def screen(self, name: str, country: str | None = None,
               birth_date: date | None = None) -> ScreeningResult:
        ...

class EuFreeProvider(SanctionsProvider):
    """v1.5 default. Локальний XML cache + fuzzy match (rapidfuzz)."""
    refresh_url = "https://webgate.ec.europa.eu/fsd/fsf/public/files/xmlFullSanctionsList_1_1/content?token=dG9rZW4tMjAxNw"

class SanctionsIoProvider(SanctionsProvider):
    """v2 upgrade path."""

class ComplyAdvantageProvider(SanctionsProvider):
    """Enterprise tier."""

class WorldCheckProvider(SanctionsProvider):
    """LSEG enterprise."""

Plus tenant settings — tenant.compliance.sanctions_provider (eu_free | sanctions_io | complyadvantage | worldcheck), default eu_free.


Sources

Tracking aggregators

Awery

WIN platform

Sanctions screening


Phase 2 Track 1-4 research зафіксовано 2026-05-12. Подальша робота: - Phase 5 — реалізація CarrierAdapter interface + Maersk direct + Vizion fallback. - Phase 4-5 — soft outreach до Awery (Tristan Koch via LinkedIn). - Phase 7 — build shipcore_pricing.LaneRateHistory (без зовнішнього rate aggregator у v1). - Phase 8 — shipcore.compliance.sanctions з EU XML free feed; sanctions.io upgrade path задокументований.