Skip to main content
POST
/
v1
/
operations
/
{operationId}
/
documents
Register document
curl --request POST \
  --url https://sandbox.payfi.global/v1/operations/{operationId}/documents \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <api-key>' \
  --header 'X-PayFi-Api-Key: <api-key>' \
  --header 'X-PayFi-Nonce: <api-key>' \
  --header 'X-PayFi-Signature: <api-key>' \
  --data '
{
  "documentType": "invoice",
  "fileName": "invoice-123.pdf",
  "contentType": "application/pdf",
  "sizeBytes": 123456
}
'
{
  "documentId": "doc_example",
  "status": "UPLOAD_PENDING",
  "uploadUrl": "https://storage.example.com/presigned-upload",
  "uploadUrlExpiresInSeconds": 300
}

Documentation Index

Fetch the complete documentation index at: https://docs.payfi.global/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-PayFi-Api-Key
string
header
required
X-PayFi-Nonce
string
header
required
X-PayFi-Signature
string
header
required
Idempotency-Key
string
header
required

Path Parameters

operationId
string
required

Operation ID.

Body

application/json

Document metadata.

documentType
enum<string>
required
Available options:
invoice,
bill_of_lading,
packing_list,
di_duimp,
bank_details,
proforma,
service_contract,
insurance_policy
Example:

"invoice"

fileName
string
required
Example:

"invoice-123.pdf"

contentType
string
required
Example:

"application/pdf"

sizeBytes
number
required
Example:

123456

Response

Document registered.

documentId
string
Example:

"doc_example"

status
enum<string>
Available options:
REGISTERED,
UPLOAD_PENDING,
UPLOADED,
SCANNING,
CLEAN,
REJECTED,
PROCESSING,
PROCESSED,
PROCESSING_FAILED
Example:

"UPLOAD_PENDING"

uploadUrl
string
Example:

"https://storage.example.com/presigned-upload"

uploadUrlExpiresInSeconds
number
Example:

300