Screening AML
Cotejo contra listas de sanciones, personas políticamente expuestas y medios adversos, con re-screening periódico por portafolio.
Un screening devuelve hits, no veredictos: la decisión de negocio sigue siendo tuya.
El monitoreo continuo se dispara por portafolio, no por persona.
Lanzar un screening
POST /v1/screenings
Requiere una API key secreta (belfort_{env}_sk_…) con scope aml:write.
Coteja una empresa y sus personas asociadas contra listas de sanciones, PEP y medios adversos. Idempotency-Key obligatoria.
Parámetros
Idempotency-Key header |
Cuerpo de la petición
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
companyId |
sí | string |
Opaque company id. |
Respuestas
201 Successful Response — ScreeningResponse
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
companyScreeningId |
sí | string |
Opaque screening id. |
personScreeningIds |
sí | string[] |
|
status |
sí | string |
|
totalHits |
sí | integer |
Listar coincidencias
GET /v1/screening-hits
Requiere una API key secreta (belfort_{env}_sk_…) con scope aml:read.
Las coincidencias encontradas, filtrables por estado. Una coincidencia es material para decidir, no una decisión.
Parámetros
status query |
|
limit query |
Tamaño de página (1–100). |
startingAfter query |
nextCursor de la página anterior. Excluyente con endingBefore. |
endingBefore query |
previousCursor de la página actual. Excluyente con startingAfter. |
includeTotal query |
Calcula totalCount. Cuesta un COUNT(*) sobre el filtro entero, así que está apagado por defecto: pídelo solo cuando vayas a enseñar el total. |
Respuestas
200 Successful Response — ListEnvelope_ScreeningHitResponse_
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
data |
sí | ScreeningHitResponse[] |
|
hasMore |
sí | boolean |
true si quedan resultados después de esta página. |
limit |
sí | integer |
El límite realmente aplicado (puede ser menor al pedido). |
nextCursor |
no | string | null |
Pásalo como startingAfter para la siguiente página. |
object |
no | "list" |
|
previousCursor |
no | string | null |
Pásalo como endingBefore para la página anterior. |
totalCount |
no | integer | null |
Total de coincidencias. Solo se calcula si pides includeTotal=true — es un COUNT(*) sobre el filtro entero y no se cobra a quien no lo necesita. |
Re-escanear un portafolio
POST /v1/monitoring/portfolios/{portfolio_id}/run
Requiere una API key secreta (belfort_{env}_sk_…) con scope aml:write.
Vuelve a cotejar todo un portafolio contra las listas actualizadas. Es el mecanismo de monitoreo continuo.
Parámetros
portfolio_id path · requerido |
string |
Respuestas
200 Successful Response — MonitoringRunResponse
| Campo | Requerido | Tipo | Descripción |
|---|---|---|---|
completedAt |
sí | string (date-time) | null |
|
error |
sí | string | null |
|
id |
sí | string |
Opaque monitoring run id. |
newHits |
sí | integer | null |
|
portfolioId |
sí | string |
Opaque monitoring portfolio id. |
startedAt |
sí | string (date-time) | null |
|
status |
sí | string |
|
subjectsScreened |
sí | integer | null |