sanctions-check
Screening sanzioni di un nome di persona, impresa o nave rispetto alla Consolidated Screening List degli Stati Uniti (SDN OFAC con alias e altre liste del Tesoro, Commerce BIS e State), alla lista consolidata delle sanzioni finanziarie UE (FSF), al registro nazionale francese di congelamento dei beni (DG Trésor) e alla lista sanzioni del Regno Unito (FCDO). Matching fuzzy di token Jaro-Winkler con punteggio, programmi, data di nascita; elenchi aggiornati ogni giorno.
Endpoint
GET|POST https://forge-tools.dentreprise.workers.dev/api/sanctions-check
Parametri
| Nome | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|
name | Obbligatorio | string | Name to screen |
type | Facoltativo | string | person, entity or vessel (optional) |
lists | Facoltativo | string | ofac,eu,fr,uk (default all) |
threshold | Facoltativo | string | 0.7-1, default 0.88 |
max | Facoltativo | string | 1-50 |
Esempio di richiesta (non pagata — attendi 402)
curl -sS -D - "https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity"
Esempio di challenge 402
Lo stesso oggetto è inviato anche come intestazione PAYMENT-REQUIRED in base64. Gli importi sono unità USDC atomiche (6 decimali).
{
"x402Version": 2,
"error": "Payment required",
"resource": {
"url": "https://forge-tools.dentreprise.workers.dev/api/sanctions-check",
"description": "Sanctions screening of a person, company or vessel name against the US Consolidated Screening List (OFAC SDN with aliases plus other Treasury, Commerce BIS and State lists), the EU consolidated financial sanctions list (FSF), the French national asset-freeze register (DG Trésor) and the UK sanctions list (FCDO). Fuzzy Jaro-Winkler token matching with score, programmes, DOB; lists refreshed daily.",
"mimeType": "application/json"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"amount": "5000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0x7B8bf45ac6AcbA6D4CFB626b57D3f5fF3C9C89F7",
"maxTimeoutSeconds": 120,
"extra": {
"name": "USD Coin",
"version": "2"
}
}
]
}Riprova con pagamento
curl -sS "https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity" \ -H "PAYMENT-SIGNATURE: $PAYMENT"
Esempio di risposta
{
"query": "Bank Rossiya",
"match": true,
"highest_score": 1,
"hits": [
{
"list": "eu",
"name": "Bank Rossiya",
"score": 1,
"programmes": "UKR"
}
]
}Demo / campione gratuito
Questo tool è sul worker della wave 1. ?demo=1 restituisce un campione o un estratto etichettato con HTTP 200 e senza pagamento. Il body non sono dati live. Anche le prime 3 chiamate reali riuscite per IP e giorno UTC sono gratuite.
curl -sS "https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity&demo=1"
Risposta demo etichettata
{
"demo": true,
"demo_label": "DEMO / SAMPLE — not live data. This is a labelled example response and was not charged.",
"charged": false,
"tool": "/api/sanctions-check",
"docs": "https://agent-hub.dentreprise.workers.dev/tools/sanctions-check/",
"how_to_get_live_data": "Call the same URL without demo=1. The first 3 successful real calls per IP per UTC day are free; after that attach an x402 v2 PAYMENT-SIGNATURE (USDC on Base).",
"sample": {
"query": "Bank Rossiya",
"match": true,
"highest_score": 1,
"hits": [
{
"list": "eu",
"name": "Bank Rossiya",
"score": 1,
"programmes": "UKR"
}
]
}
}JavaScript — @x402/fetch
Client ufficiale x402 v2. Installa @x402/fetch e @x402/evm. Il vecchio nome di pacchetto x402-fetch è la linea v1 deprecata e non va usato per questi endpoint.
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
// Official x402 v2 client. The older package name "x402-fetch" is the deprecated v1 line.
const account = privateKeyToAccount(process.env.EVM_PRIVATE_KEY);
const fetchWithPayment = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});
const res = await fetchWithPayment(
"https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity"
);
console.log(await res.json());Python — x402
Pacchetto ufficiale PyPI x402. Usa x402HttpxClient (async) o x402_requests (sync) dopo register_exact_evm_client con EthAccountSigner.
import asyncio
import os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
# Official PyPI package: x402
account = Account.from_key(os.environ["EVM_PRIVATE_KEY"])
client = x402Client()
register_exact_evm_client(client, EthAccountSigner(account))
async def main():
async with x402HttpxClient(client) as http:
res = await http.get("https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity")
print(res.json())
asyncio.run(main())
# Sync alternative:
# from x402 import x402ClientSync
# from x402.http.clients import x402_requests
# client = x402ClientSync()
# register_exact_evm_client(client, EthAccountSigner(account))
# with x402_requests(client) as session:
# print(session.get("https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity").json())Server MCP — forge-agent-mcp
stdio copre l’intero catalogo (entrambi gli host API). Clona forge-agent-mcp e punta il client MCP a src/server.mjs. Il remote Streamable HTTP ospitato sul gateway originale espone ancora solo i tool di quel gateway.
{
"mcpServers": {
"forge-agent-hub": {
"command": "node",
"args": ["/path/to/forge-agent-mcp/src/server.mjs"]
},
"forge-agent-api": {
"url": "https://x402-gateway.forge-x402.workers.dev/mcp",
"transport": "streamable-http"
}
}
}Wrapper di strumento LangChain
Avvolgi gli stessi client x402 come strumento LangChain con DynamicStructuredTool (@langchain/core) o @tool (langchain_core).
import { DynamicStructuredTool } from "@langchain/core/tools";
import { z } from "zod";
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.EVM_PRIVATE_KEY);
const fetchWithPayment = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});
export const sanctions_check = new DynamicStructuredTool({
name: "sanctions_check",
description: "Sanctions screening of a person, company or vessel name against the US Consolidated Screening List (OFAC SDN with aliases plus other Treasury, Commerce BIS and State lists), the EU consolidated financial sanctions list (FSF), the French national asset-freeze register (DG Trésor) and the UK sanctions list (FCDO).",
schema: z.object({}),
func: async (input) => {
const res = await fetchWithPayment("https://forge-tools.dentreprise.workers.dev/api/sanctions-check" + "?" + new URLSearchParams(input));
return JSON.stringify(await res.json());
},
});import os
from langchain_core.tools import tool
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
account = Account.from_key(os.environ["EVM_PRIVATE_KEY"])
client = x402ClientSync()
register_exact_evm_client(client, EthAccountSigner(account))
@tool
def sanctions_check() -> str:
"""Sanctions screening of a person, company or vessel name against the US Consolidated Screening List (OFAC SDN with aliases plus other Treasury, Commerce BIS and State lists), the EU consolidated financial sanctions list (FSF), the French national asset-freeze register (DG Trésor) and the UK sanctions list (FCDO)."""
with x402_requests(client) as session:
return session.get("https://forge-tools.dentreprise.workers.dev/api/sanctions-check").textEndpoint correlati
lei-lookup
Consultazione del Legal Entity Identifier nel registro ufficiale GLEIF: per LEI (con controllo checksum ISO 17442) o per ricerca della denominazione con paese opzionale.
eori-validate
Validazione di numeri EORI (identificativo doganale) rispetto al registro ufficiale EOS della Commissione europea, e di numeri GB del Regno Unito rispetto a HMRC.
siren-check
Validazione dei checksum SIREN (9) / SIRET (14) francesi (Luhn, eccezione La Poste), formattazione, NIC e la partita IVA intra-UE derivata.
fr-legal-status
Stato giuridico di un’impresa francese per SIREN/SIRET: stato amministrativo Sirene (attiva/cessata, data di chiusura, forma giuridica, NAF, sede) più procedure concorsuali BODACC (sauvegarde, redressement, liquidation judiciaire, clôture) con l’ultimo stadio, un flag in corso e il livello di rischio.