Tara - Payment Sanction Screening (PSS) (1.2.18.1)
Download OpenAPI specification:Download
Transaction Screening or Payment Sanction Screening (PSS) Alert Disposition is the skill of the Digital Worker Tara. Tara is designed to identify real-time transactions or payments to or from sanctioned individuals, entities, or jurisdictions during on-boarding and throughout the customer relationship lifecycle that may pose a risk to financial institutions.
A request that reaches Tara answers with HTTP 200 and carries its outcome in the status field of the response body rather than in the HTTP status code: Tara sets COMPLETED when a decision was produced and INVALID_REQUEST when the message was rejected, and both are returned as 200. Failures raised by the Control Tower input connector before the request reaches Tara do use HTTP status codes, and answer with a body carrying only an error field: 401 when the bearer token is missing, malformed, or expired, and 404 when the signalId does not resolve to a deployed business process. The 400, 403, 500, and 504 statuses also come from the connector and carry that same error field, sometimes alongside a null requestId. The 502 and 503 statuses come from the proxy in front of the connector instead, so their bodies may not be JSON at all. The 5xx statuses are the only documented failures worth retrying, since every other one needs the request or the deployment corrected first.
Authentication is performed against a separate token service, which is not part of this API and has its own error contract, so its failures are not among the responses documented on the operations. They are described under the oauth security scheme.
Unknown properties in a request body are ignored, so a payload built for a newer or older schema is still accepted.
Get an access token
Exchanges credentials for the bearer token that every other operation requires. This endpoint belongs to the identity service rather than to Tara, so it is served from a different host and its failures are not Tara or Control Tower responses. It is documented here so that integrators have the whole call sequence in one place. Both the host and the realm segment of the path are deployment-specific, so confirm them against your own environment rather than copying them from this page.
Request Body schema: application/x-www-form-urlencoded
| grant_type | string OAuth 2 grant type. The password grant is the flow this API documents. |
| username | string Username of the service account the digital worker is called with. |
| password | string Password for the account named in username. |
| client_id | string Client configured for the realm in the identity service. |
Responses
Response samples
- 200
- 400
- 401
- 405
Captured token response. The three token values are truncated here; the real ones are long JWTs. Send access_token as the bearer token on the other operations and read its lifetime from expires_in, in seconds. Both expires_in and refresh_expires_in come from the identity service configuration and differ between deployments, including which of the two is longer, so read them from the response rather than treating the values here as the durations you will see. Note that id_token is an OpenID Connect identity token rather than an API credential, so it is not the value those operations expect.
{- "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiA...",
- "expires_in": 7200,
- "refresh_expires_in": 2400,
- "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiA...",
- "token_type": "Bearer",
- "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiA...",
- "not-before-policy": 0,
- "session_state": "81797fd8-d5fe-4e59-8753-ac2487461fa3",
- "scope": "openid email profile"
}Submit a payment message with screening alerts for Tara review
Submit a record for processing asynchronously. An acknowledgement that the message was added to the processing queue is returned immediately. Asynchronous execution is the most efficient way to process batches of records or a high volume of records.
Authorizations:
path Parameters
| signalId required | string Example: tara-pss-signal Signal ID of the business process the record is sent to, as configured on the Data tab when streaming input is enabled. |
Request Body schema: application/json
Alerts to be screened. The message id, the hit list, and a unique id on every hit are required; all other fields are optional. Unknown properties are ignored.
| sourceSystemId | string Source system number. |
| id required | string Message identification number. |
| type | string Default: "PAYMENT_TRANSFER" Payment message type. |
| subtype | string Payment message subtype. |
| content | string Optional if the content is already parsed with tagContent and tagType provided for each hit. Otherwise, required for parsing. |
| contentFormat | string Enum: "FUF" "NATIVE" "SWIFT_MT" "SWIFT_MX" "SWIFT_NPP" "SWIFT_ADK" Format of the screened message content, identifying the payment message standard the content was supplied in. |
required | Array of objects (Hit) Message hits. Message without hits will not be adjudicated. |
object (PaymentInfo) Payment details carried by the message, used as additional context during adjudication. | |
object Any additional information, fields/values not specified elsewhere. Not used in processing but can be used in rules. |
Responses
Request samples
- Payload
Only the required fields: a message id, and one hit carrying its own id. Everything else is optional.
{- "id": "9999991",
- "type": "PAYMENT_TRANSFER",
- "hits": [
- {
- "id": "8194965",
- "tagContent": "payment for trade finance Terry",
- "tagType": "FREETEXT",
- "sanctionData": {
- "name": "Terry",
- "type": "ORGANIZATION"
}
}
]
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
- 504
The record was accepted and queued. Poll check-record-status with the returned requestId, then fetch the decision from get-record-result once the status is COMPLETED.
{- "requestId": "3dbb99de-7556",
- "status": "IN_PROGRESS",
- "statusDetails": "Record Processing Started"
}Check record processing status
Checks a record status based on the specified requestId. Returns the record processing status.
Authorizations:
path Parameters
| requestId required | string Example: 3dbb99de-7556 Control Tower request identifier returned by start-record-raw. Note this is not the identifier Tara reports inside the decision envelope. |
Responses
Response samples
- 200
- 401
- 500
- 504
Adjudication has not finished. Keep polling; no decision is available yet.
{- "requestId": "3dbb99de-7556",
- "status": "IN_PROGRESS",
- "format": "RAW"
}Get a screening decision
Gets a screening decision based on the specified requestId. Returns the record results.
Authorizations:
path Parameters
| requestId required | string Example: 3dbb99de-7556 Control Tower request identifier returned by start-record-raw. Note this is not the identifier Tara reports inside the decision envelope. |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
- 504
Every hit decision is RESOLVE, so the message level suggestedAction is also RESOLVE, and the payment can be released without analyst review.
{- "requestId": "5e3eb0b9-2c84-4758-9b6c-76fe806ca310",
- "status": "COMPLETED",
- "statusDetails": "",
- "decision": {
- "messageId": "test-message-id-6",
- "suggestedAction": "RESOLVE",
- "hitDecisions": [
- {
- "hitId": "2001",
- "suggestedAction": "RESOLVE",
- "comment": "name_match_token_base,location_mismatch_ind",
- "reasons": [
- {
- "code": "name_match_token_base",
- "description": "name_match_token_base",
- "score": 0.42
}, - {
- "code": "location_mismatch_ind",
- "description": "location_mismatch_ind",
- "score": 0.42
}
]
}
]
},
}Process payment message with screening alerts
Process a record synchronously. This method returns a completed processing result. The response time of this method may deteriorate under high load, so please use the asynchronous version for higher volumes.
Authorizations:
path Parameters
| signalId required | string Example: tara-pss-signal Signal ID of the business process the record is sent to, as configured on the Data tab when streaming input is enabled. |
Request Body schema: application/json
Alerts to be screened. The message id, the hits, and a unique id on every hit are required; all other fields are optional. Unknown properties are ignored.
| sourceSystemId | string Source system number. |
| id required | string Message identification number. |
| type | string Default: "PAYMENT_TRANSFER" Payment message type. |
| subtype | string Payment message subtype. |
| content | string Optional if the content is already parsed with tagContent and tagType provided for each hit. Otherwise, required for parsing. |
| contentFormat | string Enum: "FUF" "NATIVE" "SWIFT_MT" "SWIFT_MX" "SWIFT_NPP" "SWIFT_ADK" Format of the screened message content, identifying the payment message standard the content was supplied in. |
required | Array of objects (Hit) Message hits. Message without hits will not be adjudicated. |
object (PaymentInfo) Payment details carried by the message, used as additional context during adjudication. | |
object Any additional information, fields/values not specified elsewhere. Not used in processing but can be used in rules. |
Responses
Request samples
- Payload
Only the required fields: a message id, and one hit carrying its own id. Everything else is optional.
{- "id": "9999991",
- "type": "PAYMENT_TRANSFER",
- "hits": [
- {
- "id": "8194965",
- "tagContent": "payment for trade finance Terry",
- "tagType": "FREETEXT",
- "sanctionData": {
- "name": "Terry",
- "type": "ORGANIZATION"
}
}
]
}Response samples
- 200
- 400
- 401
- 403
- 404
- 500
- 504
Every hit decision is RESOLVE, so the message level suggestedAction is also RESOLVE, and the payment can be released without analyst review.
{- "requestId": "5e3eb0b9-2c84-4758-9b6c-76fe806ca310",
- "status": "COMPLETED",
- "statusDetails": "",
- "decision": {
- "messageId": "test-message-id-6",
- "suggestedAction": "RESOLVE",
- "hitDecisions": [
- {
- "hitId": "2001",
- "suggestedAction": "RESOLVE",
- "comment": "name_match_token_base,location_mismatch_ind",
- "reasons": [
- {
- "code": "name_match_token_base",
- "description": "name_match_token_base",
- "score": 0.42
}, - {
- "code": "location_mismatch_ind",
- "description": "location_mismatch_ind",
- "score": 0.42
}
]
}
]
},
}