Titan API

Titan is the platform’s compliance, fraud, and risk management module, providing real-time tools to help partners protect their businesses and meet regulatory requirements. Titan combines automated verifications, fraud detection, and financial validation into a single, streamlined solution.

With the Titan API, partners can:

  • Perform KYC Compliance Scans
    Instantly verify the identities of individuals to meet regulatory and onboarding requirements.
  • Perform KYB Compliance Scans
    Conduct business entity verification (Know Your Business) for ultimate beneficial ownership (UBO) and risk screening.
  • Perform IDV (Selfie ID Verification)
    Authenticate individuals using ID plus selfie face match, with passive liveness testing to prevent fraud such as image spoofing and deepfake attacks.
  • Manage Fraud
    Monitor, detect, and respond to potential fraud activity with configurable rules and workflows.
  • Monitor Transactions for AML Screening
    Automatically screen transactions in real time to detect suspicious activity and meet Anti-Money Laundering (AML) obligations.
  • Validate Bank Information
    Verify Routing Numbers, SWIFT Codes, and IBANs to ensure the accuracy and legitimacy of banking details during onboarding and payment processing.

Titan enables partners to confidently scale operations, safeguard their programs, and stay compliant — all while delivering a seamless user experience.

Key Features:

  • Automated KYC, KYB, and IDV verifications
  • Real-time transaction fraud monitoring and case management
  • AML transaction screening and alerting
  • Secure validation of banking information (Routing Number, SWIFT, IBAN)
  • Designed for compliance-driven, risk-aware operations

Titan Compliance

Use the compliance service, to perform KYB, KYC, IDV scans.  The scans also include sanctions screening, data verification, document authentication.

KYB & KYC Scans

Steps to complete a full compliance scan for a Business Profile:

  1. 1. Perform a KYB scan on the business
  2. 2. Perform a KYC scan on each business contact

Steps to complete a full compliance scan for a Personal Profile:

  1. 1. Perform a KYC scan on each business contact

IDV Scans

Selfie ID Verification (IDV) uses ID plus selfie face match and passive liveness testing to better deter and detect fraud, catch image spoofing, deepfakes etc.

The response will include a link that can be used by your merchant to complete IDV scan. If an email address is included in the request, an automated email will be sent which includes the link to complete the IDV scan.

The IDV scan can only be performed on business contacts and personal contacts.

KYB

The KYB (Know Your Business) Business API initiates an automated scan to swiftly and confidently verify businesses and their Ultimate Beneficial Owners (UBO) using multiple layers of compliance and risk detection.

Rules:

  • The scan runs against the business object linked to the merchant's profile.
  • This request starts a KYB verification workflow.
  • The status of the KYB scan is not returned immediately — instead, the user will receive a webhook notification once the KYB process completes.
  • The webhook will indicate whether the business is:
    • "PENDING"
    • "ACCEPT"
    • "DENY"
    • "MANUAL_REVIEW"

Endpoint Structure

  • Method: POST
  • Endpoint: /v1/compliance/kyb/business/{businessUuid}

Path Parameter

Type Description
businessUuid String (UUID)
Unique identifier of the business from the merchant profile to scan.

Example Immediate Response

    {
      "success": true,
      "timestamp": "2023-01-01 00:00:00",
      "body": {
        "status": "PENDING"
      }
    }
      

Expected Webhook Notification (Separate Step)

Once the scan is complete, a webhook will be triggered.
Webhook details will include the updated KYB status:

Status Description
PENDING KYB scan is still in progress.
ACCEPT Business passed verification.
DENY Business failed verification.
MANUAL_REVIEW Business requires manual review by compliance team.

(For more information about setting up webhooks, refer to the Introduction > Settings > Webhooks section in the guide.)

Notes:

  • You must monitor webhooks to track the final KYB decision.
  • This API only initiates the scan; it does not perform real-time decisioning.
  • Make sure that businessUuid corresponds to the business in the merchant profile.

KYC

The KYC (Know Your Customer) API allows to verify the identity of individuals associated with a merchant profile, using:

  • Real-time data checks
  • Document verification
  • Biometric authentication (where applicable)

This improves regulatory compliance, detects financial crime, and reduces onboarding risk.

Rules:

  • KYC scans can only be performed on:
    • Business Contacts (sub-object of Business Profile)
    • Personal Contacts (object of Personal Profile)
  • The API initiates the KYC scan.
  • The KYC result is delivered later via a webhook notification.
  • Possible KYC scan results include:
    • "PENDING"
    • "ACCEPT"
    • "DENY"
    • "MANUAL_REVIEW"

Endpoint Structures

Purpose Endpoint
KYC Business Contact POST /v1/compliance/kyc/business-contact/{businessContactUuid}
KYC Personal Contact POST /v1/compliance/kyc/personal-contact/{personalContactUuid}

Path Parameter

Type Description
businessContactUuid String (UUID)
Unique identifier of the business contact to scan.
personalContactUuid String (UUID)
Unique identifier of the personal contact to scan.

Example Immediate Response

    {
      "success": true,
      "timestamp": "2023-01-01 00:00:00",
      "body": {
        "status": "PENDING"
      }
    }
      

Expected Webhook Notification (Separate Step)

Once the KYC scan is completed, a webhook will deliver the result:

Status Description
PENDING KYC scan is still being processed.
ACCEPT Contact passed KYC verification successfully.
DENY Contact failed verification.
MANUAL_REVIEW Contact requires manual compliance review.

(For webhook configuration, refer to Introduction > Settings > Webhooks.)

Notes:

  • Monitor webhooks to retrieve the final KYC status.
  • This API only initiates the KYC scan; it does not immediately confirm pass/fail.
  • businessContactUuid or personalContactUuid must point to valid contacts.

IDV

The IDV (Selfie Identity Verification) API allows to verify an individual's identity by combining:

  • Government-issued ID document scan
  • Selfie face match (biometric comparison)
  • Passive liveness detection (anti-fraud, anti-deepfake technology)

Rules:

  • A verification link is returned in the API response.
  • Optionally, an email with the verification link is sent automatically if sendEmail: true.
  • IDV can be performed on:
    • Business Contacts (sub-object of Business Profile)
    • Personal Contacts (object of Personal Profile)
  • It is recommended to complete IDV on a mobile device, but computers are also supported.
  • A webhook notification is sent once the IDV scan is completed.

Endpoint Structures

Purpose Endpoint
IDV Business Contact POST /v1/compliance/idv/business-contact/{businessContactUuid}
IDV Personal Contact POST /v1/compliance/idv/personal-contact/{personalContactUuid}

Path Parameter

Type Description
businessContactUuid String (UUID)
Unique identifier of the business contact. (Business Profile)
personalContactUuid String (UUID)
Unique identifier of the personal contact. (Personal Profile)

Request Body Schema

Field Type Description Required?
sendEmail Boolean If true, an automated email is sent to the contact with the IDV link. If false, only the link is returned in the response. Required

Example Immediate Response

    {
        "body": {
            "url": "https://{url.com}/idv/person/{IDV-LINK-ID}"
        },
        "success": true,
        "now": "2025-04-20 13:57:41"
    }
      

Field Description for Response

Field Type Description
body.url String (URL) Direct link where the contact must complete the IDV verification.
success Boolean Indicates if the request to generate the link was successful.
now String (Timestamp) Timestamp when the IDV link was created.

Notes:

  • If sendEmail: true, the contact receives an email with the IDV link.
  • If sendEmail: false, you must manually deliver the url to the contact.
  • Completing IDV on a mobile device is recommended for better camera quality and success rate.
  • Monitor webhooks to receive updates on IDV completion results (pass, fail, manual review).

Titan Validation

Bank Lookup

The Bank Lookup API allows to validate banking information in real-time by searching against major databases for:

  • Routing Numbers (U.S. domestic)
  • SWIFT Codes (international)
  • IBANs (international)

Rules:

  • You must specify the type of lookup: "routingNumber", "swiftCode", or "iban".
  • Depending on the type selected, the correct field (routingNumber, swiftCode, or iban) must be provided.
  • If validating a Routing Number, you must also specify payType as either "ach" or "wire" to tailor the results.

Endpoint Structure

  • Method: POST
  • Endpoint: /v1/validation/bank-lookup

Request Body Schema

Field Type Description Required?
TypeStringLookup type: “routingNumber”, “swiftCode”, or “iban”.Required
routingNumberString9-digit U.S. routing number (required if type = “routingNumber”).Conditionally Required
payTypeString“ach” or “wire” (required if type = “routingNumber”).Conditionally Required
swiftCodeStringValid SWIFT code (required if type = “swiftCode”).Conditionally Required
ibanStringValid IBAN number (required if type = “iban”).Conditionally Required

Example Routing Number Response

    {
        "body": {
            "status": "success",
            "data": {
                "routingNumber": "121000248",
                "paymentType": "ach",
                "name": "Wells Fargo Bank, Na",
                "addressFull": "255 2nd Ave South, Minneapolis, MN 55479",
                "street": "255 2nd Ave South",
                "city": "Minneapolis",
                "state": "MN",
                "zip": "55479",
                "phone": "800-745-2426",
                "active": "Active",
                "lastUpdated": "Mar 25, 2024"
            }
        },
        "success": true,
        "now": "2025-04-20 14:34:52"
    }
      

Example Swift Code Response

    {
        "body": {
            "valid": true,
            "swift": "WFBIUS6S",
            "swift_data": {
                "bank": "WFBI",
                "country_code": "US",
                "location_code": "6S",
                "code_status": true,
                "branch_code": ""
            },
            "bank_data": {
                "bank_code": "",
                "name": "WELLS FARGO BANK, N.A.",
                "zip": "",
                "city": "ANCHORAGE,AK",
                "branch": "WELLS FARGO BANK, N.A., ANCHORAGE,AK",
                "address": "",
                "country": "United States",
                "country_code": "US"
            }
        },
        "success": true,
        "now": "2025-04-20 14:36:00"
    }
      

Example IBAN Response

    {
        "body": {
            "valid": true,
            "message": "IBAN number is valid.",
            "iban": "DE89370400440532013000",
            "iban_data": {
                "country": "Germany",
                "country_code": "DE",
                "sepa_country": true,
                "checksum": "89",
                "BBAN": "370400440532013000",
                "bank_code": "37040044",
                "account_number": "0532013000",
                "branch": "",
                "national_checksum": "",
                "country_iban_format_as_swift": "DE2!n8!n10!n",
                "country_iban_format_as_regex": "^DE(\\d{2})(\\d{8})(\\d{10})$"
            },
            "bank_data": {
                "bank_code": "37040044",
                "name": "Commerzbank",
                "zip": "50447",
                "city": "Köln",
                "bic": "COBADEFFXXX"
            },
            "country_iban_example": "DE89370400440532013000"
        },
        "success": true,
        "now": "2025-04-20 14:37:03"
    }
      

Notes:

  • For Routing Number Lookups, payType must be specified as "ach" or "wire" to receive the correct payment method details.
  • SWIFT Codes and IBANs do not require payType.
  • This API validates the bank information only; it does not check account balances.
  • Make sure that the inputs are properly formatted depending on the lookup type you select.