UtilityPro API Reference

Base URL: https://secure.utilitypro.eu/api/v1. Authenticate with x-api-key: YOUR_KEY (or Authorization: Bearer <jwt> where marked). Interactive playground at https://www.utilitypro.eu/docs. Machine-readable: openapi.json · llms-full.txt.

Payment Validation

Validate international payment requirements for 147+ countries and currencies

Base URL: https://secure.utilitypro.eu/api/v1/payment-validation · Auth: x-api-key

GET https://secure.utilitypro.eu/api/v1/payment-validation/requirements

Get Payment Requirements — Retrieve payment field requirements for a country and/or currency, optionally filtered by transfer type

Returns comprehensive payment validation rules including required fields, IBAN formats, routing codes, and purpose of payment codes for international wire transfers. Supports a discovery flow: query with only country_code to see available currencies and their valid transfer types, then refine with currency_code and transfer_type for filtered requirements.

NameTypeRequiredDescriptionExample
country_codestringnoISO 2-letter country codeDE
currency_codestringnoISO 3-letter currency codeEUR
transfer_typestringnoTransfer type to filter requirements: domestic, sepa, or international. Omit to get all requirements.sepa

Example request

{
  "country_code": "DE",
  "currency_code": "EUR",
  "transfer_type": "sepa"
}

Example response

{
  "success": true,
  "country": {
    "code": "DE",
    "name": "Germany"
  },
  "currency": {
    "code": "EUR",
    "name": "Euro"
  },
  "available_transfer_types": [
    "domestic",
    "sepa",
    "international"
  ],
  "transfer_type": "sepa",
  "clearing_hint": "SEPA SCT",
  "is_domestic": false,
  "is_sepa": true,
  "requirements": {
    "bank_details": {
      "iban": {
        "required": true,
        "format": "DE[0-9]{2}[0-9]{18}",
        "length": 22
      },
      "bic": {
        "required": false,
        "format": "[A-Z]{4}DE[A-Z0-9]{2}([A-Z0-9]{3})?"
      }
    },
    "beneficiary_info": {
      "beneficiary_name": {
        "required": true,
        "max_length": 70
      },
      "beneficiary_address": {
        "required": true
      }
    },
    "regulatory": {
      "purpose_code": {
        "required": false,
        "codes": [
          "SALA",
          "PENS",
          "TRAD"
        ]
      }
    }
  },
  "routing_codes": [],
  "purpose_of_payment_codes": []
}

GET https://secure.utilitypro.eu/api/v1/payment-validation/countries

List Countries — Get all supported countries with their ISO codes

Example response

{
  "success": true,
  "countries": [
    {
      "code": "DE",
      "name": "Germany",
      "currency": "EUR"
    },
    {
      "code": "US",
      "name": "United States",
      "currency": "USD"
    },
    {
      "code": "GB",
      "name": "United Kingdom",
      "currency": "GBP"
    }
  ],
  "total": 147
}

GET https://secure.utilitypro.eu/api/v1/payment-validation/currencies

List Currencies — Get all supported currencies with their ISO codes

Example response

{
  "success": true,
  "currencies": [
    {
      "code": "EUR",
      "name": "Euro",
      "countries": [
        "DE",
        "FR",
        "ES",
        "IT"
      ]
    },
    {
      "code": "USD",
      "name": "US Dollar",
      "countries": [
        "US"
      ]
    },
    {
      "code": "GBP",
      "name": "British Pound",
      "countries": [
        "GB"
      ]
    }
  ],
  "total": 180
}

Data Tools

Email/phone validation, data cleansing, and fuzzy name matching

Base URL: https://secure.utilitypro.eu/api/v1/data-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/data-tools/email-validate

Email Validate — Parse, validate and clean email addresses

Validates email syntax, checks DNS/MX records, detects freemails and disposable emails, and can auto-fix common domain typos.

NameTypeRequiredDescriptionExample
emailstringyesEmail address to validatetest@example.com
fix_typosbooleannoAuto-fix common domain typostrue

Example request

{
  "email": "test@example.com",
  "fix_typos": true
}

Example response

{
  "valid": true,
  "syntax-error": false,
  "domain": "example.com",
  "domain-error": false,
  "is-freemail": false,
  "is-disposable": false,
  "is-personal": true,
  "provider": "Example Inc",
  "email": "test@example.com"
}

POST https://secure.utilitypro.eu/api/v1/data-tools/email-verify

Email Verify (SMTP) — Real-time SMTP verification to check email deliverability

Performs actual SMTP handshake to verify if an email address can receive mail. More thorough than basic validation.

NameTypeRequiredDescriptionExample
emailstringyesEmail address to verifytest@example.com
fix_typosbooleannoAuto-fix common domain typosfalse

Example request

{
  "email": "test@example.com"
}

Example response

{
  "valid": true,
  "verified": true,
  "email": "test@example.com",
  "domain": "example.com",
  "is-freemail": false,
  "is-disposable": false,
  "is-catch-all": false,
  "smtp-status": "ok",
  "smtp-response": "250 2.1.5 OK"
}

POST https://secure.utilitypro.eu/api/v1/data-tools/phone-validate

Phone Validate — Parse, validate and get carrier information for phone numbers

Validates phone number format, determines carrier/network, location, and formats to international/local standards.

NameTypeRequiredDescriptionExample
numberstringyesPhone number (local or international)+14158586273
country_codestringnoISO 2-letter country code for local numbersUS
ipstringnoUser IP to determine country8.8.8.8

Example request

{
  "number": "+14158586273",
  "country_code": "US"
}

Example response

{
  "valid": true,
  "international-number": "+1 415-858-6273",
  "local-number": "(415) 858-6273",
  "country": "United States",
  "country-code": "US",
  "country-code3": "USA",
  "currency-code": "USD",
  "location": "California",
  "is-mobile": true,
  "type": "mobile",
  "international-calling-code": "1",
  "prefix-network": "T-Mobile"
}

POST https://secure.utilitypro.eu/api/v1/data-tools/bad-word-filter

Bad Word Filter — Detect and censor profanity in text content

Scans text for profanity, slurs, and inappropriate content. Can censor or flag offensive words.

NameTypeRequiredDescriptionExample
contentstringyesText content to filterThis is some text
censor_characterstringnoCharacter to replace bad words*

Example request

{
  "content": "This is some clean text",
  "censor_character": "*"
}

Example response

{
  "is-bad": false,
  "bad-words-list": [],
  "bad-words-total": 0,
  "censored-content": "This is some clean text"
}

POST https://secure.utilitypro.eu/api/v1/data-tools/convert

Unit Convert — Convert between units and currencies

NameTypeRequiredDescriptionExample
from_valuenumberyesValue to convert100
from_typestringyesSource unit/currencyUSD
to_typestringyesTarget unit/currencyEUR

Example request

{
  "from_value": 100,
  "from_type": "USD",
  "to_type": "EUR"
}

Example response

{
  "valid": true,
  "result": 91.25,
  "from-value": 100,
  "from-type": "USD",
  "to-type": "EUR",
  "result-float": 91.25
}

POST https://secure.utilitypro.eu/api/v1/data-tools/name-match

Name Match — Fuzzy name matching for individuals and corporate entities

Advanced name matching supporting two modes: individual (person) and corporate (entity/company). Includes Arabic→Latin and Cyrillic→Latin transliteration, batch matching (up to 100 pairs per call), and confidence metadata (processing_time_ms, match_quality). Individual mode uses Jaro-Winkler and Levenshtein similarity with weighted first/middle/last name buckets. Corporate mode uses legal suffix normalisation and flat token-set scoring.

NameTypeRequiredDescriptionExample
left_namestringyesFirst name to compare (single mode)Dr. John Robert Smith
right_namestringyesSecond name to compare (single mode)Smith John R
typestringnoMatch mode: 'individual' (default) or 'corporate'individual
pairsarraynoArray of {left_name, right_name, type?} for batch mode (max 100 pairs). Omit left_name/right_name when using pairs.[{"left_name":"John Smith","right_name":"Jon Smyth"}]

Example request

{
  "left_name": "Dr. John Robert Smith",
  "right_name": "Smith John R",
  "type": "individual"
}

Example response

{
  "decision": "strong_match",
  "score": 0.965,
  "first_score": 1,
  "middle_score": 0.96,
  "last_score": 1,
  "token_set_score": 0.98,
  "considered_swap": true,
  "notes": "Used swapped First/Last. Missing middle(s) tolerated.",
  "reason_codes": [
    "swapped_first_last_used",
    "strong_core_match"
  ],
  "normalized_left_tokens": [
    "JOHN",
    "ROBERT",
    "SMITH"
  ],
  "normalized_right_tokens": [
    "SMITH",
    "JOHN",
    "R"
  ],
  "processing_time_ms": 1.24,
  "match_quality": "high"
}

POST https://secure.utilitypro.eu/api/v1/data-tools/disposable-email-check

Disposable Email Check — Detect throwaway / temporary email providers

NameTypeRequiredDescriptionExample
emailstringyesEmail to checkfoo@mailinator.com

Example request

{
  "email": "foo@mailinator.com"
}

Example response

{
  "email": "foo@mailinator.com",
  "domain": "mailinator.com",
  "is_disposable": true,
  "provider": "disposable-email-domains"
}

POST https://secure.utilitypro.eu/api/v1/data-tools/mx-validate

MX Record Validation — Verify a domain (or email domain) has valid MX records

NameTypeRequiredDescriptionExample
domainstringnoDomain to check
emailstringnoOr pass an email to extract its domain

Example request

{
  "domain": "gmail.com"
}

Example response

{
  "domain": "gmail.com",
  "has_mx": true,
  "mx_records": [
    {
      "priority": 5,
      "exchange": "gmail-smtp-in.l.google.com"
    }
  ],
  "primary": "gmail-smtp-in.l.google.com",
  "provider": "google-dns"
}

Banking Tools

IBAN, BIC/SWIFT, IFSC, and BIN/IIN validation and lookup

Base URL: https://secure.utilitypro.eu/api/v1/banking-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/banking-tools/iban-lookup

IBAN Lookup — Validate IBAN and retrieve bank details

Validates IBAN structure and checksum, extracts bank and account details, identifies SEPA support.

NameTypeRequiredDescriptionExample
ibanstringyesFull IBAN numberDE89370400440532013000

Example request

{
  "iban": "DE89370400440532013000"
}

Example response

{
  "result": 200,
  "message": "Valid IBAN Number",
  "data": {
    "country_code": "DE",
    "iban": "DE89370400440532013000",
    "bban": "370400440532013000",
    "bank": {
      "bank_name": "Commerzbank",
      "bank_code": "37040044",
      "branch": "Frankfurt",
      "address": "Kaiserplatz, Frankfurt am Main",
      "bic": "COBADEFFXXX",
      "country": "Germany"
    },
    "sepa": {
      "sepa_credit_transfer": true,
      "sepa_direct_debit": true,
      "sepa_instant_credit_transfer": true
    }
  },
  "validations": [
    {
      "code": "001",
      "message": "IBAN structure is correct"
    }
  ]
}

POST https://secure.utilitypro.eu/api/v1/banking-tools/bic-lookup

BIC/SWIFT Lookup — Get bank details from BIC/SWIFT code

NameTypeRequiredDescriptionExample
bicstringyesBIC/SWIFT code (8 or 11 characters)COBADEFFXXX

Example request

{
  "bic": "COBADEFFXXX"
}

Example response

{
  "valid": true,
  "bic": "COBADEFFXXX",
  "bank-name": "Commerzbank AG",
  "bank-code": "37040044",
  "branch": "Head Office",
  "address": "Kaiserplatz, Frankfurt am Main",
  "city": "Frankfurt am Main",
  "country": "Germany",
  "country-code": "DE",
  "is-primary": true
}

POST https://secure.utilitypro.eu/api/v1/banking-tools/ifsc-lookup

IFSC Lookup — Validate Indian Financial System Code (IFSC)

NameTypeRequiredDescriptionExample
ifscstringyesIFSC code (11 characters)SBIN0001234

Example request

{
  "ifsc": "SBIN0001234"
}

Example response

{
  "valid": true,
  "ifsc": "SBIN0001234",
  "bank": "State Bank of India",
  "branch": "New Delhi Main Branch",
  "address": "11, Parliament Street, New Delhi",
  "city": "New Delhi",
  "district": "Central Delhi",
  "state": "Delhi",
  "contact": "011-23374131",
  "micr": "110002001",
  "upi": true,
  "neft": true,
  "rtgs": true,
  "imps": true
}

POST https://secure.utilitypro.eu/api/v1/banking-tools/bin-lookup

BIN Lookup — Get card issuer information from BIN/IIN number

Looks up card issuer details including bank name, card type (credit/debit), brand (Visa/Mastercard), and country of issue.

NameTypeRequiredDescriptionExample
bin_numberstringyesFirst 6-8 digits of card number (legacy alias: binNumber)45717360

Example request

{
  "bin_number": "45717360"
}

Example response

{
  "valid": true,
  "bin-number": "45717360",
  "card-brand": "Visa",
  "card-type": "Credit",
  "card-category": "Classic",
  "issuer": "Bank of America",
  "issuer-website": "https://www.bankofamerica.com",
  "issuer-phone": "+1-800-732-9194",
  "country": "United States",
  "country-code": "US",
  "is-commercial": false,
  "is-prepaid": false
}

Security Tools

Domain lookup, IP intelligence, blocklist checks, and threat detection

Base URL: https://secure.utilitypro.eu/api/v1/security-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/security-tools/domain-lookup

Domain Lookup — Get DNS and WHOIS information for a domain

Retrieves comprehensive domain information including DNS records, WHOIS data, registrar details, and domain age.

NameTypeRequiredDescriptionExample
hoststringyesDomain name to lookupexample.com
livebooleannoForce live DNS lookuptrue

Example request

{
  "host": "example.com",
  "live": true
}

Example response

{
  "valid": true,
  "host": "example.com",
  "registrar": "ICANN",
  "registered-date": "1995-08-14T04:00:00Z",
  "age-years": 29,
  "dns-records": {
    "a": [
      "93.184.216.34"
    ],
    "aaaa": [
      "2606:2800:220:1:248:1893:25c8:1946"
    ],
    "mx": [
      "mail.example.com"
    ],
    "ns": [
      "ns1.example.com",
      "ns2.example.com"
    ],
    "txt": [
      "v=spf1 include:_spf.example.com ~all"
    ]
  },
  "is-adult": false,
  "is-malware": false,
  "is-phishing": false
}

POST https://secure.utilitypro.eu/api/v1/security-tools/ip-probe

IP Probe — Get detailed IP intelligence and risk scoring

Comprehensive IP analysis including geolocation, ISP details, proxy/VPN detection, and threat intelligence.

NameTypeRequiredDescriptionExample
ipstringyesIPv4 or IPv6 address8.8.8.8

Example request

{
  "ip": "8.8.8.8"
}

Example response

{
  "valid": true,
  "ip": "8.8.8.8",
  "hostname": "dns.google",
  "provider-type": "hosting",
  "provider-description": "Google LLC",
  "provider-domain": "google.com",
  "provider-website": "https://google.com",
  "asn": "AS15169",
  "as-cidr": "8.8.8.0/24",
  "as-country-code": "US",
  "as-description": "GOOGLE",
  "city": "Mountain View",
  "region": "California",
  "region-code": "CA",
  "country": "United States",
  "country-code": "US",
  "is-isp": false,
  "is-hosting": true,
  "is-proxy": false,
  "is-vpn": false,
  "is-bogon": false,
  "vpn-domain": ""
}

POST https://secure.utilitypro.eu/api/v1/security-tools/ip-blocklist

IP Blocklist Check — Check IP against known blocklists and threat databases

NameTypeRequiredDescriptionExample
ipstringyesIPv4 or IPv6 address192.168.1.1
vpn_lookupbooleannoInclude VPN detectiontrue

Example request

{
  "ip": "8.8.8.8",
  "vpn_lookup": true
}

Example response

{
  "ip": "8.8.8.8",
  "is-listed": false,
  "is-hijacked": false,
  "is-spider": false,
  "is-tor": false,
  "is-dshield": false,
  "is-vpn": false,
  "is-proxy": false,
  "is-spyware": false,
  "blocklists": [],
  "sensors-triggered": 0,
  "list-count": 0
}

POST https://secure.utilitypro.eu/api/v1/security-tools/host-reputation

Host Reputation — Check host safety score and malware/phishing detection

NameTypeRequiredDescriptionExample
hoststringyesDomain or URL to checkexample.com
list_ratingnumbernoMinimum blocklist rating threshold (1-3)1

Example request

{
  "host": "example.com",
  "list_rating": 1
}

Example response

{
  "host": "example.com",
  "is-listed": false,
  "is-malware": false,
  "is-phishing": false,
  "is-hijacked": false,
  "lists": [],
  "list-count": 0,
  "last-scanned": "2024-01-15T12:00:00Z"
}

POST https://secure.utilitypro.eu/api/v1/security-tools/urlhaus-lookup

URLhaus Malware Lookup — Check a URL or host against the abuse.ch URLhaus malware feed

NameTypeRequiredDescriptionExample
urlstringnoFull URL to check
hoststringnoHostname to check (use either url or host)

Example request

{
  "url": "http://example.com/malware.exe"
}

Example response

{
  "query": "http://example.com/malware.exe",
  "listed": false,
  "threat": null,
  "tags": [],
  "provider": "abuse.ch/urlhaus"
}

Device Intelligence

White-label device fingerprinting, bot detection, VPN/proxy/incognito/tampering signals and visitor history

Base URL: https://secure.utilitypro.eu/api/v1/device-intel-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/device-intel-tools/script

Generate Embed Script — Generate the white-label JavaScript snippet to embed on your website

Step 1 of the integration. Returns a ready-to-paste <script type="module"> block tied to your API key. Drop the snippet into your site (ideally just before </body> on pages you want to fingerprint — checkout, signup, login). On every page load it: 1. Loads the white-label fingerprinting module via /generatepath (proxied through UtilityPro — your visitors never see a third-party domain). 2. Collects a persistent visitorId + a per-page-view requestId. 3. POSTs those IDs to /collect along with an encrypted client token so we can attribute the data to your account. After collection, use /get-info-byrequestid, /get-visitor-info, or /get-all-device-info-byrange (from your backend) to retrieve fraud signals, IP, geolocation, browser, bot/VPN/proxy/incognito/tampering detection and visitor history.

Example request

{}

Example response

{
  "script": "<script type=\"module\">\nasync function loadDeviceIntel() {\n  /* fetches /generatepath, runs fingerprinting, POSTs result to /collect */\n}\nloadDeviceIntel();\n</script>"
}

GET https://secure.utilitypro.eu/api/v1/device-intel-tools/generatepath

Module Proxy (internal) — White-label proxy that serves the fingerprinting module to the embedded snippet

Called automatically by the embedded snippet — merchants should not call this directly. Exists so the fingerprinting module is served from secure.utilitypro.eu instead of a third-party domain, preserving your white-label experience and bypassing ad/tracker blockers that target known fingerprinting hosts.

Example response

{
  "_comment": "Returns JavaScript (application/javascript) — not JSON."
}

POST https://secure.utilitypro.eu/api/v1/device-intel-tools/collect

Collect Visitor Data (internal) — Receives requestId + visitorId from the embedded snippet

Called automatically by the embedded snippet after fingerprinting completes — merchants should not call this directly. The snippet sends an encrypted clientToken that we decrypt to attribute the requestId/visitorId pair to your account. Once stored, the requestId can be looked up via /get-info-byrequestid.

NameTypeRequiredDescriptionExample
requestIdstringyesPer-page-view request ID produced by the fingerprinting modulereq_abc123
visitorIdstringyesPersistent visitor ID produced by the fingerprinting modulevst_xyz789
clientTokenstringyesEncrypted token embedded in the generated snippet — identifies the merchantenc_...

Example request

{
  "requestId": "req_abc123",
  "visitorId": "vst_xyz789",
  "clientToken": "enc_..."
}

Example response

{
  "success": true
}

POST https://secure.utilitypro.eu/api/v1/device-intel-tools/get-info-byrequestid

Get Event by Request ID — Fetch full fraud intelligence for a single page view

Step 3 of the integration. Once your front-end has captured a requestId (typically you persist it in a hidden form field or session and POST it to your backend on submit), call this endpoint server-side to retrieve the full event — IP, geolocation, browser/OS/device, confidence score, bot/VPN/proxy/incognito/tampering signals, and first-seen/last-seen timestamps.

NameTypeRequiredDescriptionExample
requestIdstringyesRequest ID captured by the embedded snippet for the page view you want to inspectreq_abc123

Example request

{
  "requestId": "req_abc123"
}

Example response

{
  "products": {
    "identification": {
      "data": {
        "visitorId": "vst_xyz789",
        "requestId": "req_abc123",
        "confidence": {
          "score": 0.99
        },
        "ip": "203.0.113.45",
        "ipLocation": {
          "city": "Dubai",
          "country": {
            "name": "United Arab Emirates",
            "code": "AE"
          }
        },
        "browserDetails": {
          "browserName": "Chrome",
          "browserVersion": "120.0.0",
          "os": "Windows",
          "osVersion": "10",
          "device": "Desktop"
        },
        "firstSeenAt": {
          "global": "2024-01-01T00:00:00Z",
          "subscription": "2024-06-01T00:00:00Z"
        }
      }
    },
    "botd": {
      "data": {
        "bot": {
          "result": "notDetected"
        }
      }
    },
    "vpn": {
      "data": {
        "result": false,
        "methods": []
      }
    },
    "proxy": {
      "data": {
        "result": false
      }
    },
    "incognito": {
      "data": {
        "result": false
      }
    },
    "tampering": {
      "data": {
        "result": false
      }
    }
  }
}

POST https://secure.utilitypro.eu/api/v1/device-intel-tools/get-visitor-info

Get Visitor History — Fetch the full history of page views for a single visitor

Use the persistent visitorId to retrieve every recorded event for that visitor across your site. Useful for risk-scoring repeat visitors, identifying account takeovers (same visitorId, different account), and detecting multi-accounting (same visitorId signing up many times).

NameTypeRequiredDescriptionExample
visitorIdstringyesPersistent visitor IDvst_xyz789

Example request

{
  "visitorId": "vst_xyz789"
}

Example response

{
  "visitorId": "vst_xyz789",
  "visits": [
    {
      "requestId": "req_abc123",
      "timestamp": 1736942400000,
      "ip": "203.0.113.45",
      "url": "https://yoursite.com/checkout",
      "confidence": {
        "score": 0.99
      }
    }
  ]
}

POST https://secure.utilitypro.eu/api/v1/device-intel-tools/get-all-device-info-byrange

Get Events by Date Range — Bulk-export all device events captured within a date range

Returns the full event payload for every page view your snippet recorded between startDate and endDate. Use this for fraud reporting, batch risk-scoring, or feeding your data warehouse.

NameTypeRequiredDescriptionExample
startDatestringyesISO-8601 start timestamp (inclusive)2025-06-01T00:00:00Z
endDatestringyesISO-8601 end timestamp (inclusive)2025-06-10T23:59:59Z

Example request

{
  "startDate": "2025-06-01T00:00:00Z",
  "endDate": "2025-06-10T23:59:59Z"
}

Example response

{
  "events": [
    {
      "products": {
        "identification": {
          "data": {
            "visitorId": "vst_xyz789",
            "requestId": "req_abc123",
            "ip": "203.0.113.45"
          }
        },
        "botd": {
          "data": {
            "bot": {
              "result": "notDetected"
            }
          }
        }
      }
    }
  ]
}

Geolocation

IP geolocation, reverse geocoding, and address validation

Base URL: https://secure.utilitypro.eu/api/v1/geolocation-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/geolocation-tools/ip-info

IP Geolocation — Get comprehensive location and network data for an IP

Returns detailed geolocation including city, region, country, coordinates, timezone, ISP, and ASN information.

NameTypeRequiredDescriptionExample
ipstringyesIPv4 or IPv6 address8.8.8.8
reverse_lookupbooleannoInclude reverse DNStrue

Example request

{
  "ip": "8.8.8.8",
  "reverse_lookup": true
}

Example response

{
  "valid": true,
  "ip": "8.8.8.8",
  "hostname": "dns.google",
  "city": "Mountain View",
  "region": "California",
  "region-code": "CA",
  "country": "United States",
  "country-code": "US",
  "country-code3": "USA",
  "currency-code": "USD",
  "latitude": 37.4056,
  "longitude": -122.0775,
  "timezone": {
    "id": "America/Los_Angeles",
    "name": "Pacific Daylight Time",
    "abbr": "PDT",
    "offset": "-07:00"
  },
  "isp": "Google LLC",
  "asn": 15169,
  "as-org": "Google LLC",
  "as-domain": "google.com",
  "continent-code": "NA",
  "is-hosting": true,
  "is-mobile": false
}

POST https://secure.utilitypro.eu/api/v1/geolocation-tools/geocode-address

Geocode Address — Convert street addresses to geographic coordinates

NameTypeRequiredDescriptionExample
addressstringyesFull street address1600 Amphitheatre Parkway, Mountain View, CA
country_codestringnoISO country code hintUS
languagestringnoResponse languageen
fuzzy_searchbooleannoAllow fuzzy matchingtrue

Example request

{
  "address": "1600 Amphitheatre Parkway, Mountain View, CA",
  "country_code": "US"
}

Example response

{
  "found": true,
  "locations": [
    {
      "address": "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA",
      "address-components": {
        "street-number": "1600",
        "street": "Amphitheatre Parkway",
        "city": "Mountain View",
        "state": "California",
        "postal-code": "94043",
        "country": "United States"
      },
      "latitude": 37.4220656,
      "longitude": -122.0862784,
      "location-type": "address",
      "timezone-id": "America/Los_Angeles"
    }
  ]
}

Imaging Tools

QR code generation and image processing

Base URL: https://secure.utilitypro.eu/api/v1/imaging-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/imaging-tools/qr-code

QR Code Generator — Generate QR codes from text or URLs

Creates customizable QR code images (PNG) with configurable size and colors.

NameTypeRequiredDescriptionExample
contentstringyesText or URL to encodehttps://example.com
widthnumbernoWidth in pixels (max 1024)256
heightnumbernoHeight in pixels (max 1024)256
fg_colorstringnoForeground color (hex)#000000
bg_colorstringnoBackground color (hex)#ffffff

Example request

{
  "content": "https://example.com",
  "width": 256,
  "height": 256
}

Example response

{
  "note": "Returns binary PNG image",
  "contentType": "image/png"
}

POST https://secure.utilitypro.eu/api/v1/imaging-tools/image-resize

Image Resize — Resize images to specified dimensions

NameTypeRequiredDescriptionExample
image_urlstringyesURL of source imagehttps://example.com/image.jpg
widthnumberyesTarget width in pixels800
heightnumbernoTarget height in pixels600
formatstringnoOutput format (png, jpg, gif, webp)png
resize_modestringnoscale, crop, or padscale
bg_colorstringnoBackground color for paddingtransparent

Example request

{
  "image_url": "https://example.com/image.jpg",
  "width": 800,
  "height": 600,
  "format": "png"
}

Example response

{
  "note": "Returns binary image",
  "contentType": "image/png"
}

POST https://secure.utilitypro.eu/api/v1/imaging-tools/image-watermark

Image Watermark — Add watermarks to images

NameTypeRequiredDescriptionExample
image_urlstringyesURL of source imagehttps://example.com/photo.jpg
watermark_urlstringyesURL of watermark imagehttps://example.com/logo.png
opacitynumbernoWatermark opacity 0-10050
positionstringnoPosition: center, top-left, top-right, bottom-left, bottom-rightbottom-right
widthnumbernoOutput width1920
heightnumbernoOutput height1080
formatstringnoOutput formatpng

Example request

{
  "image_url": "https://example.com/photo.jpg",
  "watermark_url": "https://example.com/logo.png",
  "opacity": 50,
  "position": "bottom-right"
}

Example response

{
  "note": "Returns binary image",
  "contentType": "image/png"
}

POST https://secure.utilitypro.eu/api/v1/imaging-tools/html-render

HTML Render — Render HTML/CSS to image

NameTypeRequiredDescriptionExample
contentstringyesHTML content or URL<h1>Hello World</h1>
widthnumbernoViewport width1024
heightnumbernoViewport height768
formatstringnoOutput format (png, jpg, pdf)png
delaynumbernoDelay before capture (ms)1000
css_urlstringnoExternal CSS URLhttps://example.com/style.css

Example request

{
  "content": "<h1 style=\"color: blue;\">Hello World</h1>",
  "width": 800,
  "height": 600,
  "format": "png"
}

Example response

{
  "note": "Returns binary image/PDF",
  "contentType": "image/png"
}

Telephony & SMS

Phone verification, SMS sending, and HLR lookups

Base URL: https://secure.utilitypro.eu/api/v1/telephony-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/telephony-tools/phone-verify

Phone Verify — Initiate automated verification call with spoken code

NameTypeRequiredDescriptionExample
numberstringyesPhone number in E.164 format+14158586273
security_codestringnoCustom code (auto-generated if not provided)123456
country_codestringnoISO 2-letter country codeUS
language_codestringnoVoice languageen
code_lengthnumbernoLength of generated code (4-8)6
playback_delaynumbernoDelay between code digits (ms)500

Example request

{
  "number": "+14158586273",
  "code_length": 6
}

Example response

{
  "calling": true,
  "number-valid": true,
  "security-code": "847291"
}

POST https://secure.utilitypro.eu/api/v1/telephony-tools/sms-verify

SMS Verify — Send SMS verification code

NameTypeRequiredDescriptionExample
numberstringyesPhone number in E.164 format+14158586273
security_codestringnoCustom code (auto-generated if not provided)123456
brand_namestringnoBrand name in SMSMyApp
country_codestringnoISO 2-letter country codeUS
language_codestringnoSMS languageen
code_lengthnumbernoLength of generated code5

Example request

{
  "number": "+14158586273",
  "brand_name": "MyApp"
}

Example response

{
  "sent": true,
  "number-valid": true,
  "security-code": "84729"
}

POST https://secure.utilitypro.eu/api/v1/telephony-tools/verify-security-code

Verify Security Code — Verify code sent via phone-verify or sms-verify

NameTypeRequiredDescriptionExample
security_codestringyesCode entered by user847291
limit_bystringyesPhone number from original verification+14158586273

Example request

{
  "security_code": "847291",
  "limit_by": "+14158586273"
}

Example response

{
  "verified": true
}

POST https://secure.utilitypro.eu/api/v1/telephony-tools/hlr-lookup

HLR Lookup — Check mobile number validity via HLR lookup

Home Location Register lookup to check if mobile number is active, ported, or disconnected.

NameTypeRequiredDescriptionExample
numberstringyesPhone number in E.164 format+14158586273
country_codestringnoISO 2-letter country codeUS

Example request

{
  "number": "+14158586273"
}

Example response

{
  "number-valid": true,
  "international-number": "+14158586273",
  "local-number": "(415) 858-6273",
  "country": "United States",
  "country-code": "US",
  "is-mobile": true,
  "mobile-network": "T-Mobile",
  "mobile-network-code": "310260",
  "is-ported": false,
  "is-roaming": false,
  "is-present": true,
  "hlr-lookup-status": "ok"
}

POST https://secure.utilitypro.eu/api/v1/telephony-tools/send-sms

Send SMS — Send SMS messages to one or multiple recipients

Send transactional or marketing SMS. Supports bulk sending to multiple recipients.

NameTypeRequiredDescriptionExample
recipientsstringyesPhone number(s), comma or space-separated+971521234567, +971509876543
messagestringyesSMS message contentYour verification code is 123456
sender_idstringnoApproved sender IDMyBrand

Example request

{
  "recipients": "+971521234567, +971509876543",
  "message": "Hello from UtilityPro!",
  "sender_id": "MyBrand"
}

Example response

{
  "success": true,
  "total_recipients": 2,
  "messages_sent": 2,
  "results": [
    {
      "recipient": "+971521234567",
      "status": "sent",
      "message_id": "msg_abc123"
    },
    {
      "recipient": "+971509876543",
      "status": "sent",
      "message_id": "msg_def456"
    }
  ]
}

Blockchain Tools

Multi-chain wallet validation, transaction lookup, and balance queries

Base URL: https://secure.utilitypro.eu/api/v1/blockchain-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/blockchain-tools/validate-address

Validate Address — Validate wallet address format for any supported chain

Validates address format using chain-specific regex patterns. Can auto-detect which chain(s) an address belongs to.

NameTypeRequiredDescriptionExample
addressstringyesWallet address to validate0x742d35Cc6634C0532925a3b844Bc9e7595f14c
chainstringnoBlockchain: bitcoin, ethereum, polygon, bsc, tron, solanaethereum

Example request

{
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f14c",
  "chain": "ethereum"
}

Example response

{
  "valid": true,
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f14c",
  "chain": "ethereum",
  "format": "valid"
}

POST https://secure.utilitypro.eu/api/v1/blockchain-tools/transaction

Get Transaction — Fetch detailed transaction data for any chain with optional fiat conversion

Retrieves full transaction details including sender, recipient, value, fees, and status. Use the optional fiat parameter to get fees and values converted to USD, EUR, or other fiat currencies using live exchange rates.

NameTypeRequiredDescriptionExample
txHashstringyesTransaction hash0x...
chainstringyesBlockchain network (bitcoin, ethereum, polygon, bsc, tron, solana)ethereum
fiatstringnoFiat currency for price conversion (usd, eur, gbp, etc.)usd

Example request

{
  "txHash": "0xabc123...",
  "chain": "ethereum",
  "fiat": "usd"
}

Example response

{
  "found": true,
  "chain": "ethereum",
  "txHash": "0xabc123...",
  "from": "0x742d35Cc6634C0532925a3b844Bc9e7595f14c",
  "to": "0x1234567890abcdef1234567890abcdef12345678",
  "value": 1.5,
  "valueSymbol": "ETH",
  "valueWei": "0x14d1120d7b160000",
  "gasPrice": 25.5,
  "gasUsed": 21000,
  "gasFee": 0.00053,
  "feeSymbol": "ETH",
  "blockNumber": 18500000,
  "status": "success",
  "nonce": 42,
  "fiatPrice": {
    "currency": "USD",
    "pricePerCoin": 3250.5,
    "feeInFiat": 1.72,
    "valueInFiat": 4875.75
  }
}

POST https://secure.utilitypro.eu/api/v1/blockchain-tools/balance

Get Balance — Get native token balance for a wallet address

NameTypeRequiredDescriptionExample
addressstringyesWallet address0x742d35Cc6634C0532925a3b844Bc9e7595f14c
chainstringyesBlockchain networkethereum

Example request

{
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f14c",
  "chain": "ethereum"
}

Example response

{
  "chain": "ethereum",
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f14c",
  "balance": 2.5,
  "balanceWei": "0x22b1c8c1227a0000",
  "symbol": "ETH"
}

POST https://secure.utilitypro.eu/api/v1/blockchain-tools/transactions

Get Transaction History — Fetch recent transactions for a wallet address

Returns the most recent transactions for a wallet across any supported chain. For Tron, includes both native TRX transfers and TRC10/TRC20 token transfers with full token details.

NameTypeRequiredDescriptionExample
addressstringyesWallet address0x742d35Cc6634C0532925a3b844Bc9e7595f14c
chainstringyesBlockchain networkethereum
limitnumbernoNumber of transactions to return (default: 10, max: 100)10

Example request

{
  "address": "TWndwV1KHa5mfv6fisaTYcn83n5xHc66Xn",
  "chain": "tron",
  "limit": 10
}

Example response

{
  "chain": "tron",
  "address": "TWndwV1KHa5mfv6fisaTYcn83n5xHc66Xn",
  "transactions": [
    {
      "hash": "0xabc123...",
      "from": "TAddr1...",
      "to": "TAddr2...",
      "value": 100,
      "type": "TransferContract",
      "tokenSymbol": "TRX",
      "tokenType": "native",
      "timestamp": 1705323000000
    },
    {
      "hash": "0xdef456...",
      "from": "TAddr1...",
      "to": "TAddr2...",
      "value": 50.5,
      "type": "TriggerSmartContract",
      "tokenType": "TRC20",
      "tokenSymbol": "USDT",
      "tokenName": "Tether USD",
      "tokenAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
      "tokenDecimals": 6,
      "timestamp": 1705322000000
    }
  ],
  "count": 2
}

POST https://secure.utilitypro.eu/api/v1/blockchain-tools/gas

Get Gas Prices — Get current gas/fee estimates for a blockchain

NameTypeRequiredDescriptionExample
chainstringyesBlockchain networkethereum

Example request

{
  "chain": "ethereum"
}

Example response

{
  "chain": "ethereum",
  "gasPrice": 25.5,
  "unit": "gwei",
  "estimates": {
    "slow": 20.4,
    "standard": 25.5,
    "fast": 30.6
  },
  "baseFee": 22.3
}

POST https://secure.utilitypro.eu/api/v1/blockchain-tools/watch

Watch Wallet — Register wallet for real-time webhook notifications

Premium feature. Receive POST notifications to your webhook URL when transactions occur on monitored addresses.

NameTypeRequiredDescriptionExample
addressstringyesWallet address to monitor0x742d35Cc6634C0532925a3b844Bc9e7595f14c
chainstringyesBlockchain networkethereum
webhookUrlstringyesYour webhook endpoint URLhttps://yoursite.com/webhook

Example request

{
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f14c",
  "chain": "ethereum",
  "webhookUrl": "https://yoursite.com/webhook"
}

Example response

{
  "success": true,
  "message": "Webhook registration queued",
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f14c",
  "chain": "ethereum",
  "webhookUrl": "https://yoursite.com/webhook",
  "note": "You will receive POST requests to your webhook URL when transactions occur"
}

Blockchain Compliance

AML/CFT risk scoring for blockchain transactions, addresses, and wallets

Base URL: https://secure.utilitypro.eu/api/v1/compliance-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/compliance-tools/score-transaction

Score Transaction — Get AML/CFT risk score for a blockchain transaction by hash

Analyses a blockchain transaction using Scorechain's compliance engine and returns a risk score (1 = critical risk, 100 = no risk), severity level, counterparty breakdown, entity identification, and triggered risk indicators. Supports ASSIGNED, INCOMING, OUTGOING, or FULL analysis types.

NameTypeRequiredDescriptionExample
hashstringyesThe transaction hash to analyse0x6af2077627203fa96939c7866e59835b3c0ff97ec73da95d2c8cc37291335650
chainstringyesBlockchain network (bitcoin, ethereum, polygon, bsc, tron, solana, litecoin, dogecoin, ripple, avalanche, arbitrum, optimism, base, stellar, tezos, ton)ethereum
analysis_typestringnoAnalysis depth: ASSIGNED (entity-only), INCOMING (source of funds), OUTGOING (destination), FULL (complete)INCOMING
coinstringnoSpecific coin/token to analyse (default ALL)ALL
depthintegernoMax hop depth for tracing (UTXO: up to 100, account-based: up to 6)3

Example request

{
  "hash": "0x6af2077627203fa96939c7866e59835b3c0ff97ec73da95d2c8cc37291335650",
  "chain": "ethereum",
  "analysis_type": "INCOMING"
}

Example response

{
  "transaction_hash": "0x6af207...",
  "chain": "ethereum",
  "blockchain": "ETHEREUM",
  "analysis_type": "INCOMING",
  "scoring": {
    "overall_score": 75,
    "severity": "LOW_RISK",
    "assigned": {
      "score": 75,
      "severity": "LOW_RISK"
    },
    "incoming": {
      "score": 75,
      "severity": "LOW_RISK",
      "counterparties": [
        {
          "address": "0x31oSG...",
          "name": "Binance",
          "type": "Exchange",
          "countries": [
            "Cayman Islands"
          ],
          "score": 80,
          "severity": "LOW_RISK",
          "percentage": 100,
          "amount_usd": 15230.5
        }
      ]
    },
    "outgoing": null
  },
  "risk_indicators": [
    {
      "type": "ENTITY_TYPE",
      "parameters": {
        "referenceName": "Exchange",
        "threshold": 30
      }
    }
  ],
  "entity": {
    "name": "Binance",
    "type": "Exchange",
    "countries": [
      "Cayman Islands"
    ]
  },
  "provider": "scorechain"
}

POST https://secure.utilitypro.eu/api/v1/compliance-tools/score-address

Score Address — Get AML/CFT risk score for a blockchain address

Analyses a blockchain address and returns a comprehensive risk profile including entity identification, counterparty exposure, and custom risk indicators. Default analysis type is FULL for complete incoming + outgoing fund flow analysis.

NameTypeRequiredDescriptionExample
addressstringyesThe blockchain address to analyse0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
chainstringyesBlockchain networkethereum
analysis_typestringnoAnalysis depth (default FULL)FULL
coinstringnoSpecific coin/token (default ALL)ALL
depthintegernoMax hop depth for tracing3

Example request

{
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "chain": "ethereum",
  "analysis_type": "FULL"
}

Example response

{
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "chain": "ethereum",
  "blockchain": "ETHEREUM",
  "analysis_type": "FULL",
  "scoring": {
    "overall_score": 90,
    "severity": "NO_RISK",
    "assigned": {
      "score": 90,
      "severity": "NO_RISK"
    },
    "incoming": {
      "score": 85,
      "severity": "LOW_RISK",
      "counterparties": []
    },
    "outgoing": {
      "score": 92,
      "severity": "NO_RISK",
      "counterparties": []
    }
  },
  "risk_indicators": [],
  "entity": {
    "name": "Vitalik Buterin",
    "type": "Individual",
    "countries": []
  },
  "provider": "scorechain"
}

POST https://secure.utilitypro.eu/api/v1/compliance-tools/score-wallet

Score Wallet Cluster — Get AML/CFT risk score for a wallet cluster by reference address

Analyses a wallet cluster (group of addresses controlled by the same entity) using a reference address. Returns aggregated risk scoring across the entire wallet, including top counterparties and risk indicators.

NameTypeRequiredDescriptionExample
addressstringyesReference address of the wallet cluster1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
chainstringyesBlockchain networkbitcoin
analysis_typestringnoAnalysis depth (default FULL)FULL
coinstringnoSpecific coin/token (default ALL)MAIN
depthintegernoMax hop depth for tracing5

Example request

{
  "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "chain": "bitcoin",
  "analysis_type": "FULL"
}

Example response

{
  "wallet_reference_address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "chain": "bitcoin",
  "blockchain": "BITCOIN",
  "analysis_type": "FULL",
  "scoring": {
    "overall_score": 95,
    "severity": "NO_RISK",
    "assigned": {
      "score": 95,
      "severity": "NO_RISK"
    },
    "incoming": {
      "score": 95,
      "severity": "NO_RISK",
      "counterparties": []
    },
    "outgoing": null
  },
  "risk_indicators": [],
  "entity": {
    "name": "Satoshi Nakamoto",
    "type": "Individual",
    "countries": []
  },
  "provider": "scorechain"
}

GET https://secure.utilitypro.eu/api/v1/compliance-tools/supported-chains

List Supported Chains — List all blockchains supported for compliance scoring

Example response

{
  "supported_chains": [
    "bitcoin",
    "ethereum",
    "polygon",
    "bsc",
    "tron",
    "solana",
    "litecoin",
    "dogecoin",
    "ripple",
    "avalanche",
    "arbitrum",
    "optimism",
    "base",
    "stellar",
    "tezos",
    "ton"
  ]
}

Email API

Transactional email sending with custom domain support

Base URL: https://secure.utilitypro.eu/api/v1/email · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/email/send

Send Email — Send transactional emails via your verified domain

NameTypeRequiredDescriptionExample
fromstringyesSender email (must be from verified domain)notifications@yourdomain.com
tostring | string[]yesRecipient email(s)customer@example.com
subjectstringyesEmail subject lineOrder Confirmation
htmlstringnoHTML body content<h1>Thank you!</h1>
textstringnoPlain text bodyThank you for your order.
ccstring | string[]noCC recipient(s)copy@example.com
bccstring | string[]noBCC recipient(s)archive@example.com
reply_tostringnoReply-to addresssupport@yourdomain.com

Example request

{
  "from": "notifications@yourdomain.com",
  "to": "customer@example.com",
  "subject": "Order Confirmation",
  "html": "<h1>Thank you for your order!</h1><p>Order #12345 confirmed.</p>"
}

Example response

{
  "success": true,
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "resend_id": "re_abc123xyz"
}

POST https://secure.utilitypro.eu/api/v1/email/domains

Add Domain — Register a custom sending domain

NameTypeRequiredDescriptionExample
domainstringyesDomain to addmail.yourdomain.com

Example request

{
  "domain": "mail.yourdomain.com"
}

Example response

{
  "success": true,
  "id": "dom_abc123",
  "domain": "mail.yourdomain.com",
  "status": "pending",
  "dns_records": [
    {
      "type": "TXT",
      "name": "_dmarc",
      "value": "v=DMARC1; p=none;",
      "priority": null
    },
    {
      "type": "MX",
      "name": "mail",
      "value": "feedback-smtp.us-east-1.amazonses.com",
      "priority": 10
    },
    {
      "type": "TXT",
      "name": "mail",
      "value": "v=spf1 include:amazonses.com ~all",
      "priority": null
    }
  ]
}

GET https://secure.utilitypro.eu/api/v1/email/domains

List Domains — List all registered email domains with status

Example response

{
  "success": true,
  "domains": [
    {
      "id": "dom_abc123",
      "domain": "mail.yourdomain.com",
      "status": "verified",
      "created_at": "2024-01-15T00:00:00Z",
      "verified_at": "2024-01-15T02:30:00Z"
    }
  ]
}

POST https://secure.utilitypro.eu/api/v1/email/domains/verify

Verify Domain — Trigger DNS verification check

NameTypeRequiredDescriptionExample
domain_idstringyesDomain ID to verifydom_abc123

Example request

{
  "domain_id": "dom_abc123"
}

Example response

{
  "success": true,
  "status": "verified",
  "verified_at": "2024-01-15T02:30:00Z"
}

DELETE https://secure.utilitypro.eu/api/v1/email/domains/:domain_id

Delete Domain — Remove a domain from your account

NameTypeRequiredDescriptionExample
domain_idstringyesDomain ID (URL param)dom_abc123

Example response

{
  "success": true,
  "message": "Domain removed successfully"
}

SwiftHub

SWIFT payment processing, validation, and message handling

Base URL: https://secure.utilitypro.eu/api/v1/swifthub · Auth: Authorization

POST https://secure.utilitypro.eu/api/v1/swifthub/swift-validate

Validate Payment — Validate SWIFT payment before submission

NameTypeRequiredDescriptionExample
creditor_namestringyesBeneficiary nameACME Corporation
creditor_ibanstringyesBeneficiary IBANDE89370400440532013000
creditor_bicstringnoBeneficiary BIC/SWIFTCOBADEFFXXX
amountnumberyesPayment amount10000.00
currencystringyesISO currency codeEUR
remittance_unstructuredstringnoPayment referenceInvoice INV-2024-001
charge_typestringnoSHA, OUR, or BENSHA
purpose_codestringnoISO purpose codeSALA

Example request

{
  "creditor_name": "ACME Corporation",
  "creditor_iban": "DE89370400440532013000",
  "creditor_bic": "COBADEFFXXX",
  "amount": 10000,
  "currency": "EUR",
  "remittance_unstructured": "Invoice INV-2024-001"
}

Example response

{
  "valid": true,
  "errors": [],
  "warnings": [
    {
      "code": "W001",
      "field": "purpose_code",
      "message": "Purpose code recommended for EUR payments"
    }
  ]
}

POST https://secure.utilitypro.eu/api/v1/swifthub/swift-payments

Create Payment — Create and submit a new SWIFT payment

NameTypeRequiredDescriptionExample
creditor_namestringyesBeneficiary nameACME Corporation
creditor_ibanstringyesBeneficiary IBANDE89370400440532013000
creditor_bicstringnoBeneficiary BICCOBADEFFXXX
amountnumberyesPayment amount10000.00
currencystringyesISO currency codeEUR
charge_typestringnoSHA, OUR, or BENSHA
purpose_codestringnoISO purpose codeSALA
remittance_unstructuredstringnoPayment reference (max 140 chars)Invoice INV-2024-001
requested_execution_datestringnoISO date for execution2024-12-15

Example request

{
  "creditor_name": "ACME Corporation",
  "creditor_iban": "DE89370400440532013000",
  "creditor_bic": "COBADEFFXXX",
  "amount": 10000,
  "currency": "EUR",
  "remittance_unstructured": "Invoice INV-2024-001",
  "requested_execution_date": "2024-12-15"
}

Example response

{
  "success": true,
  "payment_id": "pmt_abc123xyz",
  "uetr": "550e8400-e29b-41d4-a716-446655440000",
  "status": "validated",
  "created_at": "2024-01-15T10:30:00Z"
}

GET https://secure.utilitypro.eu/api/v1/swifthub/swift-payments/:id

Get Payment Details — Retrieve payment status and history

NameTypeRequiredDescriptionExample
idstringyesPayment ID (URL param)pmt_abc123xyz

Example response

{
  "id": "pmt_abc123xyz",
  "uetr": "550e8400-e29b-41d4-a716-446655440000",
  "status": "sent",
  "creditor_name": "ACME Corporation",
  "creditor_iban": "DE89370400440532013000",
  "amount": 10000,
  "currency": "EUR",
  "created_at": "2024-01-15T10:30:00Z",
  "validated_at": "2024-01-15T10:30:05Z",
  "sent_at": "2024-01-15T10:35:00Z",
  "events": [
    {
      "event": "created",
      "timestamp": "2024-01-15T10:30:00Z"
    },
    {
      "event": "validated",
      "timestamp": "2024-01-15T10:30:05Z"
    },
    {
      "event": "submitted",
      "timestamp": "2024-01-15T10:32:00Z"
    },
    {
      "event": "sent",
      "timestamp": "2024-01-15T10:35:00Z"
    }
  ]
}

POST https://secure.utilitypro.eu/api/v1/swifthub/swift-cancel

Cancel Payment — Request cancellation of a pending payment

NameTypeRequiredDescriptionExample
payment_idstringyesPayment ID to cancelpmt_abc123xyz
reasonstringyesCancellation reasonDuplicate payment

Example request

{
  "payment_id": "pmt_abc123xyz",
  "reason": "Duplicate payment"
}

Example response

{
  "success": true,
  "payment_id": "pmt_abc123xyz",
  "status": "cancellation_requested",
  "message": "Cancellation request submitted"
}

POST https://secure.utilitypro.eu/api/v1/swifthub/swift-repair

Repair Payment — Correct and resubmit a rejected payment

NameTypeRequiredDescriptionExample
payment_idstringyesPayment ID to repairpmt_abc123xyz
correctionsobjectyesFields to correct{ "creditor_name": "ACME Corp Ltd" }
reasonstringnoRepair reasonCorrected beneficiary name

Example request

{
  "payment_id": "pmt_abc123xyz",
  "corrections": {
    "creditor_name": "ACME Corp Ltd"
  },
  "reason": "Corrected beneficiary name"
}

Example response

{
  "success": true,
  "payment_id": "pmt_abc123xyz",
  "status": "validated",
  "message": "Payment repaired and revalidated"
}

VAT Validation

EU VAT number validation and company lookup

Base URL: https://secure.utilitypro.eu/api/v1/vat-validation · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/vat-validation/

Validate VAT Number — Validate EU VAT numbers and retrieve company information

Validates VAT number format and checks against EU VIES database. Returns company registration details.

NameTypeRequiredDescriptionExample
vat_numberstringyesVAT number with country prefixDE123456789
country_codestringnoISO 2-letter country code (optional if in VAT number)DE

Example request

{
  "vat_number": "DE123456789"
}

Example response

{
  "valid": true,
  "vat_number": "DE123456789",
  "country_code": "DE",
  "country": "Germany",
  "company_name": "Example GmbH",
  "company_address": "Musterstraße 1, 10115 Berlin, Germany",
  "request_date": "2024-01-15T10:30:00Z"
}

KYB / Business Registry

Global Legal Entity Identifier (LEI) lookup and company registry search via GLEIF

Base URL: https://secure.utilitypro.eu/api/v1/kyb-tools · Auth: x-api-key

GET https://secure.utilitypro.eu/api/v1/kyb-tools/lei/{lei}

Lookup LEI Record — Fetch the full Legal Entity Identifier record from GLEIF

NameTypeRequiredDescriptionExample
leistringyes20-character LEI code529900T8BM49AURSDO55

Example response

{
  "found": true,
  "lei": "529900T8BM49AURSDO55",
  "legal_name": "GLEIF",
  "jurisdiction": "CH",
  "provider": "gleif"
}

GET https://secure.utilitypro.eu/api/v1/kyb-tools/fuzzy

Fuzzy Name Suggestions — Autocomplete legal entity names with fuzzy matching

NameTypeRequiredDescriptionExample
qstringyesPartial name

Example response

{
  "query": "Acm",
  "suggestions": [],
  "provider": "gleif"
}

Sanctions & PEP Screening

Screen names against OFAC SDN, EU, UN, UK and global PEP lists

Base URL: https://secure.utilitypro.eu/api/v1/sanctions-tools · Auth: x-api-key

POST https://secure.utilitypro.eu/api/v1/sanctions-tools/screen

Screen Name (All Lists) — Screen a person or company against the consolidated OpenSanctions dataset (OFAC, EU, UN, UK, PEPs and more).

NameTypeRequiredDescriptionExample
namestringyesFull name to screen
schemastringno"Person" (default) or "Company"
countrystringnoISO country hint to refine match
birth_datestringnoYYYY-MM-DD for persons
thresholdnumbernoMatch score threshold (0-1, default 0.7)
limitnumbernoMax results returned (default 5)

Example request

{
  "name": "Vladimir Putin",
  "schema": "Person",
  "threshold": 0.7
}

Example response

{
  "name": "Vladimir Putin",
  "match_count": 1,
  "is_match": true,
  "best_score": 1,
  "results": [],
  "provider": "opensanctions"
}

POST https://secure.utilitypro.eu/api/v1/sanctions-tools/ofac-screen

Screen Against OFAC SDN — Restrict screening to the US OFAC SDN list specifically.

NameTypeRequiredDescriptionExample
namestringyesFull name
schemastringno"Person" or "Company"
thresholdnumberno0-1, default 0.7

Example request

{
  "name": "John Doe"
}

Example response

{
  "name": "John Doe",
  "list": "OFAC SDN",
  "match_count": 0,
  "is_match": false,
  "results": [],
  "provider": "opensanctions"
}

GET https://secure.utilitypro.eu/api/v1/sanctions-tools/entity/{id}

Get Entity Detail — Fetch the full record for a sanctioned entity by id. Requires an OpenSanctions data subscription on the account; contact support@utilitypro.eu to enable.

NameTypeRequiredDescriptionExample
idstringyesEntity id returned by /screen or /search

Example response

{
  "id": "NK-...",
  "caption": "...",
  "provider": "opensanctions"
}

Banking Calendar

Public holidays and business-day arithmetic for settlement and SLA calculations

Base URL: https://secure.utilitypro.eu/api/v1/calendar-tools · Auth: x-api-key

GET https://secure.utilitypro.eu/api/v1/calendar-tools/holidays/{country}/{year}

List Public Holidays — Returns all public holidays for a country and year

NameTypeRequiredDescriptionExample
countrystringyesISO-3166-1 alpha-2DE
yearstringyesYYYY2026

Example response

{
  "country": "DE",
  "year": 2026,
  "count": 12,
  "holidays": [],
  "provider": "nager.date"
}

GET https://secure.utilitypro.eu/api/v1/calendar-tools/is-holiday

Is Business Day — Returns whether a given date is a business day, weekend or holiday

NameTypeRequiredDescriptionExample
countrystringyesISO country
datestringnoYYYY-MM-DD (default today)

Example response

{
  "country": "DE",
  "date": "2026-12-25",
  "is_business_day": false,
  "is_public_holiday": true,
  "holiday": {
    "name": "Christmas Day"
  },
  "provider": "nager.date"
}

GET https://secure.utilitypro.eu/api/v1/calendar-tools/next-business-day

Add Business Days — Skip weekends and holidays to compute settlement dates

NameTypeRequiredDescriptionExample
countrystringyesISO country
datestringnoStart date (default today)
daysnumbernoBusiness days to add (1-60, default 1)

Example response

{
  "country": "DE",
  "start": "2026-12-24",
  "business_days_added": 2,
  "result": "2026-12-29",
  "skipped": [
    "2026-12-25",
    "2026-12-26",
    "2026-12-27"
  ],
  "provider": "nager.date"
}

GET https://secure.utilitypro.eu/api/v1/calendar-tools/supported-countries

Supported Countries — List ISO codes covered by the holidays dataset

Example response

{
  "countries": [
    {
      "countryCode": "DE",
      "name": "Germany"
    }
  ],
  "provider": "nager.date"
}

Reference Data

Country reference data, FX rates, and global VAT rate lookup

Base URL: https://secure.utilitypro.eu/api/v1/reference-tools · Auth: x-api-key

GET https://secure.utilitypro.eu/api/v1/reference-tools/countries

List All Countries — All ISO countries with currencies, languages, calling codes, and region metadata

Example response

{
  "count": 250,
  "countries": [],
  "provider": "mledoze/countries"
}

GET https://secure.utilitypro.eu/api/v1/reference-tools/country/{code}

Country Detail — Look up a country by ISO 2- or 3-letter code

NameTypeRequiredDescriptionExample
codestringyesISO codeDE

Example response

{
  "found": true,
  "name": "Germany",
  "official_name": "Federal Republic of Germany",
  "cca2": "DE",
  "cca3": "DEU",
  "ccn3": "276",
  "region": "Europe",
  "subregion": "Western Europe",
  "capital": [
    "Berlin"
  ],
  "currencies": [
    {
      "code": "EUR",
      "name": "Euro",
      "symbol": "€"
    }
  ],
  "languages": [
    "German"
  ],
  "calling_codes": [
    "+49"
  ],
  "flag": "https://flagcdn.com/de.svg",
  "provider": "mledoze/countries"
}

GET https://secure.utilitypro.eu/api/v1/reference-tools/vat-rates/{country}

VAT Rate Lookup — Standard and reduced VAT rates per country (curated EU table)

NameTypeRequiredDescriptionExample
countrystringnoISO 2-letter; omit for full table

Example response

{
  "country": "DE",
  "country_name": "Germany",
  "standard_rate": 19,
  "reduced_rates": [
    7
  ],
  "super_reduced_rate": null,
  "parking_rate": null,
  "provider": "utilitypro"
}

GET https://secure.utilitypro.eu/api/v1/reference-tools/fx-rates

Daily FX Rates — Foreign exchange rates relative to a base currency

NameTypeRequiredDescriptionExample
basestringnoBase currency (default EUR)
symbolsstringnoComma-separated target currencies
datestringnoYYYY-MM-DD for historical rates

Example response

{
  "base": "EUR",
  "date": "2026-05-04",
  "rates": {
    "USD": 1.08,
    "GBP": 0.86
  },
  "provider": "vatcomply"
}

GET https://secure.utilitypro.eu/api/v1/reference-tools/vat-validate

EU VAT Validate — Validate an EU VAT number via VATComply

NameTypeRequiredDescriptionExample
vatstringyesVAT number with country prefixDE123456789

Example response

{
  "country_code": "DE",
  "vat_number": "123456789",
  "valid": true,
  "name": "Acme GmbH",
  "provider": "vatcomply"
}