Compliance Screening

Preview-screen a payment account (stateless)

Changed on

OFAC SDN Digital Currency Address screening for crypto wallets (account_type: crypto_wallet + wallet_address + wallet_chain). Non-crypto rails return a no-screen pending result. Stateless.

post/api/compliance-screenings/screen-payment-account

Request

  • Base URL: http://localhost:4100
  • URL: http://localhost:4100/api/compliance-screenings/screen-payment-account
  • Auth: none required

Request body

account_holder_idstring uuid required
account_numberstring nullable

Bank account number (PCI-DSS sensitive — tokenise before storing)

account_type'bank_account' | 'card' | 'wallet' | 'crypto_wallet' required
bank_namestring nullable

Name of the account's bank

card_panstring nullable

Card PAN last-4 or token (PCI-DSS — never store raw PAN)

counterparty_idstring uuid nullable
currencystring nullable

ISO 4217 3-letter currency code (e.g. USD, EUR, GBP)

enabled_regimesstring[] nullable
external_idstring nullable

Caller-supplied SoE upsert key (unique per tenant when set)

ibanstring nullable

International Bank Account Number (IBAN)

ledger_account_idstring uuid nullable
legal_entity_idstring uuid nullable
payment_account_numberstring nullable

Opaque internal payment account number

routing_numberstring nullable

Bank routing / sort code

status'active' | 'suspended' | 'blocked' nullable
swift_bicstring nullable

SWIFT/BIC code of the account's bank

tenant_idstring uuid required
wallet_addressstring nullable

On-chain wallet address (the actual identifier funds settle to). Set together with wallet_chain when account_type = :crypto_wallet.

wallet_chainstring nullable

Blockchain / asset ticker the wallet_address lives on (e.g. "BTC", "ETH", "TRON"). Disambiguates same-format addresses across chains.

Example request

{
  "account_holder_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "account_number": "",
  "account_type": "bank_account",
  "bank_name": "",
  "card_pan": "",
  "counterparty_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "currency": "",
  "enabled_regimes": [
    ""
  ],
  "external_id": "",
  "iban": "",
  "ledger_account_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "legal_entity_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "payment_account_number": "",
  "routing_number": "",
  "status": "active",
  "swift_bic": "",
  "tenant_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
  "wallet_address": "",
  "wallet_chain": ""
}

Response

Compliance screenings (paginated list response)

Example response

{
  "data": [
    {
      "aml_control_count": 0,
      "aml_high_risk_country": "",
      "screening_type": "sanctions",
      "compliance_screening_number": "",
      "sanctions_screening_date": "2020-04-20T16:20:00Z",
      "scope": "account_holder",
      "match_count": 0,
      "false_positive_qualifier": "none",
      "screening_status": "pending",
      "manual_review_required": false,
      "aml_control_flag": false,
      "screening_score": 0,
      "screened_at": "2020-04-20T16:20:00Z",
      "sanctions_screening_status": "cleared",
      "legal_entity_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
      "reviewed_by_user_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
      "screening_rules": "",
      "tenant_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
      "screened_entity_type": "individual",
      "id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
      "payment_account_id": "02ef9c5f-29e6-48fc-9ec3-7ed57ed351f6",
      "pep_indicator": false,
      "pep_list_name": "",
      "updated_at": "2020-04-20T16:20:00Z",
      "reviewed_at": "2020-04-20T16:20:00Z",
      "aml_geographic_risk_flag": false,
      "review_notes": "",
      "sanctions_matches": [
        null
      ],
      "aml_risk_score": 0,
      "screened_entity_name": "",
      "inserted_at": "2020-04-20T16:20:00Z",
      "blocklist_matches": [
        null
      ],
      "escalation_level": 0
    }
  ],
  "meta": {
    "page": 1,
    "page_size": 50,
    "total_count": 125,
    "total_pages": 3
  }
}

Changes