Get operation analysis
curl --request GET \
--url https://sandbox.payfi.global/v1/operations/{operationId}/analysis \
--header 'X-PayFi-Api-Key: <api-key>' \
--header 'X-PayFi-Nonce: <api-key>' \
--header 'X-PayFi-Signature: <api-key>'import requests
url = "https://sandbox.payfi.global/v1/operations/{operationId}/analysis"
headers = {
"X-PayFi-Api-Key": "<api-key>",
"X-PayFi-Nonce": "<api-key>",
"X-PayFi-Signature": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-PayFi-Api-Key': '<api-key>',
'X-PayFi-Nonce': '<api-key>',
'X-PayFi-Signature': '<api-key>'
}
};
fetch('https://sandbox.payfi.global/v1/operations/{operationId}/analysis', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.payfi.global/v1/operations/{operationId}/analysis",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-PayFi-Api-Key: <api-key>",
"X-PayFi-Nonce: <api-key>",
"X-PayFi-Signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.payfi.global/v1/operations/{operationId}/analysis"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-PayFi-Api-Key", "<api-key>")
req.Header.Add("X-PayFi-Nonce", "<api-key>")
req.Header.Add("X-PayFi-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.payfi.global/v1/operations/{operationId}/analysis")
.header("X-PayFi-Api-Key", "<api-key>")
.header("X-PayFi-Nonce", "<api-key>")
.header("X-PayFi-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.payfi.global/v1/operations/{operationId}/analysis")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-PayFi-Api-Key"] = '<api-key>'
request["X-PayFi-Nonce"] = '<api-key>'
request["X-PayFi-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"operation": {
"operationId": "op_example_ready",
"partnerOperationId": "acme-op-123",
"customerId": "cus_example",
"status": "READY_FOR_MANUAL_REVIEW",
"operationType": "IMPORT_GOODS",
"exchangeModality": "TERM",
"requirementsStatus": "APPROVED",
"requiredDocumentTypes": [
"invoice",
"bill_of_lading",
"packing_list"
],
"missingDocumentTypes": [],
"score0To100": 94,
"score1To10": 10,
"riskLevel": "low",
"createdAt": "2026-05-20T12:00:00.000Z",
"updatedAt": "2026-05-20T12:10:00.000Z"
},
"decisionPack": {
"decisionPackId": "dp_example",
"schemaVersion": 2,
"operationId": "op_example",
"analysisRunId": "job_example",
"status": "READY_FOR_MANUAL_REVIEW",
"analysisOutcome": "SUCCEEDED",
"qualityStatus": "VALID",
"analysisMode": "DETERMINISTIC_RULES",
"versionMetadata": {
"workflowVersion": "workflow-v2",
"modelVersion": "none",
"promptVersion": "decision-v2",
"policyVersion": "sample-policy-2026-05",
"rulesVersion": "payfi-rules-v2",
"regulatoryCorpusVersion": "bc-cambio-2026-06-03"
},
"fallbackUsed": false,
"sourceCoverage": "COMPLETE",
"regulatoryCorpusVersion": "bc-cambio-2026-06-03",
"policyVersion": "sample-policy-2026-05",
"rulesVersion": "payfi-rules-0.3.1",
"modelProfile": "cheap-default-v1",
"inputSnapshotHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"evidence": [
{
"sourceType": "DOCUMENT",
"sourceId": "doc_example",
"sourceVersion": "sha256:abc",
"documentId": "doc_example",
"page": 1
}
],
"operationFacts": {
"operationId": "op_example",
"operationType": "IMPORT_GOODS",
"exchangeModality": "TERM",
"declaredAmount": "80000",
"currency": "USD"
},
"documentCoverage": [
{
"documentType": "invoice",
"criticality": "critical",
"status": "present",
"documentIds": [
"doc_example"
],
"reasonCodes": [],
"citations": [
{
"citationId": "cit_requirement_invoice",
"sourceType": "REGULATION",
"sourceId": "documentos-por-modalidade.md",
"sourceTitle": "Documentos por modalidade",
"usedFor": "DOCUMENT_REQUIREMENT",
"sourceStatus": "FOUND"
}
]
}
],
"entityReconciliation": [],
"natureDecision": {
"declaredNatureCode": "12452",
"provisionalNatureCode": "12452",
"predictedNatureCode": "12452",
"resolvedNatureCode": "12452",
"phase": "FINAL",
"status": "MATCHED",
"confidence": 0.93,
"alternatives": [],
"rationale": "Final nature is supported by matching document-bound nature_code evidence.",
"requiresHumanReview": true,
"reasonCodes": [
"NATURE_CONFIRMED"
],
"citations": [
{
"citationId": "cit_nature_example",
"sourceType": "DOCUMENT",
"sourceId": "doc_example",
"usedFor": "NATURE_DECISION",
"sourceStatus": "FOUND"
}
]
},
"regulatoryChecks": [],
"policyChecks": [],
"fraudSignals": [],
"scoreBreakdown": [],
"scoreExplanation": "Validated evidence supports manual approval.",
"overallScore": 10,
"score0To100": 100,
"riskLevel": "LOW",
"recommendedStatus": "READY_FOR_MANUAL_REVIEW",
"reviewPosture": "STANDARD_REVIEW",
"blockingReasons": [],
"warnings": [
"MANUAL_REVIEW_REQUIRED"
],
"actionItems": [],
"citations": [
{
"citationId": "cit_nature_example",
"sourceType": "DOCUMENT",
"sourceId": "doc_example",
"usedFor": "NATURE_DECISION",
"sourceStatus": "FOUND"
}
],
"rawResultRedacted": {
"workflow": "PayFi Operation Decision Engine",
"deterministic": true
},
"processingTraceEvents": [
{
"source": "workflow",
"stageKey": "decision_engine.output",
"status": "SUCCEEDED",
"sequence": 420
}
],
"createdAt": "2026-06-03T15:00:00.000Z"
},
"documentAnalyses": [
{
"documentId": "doc_invoice",
"documentType": "invoice",
"originalFileName": "invoice-2026-001.pdf",
"documentStatus": "PROCESSED",
"jobId": "job_invoice",
"jobStatus": "SUCCEEDED",
"jobAttempts": 1,
"jobError": null,
"score0To100": 94,
"riskLevel": "low",
"flags": {
"validated": [],
"rejected": [],
"additional": [],
"summary": {
"total": 0,
"critical": 0,
"warning": 0,
"info": 0
}
},
"extractedFields": {
"document_type_detected": "invoice",
"invoice_number": "INV-2026-001",
"value": 80000,
"currency": "USD",
"buyer_name": "Acme Ltda"
},
"rawResultRedacted": {
"operation_id": "op_example_ready",
"compliance_score": 94,
"risk_level": "low",
"flags": {
"validated": [],
"rejected": [],
"additional": [],
"summary": {
"total": 0,
"critical": 0,
"warning": 0,
"info": 0
}
},
"extracted_data": {
"document_type_detected": "invoice",
"invoice_number": "INV-2026-001",
"value": 80000,
"currency": "USD"
},
"completeness": {
"is_complete": true,
"missing_documents": [],
"missing_types": []
},
"pipeline_version": "P1",
"processed_at": "2026-05-20T12:05:00.000Z"
},
"createdAt": "2026-05-20T12:00:00.000Z",
"updatedAt": "2026-05-20T12:05:00.000Z",
"resultCreatedAt": "2026-05-20T12:05:00.000Z"
}
]
}{
"error": {
"code": "INVALID_REQUEST",
"message": "The request payload is invalid."
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication failed."
}
}Operations
Get operation analysis
Returns the operation status, latest operation-level Decision Pack when available, and per-document analysis projections.
GET
/
v1
/
operations
/
{operationId}
/
analysis
Get operation analysis
curl --request GET \
--url https://sandbox.payfi.global/v1/operations/{operationId}/analysis \
--header 'X-PayFi-Api-Key: <api-key>' \
--header 'X-PayFi-Nonce: <api-key>' \
--header 'X-PayFi-Signature: <api-key>'import requests
url = "https://sandbox.payfi.global/v1/operations/{operationId}/analysis"
headers = {
"X-PayFi-Api-Key": "<api-key>",
"X-PayFi-Nonce": "<api-key>",
"X-PayFi-Signature": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-PayFi-Api-Key': '<api-key>',
'X-PayFi-Nonce': '<api-key>',
'X-PayFi-Signature': '<api-key>'
}
};
fetch('https://sandbox.payfi.global/v1/operations/{operationId}/analysis', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.payfi.global/v1/operations/{operationId}/analysis",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-PayFi-Api-Key: <api-key>",
"X-PayFi-Nonce: <api-key>",
"X-PayFi-Signature: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.payfi.global/v1/operations/{operationId}/analysis"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-PayFi-Api-Key", "<api-key>")
req.Header.Add("X-PayFi-Nonce", "<api-key>")
req.Header.Add("X-PayFi-Signature", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.payfi.global/v1/operations/{operationId}/analysis")
.header("X-PayFi-Api-Key", "<api-key>")
.header("X-PayFi-Nonce", "<api-key>")
.header("X-PayFi-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.payfi.global/v1/operations/{operationId}/analysis")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-PayFi-Api-Key"] = '<api-key>'
request["X-PayFi-Nonce"] = '<api-key>'
request["X-PayFi-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"operation": {
"operationId": "op_example_ready",
"partnerOperationId": "acme-op-123",
"customerId": "cus_example",
"status": "READY_FOR_MANUAL_REVIEW",
"operationType": "IMPORT_GOODS",
"exchangeModality": "TERM",
"requirementsStatus": "APPROVED",
"requiredDocumentTypes": [
"invoice",
"bill_of_lading",
"packing_list"
],
"missingDocumentTypes": [],
"score0To100": 94,
"score1To10": 10,
"riskLevel": "low",
"createdAt": "2026-05-20T12:00:00.000Z",
"updatedAt": "2026-05-20T12:10:00.000Z"
},
"decisionPack": {
"decisionPackId": "dp_example",
"schemaVersion": 2,
"operationId": "op_example",
"analysisRunId": "job_example",
"status": "READY_FOR_MANUAL_REVIEW",
"analysisOutcome": "SUCCEEDED",
"qualityStatus": "VALID",
"analysisMode": "DETERMINISTIC_RULES",
"versionMetadata": {
"workflowVersion": "workflow-v2",
"modelVersion": "none",
"promptVersion": "decision-v2",
"policyVersion": "sample-policy-2026-05",
"rulesVersion": "payfi-rules-v2",
"regulatoryCorpusVersion": "bc-cambio-2026-06-03"
},
"fallbackUsed": false,
"sourceCoverage": "COMPLETE",
"regulatoryCorpusVersion": "bc-cambio-2026-06-03",
"policyVersion": "sample-policy-2026-05",
"rulesVersion": "payfi-rules-0.3.1",
"modelProfile": "cheap-default-v1",
"inputSnapshotHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"evidence": [
{
"sourceType": "DOCUMENT",
"sourceId": "doc_example",
"sourceVersion": "sha256:abc",
"documentId": "doc_example",
"page": 1
}
],
"operationFacts": {
"operationId": "op_example",
"operationType": "IMPORT_GOODS",
"exchangeModality": "TERM",
"declaredAmount": "80000",
"currency": "USD"
},
"documentCoverage": [
{
"documentType": "invoice",
"criticality": "critical",
"status": "present",
"documentIds": [
"doc_example"
],
"reasonCodes": [],
"citations": [
{
"citationId": "cit_requirement_invoice",
"sourceType": "REGULATION",
"sourceId": "documentos-por-modalidade.md",
"sourceTitle": "Documentos por modalidade",
"usedFor": "DOCUMENT_REQUIREMENT",
"sourceStatus": "FOUND"
}
]
}
],
"entityReconciliation": [],
"natureDecision": {
"declaredNatureCode": "12452",
"provisionalNatureCode": "12452",
"predictedNatureCode": "12452",
"resolvedNatureCode": "12452",
"phase": "FINAL",
"status": "MATCHED",
"confidence": 0.93,
"alternatives": [],
"rationale": "Final nature is supported by matching document-bound nature_code evidence.",
"requiresHumanReview": true,
"reasonCodes": [
"NATURE_CONFIRMED"
],
"citations": [
{
"citationId": "cit_nature_example",
"sourceType": "DOCUMENT",
"sourceId": "doc_example",
"usedFor": "NATURE_DECISION",
"sourceStatus": "FOUND"
}
]
},
"regulatoryChecks": [],
"policyChecks": [],
"fraudSignals": [],
"scoreBreakdown": [],
"scoreExplanation": "Validated evidence supports manual approval.",
"overallScore": 10,
"score0To100": 100,
"riskLevel": "LOW",
"recommendedStatus": "READY_FOR_MANUAL_REVIEW",
"reviewPosture": "STANDARD_REVIEW",
"blockingReasons": [],
"warnings": [
"MANUAL_REVIEW_REQUIRED"
],
"actionItems": [],
"citations": [
{
"citationId": "cit_nature_example",
"sourceType": "DOCUMENT",
"sourceId": "doc_example",
"usedFor": "NATURE_DECISION",
"sourceStatus": "FOUND"
}
],
"rawResultRedacted": {
"workflow": "PayFi Operation Decision Engine",
"deterministic": true
},
"processingTraceEvents": [
{
"source": "workflow",
"stageKey": "decision_engine.output",
"status": "SUCCEEDED",
"sequence": 420
}
],
"createdAt": "2026-06-03T15:00:00.000Z"
},
"documentAnalyses": [
{
"documentId": "doc_invoice",
"documentType": "invoice",
"originalFileName": "invoice-2026-001.pdf",
"documentStatus": "PROCESSED",
"jobId": "job_invoice",
"jobStatus": "SUCCEEDED",
"jobAttempts": 1,
"jobError": null,
"score0To100": 94,
"riskLevel": "low",
"flags": {
"validated": [],
"rejected": [],
"additional": [],
"summary": {
"total": 0,
"critical": 0,
"warning": 0,
"info": 0
}
},
"extractedFields": {
"document_type_detected": "invoice",
"invoice_number": "INV-2026-001",
"value": 80000,
"currency": "USD",
"buyer_name": "Acme Ltda"
},
"rawResultRedacted": {
"operation_id": "op_example_ready",
"compliance_score": 94,
"risk_level": "low",
"flags": {
"validated": [],
"rejected": [],
"additional": [],
"summary": {
"total": 0,
"critical": 0,
"warning": 0,
"info": 0
}
},
"extracted_data": {
"document_type_detected": "invoice",
"invoice_number": "INV-2026-001",
"value": 80000,
"currency": "USD"
},
"completeness": {
"is_complete": true,
"missing_documents": [],
"missing_types": []
},
"pipeline_version": "P1",
"processed_at": "2026-05-20T12:05:00.000Z"
},
"createdAt": "2026-05-20T12:00:00.000Z",
"updatedAt": "2026-05-20T12:05:00.000Z",
"resultCreatedAt": "2026-05-20T12:05:00.000Z"
}
]
}{
"error": {
"code": "INVALID_REQUEST",
"message": "The request payload is invalid."
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication failed."
}
}Authorizations
Path Parameters
Operation ID.
⌘I