Operational responsibilities
The partner owns:- FX closing, customer relationship, and commercial approval.
- Creating the PayFi operation with
customerId,operationType,exchangeModality,declaredBeneficiaryName,declaredEconomicOwnerName, and the ISO alpha-2buyerCountry. - Sharing the upload link only after PayFi emits
operation.requirements.ready. - Final business action after PayFi sends the signed callback.
- Policy/RAG-backed initial document requirement assessment.
- Required document tracking after requirement review or partner auto-approval.
- Secure document intake and object metadata verification.
- Analysis orchestration, including OCR, extraction, deterministic checks, AI-assisted classification, score calculation, and evidence preparation.
- Human review workflow and signed callback delivery.
- Uploading the documents requested for the operation.
- Re-uploading corrected or missing documents when PayFi returns
ACTION_REQUIREDor the reviewer requests changes.
Status model
The normal happy path is:REQUIREMENTS_PENDING -> REQUIREMENTS_REVIEW_REQUIRED -> AWAITING_DOCUMENTS -> DOCUMENTS_UPLOADED -> PROCESSING -> READY_FOR_MANUAL_REVIEW -> MANUAL_REVIEW_APPROVED -> PARTNER_CALLBACK_DELIVERED.
The partial-document path is:
AWAITING_DOCUMENTS -> DOCUMENTS_PARTIAL -> DOCUMENTS_UPLOADED.
The remediation path is:
PROCESSING -> ACTION_REQUIRED -> DOCUMENTS_PARTIAL or PROCESSING, depending on whether new files are required.
Analysis outcomes
The document analysis result is an operational decision aid, not a final approval. A successful technical analysis can still require partner action. Correct documents with strong evidence move the operation toREADY_FOR_MANUAL_REVIEW. The GET /v1/operations/{operationId} API Reference page includes the full response example for this path.
A wrong document type is not treated as an infrastructure failure. For example, if the partner declares documentType: "invoice" but uploads a packing list, the document can still be PROCESSED and the job can still be SUCCEEDED; the operation becomes ACTION_REQUIRED because the required invoice evidence is missing.
The GET /v1/operations/{operationId} API Reference page includes the full ACTION_REQUIRED example with missingDocumentTypes: ["invoice"], low score, and critical risk.
API sequence
- Upsert the customer with
POST /v1/customers. - Create the operation with
POST /v1/operationsusingcustomerId,operationType,exchangeModality,declaredBeneficiaryName,declaredEconomicOwnerName, andbuyerCountry. The fields remain nullable for legacy clients, but the guided trust-v2 flow requires them. Country-specific identifiers are validated only when their party country is explicitly known. - Wait for
operation.requirements.ready. - Register and upload documents with the approved document types.
- Confirm upload with
POST /v1/upload-sessions/{token}/documents/{documentId}/complete. - Poll
GET /v1/operations/{operationId}or consume signed webhooks. - Wait for the final signed webhook after human review.
GET /v1/operations with operationId, partnerOperationId, customerId, search, page, and limit. To show the full history for one customer, use GET /v1/customers/{customerId}/operations; it returns the same paginated response shape and remains scoped to the signed partner integration.