Connect everything. Replace nothing.

Catalog-based connector marketplace. Activate a provider, enter credentials, done. Swap anytime — no code changes, no downtime.

9Providers
5Categories
AES-256Encryption
15 minHealth checks

Provider catalog

Adding a new provider: one connector file + one seed entry. No migrations, no gateway changes. Activate from the CRM with a single API call.

ProviderCategory
zadarmaVoIP
voisoVoIP
twilio_voiceVoIP
sendgridEmail
gmailEmail
twilio_smsSMS
praxisPayment
bridgerpayPayment
sumsubKYC

Payment routing

Per-country configuration. Brazil uses BridgerPay for deposits and Praxis for withdrawals. Germany uses Praxis for both. Unconfigured countries fall back to the default gateway.

Payment routing flow

// Configure: PUT /api/platform/payments/routing/BR
{
  "deposit_gateway": "bridgerpay",
  "withdrawal_gateway": "praxis",
  "is_active": true,
  "note": "Brazil uses BridgerPay for deposits"
}

// Resolve: GET /payments/gateway?country=BR&direction=deposit
{
  "gateway": "bridgerpay",
  "type": "embed",
  "script_url": "https://embed.bridgerpay.com/connector.min.js",
  "cashier_key": "..."
}

KYC integration

SumSub connector with automatic webhook verification. Maps provider status to compliance gates. Triggers 5-gate re-evaluation on KYC approval.

  • externalUserId = customer UUID for seamless mapping
  • Document type and country captured from verification
  • Provider-agnostic internal format for future connectors
  • HMAC-verified webhook with x-payload-digest validation

POST /webhooks/kyc (internal format)

{
  "customer_id": "uuid",
  "provider": "sumsub",
  "provider_id": "ext-ref-123",
  "status": "approved",
  "doc_type": "passport",
  "doc_country": "US",
  "raw_result": {}
}

Communication channels

Provider-agnostic email, SMS, and call initiation. The platform provides the content — the integration service handles delivery. Delivery status tracked via inbound webhooks.

  • SendGrid or Gmail for transactional email
  • Twilio SMS for text messaging
  • Zadarma, Voiso, or Twilio Voice for click-to-call
  • Delivery webhook handlers per provider with status mapping

POST /api/platform/integrations/email/send

{
  "to": "[email protected]",
  "subject": "Welcome to trading",
  "body_html": "<p>Hello John</p>",
  "from_email": "[email protected]",
  "customer_id": "uuid",
  "event_type": "welcome"
}

// 200 OK
{"message_id": "...", "status": "sent", "provider": "sendgrid"}

Affiliate & IB webhooks

HMAC-SHA256 signed webhook delivery to affiliate portals. FTD tracking with per-country minimum thresholds. Permanent post-FTD suppression.

  • Batched delivery every 30 seconds with configurable max batch size
  • Retry on failure with delivery attempt logging
  • lead.ftd is the final webhook — all subsequent events permanently suppressed
  • Delivery stats: success rate, avg latency, last failure reason

Outbound webhook payload

{
  "event": "lead.ftd",
  "batch_at": "2026-03-10T12:00:00Z",
  "leads": [{
    "affiliate_lead_id": "portal_lead_99871",
    "amount": 500.00,
    "currency": "USD",
    "ftd_at": "2026-03-10T11:59:01Z"
  }]
}
// Header: X-Webhook-Signature: sha256=...

Ready to see it in action?