sanctions-check
Triagem de sanções de um nome de pessoa, empresa ou navio face à lista consolidada de triagem dos EUA (SDN da OFAC com aliases e outras listas do Tesouro, Commerce BIS e Estado), à lista consolidada de sanções financeiras da UE (FSF), ao registo nacional francês de congelamento de bens (DG Trésor) e à lista de sanções do Reino Unido (FCDO). Correspondência difusa de tokens Jaro-Winkler com pontuação, programas e data de nascimento; listas atualizadas diariamente.
Endpoint
GET|POST https://forge-tools.dentreprise.workers.dev/api/sanctions-check
Parâmetros
| Nome | Obrigatório | Tipo | Descrição |
|---|---|---|---|
name | Obrigatório | string | Name to screen |
type | Opcional | string | person, entity or vessel (optional) |
lists | Opcional | string | ofac,eu,fr,uk (default all) |
threshold | Opcional | string | 0.7-1, default 0.88 |
max | Opcional | string | 1-50 |
Exemplo de pedido (por pagar — espere 402)
curl -sS -D - "https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity"
Exemplo de desafio 402
O mesmo objeto também é enviado como cabeçalho PAYMENT-REQUIRED em base64. Os montantes são unidades atómicas de USDC (6 casas decimais).
{
"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"
}
}
]
}Tentar de novo com pagamento
curl -sS "https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity" \ -H "PAYMENT-SIGNATURE: $PAYMENT"
Exemplo de resposta
{
"query": "Bank Rossiya",
"match": true,
"highest_score": 1,
"hits": [
{
"list": "eu",
"name": "Bank Rossiya",
"score": 1,
"programmes": "UKR"
}
]
}Demo / amostra grátis
Esta ferramenta está no worker da vaga 1. ?demo=1 devolve uma amostra ou excerto etiquetado com HTTP 200 e sem pagamento. O corpo não são dados reais. As 3 primeiras chamadas reais com sucesso por IP e dia UTC também são grátis.
curl -sS "https://forge-tools.dentreprise.workers.dev/api/sanctions-check?name=Bank+Rossiya&type=entity&demo=1"
Resposta de demo etiquetada
{
"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
Cliente oficial x402 v2. Instale @x402/fetch e @x402/evm. O nome de pacote antigo x402-fetch é a linha v1 descontinuada e não deve ser usado nestes endpoints.
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
Pacote oficial PyPI x402. Use x402HttpxClient (async) ou x402_requests (sync) depois de register_exact_evm_client com 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())Servidor MCP — forge-agent-mcp
O modo stdio cobre o catálogo completo (ambos os anfitriões de API). Clone forge-agent-mcp e aponte o seu cliente MCP para src/server.mjs. O remoto Streamable HTTP alojado no gateway original continua a expor apenas as ferramentas desse 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 de ferramenta LangChain
Envolva os mesmos clientes x402 como ferramenta LangChain com DynamicStructuredTool (@langchain/core) ou @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").textEndpoints relacionados
lei-lookup
Consulta de Identificador de Entidade Legal no registo oficial GLEIF: por LEI (com verificação de soma ISO 17442) ou por pesquisa de denominação com país opcional.
eori-validate
Validação de números EORI (identificador aduaneiro) no registo oficial EOS da Comissão Europeia, e de números GB do Reino Unido junto da HMRC.
siren-check
Validação das somas de verificação SIREN (9) / SIRET (14) francesas (Luhn, exceção La Poste), formatação, NIC e o número de IVA intra-UE derivado.
fr-legal-status
Estado jurídico de uma empresa francesa por SIREN/SIRET: estado administrativo Sirene (ativa/cessada, data de encerramento, forma jurídica, NAF, sede) mais processos coletivos BODACC (sauvegarde, redressement, liquidation judiciaire, clôture) com o último estágio, um indicador em curso e o nível de risco.