Developer Guide

Integration reference for developers building applications on top of OMNYTH.

Integration Lifecycle

Integrating with OMNYTH follows four stages:

  1. Configure — set up country profiles, payment types, rails, and flow definitions in the OMNYTH platform.
  2. Test — submit test payments through the Experience API against your configured flows.
  3. Validate — review step-level execution logs to confirm routing, compliance, and provider selection behave as expected.
  4. Go Live — switch to production credentials and publish your flows.

Authentication

OMNYTH uses token-based authentication. All API requests must include a bearer token obtained from the authentication server. Tokens are scoped to a specific realm and expire after a configurable period.

Contact your OMNYTH administrator to obtain client credentials for your integration. Do not hardcode credentials in application source code.

Experience APIs

The Experience API is the integration entry point. It provides a versioned, clean interface for initiating payments, checking status, and handling responses — without requiring knowledge of internal flow or provider structure.

Experience APIs are defined in the OMNYTH platform and expose exactly the fields your application needs. Sensitive fields are masked in responses. Internal routing and provider details are not exposed.

Request Structure

A payment initiation request contains:

{
  "payment_type": "DOMESTIC_TRANSFER",
  "source_country": "JO",
  "currency": "JOD",
  "amount": 500.00,
  "debtor": {
    "account_number": "...",
    "bank_code": "..."
  },
  "creditor": {
    "account_number": "...",
    "bank_code": "..."
  },
  "reference": "INV-2026-001",
  "metadata": {}
}

Response Structure

Successful initiation response:

{
  "payment_id": "PAY-20260604-00001",
  "status": "RECEIVED",
  "created_at": "2026-06-04T10:00:00Z",
  "reference": "INV-2026-001"
}

Failure response:

{
  "error": "VALIDATION_FAILED",
  "message": "Amount exceeds daily limit for this payment type",
  "payment_id": "PAY-20260604-00002",
  "status": "FAILED"
}

Error Model

Error CodeMeaningRetryable
VALIDATION_FAILEDRequest fields failed validationNo
LIMIT_EXCEEDEDAmount or count exceeds configured limitNo
SCREENING_BLOCKEDPayment blocked by sanctions screeningNo
ROUTING_FAILEDNo matching route foundMaybe
PROVIDER_ERRORProvider returned a transient errorYes
PROVIDER_DECLINEDProvider declined the transactionNo
NO_ACTIVE_FLOWNo published flow for this payment typeNo

Security Concepts

OMNYTH supports field-level encryption, payload signing, and HMAC verification — all configurable via security policies in the platform.

  • Encryption — AES-GCM or AES-CBC encryption for specific fields or full payloads. Keys are managed via keystores or HSM references.
  • Signing — JWS RS256 signatures on outbound provider requests, verifiable by providers using the published public key.
  • HMAC — HMAC-SHA256 integrity verification on inbound webhooks and callbacks.

Security policies are attached to service integrations in the platform. Enabling or disabling security does not require application code changes.