Syncrofy File Transfer Visibility (FTV) tracks file transfers by breaking them into three key stages:
A single transfer is tracked across multiple events using a shared ARRIVEDFILE_KEY
. Each event for the same transfer must include the same ARRIVEDFILE_KEY
.
Each event has a unique EVENT_KEY, a timestamp (TIME), and metadata about the event source.
Here's a sample flow of a full file transfer:
Stage | Event | Required | Purpose |
---|---|---|---|
ARRIVED_FILE |
StartTransfer |
Required | Initiates the transfer, includes sender info |
ARRIVED_FILE |
ProcessDetails |
Optional | Details about the received file |
PROCESSING |
ProcessDetails |
Optional | File processing steps (e.g. checksum, normalization) |
DELIVERY |
StartedDelivery |
Required | Delivery begins |
DELIVERY |
ProcessDetails |
Optional | Delivery-specific details |
DELIVERY |
CompleteDelivery |
Required | File successfully delivered |
ARRIVED_FILE |
CompleteTransfer |
Required | Marks the transfer as complete |
Each event has standard data describing the event itself:
"STAGE": "ARRIVED_FILE",
"Event": "StartTransfer",
"TIME": "1745964341771",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"EVENT_KEY": "20250429185005401657002"
STAGE
tells us which of the stages this event will provide data for.
Event tells us the type of action in the stage.
ARRIVEDFILE_KEY
is an ID used to link all events for the same transfer together. All events for the same transfer must have the same ARRIVEDFILE_KEY.
EVENT_KEY
is a unique ID for each event. Events for the same delivery should all have the same event_key.
TIME
is ms Unix timestamp of the original event action.
EVENT_SOURCE_NAME
, EVENT_SOURCE_URL
, EVENT_SOURCE_TYPE
provide reference information to the event source.
Each event also has event specific fields based on that event type. For example, the StartTransfer event tells us all about the sender and file.
"ProducerUserId": "LP_Producer",
"ProducerMailboxPath": "/LP_Producer/Outbound",
"ProducerDocumentId": "4099021968389ad5anode1",
"ProducerFileSize": "1249",
"ProducerFilename": "payments_21360685.dat",
"ProducerName": "LP_Producer",
"ProducerOperation": "Put",
"ProducerRemoteHost": "172.172.51.6",
"ProducerRemoteIP": "172.172.51.6",
"ProducerProtocol": "SFTP",
"Direction": "inbound",
"Status": "SUCCESS",
"ProducerUserId": "LP_Producer",
Additional fields vary by event type.
Provides details about the sender and the received file:
{
"STAGE": "ARRIVED_FILE",
"Event": "StartTransfer",
"TIME": "1745964341771",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"EVENT_KEY": "20250429185005401657002",
"ProducerUserId": "LP_Producer",
"ProducerMailboxPath": "/LP_Producer/Outbound",
"ProducerDocumentId": "4099021968389ad5anode1",
"ProducerFileSize": "1249",
"ProducerFilename": "payments_21360685.dat",
"ProducerName": "LP_Producer",
"ProducerOperation": "Put",
"ProducerRemoteHost": "172.172.51.6",
"ProducerRemoteIP": "172.172.51.6",
"ProducerProtocol": "SFTP",
"Direction": "inbound",
"Status": "SUCCESS",
"ProducerUserId": "LP_Producer",
"EVENT_SOURCE_NAME": "System name",
"EVENT_SOURCE_URL": "http://your.source.url",
"EVENT_SOURCE_TYPE": "SFG"
}
Used to track intermediate steps like validation, compression, or transformation.
{
"STAGE": "PROCESSING",
"Event": "PROCESSING",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"TIME": "1745964365871",
"EVENT_KEY": "20250429186206011657005",
"LayerType": "Normalize Data",
"LayerFilename": "Test1.txt",
"LayerStatus": "Success",
"LayerMessage": "Message data is ready",
"EVENT_SOURCE_NAME": "COE Lab SFG System",
"EVENT_SOURCE_URL": "http://cs-sandbox2.coenterprise.com",
"EVENT_SOURCE_TYPE": "SFG"
}
{
"STAGE": "PROCESSING",
"Event": "PROCESSING",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"TIME": "1745964365871",
"EVENT_KEY": "20250429186206011657006",
"LayerType": "Generate Checksum",
"LayerFilename": "Test2.txt",
"LayerStatus": "Success",
"LayerMessage": "Checksum: af69451cda314fb49d06a165bd397b28",
"EVENT_SOURCE_NAME": "COE Lab SFG System",
"EVENT_SOURCE_URL": "http://cs-sandbox2.coenterprise.com",
"EVENT_SOURCE_TYPE": "SFG"
}
{
"STAGE": "PROCESSING",
"Event": "PROCESSING",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"TIME": "1745964365871",
"EVENT_KEY": "20250429186206011657007",
"LayerType": "Validate Checksum",
"LayerFilename": "Test3.txt",
"LayerStatus": "Success",
"LayerMessage": "Validation complete",
"EVENT_SOURCE_NAME": "COE Lab SFG System",
"EVENT_SOURCE_URL": "http://cs-sandbox2.coenterprise.com",
"EVENT_SOURCE_TYPE": "SFG"
}
Track the delivery process and outcome.
A delivery consists of at least a StartedDelivery event and a CompleteDelivery event and can include ProcessDetails and FailedDelivery events.
Events for the same delivery should all have the same EVENT_KEY
. If sending events for multiple deliveries, use a different EVENT_KEY
for each separate delivery.
Reports the intent to deliver and provides transfer details:
{
"STAGE": "DELIVERY",
"Event": "StartedDelivery",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"EVENT_KEY": "20250429186206011657004",
"TIME": "1745964365871",
"ConsumerName": "LP_Consumer",
"ConsumerContentType": "application/x-octet",
"ConsumerFilename": "payments_21360685.dat",
"ConsumerDocumentId": "4099021968389ad5anode1",
"ConsumerMailboxPath": "/LP_Consumer/Inbox",
"ConsumerFileSize": "1249",
"ConsumerType": "UNKNOWN",
"EVENT_SOURCE_NAME": "COE Lab SFG System",
"EVENT_SOURCE_URL": "http://cs-sandbox2.coenterprise.com",
"EVENT_SOURCE_TYPE": "SFG"
}
Adds a processing step to the delivery:
{
"STAGE": "DELIVERY",
"Event": "ProcessDetails",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"EVENT_KEY": "20250429186206011657004",
"TIME": "1745964356440",
"LayerType": "ZIP",
"LayerFilename": "payments_21360685.zip",
"EVENT_SOURCE_NAME": "COE Lab SFG System",
"EVENT_SOURCE_URL": "http://cs-sandbox2.coenterprise.com",
"EVENT_SOURCE_TYPE": "SFG"
}
Marks the delivery as failed with an error message:
{
"STAGE": "DELIVERY",
"Event": "FailedDelivery",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"EVENT_KEY": "20250429186206011657004",
"TIME": "1745964399904",
"ConsumerFilename": "payments_21360685.dat",
"ErrorMessage": "Couldn't resolve host cs-sandbox.coenterprise.com",
"ConsumerOperation": "Put",
"ConsumerRemoteIP": "172.172.172.19",
"ConsumerRemoteHost": "cs-sandbox2.coenterprise.com",
"ConsumerUserId": "sftp_user",
"Username": "sftp_user",
"Mailbox_MailboxPath": "/LP_Consumer/Inbox",
"ConsumerProtocol": "SFTP",
"Direction": "outbound"
"EVENT_SOURCE_NAME": "COE Lab SFG System",
"EVENT_SOURCE_URL": "http://cs-sandbox2.coenterprise.com",
"EVENT_SOURCE_TYPE": "SFG",
}
Marks the delivery as completed:
{
"STAGE": "DELIVERY",
"Event": "CompleteDelivery",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"EVENT_KEY": "20250429186206011657004",
"TIME": "1745964399994",
"ConsumerFilename": "payments_21360685.dat",
"ConsumerOperation": "Put",
"ConsumerRemoteIP": "172.172.172.19",
"ConsumerRemoteHost": "cs-sandbox2.coenterprise.com",
"Username": "sftp_user",
"Mailbox_MailboxPath": "/LP_Consumer/Inbox",
"ConsumerProtocol": "SFTP",
"Direction": "outbound"
"EVENT_SOURCE_NAME": "COE Lab SFG System",
"EVENT_SOURCE_URL": "http://cs-sandbox2.coenterprise.com",
"EVENT_SOURCE_TYPE": "SFG",
}
Marks the entire transfer as completed:
{
"STAGE": "ARRIVED_FILE",
"Event": "CompleteTransfer",
"TIME": "1745964341771",
"ARRIVEDFILE_KEY": "20250429185005401657002",
"EVENT_KEY": "20250429185005401657002",
"EVENT_SOURCE_NAME": "System name",
"EVENT_SOURCE_URL": "http://your.source.url",
"EVENT_SOURCE_TYPE": "SFG"
}
Events can be submitted:
• Individually or in batches
• Via HTTPS POST
• Kafka support is coming soon
HTTPS event upload to: https://events.prod.syncrofy.com:443
Hosted on IBM cloud with dynamic DNS and IPs change periodically.
If you need a static endpoint, this static proxy is available.
https://nginx-api.prod.syncrofy.com:443/events/
https://52.118.189.238:443/events/
For firewall setup, this is considered REST not standard user web traffic.
The endpoint is used only for HTTPS POST.
Coming soon.
When sending events to Syncrofy in a batch, keep batches to a "reasonable" size to make debug and handler easier. Less than 1000 events per batch and less than 1 megabyte per batch is a good place to start.
Syncrofy keeps an inventory of Partners and Systems and associates each transfer with a sender and receiver that is either a partner or system.
Syncrofy automatically identifies Partners and Systems by matching the protocol, remote address and login credential from the event records to the same data in the Partner and System inventory. If a match is found, the new event is associated with the matching Partner or System. If no match is found, a new Partner is created in the inventory.