> ## Documentation Index > Fetch the complete documentation index at: https://docs.hawk.ai/llms.txt > Use this file to discover all available pages before exploring further. # Get transaction case > Retrieves Hawk-generated AML case statistics by internal case ID. Returns rule execution results, AML decisions, and screening data. ## OpenAPI ````json GET /v1/transaction-checks/{caseId} { "openapi": "3.1.0", "info": { "title": "OpenAPI definition", "version": "v0" }, "servers": [ { "url": "https://api.test.aml-ai.net", "description": "Default Server URL" }, { "url": "https://api.test.aml-ai.net", "description": "Default Server URL" }, { "url": "https://api.test.aml-ai.net", "description": "Generated server url" } ], "security": [ { "API_KEY": [] } ], "tags": [ { "name": "customer-case", "description": "the customer-case API" }, { "name": "transaction-case", "description": "the transaction-case API" } ], "paths": { "/v1/transaction-checks/{caseId}": { "get": { "tags": [ "transaction-case" ], "summary": "Get transaction case", "description": "Retrieves Hawk-generated AML case statistics by internal case ID. Returns rule execution results, AML decisions, and screening data. ", "operationId": "getTransactionCase", "parameters": [ { "name": "caseId", "in": "path", "description": "Internal Hawk case ID (returned in the original POST /v1/transaction-checks response)", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Case found; all data sources returned successfully. The response contains the complete case payload. ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionCaseResponse" } } } }, "206": { "description": "Case found, but one or more data sources (for example screening) were temporarily unavailable, so some fields may be missing. **Why:** a downstream data source did not respond in time. **Recover:** retry with exponential backoff until you receive `200`. ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransactionCaseResponse" } } } }, "401": { "description": "Missing or invalid API key. **Why:** the `api-key` header was absent or not valid for this tenant. **Recover:** send a valid tenant API key in the `api-key` header. ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errors": [ "Missing or invalid API key" ] } } } }, "404": { "description": "No transaction case exists for the given `caseId`. **Why:** the ID is unknown or belongs to a customer case. **Recover:** verify the `caseId` from the original submission response and that you are calling the transaction endpoint. ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errors": [ "Transaction case not found" ] } } } }, "429": { "description": "Rate limit exceeded. **Why:** requests exceeded the per-second limit agreed for your tenant (shared with `POST`/`PATCH` `/v1/transaction-checks`). **Recover:** pause and retry with exponential backoff — for example 1s, 2s, 4s with jitter — and keep overall throughput under the limit. ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errors": [ "Rate limit exceeded" ] } } } }, "500": { "description": "The case was found but could not be assembled for the response. **Why:** a transient internal error. **Recover:** retry with backoff; if it persists, contact Hawk. ", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "example": { "errors": [ "Failed to detokenize transaction case" ] } } } } }, "security": [ { "API_KEY": [] } ] } } }, "components": { "schemas": { "TransactionCaseResponse": { "type": "object", "properties": { "caseId": { "type": "string", "format": "uuid", "description": "Internal Hawk case ID", "example": "5f8a3b2c-1d4e-4f5a-9b6c-7d8e9f0a1b2c" }, "correlationId": { "type": "string", "format": "uuid", "description": "Correlation ID linking this case to the original request" }, "tenantId": { "type": "string", "format": "uuid", "description": "Tenant identifier" }, "customerId": { "type": "string", "description": "Customer identifier associated with this transaction" }, "accountId": { "type": "string", "description": "Account identifier associated with this case" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when processing of the case completed (ISO 8601 UTC)" }, "caseStatus": { "type": "string", "description": "Current lifecycle status of the case. One of: OPEN, NOT_OPENED, AUTO_CLOSED", "example": "OPEN" }, "processingStatus": { "type": "string", "description": "Current processing status of the case. One of: new, unsuspicious, relieved, unsubstantiated, opening, machine-review, operator-review, accepted, escalated, sar-filing, sar-filed, reopening, reopened" }, "assignedTo": { "type": "string", "description": "ID of the user the case is assigned to" }, "apiType": { "type": "string", "description": "Type of check that created this case (AMLChecks or CustomerChecks)", "example": "AMLChecks" }, "sourceTags": { "type": "array", "description": "Source tags applied to this case", "items": { "type": "string" } }, "tenantCategory": { "type": "string", "description": "Category assigned to the tenant" }, "decision": { "$ref": "#/components/schemas/Decision" }, "statusUpdate": { "$ref": "#/components/schemas/StatusUpdate" }, "amlStatistics": { "$ref": "#/components/schemas/AmlStatistics" }, "notes": { "type": "array", "description": "Case notes associated with this transaction case", "items": { "$ref": "#/components/schemas/CaseNote" } } }, "required": [ "caseId", "caseStatus", "createdAt" ] }, "ErrorResponse": { "properties": { "errors": { "description": "List of error messages", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "Decision": { "type": "object", "description": "Decision taken on this case", "properties": { "caseStatus": { "type": "string", "description": "Case status at the time of decision. One of: OPEN, NOT_OPENED, AUTO_CLOSED" }, "transactionStatus": { "type": "string", "description": "Transaction status resulting from the decision. One of: proceeded, blocked, unblocked, none" }, "processingStatus": { "type": "string", "description": "Processing status resulting from the decision. One of: new, unsuspicious, relieved, unsubstantiated" }, "decisionType": { "type": "string", "description": "Type of decision taken. One of: complete, incomplete, immediate" } } }, "StatusUpdate": { "type": "object", "description": "Latest transaction status update", "properties": { "transactionStatus": { "type": "string", "description": "Updated transaction status. One of: proceeded, blocked, unblocked, none" }, "processingStatus": { "type": "string", "description": "Updated processing status. One of: new, unsuspicious, relieved, unsubstantiated" }, "decisionType": { "type": "string", "description": "Decision type that triggered the update. One of: complete, incomplete, immediate" }, "operatorAnswer": { "type": "string", "description": "Operator answer associated with the status update" } } }, "AmlStatistics": { "type": "object", "description": "AML-specific case statistics", "properties": { "flow": { "type": "string", "description": "Transaction flow. One of: inbound, outbound" }, "fundsTotalAndCurrency": { "type": "string", "description": "Total funds with currency, currency first (e.g. \"EUR 1234.56\")" }, "tenantTransactionId": { "type": "string", "description": "Identifier provided by the tenant. Not unique — multiple POSTs with the same value create separate cases. Use caseId to identify a specific case." }, "transactionStatus": { "type": "string", "description": "Transaction status from AML perspective. One of: proceeded, blocked, unblocked, none" }, "investigationStatus": { "type": "string", "description": "Investigation workflow status. One of: opening, unsuspicious, machine-review, relieved, new, initial-review, waiting-for-operator, operator-review, request-for-information, accepted, escalated, sar-filing, sar-filed, reopening, reopened" }, "transactionResult": { "type": "string", "description": "Transaction result code. One of: FRAUD_SUSPICION, CARD_STOLEN, CARD_LOST, INSUFFICIENT_FUNDS, SUSPICIOUS_MERCHANT_SETUP, INVALID_CVV, INVALID_AVS, USAGE_RESTRICTED, BLOCKED_CASH, IDENTITY_ISSUE, PIN_LIMIT_EXCEEDED, PICKUP_CARD_FRAUD, BLOCKED_ORIGINAL_CREDIT" }, "screeningHits": { "type": "array", "description": "Per-hit screening detail, one entry per screening hit on the case.", "items": { "$ref": "#/components/schemas/ScreeningHit" } }, "ruleExecutionResults": { "$ref": "#/components/schemas/RuleExecutionResults" }, "counterparty": { "$ref": "#/components/schemas/Counterparty" } } }, "CaseNote": { "type": "object", "description": "A single case note", "properties": { "noteId": { "type": "string", "format": "uuid", "description": "Unique identifier of the note" }, "userId": { "type": "string", "description": "ID of the user who created the note" }, "tenantId": { "type": "string", "format": "uuid", "description": "Tenant identifier" }, "caseId": { "type": "string", "format": "uuid", "description": "Associated case identifier" }, "note": { "type": "string", "description": "Content of the note" }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp when the note was created" }, "type": { "type": "string", "description": "Type of the note" }, "subtype": { "type": "string", "description": "Subtype of the note" }, "subtypeRelatedItemId": { "type": "string", "description": "ID of the item related to the subtype" }, "userDetails": { "$ref": "#/components/schemas/CaseNoteUserDetails" }, "attachments": { "type": "array", "description": "List of attachments associated with this note", "items": { "$ref": "#/components/schemas/CaseNoteAttachment" } } } }, "ScreeningHit": { "type": "object", "description": "A single screening hit with enriched match detail (matched list record, score, list source, and SAN/SCO classification).", "properties": { "entityId": { "type": "string", "description": "Reference to the matched list entry / record in the source list.", "example": "DJ-1234567" }, "matchedField": { "type": "string", "description": "JSON path in the submitted transaction/customer payload where the matched value was found — tells you which field the hit is on (for example the counterparty, account-holder, or usage field). Look up the value in the payload you submitted.", "example": "masterData.counterpartyData.name" }, "listSource": { "type": "string", "description": "Data provider the matched list entry originates from.", "example": "Dow Jones" }, "matchScore": { "type": "number", "format": "double", "description": "Match score for this hit on a 0-100 scale (higher means a closer match).", "example": "100.0" }, "screeningAreas": { "type": "array", "description": "Screening areas the matched entity is listed under (e.g. SANCTIONS, PEP, ADVERSE_MEDIA, OTHER_WATCHLIST).", "example": [ "SANCTIONS" ], "items": { "type": "string" } }, "listNames": { "type": "array", "description": "Names of the source lists the matched entity appears on.", "example": [ "OFAC SDN" ], "items": { "type": "string" } }, "sanctionsOwnership": { "type": "boolean", "description": "Distinguishes SAN from SCO for sanctions hits: true when the match is a Sanctions Control & Ownership (SCO) record, false for a direct sanctions-list (SAN) record.", "example": false }, "matchedName": { "type": "string", "description": "Name of the matched list entity (the watchlist record's primary name). Personal data.", "example": "John Doe" }, "aliases": { "type": "array", "description": "Alternative names recorded for the matched entity (AKA / also-known-as and native-script names). The name that actually triggered the match may be an alias rather than the primary name. Personal data.", "example": [ "Johnny Doe", "J. Doe" ], "items": { "type": "string" } }, "countries": { "type": "array", "description": "Countries associated with the matched entity (nationality, residence, or registration geography), as recorded by the data provider.", "example": [ "GB", "US" ], "items": { "type": "string" } }, "datesOfBirth": { "type": "array", "description": "Dates of birth recorded for the matched entity. Sensitive personal data — see Data protection.", "example": [ "1975-04-12" ], "items": { "type": "string" } }, "identifiers": { "type": "array", "description": "Identity documents / identifiers recorded for the matched entity (national ID, passport, company registration number, etc.). Sensitive personal data — see Data protection.", "items": { "$ref": "#/components/schemas/ScreeningHitIdentifier" } }, "profileNotes": { "type": "array", "description": "Narrative notes recorded on the matched entity by the data provider — the list classification notes plus the provider's free-text profile narrative (for example adverse-media summaries or sanctions-listing details). May be lengthy. Personal data.", "example": [ "Listed for involvement in sanctions evasion." ], "items": { "type": "string" } }, "sources": { "type": "array", "description": "Source references for the matched entity (data-provider source links).", "items": { "$ref": "#/components/schemas/ScreeningHitSource" } } } }, "RuleExecutionResults": { "type": "object", "description": "Results of rule execution grouped by outcome", "properties": { "openRules": { "type": "array", "description": "Rules that resulted in an OPEN decision", "items": { "$ref": "#/components/schemas/RuleResult" } }, "notOpenRules": { "type": "array", "description": "Rules that did not result in an OPEN decision", "items": { "$ref": "#/components/schemas/RuleResult" } }, "autoClosedRules": { "type": "array", "description": "Rules that resulted in an AUTO_CLOSED decision", "items": { "$ref": "#/components/schemas/RuleResult" } } } }, "Counterparty": { "type": "object", "description": "Counterparty information for the transaction", "properties": { "bankCountry": { "type": "string", "description": "Country of the counterparty bank (ISO 3166 alpha-2)" } } }, "CaseNoteUserDetails": { "type": "object", "description": "Details of the user who created the case note", "properties": { "userId": { "type": "string", "description": "User identifier" }, "email": { "type": "string", "description": "Email address of the user" }, "name": { "type": "string", "description": "Full name of the user" }, "picture": { "type": "string", "description": "URL or reference to the user's profile picture" } } }, "CaseNoteAttachment": { "type": "object", "description": "An attachment uploaded with a case note", "properties": { "uniqueId": { "type": "string", "format": "uuid", "description": "Unique identifier of the attachment" }, "fileName": { "type": "string", "description": "Name of the attached file" }, "fileSizeInBytes": { "type": "integer", "format": "int64", "description": "Size of the file in bytes" } } }, "ScreeningHitIdentifier": { "type": "object", "description": "An identity document or identifier recorded for a matched screening entity.", "properties": { "type": { "type": "string", "description": "Kind of identifier (for example national ID, passport, or company registration number).", "example": "PASSPORT" }, "value": { "type": "string", "description": "The identifier value. Sensitive personal data.", "example": "X1234567" }, "note": { "type": "string", "description": "Additional context on the identifier, such as the specific document type when `type` is generic (for example SIREN, NIT, or passport).", "example": "Document Type: SIREN" } } }, "ScreeningHitSource": { "type": "object", "description": "A source reference for a matched screening entity.", "properties": { "type": { "type": "string", "description": "The kind of source reference.", "example": "SOURCE" }, "url": { "type": "string", "description": "Link to the source record, when the reference is a URL.", "example": "https://example.org/list/entry/123" }, "note": { "type": "string", "description": "Source citation text, when the reference is textual rather than a plain link.", "example": "OFAC SDN list, 25-Feb-2022" } } }, "RuleResult": { "type": "object", "properties": { "decisionName": { "type": "string", "description": "Name of the decision" }, "caseStatus": { "type": "string", "description": "Case status resulting from this rule" }, "transactionStatus": { "type": "string", "description": "Transaction status resulting from this rule" }, "processingStatus": { "type": "string", "description": "Processing status resulting from this rule" }, "instanceResults": { "type": "array", "description": "Individual rule instance results", "items": { "$ref": "#/components/schemas/RuleInstanceResult" } } } }, "RuleInstanceResult": { "type": "object", "properties": { "instanceId": { "type": "string", "description": "Unique identifier of the rule instance" }, "instanceName": { "type": "string", "description": "Human-readable name of the rule instance" }, "blocking": { "type": "boolean", "description": "Whether this rule instance is blocking" }, "value": { "type": "number", "format": "double", "description": "Numeric score or value produced by the rule instance" }, "ruleCategories": { "type": "array", "description": "Categories this rule instance belongs to", "items": { "type": "string" } }, "details": { "type": "object", "additionalProperties": {}, "description": "Rule-specific result details. Free-form; fields vary by rule (the parent decisionName identifies the rule). Aggregation rules additionally include `relatedCaseIds` — the case IDs of the other transactions that contributed to the rule firing; each can be re-read via `GET /v1/transaction-checks/{caseId}`. Rules that provide `relatedCaseIds` include Volume Risk, Frequency of Changes, Dormant Account Activation, Account-Based Frequency, Suspicious Average Ticket Size, Account-Based Volume Increase/Decrease, Counter Party Volume, and Unusual Counter Party Based Frequency. See the \"Retrieve case results via the API\" knowledge base article for the authoritative per-rule field reference." }, "configuration": { "type": "object", "additionalProperties": {}, "description": "Rule-specific configuration. Free-form; fields vary by rule (the parent decisionName identifies the rule)." } } } }, "securitySchemes": { "API_KEY": { "in": "header", "name": "api-key", "type": "apiKey" } } } } ````